Papers for

software verification engineers

Papers whose findings have a practical use for this group, as judged from the abstract. Open a paper to read what it means in practice.

Termination of 2 variable constraint loops decided in polynomial time

On Deciding the Constraint Loop Problem in Dimension Two

Abstract: Recently, Guilmant, Lefaucheux, Ouaknine, and Worrell [2] proved decidability of the termination problem for linear constraint loops over two real-valued variables, thus settling a wellknown open problem. Their algorithm is based on a theoretical result that such a loop does not terminate if and only if it has a witness of an infinite run of a specific shape. By analysing the structure of the witness carefully, we show that termination such loops can be decided in polynomial time, improving on the polynomial space bound argued by Guilmant et al. We also present an efficient implementation of the polynomial-time algorithm based on the satisfiability modulo theories (SMT) solver Z3.

Thu 29 OctLogic in Computer Science
The gist
The problem of checking whether certain loops in computer programs will stop or keep running forever has been an open question for a while. Previously, it was proven that for loops with two real-number variables, you can decide if they terminate. The authors improved this by showing the decision can be done much faster—in polynomial time instead of requiring much more resources. They also built a practical tool using existing software to efficiently check these loops.
Open → 2610.40378v1

Additional AI contexts do not boost software warning detection accuracy

Beyond QASecClaw: Agent Scaling, Verifier Feedback, and Evidence Reliability in Software Assurance

Abstract: Can additional specialist language-model contexts improve software assurance when deterministic tool evidence is already available? We study this question through five experiments spanning authored Java warning controls, OWASP Benchmark assessment, Defects4J test generation, SV-COMP assertion verdicts, and deliberately misleading evidence packages. The evaluated systems use Qwen2.5-Coder-7B-Instruct, with a 1.5B sensitivity analysis, and complete 13,638 model requests. On eight related development warnings, increasing the context count from 1 to 50 increases token use 49-fold without improving unsafe clearance. On 160 OWASP cases, model configurations trade clearance against unresolved outcomes; the ten-context arm assesses only 96 cases. On 32 SV-COMP tasks, raw verifier feedback raises mean correct model verdicts from 12.7 to 22.0, but also raises incorrect verdicts from one to seven; a JBMC-plus-JVM validation baseline returns 26 correct verdicts and six unresolved outcomes. On two sets of 120 evidence packages, models reject 70-100% of applicable counterexamples, while construction-specific scope checks classify every package correctly. No target defect is discovered in three Defects4J bugs, one unsupported by the test adapter. These descriptive results support deterministic evidence admission for the tested settings, while exposing limits of verdict aggregation, feedback interpretation, and the available evaluation coverage.

Tue 27 OctSoftware EngineeringArtificial Intelligence
The gist
This paper looks at whether adding more language-model-based analysis helps find software bugs better when traditional tools already give clear evidence. The authors tested different setups on software with known warnings, benchmarks, and verification tasks. They found that simply increasing the language model's context size used much more processing but didn’t improve bug clearance. Also, feedback from software verifiers helped somewhat but sometimes increased errors. The results suggest sticking to traditional, deterministic evidence methods works best in these tested cases, while AI methods need refinement.
Open → 2610.36947v1

Measuring and reviewing math proofs with dependency graphs

Dependency Graphs of Mathematical Arguments: Representation, Structural Measurement, and Proof Review

Abstract: We propose a source-grounded framework for representing and measuring mathematical arguments with assistance from large language models. It includes numbered and unnumbered statements, equations, assumptions, and constructions, distinguishing source occurrences from contextual states and inference records. Proposed dependencies retain source evidence and review status. A measurement contract fixes manuscript versions, boundaries, granularity, proof choices, and macro anchors. On a selected finite directed acyclic graph, depth is the longest prerequisite-path length, and bulk counts distinct ancestor edges. We give a union recurrence that accounts for shared subarguments and identify reachability conditions preserving depth and the macro skeleton; unrestricted refinement need not preserve depth or bulk. A standardized, versioned prompt protocol separates annotation discovery, deterministic recomputation, and review assistance. Cross-paper links support a research agenda on theorem co-use, rare combinations, and connections between dependency communities. These patterns motivate probabilistic premise suggestions and review of possible omissions or unchecked application conditions in human-written and AI-generated proofs. Further applications include source-linked reading support and comparison of individual and collaborative argument shapes. We provide an evaluation design rather than empirical evidence of these benefits. Suggested premises require mathematical validation, and the measures describe a specified representation rather than intrinsic mathematical difficulty, originality, or importance.

Tue 27 OctArtificial Intelligence
The gist
Mathematical proofs are complex and built from many smaller steps. This paper describes a way to represent and measure those steps using graphs that show how each statement depends on others. The authors use large language models to help manage the representation and review of proofs, keeping track of sources and versions. Their system can suggest missing parts and support reviewing both human-written and AI-generated proofs, though it does not yet prove these benefits with experiments.
Open → 2610.36776v1

Rainfall system uses llms to prove loop termination automatically

Ranking Function Generation with LLMs for Termination

Abstract: Ranking functions are a fundamental technique for proving loop termination, but constructing them manually is challenging and requires substantial expertise. We propose RAINFALL, a neuro-symbolic framework which follows the generate-verify-refine paradigm and tightly integrates LLMs with symbolic verification. RAINFALL formulates ranking function synthesis as a code-completion task by inserting placeholders into the input program and constraining the LLM to fill four predefined slots for each loop. The completed program is then checked by a symbolic verifier. If verification succeeds, a valid ranking function is obtained; otherwise, the verifier's diagnostics are translated into natural-language feedback that guides iterative refinement of the LLM's output. We evaluate RAINFALL on two public benchmark suites comprising 358 terminating C programs. Using MiniMax V2.7, RAINFALL synthesizes verifiable ranking functions for 323 programs (90.22%), outperforming all promising baselines. In particular, it solves 12 more programs than PROTON 2.1, the best-performing baseline and winner of the SV-COMP 2026 Termination category. Furthermore, combining RAINFALL with PROTON 2.1 increases the success rate to 96.65% (346/358 programs). We also conduct ablation study confirming individual contributions of placeholder contracts, few-shot examples, symbolic verification, and diagnostic information feedback. Experiments across LLMs further confirm the effectiveness of RAINFALL. Our results suggest a generic, sound framework for ranking-function synthesis and, beyond termination, LLM-assisted synthesis of formally checkable liveness certificates, both of which represent new directions of software engineering research.

Mon 26 OctSoftware EngineeringArtificial IntelligenceLogic in Computer Science
The gist
Loops in computer programs sometimes run forever, which can cause software to get stuck. One way to prove loops do finish is by creating ranking functions, but doing this by hand is very hard. The authors propose RAINFALL, a system that uses large language models (LLMs) combined with symbolic verification to automatically find these ranking functions. When the system’s answer is wrong, it gets feedback from a checker and tries again until it succeeds. This approach works well on many test programs, outperforming previous tools.
Open → 2610.35523v1

Rain improves software proof success with smarter agent design

RAIN: Agentic Proof Generation for Rocq-based Software Verification

Abstract: Interactive theorem provers can provide strong correctness guarantees for software, but constructing the proofs remains a challenging and labor-intensive task. Inspired by the recent progress of modern coding agents, we present RAIN, a lightweight proof-specialized agent for Rocq proof generation. RAIN augments an LLM with proof engineering capabilities, including repository exploration, iterative refinement, and checker feedback. This design allows the agent to retrieve lemmas autonomously, revise complete proof scripts instead of isolated tactics, and iteratively refine its proof strategy using enriched proof-state information. Evaluated on a subset from CoqStoq, RAIN shows substantial improvements over the existing baselines, achieving over 90% prove success rate with at least 24.7% improvements. We also compare with general-purpose coding agents, the results show that RAIN maintains comparable prove success rate but with significant lower cost.

Thu 22 OctLogic in Computer Science
The gist
Checking that software works correctly can be done by writing proofs, but making these proofs is very hard and slow. The authors created Rain, a smart assistant that helps write these proofs more easily by searching for useful facts, improving whole scripts, and learning from errors. They tested Rain on a set of software proofs and it worked much better than earlier tools, solving over 90% of problems. Rain also does this more cheaply than other general coding assistants.
Open → 2610.30759v1

VeriGen-C improves verified C code generation with aligned specifications

From Natural Language to Verified C: Verification-Guided Generation with ACSL Specifications

Abstract: AI-assisted code generation amplifies the demand for automated formal verification. Generated programs must not only be executable but also accompanied by machine-checkable evidence of correctness. Existing approaches can synthesize functionally plausible code or plausible-looking specifications from natural-language prompts; however, they do not explicitly co-design the implementation and specification as a unified artifact optimized for verification. Consequently, automated verifiers often fail to discharge proof obligations. Typical failure modes include missing or implicit proof anchors, program structures that are hostile to automated reasoning, and inconsistencies between code-level state and specification-level requirement facts arising from the independent generation of code and specifications. Even when verification succeeds, it may only establish weak specifications that omit requirement-critical behavior. This paper introduces VeriGen-C, a formal-verification-friendly framework for the joint synthesis of C programs and ACSL specifications from natural-language requirements. Code generation and repair are constrained to expose proof-relevant state, to streamline control flow for deductive verification, and to eliminate implementation patterns that hinder automated proof search. Specification generation and refinement are similarly constrained to mitigate verification timeouts and to ensure alignment with the user requirements. Empirical evaluations on HumanEval-X, FM-Bench, and LiveCodeBench Lite demonstrate that VeriGen-C substantially improves the rate of verified and requirement-aligned solutions relative to an interface-compatible baseline, from 5.5% to 44.5%, from 44.3% to 80.0%, and from 6.5% to 58.7%, respectively.

