Cyclic Proofs in Hoare Logic and its Reverse
James Brotherston, Quang Loc Le, Gauri Desai, Yukihiro Oda
TL;DR
This work connects axiomatic and cyclic proof systems for both partial and total Hoare logic and their dual reverse Hoare logic, revealing that cyclic proofs share a uniform rule set across these logics while differing in global soundness conditions. It shows that partial variants rely on coinductive interpretations and total variants on inductive descent, proving soundness directly and relative completeness via translations from standard proofs. The paper also extends cyclic proofs to reverse Hoare logic, demonstrating dualities and providing translations between traditional and cyclic proofs. Together, these results offer a unified, constructive framework for reasoning about correctness and incorrectness in imperative programs, with potential for practical verification tooling.
Abstract
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.
