The loop Compiler for Java and JML

  • Joachim van den Berg
  • Bart Jacobs
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2031)


This paper describes the architecture of the loop tool, which is used for reasoning about sequential Java. The loop tool translates Java and JML (a specification language tailored to Java) classes into their semantics in higher order logic. It serves as a front-end to a theorem prover in which the actual verification of the desired properties takes place. Also, the paper discusses issues related to logical theory generation.


Smart Card Theorem Prover Logical Theory Proof Obligation High Order Logic 
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.
    W. Ahrendt, T. Baar, B. Beckert, M. Giese, E. Habermalz, R. Hähnle, W. Menzel, and P.H. Schmitt. The KeY approach: Integrating object oriented design and formal verification. In G. Brewka and L.M. Pereira, editors, Proc. 8th European Workshop on Logics in AI (JELIA), Lect. Notes AI. Springer, October 2000.Google Scholar
  2. 2.
    B. Barras, S. Boutin, C. Cornes, J. Courant, J.-Chr. Filliâ tre, E. Gimé nez, H. Herbelin, G. Huet, C. Muñoz, C. Murthy, C. Parent, C. Paulin-Mohring, A. Saïbi, and B. Werner. The Coq Proof Assistant User’s Guide Version 6.1. Technical Report 203, INRIA Rocquencourt, France, May 1997.Google Scholar
  3. 3.
    J. van den Berg, M. Huisman, B. Jacobs, and E. Poll. A type-theoretic memory model for verification of sequential Java programs. In D. Bert and C. Choppy, editors, Recent Trends in Algebraic Development Techniques, number 1827 in Lect. Notes Comp. Sci., pages 1–21. Springer, Berlin, 2000.Google Scholar
  4. 4.
    J. van den Berg, B. Jacobs, and E. Poll. Formal specification and verification of JavaCard’s Application Identifier Class. Techn. Rep. CSI-R0014, Comput. Sci. Inst., Univ. of Nijmegen. Appeared in: Proceedings of the JavaCard Workshop, Cannes. INRIA Techn. Rep. Updated version will appear in: I. Attali and Th. Jensen, editors, Proceedings of the Java Card 2000 Workshop (Springer LNCS 2001), Sept. 2000.Google Scholar
  5. 5.
    J. Corbett, M. Dwyer, J. Hatcliff, S. Laubach, C. Pasareanu, Robby, and H. Zheng. Bandera: extracting finite-state models from Java source code. In Proceedings 22 nd International Conference on Software Engineering, June 2000.Google Scholar
  6. 6.
    J. Gosling, B. Joy, G. Steele, and G. Bracha. The Java Language Specification Second Edition. The Java Series. Addison-Wesley, 2000.Google Scholar
  7. 7.
    U. Hensel, M. Huisman, B. Jacobs, and H. Tews. Reasoning about classes in objectoriented languages: Logical models and tools. In Ch. Hankin, editor, European Symposium on Programming, number 1381 in Lect. Notes Comp. Sci., pages 105–121. Springer, Berlin, 1998.Google Scholar
  8. 8.
    M. Huisman. Reasoning about JAVA Programs in higher order logic, using PVS and Isabelle. PhD thesis, Univ. Nijmegen, 2001.Google Scholar
  9. 9.
    M. Huisman and B. Jacobs. Inheritance in higher order logic: Modeling and reasoning. In M. Aagaard and J. Harrison, editors, Theorem Proving in Higher Order Logics, number 1869 in Lect. Notes Comp. Sci., pages 301–319. Springer, Berlin, 2000.Google Scholar
  10. 10.
    M. Huisman and B. Jacobs. Java program verification via a Hoare logic with abrupt termination. In T. Maibaum, editor, Fundamental Approaches to Software Engineering, number 1783 in Lect. Notes Comp. Sci., pages 284–303. Springer, Berlin, 2000.Google Scholar
  11. 11.
    M. Huisman, B. Jacobs, and J. van den Berg. A case study in class library verification: Java’s Vector class. Techn. Rep. CSI-R0007, Comput. Sci. Inst., Univ. of Nijmegen. To appear in Software Tools for Technology Transfer, 2001.Google Scholar
  12. 12.
    B. Jacobs. A formalisation of Java’s exception mechanism. Techn. Rep. CSI-R0015, Comput. Sci. Inst., Univ. of Nijmegen. To appear at ESOP’01., 2000.Google Scholar
  13. 13.
    B. Jacobs and E. Poll. A logic for the Java Modeling Language JML. Techn. Rep. CSI-R0018, Comput. Sci. Inst., Univ. of Nijmegen. To appear at FASE’01., 2000.Google Scholar
  14. 14.
    B. Jacobs, J. van den Berg, M. Huisman, M. van Berkum, U. Hensel, and H. Tews. Reasoning about classes in Java (preliminary report). In Object-Oriented Programming, Systems, Languages and Applications, pages 329–340. ACM Press, 1998.Google Scholar
  15. 15.
    G.T. Leavens, A.L. Baker, and C. Ruby. Preliminary design of JML: A behavioral interface specification language for Java. Techn. Rep. 98-06, Dep. of Comp. Sci., Iowa State Univ. (, 1998, revised May 2000.
  16. 16.
    X. Leroy. The Objective Caml system release 3.00. Institute National de Recherche en Informatique et Automatique, 1997. Documentation and user’s manual.Google Scholar
  17. 17.
    J. Meyer and A. Poetzsch-Heffter. An architecture for interactive program provers. In S. Graf and M. Schwartzbach, editors, TACAS00, Tools ans Algorithms for the Construction and Analysis of Software, volume 276 of Lect. Notes Comp. Sci., pages 63–77, 2000.Google Scholar
  18. 18.
    D. von Oheimb and T. Nipkow. Machine-checking the Java specification: Proving type-safety. In Jim Alves-Foss, editor, Formal Syntax and Semantics of Java, volume 1523 of LNCS, pages 119–156. Springer, 1999.CrossRefGoogle Scholar
  19. 19.
    S. Owre, J. M. Rushby, and N. Shankar. PVS: A prototype verification system. In D. Kapur, editor, 11th International Conference on AutomatedDeduction (CADE-11), number 607 in Lect. Notes Comp. Sci., pages 748–752. Springer, Berlin, 1992.Google Scholar
  20. 20.
    L.C. Paulson. Isabelle-a generic theorem prover. Number 828 in Lect. Notes Comp. Sci. Springer, Berlin, 1994. With contributions by Tobias Nipkow.Google Scholar
  21. 21.
  22. 22.
    J. Rothe, H. Tews, and B. Jacobs. The coalgebraic class specification language CCSL. Technical Report TUD-FI00-09, Dresden University of Technology, Department of Computer Science, October 2000. Available via
  23. 23.
    Extended static checker ESC/Java. Compaq System Research Center.

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Joachim van den Berg
    • 1
  • Bart Jacobs
    • 1
  1. 1.Computing Science InstituteUniversity of NijmegenNijmegenThe Netherlands

Personalised recommendations