An ideal model for recursive polymorphic types
Information and Control
A semantic model of types and machine instructions for proof-carrying code
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An indexed model of recursive types for foundational proof-carrying code
ACM Transactions on Programming Languages and Systems (TOPLAS)
Toward a foundational typed assembly language
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Stratified Semantics of General References Embeddable in Higher-Order Logic
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Fixed-Point Logic with the Approximation Modality and Its Kripke Completeness
TACS '01 Proceedings of the 4th International Symposium on Theoretical Aspects of Computer Software
Inductive Definitions in the system Coq - Rules and Properties
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
A provably sound TAL for back-end optimization
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
LICS '00 Proceedings of the 15th Annual IEEE Symposium on Logic in Computer Science
Foundational Proof-Carrying Code
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
Semantics of types for mutable state
Semantics of types for mutable state
Recursive Polymorphic Types and Parametricity in an Operational Framework
LICS '05 Proceedings of the 20th Annual IEEE Symposium on Logic in Computer Science
A compositional logic for control flow and its application in foundational proof-carrying code
A compositional logic for control flow and its application in foundational proof-carrying code
Interfacing compilers, proof checkers, and proofs for foundational proof-carrying code
Interfacing compilers, proof checkers, and proofs for foundational proof-carrying code
Certified assembly programming with embedded code pointers
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Building certified libraries for PCC: dynamic storage allocation
ESOP'03 Proceedings of the 12th European conference on Programming
A compositional logic for control flow
VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
A garbage-collecting typed assembly language
TLDI '07 Proceedings of the 2007 ACM SIGPLAN international workshop on Types in languages design and implementation
Multimodal Separation Logic for Reasoning About Operational Semantics
Electronic Notes in Theoretical Computer Science (ENTCS)
Compiling functional types to relational specifications for low level imperative code
Proceedings of the 4th international workshop on Types in language design and implementation
Relational parametricity for references and recursive types
Proceedings of the 4th international workshop on Types in language design and implementation
Biorthogonality, step-indexing and compiler correctness
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Weak updates and separation logic
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
A theory of indirection via approximation
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A relational modal logic for higher-order stateful ADTs
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Semantic foundations for typed assembly languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Using XCAP to certify realistic systems code: machine context management
TPHOLs'07 Proceedings of the 20th international conference on Theorem proving in higher order logics
A realizability model for impredicative Hoare type theory
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Oracle semantics for concurrent separation logic
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Step-indexed kripke models over recursive worlds
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A kripke logical relation between ML and assembly
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A typed store-passing translation for general references
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Local actions for a curry-style operational semantics
Proceedings of the 5th ACM workshop on Programming languages meets program verification
A logical mix of approximation and separation
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
Verifying object-oriented programs with higher-order separation logic in Coq
ITP'11 Proceedings of the Second international conference on Interactive theorem proving
Higher-order functional reactive programming in bounded space
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Semantics for graphical user interfaces
TLDI '12 Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementation
LICS '12 Proceedings of the 2012 27th Annual IEEE/ACM Symposium on Logic in Computer Science
Extending Type Theory with Forcing
LICS '12 Proceedings of the 2012 27th Annual IEEE/ACM Symposium on Logic in Computer Science
Superficially substructural types
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
High-level separation logic for low-level code
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modular reasoning about separation of concurrent data structures
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Hi-index | 0.00 |
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.