Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
125 tokens/sec
GPT-4o
53 tokens/sec
Gemini 2.5 Pro Pro
42 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
47 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Scalable, Interpretable Distributed Protocol Verification by Inductive Proof Slicing (2404.18048v1)

Published 28 Apr 2024 in cs.DC and cs.LO

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.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (49)
  1. Mocha: Modularity in model checking. In Computer Aided Verification (Berlin, Heidelberg, 1998), A. J. Hu and M. Y. Vardi, Eds., Springer Berlin Heidelberg, pp. 521–525.
  2. Learning support sets in IC3 and Quip: The good, the bad, and the ugly. In 2017 Formal Methods in Computer Aided Design (FMCAD) (2017), IEEE, pp. 140–147.
  3. Bounded model checking. Adv. Comput. 58 (2003), 117–148.
  4. Formal Specification and Model Checking of the Tendermint Blockchain Synchronization Protocol (Short Paper). In 2nd Workshop on Formal Methods for Blockchains (FMBC 2020) (2020), Schloss Dagstuhl-Leibniz-Zentrum für Informatik.
  5. Learning assumptions for compositional verification. In Tools and Algorithms for the Construction and Analysis of Systems: 9th International Conference, TACAS 2003 Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2003 Warsaw, Poland, April 7–11, 2003 Proceedings 9 (2003), Springer, pp. 331–346.
  6. Spanner: Google’s Globally-Distributed Database. In OSDI (2012).
  7. TLA+ Proofs. Proceedings of the 18th International Symposium on Formal Methods (FM 2012), Dimitra Giannakopoulou and Dominique Mery, editors. Springer-Verlag Lecture Notes in Computer Science 7436 (January 2012), 147–154.
  8. The Daikon system for dynamic detection of likely invariants. Science of computer programming 69, 1-3 (2007), 35–45.
  9. Inductive Data Flow Graphs. In The 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL ’13, Rome, Italy - January 23 - 25, 2013 (2013), R. Giacobazzi and R. Cousot, Eds., ACM, pp. 129–142.
  10. Accelerating Syntax-Guided Invariant Synthesis. In Tools and Algorithms for the Construction and Analysis of Systems (Cham, 2018), D. Beyer and M. Huisman, Eds., Springer International Publishing, pp. 251–269.
  11. Houdini, an Annotation Assistant for ESC/Java. In Proceedings of the International Symposium of Formal Methods Europe on Formal Methods for Increasing Software Productivity (Berlin, Heidelberg, 2001), FME ’01, Springer-Verlag, p. 500–517.
  12. On Symmetry and Quantification: A New Approach to Verify Distributed Protocols. In NASA Formal Methods: 13th International Symposium, NFM 2021, Virtual Event, May 24–28, 2021, Proceedings (Berlin, Heidelberg, 2021), Springer-Verlag, p. 131–150.
  13. Towards an Automatic Proof of Lamport’s Paxos. 2021 Formal Methods in Computer Aided Design (FMCAD) (2021), 112–122.
  14. The Right Tools for the Job: Correctness of Cone of Influence Reduction Proved Using ACL2 and HOL4. J. Autom. Reason. 47, 1 (jun 2011), 1–16.
  15. Gray, J. Notes on data base operating systems. In Operating Systems, An Advanced Course (Berlin, Heidelberg, 1978), Springer-Verlag, p. 393–481.
  16. Pushing to the top. 2015 Formal Methods in Computer-Aided Design (FMCAD) (2015), 65–72.
  17. Finding Invariants of Distributed Systems: It’s a Small (Enough) World After All. In 18th USENIX Symposium on Networked Systems Design and Implementation (NSDI 21) (Apr. 2021), USENIX Association, pp. 115–131.
  18. Holzmann, G. J. The model checker SPIN. IEEE Transactions on software engineering 23, 5 (1997), 279–295.
  19. TiDB: A Raft-Based HTAP Database. Proc. VLDB Endow. 13, 12 (aug 2020), 3072–3084.
  20. Path-sensitive backward slicing. In Static Analysis: 19th International Symposium, SAS 2012, Deauville, France, September 11-13, 2012. Proceedings 19 (2012), Springer, pp. 231–247.
  21. Path slicing. In Proceedings of the 2005 ACM SIGPLAN Conference on Programming language Design and Implementation (2005), pp. 38–47.
  22. Property-Directed Inference of Universal Invariants or Proving Their Absence. J. ACM 64, 1 (mar 2017).
  23. Hermes: A fast, fault-tolerant and linearizable replication protocol. In Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems (New York, NY, USA, 2020), ASPLOS ’20, Association for Computing Machinery, p. 201–217.
  24. Zeus: Locality-aware distributed transactions. In Proceedings of the Sixteenth European Conference on Computer Systems (New York, NY, USA, 2021), EuroSys ’21, Association for Computing Machinery.
  25. First-Order Quantified Separators. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (2020), PLDI 2020, Association for Computing Machinery, p. 703–717.
  26. Inferring Invariants with Quantifier Alternations: Taming the Search Space Explosion. In Tools and Algorithms for the Construction and Analysis of Systems (Cham, 2022), D. Fisman and G. Rosu, Eds., Springer International Publishing, pp. 338–356.
  27. Lamport, L. A New Solution of Dijkstra’s Concurrent Programming Problem. Commun. ACM 17, 8 (aug 1974), 453–455.
  28. Lamport, L. Paxos made simple. ACM SIGACT News (Distributed Computing Column) 32, 4 (Whole Number 121, December 2001) (2001), 51–58.
  29. Lamport, L. Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley, Jun 2002.
  30. Lamport, L. Using TLC to Check Inductive Invariance. http://lamport.azurewebsites.net/tla/inductive-invariant.pdf, 2018.
  31. Sift: Using Refinement-guided Automation to Verify Complex Distributed Systems. In USENIX Annual Technical Conference (2022).
  32. Temporal Verification of Reactive Systems: Safety. Springer-Verlag, Berlin, Heidelberg, 1995.
  33. McMillan, K. A methodology for hardware verification using compositional model checking. Science of Computer Programming 37, 1 (2000), 279–309.
  34. Ongaro, D. Consensus: Bridging Theory and Practice. Doctoral thesis (2014).
  35. In Search of an Understandable Consensus Algorithm. In Proceedings of the 2014 USENIX Conference on USENIX Annual Technical Conference (USA, 2014), USENIX ATC’14, USENIX Association, pp. 305–320.
  36. Decidability of Inferring Inductive Invariants. In Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (New York, NY, USA, 2016), POPL ’16, Association for Computing Machinery, p. 217–231.
  37. Ivy: Safety Verification by Interactive Generalization. In Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation (New York, NY, USA, 2016), PLDI ’16, Association for Computing Machinery, p. 614–630.
  38. Formal Verification of a Distributed Dynamic Reconfiguration Protocol. In Proceedings of the 11th ACM SIGPLAN International Conference on Certified Programs and Proofs (Philadelphia, PA, USA, 2022), CPP 2022, Association for Computing Machinery, p. 143–152.
  39. Plain and Simple Inductive Invariant Inference for Distributed Protocols in TLA+. In 2022 Formal Methods in Computer-Aided Design (FMCAD) (2022), IEEE, pp. 273–283.
  40. From Invariant Checking to Invariant Inference Using Randomized Search. In Computer Aided Verification - 26th International Conference, CAV 2014, Held as Part of the Vienna Summer of Logic, VSL 2014, Vienna, Austria, July 18-22, 2014. Proceedings (2014), A. Biere and R. Bloem, Eds., vol. 8559 of Lecture Notes in Computer Science, Springer, pp. 88–105.
  41. CockroachDB: The Resilient Geo-Distributed SQL Database. In Proceedings of the 2020 ACM SIGMOD International Conference on Management of Data (2020), SIGMOD ’20, Association for Computing Machinery, p. 1493–1509.
  42. Modularity for decidability of deductive verification with applications to distributed systems. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (2018), pp. 662–677.
  43. Tip, F. A survey of program slicing techniques. J. Program. Lang. 3 (1994).
  44. Vanlightly, J. raft-tlaplus: A TLA+ specification of the Raft distributed consensus algorithm. https://github.com/Vanlightly/raft-tlaplus/blob/main/specifications/standard-raft/Raft.tla, 2023. GitHub repository.
  45. Verdi: a framework for implementing and formally verifying distributed systems. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, Portland, OR, USA, June 15-17, 2015 (2015), D. Grove and S. M. Blackburn, Eds., ACM, pp. 357–368.
  46. Planning for Change in a Formal Verification of the Raft Consensus Protocol. In Proceedings of the 5th ACM SIGPLAN Conference on Certified Programs and Proofs (2016), CPP 2016, Association for Computing Machinery, p. 154–165.
  47. DuoAI: Fast, Automated Inference of Inductive Invariants for Verifying Distributed Protocols. In 16th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2022, Carlsbad, CA, USA, July 11-13, 2022 (2022), M. K. Aguilera and H. Weatherspoon, Eds., USENIX Association, pp. 485–501.
  48. DistAI: Data-Driven Automated Invariant Learning for Distributed Protocols. In 15th USENIX Symposium on Operating Systems Design and Implementation (OSDI 21) (July 2021), USENIX Association, pp. 405–421.
  49. Model Checking TLA+ Specifications. In Correct Hardware Design and Verification Methods (Berlin, Heidelberg, 1999), L. Pierre and T. Kropf, Eds., Springer Berlin Heidelberg, pp. 54–66.
Citations (2)

Summary

We haven't generated a summary for this paper yet.

X Twitter Logo Streamline Icon: https://streamlinehq.com

Tweets