We define notions of well-definedness and observational equivalence for programs of mixed inductive and coinductive types. These notions are defined by means of tests formulas which combine structural congruence for inductive types and modal logic for coinductive types. Tests also correspond to certain evaluation contexts. We define a program to be well-defined if it is strongly normalizing under all tests, and two programs are observationally equivalent if they satisfy the same tests.

We show that observational equivalence is sufficiently coarse to ensure that least and greatest fixed point types are initial algebras and final coalgebras, respectively. This yields inductive and coinductive proof principles for reasoning about program behaviour. On the other hand, we argue that observational equivalence does not identify too many terms, by showing that tests induce a topology that, on streams, coincides with usual topology induced by the prefix metric. As one would expect, observational equivalence is, in general, undecidable, but in order to develop some practically useful heuristics we provide coinductive techniques for establishing observational normalization and observational equivalence, along with up-to techniques for enhancing these methods.

Additional Metadata
Keywords Coinductive types, Inductive types, Observational equivalence, Productivity, Termination, Testing logic
Persistent URL dx.doi.org/10.1093/logcom/exv091
Journal Journal of Logic and Computation
Conference International workshop on Proof, Structure, and Computation
Citation
Basold, H, & Hansen, H.H. (2019). Well-definedness and observational equivalence for inductive-coinductive programs. In Special issue of Proof, Structure and Computation 2014 (Vol. 29, pp. 419–468). doi:10.1093/logcom/exv091