ComputingComputer ScienceFormal MethodsLogicProgramming LanguagesAbstract InterpretationDeductive VerificationModel CheckingProof AssistantsTermination AnalysisTheorem ProvingAssertionsInvariant-based VerificationInvariantsLiveness PropertiesProgram VerificationTermination ProofsTransitive ClosureWell-founded Relations
Proof rules for program verification rely on auxiliary assertions. We propose a (sound and relatively complete) proof rule whose auxiliary assertions are transition invariants. A transition invariant of a program is a binary relation over program states that contains the transitive closure of the transition relation of the program. A relation is disjunctively well-founded if it is a finite union of well-founded relations. We characterize the validity of termination or another liveness property by the existence of a disjunctively well-founded transition invariant. The main contribution of our proof rule lies in its potential for automation via abstract interpretation.
12
Patrick Cousot, Radhia Cousot · 1977 · 6.2K citations
Frank Plumpton Ramsey · Proceedings of the London Mathematical Society · 1930 · 1.9K citations
Systematic design of program analysis frameworks
Patrick Cousot, Radhia Cousot · 1979 · 1.6K citations · Full text
Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar et al. · 2002 · 1.2K citations
Automatic predicate abstraction of C programs
Thomas Ball, Rupak Majumdar, Todd Millstein et al. · 2001 · 438 citations