Thu 22 OctSoftware Engineering
The gist
Generating computer programs from natural language is useful but often creates code that is hard to prove correct automatically. The authors present a system called VeriGen-C that produces both C code and detailed correctness specifications together, making it easier to verify the software’s behavior. Their approach ensures the code and its specification fit well for verification tools to check, increasing the number of programs that pass formal correctness checks. Tests on several benchmarks show VeriGen-C verifies significantly more solutions than previous methods.
Open → 2610.30725v1

Ai improves repair choices in rust verification tool verus

VeruSteer: Learning What to Repair Next in Verus

Abstract: LLM-based verification systems repair Rust proofs by revising programs in response to Verus diagnostics. When several error types are reported, pipelines such as AutoVerus and VeruSAGE select the next repair target using a preset priority. Yet each repair changes the program and the errors that follow, so the same reported types can require different choices at different states. We present VeruSteer, which learns to select error types from the outcomes of alternative repair trajectories. It constructs repair trees offline and compares paths from the same initial program by verification success, repair rounds, and final verification progress. These comparisons supervise a selector that combines step-wise imitation with trajectory preference ranking. The selector uses self-attention over the program, verifier feedback, and earlier selections to rank the currently reported types. It replaces the default priority within a single repair trajectory, keeping the existing repair agents and adding no repair or verifier calls for selection. We evaluate VeruSteer by replaying its choices on stored AutoVerus and VeruSAGE test trees under four generation configurations. Across 1,270 test trees, VeruSteer increases verified outcomes from 185 to 194 (14.57\% to 15.28\%), gaining 12 successes and losing three for a net improvement of 0.71 percentage points. Among trees where the default fails but a recorded alternative verifies, VeruSteer succeeds on 3 of 4 AutoVerus trees and 9 of 11 VeruSAGE trees. Among trees with recorded alternatives where the default verifies, it retains success on 14 of 15 AutoVerus trees and 12 of 14 VeruSAGE trees. It also finds shorter successful trajectories and improves final progress on some trees where all recorded trajectories fail.

Wed 21 OctSoftware Engineering
The gist
Verus is a tool that helps check that Rust programs are correct by finding and fixing errors. The authors noticed that current methods fix errors in a fixed order, which is not always best because fixing one error can change which error should be fixed next. They created VeruSteer, an improvement that learns from past repairs to pick the best error to fix next, leading to more successful and faster program verification. This method works by comparing different repair paths and learning preferences from them, without making extra calls to repair or verify during use.
Open → 2610.29755v1

Verdict enables faster parallel verification of large software programs

VERDICT: Multi-Agent Parallel Modular Verification

Abstract: Deductive verification scales to large software systems through modular reasoning, where formal contracts summarize the behavior of individual functions and enable their independent verification. Its central bottleneck is specification synthesis: constructing the contracts required for modular verification. Recent advances in large language models (LLMs) have enabled automated specification synthesis at unprecedented scale. However, existing approaches remain fundamentally bottom-up, requiring callees to be verified before their callers. This dependency limits parallelism and provides no principled mechanism for resolving interprocedural inconsistencies that propagate across call chains. We present VERDICT, a multi-agent framework for parallelizing modular deductive verification of large-scale programs. VERDICT is built on two key principles. First, assumption-based parallel specification synthesis assigns an agent to each function and allows it to proceed immediately using assumed contracts for its callees, enabling verification to proceed in parallel across the program. Second, bidirectional interprocedural conflict reconciliation resolves the inconsistencies introduced by these assumptions: when a synthesized contract contradicts an assumption, agents propagate the necessary revisions both up and down the call graph until the contracts converge. Experimental results on real-world C programs show that VERDICT synthesizes higher-quality specifications than existing approaches while substantially reducing verification time. In particular, VERDICT is the first approach that scales to the complete 20,000-line X.509 parser, ruling out nearly all the potential runtime errors within hours, whereas prior tools like PREGUSS fall far short even after days of execution.

Wed 21 OctSoftware EngineeringLogic in Computer Science
The gist
Checking large software programs for errors can be slow because each function depends on others to be checked first. The authors developed Verdict, a system where multiple agents check different functions at the same time by making smart assumptions. When conflicts arise, these agents work together to fix mistakes until all function checks agree. This approach speeds up verification and finds better specifications, especially in big programs like a 20,000-line security parser.
Open → 2610.29147v1

Llms synthesize accurate memory frame specifications for c code

AutoFraming: Synthesizing Dynamic Frames of C Code with LLMs

Abstract: Large language models (LLMs) have shown considerable promise in synthesizing formal specifications from source code. However, existing approaches primarily focus on functional contracts and loop invariants, while largely neglecting frame conditions, which specify the memory locations that may or may not be modified during execution and constitute an essential part of formal specifications. To address this limitation, we propose an LLM-based approach for synthesizing ACSL frame specifications alongside functional contracts from C code. Our approach analyzes code property graphs (CPGs) to extract frame-relevant information from the input code and leverages this information to guide the LLM in generating accurate frame conditions. The resulting specifications capture both region-separation constraints and data dependencies that govern variable modifications. Experimental results demonstrate the effectiveness of our approach. On a benchmark of 84 ACSL-compliant functions from non-trivial real-world systems, our method successfully synthesizes error-free frame specifications for 92.9% of the functions, representing a 179% relative improvement over state-of-the-art techniques. On a second benchmark consisting of 51 functions, the success rate increases from 80.4% to 96.1%. Furthermore, when integrated as an auxiliary component into existing LLM-based ACSL-synthesis frameworks, our approach improves frame-specification generation performance by up to 61.9%.

Wed 21 OctArtificial Intelligence
The gist
Programs often change certain pieces of memory while running, and it is important to know exactly which parts are affected. The authors found that prior tools focused on the program's function but ignored these memory changes. They developed a way to use large language models (LLMs) combined with code analysis to describe precisely what parts of memory a C program can modify. Their method works much better than previous ones, producing accurate memory change descriptions for many real-world code examples.
Open → 2610.29046v1

Evaluation shows verifier acceptance overstates contract quality

VerusEval: Evaluating LLM-Generated Verus Specifications Beyond Verifier Acceptance

Abstract: Large language models (LLMs) are increasingly used to generate Verus contracts for Rust programs together with the proofs that establish them. Yet verifier acceptance, the common measure of success, shows only that the implementation satisfies the generated contract, so it leaves open whether the contract captures the intended behavior. Assessing specification generation therefore requires an evaluation methodology, not a single metric. We present VerusEval, a framework that evaluates generated contracts along six dimensions, including Verus-native checks for semantic triviality, validated input-output (I/O) suites, and contract equivalence, and that relates them so that the strength and blind spots of each become measurable. Evaluating 13,716 artifacts from four workflows, five LLMs, and two prompting settings on 762 tasks, we find that acceptance overstates quality: only 42.3\% of the accepted artifacts complete all three semantic checks without a flag, and across workflows and models, higher acceptance does not consistently come with more correct contracts. I/O evaluation rejects 23.6\% of the accepted artifacts, yet only 63.2\% of those that pass it are proved equivalent. Of the accepted artifacts flagged by contract comparison, 84.1\% have a rejected completeness obligation, and the direction of a failure prioritizes inspection of the generated contract or the reference; it does not by itself establish which artifact is defective. Screening and review further identify 36 candidate defects among 61 selected reference contracts, and repairing one of them makes 10 of its 11 failing artifacts equivalent. Based on these findings, we derive four actionable lessons for evaluation, generation, and benchmark maintenance.

Mon 19 OctSoftware Engineering
The gist
Verus contracts specify what Rust programs should do, and large language models (LLMs) can generate these contracts and their proofs. The authors found that just because a verifier says the program meets the contract doesn’t mean the contract correctly describes the program’s intended behavior. They created VerusEval, a tool that checks contracts in multiple ways, revealing that many accepted contracts still have problems. This helps developers better judge if generated contracts are truly good.
Open → 2610.26464v1

LLM enhances solving constrained Horn clauses with new under-approximation method

LLM-Assisted Bi-Approximate CHC Solving

Abstract: Constrained Horn clause (CHC) solvers often struggle to discover deep counterexamples whose derivations may require extensive rule unfolding. Although large language models (LLMs) can propose long-range symbolic relations, prior work on formally checked LLM-assisted verification has mainly focused on generating inductive invariants and concrete traces. We exploit this broader capability through Derivation Power Under-approximations (DPUs). Each DPU is a solver-certified under-approximation of the relation induced by a multi-step CHC derivation. An LLM proposes each DPU with symbolic intermediate-state witnesses that enable SMT validation without introducing additional quantifiers. Validated DPUs can be composed and reused soundly. Building on this mechanism, our LLM-assisted framework HornCraft combines invariant generation for over-approximation with DPU generation for under-approximation in CHC solving. On 260 linear and nonlinear integer-arithmetic CHC-COMP benchmarks left unresolved by a 30-minute Spacer run, HornCraft returns certified verdicts for 228 instances. It certifies 42 instances as unsafe, compared with 22 when DPU construction and reuse are disabled.

