Cyclic Proofs in Hoare Logic and its Reverse
By: James Brotherston , Quang Loc Le , Gauri Desai and more
Potential Business Impact:
Proves computer programs work correctly, even with loops.
We examine the relationships between axiomatic and cyclic proof systems for the partial and total versions of Hoare logic and those of its dual, known as reverse Hoare logic (or sometimes incorrectness logic). In the axiomatic proof systems for these logics, the proof rules for looping constructs involve an explicit loop invariant, which in the case of the total versions additionally require a well-founded termination measure. In the cyclic systems, these are replaced by rules that simply unroll the loops, together with a principle allowing the formation of cycles in the proof, subject to a global soundness condition that ensures the well-foundedness of the circular reasoning. Interestingly, the cyclic soundness conditions for partial Hoare logic and its reverse are similar and essentially coinductive in character, while those for the total versions are also similar and essentially inductive. We show that these cyclic systems are sound, by direct argument, and relatively complete, by translation from axiomatic to cyclic proofs.
Similar Papers
The nature of loops in programming
Programming Languages
Simplifies proving computer programs work correctly.
A study of cut-elimination for a non-labelled cyclic proof system for propositional dynamic logics
Logic in Computer Science
Helps computers prove programs are correct.
Cyclic system for an algebraic theory of alternating parity automata
Logic in Computer Science
Proves if computer programs run forever.