Cited by 22Logic, programming, and type systemsSoftware Testing and Debugging TechniquesSoftware Engineering Research

AutoVerus: Automated Proof Generation for Rust Code

Open access
Yang, Chenyuan, Li, Xuheng, Misu, Md Rakib Hossain, Yao, Jianan, Cui, Weidong, Gong, Yeyun, Hawblitzel, Chris, Lahiri, Shuvendu +5 more·2025·Proceedings of the ACM on Programming Languages

Published version of a preprint

Abstract

Generative AI has shown its value for many software engineering tasks. Still in its infancy, large language model (LLM)-based proof generation lags behind LLM-based code generation. In this paper, we present A uto V erus . A uto V erus uses LLMs to automatically generate correctness proof for Rust code. A uto V erus is designed to match the unique features of Verus, a verification tool that can prove the correctness of Rust code using proofs and specifications also written in Rust. A uto V erus consists of a network of agents that are crafted and orchestrated to mimic human experts’ three phases of proof construction: preliminary proof generation, proof refinement guided by generic tips, and proof debugging guided by verification errors. To thoroughly evaluate A uto V erus and help foster future research in this direction, we have built a benchmark suite of 150 non-trivial proof tasks, based on existing code-generation benchmarks and verification benchmarks. Our evaluation shows that A uto V erus can automatically generate correct proof for more than 90% of them, with more than half of them tackled in less than 30 seconds or 3 LLM calls.

AI snapshot

Written from the paper’s full text.

TL;DR

AutoVerus is an LLM-agent system that automatically generates Verus proof annotations for Rust code by mimicking expert proof construction in three phases: preliminary generation, generic refinement, and error-driven debugging. On the new 150-task Verus-Bench, it proves 137 tasks (91.3%), versus 67 (44.7%) for a directly prompted GPT-4o baseline.

Key findings

  • AutoVerus proves 137/150 Verus-Bench tasks (91.3%); the baseline proves 67/150 (44.7%). It proves all 11 CloverBench and all 38 Diffy tasks, and 68/78 MBPP plus 20/23 Misc tasks.
  • Phase breakdown: Phase-1 proves 78 tasks, Phase-2 adds 22, and Phase-3 adds 37. For the 137 proved tasks, average cost is 8.8 LLM calls per task; about half finish in ≤2 calls, and total benchmark cost is about $37.
  • Efficiency: with a 30-second budget, AutoVerus proves 81 tasks while the baseline proves fewer than 40; 22 seconds or 2 LLM calls per task suffices for AutoVerus to prove at least 67 tasks.
  • Component results: merging helps 14 tasks; Houdini contributes to 16 proved tasks; 326 of 2,637 generated proof candidates (12.4%) are unsafe and filtered by Lynette. Repair agents are used 657 times, with 377 successful repairs (57.4%); AssertFail is most used (310 times, 46.8% success).

Methods

  • Design: a network of LLM agents orchestrated in three phases—preliminary loop-invariant generation, generic proof refinement, and error-driven proof debugging—with Verus verification, Lynette AST-level safety/merging checks, Houdini subset checking, and filtering/ranking/merging of candidates.
  • Data: Verus-Bench, 150 non-trivial proof tasks translated mainly from Diffy (38), MBPP-DFY-153 (78), CloverBench (11), and Misc (23); 2,849 executable LOC and 1,252 specification LOC.
  • Evaluation: measures correctly verified tasks, time, and LLM calls; compares against a GPT-4o baseline and runs ablations over phases, few-shot examples, ranking, LLM choice, and temperature.

Limitations

  • Stated: LLM randomness affects results; Verus-Bench’s 150 tasks cannot represent many real-world large-system proof tasks or guarantee coverage of all small-scale tasks; some AutoVerus authors were already familiar with some Diffy and Misc tasks; evaluation does not cover newer Verus-supported Rust features such as iterators.
  • Stated: AutoVerus assumes specifications are already given, and the current prototype uses a single Rust function as the proof-generation unit.
  • Evident from the text: 13 tasks fail, mainly due to arithmetic overflow/underflow proof struggles (6 tasks), limited knowledge of vstd data-structure axioms/lemmas (5 tasks), and complicated logic (2 tasks); AutoVerus proofs also contain more unnecessary loop invariants than human proofs.

Model-written summary. Check it against the paper before relying on it.

Integrity signals

Registry

Crossref · 10.1145/3763174

Cites

47 of 47 references verified0 citation errors · 0 not checkable

Statistics

Nothing to recompute.

Claims the paper makes