Fri 16 OctLogic in Computer Science
The gist
Finding errors in certain computer logic rules can be very hard, especially when solutions require many steps to show. The authors combine a big AI language model with formal checking to create a way to guess and verify parts of these complex solutions more easily. Their new method lets the AI suggest small pieces of a solution that a solver then checks rigorously, making it possible to solve many hard logic problems that previous methods missed. This improves both the detection of errors and the proving of correctness in software verification.
Open → 2610.23771v1

Monads classify program specifications with nondeterminism and state effects

A Taxonomy of Predicate Transformer Monads for Specifying Monadic Programs

Abstract: Monads of weakest precondition predicate transformers are the foundation of several verification frameworks for monadic programs. For specifying monadic computations with nondeterminism and nontermination, in addition to weakest preconditions, we introduce the first strongest postcondition monads covering all combinations of angelic or demonic nondeterminism and partial or total interpretations of nontermination. For extending these base strongest postcondition monads with side effects such as mutable state, monad transformers do not yield the expected monads, so we instead generalize the base monads to arrows and use arrow transformers. We give a taxonomy of weakest precondition and strongest postcondition monads, for the base monads and for their versions with state, and show that the known relationships between under- and over-approximate triples based on predicate transformers already hold at the level of the predicate transformers themselves. We use the predicate transformer monads to define under- and over-approximate triples and, where possible, Dijkstra monads. Finally, we relate these two specification styles.

Fri 16 OctProgramming Languages
The gist
Specifying what computer programs do can be tricky when programs have uncertain choices or do not always finish. This paper offers a way to describe programs using mathematical structures called monads, which capture outcomes before and after running programs, even with uncertain or incomplete behavior. The authors also explain how to handle changes in program memory and side effects more smoothly. Their work unifies different ways to describe program correctness and shows how these descriptions relate to each other.
Open → 2610.23604v1

Agent automatically builds test setups to catch software bugs

Towards Agentic Proof Harness Engineering

Abstract: Formal verification of real-world projects requires substantial manual effort, from specifying correctness properties to constructing the infrastructure needed to check them. We envision verification agents that assist developers throughout this process. Among the many tasks involved, one stands out as both foundational and amenable to automation: proof-harness engineering. A proof harness defines an isolated verification environment for a program unit, such as a function or module, by providing symbolic inputs, initialization code, and models of its dependencies. Today, proof-harness engineering remains largely a manual task performed by verification engineers. To explore the potential of coding agents for this task, we propose an agentic proof-harness engineer that automatically constructs verifier-ready harnesses from a software project and a designated verification target. We combine the agent with formal soundness and precision guards to validate generated abstractions and guide their refinement. We evaluate the feasibility of our approach in an exploratory case study on curl and libuv, using three historical assertion violations already embedded in the source code as verification properties. Our results show that the agent successfully constructs proof harnesses that enable CBMC to detect all three violations. We further demonstrate the potential for reusing these harnesses with other verification tools.

Fri 16 OctSoftware Engineering
The gist
Checking if software works correctly often requires experts to create special test environments called proof harnesses, which take a lot of manual work. The authors developed an automated agent that builds these proof harnesses by analyzing a software project and its components. They tested this approach on real software and showed that the agent helped find three known bugs successfully. This method could save time and effort in making software more reliable by automating a tricky part of the verification process.
Open → 2610.23241v1

Limitations on automated self-improvement in AI systems

The Self-Improvement Problem

Abstract: With the rise of large language models, agentic systems are becoming increasingly autonomous, as they write code, call tools, revise prompts, and propose modifications to their own components. This autonomy raises a fundamental question for safe self-improvement: can an automated gate like a reward model or an automated reviewer reliably decide whether a proposed update should be accepted? The difficulty is structural. The gate must be a terminating, computable procedure, while the property we ultimately care about, namely whether an update is a genuine semantic improvement, depends on potentially unbounded program behavior. We formalize this mismatch by modeling agents as programs and defining improvement in terms of a semantic score that need not be computable. We study two evaluation abstractions. The first is a certifier that approves or rejects an update. The second is a search procedure that, given access to a proposal generator, attempts to output some improving candidate if one exists. We show that, in the fully general setting, no terminating procedure can simultaneously guarantee reliability (never accepting a non-improvement) and non-conservatism (never missing an available improvement): self-referential constructions can force any such gate or searcher to fail. Randomized gates with bounded error face the same limit. We then identify a standard decidable regime used in practice (bounded evaluation and a finite proposal budget) under which exhaustive simulation yields a terminating search procedure with the desired guarantees. We also show the limit of this recovery: a chain of accepted updates can raise the bounded score in every round while the true score falls. Our results draw a boundary between unbounded, universal settings where correctness guarantees collapse and bounded settings where they can be recovered by design.

Thu 15 OctArtificial IntelligenceComputation and LanguageMachine Learning
The gist
The paper studies whether AI systems that improve themselves can safely decide which improvements to accept. It finds that no perfect method exists to always accept only improvements without missing any, due to fundamental logical limits. However, by restricting the situation—like limiting how far the system looks ahead—some safe methods become possible. Still, even these safe methods have subtle problems that can mislead the system. The authors’ work highlights where AI self-improvement is deeply hard and where practical solutions can work.
Open → 2610.21646v1

LeanPRM improves AI verification of complex math proof steps

LeanPRM: Lean-Grounded Process Supervision for Natural Language Proof Verification

Abstract: AI systems now write long and difficult mathematical proofs, and checking their step-by-step validity is becoming a bottleneck. A learned verifier could check proofs cheaply, but training one requires a correctness label on every step, and such labels are hard to obtain for open-ended proofs. Existing methods take them from human annotators, which is costly, or derive them from final answers, which proofs do not have, and formalizing each proof in Lean requires expert effort. We introduce LeanPRM, a framework that uses the Lean proof assistant to create step-level labels for natural-language proofs. A model writes a natural-language proof together with a paired formal proof, without feedback from Lean. Lean then labels every step, and a second model discards failures caused only by the formal syntax, so that the negative labels mark errors in the mathematics. LeanPRM contains 10,634 proofs with 152K labeled steps and no human annotation. A Qwen3-4B verifier trained on LeanPRM raises exact step-label accuracy on a held-out set of 200 proofs (LeanPRM-Bench) from 48.2 to 74.7, as opposed to 60.3 when the same base model is trained on PRM800K. It also selects better proofs in best-of-N selection on IMO-level problems, and outperforms the PRM800K-trained verifier on three of four external verification benchmarks. Training on LeanPRM improves verifiers at every size from 0.6B to 8B parameters on LeanPRM-Bench, Hard2Verify and IMO-GradingBench. Given the labels need no human annotation, LeanPRM can grow with the supply of formal statements, offering a path to step-level feedback on AI-generated proofs that are hard for humans to check.

Tue 13 OctMachine LearningArtificial IntelligenceLogic in Computer Science
The gist
Checking long and complicated math proofs made by AI is slow and difficult because every step must be verified as correct. The authors created LeanPRM, a new system that uses a formal math tool called Lean to automatically label each step in natural-language proofs without needing humans to check. This helps train AI verifiers to recognize valid and invalid steps much better. As a result, their approach improves proof checking accuracy and works well across different math problems, making it easier to spot errors in AI-generated proofs.
Open → 2610.17697v1

Claimcheck detects mismatch between code specs and natural language

claimcheck: Measuring and Improving Specification Faithfulness

Abstract: Formal verification proves that a program satisfies its specification, but says nothing about whether the specification captures what the author meant. As LLMs increasingly write both code and specifications, a gap between the author's natural-language requirement and the specification becomes a live risk. A machine-checked proof of a property narrower than the one requested is worthless but passes every check. Closing this gap is solving the spec formalization problem: given a natural-language requirement, produce a formal artifact whose meaning matches it. To measure the gap, we curate an end-to-end benchmark for spec formalization spanning four formal languages: Dafny contracts and Lean 4, Isabelle and Rocq theorem statements. Each of its 3,234 rows pairs a natural-language requirement with a formal artifact and a label established by execution, by proof, or by the benchmark it is drawn from. A third of the rows are meaning-preserving rewrites of the artifact that keep the faithful label, so a judge cannot score by detecting that a row was edited. We introduce claimcheck, a tool that detects incorrect formalizations: the formal artifact is translated back into plain English by a model that never sees the requirement, and a separate model, the judge, decides whether the informalization and the requirement express the same guarantee. On all four languages it gains 8.2 to 9.8 points of macro recall over a single call shown the requirement and the artifact, and 4.2 to 6.0 over that call handed the same list of meaning-preserving rewrites. Showing the judge the artifact as well costs 1.4 to 4.5 points. Across four judges that also see the artifact, the gain shrinks as the judge gets stronger, to within a point of the informed single call for the strongest.

Mon 12 OctComputation and LanguageArtificial IntelligenceProgramming Languages
The gist
Programs often come with formal specifications to verify correctness, but those specs might not match what the programmer really meant in plain language. The authors created a large dataset pairing natural-language requirements with formal specs and developed claimcheck, a tool that translates formal specs back into English and compares them to the original requirement. This helps catch when a spec is too narrow or off-target, which regular verification would miss. Their experiments show claimcheck improves detection accuracy for multiple formal languages.
Open → 2610.17358v1

