skip to main content
research-article

Proof Spaces for Unbounded Parallelism

Published:14 January 2015Publication History
Skip Abstract Section

Abstract

In this paper, we present a new approach to automatically verify multi-threaded programs which are executed by an unbounded number of threads running in parallel.

The starting point for our work is the problem of how we can leverage existing automated verification technology for sequential programs (abstract interpretation, Craig interpolation, constraint solving, etc.) for multi-threaded programs. Suppose that we are given a correctness proof for a trace of a program (or for some other program fragment). We observe that the proof can always be decomposed into a finite set of Hoare triples, and we ask what can be proved from the finite set of Hoare triples using only simple combinatorial inference rules (without access to a theorem prover and without the possibility to infer genuinely new Hoare triples)?

We introduce a proof system where one proves the correctness of a multi-threaded program by showing that for each trace of the program, there exists a correctness proof in the space of proofs that are derivable from a finite set of axioms using simple combinatorial inference rules. This proof system is complete with respect to the classical proof method of establishing an inductive invariant (which uses thread quantification and control predicates). Moreover, it is possible to algorithmically check whether a given set of axioms is sufficient to prove the correctness of a multi-threaded program, using ideas from well-structured transition systems.

Skip Supplemental Material Section

Supplemental Material

p407-sidebyside.mpg

mpg

975.9 MB

