ABSTRACT
Proof checkers for proof-carrying code (and similar systems) can suffer from two problems: huge proof witnesses and untrustworthy proof rules. No previous design has addressed both of these problems simultaneously. We show the theory, design, and implementation of a proof-checker that permits small proof witnesses and machine-checkable proofs of the soundness of the system.
- Amal J. Ahmed, Andrew W. Appel, and Roberto Virga. A stratified semantics of general references embeddable in higher-order logic. In In Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science (LICS 2002), July 2002.]] Google ScholarDigital Library
- Andrew W. Appel. Foundational proof-carrying code. In Symposium on Logic in Computer Science (LICS '01), pages 247--258. IEEE, 2001.]] Google ScholarDigital Library
- Andrew W. Appel and Edward W. Felten. Proof-carrying authentication. In 6th ACM Conference on Computer and Communications Security. ACM Press, November 1999.]] Google ScholarDigital Library
- Andrew W. Appel and Amy P. Felty. A semantic model of types and machine instructions for proof-carrying code. In POPL '00: The 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 243--253, New York, January 2000. ACM Press.]] Google ScholarDigital Library
- Andrew W. Appel and David McAllester. An indexed model of recursive types for foundational proof-carrying code. ACM Trans. on Programming Languages and Systems, 23(5):657--683, Sept. 2001.]] Google ScholarDigital Library
- Andrew W. Appel, Neophytos Michael, Aaron Stump, and Roberto Virga. A trustworthy proof checker. In Iliano Cervesato, editor, Foundations of Computer Security workshop, pages 37--48. DIKU, July 2002.]]Google Scholar
- Juan Chen, Dinghao Wu, Andrew~W. Appel, and Hai Fang. A provably sound TAL for back-end optimization. In PLDI '03: Proceedings of the 2003 ACM SIGPLAN Conference on Programming Language Design and Implementation, New York, June 2003. ACM Press.]] Google ScholarDigital Library
- Robert Harper, Furio Honsell, and Gordon Plotkin. A framework for defining logics. Journal of the ACM, 40(1):143--184, January 1993.]] Google ScholarDigital Library
- Christopher League, Zhong Shao, and Valery Trifonov. Precision in practice: A type-preserving Java compiler. In 12th International Conference on Compiler Construction (CC'03), page to appear, April 2003.]]Google Scholar
- George Necula. Proof-carrying code. In 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 106--119, New York, January 1997. ACM Press.]] Google ScholarDigital Library
- George C. Necula and Peter Lee. Efficient representation and validation of proofs. In In Proceedings of the 13th Annual Symposium on Logic in Computer Science, 1998.]] Google ScholarDigital Library
- George C. Necula and S. P. Rahul. Oracle-based checking of untrusted software. In POPL 2001: The 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 142--154. ACM Press, January 2001.]] Google ScholarDigital Library
- Frank Pfenning. Logic programming in the LF logical framework. In Gérard Huet and Gordon Plotkin, editors, Logical Frameworks, pages 149--181. Cambridge University Press, 1991.]] Google ScholarDigital Library
- Frank Pfenning. Elf: A meta-language for deductive systems. In A. Bundy, editor, Proceedings of the 12th International Conference on Automated Deduction, pages 811--815, Nancy, France, June 1994. Springer-Verlag LNAI 814.]] Google ScholarDigital Library
- Frank Pfenning and Carsten Schürmann. System description: Twelf --- a meta-logical framework for deductive systems. In H. Ganzinger, editor, Proceedings of the 16th International Conference on Automated Deduction (CADE-16), pages 202--206, Trento, Italy, July 1999. Springer-Verlag. LNAI 1632.]] Google ScholarDigital Library
- Frank Pfenning and Carsten Schürmann. Twelf User's Guide (Version 1.4). Carnegie-Mellon Univ., 2002.]]Google Scholar
- Robert Pollack. How to believe a machine-checked proof. In G. Sambin and J. Smith, editors, Twenty Five Years of Constructive Type Theory. Oxford University Press, 1998.]]Google Scholar
- David A. Schmidt. Denotational Semantics: A Methodology for Language Development. Allyn and Bacon, Boston, 1986.]] Google ScholarDigital Library
- Gang Tan, Kedar Swadi, Dinghao Wu, and Andrew W. Appel. Construction of a semantic model for a typed assembly language. March 2003.]]Google Scholar
Index Terms
- Foundational proof checkers with small witnesses
Recommendations
A Trustworthy Proof Checker
Proof-carrying code (PCC) and other applications in computer security require machine-checkable proofs of properties of machine-language programs. The main advantage of the PCC approach is that the amount of code that must be explicitly trusted is very ...
Foundational proof certificates: making proof universal and permanent
LFMTP '13: Proceedings of the Eighth ACM SIGPLAN international workshop on Logical frameworks & meta-languages: theory & practiceConsider a world where exporting proof evidence into a declarative, universal, and permanent format is taken as ``feature zero'' for computational logic systems. In such a world, provers will be able to communicate and share theorems and proofs; ...
Polymorphic lemmas and definitions in $\lambda$Prolog and Twelf
$\lambda$Prolog is known to be well-suited for expressing and implementing logics and inference systems. We show that lemmas and definitions in such logics can be implemented with a great economy of expression. We encode a higher-order logic using an ...
Comments