The revised report on the syntactic theories of sequential control and state
Theoretical Computer Science
Operational reasoning for functions with local state
Higher order operational techniques in semantics
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN 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)
On Exceptions Versus Continuations in the Presence of State
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Reasoning about Idealized ALGOL Using Regular Languages
ICALP '00 Proceedings of the 27th International Colloquium on Automata, Languages and Programming
Reasoning about local variables with operationally-based logical relations
LICS '96 Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science
Full abstraction for functional languages with control
LICS '97 Proceedings of the 12th Annual IEEE Symposium on Logic in Computer Science
A Fully Abstract Game Semantics for General References
LICS '98 Proceedings of the 13th Annual IEEE Symposium on Logic in Computer Science
Journal of Functional Programming
Semantics of types for mutable state
Semantics of types for mutable state
Functions with local state: regularity and undecidability
Theoretical Computer Science
Small bisimulations for reasoning about higher-order imperative programs
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A complete, co-inductive syntactic theory of sequential control and state
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Impact of seq on Free Theorems-Based Program Transformations
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
Environmental Bisimulations for Higher-Order Languages
LICS '07 Proceedings of the 22nd Annual IEEE Symposium on Logic in Computer Science
A bisimulation for type abstraction and recursion
Journal of the ACM (JACM)
Third-order Idealized Algol with iteration is decidable
Theoretical Computer Science
Hiding Local State in Direct Style: A Higher-Order Anti-Frame Rule
LICS '08 Proceedings of the 2008 23rd Annual IEEE Symposium on Logic in Computer Science
Typed Normal Form Bisimulation for Parametric Polymorphism
LICS '08 Proceedings of the 2008 23rd Annual IEEE Symposium on Logic in Computer Science
State-dependent representation independence
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
Biorthogonality, step-indexing and compiler correctness
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
A relational modal logic for higher-order stateful ADTs
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
CSL'09/EACSL'09 Proceedings of the 23rd CSL international conference and 18th EACSL Annual conference on Computer science logic
A Generic Operational Metatheory for Algebraic Effects
LICS '10 Proceedings of the 2010 25th Annual IEEE Symposium on Logic in Computer Science
A semantic foundation for hidden state
FOSSACS'10 Proceedings of the 13th international conference on Foundations of Software Science and Computational Structures
Typed normal form bisimulation
CSL'07/EACSL'07 Proceedings of the 21st international conference, and Proceedings of the 16th annuall conference on Computer Science Logic
A fully abstract trace semantics for general
ICALP'07 Proceedings of the 34th international conference on Automata, Languages and Programming
A kripke logical relation between ML and assembly
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The essence of monotonic state
Proceedings of the 7th ACM SIGPLAN workshop on Types in language design and implementation
FOSSACS'11/ETAPS'11 Proceedings of the 14th international conference on Foundations of software science and computational structures: part of the joint European conferences on theory and practice of software
Algorithmic nominal game semantics
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
A kripke logical relation for effect-based program transformations
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
From Applicative to Environmental Bisimulation
Electronic Notes in Theoretical Computer Science (ENTCS)
Towards a program logic for JavaScript
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The marriage of bisimulations and Kripke logical relations
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Program equivalence in a simple language with state
Computer Languages, Systems and Structures
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
Algorithmic games for full ground references
ICALP'12 Proceedings of the 39th international colloquium conference on Automata, Languages, and Programming - Volume Part II
An automata-theoretic model of idealized algol
ICALP'12 Proceedings of the 39th international colloquium conference on Automata, Languages, and Programming - Volume Part II
HECTOR: an equivalence checker for a higher-order fragment of ML
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Superficially substructural types
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Logical relations for fine-grained concurrency
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Higher-order functional reactive programming without spacetime leaks
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hoare-style reasoning with (algebraic) continuations
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Abstract effects and proof-relevant logical relations
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Automata-Theoretic Semantics of Idealized Algol with Passive Expressions
Electronic Notes in Theoretical Computer Science (ENTCS)
Algorithmic probabilistic game semantics
Formal Methods in System Design
Hi-index | 0.00 |
Reasoning about program equivalence is one of the oldest problems in semantics. In recent years, useful techniques have been developed, based on bisimulations and logical relations, for reasoning about equivalence in the setting of increasingly realistic languages - languages nearly as complex as ML or Haskell. Much of the recent work in this direction has considered the interesting representation independence principles enabled by the use of local state, but it is also important to understand the principles that powerful features like higher-order state and control effects disable. This latter topic has been broached extensively within the framework of game semantics, resulting in what Abramsky dubbed the "semantic cube": fully abstract game-semantic characterizations of various axes in the design space of ML-like languages. But when it comes to reasoning about many actual examples, game semantics does not yet supply a useful technique for proving equivalences. In this paper, we marry the aspirations of the semantic cube to the powerful proof method of step-indexed Kripke logical relations. Building on recent work of Ahmed, Dreyer, and Rossberg, we define the first fully abstract logical relation for an ML-like language with recursive types, abstract types, general references and call/cc. We then show how, under orthogonal restrictions to the expressive power our language - namely, the restriction to first-order state and/or the removal of call/cc - we can enhance the proving power of our possible-worlds model in correspondingly orthogonal ways, and we demonstrate this proving power on a range of interesting examples. Central to our story is the use of state transition systems to model the way in which properties of local state evolve over time.