proposition: Lemma weqlinvrinv {X : hSet} (opp : binop X) (is : iscomm opp) (un0 : X) (inv0 : X -> X) : (islinv opp un0 inv0) ≃ (isrinv opp un0 inv0).
proof: Proof. assert (f : (islinv opp un0 inv0) -> (isrinv opp un0 inv0)). { unfold islinv. unfold isrinv. intro isl. intro x. destruct (is (inv0 x) x). apply (isl x). } assert (g : (isrinv opp un0 inv0) -> (islinv opp un0 inv0)). { unfold islinv. unfold isrinv. intro isr. intro x. destruct (is x (inv0 x)). apply (isr x). } split with f. apply (isweqimplimpl f g (isapropislinv opp un0 inv0) (isapropisrinv opp un0 inv0)). Defined.
imports: UniMath.Foundations.Sets UniMath.MoreFoundations.Propositions