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.
- P. A. Abdulla, G. Delzanno, and A. Rezine. Parameterized verification of infinite-state processes with global conditions. In CAV, 2007. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- F. Alberti, S. Ghilardi, and E. Pagani. Counting constraints in flat array fragments. In IJCAR, 2016.Google Scholar
Digital Library
- I. Balaban, Y. Fang, A. Pnueli, and L. D. Zuck. IIV: an invisible invariant verifier. In CAV, 2005. Google Scholar
Digital Library
- I. Balaban, A. Pnueli, and L. D. Zuck. Invisible safety of distributed protocols. In ICALP, 2006. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- N. Bjørner, K. McMillan, and A. Rybalchenko. On solving universally quantified horn clauses. In SAS, 2013.Google Scholar
Cross Ref
- A. R. Bradley, Z. Manna, and H. B. Sipma. What’s decidable about arrays. In VMCAI, 2006.Google Scholar
- M. Burrows. The chubby lock service for loosely-coupled distributed systems. In OSDI, 2006. Google Scholar
Digital Library
- B. Charron-Bost and A. Schiper. The heard-of model: computing in distributed systems with benign faults. Distributed Computing, 2009.Google Scholar
- 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 Scholar
Digital Library
- Y. Fang, N. Piterman, A. Pnueli, and L. D. Zuck. Liveness with invisible ranking. STTT, 8(3), 2006.Google Scholar
- A. Farzan and Z. Kincaid. Verification of parameterized concurrent programs by modular reasoning about data and control. In POPL, 2012. Google Scholar
Digital Library
- A. Farzan, Z. Kincaid, and A. Podelski. Proofs that count. In POPL, 2014. Google Scholar
Digital Library
- A. Farzan, Z. Kincaid, and A. Podelski. Proof spaces for unbounded parallelism. In POPL, 2015. Google Scholar
Digital Library
- M. Fredrikson and S. Jha. Satisfiability modulo counting: A new approach for analyzing privacy properties. In LICS, 2014. Google Scholar
Digital Library
- Z. Ganjei, A. Rezine, P. Eles, and Z. Peng. Abstracting and counting synchronizing processes. In VMCAI, 2015.Google Scholar
Digital Library
- S. Grebenshchikov, N. P. Lopes, C. Popeea, and A. Rybalchenko. Synthesizing software verifiers from proof rules. In PLDI, 2012. Google Scholar
Digital Library
- S. Gulwani, B. McCloskey, and A. Tiwari. Lifting abstract interpreters to quantified logical domains. In POPL, 2008. Google Scholar
Digital Library
- S. Gulwani, T. Lev-Ami, and M. Sagiv. A combination framework for tracking partition sizes. In POPL. ACM, 2009. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- T. A. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Lazy abstraction. In POPL, 2002. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- K. Hoder and N. Bjørner. Generalized property directed reachability. In SAT, 2012. Google Scholar
Digital Library
- 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 Scholar
- H. Hojjat, P. Rümmer, P. Subotic, and W. Yi. Horn clauses for communicating timed systems. In HCVS, 2014.Google Scholar
Cross Ref
- P. Hunt, M. Konar, F. P. Junqueira, and B. Reed. ZooKeeper: Waitfree coordination for Internet-scale systems. In USENIX, 2010. Google Scholar
Digital Library
- T. Kahsai, J. A. Navas, A. Gurfinkel, and A. Komuravelli. The SeaHorn verification framework. In CAV, 2015.Google Scholar
- A. Kaiser, D. Kroening, and T. Wahl. Lost in abstraction: Monotonicity in multi-threaded programs. In CONCUR, 2014.Google Scholar
Cross Ref
- R. Kotla, L. Alvisi, M. Dahlin, A. Clement, and E. L. Wong. Zyzzyva: speculative Byzantine fault tolerance. In SOSP, 2007. Google Scholar
Digital Library
- D. Kroening and M. Lewis. Second-order SAT solving using program synthesis. CoRR, abs/1409.4925, 2014.Google Scholar
- V. Kuncak, H. H. Nguyen, and M. C. Rinard. An algorithm for deciding BAPA: Boolean Algebra with Presburger Arithmetic. In CADE, 2005. Google Scholar
Digital Library
- L. Lamport. The part-time parliament. ACM Trans. Comput. Syst., 1998. Google Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Cross Ref
- C. Newcombe, T. Rath, F. Zhang, B. Munteanu, M. Brooker, and M. Deardeuff. How Amazon web services uses formal methods. Commun. ACM, 2015. Google Scholar
Digital Library
- D. Ongaro and J. Ousterhout. In search of an understandable consensus algorithm. In USENIX ATC, 2014. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- A. Sanchez, S. Sankaranarayanan, C. Sànchez, and B.-Y. E. Chang. Invariant generation for parametrized systems using selfreflection. In SAS, 2012. Google Scholar
Digital Library
- I. Sergey, A. Nanevski, and A. Banerjee. Mechanized verification of fine-grained concurrent programs. In PLDI, 2015. Google Scholar
Digital Library
- T. Terauchi and H. Unno. Relaxed stratification: A new approach to practical complete predicate refinement. In ESP, 2015.Google Scholar
Cross Ref
- H. Unno and T. Terauchi. Inferring simple solutions to recursionfree horn clauses via sampling. In TACAS, 2015. Google Scholar
Digital Library
- K. v. Gleissenthall, B. Köpf, and A. Rybalchenko. Symbolic polytopes for quantitative interpolation and verification. In CAV, 2015.Google Scholar
- K. Yessenov, R. Piskac, and V. Kuncak. Collections, cardinalities, and relations. In VMCAI, 2010. Google Scholar
Digital Library
- 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 Scholar
Index Terms
Cardinalities and universal quantifiers for verifying parameterized systems
Recommendations
Cardinalities and universal quantifiers for verifying parameterized systems
PLDI '16: Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and ImplementationParallel 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 ...
Universal properties verification of parameterized parallel systems
ICCSA'05: Proceedings of the 2005 international conference on Computational Science and Its Applications - Volume Part IIIThis paper presents a method for verifying universal properties of parameterized parallel systems using Parameterized Predicate Diagrams [10]. Parameterized Predicate Diagrams are diagrams which are used to represent the abstractions of such systems ...
Verifying concurrent probabilistic systems using probabilistic-epistemic logic specifications
In this paper, we address the problem of verifying probabilistic and epistemic properties in concurrent probabilistic systems expressed in PCTLK. PCTLK is an extension of the Probabilistic Computation Tree Logic (PCTL) augmented with Knowledge (K). In ...







Comments