Proofs that count

Counting arguments are among the most basic proof methods in mathematics. Within the field of formal verification, they are useful for reasoning about programs with infinite control, such as programs with an unbounded number of threads, or (concurrent) programs with recursive procedures. While counting arguments are common in informal, hand-written proofs of such programs, there are no fully automated techniques to construct counting arguments. The key questions involved in automating counting arguments are: how to decide what should be counted?, and how to decide when a counting argument is valid? In this paper, we present a technique for automatically constructing and checking counting arguments, which includes novel solutions to these questions.

[1]  Andreas Podelski,et al.  Inductive data flow graphs , 2013, POPL.

[2]  Laure Petrucci,et al.  FAST: acceleration from theory to practice , 2008, International Journal on Software Tools for Technology Transfer.

[3]  David L. Dill,et al.  Verifying Systems with Replicated Components in Murphi , 1996, CAV.

[4]  Amir Pnueli,et al.  Model checking and abstraction to the aid of parameterized systems (a survey) , 2004, Comput. Lang. Syst. Struct..

[5]  Aaron R. Bradley,et al.  SAT-Based Model Checking without Unrolling , 2011, VMCAI.

[6]  David L. Dill,et al.  Verifying Systems with Replicated Components in Murϕ , 1999, Formal Methods Syst. Des..

[7]  Edmund M. Clarke,et al.  Reasoning about networks with many identical finite-state processes , 1986, PODC '86.

[8]  Krzysztof R. Apt,et al.  Limits for Automatic Verification of Finite-State Concurrent Systems , 1986, Inf. Process. Lett..

[9]  Monika Maidl,et al.  A Unifying Model Checking Approach for Safety Properties of Parameterized Systems , 2001, CAV.

[10]  Edmund M. Clarke,et al.  Reasoning about Networks with Many Identical Finite State Processes , 1989, Inf. Comput..

[11]  Alessandro Giua,et al.  A Survey of Petri Net Methods for Controlled Discrete Event Systems , 1997, Discret. Event Dyn. Syst..

[12]  Roman Manevich,et al.  Abstract Transformers for Thread Correlation Analysis , 2009, APLAS.

[13]  Michel Hack,et al.  Decidability Questions for Petri Nets , 1975, Outstanding Dissertations in the Computer Sciences.

[14]  Amir Pnueli,et al.  Beyond Regular Model Checking , 2001, FSTTCS.

[15]  Somesh Jha,et al.  Veryfying Parameterized Networks using Abstraction and Regular Languages , 1995, CONCUR.

[16]  Amir Pnueli,et al.  Liveness with (0, 1, ∞)-counter abstraction , 2002 .

[17]  Jochen Hoenicke,et al.  Refinement of Trace Abstraction , 2009, SAS.

[18]  Amir Pnueli,et al.  Parameterized Verification with Automatically Computed Inductive Assertions , 2001, CAV.

[19]  Parosh Aziz Abdulla,et al.  Constrained Monotonic Abstraction: A CEGAR for Parameterized Verification , 2010, CONCUR.

[20]  Parosh Aziz Abdulla,et al.  Handling Global Conditions in Parameterized System Verification , 1999, CAV.

[21]  Parosh Aziz Abdulla,et al.  All for the Price of Few , 2013, VMCAI.

[22]  Richard M. Karp,et al.  Parallel Program Schemata , 1969, J. Comput. Syst. Sci..

[23]  Amir Pnueli,et al.  Liveness with (0, 1, infty)-Counter Abstraction , 2002, CAV.

[24]  Rupak Majumdar,et al.  Bounded underapproximations , 2008, Formal Methods Syst. Des..

[25]  Amir Pnueli,et al.  Automatic Deductive Verification with Invisible Invariants , 2001, TACAS.

[26]  Dinghao Wu,et al.  KISS: keep it simple and sequential , 2004, PLDI '04.

[27]  Daniel Kroening,et al.  Dynamic Cutoff Detection in Parameterized Concurrent Programs , 2010, CAV.

[28]  A. Prasad Sistla,et al.  Reasoning about systems with many processes , 1992, JACM.

[29]  Karsten Stahl,et al.  Abstracting WS1S Systems to Verify Parameterized Networks , 2000, TACAS.

[30]  S. Rao Kosaraju,et al.  Decidability of reachability in vector addition systems (Preliminary Version) , 1982, STOC '82.

[31]  Ashutosh Gupta,et al.  Predicate abstraction and refinement for verifying multi-threaded programs , 2011, POPL '11.

[32]  Jérôme Leroux,et al.  Vector addition system reachability problem: a short self-contained proof , 2011, POPL '11.

[33]  Giorgio Delzanno,et al.  Towards the Automated Verification of Multithreaded Java Programs , 2002, TACAS.

[34]  L. Prensa-Nieto Completeness of the owicki-gries system for parameterized parallel programs , 2001, Proceedings 15th International Parallel and Distributed Processing Symposium. IPDPS 2001.

[35]  Amir Pnueli,et al.  Network Invariants in Action , 2002, CONCUR.

[36]  Sagar Chaki,et al.  Parameterized Verification of Multithreaded Software Libraries , 2001, TACAS.

[37]  Pierre Wolper,et al.  Verifying Systems with Infinite but Regular State Spaces , 1998, CAV.

[38]  Karsten Stahl,et al.  Networks of Processes with Parameterized State Space , 2001, VEPAS.

[39]  Amir Pnueli,et al.  Liveness and Acceleration in Parameterized Verification , 2000, CAV.

[40]  Nicolas Halbwachs,et al.  Automatic verification of parameterized linear networks of processes , 1997, POPL '97.

[41]  Helmut Veith,et al.  Parameterized model checking of fault-tolerant distributed algorithms by abstraction , 2013, 2013 Formal Methods in Computer-Aided Design.

[42]  Zachary Kincaid,et al.  Verification of parameterized concurrent programs by modular reasoning about data and control , 2012, POPL '12.

[43]  Jérôme Leroux Vector Addition System Reachability Problem: A Short Self-contained Proof , 2011, LATA.

[44]  Henny B. Sipma,et al.  Linear Invariant Generation Using Non-linear Constraint Solving , 2003, CAV.

[45]  Roman Manevich,et al.  Thread Quantification for Concurrent Shape Analysis , 2008, CAV.

[46]  Salvatore La Torre,et al.  Model-Checking Parameterized Concurrent Programs Using Linear Interfaces , 2010, CAV.

[47]  Serdar Tasiran,et al.  A calculus of atomic actions , 2009, POPL '09.

[48]  Kenneth L. McMillan,et al.  Lazy Abstraction with Interpolants , 2006, CAV.

[49]  Boris D. Lubachevsky,et al.  An approach to automating the verification of compact parallel coordination programs. I , 2018, Acta Informatica.

[50]  Elisabeth Pelz Closure Properties of Deterministic Petri Nets , 1987, STACS.

[51]  Marcus Nilsson,et al.  Regular Model Checking , 2000, CAV.

[52]  Robert P. Kurshan,et al.  A structural induction theorem for processes , 1989, PODC.