skip to main content
10.1145/1190216.1190235acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article

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

Published: 17 January 2007 Publication History

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.
[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.
[3]
Amal J. Ahmed. Semantics of Types for Mutable State. PhD thesis, Princeton University, Princeton, NJ, Nov. 2004. Tech Report TR-713-04.
[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.
[5]
Andrew W. Appel. Foundational proof-carrying code. In Symp. on Logic in Computer Science (LICS '01), pp. 247--258. IEEE, 2001.
[6]
Bruno Barras et al. The Coq Proof Assistant reference manual. Technical report, INRIA, 1998.
[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/.
[8]
Karl Crary. Toward a foundational typed assembly language. In POPL '03: 30th ACM Symp. on Principles of Programming Languages, pp. 198--212, 2003.
[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.
[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.
[11]
John C. Mitchell and Eugenio Moggi. Kripke-style models for typed lambda calculus. Annals of Pure and Applied Logic, 1991.
[12]
David MacQueen, Gordon Plotkin, and Ravi Sethi. An ideal model for recursive polymophic types. Information and Computation, 71(1/2):95--130, 1986.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[20]
Dinghao Wu. Interfacing Compilers, Proof Checkers, and Proofs for Foundational Proof-Carrying Code. PhD thesis, Princeton University, Aug. 2005.
[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.

Cited By

View all
  • (2025)Algebraic Temporal Effects: Temporal Verification of Recursively Typed Higher-Order ProgramsProceedings of the ACM on Programming Languages10.1145/37049149:POPL(2306-2336)Online publication date: 9-Jan-2025
  • (2025)Affect: An Affine Type and Effect SystemProceedings of the ACM on Programming Languages10.1145/37048419:POPL(126-154)Online publication date: 9-Jan-2025
  • (2024)Multris: Functional Verification of Multiparty Message Passing in Separation LogicProceedings of the ACM on Programming Languages10.1145/36897628:OOPSLA2(1446-1474)Online publication date: 8-Oct-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

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
  • 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
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 January 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Kripke models
  2. impredicative polymorphism
  3. mutable references
  4. recursive types

Qualifiers

  • Article

Conference

POPL07

Acceptance Rates

POPL '07 Paper Acceptance Rate 36 of 198 submissions, 18%;
Overall Acceptance Rate 860 of 4,328 submissions, 20%

Upcoming Conference

POPL '26

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)67
  • Downloads (Last 6 weeks)10
Reflects downloads up to 13 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2025)Algebraic Temporal Effects: Temporal Verification of Recursively Typed Higher-Order ProgramsProceedings of the ACM on Programming Languages10.1145/37049149:POPL(2306-2336)Online publication date: 9-Jan-2025
  • (2025)Affect: An Affine Type and Effect SystemProceedings of the ACM on Programming Languages10.1145/37048419:POPL(126-154)Online publication date: 9-Jan-2025
  • (2024)Multris: Functional Verification of Multiparty Message Passing in Separation LogicProceedings of the ACM on Programming Languages10.1145/36897628:OOPSLA2(1446-1474)Online publication date: 8-Oct-2024
  • (2024)Realistic Realizability: Specifying ABIs You Can Count OnProceedings of the ACM on Programming Languages10.1145/36897558:OOPSLA2(1249-1278)Online publication date: 8-Oct-2024
  • (2024)Verified Lock-Free Session Channels with LinkingProceedings of the ACM on Programming Languages10.1145/36897328:OOPSLA2(588-617)Online publication date: 8-Oct-2024
  • (2024)A Logical Approach to Type SoundnessJournal of the ACM10.1145/367695471:6(1-75)Online publication date: 11-Nov-2024
  • (2024)Almost-Sure Termination by Guarded RefinementProceedings of the ACM on Programming Languages10.1145/36746328:ICFP(203-233)Online publication date: 15-Aug-2024
  • (2024)Deadlock-Free Separation Logic: Linearity Yields Progress for Dependent Higher-Order Message PassingProceedings of the ACM on Programming Languages10.1145/36328898:POPL(1385-1417)Online publication date: 5-Jan-2024
  • (2023)Dependent Session Protocols in Separation Logic from First Principles (Functional Pearl)Proceedings of the ACM on Programming Languages10.1145/36078567:ICFP(768-795)Online publication date: 31-Aug-2023
  • (2023)Proof Automation for Linearizability in Separation LogicProceedings of the ACM on Programming Languages10.1145/35860437:OOPSLA1(462-491)Online publication date: 6-Apr-2023
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media