Optimal translations link past temporal logic to deterministic automata

New Translations From LTL with Past to LDBA and DPA

Abstract: We present asymptotically optimal translations from linear temporal logic with past to limit-deterministic Buchi automata and onwards to deterministic parity automata. In contrast to previously known translations involving past, the ones presented here are incremental: states and transitions can be constructed as needed on-the-fly, and they do not involve backtracking in order to correct for temporal inconsistencies. The past is naturally encoded in the formula by alternating between weak and strong versions of past operators. To handle the difficulties that arise from the alternation of least and greatest fix-point operators (such as between the "until" operator and its weak counterpart), we rewrite the given formula based on the infinitary behavior of a given word with respect to subformulae rooted with such operators.

Sun 11 OctFormal Languages and Automata Theory
The gist
This paper tackles how to translate complex time-based logical statements that include past events into simpler machines that computers can run efficiently. The authors provide new methods that build these machines step-by-step as needed, avoiding backtracking or correcting mistakes later on. They handle tricky cases where logic alternates between conditions that must always hold and those that only need to hold sometimes, improving on older techniques. These improved translations can help computer systems analyze sequences of events more effectively.
Open → 2610.15479v1

Bisimulation invariant logic captures exponential space complexity classes

Capturing Bisimulation-Invariant Exponential-Space Complexity Classes

Abstract: Otto's Theorem characterises the bisimulation-invariant PTIME queries over graphs as exactly those that can be formulated in the polyadic mu-calculus. This extends to a characterisation of the full bisimulation-invariant exponential-time hierarchy, using a higher-order extension of the polyadic mu-calculus, called PHFL, which is naturally stratified by type order. The bisimulation-invariant fragment of k-EXPTIME is captured by the fragment of PHFL whose formulas have type order at most k. This is obtained using a generalisation of the Immerman-Vardi Theorem by Freire and Martins. Here we provide such a characterisation of the exponential-space hierarchy. We show that the bisimulation-invariant fragment of k-EXPSPACE is captured by the fragment of PHFL of type order k+1 whose formulas are tail-recursive. Tail recursion limits the interplay between fixpoints and higher-order functions so that model checking based on fixpoint iteration can be made more space efficient in a way comparable to tail recursion in programming languages. The capturing result makes use of a generalisation of Vardi's characterisation of PSPACE as first-order logic with partial fixpoints, namely that k-EXPSPACE is captured by higher-order logic of order k+1 with partial fixpoints.

Sun 11 OctLogic in Computer ScienceComputational Complexity
The gist
Computers can be asked complex questions about graphs, and some of these questions can be answered using special logical formulas. Previous work described how certain types of logic match problems solvable in a certain amount of time. This paper extends that idea to even harder problems that need more memory space, linking them to a new kind of logical formulas that are more limited in how they repeat themselves. The result helps understand which logical statements correspond exactly to these complex problems.
Open → 2610.15475v1

Faster formal checking of polyhedron vertices than informal methods

Formally Certifying the Vertex Set of a Polyhedron Faster than Informal Enumeration

Abstract: The computation of the vertices of a polyhedron described by a system of linear inequalities is a central problem in polyhedral computation. It is a fundamental step in the conversion between H-representations, by linear inequalities, and V-representations, by vertices and extreme rays. This operation plays an important role both in the study of polyhedra and their combinatorics in mathematics and in applications to software and system verification. We present a certificate-based approach for formally verifying the computation of the vertices of a polyhedron. Given an informally computed list of vertices, our method allows to certify in the proof assistant Rocq that the list is complete, or even exact. The cornerstone of the method is a new completeness criterion based on an abstract simplicial complex that generalizes a triangulation of the normal fan of the polyhedron. A significant advantage over previous approaches is that the usually expensive numerical computations are essentially reduced to membership tests to the polyhedron, while the other steps are cheap combinatorial tests. We implement the certification method and prove its correctness in the proof assistant Rocq. We experiment with it on a variety of polyhedra, including Birkhoff polytopes, cross-polytopes, cubes, permutahedra, hypersimplices, and high-dimensional polytopes involved in the disproof of the Hirsch conjecture. Our experiments show that certification with the Rocq-to-OCaml extracted checker is typically 1.5x to over 5x faster than vertex enumeration by the state-of-the-art informal C implementation lrslib of the reverse search method.

Thu 8 OctLogic in Computer Science
The gist
Finding all the corner points of shapes defined by linear inequalities is important in math and computer science but can be slow and error-prone. The authors developed a way to formally certify that a given list of these corners is complete and correct using a proof assistant, ensuring high reliability. Their method reduces complex calculations to simpler checks and has been proven faster than existing informal tools. They tested it on various complex shapes, showing both efficiency and rigor.
Open → 2610.11913v1

Cost efficient theorem proving improves program verification success rates

Cost-Efficient Theorem Proving via Agent Orchestration in Program Verification

Abstract: Program verification establishes software correctness through machine-checkable proofs constructed in theorem provers. It's a guarantee especially valuable for code generated by large language models (LLMs), which is fluent but carries no assurance of correctness. Almost all existing provers, however, pursue pass rates alone at whatever sampling or search budget it takes, and overlook the success-vs-cost frontier; yet real software often carries hundreds of interdependent proof obligations, so what matters at scale is not whether one theorem can be proved, but how many can be proved economically. We introduce CoCo-Prover, which formalizes cost-efficient program proving as metalevel decision-making under cost, grounded on two-level proof graphs: an AND/OR proof hypergraph within each declaration is joined to a lemma-dependency graph across declarations; and at each step, it answers two questions: which open goals to select, and which actions to purchase on these goals. Selection stays symbolic as a topological pass over the proof graphs. Action choice is agent orchestration via metalevel decision-making: an agentic router treats every bounded specialist invocation as a separately priced, best-effort computation, matching heterogeneous specialist agents together with configurations, under evolved routing rules as evidence accumulates. On five program verification benchmarks in Lean 4 including function-level CLEVER, VERINA, and AlgoVeri, and repository-level NTP4VC and Vero, we show that CoCo-Prover achieves a better success-vs-cost frontier than baselines including frontier coding agents and state-of-the-art LLM-based provers: it achieves the best solve rate on every benchmark and up to 100% on two benchmarks. It also reduces cost by up to 30.9% compared to the strongest baseline with the strongest LLM in our evaluation.

Wed 7 OctArtificial IntelligenceLogic in Computer ScienceProgramming Languages
The gist
Proving that software works correctly is important, especially for code made by large language models that can make mistakes. Most tools try to prove individual parts no matter the cost, but in big projects with many proofs, it's better to balance success and cost. The authors created CoCo-Prover, which smartly decides which proof goals to work on and which tools to use by coordinating different specialized methods efficiently. Their tests show CoCo-Prover can prove more things at a lower computational cost than previous methods.
Open → 2610.09681v1

Autoformalisation cannot guarantee correct natural language mathematical proofs

Navier-Stokes lost in translation: Why Lean verification of AI autoformalisation does not guarantee correct natural language proofs

Abstract: Autoformalisation is increasingly used to verify mathematical texts, including those generated by AI, as in OpenAI's announced proof of blow-up of solutions to the Navier-Stokes equations. In this process, an AI system translates the text from a natural language (NL) into a formal language such as Lean. Once this translation is done, the argument expressed in the formal language can easily be mechanically verified. The purpose of this article is to demonstrate why this process may offer no confidence in the original NL argument, owing to the various difficulties in performing the translation semantically faithfully. In particular, we highlight that the problem of resolving ambiguities in mathematical NL text, which is necessary in order to provide semantically faithful translation, is arbitrarily high up in the Solvability Complexity Index (SCI) hierarchy/arithmetical hierarchy (the SCI $= \infty$). Hence, informally, providing semantically faithful AI autoformalisation is harder than any computational problem including the Halting problem (which has SCI $= 1$). To demonstrate the effect of this result we provide several examples of AI mistranslations of NL statements and proofs into Lean in practice, resulting in mismatches between NL proofs and their Lean `verifications'. These include OpenAI's announced Navier-Stokes proof. In particular, we show that the formalised Lean proof does not correspond to the NL proof of blow-up of solutions to the Navier-Stokes equations.

Tue 6 OctArtificial Intelligence
The gist
Mathematics written in everyday language can be hard to translate into computer-checked formal code without losing or changing meaning. The authors show that this translation problem is extremely difficult—even harder than famous computer problems like the Halting problem. They give examples where AI wrongly translated math proofs, including a famous fluid dynamics problem, making the computer-checked proofs unreliable as evidence of the original argument's correctness.
Open → 2610.08144v1

SpecAgent improves program verification by automating formal specifications

SpecAgent: Empowering Program Verification with Agentic Synthesis of Formal Program Specifications

