Abstract
Foundational certified code systems seek to prove untrusted programs to be safe relative to safety policies given in terms of actual machine architectures, thereby improving the systems’ flexibility and extensibility. Previous efforts have employed a structure wherein the proofs are expressed in the same logic used to express the safety policy. We propose an alternative structure wherein safety proofs are expressed in the Twelf metalogic, thereby eliminating from those proofs an extra layer of encoding needed in the previous accounts. Using this metalogical approach, we have constructed a complete, foundational account of safety for a fully expressive typed assembly language.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Appel, A.W., Felty, A.P.: A semantic model of types and machine instructions for proof-carrying code. In: Twenty-Seventh ACM Symposium on Principles of Programming Languages, Boston, January 2000, pp. 243–253 (2000)
Appel, A.W., Michael, N., Stump, A., Virga, R.: A trustworthy proof checker. Technical Report TR-647-02, Department of Computer Science, Princeton University (April 2002)
Bernard, A., Lee, P.: Temporal logic for proof-carrying code. In: Voronkov, A. (ed.) CADE 2002. LNCS (LNAI), vol. 2392, pp. 31–46. Springer, Heidelberg (2002)
Boehm, H.-J., Weiser, M.: Garbage collection in an uncooperative environment. Software Practice and Experience 18(9), 807–820 (1988)
Buyya, R., Baker, M. (eds.) GRID 2000. LNCS, vol. 1971. Springer, Heidelberg (2000)
Chang, B.-Y.E., Crary, K., DeLap, M., Harper, R., Liszka, J., Murphyø VII, T., Pfenning, F.: Trustless grid computing in conCert. In: Parashar, M. (ed.) GRID 2002. LNCS, vol. 2536, pp. 112–125. Springer, Heidelberg (2002)
Colby, C., Lee, P., Necula, G., Blau, F.: A certifying compiler for Java. In: 2000 SIGPLAN Conference on Programming Language Design and Implementation, Vancouver, British Columbia, June 2000, pp. 95–107 (2000)
Crary, K.: Toward a foundational typed assembly language. In: Thirtieth ACM Symposium on Principles of Programming Languages, New Orleans, Louisiana, January 2003, pp. 198–212 (2003)
Crary, K., Sarkar, S.: Foundational certified code in a metalogical framework. Technical Report CMU-CS-03-108, Carnegie Mellon University, School of Computer Science (2003)
Hamid, N., Shao, Z., Trifonov, V., Monnier, S., Ni, Z.: A syntactic approach to foundational proof-carrying code. In: Seventeenth IEEE Symposium on Logic in Computer Science, Copenhagen, Denmark, July 2002, pp. 89–100 (2002)
Harper, R.: A simplified account of polymorphic references. Information Processing Letters 51(4), 201–206 (1994); Follow-up note in Information Processing Letters 57(1) (1996)
Harper, R., Honsell, F., Plotkin, G.: A framework for defining logics. Journal of the ACM 40(1), 143–184 (1993)
Intel Corporation. IA-32 Intel Architecture Software Developer’s Manual. Order numbers 245470–245472 (2001)
Lee, C.A. (ed.) GRID 2001. LNCS, vol. 2242. Springer, Heidelberg (2001)
Lindholm, T., Yellin, F.: The Java Virtual Machine Specification. Addison-Wesley, Reading (1996)
Morrisett, G., Crary, K., Glew, N., Grossman, D., Samuels, R., Smith, F., Walker, D., Weirich, S., Zdancewic, S.: TALx86: A realistic typed assembly language. In: Second Workshop on Compiler Support for System Software, Atlanta (May 1999)
Morrisett, G., Crary, K., Glew, N., Walker, D.: Stack-based typed assembly language. Journal of Functional Programming 12(1), 43–88 (2002)
Morrisett, G., Walker, D., Crary, K., Glew, N.: From System F to typed assembly language. ACM Transactions on Programming Languages and Systems 21(3), 527–568 (1999); An earlier version appeared in the 1998 Symposium on Principles of Programming Languages
Necula, G.: Proof-carrying code. In: Twenty-Fourth ACM Symposium on Principles of Programming Languages, Paris, January 1997, pp. 106–119 (1997)
Necula, G., Lee, P.: Safe kernel extensions without run-time checking. In: Second Symposium on Operating Systems Design and Implementation, Seattle, October 1996, pp. 229–243 (1996)
Necula, G.C.: Compiling with Proofs. PhD thesis, Carnegie Mellon University, School of Computer Science, Pittsburgh, Pennsylvania (September 1998)
Parashar, M. (ed.) GRID 2002. LNCS, vol. 2536, Springer, Heidelberg (2002)
Paulin-Mohring, C.: Inductive definitions in the system coq – rules and properties. In: Bezem, M., Groote, J.F. (eds.) TLCA 1993. LNCS, vol. 664. Springer, Heidelberg (1993)
Pfenning, F., Schürmann, C.: System description: Twelf – a metalogic framework for deductive systems. In: Ganzinger, H. (ed.) CADE 1999. LNCS (LNAI), vol. 1632, pp. 202–206. Springer, Heidelberg (1999)
Pfenning, F., Schürmann, C.: Twelf User’s Guide, Version 1.3R4 (2002), Available electronically at http://www.cs.cmu.edu/~twelf
SETI@Home (November 2000), http://setiathome.ssl.berkeley.edu
Tool Interface Standards Committee. Executable and Linking Format (ELF) specification (May 1995), http://x86.ddj.com/ftp/manuals/tools/elf.pdf
Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Information and Computation 115, 38–94 (1994)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Crary, K., Sarkar, S. (2003). Foundational Certified Code in a Metalogical Framework. In: Baader, F. (eds) Automated Deduction – CADE-19. CADE 2003. Lecture Notes in Computer Science(), vol 2741. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45085-6_9
Download citation
DOI: https://doi.org/10.1007/978-3-540-45085-6_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40559-7
Online ISBN: 978-3-540-45085-6
eBook Packages: Springer Book Archive