Results 1 -
2 of
2
Inferring the Equivalence of Functional Programs that Mutate Data
- Theoretical Computer Science
, 1992
"... this paper we study the constrained equivalence of programs with effects. In particular, we present a formal system for deriving such equivalences. Constrained equivalence is defined via a model theoretic characterization of operational, or observational, equivalence called strong isomorphism. Opera ..."
Abstract
-
Cited by 24 (7 self)
- Add to MetaCart
this paper we study the constrained equivalence of programs with effects. In particular, we present a formal system for deriving such equivalences. Constrained equivalence is defined via a model theoretic characterization of operational, or observational, equivalence called strong isomorphism. Operational equivalence, as introduced by Morris [23] and Plotkin [27], treats programs as black boxes. Two expressions are operationally equivalent if they are indistinguishable in all program contexts. This equivalence is the basis for soundness results for program calculi and program transformation theories. Strong isomorphism, as introduced by Mason [14], also treats programs as black boxes. Two expressions are strongly isomorphic if in all memory states they return the same value, and have the same effect on memory (modulo the production of garbage). Strong isomorphism implies operational equivalence. The converse is true for first-order languages; it is false for full higher-order languages. However, even in the higher-order case, it remains an useful tool for establishing equivalence. Since strong isomorphism is defined by quantifying over memory states, rather than program contexts, it is a simple matter to restrict this equivalence to those memory states which satisfy a set of constraints. It is for this reason that strong isomorphism is a useful relation, even in the higher-order case. The formal system we present defines a single-conclusion consequence relation \Sigma ` \Phi where \Sigma is a finite set of constraints and \Phi is an assertion. The semantics of the formal system is given by a semantic consequence relation, \Sigma j= \Phi, defined in terms of a class of memory models for assertions and constraints. The assertions we consider are of the following two forms...
Axiomatizing Operational Equivalence in the presence of Side Effects
- In Fourth Annual Symposium on Logic in Computer Science. IEEE
, 1989
"... this paper we present a formal system for deriving assertions about programs with side effects. The assertions we consider are of the following two forms: (i) e diverges (i.e. fails to reduce to a value), written " e; (ii) e 0 and e 1 are strongly isomorphic (i.e. reduce to the same value and have ..."
Abstract
-
Cited by 15 (8 self)
- Add to MetaCart
this paper we present a formal system for deriving assertions about programs with side effects. The assertions we consider are of the following two forms: (i) e diverges (i.e. fails to reduce to a value), written " e; (ii) e 0 and e 1 are strongly isomorphic (i.e. reduce to the same value and have the same effect on memory up to production of garbage), written

