Results 1 
3 of
3
μJava: Embedding a Programming Language in a Theorem Prover
 Foundations of Secure Computation, volume 175 of NATO Science Series F: Computer and Systems Sciences
, 2000
"... . 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 formalized in the theorem prover Isabelle/HOL. Type safety both of Java and the JVM are mechanically veri ..."
Abstract

Cited by 13 (0 self)
 Add to MetaCart
. 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 formalized in the theorem prover Isabelle/HOL. Type safety both of Java and the JVM are mechanically verified. To make the paper selfcontained, it begins with introductions to Isabelle/HOL and the art of embedding languages in theorem provers. 1 Introduction Embedding a programming language in a theorem prover means to describe (parts of) the language in the logic of the theorem prover, for example the abstract syntax, the semantics, the type system, a Hoare logic, a compiler, etc. One could call this applied machinechecked semantics. Why should we want to do this? We have to distinguish two possible applications: ffl Proving theorems about programs. This is usually called program analysis or verification and will not concern us very much in this paper. ffl Proving theorems about the pr...
Mechanically Verifying the Correctness of an Offline Partial Evaluator
, 1995
"... We show that using deductive systems to specify an offline partial evaluator allows its correctness to be mechanically verified. For a mixstyle partial evaluator, we specify bindingtime constraints using a naturaldeduction logic, and the associated program specializer using natural (aka "deducti ..."
Abstract

Cited by 12 (3 self)
 Add to MetaCart
We show that using deductive systems to specify an offline partial evaluator allows its correctness to be mechanically verified. For a mixstyle partial evaluator, we specify bindingtime constraints using a naturaldeduction logic, and the associated program specializer using natural (aka "deductive") semantics. These deductive systems can be directly encoded in the Elf programming language  a logic programming language based on the LF logical framework. The specifications are then executable as logic programs. This provides a prototype implementation of the partial evaluator. Moreover, since deductive system proofs are accessible as objects in Elf, many aspects of the partial evaluation correctness proofs (e.g., the correctness of bindingtime analysis) can be coded in Elf and mechanically verified. This work illustrates the utility of declarative programming and of using deductive systems for defining program specialization systems: by exploiting the logical character of definit...
Theorem proving support in programming language semantics, in "From Semantics to Computer Science, essays in Honour of Gilles Kahn
 Proceedings Editing
"... apport de recherche ..."