skip to main content
10.1145/2535838.2535885acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

Proofs that count

Published:08 January 2014Publication 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.

Skip Supplemental Material Section

Supplemental Material

d1_left_t9.mp4

mp4

198.4 MB

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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. P. A. Abdulla, F. Haziza, and L. Holík. All for the price of few. In VMCAI, pages 476--495, 2013.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. K. R. Apt and D. Kozen. Limits for automatic verification of finitestate concurrent systems. Inf. Process. Lett., 22(6):307--309, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. T. Ball, S. Chaki, and S. K. Rajamani. Parameterized verification of multithreaded software libraries. In TACAS, pages 158--173, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. K. Baukus, S. Bensalem, Y. Lakhnech, and K. Stahl. Abstracting WS1S systems to verify parameterized networks. In TACAS, pages 188--203, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarCross RefCross Ref
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. Bouajjani, B. Jonsson, M. Nilsson, and T. Touili. Regular model checking. In CAV, pages 403--418, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. A. R. Bradley. Sat-based model checking without unrolling. In VMCAI, pages 70--87, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. E. M. Clarke, O. Grumberg, and S. Jha. Veryfying parameterized networks using abstraction and regular languages. In CONCUR, pages 395--407, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarCross RefCross Ref
  16. G. Delzanno, J.-F. Raskin, and L. V. Begin. Towards the automated verification of multithreaded java programs. In TACAS, pages 173--187, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. T. Elmas, S. Qadeer, and S. Tasiran. A calculus of atomic actions. In POPL, pages 2--15, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. Farzan and Z. Kincaid. Verification of parameterized concurrent programs by modular reasoning about data and control. In POPL, pages 297--308, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. A. Farzan, Z. Kincaid, and A. Podelski. Inductive data flow graphs. In POPL, pages 129--142, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. D. Fisman and A. Pnueli. Beyond regular model checking. In FSTTCS, pages 156--170, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. P. Ganty, R. Majumdar, and B. Monmege. Bounded underapproximations. Formal Methods in System Design, 40(2):206--231, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. S. M. German and A. P. Sistla. Reasoning about systems with many processes. J. ACM, 39(3):675--735, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. A. Gupta, C. Popeea, and A. Rybalchenko. Predicate abstraction and refinement for verifying multi-threaded programs. In POPL, pages 331--344, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. M. Hack. Decidability questions for Petri nets. PhD thesis, MIT, June 1976.Google ScholarGoogle Scholar
  25. M. Heizmann, J. Hoenicke, and A. Podelski. Refinement of trace abstraction. In SAS, pages 69--85, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarCross RefCross Ref
  29. A. Kaiser, D. Kroening, and T. Wahl. Dynamic cutoff detection in parameterized concurrent programs. In CAV, pages 645--659, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. R. M. Karp and R. E. Miller. Parallel program schemata. J. Comput. Syst. Sci., 3(2):147--195, 1969. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Y. Kesten, A. Pnueli, E. Shahar, and L. D. Zuck. Network invariants in action. In CONCUR, pages 101--115, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. S. R. Kosaraju. Decidability of reachability in vector addition systems (preliminary version). In STOC, pages 267--281, 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. R. P. Kurshan and K. L. McMillan. A structural induction theorem for processes. Inf. Comput., 117(1):1--11, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. S. La Torre, P. Madhusudan, and G. Parlato. Model-checking parameterized concurrent programs using linear interfaces. In CAV, pages 629--644, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. J. Leroux. Vector addition system reachability problem: a short selfcontained proof. In POPL, pages 307--316, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. D. Lesens, N. Halbwachs, and P. Raymond. Automatic verification of parameterized linear networks of processes. In POPL, pages 346--357, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. B. D. Lubachevsky. An approach to automating the verification of compact parallel coordination programs i. Acta Inf., 21:125--169, 1984.Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. M. Maidl. A unifying model checking approach for safety properties of parameterized systems. In CAV, pages 311--323, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. K. L. McMillan. Lazy abstraction with interpolants. In CAV, pages 123--136, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. L. P. Nieto. Completeness of the Owicki-Gries system for parameterized parallel programs. In IPDPS, page 150, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. S. Owicki and D. Gries. Verifying properties of parallel programs: an axiomatic approach. Commun. ACM, 19:279--285, May 1976. ISSN 0001-0782. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. E. Pelz. Closure properties of deterministic petri nets. In STACS, pages 371--382, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. A. Pnueli and E. Shahar. Liveness and acceleration in parameterized verification. In CAV, pages 328--343, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. A. Pnueli, S. Ruah, and L. D. Zuck. Automatic deductive verification with invisible invariants. In TACAS, pages 82--97, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. A. Pnueli, J. Xu, and L. D. Zuck. Liveness with (0, 1, 1)-counter abstraction. In CAV, pages 107--122, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. S. Qadeer and D. Wu. Kiss: keep it simple and sequential. In PLDI, pages 14--24, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. P. Wolper and B. Boigelot. Verifying systems with infinite but regular state spaces. In CAV, pages 88--97, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Proofs that count

        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
        • 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

          Copyright © 2014 ACM

          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]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 8 January 2014

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          POPL '14 Paper Acceptance Rate51of220submissions,23%Overall Acceptance Rate824of4,130submissions,20%

          Upcoming Conference

          POPL '25

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader