Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2535838.2535885acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

Proofs that count

Published: 08 January 2014 Publication History

Abstract

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.

Supplementary Material

MP4 File (d1_left_t9.mp4)

References

[1]
P. A. Abdulla, A. Bouajjani, B. Jonsson, and M. Nilsson. Handling global conditions in parameterized system verification. In CAV, pages 134--145, 1999.
[2]
P. A. Abdulla, Y.-F. Chen, G. Delzanno, F. Haziza, C.-D. Hong, and A. Rezine. Constrained monotonic abstraction: a cegar for parameterized verification. In CONCUR, pages 86--101, 2010.
[3]
P. A. Abdulla, F. Haziza, and L. Holík. All for the price of few. In VMCAI, pages 476--495, 2013.
[4]
K. R. Apt and D. Kozen. Limits for automatic verification of finitestate concurrent systems. Inf. Process. Lett., 22(6):307--309, 1986.
[5]
T. Arons, A. Pnueli, S. Ruah, J. Xu, and L. D. Zuck. Parameterized verification with automatically computed inductive assertions. In CAV, pages 221--234, 2001.
[6]
T. Ball, S. Chaki, and S. K. Rajamani. Parameterized verification of multithreaded software libraries. In TACAS, pages 158--173, 2001.
[7]
S. Bardin, A. Finkel, J. Leroux, and L. Petrucci. Fast: acceleration from theory to practice. Int. J. Softw. Tools Technol. Transf., 10(5): 401--424, Sept. 2008.
[8]
K. Baukus, S. Bensalem, Y. Lakhnech, and K. Stahl. Abstracting WS1S systems to verify parameterized networks. In TACAS, pages 188--203, 2000.
[9]
K. Baukus, K. Stahl, S. Bensalem, and Y. Lakhnech. Networks of processes with parameterized state space. Electr. Notes Theor. Comput. Sci., 50(4):386--400, 2001.
[10]
J. Berdine, T. Lev-Ami, R. Manevich, G. Ramalingam, and M. Sagiv. Thread quantification for concurrent shape analysis. In CAV, pages 399--413, 2008.
[11]
A. Bouajjani, B. Jonsson, M. Nilsson, and T. Touili. Regular model checking. In CAV, pages 403--418, 2000.
[12]
A. R. Bradley. Sat-based model checking without unrolling. In VMCAI, pages 70--87, 2011.
[13]
E. M. Clarke, O. Grumberg, and M. C. Browne. Reasoning about networks with many identical finite-state processes. In PODC, pages 240--248, 1986.
[14]
E. M. Clarke, O. Grumberg, and S. Jha. Veryfying parameterized networks using abstraction and regular languages. In CONCUR, pages 395--407, 1995.
[15]
M. A. Colón, S. Sankaranarayanan, and H. B. Sipma. Linear invariant generation using non-linear constraint solving. In Computer Aided Verification, pages 420--432, 2003.
[16]
G. Delzanno, J.-F. Raskin, and L. V. Begin. Towards the automated verification of multithreaded java programs. In TACAS, pages 173--187, 2002.
[17]
T. Elmas, S. Qadeer, and S. Tasiran. A calculus of atomic actions. In POPL, pages 2--15, 2009.
[18]
A. Farzan and Z. Kincaid. Verification of parameterized concurrent programs by modular reasoning about data and control. In POPL, pages 297--308, 2012.
[19]
A. Farzan, Z. Kincaid, and A. Podelski. Inductive data flow graphs. In POPL, pages 129--142, 2013.
[20]
D. Fisman and A. Pnueli. Beyond regular model checking. In FSTTCS, pages 156--170, 2001.
[21]
P. Ganty, R. Majumdar, and B. Monmege. Bounded underapproximations. Formal Methods in System Design, 40(2):206--231, 2012.
[22]
S. M. German and A. P. Sistla. Reasoning about systems with many processes. J. ACM, 39(3):675--735, 1992.
[23]
A. Gupta, C. Popeea, and A. Rybalchenko. Predicate abstraction and refinement for verifying multi-threaded programs. In POPL, pages 331--344, 2011.
[24]
M. Hack. Decidability questions for Petri nets. PhD thesis, MIT, June 1976.
[25]
M. Heizmann, J. Hoenicke, and A. Podelski. Refinement of trace abstraction. In SAS, pages 69--85, 2009.
[26]
L. E. Holloway, B. H. Krogh, and A. Giua. A survey of petri net methods for controlled discrete eventsystems. Discrete Event Dynamic Systems, 7(2):151--190, Apr. 1997.
[27]
C. N. Ip and D. L. Dill. Verifying systems with replicated components in mur'. Formal Methods in System Design, 14(3):273--310, 1999.
[28]
A. John, I. Konnov, U. Schmid, H. Veith, and J.Widder. Parameterized model checking of fault-tolerant distributed algorithms by abstraction. In FMCAD, pages 201--209, 2013.
[29]
A. Kaiser, D. Kroening, and T. Wahl. Dynamic cutoff detection in parameterized concurrent programs. In CAV, pages 645--659, 2010.
[30]
R. M. Karp and R. E. Miller. Parallel program schemata. J. Comput. Syst. Sci., 3(2):147--195, 1969.
[31]
Y. Kesten, A. Pnueli, E. Shahar, and L. D. Zuck. Network invariants in action. In CONCUR, pages 101--115, 2002.
[32]
S. R. Kosaraju. Decidability of reachability in vector addition systems (preliminary version). In STOC, pages 267--281, 1982.
[33]
R. P. Kurshan and K. L. McMillan. A structural induction theorem for processes. Inf. Comput., 117(1):1--11, 1995.
[34]
S. La Torre, P. Madhusudan, and G. Parlato. Model-checking parameterized concurrent programs using linear interfaces. In CAV, pages 629--644, 2010.
[35]
J. Leroux. Vector addition system reachability problem: a short selfcontained proof. In POPL, pages 307--316, 2011.
[36]
D. Lesens, N. Halbwachs, and P. Raymond. Automatic verification of parameterized linear networks of processes. In POPL, pages 346--357, 1997.
[37]
B. D. Lubachevsky. An approach to automating the verification of compact parallel coordination programs i. Acta Inf., 21:125--169, 1984.
[38]
M. Maidl. A unifying model checking approach for safety properties of parameterized systems. In CAV, pages 311--323, 2001.
[39]
K. L. McMillan. Lazy abstraction with interpolants. In CAV, pages 123--136, 2006.
[40]
L. P. Nieto. Completeness of the Owicki-Gries system for parameterized parallel programs. In IPDPS, page 150, 2001.
[41]
S. Owicki and D. Gries. Verifying properties of parallel programs: an axiomatic approach. Commun. ACM, 19:279--285, May 1976. ISSN 0001-0782.
[42]
E. Pelz. Closure properties of deterministic petri nets. In STACS, pages 371--382, 1987.
[43]
A. Pnueli and E. Shahar. Liveness and acceleration in parameterized verification. In CAV, pages 328--343, 2000.
[44]
A. Pnueli, S. Ruah, and L. D. Zuck. Automatic deductive verification with invisible invariants. In TACAS, pages 82--97, 2001.
[45]
A. Pnueli, J. Xu, and L. D. Zuck. Liveness with (0, 1, 1)-counter abstraction. In CAV, pages 107--122, 2002.
[46]
S. Qadeer and D. Wu. Kiss: keep it simple and sequential. In PLDI, pages 14--24, 2004.
[47]
M. Segalov, T. Lev-Ami, R. Manevich, R. Ganesan, and M. Sagiv. Abstract transformers for thread correlation analysis. In APLAS, pages 30--46, 2009.
[48]
P. Wolper and B. Boigelot. Verifying systems with infinite but regular state spaces. In CAV, pages 88--97, 1998.
[49]
L. Zuck and A. Pnueli. Model checking and abstraction to the aid of parameterized systems (a survey). Comput. Lang. Syst. Struct., 30 (3-4):139--169, Oct. 2004.

Cited By

View all
  • (2024)Commutativity Simplifies Proofs of Parameterized ProgramsProceedings of the ACM on Programming Languages10.1145/36329258:POPL(2485-2513)Online publication date: 5-Jan-2024
  • (2023)Context-Bounded Verification of Context-Free SpecificationsProceedings of the ACM on Programming Languages10.1145/35712667:POPL(2141-2170)Online publication date: 11-Jan-2023
  • (2023)Thread-modular counter abstraction: automated safety and termination proofs of parameterized software by reduction to sequential program verificationFormal Methods in System Design10.1007/s10703-023-00439-664:1-3(108-145)Online publication date: 6-Oct-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '14: Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
January 2014
702 pages
ISBN:9781450325448
DOI:10.1145/2535838
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 08 January 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrency
  2. static analysis
  3. verification

Qualifiers

  • Research-article

Conference

POPL '14
Sponsor:

Acceptance Rates

POPL '14 Paper Acceptance Rate 51 of 220 submissions, 23%;
Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)32
  • Downloads (Last 6 weeks)10
Reflects downloads up to 04 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Commutativity Simplifies Proofs of Parameterized ProgramsProceedings of the ACM on Programming Languages10.1145/36329258:POPL(2485-2513)Online publication date: 5-Jan-2024
  • (2023)Context-Bounded Verification of Context-Free SpecificationsProceedings of the ACM on Programming Languages10.1145/35712667:POPL(2141-2170)Online publication date: 11-Jan-2023
  • (2023)Thread-modular counter abstraction: automated safety and termination proofs of parameterized software by reduction to sequential program verificationFormal Methods in System Design10.1007/s10703-023-00439-664:1-3(108-145)Online publication date: 6-Oct-2023
  • (2022)Sound sequentialization for concurrent program verificationProceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3519939.3523727(506-521)Online publication date: 9-Jun-2022
  • (2022)Verifying the safety properties of distributed systems via mergeable parallelismJournal of Systems Architecture: the EUROMICRO Journal10.1016/j.sysarc.2022.102646130:COnline publication date: 1-Sep-2022
  • (2020)What’s Decidable About Program Verification Modulo Axioms?Tools and Algorithms for the Construction and Analysis of Systems10.1007/978-3-030-45237-7_10(158-177)Online publication date: 17-Apr-2020
  • (2019)Decidable verification of uninterpreted programsProceedings of the ACM on Programming Languages10.1145/32903593:POPL(1-29)Online publication date: 2-Jan-2019
  • (2017)Verifying distributed programs via canonical sequentializationProceedings of the ACM on Programming Languages10.1145/31339341:OOPSLA(1-27)Online publication date: 12-Oct-2017
  • (2017)Thread modularity at many levels: a pearl in compositional verificationACM SIGPLAN Notices10.1145/3093333.300989352:1(473-485)Online publication date: 1-Jan-2017
  • (2017)Thread modularity at many levels: a pearl in compositional verificationProceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages10.1145/3009837.3009893(473-485)Online publication date: 1-Jan-2017
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media