Towards the Automated Verification of Multithreaded Java Programs

  • Giorgio Delzanno
  • Jean-Francois Raskin
  • Laurent Van Begin
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2280)


In this paper we investigate the possible application of parameterized verification techniques to synchronization skeletons of multithreaded Java programs. As conceptual contribution, we identify a class of infinite-state abstract models, called Multi-Transfer Nets (MTNs), that preserve the main features of the semantics of concurrent Java. We achieve this goal by exploiting an interesting connection with the Broadcast Protocols of [7], and by introducing the notion of asynchronous rendez-vous. As technical contribution, we extend the symbolic verification techniques of [6] based on Covering Sharing Trees and structural invariants to MTNs. As practical contribution, we report on experimental results for verification of examples of multithreaded Java programs.


Global State Java Program Structural Invariant Local Machine Transfer Block 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    P. A. Abdulla, K. Cerāns, B. Jonsson and Y.-K. Tsay. General Decidability Theorems for Infinite-State Systems. In Proc. LICS’96, pages 313–321, 1996.Google Scholar
  2. 2.
    T. Ball, S. Chaki, S. K. Rajamani. Parameterized Verification of Multithreaded Software Libraries. In Proc. TACAS’01, LNCS 2031, pages 158–173, 2001.Google Scholar
  3. 3.
    G. Ciardo. Petri Nets with marking-dependent arc multiplicity: properties and analysis. In Proc. ICATPN’94, LNCS 815, pages 179–198, 1994.Google Scholar
  4. 4.
    J. C. Corbett. Constructing Compact Models of Concurrent Java Programs. In Proc. ISSTA’98, pages 1–10, 1998.Google Scholar
  5. 5.
    G. Delzanno, and J.-F. Raskin. Symbolic Representation of Upward Closed Sets. In Proc. TACAS 2000, LNCS 1785, pages 426–440, 2000.Google Scholar
  6. 6.
    G. Delzanno, J.-F. Raskin, and L. Van Begin. Attacking Symbolic State Explosion. In Proc. CAV’01, LNCS 2102, pages 298–310, 2001.Google Scholar
  7. 7.
    E. A. Emerson and K. S. Namjoshi. On Model Checking for Non-deterministic Infinite-state Systems. In Proc. of LICS’ 98), pages 70–80, 1998.Google Scholar
  8. 8.
    J. Esparza, A. Finkel, and R. Mayr. On the Verification of Broadcast Protocols. In Proc. LICS’99, pages 352–359, 1999.Google Scholar
  9. 9.
    A. Finkel and P. Schnoebelen. Well-structured transition systems everywhere! TCS 256 (1–2):63–92, 2001.zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    S. M. German, A. P. Sistla. Reasoning about Systems with Many Processes. JACM 39(3): 675–735 (1992)zbMATHCrossRefMathSciNetGoogle Scholar
  11. 11.
    T. A. Henzinger, P.-H. Ho, and H. Wong-Toi. HyTech: a Model Checker for Hybrid Systems. In Proc. CAV’97, LNCS 1254, pages 460–463, 1997.Google Scholar
  12. 12.
    D. Lea. Concurrent Programming in Java. Design Principle and Patterns. Second Edition. The Java Series. Addison Wesley, 2000.Google Scholar
  13. 13.
    D. Zampuni’eris, and B. Le Charlier. Efficient Handling of Large Sets of Tuples with Sharing Trees. In Proc. DCC’95, 1995.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Giorgio Delzanno
    • 1
  • Jean-Francois Raskin
    • 2
  • Laurent Van Begin
    • 2
  1. 1.Dipartimento di Informatica e Scienze dell’InformazioneUniversità di GenovaGenovaItaly
  2. 2.Département d’InformatiqueUniversité Libre de BruxellesBruxellesBelgium

Personalised recommendations