(Quantified) Horn Constraint Solving for Program Verification and Synthesis
Andrey Rybalchenko

TL;DR
This paper presents a unified approach to program verification and synthesis by modeling them as solving quantified Horn clause constraints, enabling better separation of concerns and solver reuse.
Contribution
It introduces a framework that treats verification and synthesis tasks uniformly as Horn constraint solving problems, facilitating modularity and solver flexibility.
Findings
Logical separation of constraint generation and solving
Reusability of solvers across tasks
Enhanced modularity in verification and synthesis
Abstract
We show how automatic tools for the verification of linear and branching time properties of procedural, multi-threaded, and functional programs as well as program synthesis can be naturally and uniformly seen as solvers of constraints in form of (quantified) Horn clauses over background logical theories. Such a perspective can offer various advantages, e. g., a logical separation of concerns between constraint generation (also known as generation of proof obligations) and constraint solving (also known as proof discovery), reuse of solvers across different verifications tasks, and liberation of proof designers from low level algorithmic concerns and vice versa. To appear in Theory and Practice of Logic Programming (TPLP)
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 · Logic, Reasoning, and Knowledge · Formal Methods in Verification
