Results 1 -
3 of
3
Logical Step-Indexed Logical Relations
"... We show how to reason about “step-indexed ” logical relations in an abstract way, avoiding the tedious, error-prone, and proof-obscuring step-index arithmetic that seems superficially to be an essential element of the method. Specifically, we define a logic LSLR, which is inspired by Plotkin and Aba ..."
Abstract
-
Cited by 10 (4 self)
- Add to MetaCart
We show how to reason about “step-indexed ” logical relations in an abstract way, avoiding the tedious, error-prone, and proof-obscuring step-index arithmetic that seems superficially to be an essential element of the method. Specifically, we define a logic LSLR, which is inspired by Plotkin and Abadi’s logic for parametricity, but also supports recursively defined relations by means of the modal “later ” operator from Appel et al.’s “very modal model” paper. We encode in LSLR a logical relation for reasoning (in-)equationally about programs in call-by-value System F extended with recursive types. Using this logical relation, we derive a useful set of rules with which we can prove contextual (in-)equivalences without mentioning step indices. 1
The Transitive Composability of Relation Transition Systems
"... Abstract—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 fruitfully synthesize the coinductive style of bisimulation-based methods with the treatment of local state i ..."
Abstract
- Add to MetaCart
Abstract—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 fruitfully synthesize the coinductive style of bisimulation-based methods with the treatment of local state in recent work on step-indexed Kripke logical relations (SKLRs). Like SKLRs, RTSs are designed to have the potential to scale to inter-language reasoning; but unlike SKLRs, RTS proofs are also transitively composable, which is of critical importance for applications such as multi-stage verified compilation. In a POPL’12 paper [6], we presented the first RTS model for an ML-like core language, F µ! , supporting higher-order functions, recursive types, abstract types, and general mutable references, and we proved soundness of the model w.r.t. contextual equivalence. In addition, we briefly sketched the proof that RTSs are transitively composable, but our proof only covered types and mutable state. Here, we present the transitivity proof for the full RTS model of the full F µ! language. The proof is highly intricate, requiring a number of technical innovations. We have mechanized all our results in Coq. I.
The Impact of Higher-Order State and Control . . .
, 2012
"... 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 o ..."
Abstract
- Add to MetaCart
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 stepindexed 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 of 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.

