pub open spec fn commutative<T, U>(r: FnSpec<(T, T), U>) -> bool
{ forall |x: T, y: T| #[trigger] r(x, y) == #[trigger] r(y, x) }