Abstract: Formal specifications are essential for deductive program verification, providing semantic abstractions for compositional verification of complex software. However, manually constructing specifications is labor-intensive, motivating automated synthesis. Despite recent advances in large language models (LLMs), existing approaches often rely on forward-only workflows and localized repair, limiting their effectiveness on real-world programs with complex dependencies among functions and loops. Verification failures may stem from previously generated specifications, causing cascading failures that local refinement cannot resolve. To address these challenges, we present SpecAgent, an agentic framework for synthesizing high-quality ACSL specifications for real-world C programs. SpecAgent integrates four components: dependency-aware planning to identify specification targets, retrieval-augmented generation (RAG) to provide relevant specification patterns and program context, agentic repair to diagnose defects and revisit dependent specifications, and agentic critique to assess and refine semantic strength beyond proof success. We evaluate SpecAgent on specification synthesis and program verification tasks. On 50 programs from 14 real-world repositories, SpecAgent with DeepSeek-V4 achieves 96.82% precision and 88.95% recall in synthesizing correct and strong specifications, outperforming all baselines. On 811 real-world verification targets, it successfully discharges 604, also surpassing existing baselines. These results demonstrate SpecAgent's effectiveness in synthesizing high-quality specifications and facilitating real-world program verification.

Sun 4 OctSoftware Engineering
The gist
Program verification helps check if computer programs work correctly, but writing the detailed rules (specifications) that make this possible is hard and time-consuming. The authors present SpecAgent, a tool that uses smart planning and advanced AI to automatically create these rules for real-world C programs. SpecAgent not only generates these rules but also checks and fixes mistakes by considering how different parts of the program depend on each other. This approach leads to better and more reliable program verification than previous methods.
Open → 2610.05132v1

Generalizations of shininess improve theory combination methods

Two generalizations of shininess

Abstract: Shininess is one of the main theory combination methods in Satisfiability Modulo Theories. We present two infinite families of generalizations of it: one involving a property between gentleness and shininess, which helps us see gentleness itself as a variation of shininess; and another having no further computability requirements on the weaker theory, in addition dropping the need for smoothness. We prove these methods sharp, and compare them with existing methods.

Sat 3 OctLogic in Computer Science
The gist
Combining different types of logical theories helps computers solve complicated problems more efficiently. Shininess is one such method used in this combination process. The authors introduce two new broader ways to generalize shininess, making it easier to work with theories that don’t meet previous strict requirements. This helps understand and improve existing methods, and they also compare their new approaches to older ones to show their strengths.
Open → 2610.04228v1

Constrained resolution advances program verification with symbolic execution

Symbolic Execution of Constrained Horn Clauses

Abstract: Constrained Horn clauses (CHCs) are a fragment of first-order logic widely used as an intermediate language for verification. We study constrained resolution as a calculus for reasoning about the satisfiability of sets of CHCs. Constrained resolution forms a simple alternative to model checking algorithms such as CEGAR and IC3 and is here shown to exhibit complementary features. We show that, when CHCs encode programs, forward symbolic execution corresponds to positive unit hyper-resolution, and backward symbolic execution to SLD resolution, which are special cases of constrained resolution. We formalize forward and backward reasoning for linear and non-linear CHCs and transition systems, prove refutational completeness under fair strategies, and develop subsumption criteria for pruning redundant derivations. We moreover show that backward resolution with subsumption generalizes $k$-induction to non-linear CHCs, and that forward constrained resolution is related to the problem of constructing proofs in incorrectness logic. Lastly, we provide an experimental evaluation in the Eldarica CHC solver on benchmarks from CHC-COMP.

Fri 2 OctLogic in Computer ScienceProgramming Languages
The gist
Verifying computer programs to ensure they behave correctly is a complex task. The authors study a method called constrained resolution, which uses logical rules to check if certain conditions hold true in program models. They show that forward and backward symbolic execution, techniques to simulate program behavior, fit into this framework and prove that their approach is complete and can efficiently avoid redundant checks. Their work helps improve verification tools and includes tests on benchmark problems.
Open → 2610.03345v1

Framework improves checking and trust in automated Lean proofs

FORALL-LEAN-AGENT for Auditable Reasoning in Formal Mathematics and Software Verification

Abstract: Coding agents increasingly automate Lean proof development, but successful compilation alone does not establish that a candidate proves the intended statement under acceptable assumptions. We present FORALL-LEAN-AGENT, a frontend-agnostic framework for auditable reasoning in formal mathematics and software verification. The framework combines isolated workspaces, Lean tools, and fresh review with statement comparison, axiom audits, and independent proof checking where supported. Verification evidence and reviewer decisions are bound to the same candidate artifact, making acceptance traceable. We evaluate the framework on VeriSoftBench, PutnamBench, and both problems in the Lean Eval softwareverification track. On the 100-task VeriSoftBench subset, integration with FORALLLEAN-AGENT raises benchmark-rule success from 93 to 100 for GPT-5.6 Sol at low effort while reducing cost from $69 to $62. The PutnamBench evaluation accepts all 672 problems at an average of $4.72 each. These results show that agent harness design can improve correctness and efficiency while providing evidence beyond aggregate solve counts.

Thu 1 OctSoftware EngineeringArtificial IntelligenceLogic in Computer Science
The gist
Automated computer programs can help write complicated math and software proofs using a system called Lean, but just finishing a proof doesn't guarantee it's actually correct. The authors created a new system called FORALL-LEAN-AGENT that helps check these proofs more carefully and makes it easy to audit the reasoning behind them. Their system uses separate work areas, special tools, and independent checks to make sure proofs follow the rules and assumptions properly. They tested it on several challenging sets of problems and found that it improved success rates and lowered costs when using AI agents to generate the proofs.
Open → 2610.00885v1

LLM powered framework builds machine-checked proofs for C code safety

Automatically Building Machine-Checked Assurance Cases from C Codebases to Requirements

Abstract: Large language models (LLMs) have shown promise in automating interactive theorem proving, yet verification of real-world C codebases requires more than discharging individual proof goals. The task involves jointly constructing expressive function specifications and their proofs, and ensuring that library interfaces compose along intended call sequences even without a designated client. This paper presents CCV, an LLM-assisted framework for building machine-checked assurance cases: structured, auditable artifacts supporting the claim that a C codebase meets its intended requirements. To model intended cross-interface use in open libraries, CCV constructs an interface protocol that exposes permitted call sequences and resource assumptions for review, with a conditional safety guarantee under verified contracts and caller obligations. CCV coordinates two complementary phases: (i) requirement-guided analysis and bottom-up construction of candidate specifications and protocols; and (ii) modular proof construction with feedback that revises the specifications and proofs. Implemented using VST in Rocq, CCV verifies memory safety and leak freedom for all 299 function definitions across six C benchmarks, including industrial cryptographic components, with less than one person-day of reported human effort per benchmark. The guarantees depend on disclosed contracts and assumptions; human review supplies the conformance judgments connecting the formal artifacts to the intended requirements.

Wed 30 SeptProgramming LanguagesSoftware Engineering
The gist
Verifying that complex C programs meet their requirements is hard because it needs detailed specifications and proofs that all parts work together correctly. The authors present a system called CCV that uses large language models to help build formal, checkable arguments that a C codebase is safe and meets its goals. CCV automatically creates specifications for functions and interfaces, checks proofs, and refines them iteratively with some human input. It has been tested on multiple real C projects, including cryptography code, with minimal human effort.
Open → 2609.40119v1

Fyan system improves accuracy and oversight in formal math proofs

Fyan: A Human--AI Harness with Semantic Auditing for Document-Level Formalization

Abstract: We present FYAN, a human--AI harness for document-level mathematical formalization. Rather than treating theorems in isolation, FYAN coordinates an end-to-end workflow spanning specification, proof planning, logical review, Lean proof construction, knowledge curation, and validation, with support for independent supervision and human guidance. A central component is evidence-grounded semantic auditing, which assesses whether formal statements faithfully preserve their informal specifications. A language model constructs structured evidence over local correspondences, omissions, scope, and logical relations, while a deterministic validator checks this evidence and produces reproducible judgments. When a substantive but admissible deviation is accepted, FYAN requires an explicit proof-transfer obligation connecting the formal statement back to a source-facing interpretation. With the same model (DeepSeek-V4.1-Flash) in every stage, FYAN proves 86 of 143 FormalTCS theorems under a strict Lean check, against 69 for a general agent harness, and raises the natural-language proof score from 0.501 to 0.851. On ConsistencyCheck, its semantic audit catches more inconsistent statements than a direct LLM judge, both on labels verified against the source (recall 0.777 vs. 0.636) and on the original labels (0.873 vs. 0.820), and localizes each mismatch it reports to a specific hypothesis, conclusion, or scope. FYAN also built ODENumLib, a 9,355-line Lean library for the numerical analysis of ordinary differential equation.

Wed 30 SeptArtificial Intelligence
The gist
Mathematical proofs written by computers often miss details or don't fully match the original ideas. The authors present FYAN, a system that helps humans and AI work together to formalize math proofs more accurately, checking entire documents rather than single theorems one by one. FYAN uses a language model to find and explain differences between informal statements and their formal versions, and a validator to confirm these checks, helping spot errors and better align the formal proofs with original intentions. This approach improved proof success rates and consistency checks compared to other automated methods.
Open → 2609.39228v1

Coding agents learn reusable proof guidance from verification failures

From Verification Failures to Reusable Guidance for Coding Agents

Abstract: Coding agents need to establish that a program satisfies a specification and that the specification captures the requested behavior. We study how expert diagnosis of verification failures can become reusable guidance for this work. Our approach combines executable language definitions in the K framework with a kit of procedures for constructing specifications, repairing proofs, and auditing their adequacy. A human-guided development campaign on HumanEval, a benchmark of 164 Python programming tasks, achieves a 164/164 success rate with the semantics and the kit, measured by final AI audit Pass verdicts after two targeted repairs. To examine whether auditing detects problems that successful proofs leave unresolved, we construct 12 author-reviewed pairs of clean and defective packages. Every package passes its K proofs, and completed audits identify all defects and accept all clean packages. We then use KleverBench to test specification and proof construction for 31 programs with changed operator meanings. Comparisons with complete acceptance rules and equally long generic advice yield mixed results across two model and budget settings, motivating further work on selecting useful guidance within resource limits. Human-reviewed Optimism proofs establish expected pause reverts for six operations within declared input bounds under London semantics with unbounded gas. We report progress, difficulties, and lessons toward agents that deliver programs with checkable correctness arguments.

Wed 30 SeptSoftware EngineeringArtificial IntelligenceLogic in Computer Science
The gist
It can be hard for coding agents to guarantee that computer programs do what they're supposed to do, and that the instructions they check against match what is really needed. The authors show a way to turn mistakes found during program checking into reusable advice that makes future program verification easier. They test this approach on Python coding tasks and find it helps catch hidden mistakes and confirm program correctness more reliably. Their work points toward smarter coding tools that provide proofs programs meet the right requirements.
Open → 2609.39022v1

Translating bach programs for better verification of shared data

Modelling Shared-Space Coordination in mCRL2: a Bach-to-mCRL2 Translation Framework

Abstract: Although significant research has focused on the theory and implementation of data-based coordination languages, the critical aspect of their automated verification using model-checking techniques remains underexplored, which is essential for ensuring reliability and correctness in distributed systems. Existing tools, such as Anemone, provide a solid foundation for reachability-based verification of Bach programs. While they effectively analyze properties expressed in terms of state attainability, extending support to more expressive temporal specifications-such as liveness properties or invariants over shared space contents-remains an open opportunity. Such extensions are important to capture comprehensive system behaviors, for instance, ensuring that "a request is always matched by a response" or that "no message is silently lost". Addressing this limitation, we propose an automated translation from Bach to mCRL2, which explicitly represents the shared space, thereby enabling the use of mCRL2's mu-calculus model checker to verify complex properties beyond simple reachability. Complementing this translation, we introduce a systematic method to analyze the shared space in mCRL2 concerning data reachability, by directly expressing properties over the shared space's contents in the mu-calculus, thus providing a clearer framework for verification. This approach enables a novel verification process that combines action-based properties with state-based properties over the shared space contents, a largely unexplored area in current coordination-language verification approaches, offering a new dimension of analysis

Tue 29 SeptLogic in Computer ScienceProgramming Languages
The gist
Making sure complex computer systems work right is hard, especially when many parts share and change data. The paper shows how Bach programs, which coordinate data sharing, can be translated into another language called mCRL2. This helps check not just if states can happen, but also if important ongoing rules are followed, like responses always matching requests. The authors also provide a way to write and check these detailed rules directly about the shared data, improving how system correctness is verified.
Open → 2609.37726v1

Parametrized functors enable refined equivalence reasoning for software behaviors

Coinductive reasoning for parametrized functors and monads

Abstract: Lax extensions (also called relators or relation liftings) are a categorical notion to reason about functors acting on functions and relations in a compatible way. They play a central role to develop sound proof principles for behavioral equivalence of state-based systems and are also important for establishing contextual equivalence for effectful programs. In this paper, we develop the theory of lax extensions for parametrized functors and monads and consider notions of behavioral preorders, equivalence relations or metrics which can now be modulated by additional parameters. From an operational viewpoint, we replace standard contextual equivalence where we quantify over all possible contexts by a refined notion of equivalence where the user can regulate the allowed contexts via chosen parameters.

Mon 28 SeptLogic in Computer ScienceProgramming Languages
The gist
Comparing computer programs or systems usually involves checking if they behave the same in every possible situation. The authors develop a way to adjust what situations count by adding parameters to how these behaviors are compared. This lets programmers control the scope of comparison, making the process more flexible and precise. Their work uses advanced math tools called lax extensions to support these new forms of comparison.
Open → 2609.35691v1

ProofLoom automates formal proofs for complex stochastic optimization algorithms

ProofLoom: Proof-Obligation-Driven Theory Construction for Autoformalizing Research-Level Stochastic Optimization

Abstract: Formalizing research-level stochastic optimization in Lean requires both an algorithm model and domain theory connecting foundational libraries to convergence proofs. Revising a model to restore provability can change the mathematical claim. We introduce ProofLoom, a fully automated LLM-agent system for Proof-Obligation-Driven Theory Construction. Given a published algorithm, target theorem, and source proof, ProofLoom autonomously constructs the Lean model and supporting theory. Open proof obligations drive the development of definitions, interfaces, lemmas, and proof plans. Signature contracts record evidence and obligations for model revisions; an independent Judge rejects unsupported assumptions and weakened conclusions. Planner expands the published argument into intermediate claims, and Audit checks whether the Lean proof follows it. Across tasks, SOptLib accumulates verified mathematics and construction experience: reusable results are extracted, generalized, and verified, while modeling decisions and failed proof routes are recorded. Later tasks retrieve these results and records and contribute new developments, forming a cycle of construction, accumulation, and reuse. On fifteen textbook and research-paper tasks, ProofLoom obtains mean human ratings of 6.3/7 and 6.4/7, compared with 4.9/7 and 5.0/7 for the strongest of six baselines. Across 33 developments, it produces 490,693 lines of algorithm-local Lean code with no sorry. The formalizations also expose 28 incorrect formulas, proof gaps, and algorithm-analysis mismatches in published sources across 22 developments, each with checked evidence.

Mon 28 SeptArtificial Intelligence
The gist
Formalizing complex math proofs about algorithms that work with randomness is very hard and error-prone. The authors created ProofLoom, a system that uses AI to automatically build and check these formal proofs using a computer language called Lean. It reads published algorithms and proofs, then constructs detailed models and supporting math while catching mistakes or gaps in the original work. The system improves over time by reusing proven math and failed attempts from past tasks.
Open → 2609.34960v1

Symmetric nets get better tools for checking system properties

Semi-automated Verification of Symbolic Invariants In Extended Symmetric Nets

Abstract: Structural analysis is central to Petri Net (PN) research, complementing state-space methods while avoiding their combinatorial issues. It is well studied for classical PNs but much less for High-Level Petri Nets (HLPN). Symmetric Nets (SN), a common HLPN formalism, use compact annotations to encode behavioral symmetries, allowing symbolic reachability graphs and associated lumped Markov chains for stochastic SN. In the past two decades, specific structural techniques for SN have emerged, notably the SNexpression tool, which implements a calculus for symbolic structural relations such as conflict and causality. We propose using this calculus to semi-automatically verify symbolic structural invariants, currently possible only for restricted SN subclasses, for an extended SN formalism (ESN) closed under key functional operators. We focus on flows and outline, at least in theory, how to construct a flow-generating family. We also sketch a framework for formally verifying a wider range of invariant properties. Representative examples illustrate the main concepts.

Mon 28 SeptSymbolic ComputationSoftware Engineering
The gist
Systems called Symmetric Nets help model complex behaviors with repeated or similar parts, but checking their properties is hard and often slow. The authors improved a method to semi-automatically verify certain properties called invariants in a more general type of Symmetric Nets, called Extended Symmetric Nets. They use advanced symbolic techniques that avoid exploring every possible system state. Their work helps verify these systems more efficiently and could lead to more reliable designs in complex fields.
Open → 2609.34891v1

Verification skill reduces assumptions for linked list correctness proofs

Fewer Assumptions by Design: A Reusable Skill for LLM-Assisted Verus Verification

Abstract: LLM-assisted Verus verification is a less tedious method to verify Rust implementations, but paired with self-referential structures, e.g., Doubly Linked Lists (DLLs)—notoriously difficult to formalise for verification—it becomes a substantially more demanding verification task. Moreover, a specification weakness can arise when verification relies on unproven or invalidated assumptions, such as axiomatic lemmas and assume statements. We investigate whether LLM agents can synthesize strong DLL specifications while minimizing these trusted base. The analysis follows three different approaches: manual verification, property-specific verification, and a defined skill for the specific case of DLLs and certain properties of this type of data structure. The skill encodes domain knowledge and a task-decomposition strategy. We show that an LLM agent equipped with a carefully designed verification skill can generate strong, low-trust specifications for DLLs in Verus.

Mon 28 SeptArtificial IntelligenceProgramming LanguagesSoftware Engineering
The gist
Verifying that complex computer programs work correctly can be very difficult, especially for structures like doubly linked lists, which have two-way connections and are tricky to check. The authors studied whether large language models (LLMs) can help create strong technical descriptions (specifications) for these lists without relying on unproven assumptions that might make the verification unreliable. They created a special skill for an LLM that includes expert knowledge and a way to break down the task, allowing the model to produce trustworthy specifications for doubly linked lists in the Verus verification tool. This approach helps make the program verification process less tedious and more reliable.
Open → 2609.34886v1

Formalizing computing models for machine verification and proofs

The Formalization of two Computational Models in Dafny

Abstract: We describe the formalization in Dafny of two computational models, Turing Machines and the Lambda Calculus. We present several application of the formalizations: machine proofs of termination for Turing machines, Dafny proofs for Church encodings, and a mechanized proof of the Church-Rosser theorem.