0 of 51 cited sources checked · 0 supported · 0 flagged

  • Findingown data

    AutoVerus successfully finishes 100% of the Verus-Bench tasks coming from Diffy and CloverBench.

    “It not only successfully finishes 100% of the Verus-Bench tasks coming from Diffy and CloverBench, but also 87% of the more complicated tasks coming from MBPP, which often require proof annotations that go beyond loop invariants.”
    Quote in the paperSubstantial claim
  • Findingown data

    Under the same tight budget of 30 seconds or 3 LLM calls per task, the baseline proves fewer than 40 Verus-Bench tasks.

    “Even with a tight budget of 30 seconds or 3 LLM calls for each task, AutoVerus can figure out the correct proof for more than half of the Verus-Bench tasks, while the baseline can manage fewer than 40 tasks.”
    Quote in the paperSubstantial claim
  • Findingcitation

    The 150 proof tasks in Verus-Bench are mainly translated from Diffy, MBPP, and CloverBench into Rust/Verus.

    “These 150 proof tasks are mainly translated from other benchmark suites (Diffy [6], MBPP [33], and CloverBench [42]) into Rust/Verus.”
    Quote in the paperNot a substantial claim0 of 3 sources checked
    • cites Diffy [6]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

    • cites MBPP [33]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

    • cites CloverBench [42]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • Findingown data

    With a budget of 30 seconds or 3 LLM calls per task, AutoVerus proves more than half of the Verus-Bench tasks.

    “Even with a tight budget of 30 seconds or 3 LLM calls for each task, AutoVerus can figure out the correct proof for more than half of the Verus-Bench tasks, while the baseline can manage fewer than 40 tasks.”
    Quote in the paperSubstantial claim
  • Findingown data

    AutoVerus successfully finishes 87% of the more complicated Verus-Bench tasks coming from MBPP.

    “It not only successfully finishes 100% of the Verus-Bench tasks coming from Diffy and CloverBench, but also 87% of the more complicated tasks coming from MBPP, which often require proof annotations that go beyond loop invariants.”
    Quote in the paperSubstantial claim
  • Classified as probably not a substantial claim. 73
  • May combine two claims. 68
  • The quote only partly states this claim. 8
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Findingnone given

    GPT-4o often tries to create a Verus sequence using !seq[...] or access the first x elements with seq[..x], both of which are invalid for the Verus Seq data type.

    “For instance, GPT-4o often tries to create a Verus sequence using !seq[...] or access the first x elements with seq[..x], both of which follow Rust syntax but are invalid for Verus Seq data type.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingown data

    The AutoVerus framework works with GPT-4o, GPT-4-turbo, and Deepseek-R1, all achieving similar results.

    “The AutoVerus framework, including its three-phase proof generation methodology and proof filtering, ranking, merging support, works well with different LLM models: GPT-4o, GPT-4-turbo, and Deepseek-R1 all achieve similar results, with DeepSeek-R1 proving slightly fewer tasks than GPT-4o/turbo, and GPT-4-turbo spending more time in proving the same number of tasks than GPT-4o.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingown data

    Phase-1 finishes slightly over half of the 150 proof tasks, while Phase-2 refinement and Phase-3 debugging contribute 22 and 37 additional proven tasks respectively.

    “As also shown in Table 2, Phase-1 is able to finish slightly over half of the 150 proof tasks, while Phase-2 refinement and Phase-3 debugging also contribute to 22 and 37 additional proven tasks respectively.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingown data

    With 30 seconds per task, AutoVerus generates correct proof for 81 tasks, while the baseline cannot even finish 40 tasks.

    “Furthermore, if we give each task only 30 seconds, AutoVerus can generate correct proof for 81 tasks, while the the baseline cannot even finish 40 tasks.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Findingnone given

    For that Diffy task, the other three programs are safe and valid.

    “Fortunately, the other three programs are safe and valid.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Findingreasoning

    All remaining 38 Diffy tasks were translated from C to Rust.

    “We translated all the remaining 38 tasks from 𝐶 to Rust.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Findingown data

    The function-post-condition repair agent in the Fibonacci case study added two asserts describing the transitive relationship fibo(n) <= fibo(m-1) and fibo(m-1) <= fibo(m).

    “the agent added the two green-highlighted lines in Figure 7c.Interestingly, the LLM does not simply assert fibo(n) <= fibo(m), the failed post condition.Instead, it added two asserts that describe the transitive relationship of fibo(n) <= fibo(m-1), which matches the post-condition of the proof function right before it on Line 7, and fibo(m-1) <= fibo(m), which is quite nice.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Findingown data

    AutoVerus runs into different situations every time, and the final proof produced by it is not always the same.

    “Since this is a difficult task, we have noticed that AutoVerus runs into different situations every time, and the final proof produced by it is not always the same.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingown data

    The arithmetic-overflow repair agent in the Fibonacci case study added an assert stating the bound 0x8000_0000 for fib[i-1] + fib[i-2], synthesized lemma_fibo_monotonic, and used it to support the bound assertion.

    “it figured out the right bound 0𝑥8000_0000 for the expression fib[i-1] + fib[i-2], probably based on the bound expressed in the fibo_fits_i32 spec-function in Figure 7b; 3) it realized that proving the monotonicity of the fibonacci sequence is needed and hence synthesized a new proof function lemma_fibo_monotonic and also used this function to support the bound assertion very nicely on Lines 28-31”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingown data

    The baseline took much longer and many more LLM calls than AutoVerus to achieve its successes.

    “Of course, the baseline took much longer and many more LLM calls to achieve this than AutoVerus, which we discuss below.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). The quote only partly states this claim.

    Findingown data

    Finally, Verus reports that the whole proof task in the Fibonacci case study was successfully done.

    “Finally, Verus reports that the whole proof task was successfully done!”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Findingown data

    In Iteration 3 of the Fibonacci case study, Verus reports that the while-loop is completely verified, but there is a new error: the post-condition fibo(n) <= fibo(m) of lemma_fibo_monotonic is not satisfied at the end of the function.

    “Verus now reports that the while-loop in Figure 7a is completely verified, but there is a new error-the post-condition fibo(n) <= fibo(m) of the new function lemma_fibo_monotonic shown in Figure 7c is not satisfied at the end of the function.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingown data

    The baseline succeeded for only 5 out of 38 Diffy tasks, while AutoVerus's Phase-1 alone generated correct proof for 26 Diffy tasks.

    “However, the baseline cannot handle more complicated loop invariants, and hence succeeded for only 5 out of 38 Diffy tasks.In comparison, AutoVerus's Phase-1 alone generated correct proof for 26 Diffy tasks.”
    Quote in the paperSubstantial claim
  • May combine two claims.

    Findingown data

    AutoVerus proved 122 tasks in its first attempt, 10 more in its second attempt, and 5 more on its third attempt.

    “Even though the default setting allows up to three attempts for AutoVerus, AutoVerus was able to prove 122 tasks in its first attempt, with 10 more proved in its second attempt and 5 more on its third attempt.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingown data

    The baseline needs 458 seconds per task or 59 LLM-calls per task to succeed in 67 tasks; AutoVerus needs 22 seconds per task or 2 LLM-calls per task to generate correct proof for at least 67 tasks.

    “In order for the baseline to succeed in 67 tasks, it needs a budget of 458 seconds per task or 59 LLM-call per task; in contrast, 22-second per-task or 2 LLM-call per task is sufficient for AutoVerus to generate correct proof for at least 67 tasks.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Findingown data

    The entire process consumed 3 million input and 1.5 million output tokens.

    “This entire process consumed 3 million input and 1.5 million output tokens.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Findingown data

    Another program for that Diffy task encountered index out-of-bound errors in the last two loops and is ranked lower (V is 3).

    “Another program encountered index out-of-bound errors in the last two loops, and hence is ranked lower (i.e., 𝑉 is 3).”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Findingown data

    The final 23 tasks in Verus-Bench are Misc, a collection of 23 miscellaneous Verus programs from Verus tutorials or libraries, including algorithmic programs and challenging features.

    “The final 23 is referred to as Misc.This is a collection of 23 miscellaneous Verus programs that appeared in Verus tutorials or libraries.They include some algorithmic programs, like bubble sort, binary search, fibonacci sequence, and tasks that contain challenging features like nested loops, expressing function post conditions as asserts instead of ensures, etc.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingown data

    Processing the 137 tasks across three rounds required an average of 8.8 LLM calls per task; approximately half were completed with two calls or fewer, and a small number required more than 40.

    “Processing these 137 tasks across three rounds required an average of 8.8 LLM calls per task.While approximately half of the tasks were completed with two calls or fewer, a small number required more than 40.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Findingreasoning

    The total cost for the benchmark suite was approximately $37, including tasks that failed after all three rounds.

    “Based on the Azure GPT-4o pricing at the time of our evaluation ($5 per 1M input tokens and $15 per 1M output tokens), the total cost for the benchmark suite was approximately $37, including tasks that failed after all three rounds.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Findingown data

    In Iteration 1 of the Fibonacci case study, Verus reports one error for the best-so-far proof: the invariant fib.len() == n on Line 24 is not satisfied before the loop.

    “Verus only reports one error for this version: invariant fib.len() == n on Line 24 is not satisfied before the loop.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingown data

    Of CloverBench's 39 Verus translations, 3 cannot be verified by the latest Verus, 4 have weaker specifications than variants already included, and 21 can be verified without proof annotations; the remaining 11 are added to Verus-Bench.

    “Our manual inspection found that 3 of them cannot be verified by the latest version of Verus, 4 have weaker specifications than their variants already included in the dataset, and 21 can be verified without proof annotations.We add all remaining 11 into Verus-Bench.”
    Quote in the paperSubstantial claim
  • May combine two claims.

    Findingown data

    After the first repair in the Fibonacci case study, Verus reports two new errors: an arithmetic-overflow for fib[i-1] + fib[i-2] on Line 33, and the invariant on Line 21 that states fib[j] == fibo(j) for all j between 0 and i does not hold at the end of the loop.

    “After the first repair, Verus now reports two new errors: 1) an arithmetic-overflow for fib[i-1] + fib[i-2] on Line 33; 2) the invariant on Line 21 that states fib[j] == fibo(j) for all 𝑗 between 0 and 𝑖 does not hold at the end of the loop.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Findingown data

    In the highest-ranked program for that Diffy task, three loops and the function post-condition are verified (V score is 4), but two verification errors are reported for the last loop.

    “In the highestranked program, three loops and the function post-condition are verified (i.e., 𝑉 score is 4), but two verification errors are reported for the last loop with the loop invariants shown in Figure 5a.”
    Quote in the paperNot a substantial claim
  • Classified as probably not a substantial claim.

    Findingreasoning

    Each Verus-Bench task is a Rust program annotated with Verus specifications.

    “we need a suite of proof tasks, with each task being a Rust program annotated with Verus specifications.”
    Quote in the paperSubstantial claim
  • May combine two claims.

    Findingown data

    Among MBPP-DFY-153's 153 problems, 67 require no proof annotations to verify, 8 are too difficult to translate due to unsupported features, and the remaining 78 are included in Verus-Bench.

    “Among these 153, 67 of them require no proof annotations to verify; 8 are too difficult to translate due to code features not well supported by Rust/Verus like floating points and string; the remaining 78 are all translated and included in Verus-Bench.”
    Quote in the paperSubstantial claim
  • May combine two claims.

    Findingown data

    The first time the assertion-failure repair agent is called in the Fibonacci case study, no good repair is produced; at the second time, it produces a repair adding two asserts and an if m > 1 condition.

    “In fact, the first time this repair agent is called upon, no good repair is produced.At the second time, the repair agent comes up with the repair shown in Figure 7d: it added two assert statements to help the SMT solver reason why fibo(m-1) cannot be larger than fibo(m); and it also added the if m > 1 condition to avoid negative indexing, as explained by its own comment.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingown data

    Unnecessary loop invariants are far more prevalent in AutoVerus proofs; on Diffy, AutoVerus generated an average of 22.2 loop invariants per task, 9.6 unnecessary, while human proofs contained 12.6 total invariants, with only 2.0 unnecessary.

    “For example, on the Diffy benchmark, AutoVerus generated an average of 22.2 loop invariants per task, 9.6 of which were unnecessary.In contrast, human proofs for the same tasks contained 12.6 total invariants, with only 2.0 being unnecessary.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingown data

    On the 30-problem sampled dataset, the default setting (GPT-4o, temperature 1.0) proves 26 tasks, the most among all settings; the baseline repeatedly invoking GPT-4o proves 14 tasks.

    “Our default setting (with GPT-4o, temperature 1.0) proves 26 tasks, the most among all settings (shown in Table 5).Note, the baseline scheme of repeatedly invoking GPT-4o can only prove 14 tasks.”
    Quote in the paperSubstantial claim
  • May combine two claims.

    Findingown data

    Proofs generated by AutoVerus and humans contain a similar number of useful loop invariants; AutoVerus used slightly fewer useful loop invariants on Misc and MBPP tasks, while the trend is reversed on Diffy and Clover tasks.

    “As we can see in the blue bars of Figure 12, proofs generated by AutoVerus and those by humans contain a similar number of useful loop invariants.AutoVerus used slightly fewer useful loop invariants on Misc and MBPP tasks, while the trend is reversed on Diffy and Clover tasks.”
    Quote in the paperNot a substantial claim
  • The quote only partly states this claim.

    Findingown data

    Lack of full knowledge of the vstd library caused AutoVerus to fail 5 tasks involving complicated usage of Verus data structures.

    “In total, this led to the failure in 5 tasks.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingown data

    GPT-3.5-turbo with AutoVerus outperforms the baseline of repeatedly invoking GPT-4o, proving 18 tasks.

    “Furthermore, benefiting from the AutoVerus design, GPT-3.5-turbooutperforms the baseline of repeatedly invoking GPT-4o, proving 18 tasks.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingown data

    During the run producing Table 2, LLMs generated 2,637 proof candidates, of which 326 (12.4%) are unsafe; they were filtered out by Lynette.

    “During the run of producing the results in Table 2, LLMs generated 2,637 proof candidates, of which as many as 326 (12.4%) are unsafe.Fortunately, they are filtered out by our Lynette tool.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingown data

    The number of tasks that can be proved drops if any one of the three examples used by AutoVerus's Phase-1 agent is removed; the third example is most influential.

    “As shown in Table 4, the number of tasks that can be proved drops if we remove any one of the three examples used by AutoVerus's Phase-1 agent.The third example stands out as particularly influential, resulting in the most reduction in proved tasks when removed.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingown data

    Under the alternative design combining all five agents in Phase-1 and Phase-2 into one agent, 7 tasks that originally can be proved now cannot, including 3 tasks that originally can be proved with just Phase-1.

    “Under this alternative design, 7 tasks that originally can be proved now cannot.This includes 3 tasks that originally can be proved with just Phase-1.”
    Quote in the paperSubstantial claim
  • May combine two claims.

    Findingown data

    For 14 tasks, although none of the direct output of the Phase-1 agent is correct, merging some of them immediately provides correct proof.

    “For 14 tasks, although none of the direct output of the Phase-1 agent is correct, merging some of them immediately provides correct proof just like the example in Figure 5.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingreasoning

    AutoVerus makes the most repair-agent invocations with GPT-3.5, probably because the raw output of GPT-3.5 has the worst quality among all models; it needs the fewest repair-agent invocations with GPT-4o.

    “Of course, the exact number of invocations are very different across different LLMs: AutoVerus has to make the most repair-agent invocations with GPT-3.5, probably because the raw output of GPT-3.5 has the worst quality among all models; on the other hand, AutoVerus needs the fewest repair-agent invocations with GPT-4o.”
    Quote in the paperNot a substantial claim
  • The quote only partly states this claim.

    Findingcitation

    The only concerns for data leakage are three tasks in the Misc part of Verus-Bench: fibonacci, tail_triangle, and lemma_len_intersect, which are created based on examples in the online Verus Tutorial.

    “The only concerns are three tasks in the Misc part of Verus-Bench,”
    Quote in the paperNot a substantial claim0 of 1 sources checked
    • cites [47]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • May combine two claims.

    Findingown data

    GPT-4-turbo delivers competitive performance compared to GPT-4o, with both proving 26 out of 30 tasks; GPT-3.5-turbo allows AutoVerus to prove 18 tasks.

    “While trying three different GPT models, we observe that GPT-4-turbo delivers competitive performance compared to our default setting with GPT-4o, with both models power AutoVerus to prove 26 out of the 30 tasks.In contrast, GPT-3.5-turboonly allows AutoVerus to prove 18 tasks.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingnone given

    The Inference Dataset includes all 78 tasks correctly proved by AutoVerus using Phase-1 alone; the Refinement Dataset includes all 22 tasks requiring both Phase-1 and Phase-2.

    “The Inference Dataset includes all the 78 tasks that can be correctly proved by AutoVerus using Phase-1 alone; the Refinement Dataset includes all the 22 tasks that require both Phase-1 and Phase-2 to be proved by AutoVerus.”
    Quote in the paperSubstantial claim
  • May combine two claims.

    Findingown data

    AutoVerus invokes a similar set of repair agents with different LLMs: the assertion failure repair agent is most frequently used for all models except GPT-4-Turbo; the popularity of arithmetic under/overflow, two types of invariant failures, and post-condition failures are similar; the two types of pre-condition failures are rarely encountered.

    “Generally speaking, AutoVerus invokes a similar set of repair agents with different LLMs: the repair agent for assertion failures is most frequently used for all models except for GPT-4-Turbo; the popularity of repair agents for arithmetic under/overflow errors, two types of invariant failures, and post-condition failures are similar; the two types of pre-condition failures are rarely encountered”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Findingown data

    AutoVerus's proof and the Verus Tutorial's proof both prove the monotonicity of the Fibonacci sequence, but they divide the proof into different sets of cases and conduct the inductive proof differently.

    “although both functions prove the monotonicity of the Fibonacci sequence, they divide the proof into different sets of cases and also conduct the inductive proof differently.”
    Quote in the paperNot a substantial claim
    • The authors state this as an assumption: AutoVerus assumes that the specification (i.e., function pre-conditions and post-conditions) is already given.
  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Findingown data

    The fifth output is almost never the top-ranked candidate based on Verus, which happens in about 3% of model invocations.

    “Interestingly, the fifth output is almost never the top-ranked candidate based on Verus, which happens to about 3% of the model invocation.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Findingown data

    43 out of 78 MBPP tasks and 11 out of 23 Misc tasks cannot be proved using loop invariants alone.

    “for example, 43 out of 78 MBPP tasks and 11 out of 23 Misc tasks cannot be proved using loop invariants alone.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S4 (based).

    Findingnone given

    AutoVerus has achieved good results on Verus-Bench.

    “AutoVerus has achieved good results on Verus-Bench, and provides a starting point for future research.”
    Quote in the paperNot a substantial claim
    • The authors state this as an assumption: AutoVerus assumes that the specification (i.e., function pre-conditions and post-conditions) is already given.
  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Findingnone given

    Proof tasks that do not require any proof annotations are not included in Verus-Bench.

    “This type of tasks is not included in Verus-Bench.”
    Quote in the paperNot a substantial claim
  • Classified as probably not a substantial claim. May combine two claims.

    Interpretationreasoning

    Phase 1 of AutoVerus focuses on loop invariants because asserts and proof functions/blocks are typically added during proof debugging.

    “Since asserts and proof functions/blocks are typically added during the proof debugging to provide extra hints to SMT solver, at this first phase of proof generation, AutoVerus focuses on loop invariants.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S2 (checkable), S3 (load-bearing), S4 (based).

    Interpretationreasoning

    The debugging phase is arguably the most important phase of AutoVerus because any mistake or limitation of the first two phases can be rescued there.

    “This debugging phase is arguably the most important phase of AutoVerus: any mistake or limitation of the first two phases can be rescued here.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S4 (based).

    Interpretationnone given

    LLMs easily stumble at subtle syntax extensions made by Verus upon Rust.

    “However, this also produces challenges, as LLMs easily stumble at those subtle syntax extensions made by Verus upon Rust.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Premisenone given

    There is no subrange spec function for the Rust Vec type.

    “For example, there is no subrange spec function for Rust Vec type.”
    Quote in the paperNot a substantial claim
  • Classified as probably not a substantial claim.

    Interpretationnone given

    In the Refinement phase, AutoVerus runs a series of agents, each looking for a common mistake or omission in loop invariants and conducting refinement accordingly.

    “(2) Refinement phase: AutoVerus runs a series of agents, each looking for a common mistake or a common omission in loop invariants and conducting refinement accordingly;”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). The quote only partly states this claim.

    Interpretationreasoning

    AutoVerus conducts proof generation in three phases: Generation, Refinement, and Debugging.

    “Putting these together, AutoVerus conducts its proof generation for input Rust codefoot_3 in three phases, as shown in Figure 2: (1) Generation phase: AutoVerus uses an LLM agent to generate preliminary loop invariants;”
    Quote in the paperNot a substantial claim
  • Classified as probably not a substantial claim.

    Interpretationnone given

    In the Debugging phase, AutoVerus goes through rounds of debugging guided by Verus to produce the correct proof, fixing loop invariants and adding proof annotations such as assert statements and lemma functions.

    “(3) Debugging phase: Guided by Verus, AutoVerus goes through rounds of debugging to produce the correct proof, not only fixing loop invariants but also adding proof annotations like assert statements and lemma functions.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Interpretationnone given

    Throughout the three phases, proof filtering, ranking, and merging are conducted using Verus and Lynette, an AST-level code analysis tool built upon the Verus parser.

    “Throughout these three phases, proof filtering, ranking, and merging are conducted using Verus and Lynette, an AST-level code analysis tool that we build for AutoVerus upon Verus parser.”
    Quote in the paperNot a substantial claim
  • Classified as probably not a substantial claim.

    Interpretationnone given

    In the Generation phase, AutoVerus uses an LLM agent to generate preliminary loop invariants.

    “(1) Generation phase: AutoVerus uses an LLM agent to generate preliminary loop invariants;”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing), S4 (based). May combine two claims.

    Premisenone given

    Verus does not require LLMs to learn a new language because LLMs should be familiar with Rust already.

    “Unlike many verifiers, Verus does not require LLMs to learn a new language -LLMs should be familiar with Rust already.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Interpretationreasoning

    AutoVerus combines formal methods and static analysis to filter out invalid candidates, rank proof candidates based on Verus' feedback, and stitch proof snippets together.

    “To effectively navigate through this huge search space, we combine formal methods and static analysis to quickly filter out invalid candidates, to rank proof candidates based on Verus' feedback, and to stitch proof snippets together in the hope of creating a perfect proof out of a collection of imperfect ones.”
    Quote in the paperSubstantial claim
  • May combine two claims.

    Interpretationreasoning

    Verus uses its abstract int type by default in specification functions and often requires type casting, which is difficult for LLMs like GPT.

    “Verus uses its abstract int type by default in specification functions and hence often requires type casting, such as the 'i as int' on Line 28, 33-36 in Figure 1.This type of casting is difficult for LLMs like GPT that are used to Rust syntax.”
    Quote in the paperSubstantial claim
  • Classified as probably not a substantial claim.

    Premisenone given

    Verus leverages the Rust type system to avoid the complexity of reasoning about memory safety and aliasing, largely reducing the amount of needed proof annotation.

    “Verus also leverages the Rust type system to avoid the complexity of reasoning memory-safety and aliasing, largely reducing the amount of needed proof annotation.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims. The quote only partly states this claim.

    Interpretationreasoning

    Phase 3 targets the eight most common types of verification errors, with one repair agent per type, an extra repair agent for assertion errors, and a generic default repair agent.

    “Specifically, AutoVerus targets the eight most common types of verification errors, including function pre-condition errors, vector-index out-of-bound errors (a common sub-type of function pre-condition errors), function post-condition errors, loop-invariant unsatisfied at the beginning of a loop errors, loop-invariant unsatisfied at the end of a loop errors, assertion errors, arithmetic under/ov”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S4 (based).

    Premisereasoning

    Verus' emphasis on verification speed sometimes comes at the cost of extra proof annotations that may not be needed by other SMT-based verifiers (e.g., Dafny).

    “Verus' emphasis on verification speed, a property that is critical for Verus to work for large system code, sometimes comes at the cost of extra proof annotations that may not be needed by other SMT-based verifiers (e.g., Dafny), which creates extra challenges for GenAI.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Premisenone given

    Verus directly works on Rust code, and Verus specifications and proof annotations are written with Rust syntax and inlined in the Rust code as ghost code.

    “Verus directly works on Rust code; Verus specifications and proof annotations are also written with Rust syntax and are inlined in the Rust code under proof in the form of ghost code.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). The quote only partly states this claim.

    Interpretationnone given

    Phase 2 consists of four refinement agents: Constant-Propagation, Array-Length, Quantifier, and Conditional-Loop-Invariant.

    “The refinement phase consists of a series of LLM agents, each aiming one common mistake in the writing of loop invariants in Verus:”
    • Also stated in: § 4.2.1 Refinement-Agent Design. · plain
      “Constant-Propagation agent checks if the function pre-condition includes properties about a read-only parameter, and adds these properties as invariants to every loop in the function.”
    Quote in the paperNot a substantial claim
  • Classified as probably not a substantial claim.

    Interpretationreasoning

    Misuse of Rust APIs in Verus annotation is very common for inexperienced users and LLMs.

    “As another example, since Rust executable functions cannot be called in ghost code, misuse of Rust APIs in Verus annotation is very common for inexperienced users and LLMs.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S4 (based). May combine two claims.

    Premisenone given

    Verus proof annotations, although written in Rust syntax, have usage very different from regular Rust executable code and require expertise in verification to master.

    “Furthermore, although Verus proof annotations (short as proof) are written in Rust syntax, their usage is very different from regular Rust executable code and require expertise in verification to master.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Interpretationnone given

    AutoVerus keeps running debugging iterations until a correctly proved program is found or a pre-configured threshold is reached (10 iterations by default).

    “AutoVerus keeps running these iterations until a correctly proved program is found or a pre-configured threshold is reached (10 iterations by default).”
    Quote in the paperNot a substantial claim
  • Classified as probably not a substantial claim.

    Interpretationreasoning

    AutoVerus configures all its agents with a high-temperature, multi-output setting so that a wide range of diverse and creative proofs can be generated.

    “To handle inevitable and yet unexpected challenges in writing a proof, AutoVerus configures all its agents with a high-temperature, multi-output setting so that a wide range of diverse and creative proofs can be generated for AutoVerus to pick from.”
    Quote in the paperSubstantial claim
  • Classified as probably not a substantial claim.

    Interpretationreasoning

    AutoVerus uses an ordered list of Verus error types: type errors are top priority, followed by bound-related errors, then invariant-not-satisfied-before-loop errors, then remaining errors.

    “The top one is type error, because they have to be fixed before Verus can compile the program and conduct verification attempt.The next two are bound-related errors, including the index-bound-error and arithmetic-overflow/underflow errors.”
    • Also stated in: § 4.3.2 Repair-Agent Composition and Output Post-Processing. · plain
      “After that, invariant-not-satisfiedbefore-loop errors get selected, as they are often easier to fix than other types of errors.Beyond that, all remaining errors are repaired one by one based on where they show up in the report of Verus.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Premisecitation

    Diffy contains 69 programs written in C designed to evaluate array and loop related verification.

    “Diffy contains 69 programs written in C that were designed to evaluate array and loop related verification.”
    Quote in the paperNot a substantial claim0 of 1 sources checked
    • cites [6]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Interpretationown data

    AutoVerus filters out unsafe candidates through static analysis.

    “AutoVerus first filters out the candidates that are unsafe, like the one in Figure 4, through static analysis.”
    Quote in the paperNot a substantial claim
  • Classified as probably not a substantial claim. May combine two claims.

    Study design and conductnone given

    The baseline has the same temperature setting and 5-output per LLM-call as AutoVerus.

    “Again, keep in mind that the baseline has the same temperature setting and 5-output per LLM-call as AutoVerus.”
    Quote in the paperSubstantial claim
  • Classified as probably not a substantial claim. May combine two claims.

    Interpretationreasoning

    In Phase 3, AutoVerus collects all verification errors in the best-so-far program, picks one error to fix next, and prompts a repair agent that suits that error.

    “In each iteration, AutoVerus collects all the verification errors E in 𝑃 𝐵 from Verus (Line 5), picks one error 𝐸 from E to fix next (Line 6), and prompts a repair agent that suits 𝐸 (Line 7).”
    Quote in the paperSubstantial claim
  • Classified as probably not a substantial claim. May combine two claims.

    Study design and conductreasoning

    Lynette checks whether an LLM output P is safe regarding the input Rust program and its specification P_o by comparing the pure Rust AST after erasing ghost code, comparing pre- and post-conditions, and searching for debugging ghost functions such as admit() or assume().

    “To check whether a LLM output 𝑃 is safe regarding the input Rust program and its specification 𝑃 𝑜 , Lynette checks if 𝑃 and 𝑃 𝑜 can be compiled to the same executable by comparing the pure Rust AST of the files after erasing the ghost code; Lynette compares the pre-and post-condition of 𝑃 and 𝑃 𝑜 so the LLM cannot tweak them to change the goal of the verification; Lynette also searches for debug”
    Quote in the paperSubstantial claim
  • Classified as probably not a substantial claim.

    Study design and conductreasoning

    When comparing with the baseline, they show the number of verified tasks under the same time and LLM-call budget to be fair.

    “When comparing with the baseline, we will show the number of verified tasks under the same time and LLM-call budget to be fair.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Premisecitation

    The Houdini algorithm has been used for GenAI-for-C and is applied here for Verus.

    “This algorithm has been used for GenAI-for-C [23] and we apply it here for Verus.”
    Quote in the paperNot a substantial claim0 of 1 sources checked
    • cites [23]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • Probably not a substantial claim: may not pass S3 (load-bearing), S4 (based).

    Study design and conductnone given

    There is no overlap between the examples used by AutoVerus agents and Verus-Bench.

    “Notably, there is no overlap between the examples used by AutoVerus agents and Verus-Bench.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Premisecitation

    Most Diffy tasks contain multiple loops and require good loop-invariant synthesis; 31 tasks require reasoning about non-linear equations.

    “Most tasks in this suite contain multiple loops and hence require good loop-invariant synthesis.31 tasks here require reasoning about non-linear equations (e.g., knowing that (𝑖 + 1) 3 == 𝑖 3 + 3 * 𝑖 2 + 3 * 𝑖 + 1), which is not the focus of Verus system verification.”
    Quote in the paperNot a substantial claim0 of 1 sources checked
    • cites [6]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Interpretationnone given

    The four refinement agents are designed based on common mistakes that the authors themselves typically commit when writing loop invariants.

    “These four agents are designed based on common mistakes that we ourselves typically commit when we write loop invariants.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Study design and conductreasoning

    Lynette is AST-aware and ensures that deletion of unprovable proof annotations honors ghost expression boundaries and produces a syntactically correct result.

    “Since Lynette is AST-aware, it makes sure that the deletion honors the boundary of ghost expression, and guarantees to produce a syntactically correct result.”
    Quote in the paperSubstantial claim
  • The quote only partly states this claim.

    Study design and conductreasoning

    The baseline is given an unfair advantage of cheating: answers to four complicated tasks from Verus-Bench are put as examples in its prompt.

    “Finally, we give this baseline an unfair advantage of”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Study design and conductown data

    The baseline's prompt is essentially a summary of all prompts used in AutoVerus agents.

    “To make this baseline competitive, we designed its prompt to essentially be a summary of all the prompts used in AutoVerus agents.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Study design and conductown data

    The baseline uses the same LLM-temperature setting as AutoVerus (1.0) and is configured to generate 5 outputs per invocation, same as the Phase-1 agent in AutoVerus.

    “It uses the same LLM-temperature setting as AutoVerus (1.0), and is configured to generate 5 outputs in each invocation, same as the Phase-1 agent in AutoVerus.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Study design and conductreasoning

    Lynette uses the pure Rust AST as an anchor to merge ghost code from two proof candidates P1 and P2, with the minimum merging unit being a ghost expression.

    “Lynette first erases all of the ghost code in the program to obtain the pure Rust AST, which is the same for 𝑃 1 and 𝑃 2 , and uses it as the anchor to merge the ghost code in 𝑃 1 and 𝑃 2 .The minimum merging unit is a ghost expression, i.e., a Verus assertion, a proof block, or an invariant.”
    Quote in the paperNot a substantial claim
  • Classified as probably not a substantial claim. May combine two claims.

    Study design and conductnone given

    The baseline uses the same LLM-temperature and 5-output per invocation setting as AutoVerus, and has a more sophisticated prompt and examples than any AutoVerus agent.

    “Note that, this baseline scheme uses the same LLM-temperature and 5-output per invocation setting as AutoVerus, and has more sophisticated prompt and examples than any AutoVerus agent.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S4 (based).

    Interpretationreasoning

    With the basic proof-repair knowledge embedded in AutoVerus agents and robust post-processing, AutoVerus can reliably figure out a correct proof after a number of attempts.

    “Fortunately, with the basic proof-repair knowledge embedded in AutoVerus agents and the robust post-processing, AutoVerus can reliably figure out a correct proof after a number of attempts.”
    Quote in the paperNot a substantial claim
  • Classified as probably not a substantial claim.

    Study design and conductreasoning

    Since Verus can automatically tell whether a proof is correct, there is no manual effort involved even if they invoke LLM or execute the AutoVerus workflow multiple times.

    “Keep in mind that since Verus can automatically tell whether a proof is correct, there is no manual effort involved even if we invoke LLM or execute the AutoVerus workflow for multiple times.”
    Quote in the paperSubstantial claim
    • Rests on an assumption: Verus can automatically tell whether a proof is correct.
  • Classified as probably not a substantial claim. May combine two claims.

    Interpretationreasoning

    AutoVerus considers a program with higher V as better, with lower E as the tie-breaker.

    “For any two programs that contain the same executable Rust code, AutoVerus considers the one with higher 𝑉 score as the better one (i.e., more functions proved), with the tie-breaker being having a lower 𝐸 score (i.e., fewer verification errors).”
    Quote in the paperSubstantial claim
  • Classified as probably not a substantial claim.

    Interpretationnone given

    AutoVerus ranks remaining LLM-generated Verus programs based on a score tuple {V, E}, where V is the number of functions successfully verified by Verus and E is the number of verification errors reported by Verus.

    “AutoVerus then ranks remaining LLM-generated Verus programs based on a score tuple {𝑉 , 𝐸} (Line 4 in Algorithm 1), with 𝑉 being the number of functionsfoot_4 successfully verified by Verus, and 𝐸 being the number of verification errors reported by Verus.”
    Quote in the paperSubstantial claim
  • May combine two claims.

    Study design and conductown data

    Verus-Bench excludes trivial proof tasks that can be proved by Verus without any proof annotations; 88 proof tasks from source benchmark suites were rejected for this reason.

    “Second, we make sure not to include any trivial proof tasks (i.e., tasks that can be proved by Verus without any proof annotations).In fact, 88 proof tasks from our source benchmark suites are rejected for this reason!”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Study design and conductreasoning

    Due to the randomness of LLMs, the number of correctly verified tasks may change over runs; by default, they report the number after running AutoVerus three times.

    “Due to the randomness of LLMs, the number of correctly verified tasks may change over runs.By default, we report the number of correctly verified tasks after running AutoVerus (the whole three phases) for three times; the same applies for various variants of AutoVerus.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Premisecitation

    CloverBench includes 60 example programs written and verified in Dafny, and its authors provide the Verus translation for 39 of them.

    “This suite includes 60 example programs, as might be found in CS textbooks, written and verified in Dafny.The authors of CloverBench also provide the Verus translation for 39 of them.”
    Quote in the paperNot a substantial claim0 of 1 sources checked
    • cites [42]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Interpretationreasoning

    In Phase 2, each agent generates one proof candidate, so no merging or ranking is needed.

    “The post-processing here is simpler than that of Phase-1: each agent only generates one, instead of five, proof candidates, and hence there is no merging or ranking needed.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Interpretationreasoning

    Verbosity from unnecessary loop invariants can harm code and proof readability, but the negative impact is limited because an automated process can effectively remove them.

    “While this verbosity can harm code and proof readability, the negative impact is limited, as an automated process can effectively remove these unnecessary annotations.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Study design and conductnone given

    Verus-Bench is still just a collection of 150 tasks; it cannot represent many real-world proof tasks in large system code and cannot guarantee to represent all small-scale proof tasks.

    “However, it is still just a collection of 150 tasks.It cannot represent many real-world proof tasks in large system code; it also cannot guarantee to represent all small-scale proof tasks.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Premisecitation

    The challenge of writing formal proofs has sparked interest in using LLMs to automate formal proof synthesis.

    “This challenge has sparked interest in using LLMs to automate formal proof synthesis [28].”
    Quote in the paperNot a substantial claim0 of 1 sources checked
    • cites [28]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

    • Rests on an assumption: Formal proofs offer mathematical guarantees of correctness against program specifications, yet writing these proofs remains a labor-intensive, expertise-driven process.
  • Probably not a substantial claim: may not pass S3 (load-bearing), S4 (based).

    Study design and conductnone given

    The authors who participated in the design of AutoVerus are already familiar with some tasks in the Diffy benchmark and the Misc set.

    “However, the authors who participated in the design of AutoVerus are already familiar with some of the tasks in the Diffy benchmark and in the Misc set.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Interpretationreasoning

    For the 137 successfully proved tasks, the quality of AutoVerus proof is good and in line with human-written proof.

    “For the 137 tasks that AutoVerus successfully proved, at a high level, the quality of AutoVerus proof is good and in line with human-written proof -after all, passing the Verus verification is a high bar for quality.”
    Quote in the paperSubstantial claim
  • May combine two claims.

    Interpretationown data

    The design of AutoVerus is generally applicable for different LLM models and can effectively help boost the performance of LLMs.

    “Overall, this result shows that the design of AutoVerus is generally applicable for different LLM models, and can effectively help boost the performance of LLMs.”
    Quote in the paperSubstantial claim
  • May combine two claims. The quote only partly states this claim.

    Interpretationreasoning

    The impact of potential data leakage is minimal because Verus proofs for all 38 Diffy tasks and all 78 MBPP tasks were not publicly available throughout the research project, and the 11 CloverBench examples were released after the earlier GPT-4o models used.

    “First, the (un-)availability of online Verus resources.Among the four sources of Verus-Bench, Verus proofs for all 38 Diffy tasks and all 78 MBPP tasks were not publicly available throughout this research project.The 11 examples from CloverBench were released in the late spring of 2024, while we utilized earlier GPT-4o models (with 2024-02-15 and 2024-05-13 versions), predating the widespread”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Interpretationown data

    AutoVerus can work with different types of models, and code-proof remains a challenging task even for the new generation of reasoning models.

    “It shows that AutoVerus can work with different types of models.It also shows that code-proof remains a challenging task even for the new generation of reasoning models.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Interpretationown data

    Only 8 out of 657 (1.2%) repair iterations required the default repair agent, showing that the 9 error-specific repair agents offer good coverage of the most common verification errors.

    “Note that, only 8 out of 657 (1.2%) repair iterations required the default repair agent.This shows that our 9 error-specific repair agents offer good coverage of the most common verification errors.”
    Quote in the paperSubstantial claim
  • May combine two claims.

    Interpretationreasoning

    Unnecessary loop invariants exist even in human-written proofs because it is challenging to identify the minimal set of evidence required by the verifier; for AutoVerus, the issue is exacerbated because LLM agents sometimes add identical loop invariants across multiple proof attempts.

    “These unnecessary loop invariants exist even in human-written proofs, as it is challenging to identify the minimal set of evidence required by the verifier to finish a proof.For AutoVerus, this issue is exacerbated because LLM agents sometimes add identical loop invariants across multiple proof attempts.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Study design and conductnone given

    The evaluation does not yet cover some of the newest Rust features supported by Verus, such as iterators.

    “Finally, our evaluation does not yet cover some of the newest Rust features supported by Verus, such as iterators.”
    Quote in the paperNot a substantial claim
  • May combine two claims.

    Premisecitation

    LeanDojo, LEGO-Prover, and Baldur only work for interactive theorem provers and are primarily designed for maths rather than programs.

    “However, they only work for interactive theorem provers and are primarily designed for maths rather than programs.”
    Quote in the paperSubstantial claim0 of 3 sources checked
    • cites [55]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

    • cites [48]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

    • cites [16]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • Classified as probably not a substantial claim.

    Interpretationown data

    A higher temperature setting is beneficial in fostering LLM creativity and exploring a wider range of potential solutions, as long as human experts and discipline are also applied.

    “This aligns with our design intuition that a higher temperature setting is beneficial in fostering LLM's creativity and exploring a wider range of potential solutions, as long as human experts and discipline are also applied.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S2 (checkable), S3 (load-bearing).

    Premisecitation

    LLMs have been revolutionizing various software engineering tasks.

    “LLMs have been revolutionizing various software engineering tasks [10,46,50,52,53], especially for code generation [2,7], but the reliability of the generated code remains uncertain [29].”
    Quote in the paperNot a substantial claim0 of 5 sources checked
    • cites [10]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

    • cites [46]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

    • cites [50]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

    • cites [52]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

    • cites [53]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Premisecitation

    Recent efforts like LeanDojo, LEGO-Prover, and Baldur have used LLMs and leverage the vast existing data of interactive theorem provers to create RAG databases or fine-tune models.

    “Recent efforts like LeanDojo [55], LEGO-Prover [48], and Baldur [16] have used LLMs, and they all leverage the vast existing data of interactive theorem provers to create RAG databases or fine-tune models.”
    Quote in the paperNot a substantial claim0 of 3 sources checked
    • cites [55]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

    • cites [48]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

    • cites [16]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • Classified as probably not a substantial claim. May combine two claims.

    Study design and conductnone given

    The authors tried not to tune AutoVerus based on features of specific proof tasks in Verus-Bench, and the team setting up the majority of Verus-Bench did not participate in the design of AutoVerus.

    “We have tried our best not to tune AutoVerus based on features of specific proof tasks in our Verus-Bench, and have our team that sets up the majority of the Verus-Bench not participating in the design of AutoVerus.”
    Quote in the paperSubstantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Premisecitation

    The reliability of code generated by LLMs remains uncertain.

    “but the reliability of the generated code remains uncertain [29].”
    Quote in the paperNot a substantial claim0 of 1 sources checked
    • cites [29]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Premisecitation

    Verus integrates Rust's borrow checker into its verification process, enforcing linearity and borrowing in specifications and proofs.

    “Verus distinguishes itself further by integrating Rust's borrow checker into its verification process, enforcing linearity and borrowing in specifications and proofs.”
    Quote in the paperNot a substantial claim0 of 2 sources checked
    • cites [43]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

    • cites [56]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Study design and conductreasoning

    There is inherent randomness in AutoVerus and the evaluation given the probabilistic nature of LLMs.

    “There is an inherent randomness in AutoVerus and our evaluation given the probabilistic nature of LLM.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S2 (checkable), S3 (load-bearing).

    Interpretationreasoning

    Existing Verus online resources are too few for LLMs to remember or understand.

    “Based on these results, we suspect that existing Verus online resources are too few for LLMs to remember or understand.”
    Quote in the paperNot a substantial claim
  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Premisecitation

    Verus's design simplifies reasoning about pointers and concurrency, making Verus particularly suited for systems verification.

    “This design simplifies reasoning about pointers and concurrency, making Verus particularly suited for systems verification.[43,56].”
    Quote in the paperNot a substantial claim0 of 2 sources checked
    • cites [43]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

    • cites [56]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.

    Interpretationcitation

    AutoVerus and Loopy both leverage the Houdini algorithm.

    “AutoVerus shares the similarity with Loopy as both leveraging Houdini algorithm.”
    Quote in the paperNot a substantial claim0 of 1 sources checked
    • cites [23]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • May combine two claims.

    Premisecitation

    Loopy only focuses on loop invariants that do not involve quantifiers, arrays, etc., while AutoVerus does not have these constraints for loop-invariant synthesis.

    “Loopy only focuses on loop invariants that do not involve quantifiers, arrays, etc., while AutoVerus does not have these constraints for loop-invariant synthesis.”
    Quote in the paperNot a substantial claim0 of 1 sources checked
    • cites [23]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Premisecitation

    26.9% of the proof tasks in DafnyBench do not require any proof annotations.

    “Note, 26.9% of the proof tasks in DafnyBench do not require any proof annotations.”
    Quote in the paperNot a substantial claim0 of 1 sources checked
    • cites [30]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

  • Probably not a substantial claim: may not pass S3 (load-bearing).

    Premisereasoning

    Most of the resulting Dafny programs from natural language description workflows contain easy or no proof annotations.

    “Given the difficulty of generating the whole program based on natural language, most of the resulting Dafny programs contain easy or no proof annotations, as discussed in § 6.1.”
    Quote in the paperNot a substantial claim0 of 2 sources checked
    • cites [33]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

    • cites [42]

      Couldn’t be matched to a paper in Crossref, so it can’t be checked.