References

  1. Parosh A. Abdulla, Yu-Feng Chen, Giorgio Delzanno, Frédéric Haziza, Chih-Duo Hong, and Ahmed Rezine. Constrained monotonic abstraction: a CEGAR for parameterized verification. In CONCUR, pages 86--101, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Parosh A. Abdulla, Karlisv Cerans, Bengt Jonsson, and Yih-Kuen Tsay. General decidability theorems for infinite-state systems. In LICS, pages 313--321, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Francesco Alberti, Roberto Bruttomesso, Silvio Ghilardi, Silvio Ranise, and Natasha Sharygina. Lazy abstraction with interpolants for arrays. In LPAR, pages 46--61, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Edward A. Ashcroft. Proving assertions about parallel programs. J. Comput. Syst. Sci., 10(1):110--135, February 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Josh Berdine, Tal Lev-Ami, Roman Manevich, G. Ramalingam, and Shmuel Sagiv. Thread quantification for concurrent shape analysis. In CAV, pages 399--413, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Dirk Beyer, Thomas A. Henzinger, Rupak Majumdar, and Andrey Rybalchenko. Path invariants. In PLDI, pages 300--309, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Ahmed Bouajjani, Bengt Jonsson, Marcus Nilsson, and Tayssir Touili. Regular model checking. In CAV, pages 403--418, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Janusz A. Brzozowski and Ernst L. Leiss. On equations for regular languages, finite automata, and sequential networks. Theoretical Computer Science, 10(1):19--35, 1980.Google ScholarGoogle ScholarCross RefCross Ref
  9. Ashok K. Chandra, Dexter C. Kozen, and Larry J. Stockmeyer. Alternation. J. ACM, 28(1):114--133, January 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Jürgen Christ and Jochen Hoenicke. Extending proof tree preserving interpolation to sequences and trees. In Workshop on SMT Solving, 2013.Google ScholarGoogle Scholar
  11. Stéphane Demri and Ranko Lazić. LTL with the freeze quantifier and register automata. ACM Trans. Comput. Logic, 10(3):16:1--16:30, April 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Alastair F. Donaldson, Alexander Kaiser, Daniel Kroening, Michael Tautschnig, and Thomas Wahl. Counterexample-guided abstraction refinement for symmetric concurrent programs. Formal Methods in System Design, 41(1):25--44, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Azadeh Farzan and Zachary Kincaid. Verification of parameterized concurrent programs by modular reasoning about data and control. In POPL, pages 297--308, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Azadeh Farzan, Zachary Kincaid, and Andreas Podelski. Inductive data flow graphs. In POPL, pages 129--142, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Azadeh Farzan, Zachary Kincaid, and Andreas Podelski. Proofs that count. In POPL, pages 151--164, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Diego Figueira. Alternating register automata on finite words and trees. Logical Methods in Computer Science, 8(1), 2012.Google ScholarGoogle Scholar
  17. Alain Finkel. A generalization of the procedure of Karp and Miller to well structured transition systems. In ICALP, pages 499--508, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Alain Finkel and Philippe Schnoebelen. Well-structured transition systems everywhere! Theoretical Computer Science, 256(1):63--92, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Cormac Flanagan, Stephen N. Freund, and Shaz Qadeer. Thread-modular verification for shared-memory programs. In ESOP, pages 262--277, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Silvio. Ghilardi, Enrica Nicolini, Silvio Ranise, and Daniele Zucchelli. Towards SMT model checking of array-based systems. In IJCAR, pages 67--82, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Matthias Heizmann, Jochen Hoenicke, and Andreas Podelski. Refinement of trace abstraction. In SAS, pages 69--85, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar, and Kenneth L. McMillan. Abstractions from proofs. In POPL, pages 232--244, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Joxan Jaffar and Andrew E. Santosa. Recursive abstractions for parameterized systems. In FM, pages 72--88, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Alexander Kaiser, Daniel Kroening, and Thomas Wahl. Dynamic cutoff detection in parameterized concurrent programs. In CAV, pages 645--659, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Alexander Kaiser, Daniel Kroening, and Thomas Wahl. Lost in abstraction: Monotonicity in multi-threaded programs. In CONCUR, pages 141--155, 2014.Google ScholarGoogle ScholarCross RefCross Ref
  26. Michael Kaminski and Nissim Francez. Finite-memory automata. Theor. Comput. Sci., 134(2):329--363, November 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Salvatore La Torre, Parthasarathy Madhusudan, and Gennaro Parlato. Model-checking parameterized concurrent programs using linear interfaces. In CAV, pages 629--644, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Shuvendu K. Lahiri and Randal E. Bryant. Predicate abstraction with indexed predicates. ACM Trans. Comput. Logic, 9(1), December 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Alexander Malkis. Cartesian abstraction and verification of multithreaded programs. PhD thesis, University of Freiburg, 2010.Google ScholarGoogle Scholar
  30. Roland Meyer. On boundedness in depth in the pi-calculus. In IFIP TCS, pages 477--489, 2008.Google ScholarGoogle Scholar
  31. Kedar S. Namjoshi. Symmetry and completeness in the analysis of parameterized systems. In VMCAI, pages 299--313, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Frank Neven, Thomas Schwentick, and Victor Vianu. Finite state machines for strings over infinite alphabets. ACM Trans. Comput. Logic, 5(3):403--435, July 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Amir Pnueli, Sitvanit Ruah, and Lenore D. Zuck. Automatic deductive verification with invisible invariants. In TACAS, pages 82--97, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Thomas W. Reps, Susan Horwitz, and Shmuel Sagiv. Precise interprocedural dataflow analysis via graph reachability. In POPL, pages 49--61, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Willem-Paul de Roever. Concurrency verification: introduction to compositional and noncompositional methods. Cambridge University press, Cambridge, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Alejandro Sanchez, Sriram Sankaranarayanan, César Sánchez, and Bor-Yuh Evan Chang. Invariant generation for parametrized systems using self-reflection. In SAS, pages 146--163. Springer, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Michal Segalov, Tal Lev-Ami, Roman Manevich, Ramalingam Ganesan, and Mooly Sagiv. Abstract transformers for thread correlation analysis. In APLAS, pages 30--46, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Nishant Sinha and Chao Wang. On interference abstractions. In POPL, pages 423--434, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Thomas Wies, Damien Zufferey, and Thomas A. Henzinger. Forward analysis of depth-bounded processes. In FOSSACS, pages 94--108, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Proof Spaces for Unbounded Parallelism

          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 50, Issue 1
            POPL '15
            January 2015
            682 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/2775051
            • Editor:
            • Andy Gill
            Issue’s Table of Contents
            • cover image ACM Conferences
              POPL '15: Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
              January 2015
              716 pages
              ISBN:9781450333009
              DOI:10.1145/2676726

            Copyright © 2015 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 the author(s) 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: 14 January 2015

            Check for updates

            Qualifiers

            • research-article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader