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" - i.e. who verifies 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 describe many of the mathematical and engineering problems to be solved in the construction of a foundational proof-carrying code system.

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

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

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

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

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

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

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

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

[9]  MorrisettGreg,et al.  From system F to typed assembly language , 1999 .

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

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

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

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

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

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

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

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

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

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

[20]  Models for Security Policies in Proof-Carrying Code , .

[21]  Dictionary Passing for Polytypic Polymorphism , .