Partial Contracts Suffice: Sound, LLM-Inferred Regression Verification
Not on the map. Why?
Abstract (arXiv)
Software evolves continuously, yet ensuring that a patch preserves intended behavior without re-verifying an entire codebase remains difficult. Regression verification addresses this problem, but existing techniques require expensive whole-program reasoning or rely on manually written specifications that are rarely available in practice. We present the first contract-based regression verification tool. Contract soundness is ensured by proving all function versions match the behavior. The contract then verifies program flow via assume-guarantee. We ask whether a partial, caller-sufficient contract, rather than a full behavioral specification, is enough. On Frama-C-Problems we strengthen each inferred contract past what the caller needs and measure how much tighter it becomes. It barely moves: for most targets in every model the caller-sufficient contract is already the tightest the loop reaches, and our tightness comparator rates the partial and strengthened contracts equivalent for the large majority of targets it can compare. Partial-spec contracts thus capture nearly all the attainable tightness, so stopping at caller-sufficiency costs almost nothing. The regression check underneath is sound: on the third-party EqBench-C suite it never fabricates an equivalence, returning zero false proofs and reporting an unprovable difference instead. It also surfaced nine pairs that EqBench mislabels as equivalent, more than a concurrent tool reports. The contracts themselves are inferred automatically from the checker's own counterexamples, with no separate specification step; on Frama-C-Problems and the ANSSI X509 parser this reaches a verification rate comparable to tools AutoSpec and Preguss, while a passing result certifies at least as strong a property, which we call safety-preserving conditional equivalence: enforcement plus caller-sufficiency.
Key facts. No citing papers in the map yet (data through 14 Oct 2026). Builds on 20 of its 58 references that are in the map. First posted on arXiv 11 Jul 2026.
Builds on
20 of 58 references.
References · 20
- 2024Enchanting Program Specification Synthesis by Large Language Models using Static Analysis and Program Verificationcited by 58
- 2025EquiBench: Benchmarking Large Language Models' Reasoning about Program Semantics via Equivalence Checkingcited by 24
- 2026DafnyPro: LLM-Assisted Automated Verification for Dafny Programscited by 11
- 2024dafny-annotator: AI-Assisted Verification of Dafny Programscited by 8
- 2024Mokav: Execution-driven Differential Testing with LLMscited by 6
- 2024Specify What? Enhancing Neural Specification Synthesis by Symbolic Methodscited by 6
- 2025Beyond Postconditions: Can Large Language Models infer Formal Contracts for Automatic Software Verification?cited by 6
- 2025A Tale of 1001 LoC: Potential Runtime Error-Guided Specification Synthesis for Verifying Large-Scale Programscited by 6
- 2025Quokka: Accelerating Program Verification with LLMs via Invariant Synthesiscited by 4
- 2025Inferring multiple helper Dafny assertions with LLMscited by 4
- 2025AutoDeduct: A Tool for Automated Deductive Verification of C Codecited by 2
- 2026CIll: CTI-Guided Invariant Generation via LLMs for Model Checkingcited by 2
8 more
- 2021PEQcheck: Localized and Context-aware Checking of Functional Equivalence (Technical Report)cited by 1
- 2023PASDA: A Partition-based Semantic Differencing Approach with Best Effort Classification of Undecided Casescited by 1
- 2025cozy: Comparative Symbolic Execution for Binary Programscited by 1
- 2025UnitTenX: Generating Tests for Legacy Packages with AI Agents Powered by Formal Verificationcited by 1
- 2025BALI: Branch-Aware Loop Invariant Inference with Large Language Modelscited by 1
- 2026Evaluating LLM-Generated ACSL Annotations for Formal Verificationcited by 1
- 2026Quantitative Symbolic Patch Impact Analysiscited by 1
- 2026ConVer: Using Contracts and Loop Invariant Synthesis for Scalable Formal Software Verificationcited by 1
Built on by
Not cited yet.