A Formally Verified Calculus for Full Java Card

  • Kurt Stenzel
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3116)


We present a calculus for the verification of sequential Java programs. It supports all Java language constructs and has additional support for Java Card. The calculus is formally proved correct with respect to a natural semantics. It is implemented in the KIV system and used for smart card applications.


Smart Card Proof System Java Program Dynamic Logic Java Modeling Language 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Alves-Foss, J. (ed.): Formal Syntax and Semantics of Java. LNCS, vol. 1523, p. 1. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  2. 2.
    Attali, I., Jensen, T. (eds.): JavaCard 2000. LNCS, vol. 2041. Springer, Heidelberg (2001)Google Scholar
  3. 3.
    Balser, M., Reif, W., Schellhorn, G., Stenzel, K., Thums, A.: Formal system development with KIV. In: Maibaum, T. (ed.) FASE 2000. LNCS, vol. 1783, p. 363. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  4. 4.
    Beckert, B.: A dynamic logic for the formal verification of java card programs. In: Attali, I., Jensen, T. (eds.) JavaCard 2000. LNCS, vol. 2041, p. 6. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  5. 5.
    Börger, E., Schulte, W.: A Programmer Friendly Modular Definition of the Semantics of Java. In: [1] Google Scholar
  6. 6.
    Burdy, L., Cheon, Y., Cok, D., Ernst, M., Kiniry, J., Leavens, G., Leino, K., Poll, E.: An overview of JML tools and applications. In: Arts, T., Fokkink, W. (eds.) Proceedings FMICS 2003. Electronic Notes in Theoretical Computer Science, vol. 80, Elsevier, Amsterdam (2003)Google Scholar
  7. 7.
    Burdy, N., Requet, A., Lanet, J.-L.: Java applet correctness: A developeroriented approach. In: Araki, K., Gnesi, S., Mandrioli, D. (eds.) FME 2003. LNCS, vol. 2805, Springer, Heidelberg (2003)CrossRefGoogle Scholar
  8. 8.
    Drossopoulou, S., Eisenbach, S.: Describing the Semantics of Java and Proving Type Soundness. In: [1] Google Scholar
  9. 9.
    In: Drossopoulou, S., Eisenbach, S., Jacobs, B., Leavens, G.T.,Müller, P., Poetzsch-Heffter, A. (eds.): Formal Techniques for Java Programs, Proceedings ECOOP 2000 Workshop. Technical Report 269, 5/2000, Fernuniversität Hagen (2000) Google Scholar
  10. 10.
    Harel, D.: First-Order Dynamic Logic. LNCS, vol. 68. Springer, Heidelberg (1979)zbMATHGoogle Scholar
  11. 11.
    Hartel, P., Moreau, L.: Formalizing the safety of Java, the Java virtual machine, and Java card. ACM Computing Surveys (CSUR) 33(4) (December 2001)Google Scholar
  12. 12.
  13. 13.
    Huisman, M.: Reasoning about JAVA programs in higher order logic with PVS and Isabelle. PhD thesis, University of Nijmegen, IPA dissertation series, 2001-03 (2001)Google Scholar
  14. 14.
    Huisman, M., Jacobs, B.: Java Program Verification via a Hoare Logic with Abrupt Termination. In: Maibaum, T. (ed.) FASE 2000. LNCS, vol. 1783, p. 284. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  15. 15.
    Jacobs, B., Leavens, G.T., Müller, P., Poetzsch-Heffter, A. (eds.): Formal Techniques for Java Programs. Technical Report 251, Fernuniversität Hagen (1999)Google Scholar
  16. 16.
    Jacobs, B., Poll, E.: A logic for the java modeling language JML. In: Hussmann, H. (ed.) FASE 2001. LNCS, vol. 2029, p. 284. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  17. 17.
    Jacobs, B., Poll, E.: Java program verification at nijmegen: Developments and perspective. Technical Report NIII-R0318, University of Nijmegen (2003)Google Scholar
  18. 18.
    Java Card 2.2 Specification (2002),
  19. 19.
    Joy, B., Steele, G., Gosling, J., Bracha, G.: The Java (tm) Language Specification, 2nd edn. Addison-Wesley, Reading (2000)Google Scholar
  20. 20.
    KeY project homepage,
  21. 21.
    Krakatoa home page,
  22. 22.
    Nipkow, T., von Oheimb, D.: Java light is Type-Safe – Definitely. In: 25th ACM Symposium on Principles of Programming Languages, ACM, New York (1998)Google Scholar
  23. 23.
    Reif, W., Schellhorn, G., Stenzel, K., Balser, M.: Structured specifications and interactive proofs with KIV. In: Bibel, W., Schmitt, P. (eds.) Automated Deduction—A Basis for Applications, Kluwer Academic Publishers, Dordrecht (1998)Google Scholar
  24. 24.
    Stärk, R.F., Schmid, J., Börger, E.: Java and the Java Virtual Machine: Definition, Verification, Validation. Springer, Heidelberg (2001)zbMATHGoogle Scholar
  25. 25.
    von Oheimb, D.: Analyzing Java in Isabelle/HOL: Formalization, Type Safety and Hoare Logic. PhD thesis, Technische Universität München (2001)Google Scholar
  26. 26.
    von Oheimb, D., Nipkow, T.: Machine-checking the Java Specification: Proving Type-Safety. In: [1] Google Scholar
  27. 27.
    von Oheimb, D.: Axiomatic semantics for Java _ight in Isabelle/HOL. In: [9]Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Kurt Stenzel
    • 1
  1. 1.Lehrstuhl für Softwaretechnik und Programmiersprachen, Institut für InformatikUniversität AugsburgAugsburgGermany

Personalised recommendations