Proving Correctness of Imperative Programs by Linearizing Constrained Horn Clauses
Emanuele De Angelis (1), Fabio Fioravanti (1), Alberto Pettorossi (2),, Maurizio Proietti (3) ((1) DEC, University G. d'Annunzio, Pescara, Italy, (2), DICII, Universita' di Roma Tor Vergata, Roma, Italy, (3) CNR-IASI, Roma,, Italy)

TL;DR
This paper introduces a linearization technique for constrained Horn clauses to verify imperative program correctness, enabling proofs of specifications that previous linear arithmetic solving methods could not handle.
Contribution
The paper presents a novel linearization transformation that converts nonlinear clauses into linear ones, expanding the scope of verifiable specifications in program correctness.
Findings
Linearization enables proving correctness of specifications beyond existing LA-solving methods.
The method successfully verified several specifications previously unprovable by traditional LA solvers.
Experimental results demonstrate the effectiveness of the linearization approach.
Abstract
We present a method for verifying the correctness of imperative programs which is based on the automated transformation of their specifications. Given a program prog, we consider a partial correctness specification of the form prog , where the assertions and are predicates defined by a set Spec of possibly recursive Horn clauses with linear arithmetic (LA) constraints in their premise (also called constrained Horn clauses). The verification method consists in constructing a set PC of constrained Horn clauses whose satisfiability implies that prog is valid. We highlight some limitations of state-of-the-art constrained Horn clause solving methods, here called LA-solving methods, which prove the satisfiability of the clauses by looking for linear arithmetic interpretations of the predicates. In particular, we prove that…
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.