117 of 117
  • The paper relies on this without support.

    At the time of writing, there are fewer than 10 projects on GitHub developed under Verus.

    “At the time of writing, there are fewer than 10 projects on GitHub developed under Verus.”
  • The paper relies on this without support.

    There has been little work about how GenAI can help directly prove the correctness of programs written in a general-purpose popular programming language.

    “Furthermore, there has been little work about how GenAI can help directly prove the correctness of programs written in a general-purpose popular programming language.”
  • The paper relies on this without support.

    The state of the art of GenAI-for-proof is still far behind that of GenAI-for-coding both in terms of benchmark building and generation capability.

    “However, the state of the art of GenAI-for-proof is still far behind that of GenAI-for-coding both in terms of benchmark building and generation capability.”
  • The paper relies on this without support.

    Verus is very young, with its development started about 3 years ago, and hence has much fewer examples for LLMs to learn from.

    “However, also unlike many established verifiers, Verus is very young, with its development started about 3 years ago, and hence has much fewer examples for LLMs to learn from.”
  • The paper relies on this without support.

    Considering the growing popularity of Rust, an effective proof assistant for Verus has the potential to benefit millions of developers.

    “Considering the growing popularity of Rust [35,38,41], an effective proof assistant for Verus has the potential to benefit millions of developers.”
  • The paper relies on this without support.

    Verus often takes only a second to verify a function.

    “For example, Verus often takes only a second to verify a function.”
  • The paper relies on this without support.

    No suite of Verus proof tasks existed before Verus-Bench.

    “Since such a suite does not yet exist, we crafted Verus-Bench.”
  • The paper relies on this without support.

    Verus can automatically tell whether a proof is correct.

    “Keep in mind that since Verus can automatically tell whether a proof is correct, there is no manual effort involved even if we invoke LLM or execute the AutoVerus workflow for multiple times.”
  • The paper relies on this without support.

    Verus has a loop-isolation configuration that, when set to false, allows facts from outside a loop body to be considered in the proof inside the loop body.

    “Verus has a loop-isolation configuration that can affect the difficulty of proof.When it is set to be false, Verus will consider facts (e.g., function pre-conditions, asserts) from outside a loop body in its proof inside the loop body.”
  • The paper relies on this without support.

    By default, Verus's loop-isolation configuration is set to true for performance reasons.

    “By default, this configuration is set to be true for performance reasons.”
  • The paper relies on this without support.

    Formal proofs offer mathematical guarantees of correctness against program specifications, yet writing these proofs remains a labor-intensive, expertise-driven process.

    “Formal proofs offer mathematical guarantees of correctness against program specifications, yet writing these proofs remains a labor-intensive, expertise-driven process.”
  • The authors state this as an assumption.

    AutoVerus assumes that the specification (i.e., function pre-conditions and post-conditions) is already given.

    “AutoVerus assumes that the specification (i.e., function pre-conditions and post-conditions) is already given.”
