Scalable, Interpretable Distributed Protocol Verification by Inductive Proof Slicing
William Schultz, Edward Ashton, Heidi Howard, Stavros Tripakis
TL;DR
The paper tackles the challenge of scalable and interpretable safety verification for large-scale distributed protocols by introducing inductive proof slicing. It frames inductive invariants as a conjunction of lemmas organized in an inductive proof graph, and accelerates invariant synthesis via local, grammar- and state-based slicing that focuses on small state projections. A central contribution is the formalization of inductive proof graphs, along with an automated inference algorithm that builds these graphs from a target safety property and discharges them through localized subproblems. The approach is implemented in Scimitar and evaluated on benchmarks including Raft, TwoPhase, and other distributed protocols, demonstrating significant scalability improvements and providing interpretable failure diagnosis that guides grammar repair. Overall, inductive proof slicing delivers scalable automated invariant inference with explicit, human-readable proof structure that aids diagnosis and repair in complex distributed systems.
Abstract
Many techniques for automated inference of inductive invariants for distributed protocols have been developed over the past several years, but their performance can still be unpredictable and their failure modes opaque for large-scale verification tasks. In this paper, we present inductive proof slicing, a new automated, compositional technique for inductive invariant inference that scales effectively to large distributed protocol verification tasks. Our technique is built on a core, novel data structure, the inductive proof graph, which explicitly represents the lemma and action dependencies of an inductive invariant and is built incrementally during the inference procedure, backwards from a target safety property. We present an invariant inference algorithm that integrates localized syntax-guided lemma synthesis routines at nodes of this graph, which are accelerated by computation of localized grammar and state variable slices. Additionally, in the case of failure to produce a complete inductive invariant, maintenance of this proof graph structure allows failures to be localized to small sub-components of this graph, enabling fine-grained failure diagnosis and repair by a user. We evaluate our technique on several complex distributed and concurrent protocols, including a large scale specification of the Raft consensus protocol, which is beyond the capabilities of modern distributed protocol verification tools, and also demonstrate how its interpretability features allow effective diagnosis and repair in cases of initial failure.
