Compositional Invariant Generation via Linear Recurrence Analysis
Azadeh Farzan, Zachary Kincaid

TL;DR
This paper introduces a novel compositional method for automatically generating numerical invariants in imperative programs by analyzing linear recurrences, which enhances verification processes.
Contribution
It presents a new approach that decomposes programs to compute and combine invariants using recurrence relations and closed-form solutions.
Findings
Method is competitive with leading tools in verification tasks.
Effective in approximating loop behavior through recurrence analysis.
Demonstrates improved invariant generation for imperative programs.
Abstract
This paper presents a new method for automatically generating numerical invariants for imperative programs. Given a program, our procedure computes a binary input/output relation on program states which over-approximates the behaviour of the program. It is compositional in the sense that it operates by decomposing the program into parts, computing an abstract meaning of each part, and then composing the meanings. Our method for approximating loop behaviour is based on first approximating the meaning of the loop body, extracting recurrence relations from that approximation, and then using the closed forms to approximate the loop. Our experiments demonstrate that on verification tasks, our method is competitive with leading invariant generation and verification tools.
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
TopicsFormal Methods in Verification · Logic, programming, and type systems · Software Testing and Debugging Techniques