Mon 28 SeptLogic in Computer ScienceFormal Languages and Automata TheoryProgramming Languages
The gist
Computers can be understood using simple models like Turing Machines and the Lambda Calculus, which explain how computations happen step-by-step. This paper shows how these models were precisely described using a programming language called Dafny. The formal descriptions help prove that certain machines always finish their work and verify important mathematical properties about functions. This helps ensure that computer systems behave correctly by checking their fundamental building blocks.
Open → 2609.34883v1

Resolvable network method improves SAT solving without subsumption checks

Subsumption-Free Private-Pivot Learning in Resolvable Network-Based SAT Solving

Abstract: A resolvable network is a directed-graph representation of SAT: every SAT instance can be translated into an RN, and every RN has an associated CNF formula. Each reach represents one clause. In a mixed reach, the head and tail are disjoint sets of variables containing the variables occurring negatively and positively in the clause, respectively; the distinguished symbols Source and Sink represent a missing negative- or positive-literal side. RN-Solver is a proof-of-concept SAT solver based on this representation. Its all-positive clauses are represented by white reaches, and its token distributions are the inclusion-minimal hitting sets of the current white tails, generated by monotone CNF-DNF dualization. RN-Solver learns new white reaches by private-pivot resolution, a structured resolution sequence that uses old white reaches as pivot witnesses. In the original algorithm, every candidate white reach generated by such a chain was followed by a global subsumption test against the current network. Profiling showed that this subsumption test can dominate the runtime on random 3-SAT instances. We show that this check is unnecessary when the mixed reach used for learning is falsified by the current token distribution, meaning that the distribution makes all variables in the head true and all variables in the tail false. The key invariant is simple: the resulting white tail is disjoint from the triggering token distribution, while the same distribution intersects every old white tail. Hence no old white reach can subsume the generated reach. This structural observation allows us to construct a simpler, snapshot-based, subsumption-free variant of RN-Solver, where each main-loop iteration uses a fixed set of old reaches and installs newly generated white reaches only at the end of the iteration. We prove soundness of the revised algorithm. Empirical evaluation confirms the elimination of the targeted checks: within an 8 second budget, snapshot/full-DNF solves 963 of 1,000 uf20-91 instances, compared with 724 for the original control flow. A separate 100-instance comparison identifies exact incremental DNF as the most effective of the three tested configurations.

Mon 28 SeptLogic in Computer Science
The gist
SAT problem solvers try to find assignments for variables that satisfy logical formulas. The authors study a special way to represent SAT problems using directed graphs called resolvable networks. They show that a certain time-consuming check in their solver can be skipped without losing correctness by using structural properties of the network. This makes their solver faster on tested problems, solving more instances within a time limit. Their approach also simplifies the solver’s design.
Open → 2609.34880v1

DueList enhances automated reasoning about lists in SMT solvers

DueList: A Theory of Lists with Combinators for SMT Solvers

Abstract: Formal verification tools commonly rely on SMT solvers to automatically reason about programs, leveraging a range of logical theories, e.g., linear integer arithmetic, arrays, or strings, to encode program constructs and verification conditions. Despite recent advances, such solvers still struggle when reasoning about recursive data structures such as lists, which are pervasive in modern functional languages. Additionally, lists are commonly used in conjunction with higher-order combinators to, e.g., generically apply a function to all elements of the list. In this work, we provide first-class support for reasoning about lists within SMT solvers. We focus on lists of arbitrary size that, following the map-reduce paradigm, can be manipulated exclusively through a set of abstract combinators. To this end, we introduce DueList, an abstraction-refinement approach geared towards list reasoning, which we implement on top of off-the-shelf SMT solvers. To evaluate the efficiency of our approach, we assemble a diverse set of 752 benchmarks curated from previous works and real-world programs, and compare DueList against state-of-the-art solvers such as Z3 and CVC5. Our experimental evaluation shows that DueList extends reasoning facilities of existing solvers, allowing to conclude about the (un)satisfiability of a larger range of problems, while outperforming existing solvers in the vast majority of previously supported cases.

Thu 24 SeptProgramming Languages
The gist
Automated tools that check the correctness of computer programs often struggle with reasoning about lists, especially when these lists are used with complex operations called combinators. The authors created DueList, a new approach that helps these tools better understand and verify properties of lists by focusing on abstract operations like map and reduce. They tested DueList on hundreds of examples and showed that it solves more problems and works faster than popular existing tools. This advancement can make program verification more reliable when functional programming features are involved.
Open → 2609.29962v1

Algebraic model improves reasoning about program variables and state

Scenes: A Meta-Logical Algebra for Mutable State

Abstract: Modelling of mutable state spaces and precisely describing how variables are manipulated in a program is a fundamental problem in compositional verification. Though we can make use of the embedded abstract syntax of a program for such analysis, this runs contrary to the shallow-embedding approach, and hampers efficient proof automation. On the other hand, lenses and prisms provide an elegant algebraic foundation for modelling state, which provide sufficient structure to provide meta-logical program analysis, but without requiring a deep embedding. Nevertheless lenses, as complex algebraic objects, cannot easily be combined, complemented, or collected in sets. In this paper we contribute an accompanying algebraic structure called the scene, which allows us to characterise the set of variables, or coordinates, in a state space. Scenes intuitively correspond to sets of lenses, but like lenses they are purely semantic algebraic objects. We demonstrate that scenes provide us with sufficient structure to characterise the lens-based meta-logical properties, like independence and equivalence. Moreover, we introduce the notion of a scene space, analogous to a vector space, which allows us to recover a set-like algebraic structure. Finally, we show how scenes allow us to characterise the free and bound variables of expressions and programs, without any need for syntax, and demonstrate their use for reasoning about programs by deriving reasoning principles for the parallel composition operator.

Thu 24 SeptLogic in Computer Science
The gist
Understanding how a computer program changes and uses its variables is tricky but important. The paper introduces a new algebraic tool called scenes that groups and describes variables in a program without relying on complex syntax. This helps in analyzing and verifying how programs behave, particularly in parallel tasks, by focusing on the underlying mathematical structure. The authors also develop a way to treat these scenes like vector spaces to make them easier to work with.
Open → 2609.29380v1

Generation accounting improves stability of SMT solver proofs

A Deeper Look at Depth: Stable Generation Accounting for Quantifier Reasoning

Abstract: SMT solvers make automated verification convenient. At the same time, solvers suffer from instability, whereby seemingly inconsequential changes to the input may cause a previously quickly produced proof to fail or time out. This paper addresses a common cause of outcome instability (i.e., unsat/unknown fluctuations) in the context of program verification. We demonstrate that the generation (i.e., depth) accounting used to make quantifier instantiation practical and implemented in multiple state-of-the-art SMT solvers is non-confluent (i.e., prone to divergence), and that this leads to instability. We then address this deficiency and develop a new accounting method that is stable. The new method is justified using a sequence of refinements from an abstract, confluent solver model all the way to our implementation in Z3. Our empirical evaluation demonstrates that our implementation reduces outcome instability by 94% in the unstable core of the Mariposa benchmark without leading to performance regressions.

Tue 22 SeptLogic in Computer Science
The gist
When software tries to check if programs are correct, it often uses special tools called SMT solvers. These solvers can sometimes be unstable—small changes can make them take much longer or fail unexpectedly. The authors studied why this happens and found that the way these tools keep track of certain logic steps (called quantifier instantiations) causes this problem. They created a new way to track these steps that leads to much more stable results without slowing the solver down. Their improvements could help make software verification more reliable.
Open → 2609.26345v1

Encoding leans math library into dedukti logical framework

Encoding Lean's Type Theory in Dedukti

Abstract: The Lean proof assistant has a rich library of mathematical formalizations that are interesting to users of other proof assistants. To help with the translation of this library to other systems, we present a theory in the Dedukti logical framework in which one can encode Lean terms and types, and define a typability-preserving translation from some large subset of Lean to that Dedukti theory.

Mon 21 SeptLogic in Computer Science
The gist
Proof assistants like Lean help people write and check complex math on computers, but different proof assistants use different languages. The authors created a way to translate much of Lean's math work into another system called Dedukti without breaking the meaning or types of the math statements. This translation helps different proof assistant users share and build on each other's work more easily. It makes Lean's large library more accessible to users of other proof systems.
Open → 2609.24604v1

Lean features simplify and speed up Iris concurrency proofs

Iris in Lean

Abstract: The Iris framework for concurrent separation logic has been widely used for program verification research. An important factor contributing to the framework's adoption is its high-quality mechanization in Rocq. This mechanization uses a number of Rocq features in sophisticated ways, including a carefully constructed algebraic hierarchy for modeling separation logic resources, and a proof mode for embedded separation logic proofs, which combines custom Ltac with extensible typeclasses. The library has been developed for over a decade with dozens of contributors, with an emphasis on modularity and maintainability. We explore how Lean features like flexible metaprogramming and quotient types can simplify the design and usage of Iris. Using these features, we provide a novel implementation of the Iris proof mode with improved performance, simplify the handling of equivalences through quotient types, build a variant of Diaframe proof automation, and provide convenience features like automatic construction of Iris fixed points. Building on Lean lets us integrate with the extensive Mathlib library, allowing us to re-use results from this library for program verification tasks that have heavy mathematical dependencies, as we demonstrate with an application to probabilistic program verification.

