Total Correctness of Recursive Functions using JML 4 FSPV

JML4 is a next generation tooling and research platform for JML. JML4, currently in development, aims to support the integrated capabilities of Runtime Assertion Checking (RAC), Extended Static Checking (ESC), and Full Static Program Verification (FSPV). In this paper, we present the JML4 FSPV Theory Generator (TG) that aims to study the adequacy of Isabelle/Simpl as the underlying verification condition language. In particular we study Isabelle/Simpl with respect to proving total correctness of recursive programs. Simpl is a Hoare-based logic for a sequential imperative programming language along with a verification system. It is written in Isabelle/HOL and has been proven sound and relative complete.

[1]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

[2]  John McCarthy,et al.  Mathematical Theory of Computation , 1991 .

[3]  Glynn Winskel,et al.  The formal semantics of programming languages - an introduction , 1993, Foundation of computing series.

[4]  Bart Jacobs,et al.  The LOOP Compiler for Java and JML , 2001, TACAS.

[5]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[6]  Bart Jacobs,et al.  Java Program Verification at Nijmegen: Developments and Perspective , 2003, ISSS.

[7]  Yoonsik Cheon,et al.  A Runtime Assertion Checker for the Java Modeling Language (JML) , 2003, ICSE 2003.

[8]  Jean-Christophe Filliâtre,et al.  Verification of non-functional programs using interpretations in type theory , 2003, J. Funct. Program..

[9]  Michael D. Ernst,et al.  An overview of JML tools and applications , 2003, International Journal on Software Tools for Technology Transfer.

[10]  David R. Cok,et al.  ESC/Java2: Uniting ESC/Java and JML , 2004, CASSIS.

[11]  Claude Marché,et al.  The KRAKATOA tool for certificationof JAVA/JAVACARD programs annotated in JML , 2004, J. Log. Algebraic Methods Program..

[12]  Norbert Schirmer,et al.  A Verification Environment for Sequential Imperative Programs in Isabelle/HOL , 2005, LPAR.

[13]  Julien Charles Adding native specifications to JML , 2006 .

[14]  Jean-Louis Lanet,et al.  JACK - A Tool for Validation of Security and Behaviour of Java Applications , 2006, FMCO.

[15]  Christoph Lüth,et al.  Proof general in Eclipse: system and architecture overview , 2006, eclipse '06.

[16]  John Tang Boyland,et al.  Formal Techniques for Java-Like Programs , 2007, ECOOP Workshops.

[17]  Claude Marché,et al.  The Why/Krakatoa/Caduceus Platform for Deductive Program Verification , 2007, CAV.

[18]  Tobias Nipkow,et al.  Finding Lexicographic Orders for Termination Proofs in Isabelle/HOL , 2007, TPHOLs.

[19]  Murali Sitaraman,et al.  Incremental Benchmarks for Software Verification Tools and Techniques , 2008, VSTTE.

[20]  Patrice Chalin,et al.  JML4: Towards an Industrial Grade IVE for Java and Next Generation Research Platform for JML , 2008, VSTTE.