A Coq Formalization of a Type Checker for Object Initialization in the Java Virtual Machine

We worked on a type system proposed in [11] to enforce a discipline for object initialization in the Java Virtual Machine language, to show how this type system could be implemented in the Coq proof and specification language. We used this description both to prove the theorems of [11] and to construct an effective verifier for this discipline.

[1]  Lawrence Charles Paulson,et al.  Isabelle: A Generic Theorem Prover , 1994 .

[2]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[3]  T. Coquand Une théorie des constructions , 1985 .

[4]  Cristina Cornes,et al.  Automating Inversion of Inductive Predicates in Coq , 1995, TYPES.

[5]  J. C. Filliatre Preuve de programmes imperatifs en theorie des types , 1999 .

[6]  Jean-Christophe Filliâtre Proof of Imperative Programs in Type Theory , 1998, TYPES.

[7]  Robert O'Callahan,et al.  A simple, comprehensive type system for Java bytecode subroutines , 1999, POPL 1999.

[8]  Christine Paulin-Mohring,et al.  Synthesis of ML Programs in the System Coq , 1993, J. Symb. Comput..

[9]  R. Aho,et al.  Pruning Duplicate Nodes in Depth-First Search , 1993 .

[10]  David von Oheimb,et al.  Mujava: embedding a programming language in a theorem prover , 1999 .

[11]  Cornelia Pusch,et al.  Proving the Soundness of a Java Bytecode Verifier Specification in Isabelle/HOL , 1999, TACAS.

[12]  Christine Paulin-Mohring,et al.  Inductive Definitions in the system Coq - Rules and Properties , 1993, TLCA.

[13]  Stephen N. Freund,et al.  A type system for object initialization in the Java bytecode language , 1998, OOPSLA '98.

[14]  Stephen N. Freund,et al.  A formal framework for the Java bytecode language and verifier , 1999, OOPSLA '99.

[15]  Robert W. Floyd,et al.  Assigning Meanings to Programs , 1993 .

[16]  Thierry Coquand,et al.  The Calculus of Constructions , 1988, Inf. Comput..

[17]  J. Rouyer Développement de l'algorithme d'unification dans le calcul des constructions avec types inductifs , 1992 .

[18]  Yves Bertot,et al.  Fix-Point Equations for Well-Founded Recursion in Type Theory , 2000, TPHOLs.

[19]  Jean-Louis Lanet,et al.  How to Formally Specify the Java Bytecode Semantivs Using the B Method , 1999, ECOOP Workshops.

[20]  Martín Abadi,et al.  A type system for Java bytecode subroutines , 1999, TOPL.

[21]  Robert O'Callahn A Simple, Comprehensive Type System for Java Bytecode Subroutines , 1999, POPL.

[22]  Tobias Nipkow,et al.  Machine-Checking the Java Specification: Proving Type-Safety , 1999, Formal Syntax and Semantics of Java.

[23]  Gérard P. Huet,et al.  The Zipper , 1997, Journal of Functional Programming.