Proof Carrying Code using Algebraic Specifications

Proof Carrying Code is a methodology developed to establish trust between code consumer and producer. The latter formally proves that the code he sents to the former satisfies some safety properties. That proof is received by the consumer together with the code, that is under inspection. Next the consumer verifies the proof before authorizing the execution of the code. While PCC is a powerful approach, some issues like reusability and the diculty of the producer to produce the formal proofs, hinder its wide use. In this paper we propose an alternative schema for proof carrying code using tools from the fields of algebraic specifications and design by contract to counter some of these problems.

[1]  Gary T. Leavens,et al.  Design by Contract with JML , 2006 .

[2]  Joseph A. Goguen,et al.  A hidden agenda , 2000, Theor. Comput. Sci..

[3]  Mark Lillibridge,et al.  Extended static checking for Java , 2002, PLDI '02.

[4]  Andrew W. Appel,et al.  Foundational proof-carrying code , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[5]  Kazuhiro Ogata,et al.  Some Tips on Writing Proof Scores in the OTS/CafeOBJ Method , 2006, Essays Dedicated to Joseph A. Goguen.

[6]  Grigore Rosu,et al.  Hiding More of Hidden Algebra , 1999, World Congress on Formal Methods.

[7]  Gary T. Leavens,et al.  Beyond Assertions: Advanced Specification and Verification with JML and ESC/Java2 , 2005, FMCO.

[8]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[9]  Panagiotis Frangos,et al.  OTS/CafeOBJ2JML: An attempt to combine Design By Contract with Behavioral Specifications , 2012, ArXiv.

[10]  Gary T. Leavens,et al.  How the design of JML accommodates both runtime assertion checking and formal verification , 2003, Sci. Comput. Program..

[11]  José Meseguer,et al.  Order-Sorted Algebra I: Equational Deduction for Multiple Inheritance, Overloading, Exceptions and Partial Operations , 1992, Theor. Comput. Sci..

[12]  George C. Necula,et al.  Proof-Carrying Code , 2011, Encyclopedia of Cryptography and Security.

[13]  Razvan Diaconescu Behavioural specification for hierarchical object composition , 2005, Theor. Comput. Sci..