pub open spec fn equivalence_relation<T>(r: FnSpec<(T, T), bool>) -> bool
{ &&& reflexive(r) &&& symmetric(r) &&& transitive(r) }