Module EquivalenceRelation
Provides predicates and types for working with (partial) equivalence relations over arbitrary types.
The module is parameterised by a type T and a binary base relation eq over T. A (partial) equivalence relation is computed from the given base relation eq as the symmetric and transitive closure of eq. If eq is reflexive, then this defines an equivalence relation on T.
The getEquivalenceClass predicate gets the equivalence class, if any, induced by the symmetric and transitive closure of eq, for the given T element.
Predicates
| getEquivalenceClass | Gets the equivalence class associated with the given element, if any. |
Primitive types
| EquivalenceClass | Equivalence classes are treated as opaque values and can only be compared for equality. |