skip to main content
article

Cardinalities and universal quantifiers for verifying parameterized systems

Published:02 June 2016Publication History
Skip Abstract Section

Abstract

Parallel and distributed systems rely on intricate protocols to manage shared resources and synchronize, i.e., to manage how many processes are in a particular state. Effective verification of such systems requires universally quantification to reason about parameterized state and cardinalities tracking sets of processes, messages, failures to adequately capture protocol logic. In this paper we present Tool, an automatic invariant synthesis method that integrates cardinality-based reasoning and universal quantification. The resulting increase of expressiveness allows Tool to verify, for the first time, a representative collection of intricate parameterized protocols.

References

  1. P. A. Abdulla, G. Delzanno, and A. Rezine. Parameterized verification of infinite-state processes with global conditions. In CAV, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. F. Alberti, R. Bruttomesso, S. Ghilardi, S. Ranise, and N. Sharygina. An extension of lazy abstraction with interpolation for programs with arrays. FMSD, 45(1), 2014a. F. Alberti, S. Ghilardi, and N. Sharygina. A framework for the verification of parameterized infinite-state systems. In CILC, 2014b. F. Alberti, S. Ghilardi, and N. Sharygina. Decision procedures for flat array properties. J. Autom. Reasoning, 54(4), 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. F. Alberti, S. Ghilardi, and E. Pagani. Counting constraints in flat array fragments. In IJCAR, 2016.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. I. Balaban, Y. Fang, A. Pnueli, and L. D. Zuck. IIV: an invisible invariant verifier. In CAV, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. I. Balaban, A. Pnueli, and L. D. Zuck. Invisible safety of distributed protocols. In ICALP, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. G. Basler, M. Mazzucchi, T. Wahl, and D. Kroening. Symbolic counter abstraction for concurrent software. In CAV, 2009a. G. Basler, M. Mazzucchi, T. Wahl, and D. Kroening. Symbolic counter abstraction for concurrent software. In CAV, 2009b. T. A. Beyene, C. Popeea, and A. Rybalchenko. Solving existentially quantified horn clauses. In CAV, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. N. Bjørner, K. McMillan, and A. Rybalchenko. On solving universally quantified horn clauses. In SAS, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  8. A. R. Bradley, Z. Manna, and H. B. Sipma. What’s decidable about arrays. In VMCAI, 2006.Google ScholarGoogle Scholar
  9. M. Burrows. The chubby lock service for loosely-coupled distributed systems. In OSDI, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. B. Charron-Bost and A. Schiper. The heard-of model: computing in distributed systems with benign faults. Distributed Computing, 2009.Google ScholarGoogle Scholar
  11. C. Drăgoi, T. A. Henzinger, H. Veith, J. Widder, and D. Zufferey. A logic-based framework for verifying consensus algorithms. In VMCAI, 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Y. Fang, N. Piterman, A. Pnueli, and L. D. Zuck. Liveness with invisible ranking. STTT, 8(3), 2006.Google ScholarGoogle Scholar
  13. A. Farzan and Z. Kincaid. Verification of parameterized concurrent programs by modular reasoning about data and control. In POPL, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. A. Farzan, Z. Kincaid, and A. Podelski. Proofs that count. In POPL, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. A. Farzan, Z. Kincaid, and A. Podelski. Proof spaces for unbounded parallelism. In POPL, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. M. Fredrikson and S. Jha. Satisfiability modulo counting: A new approach for analyzing privacy properties. In LICS, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Z. Ganjei, A. Rezine, P. Eles, and Z. Peng. Abstracting and counting synchronizing processes. In VMCAI, 2015.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. S. Grebenshchikov, N. P. Lopes, C. Popeea, and A. Rybalchenko. Synthesizing software verifiers from proof rules. In PLDI, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. S. Gulwani, B. McCloskey, and A. Tiwari. Lifting abstract interpreters to quantified logical domains. In POPL, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. S. Gulwani, T. Lev-Ami, and M. Sagiv. A combination framework for tracking partition sizes. In POPL. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. C. Hawblitzel, J. Howell, M. Kapritsos, J. R. Lorch, B. Parno, M. L. Roberts, S. Setty, and B. Zill. IronFleet: Proving practical distributed systems correct. In SOSP, 2015a. C. Hawblitzel, E. Petrank, S. Qadeer, and S. Tasiran. Automated and modular refinement reasoning for concurrent programs. In CAV, 2015b. M. Heizmann, J. Hoenicke, and A. Podelski. Refinement of trace abstraction. In SAS, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. T. A. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Lazy abstraction. In POPL, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. T. A. Henzinger, R. Jhala, and R. Majumdar. Race checking by context inference. In PLDI, 2004a. T. A. Henzinger, R. Jhala, R. Majumdar, and K. L. McMillan. Abstractions from proofs. In POPL, 2004b. M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. K. Hoder and N. Bjørner. Generalized property directed reachability. In SAT, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. H. Hojjat, F. Konecný, F. Garnier, R. Iosif, V. Kuncak, and P. Rümmer. A verification toolkit for numerical transition systems - tool paper. In FM, 2012.Google ScholarGoogle Scholar
  26. H. Hojjat, P. Rümmer, P. Subotic, and W. Yi. Horn clauses for communicating timed systems. In HCVS, 2014.Google ScholarGoogle ScholarCross RefCross Ref
  27. P. Hunt, M. Konar, F. P. Junqueira, and B. Reed. ZooKeeper: Waitfree coordination for Internet-scale systems. In USENIX, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. T. Kahsai, J. A. Navas, A. Gurfinkel, and A. Komuravelli. The SeaHorn verification framework. In CAV, 2015.Google ScholarGoogle Scholar
  29. A. Kaiser, D. Kroening, and T. Wahl. Lost in abstraction: Monotonicity in multi-threaded programs. In CONCUR, 2014.Google ScholarGoogle ScholarCross RefCross Ref
  30. R. Kotla, L. Alvisi, M. Dahlin, A. Clement, and E. L. Wong. Zyzzyva: speculative Byzantine fault tolerance. In SOSP, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. D. Kroening and M. Lewis. Second-order SAT solving using program synthesis. CoRR, abs/1409.4925, 2014.Google ScholarGoogle Scholar
  32. V. Kuncak, H. H. Nguyen, and M. C. Rinard. An algorithm for deciding BAPA: Boolean Algebra with Presburger Arithmetic. In CADE, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. L. Lamport. The part-time parliament. ACM Trans. Comput. Syst., 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. L. Lamport. Mechanically checked safety proof of a byzantine Paxos algorithm, 2015. http://research.microsoft. com/users/lamport/tla/byzpaxos.html. Concurrent Garbage Collection. .NET Framework 4.6 and 4.5. Microsoft, 2015.Google ScholarGoogle Scholar
  35. https://msdn.microsoft. com/en-us/library/ee787088(v=vs.110).aspx# concurrent_garbage_collection. D. Monniaux and F. Alberti. A simple abstraction of arrays and maps by program translation. SAS, 2015.Google ScholarGoogle ScholarCross RefCross Ref
  36. C. Newcombe, T. Rath, F. Zhang, B. Munteanu, M. Brooker, and M. Deardeuff. How Amazon web services uses formal methods. Commun. ACM, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. D. Ongaro and J. Ousterhout. In search of an understandable consensus algorithm. In USENIX ATC, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. R. Piskac and V. Kuncak. Fractional collections with cardinality bounds, and mixed linear arithmetic with stars. In CSL, 2008a. R. Piskac and V. Kuncak. Decision procedures for multisets with cardinality constraints. In VMCAI, 2008b. A. Pnueli, J. Xu, and L. D. Zuck. Liveness with (0, 1, infty)-counter abstraction. In CAV, 2002a. A. Pnueli, J. Xu, and L. D. Zuck. Liveness with (0, 1, infty)-counter abstraction. In CAV, 2002b. S. Qadeer, S. K. Rajamani, and J. Rehof. Summarizing procedures in concurrent programs. In POPL, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. A. Sanchez, S. Sankaranarayanan, C. Sànchez, and B.-Y. E. Chang. Invariant generation for parametrized systems using selfreflection. In SAS, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. I. Sergey, A. Nanevski, and A. Banerjee. Mechanized verification of fine-grained concurrent programs. In PLDI, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. T. Terauchi and H. Unno. Relaxed stratification: A new approach to practical complete predicate refinement. In ESP, 2015.Google ScholarGoogle ScholarCross RefCross Ref
  42. H. Unno and T. Terauchi. Inferring simple solutions to recursionfree horn clauses via sampling. In TACAS, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. K. v. Gleissenthall, B. Köpf, and A. Rybalchenko. Symbolic polytopes for quantitative interpolation and verification. In CAV, 2015.Google ScholarGoogle Scholar
  44. K. Yessenov, R. Piskac, and V. Kuncak. Collections, cardinalities, and relations. In VMCAI, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. L. Yongjian. A novel approach to the parameterized verification of cache coherence protocols. In Tech Report. http://lcs.ios.ac.cn/~lyj238/papers/ techReportCache.pdf. P. Zave. How to make Chord correct (using a stable base). CoRR, abs/1502.06461, 2015.Google ScholarGoogle Scholar

Index Terms

  1. Cardinalities and universal quantifiers for verifying parameterized systems

                  Recommendations

                  Comments

                  Login options

                  Check if you have access through your login credentials or your institution to get full access on this article.

                  Sign in

                  Full Access

                  • Published in

                    cover image ACM SIGPLAN Notices
                    ACM SIGPLAN Notices  Volume 51, Issue 6
                    PLDI '16
                    June 2016
                    726 pages
                    ISSN:0362-1340
                    EISSN:1558-1160
                    DOI:10.1145/2980983
                    • Editor:
                    • Andy Gill
                    Issue’s Table of Contents
                    • cover image ACM Conferences
                      PLDI '16: Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation
                      June 2016
                      726 pages
                      ISBN:9781450342612
                      DOI:10.1145/2908080
                      • General Chair:
                      • Chandra Krintz,
                      • Program Chair:
                      • Emery Berger

                    Copyright © 2016 ACM

                    Publisher

                    Association for Computing Machinery

                    New York, NY, United States

                    Publication History

                    • Published: 2 June 2016

                    Check for updates

                    Qualifiers

                    • article

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader
                  About Cookies On This Site

                  We use cookies to ensure that we give you the best experience on our website.

                  Learn more

                  Got it!