ABSTRACT
We present the type theory LTT, intended to form a basis for typed target languages, providing an internal notion of logical proposition and proof. The inclusion of explicit proofs allows the type system to guarantee properties that would otherwise be incompatible with decidable type checking. LTT also provides linear facilities for tracking ephemeral properties that hold only for certain program states.Our type theory allows for re-use of typechecking software by casting a variety of type systems within a single language. We illustrate our methodology of representation by means of two examples, one functional and one stateful, and describe the associated operational semantics and proofs of type safety.
- A. W. Appel and A. P. Felty. A semantic model of types and machine instructions for proof-carrying code. In Twenty-Seventh ACM Symposium on Principles of Programming Languages, pages 243--253, Boston, Jan. 2000.]] Google ScholarDigital Library
- B. Bershad, S. Savage, P. Pardyak, E. Sirer, M. Fiuczynski, D. Becker, C. Chambers, and S. Eggers. Extensibility, safety and performance in the SPIN operating system. In Fifteenth ACM Symposium on Operating Systems Principles, pages 267--284, Copper Mountain, Dec. 1995.]] Google ScholarDigital Library
- I. Cervesato and F. Pfenning. A linear logical framework. In Eleventh IEEE Symposium on Logic in Computer Science, pages 264--275, New Brunswick, New Jersey, July 1996.]] Google ScholarDigital Library
- C. Colby, P. Lee, G. Necula, and F. Blau. A certifying compiler for Java. In 2000 SIGPLAN Conference on Programming Language Design and Implementation, pages 95--107, Vancouver, British Columbia, June 2000.]] Google ScholarDigital Library
- K. Crary and S. Weirich. Flexible type analysis. In 1999 ACM International Conference on Functional Programming, pages 233--248, Paris, Sept. 1999.]] Google ScholarDigital Library
- J. Despeyroux, F. Pfenning, and C. Schürmann. Primitive recursion for higher-order abstract syntax. In Third International Conference on Typed Lambda Calculi and Applications, volume 1210 of Lecture Notes in Computer Science, pages 147--163, Nancy, France, Apr. 1997. Springer-Verlag. Extended version published as CMU technical report CMU-CS-96-172.]] Google ScholarDigital Library
- J.-Y. Girard. Linear logic. Theoretical Computer Science, 50:1--102, 1987.]] Google ScholarDigital Library
- R. Harper, F. Honsell, and G. Plotkin. A framework for defining logics. Journal of the ACM, 40(1):143--184, Jan. 1993.]] Google ScholarDigital Library
- R. Harper and G. Morrisett. Compiling polymorphism using intensional type analysis. In Twenty-Second ACM Symposium on Principles of Programming Languages, pages 130--141, San Francisco, Jan. 1995.]] Google ScholarDigital Library
- R. Harper and F. Pfenning. On equivalence and canonical forms in the LF type theory. Technical Report CMU-CS-00-148, Carnegie Mellon University, School of Computer Science, July 2000.]]Google Scholar
- W. Howard. The formulas-as-types notion of construction. In J. P. Seldin and J. R. Hindley, editors, To H.B. Curry: Essays on Combinatory Logic, Lambda-Calculus and Formalism, pages 479--490. Academic Press, 1980.]]Google Scholar
- M. Y. Levin and B. C. Pierce. Tinkertype: A language for playing with formal systems. Technical Report MS-CIS-99-19, Dept of CIS, University of Pennsylvania, July 1999.]]Google Scholar
- T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison-Wesley, 1996.]] Google ScholarDigital Library
- R. Milner, M. Tofte, R. Harper, and D. MacQueen. The Definition of Standard ML (Revised). The MIT Press, Cambridge, Massachusetts, 1997.]] Google ScholarDigital Library
- G. Morrisett, K. Crary, N. Glew, and D. Walker. Stack-based typed assembly language. Journal of Functional Programming, 12(1):43--88, Jan. 2002. An earlier version appeared in the 1998 Workshop on Types in Compilation, volume 1473 of Lecture Notes in Computer Science.]] Google ScholarDigital Library
- G. Morrisett, D. Walker, K. Crary, and N. Glew. From System F to typed assembly language. ACM Transactions on Programming Languages and Systems, 21(3):527--568, May 1999. An earlier version appeared in the 1998 Symposium on Principles of Programming Languages.]] Google ScholarDigital Library
- G. Necula and P. Lee. Safe kernel extensions without run-time checking. In Second Symposium on Operating Systems Design and Implementation, pages 229--243, Seattle, Oct. 1996.]] Google ScholarDigital Library
- C. Paulin-Mohring. Inductive definitions in the system coq---rules and properties. In International Conference on Typed Lambda Calculi and Applications, volume 664 of Lecture Notes in Computer Science. Springer-Verlag, 1993.]] Google ScholarDigital Library
- C. Schürmann. Automating the Meta Theory of Deductive Systems. PhD thesis, Carnegie Mellon University, School of Computer Science, Pittsburgh, Pennsylvania, Oct. 2000.]]Google Scholar
- C. Schürmann and F. Pfenning. Automated theorem proving in a simple meta-logic for LF. In Fifteenth International Conference on Automated Deduction, volume 1421 of Lecture Notes in Computer Science, Lindau, Germany, July 1998. Springer-Verlag.]] Google ScholarDigital Library
- Z. Shao, B. Saha, V. Trifonov, and N. Papaspyrou. A type system for certified binaries. In Twenty-Ninth ACM Symposium on Principles of Programming Languages, pages 217--232, Portland, Oregon, Jan. 2002.]] Google ScholarDigital Library
- F. Smith, D. Walker, and G. Morrisett. Alias types. In European Symposium on Programming, Berlin, Germany, Mar. 2000.]] Google ScholarDigital Library
- J. C. Vanderwaart and K. Crary. A simplified account of the metatheory of linear LF. Technical Report CMU-CS-01-154, Carnegie Mellon University, School of Computer Science, 2002.]]Google Scholar
- P. Wadler. A taste of linear logic. In Mathematical Foundations of Computer Science, volume 711 of Lecture Notes in Computer Science. Springer-Verlag, 1993.]] Google ScholarDigital Library
- D. Walker. A type system for expressive security policies. In Twenty-Seventh ACM Symposium on Principles of Programming Languages, Boston, Jan. 2000.]] Google ScholarDigital Library
- D. Walker, K. Crary, and G. Morrisett. Typed memory management via static capabilities. ACM Transactions on Programming Languages and Systems, 22(4), July 2000. An earlier version appeared in the 1999 Symposium on Principles of Programming Languages.]] Google ScholarDigital Library
- H. Xi and R. Harper. A dependently typed assembly language. In 2001 ACM International Conference on Functional Programming, pages 169--180, Florence, Italy, Sept. 2001.]] Google ScholarDigital Library
- H. Xi and F. Pfenning. Eliminating array bound checking through dependent types. In 1998 SIGPLAN Conference on Programming Language Design and Implementation, pages 249--257, Montreal, June 1998.]] Google ScholarDigital Library
Index Terms
- An expressive, scalable type theory for certified code
Recommendations
An expressive, scalable type theory for certified code
We present the type theory LTT, intended to form a basis for typed target languages, providing an internal notion of logical proposition and proof. The inclusion of explicit proofs allows the type system to guarantee properties that would otherwise be ...
Gradual type theory
Gradually typed languages are designed to support both dynamically typed and statically typed programming styles while preserving the benefits of each. While existing gradual type soundness theorems for these languages aim to show that type-based ...
Decidability of conversion for type theory in type theory
Type theory should be able to handle its own meta-theory, both to justify its foundational claims and to obtain a verified implementation. At the core of a type checker for intensional type theory lies an algorithm to check equality of types, or in ...
Comments