Lemma binop_iso_equiv_is_equiv (A B : BINOP) : isweq (binop_iso_equiv A B). Proof. apply (isweq_iso _ (binop_equiv_iso A B)). - intro; apply z_iso_eq. apply maponpaths. unfold binop_equiv_iso, binop_iso_equiv. cbn. use total2_paths_f. + cbn. unfold make_binopfun. apply subtypePath. * intros y. apply isapropisbinopfun. * apply maponpaths. apply subtypePath. -- unfold isPredicate. intros x0. apply isapropisbinopfun. -- apply idpath. + apply proofirrelevance. apply (isaprop_is_z_isomorphism(C:=BINOP)). - intros y. unfold binop_iso_equiv, binop_equiv_iso. cbn. use total2_paths_f. + cbn. unfold make_binopfun. apply subtypePath. * intros x. apply isapropisweq. * apply idpath. + apply proofirrelevance. apply isapropisbinopfun. Defined.
Require Import UniMath.Foundations.PartD. Require Import UniMath.Foundations.Propositions. Require Import UniMath.Foundations.Sets. Require Import UniMath.Foundations.UnivalenceAxiom. Require Import UniMath.Algebra.BinaryOperations. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.Core.Univalence. Require Import UniMath.CategoryTheory.Core.Functors.