Formal parametric polymorphism
Theoretical Computer Science - A collection of contributions in honour of Corrado Bo¨hm on the occasion of his 70th birthday
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Operational reasoning for functions with local state
Higher order operational techniques in semantics
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS)
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)
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
A Logic for Parametric Polymorphism
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
Foundational Proof-Carrying Code
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
Simple relational correctness proofs for static analyses and program transformations
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Semantic types: a fresh look at the ideal model for types
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parametric polymorphism and operational equivalence
Mathematical Structures in Computer Science
A Syntactic Approach to Foundational Proof-Carrying Code
Journal of Automated Reasoning
Building certified libraries for PCC: dynamic storage allocation
Science of Computer Programming - Special issue on 12th European symposium on programming (ESOP 2003)
Correctness of data representations involving heap data structures
Science of Computer Programming - Special issue on 12th European symposium on programming (ESOP 2003)
Certified assembly programming with embedded code pointers
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Theoretical Computer Science
A typed, compositional logic for a stack-based abstract machine
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Relational reasoning in a nominal semantics for storage
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Refinement and separation contexts
FSTTCS'04 Proceedings of the 24th international conference on Foundations of Software Technology and Theoretical Computer Science
Formalizing and verifying semantic type soundness of a simple compiler
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
Local rely-guarantee reasoning
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compiling functional types to relational specifications for low level imperative code
Proceedings of the 4th international workshop on Types in language design and implementation
Separation and information hiding
ACM Transactions on Programming Languages and Systems (TOPLAS)
Biorthogonality, step-indexing and compiler correctness
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Semantic foundations for typed assembly languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Relational parametricity and separation logic
FOSSACS'07 Proceedings of the 10th international conference on Foundations of software science and computational structures
Abstract predicates and mutable adts in hoare type theory
ESOP'07 Proceedings of the 16th European conference on Programming
Reusable verification of a copying collector
VSTTE'10 Proceedings of the Third international conference on Verified software: theories, tools, experiments
High-level separation logic for low-level code
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Specification patterns for reasoning about recursion through the store
Information and Computation
Hi-index | 0.00 |
We introduce a Floyd-Hoare-style framework for specification and verification of machine code programs, based on relational parametricity (rather than unary predicates) and using both step-indexing and a novel form of separation structure. This yields compositional, descriptive and extensional reasoning principles for many features of low-level sequential computation: independence, ownership transfer, unstructured control flow, first-class code pointers and address arithmetic. We demonstrate how to specify and verify the implementation of a simple memory manager and, independently, its clients in this style. The work has been fully machine-checked within the Coq proof assistant.