Simplifying Safety Proofs with Forward-Backward Reasoning and Prophecy
2026-04-16 • Logic in Computer Science
Logic in Computer ScienceProgramming Languages
AI summaryⓘ
The authors present a new method to prove system safety by breaking complex proofs into simpler steps. Their approach mixes forward and backward reasoning along with special steps called prophecy steps to handle tricky properties. They show that each step type makes it easier to find simpler formulas needed for verification, reducing overall complexity. The authors also tested their method on well-known consensus protocols and found it can simplify and improve safety proofs.
safety proofsinductive invariantsforward reasoningbackward reasoningprophecy stepsquantifiersPaxos protocolRaft protocolincremental proofsformal verification
Authors
Eden Frenkel, Kenneth L. McMillan, Oded Padon, Sharon Shoham
Abstract
We propose an incremental approach for safety proofs that decomposes a proof with a complex inductive invariant into a sequence of simpler proof steps. Our proof system combines rules for (i) forward reasoning using inductive invariants, (ii) backward reasoning using inductive invariants of a time-reversed system, and (iii) prophecy steps that add witnesses for existentially quantified properties. We prove each rule sound and give a construction that recovers a single safe inductive invariant from an incremental proof. The construction of the invariant demonstrates the increased complexity of a single inductive invariant compared to the invariant formulas used in an incremental proof, which may have simpler Boolean structures and fewer quantifiers and quantifier alternations. Under natural restrictions on the available invariant formulas, each proof rule strictly increases proof power. That is, each rule allows to prove more safety problems with the same set of formulas. Thus, the incremental approach is able to reduce the search space of invariant formulas needed to prove safety of a given system. A case study on Paxos, several of its variants, and Raft demonstrates that forward-backward steps can remove complex Boolean structure while prophecy eliminates quantifiers and quantifier alternations.