Mon 21 SeptLogic in Computer ScienceProgramming Languages
The gist
Verifying that programs with multiple parts running at the same time behave correctly is very challenging. Iris is a framework that helps by using a special kind of logic with powerful tools built in the Coq system. The authors show how moving Iris to the Lean proof assistant, which has flexible programming features and other advantages, makes the logic easier to use and faster. They also combine Iris with a large math library in Lean to check programs that involve probability. This work helps programmers and tool builders verify complex software more efficiently.
Open → 2609.24252v1

Improved area limits for shapes covering all unit-length arcs

Improved bounds for universal convex covers of unit arcs

Abstract: Moser's worm problem asks for a planar region of least area containing a congruent copy of every unit arc. We show that the infimum area $α$ among convex universal covers satisfies $0.239\leα\le0.24633\ldots$, reducing the gap between the previous refereed bounds by over $75\%$. For the lower bound, we choose four unit polygonal arcs and prove by finite subdivision that, however they are placed, their convex hull has area at least $0.239$. For the upper bound, we construct a quadrilateral of area $0.24633\ldots$ and prove cover universality by showing that its support inequalities force uncovered arcs to have length greater than one. The full proof is formalized in Lean 4 and verified by the Lean kernel. Code and certificates are available at https://github.com/ethan-keller/moser-worm-improved-bounds.

Fri 18 SeptComputational Geometry
The gist
Imagine trying to find the smallest flat shape that can hold every possible curve of length one. The authors improved the known range for the smallest such convex shape's size, making the estimates much closer. They proved the shape must be at least 0.239 square units in area and found one with 0.24633 square units that works. Their proof involved checking specific simple shapes and using a computer to verify the details.
Open → 2609.21968v1

Neural guidance improves theorem prover performance within specific domains

Teaching Vampire New Tricks: An Experimental Study of Neural Clause Selection

Abstract: A neural clause-selection guidance approach in the Vampire theorem prover was recently shown to substantially improve the success rate of the prover's default strategy on the TPTP benchmark. We experimentally study the impact of the approach across several ITP-derived benchmark sets and its interaction with theorem proving strategies. We find that while the neural guidance consistently improves performance within individual benchmark domains, cross-benchmark application of guiding models underperforms the plain default strategy. This can be remedied by training a single model on all datasets at once. Such a model, although more expensive to obtain, helps Vampire almost catch up in performance across all datasets. The picture when considering combined strategies is less clear-cut, indicating persisting value of neural guidance but under diminishing returns.

Mon 14 SeptLogic in Computer Science
The gist
The paper studies using AI to help a computer program called Vampire that proves math and logic statements. They find that AI helps Vampire do better on similar kinds of problems but struggles when used across different problem types. Training a single AI model on all problem types at once allows Vampire to perform well on all of them. Combining AI guidance with other methods still helps, but the improvements become smaller.
Open → 2609.16228v1

Programmable tool helps build and improve compiler rewrite rules

Equality saturation theory exploration `a la carte

Abstract: Rewrite rules are critical in equality saturation, an increasingly popular technique in optimizing compilers, synthesizers, and verifiers. Unfortunately, developing high-quality rulesets is difficult and error-prone. Recent work to automatically infer rewrite rules does not scale to large terms or grammars. Users struggle to guide inference and incrementally construct rulesets because existing rule inference tools are monolithic and opaque. As a result, most equality saturation users still manually develop and maintain rulesets. This paper proposes Enumo, a new domain-specific language for programmable theory exploration. Enumo provides a small set of core operators that enable users to strategically guide rule inference and incrementally build rulesets. Short Enumo programs easily replicate results from state-of-the-art tools like Ruler, but Enumo programs can also scale to infer deeper rules from larger grammars than prior approaches. Enumo's composable operators even facilitate developing new strategies for ruleset inference. We introduce a new fast-forwarding strategy which does not require evaluating terms in the target language, and thus supports domains that were out of scope for prior work. Enumo is also easy to extend: two new operators suffice to incorporate large language models into rule inference, where they complement guided search. We evaluate Enumo and fast-forwarding across a variety of domains. Compared to state-of-the-art techniques, Enumo can synthesize better rulesets over a diverse set of domains, in some cases matching the effects of manually developed rulesets in systems driven by equality saturation.

Sun 13 SeptProgramming Languages
The gist
Making computers run programs faster or prove program properties often needs rules to rewrite code in smarter ways, but creating these rules is hard. The authors designed Enumo, a new language that helps users write and improve these rules step by step, combining automated help and human guidance. Enumo can handle more complex rules and bigger programming languages than older tools, even using large language models to assist. Their approach can produce rules as good as ones made by hand in some cases and works faster without checking code outcomes directly.
Open → 2609.14527v1

Counting distinct topological bases for finite sets of size N

On the Number of Distinct Topological Bases of a Finite Set of Size $N$

Abstract: For a finite set $S$ with $\lvert S\rvert = N$, the number of families $\mathcal{B} \subseteq \mathcal{P}(S)$ that are topological bases is $\#(N) = \sum_{\mathcal{T} \in \operatorname{Top}(S)} 2^{\lvert\mathcal{T}\rvert - \lvert\mathcal{M}_{\mathcal{T}}\rvert}$, where $\mathcal{M}_{\mathcal{T}}$ is the canonical minimal basis of minimal open neighborhoods. The identity is proved in Lean 4 / Mathlib (`CARDB.lean`): bases generating $\mathcal{T}$ are exactly the sets with $\mathcal{M}_{\mathcal{T}} \subseteq \mathcal{B} \subseteq \mathcal{T}$. The small-$N$ table and the discrete-dominance sandwich are proved in `CARDB/SmallN.lean` and `CARDB/Asymptotics.lean`.

Sat 12 SeptLogic in Computer Science
The gist
When you have a set with a certain number of items, there are many ways to build a structure called a topology on it. The authors found a precise formula for counting how many different basic building blocks, called bases, can generate these topologies. They used a computer proof assistant called Lean 4 to verify their results and explored small examples and growth behavior. This work helps in understanding the underlying complexity of finite topologies.
Open → 2609.14102v1

Improving SMT solvers by learning from non-ground conflicts

Extending SMT Solving with Non-Ground Clause Learning

Abstract: Quantifier instantiation is currently the main approach to non-ground SMT solving: solvers generate ground instances and solve the resulting ground SMT problems with CDCL(T)-style reasoning. When a conflict is found, conflict analysis learns only a ground clause, even though the conflict comes from instances of non-ground clauses. Yet non-ground reasoning can give exponentially shorter proofs than purely ground reasoning. We propose a calculus that consists of ground instantiations, CDCL(T)-style rules, and non-ground conflict analysis. The solver reasons on ground instances, but the resolution steps of conflict analysis are performed on their original non-ground clauses. This produces learned clauses that are typically more general than the ground conflict. With a suitable strategy, the learned clauses are even non-redundant. We also show how chronological backtracking can be included in SMT solving. Our calculus gives a common setting for CDCL(T)-style SMT solving, a range of instantiation-based procedures, and non-ground clause learning, and we prove that it simulates CDCL, SCL(FOL), SCL(T), and even Resolution.

Thu 10 SeptArtificial IntelligenceLogic in Computer Science
The gist
Solvers that check logical formulas often work by turning general rules into specific examples. When a contradiction happens, current methods only learn from these specific examples, missing the chance to learn more general lessons. The authors develop a new way to analyze contradictions that reasons directly with the original general rules, allowing the solver to learn broader facts and avoid repeating mistakes. This approach also integrates a technique called chronological backtracking to make the solving process more efficient.
Open → 2609.11509v1

Epistemic dynamic logic models noisy runtime verification monitorability

A Formal Framework for Noisy Runtime Verification

Abstract: We introduce the logic EDMon---an epistemic dynamic logic meant to model monitorability concepts in noisy runtime verification. Its syntax and semantics are defined and explained and the connection between EDMon and monitorability and noisy runtime verification concepts is explored. We then demonstrate that EDMon is sufficient to capture many of the results in the noisy runtime verification literature and catalog its relation to nearby logics and describe a large class of its theorems.

Wed 9 SeptLogic in Computer Science
The gist
Computers often check their behavior while running, but noise or errors can make this hard. The paper presents a new logic called EDMon that helps describe and understand how to monitor programs even when the observations are noisy. The authors show how EDMon captures many existing ideas in noisy runtime verification and connects to related logics. This helps clarify what can and cannot be reliably monitored under noisy conditions.
Open → 2609.10462v1

Simpler proof shows small automata separate binary words efficiently

An Elementary Proof of the $\widetilde O(n^{1/3})$ Bound for Separating Words

Abstract: For two distinct binary words of length $n$, the separating words problem asks for a small deterministic finite automaton that accepts exactly one of them. Chase proved a $\widetilde O(n^{1/3})$ upper bound using a complex-analytic estimate for sparse polynomials. We replace that estimate by a finite-difference argument and a second-order real recurrence cutoff. The resulting elementary proof gives an explicit bound of $O(n^{1/3}(\log n)^{7/3})$ states.

Tue 8 SeptFormal Languages and Automata TheoryComputational Complexity
The gist
The paper deals with a puzzle about telling two different binary strings apart using a very simple machine called a deterministic finite automaton (DFA). Previous work showed that such a machine only needs about the cube root of the string length in states, but the proof was complicated. The authors found a much simpler way to prove this, using basic math tools, and gave a clear formula for how big the machine needs to be. This makes understanding and using the result easier for people working with these machines.
Open → 2609.08191v1