Automating Proofs of Data-Structure Properties in Imperative Programs
Duc-Hiep Chu, Joxan Jaffar, Minh-Thai Trinh

TL;DR
This paper introduces an advanced automated proof method for reasoning about data structures in imperative programs, overcoming limitations of existing unfold-and-match approaches by incorporating induction hypotheses for more effective verification.
Contribution
The authors present a novel proof technique that extends current methods with automatic formula rewriting and induction hypotheses, enabling systematic reasoning about complex program obligations.
Findings
Successfully verified common data structure lemmas
Eliminated the need for user-provided lemmas in benchmarks
Enhanced verification efficiency by reducing search space
Abstract
We consider the problem of automated reasoning about dynamically manipulated data structures. The state-of-the-art methods are limited to the unfold-and-match (U+M) paradigm, where predicates are transformed via (un)folding operations induced from their definitions before being treated as uninterpreted. However, proof obligations from verifying programs with iterative loops and multiple function calls often do not succumb to this paradigm. Our contribution is a proof method which -- beyond U+M -- performs automatic formula re-writing by treating previously encountered obligations in each proof path as possible induction hypotheses. This enables us, for the first time, to systematically reason about a wide range of obligations, arising from practical program verification. We demonstrate the power of our proof rules on commonly used lemmas, thereby close the remaining gaps in existing…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Formal Methods in Verification · Software Engineering Research
