Foundational proof-carrying code

Proof-carrying code is a framework for the mechanical verification of safety properties of machine language programs, but the problem arises of quis custodiat ipsos custodes—who will verify the verifier itself? Foundational proof-carrying code is verification from the smallest possible set of axioms, using the simplest possible verifier and the smallest possible runtime system. I will describe many of the mathematical and engineering problems to be solved in the construction of a foundational proof-carrying code system.

[1]  David Walker,et al.  Typed memory management via static capabilities , 2000, TOPL.

[2]  George C. Necula,et al.  Compiling with proofs , 1998 .

[3]  Mads Tofte,et al.  Implementation of the typed call-by-value λ-calculus using a stack of regions , 1994, POPL '94.

[4]  Norman Ramsey,et al.  Specifying representations of machine instructions , 1997, TOPL.

[5]  Furio Honsell,et al.  A framework for defining logics , 1993, JACM.

[6]  George C. Necula,et al.  A certifying compiler for Java , 2000, PLDI '00.

[7]  Cormac Flanagan,et al.  Avoiding exponential explosion: generating compact verification conditions , 2001, POPL '01.

[8]  Andrew W. Appel,et al.  Type-preserving garbage collectors , 2001, POPL '01.

[9]  Robert Harper,et al.  Compiling polymorphism using intensional type analysis , 1995, POPL '95.

[10]  Andrew W. Appel,et al.  Machine Instruction Syntax and Semantics in Higher Order Logic , 2000, CADE.

[11]  Frank Pfenning,et al.  System Description: Twelf - A Meta-Logical Framework for Deductive Systems , 1999, CADE.

[12]  Karl Crary,et al.  Flexible type analysis , 1999, ICFP '99.

[13]  Roberto Virga,et al.  Efficient Substitution in Hoare Logic Expressions , 2001, HOOTS.

[14]  Zhong Shao,et al.  Principled scavenging , 2001, PLDI '01.

[15]  Andrew W. Appel,et al.  A semantic model of types and machine instructions for proof-carrying code , 2000, POPL '00.

[16]  Andrew W. Appel,et al.  An indexed model of recursive types for foundational proof-carrying code , 2001, TOPL.

[17]  George C. Necula,et al.  Proof-carrying code , 1997, POPL '97.

[18]  Frank Pfenning,et al.  Elf: A Meta-Language for Deductive Systems (System Descrition) , 1994, CADE.