12 of 12

Self-check

Percentages, sums and reported differences re-computed from the paper’s own numbers.

Each contradiction between two passages listed here was confirmed by an independent check.

  • Fibonacci invariant is assigned two different line numbers

    Minor

    The text first places the failing `fib.len() == n` invariant on Line 24, then says the same invariant was deleted from Line 23.

1 of 1

Cites

Flagged first, then by citations

Research works printed but not linked: 7

  1. Bruno Barras, Samuel Boutin, Cristina Cornes, Judicaёl Courant, Yann Coscoy, David Delahaye, Daniel de Rauglaudre, Jean-Christophe Filliâtre, Eduardo Giménez, Hugo Herbelin,et al. 1999. The Coq proof assistant reference manual. INRIA, version 6, 11 (1999). https://hal.science/inria-00069919
  2. 10.1007/978-3-031-17244-l_6 · DOI
  3. 10.1145/3428299 · DOI
  4. Hayley LeBlanc Jacob R Lorch Chris Hawblitzel Cheng Huang Yiheng Tao Nickolai Zeldovich and Vijay Chidambaram. 2025. PoWER Never Corrupts: Tool-Agnostic Verification of Crash Consistency and Corruption Detection. In OSDI (to appear) (2025).
  5. Xudong Sun, Wenjie Ma, Jiawei Tyler Gu, Zicheng Ma, Tej Chajed, Jon Howell, Andrea Lattuada, Oded Padon, Lalith Suresh, Adriana Szekeres, and Tianyin Xu. 2024. Anvil: Verifying Liveness of Cluster Management Controllers. In 18th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2024, Santa Clara, CA, USA, July 10-12, 2024. USENIX Association, 649–666. https://www.usenix.org/conference/osdi24/presentation/sun-xudong
  6. Haoze Wu, Clark W. Barrett, and Nina Narodytska. 2024. Lemur: Integrating Large Language Models in Automated Program Verification. In The Twelfth International Conference on Learning Representations, ICLR 2024, Vienna, Austria, May 7-11, 2024. OpenReview.net. https://openreview.net/forum?id=Q3YaCghZNt
  7. Ziqiao Zhou, Anjali , Weiteng Chen, Sishuai Gong, Chris Hawblitzel, and Weidong Cui. 2024. VeriSMo: A Verified Security Module for Confidential VMs. In 18th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2024, Santa Clara, CA, USA, July 10-12, 2024. USENIX Association, 599–614. https://www.usenix.org/conference/osdi24/presentation/zhou

