A robust graph-based approach to observational equivalence
We propose a new approach to defining programming languages with effects, and proving observational equivalence. Operational machinery is given by a hypergraph-rewriting abstract machine inspired by Girard's Geometry of Interaction. It interprets a graph calculus of only three intrinsic constructs: variable binding, atom binding, and thunking. Everything else, including features which are commonly thought of as intrinsic, such as arithmetic or function abstraction and application, must be provided as extrinsic operations, with associated rewrite rules. The graph representation naturally leads to two new principles about equational reasoning, which we call \emph{locality} and \emph{robustness}. These concepts enable a novel flexible and powerful reasoning methodology about (type-free) languages with effects. The methodology is additionally capable of proving a generalised notion of observational equivalence that can be quantified over syntactically restricted contexts instead of all contexts, and also can be quantitatively constrained in terms of the number of reduction steps. We illustrate the methodology using the call-by-value lambda-calculus extended with (higher-order) state.