skip to main content
article

A very modal model of a modern, major, general type system

Published:17 January 2007Publication History
Skip Abstract Section

Abstract

We present a model of recursive and impredicatively quantified types with mutable references. We interpret in this model all of the type constructors needed for typed intermediate languages and typed assembly languages used for object-oriented and functional languages. We establish in this purely semantic fashion a soundness proof of the typing systems underlying these TILs and TALs---ensuring that every well-typed program is safe. The technique is generic, and applies to any small-step semantics including λ-calculus, labeled transition systems, and von Neumann machines. It is also simple, and reduces mainly to defining a Kripke semantics of the Gödel-Löb logic of provability. We have mechanically verified in Coq the soundness of our type system as applied to a von Neumann machine.

References

  1. Amal Ahmed, Andrew W. Appel, and Roberto Virga. A stratified semantics of general references embeddable in higher-order logic. In 17th Annual IEEE Symp. on Logic in Computer Science, pp. 75--86, June 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Andrew W. Appel and Amy P. Felty. A semantic model of types and machine instructions for proof-carrying code. In POPL '00: 27th acm sigplan-sigact Symp. on Principles of Programming Languages, pp. 243--253, Jan. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Amal J. Ahmed. Semantics of Types for Mutable State. PhD thesis, Princeton University, Princeton, NJ, Nov. 2004. Tech Report TR-713-04. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. Andrew W. Appel. Foundational proof-carrying code. In Symp. on Logic in Computer Science (LICS '01), pp. 247--258. IEEE, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Bruno Barras et al. The Coq Proof Assistant reference manual. Technical report, INRIA, 1998.Google ScholarGoogle Scholar
  7. Michael Barr and Charles Wells. Toposes, Triples and Theories. Grundlehren der math. Wissenschaften. Springer Verlag, 1983. Reprint 12 in Theory and Applications of Category, //www.emis.de/journals/TAC/.Google ScholarGoogle Scholar
  8. Karl Crary. Toward a foundational typed assembly language. In POPL '03: 30th ACM Symp. on Principles of Programming Languages, pp. 198--212, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Juan Chen, Dinghao Wu, Andrew W. Appel, and Hai Fang. A provably sound TAL for back-end optimization. In PLDI '03: Proc. 2003 ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 208--219, June 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Saul A. Kripke. Semantical considerations on modal logic. In Proceedings of a Colloquium: Modal and Many Valued Logics, vol. 16, pp. 83--94, 1963.Google ScholarGoogle Scholar
  11. John C. Mitchell and Eugenio Moggi. Kripke-style models for typed lambda calculus. Annals of Pure and Applied Logic, 1991.Google ScholarGoogle Scholar
  12. David MacQueen, Gordon Plotkin, and Ravi Sethi. An ideal model for recursive polymophic types. Information and Computation, 71(1/2):95--130, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Paul-André Melliós and Jérôme Vouillon. Recursive polymorphic types and parametricity in an operational framework. In IEEE Symp. on Logic in Computer Science (LICS '05), 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Hiroshi Nakano. A modality for recursion. In LICS '00: 15th Annual Ieee Symp. on Logic in Computer Science, pp. 255--266. Ieee Computer Society Press, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Hiroshi Nakano. Fixed-point logic with the approximation modality and its Kripke completeness. In Theoretical Aspects of Computer Software, vol. 2215 of LNCS, pp. 165--182. Springer, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Zhaozhong Ni and Zhong Shao. Certified assembly programming with embedded code pointers. In 33rd ACM Symp. on Principles of Programming Languages, pp. 320--333. ACM Press, Jan. 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Christine Paulin-Mohring. Inductive definitions in the system Coq; rules and properties. In M. Bezem and J. F. Groote, editors,Proc. International Conference on Typed Lambda Calculi and Applications, vol. 664, pp. 328--345. Springer Verlag Lecture Notes in Computer Science, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Gang Tan and Andrew W. Appel. A compositional logic for control flow. In 7th International Conference on Verification, Model Checking and Abstract Interpretation (VMCAI'06), pp. 80--94, Jan. 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Gang Tan. A Compositional Logic for Control Flow and its Application to Foundational Proof-Carrying Code. PhD thesis, Princeton University, Princeton, NJ, Aug. 2005. Tech Report CS-TR-731-05. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Dinghao Wu. Interfacing Compilers, Proof Checkers, and Proofs for Foundational Proof-Carrying Code. PhD thesis, Princeton University, Aug. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Dachuan Yu, Nadeem A. Hamid, and Zhong Shao. Building certified libraries for PCC: Dynamic storage allocation. In Proc. 2003 European Symp. on Programming (ESOP'03), April 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A very modal model of a modern, major, general type system

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM SIGPLAN Notices
            ACM SIGPLAN Notices  Volume 42, Issue 1
            Proceedings of the 2007 POPL Conference
            January 2007
            379 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/1190215
            Issue’s Table of Contents
            • cover image ACM Conferences
              POPL '07: Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
              January 2007
              400 pages
              ISBN:1595935754
              DOI:10.1145/1190216

            Copyright © 2007 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 17 January 2007

            Check for updates

            Qualifiers

            • article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader