Specifying behavioral equality with extensible observations

Determine a principled mechanism to specify and reason about behavioral equalities, such as functional extensionality and bisimilarity, in a dependently typed language with codata and extensible observations, in a way that avoids inconsistency and remains compatible with the extensibility of observations and with de/refunctionalization.

Background

Behavioral equalities like functional extensionality and bisimilarity are desirable for codata, but postulating them as axioms is problematic: axioms can break canonicity, and in this system some such axioms (e.g., functional extensionality for certain data encodings) lead to inconsistency.

Because codata observations are extensible, the usual notion of behavioral equality becomes relative to the available observations, complicating its specification. The authors highlight that it is currently unclear how to define such equalities under these conditions and suggest that future work might investigate alternatives such as observational type theory or higher inductive types.

References

Hence, we have the principal problem that it is unclear how to specify behavioral equalities given that we are extensible in the observations.

Deriving Dependently-Typed OOP from First Principles -- Extended Version with Additional Appendices  (2403.06707 - Binder et al., 2024) in Section 7.4 (Strong Behavioural Equality)