definition is_left_inverse ≝
λM:Monoid.
λopp: M → M.
- ∀x:M. op M (opp x) x = 1.
+ ∀x:M. (opp x)·x = 1.
definition is_right_inverse ≝
λM:Monoid.
λopp: M → M.
- ∀x:M. op M x (opp x) = 1.
+ ∀x:M. x·(opp x) = 1.
theorem is_left_inverse_to_is_right_inverse_to_eq:
∀M:Monoid. ∀l,r.
∀x:M. l x = r x.
intros;
generalize in match (H x); intro;
- generalize in match (eq_f ? ? (λy. op M y (r x)) ? ? H2);
+ generalize in match (eq_f ? ? (λy.y·(r x)) ? ? H2);
simplify; fold simplify (op M);
intro; clear H2;
generalize in match (semigroup_properties M);