Mujava: embedding a programming language in a theorem prover

This paper introduces the subset Java of Java essentially by omitting everything but classes The type system and semantics of this language and a corresponding abstract Machine JVM are for malized in the theorem prover Isabelle HOL Type safety both of Java and the JVM are mechanically veri ed To make the paper self contained it begins with introductions to Isabelle HOL and the art of embedding languages in theorem provers

[1]  Alonzo Church,et al.  A formulation of the simple theory of types , 1940, Journal of Symbolic Logic.

[2]  Gregor Snelting,et al.  Experiences with the PSG - Programming System Generator , 1985, TAPSOFT, Vol.2.

[3]  M. Gordon HOL : A machine oriented formulation of higher order logic , 1985 .

[4]  Peter B. Andrews An introduction to mathematical logic and type theory - to truth through proof , 1986, Computer science and applied mathematics.

[5]  Rance Cleaveland,et al.  Implementing mathematics with the Nuprl proof development system , 1986 .

[6]  Patrick Borras,et al.  Centaur: the system , 1988, Software Development Environments.

[7]  Michael J. C. Gordon,et al.  Mechanizing programming logics in higher order logic , 1989 .

[8]  F. Pfenning Logic programming in the LF logical framework , 1991 .

[9]  Richard J. Boulton,et al.  Experience with Embedding Hardware Description Languages in HOL , 1992, TPCD.

[10]  Paul Klint,et al.  A meta-environment for generating programming environments , 1989, TSEM.

[11]  Don Syme,et al.  Reasoning with the Formal Definition of Standard ML in HOL , 1993, HUG.

[12]  Monica Nesi Value-Passing CCS in HOL , 1993, HUG.

[13]  Kim Dam Petersen,et al.  Program Verification using HOL-UNITY , 1993, HUG.

[14]  R. Pollack The Theory of LEGO A Proof Checker for the Extended Calculus of Constructions , 1994 .

[15]  Savi Maharaj,et al.  Studying the ML Module System in HOL , 1995, Comput. J..

[16]  Tobias Nipkow Winskel is (Almost) Right: Towards a Mechanized Semantics Textbook , 1996, FSTTCS.

[17]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[18]  Stephen N. Freund,et al.  A Type System For Object Initialization In the Java Bytecode Language , 1997, Electron. Notes Theor. Comput. Sci..

[19]  Konrad Slind Derivation and Use of Induction Schemes in Higher-Order Logic , 1997, TPHOLs.

[20]  Hugo Herbelin,et al.  The Coq proof assistant : reference manual, version 6.1 , 1997 .

[21]  Burkhart Wolff,et al.  A Corrected Failure Divergence Model for CSP in Isabelle/HOL , 1997, FME.

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

[23]  Thomas Kleymann,et al.  Hoare logic and VDM : machine-checked soundness and completeness proofs , 1998 .

[24]  David von Oheimb,et al.  Javàight Is Type-safe | Deenitely , 1998 .

[25]  Bart Jacobs,et al.  Reasoning about Java classes: preliminary report , 1998, OOPSLA '98.

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

[27]  Joachim Posegga,et al.  Java bytecode verification by model checking : System abstract , 1999, CAV 1999.

[28]  Konrad Slind Reasoning about terminating functional programs , 1999 .

[29]  Pieter H. Hartel,et al.  The Operational Semantics of a Java Secure Processor , 1999, Formal Syntax and Semantics of Java.

[30]  Don Syme,et al.  Proving Java Type Soundness , 1999, Formal Syntax and Semantics of Java.

[31]  David von Oheimb Hoare Logic for Mutual Recursion and Local Variables , 1999, FSTTCS.

[32]  Sophia Drossopoulou,et al.  Describing the Semantics of Java and Proving Type Soundness , 1999, Formal Syntax and Semantics of Java.

[33]  Amy P. Felty,et al.  Formal Metatheory using Implicit Syntax, and an Application to Data Abstraction for Asynchronous Systems , 1999, CADE.

[34]  Sarfraz Khurshid,et al.  Is the Java Type System Sound? , 1999, Theory Pract. Object Syst..

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