The impact of higher-order state and control effects on local relational reasoning

@article{Dreyer2012TheIO,
  title={The impact of higher-order state and control effects on local relational reasoning},
  author={Derek Dreyer and Georg Neis and Lars Birkedal},
  journal={Journal of Functional Programming},
  year={2012},
  volume={22},
  pages={477 - 528}
}
Abstract 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… Expand
The impact of higher-order state and control effects on local relational reasoning
TLDR
The first fully abstract logical relation for an ML-like language with recursive types, abstract types, general references and call/cc is defined, and it is shown how the proving power of this model can be enhanced under orthogonal restrictions to the expressive power of the language. Expand
Parametric Bisimulations : A Logical Step Forward
In the last several years, a number of effective methods have been developed for reasoning about program equivalence in higher-order imperative languages like ML. Most recently, we proposed relationExpand
The marriage of bisimulations and Kripke logical relations
TLDR
RTSs show how bisimulations' support for reasoning about recursive features via *coinduction* can be synthesized with KLRs' support about local state via *state transition systems*, and designed to avoid the limitations of KLRs and bisimulation that preclude their generalization to inter-language reasoning. Expand
A Logical Step Forward in Parametric Bisimulations
In the last several years, a number of effective methods have been developed for reasoning about program equivalence in higher-order imperative languages like ML. Most recently, we proposedExpand
Abstract effects and proof-relevant logical relations
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 internalExpand
The Transitive Composability of Relation Transition Systems
Relation Transition Systems (RTSs) have recently been proposed as a foundation for reasoning effectively about program equivalence in higher-order imperative languages like ML. RTSs fruitfullyExpand
Handle with care: relational interpretation of algebraic effects and handlers
TLDR
A step-indexed relational interpretation of a call-by-value calculus with algebraic effect handlers and a row-based polymorphic type-and-effect system that can be used to reason about non-trivial properties, such as contextual equivalence and contextual approximation of programs. Expand
Compositional relational reasoning via operational game semantics
We show how to use operational game semantics as a guide to develop relational techniques for establishing contextual equivalences with respect to contexts drawn from a hierarchy of fourExpand
A Monadic Framework for Relational Verification (Functional Pearl)
TLDR
The essence of the approach is to model effectful computations using monads and prove relational properties on their monadic representations, making the most of existing support for reasoning about pure programs. Expand
On the Versatility of Open Logical Relations
TLDR
This work proves by way of open logical relations the correctness of the core of a recently published algorithm for forward automatic differentiation and defines a refinement-based type system for local continuity in an extension of the calculus with conditionals, and proves the soundness of the type system using open logical relation. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 49 REFERENCES
A relational modal logic for higher-order stateful ADTs
TLDR
The proposed model of LADR is based on Ahmed, Dreyer, and Rossberg's state-of-the-art step-indexed Kripke logical relation, which was designed to facilitate proofs of representation independence for "state-dependent" ADTs. Expand
The marriage of bisimulations and Kripke logical relations
TLDR
RTSs show how bisimulations' support for reasoning about recursive features via *coinduction* can be synthesized with KLRs' support about local state via *state transition systems*, and designed to avoid the limitations of KLRs and bisimulation that preclude their generalization to inter-language reasoning. Expand
Operational reasoning for functions with local state
Languages such as ML or Lisp permit the use of recursively defined function expressions with locally declared storage locations. Although this can be very convenient from a programming point of viewExpand
Reasoning about local variables with operationally-based logical relations
  • A. Pitts
  • Mathematics, Computer Science
  • Proceedings 11th Annual IEEE Symposium on Logic in Computer Science
  • 1996
TLDR
A parametric logical relation between the phrases of an Algol-like language is presented and provides an applicative characterisation of contextual equivalence for the language and provides a useful (and complete) method for proving equivalences. Expand
Equivalence in Functional Languages with Effects
TLDR
This paper shows that adding objects with memory to the call-by-value lambda calculus results in a language with a rich equational theory, satisfying many of the usual laws, providing evidence that expressive, mathematically clean programming languages are indeed possible. Expand
Small bisimulations for reasoning about higher-order imperative programs
We introduce a new notion of bisimulation for showing contextual equivalence of expressions in an untyped lambda-calculus with an explicit store, and in which all expressed values, includingExpand
Logical Reasoning for Higher-Order Functions with Local State
TLDR
An extension of Hoare logic for call-by-value higher-order functions with ML-like local reference generation withAxioms for reachability and local invariant play a central role for reasoning about the examples. Expand
State-dependent representation independence
TLDR
This paper develops a possible-worlds model in which relational interpretations of types are allowed to grow over time in a manner that is tightly coupled with changes to some local state, and employs a step-indexed stratification of possible worlds, which facilitates a simplified account of mutable references of higher type. Expand
A kripke logical relation between ML and assembly
TLDR
A novel, extensional, compiler-independent notion of equivalence between high-level programs in an expressive, impure ML-like λ-calculus and low-levelprograms in an (only slightly) idealized assembly language is proposed by means of a biorthogonal, step-indexed, Kripke logical relation. Expand
A step-indexed Kripke model of hidden state
TLDR
The semantic foundations of frame and anti-frame rules are discussed, the first sound model for Charguéraud and Pottier's type and capability system including both of these rules is presented, and invariants are generalised to families of invariants indexed over preorders. Expand
...
1
2
3
4
5
...