Compiling standard ML to Java bytecodes
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Operational reasoning for functions with local state
Higher order operational techniques in semantics
Integrating functional and imperative programming
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
The marriage of effects and monads
ACM Transactions on Computational Logic (TOCL)
Computer
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
A Categorical Approach to Realizability and Polymorphic Types
Proceedings of the 3rd Workshop on Mathematical Foundations of Programming Language Semantics
Observable Properties of Higher Order Functions that Dynamically Create Local Names, or What's new?
MFCS '93 Proceedings of the 18th International Symposium on Mathematical Foundations of Computer Science
Type Theory via Exact Categories
LICS '98 Proceedings of the 13th Annual IEEE Symposium on Logic in Computer Science
A category-theoretic approach to the semantics of programming languages
A category-theoretic approach to the semantics of programming languages
Journal of Functional Programming
A bisimulation for type abstraction and recursion
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Model variables: cleanly supporting abstraction in design by contract: Research Articles
Software—Practice & Experience
Small bisimulations for reasoning about higher-order imperative programs
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Local Action and Abstract Separation Logic
LICS '07 Proceedings of the 22nd Annual IEEE Symposium on Logic in Computer Science
Relational semantics for effect-based program transformations with dynamic allocation
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
State-dependent representation independence
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Data Refinement: Model-Oriented Proof Methods and their Comparison
Data Refinement: Model-Oriented Proof Methods and their Comparison
Biorthogonality, step-indexing and compiler correctness
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Relational semantics for effect-based program transformations: higher-order store
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
Verifying event-driven programs using ramified frame properties
Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation
Typing termination in a higher-order concurrent imperative language
Information and Computation
The impact of higher-order state and control effects on local relational reasoning
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
The category-theoretic solution of recursive metric-space equations
Theoretical Computer Science
Abstraction and refinement for local reasoning
VSTTE'10 Proceedings of the Third international conference on Verified software: theories, tools, experiments
A kripke logical relation between ML and assembly
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A kripke logical relation for effect-based program transformations
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
The marriage of bisimulations and Kripke logical relations
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Algebraic foundations for effect-dependent optimisations
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Relational reasoning in a nominal semantics for storage
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Reading, writing and relations: towards extensional semantics for effect analyses
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Superficially substructural types
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
A marriage of rely/guarantee and separation logic
CONCUR'07 Proceedings of the 18th international conference on Concurrency Theory
Subjective auxiliary state for coarse-grained concurrency
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Nominal Sets: Names and Symmetry in Computer Science
Nominal Sets: Names and Symmetry in Computer Science
Hi-index | 0.00 |
We give a denotational semantics for a region-based effect system that supports type abstraction in the sense that only externally visible effects need to be tracked: non-observable internal modifications, such as the reorganisation of a search tree or lazy initialisation, can count as 'pure' or 'read only'. This 'fictional purity' allows clients of a module to validate soundly more effect-based program equivalences than would be possible with previous semantics. Our semantics uses a novel variant of logical relations that maps types not merely to partial equivalence relations on values, as is commonly done, but rather to a proof-relevant generalisation thereof, namely setoids. The objects of a setoid establish that values inhabit semantic types, whilst its morphisms are understood as proofs of semantic equivalence. The transition to proof-relevance solves twoawkward problems caused by naïve use of existential quantification in Kripke logical relations, namely failure of admissibility and spurious functional dependencies.