Cited by

Sorted by citations

Authors
Yang, C., Li, X., Misu, M. R. H., Yao, J., Cui, W., Gong, Y., Hawblitzel, C., Lahiri, S., Lorch, J. R., Lu, S., Yang, F., Zhou, Z., & Lu, S.
Affiliations
  • University of Illinois Urbana-Champaign (US)
  • Columbia University (US)
  • University of California, Irvine (US)
  • University of Toronto (CA)
  • Microsoft (United States) (US)
  • Microsoft Research Asia (China) (CN)
Venue
Proceedings of the ACM on Programming Languages
Published
2025-10-09
Volume
9
Issue
OOPSLA2
Pages
3454-3482
ISSN
2475-1421 (ISSN-L)
OpenAlex
W4415007625
Cited by
20
References
34
Citations by year
2026: 15 · 2025: 5
FWCI
8.16
Type
journal article
Language
en
Open access
Licence
cc-by
Locations
  • Proceedings of the ACM on Programming Languages (publishedVersion, cc-by)
  • arXiv (Cornell University) (submittedVersion, cc-by)
  • arXiv (Cornell University) (cc-by)
Topics
  • Physical Sciences › Computer Science › Artificial Intelligence › Logic, programming, and type systems
  • Physical Sciences › Computer Science › Software › Software Testing and Debugging Techniques
  • Physical Sciences › Computer Science › Information Systems › Software Engineering Research
Keywords
proof automation, Rust, Verus, large language models, program verification, multi-agent systems, correctness proofs, benchmark suite

About these checks

Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.

Claims read by deepseek-v4.1-flash under definition version 3 (extract-v3) on 2026-10-24.

Classified by jev-1.13-20260917 (gold-guideline-v0.2) on 2026-10-24.

Statistics and arithmetic are recomputed, not judged.

Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.

What counts as a claim ›How we measure confidence ›How we check this ›

Are you an author, or do you see a problem with this page? Request a review