Overview
Abstract
Proof-Carrying Components (PCC) are a form of trusted components, for which the guarantee of quality is perhaps the strongest one possible: a mathematical proof, machine-checkable, that the component satisfies specific properties, known as the contract for the component. These properties can be more or less extensive: they might characterize all that's interesting about the component's behavior, or just some specific aspects, such as absence of "null-pointer dereferencing " or other run-time failures. Proof-Carrying Components can be automatically generated using Proof-Transforming Compilers [4, 5, 6]. PTCs are similar to certifying compilers in PCC, but take a source proof as input and produce the bytecode proof. An important property of Proof-Transforming Compilers is that they do not have to be trusted. If the compiler produces a wrong specification or a wrong proof for a component, the proof checker will reject the component. To show the feasibility of Proof-Transforming Compilers, Nordio, Karahan, Guex and Hess [7,8,9] have implemented a PTC for a subset of Eiffel. The compiler takes a proof of an Eiffel program in XML format and produces the bytecode proof. However, the bytecode proof produced as result is not embedded in any theorem prover. This project consists of embedding the Proof-Carrying Components into Isabelle. The components are automatically generated by the PTC. The compiler produces an AST of the component. The goal of this project is embedding the component into Isabelle. Scope of the work This project will develop a translator for Proof-Carrying Components to Isabelle. The task consists of embedding boolean expressions and CIL instruction into Isabelle. Boolean expressions are used to express both contracts and pre-postcondition of the proof. The formal grammar is the following: datatype EiffelContract = Requires boolExpr | ensures boolExpr datatype boolExpr = Const bool | Neg boolExpr | And boolExpr boolExpr | Or boolExpr boolExpr | AndThen boolExpr boolExpr | OrElse boolExpr boolExpr
Citations
| 277 | Object-Oriented Software Construction, 2nd Edition - Meyer - 1997 |
| 12 | Proof-transforming compilation of programs with abrupt termination - Müller, Nordio - 2007 |
| 7 | Proof-transforming compilation of eiffel programs - Nordio, Müller, et al. - 2008 |
| 3 | Formalizing Proof-Transforming Compilation of Eiffel Programs - Nordio, Müller, et al. - 2008 |
| 3 | Implementing a Proof-Transforming Compiler from Eiffel to CIL. Semester Thesis - Guex - 2006 |
| 2 | Proof-Transforming Compilation of Eiffel Contracts. Diploma Thesis - Karahan - 2008 |
| 2 | Integrating Proof-Transforming Compilation into EiffelStudio - Hess - 2008 |







