diff --git a/UniMath/Algebra/Apartness.v b/UniMath/Algebra/Apartness.v index a9b6a09384..0560a77a56 100644 --- a/UniMath/Algebra/Apartness.v +++ b/UniMath/Algebra/Apartness.v @@ -28,11 +28,11 @@ Qed. Definition aprel (X : UU) := ∑ ap : hrel X, isaprel ap. Definition aprel_pr1 {X : UU} (ap : aprel X) : hrel X := pr1 ap. -Coercion aprel_pr1 : aprel >-> hrel. +#[reversible] Coercion aprel_pr1 : aprel >-> hrel. Definition apSet := ∑ X : hSet, aprel X. Definition apSet_pr1 (X : apSet) : hSet := pr1 X. -Coercion apSet_pr1 : apSet >-> hSet. +#[reversible] Coercion apSet_pr1 : apSet >-> hSet. Arguments apSet_pr1 X: simpl never. Definition apSet_pr2 (X : apSet) : aprel X := pr2 X. Declare Scope ap_scope. @@ -71,11 +71,11 @@ Definition istightap {X : UU} (ap : hrel X) := Definition tightap (X : UU) := ∑ ap : hrel X, istightap ap. Definition tightap_aprel {X : UU} (ap : tightap X) : aprel X := pr1 ap ,, (pr1 (pr2 ap)). -Coercion tightap_aprel : tightap >-> aprel. +#[reversible] Coercion tightap_aprel : tightap >-> aprel. Definition tightapSet := ∑ X : hSet, tightap X. Definition tightapSet_apSet (X : tightapSet) : apSet := pr1 X ,, (tightap_aprel (pr2 X)). -Coercion tightapSet_apSet : tightapSet >-> apSet. +#[reversible] Coercion tightapSet_apSet : tightapSet >-> apSet. Definition tightapSet_rel (X : tightapSet) : hrel X := (pr1 (pr2 X)). Declare Scope tap_scope. @@ -180,18 +180,18 @@ Qed. Definition apbinop (X : tightapSet) := ∑ op : binop X, isapbinop op. Definition apbinop_pr1 {X : tightapSet} (op : apbinop X) : binop X := pr1 op. -Coercion apbinop_pr1 : apbinop >-> binop. +#[reversible] Coercion apbinop_pr1 : apbinop >-> binop. Definition apsetwithbinop := ∑ X : tightapSet, apbinop X. Definition apsetwithbinop_pr1 (X : apsetwithbinop) : tightapSet := pr1 X. -Coercion apsetwithbinop_pr1 : apsetwithbinop >-> tightapSet. +#[reversible] Coercion apsetwithbinop_pr1 : apsetwithbinop >-> tightapSet. Definition apsetwithbinop_setwithbinop : apsetwithbinop -> setwithbinop := λ X : apsetwithbinop, (apSet_pr1 (apsetwithbinop_pr1 X)),, (pr1 (pr2 X)). Definition op {X : apsetwithbinop} : binop X := op (X := apsetwithbinop_setwithbinop X). Definition apsetwith2binop := ∑ X : tightapSet, apbinop X × apbinop X. Definition apsetwith2binop_pr1 (X : apsetwith2binop) : tightapSet := pr1 X. -Coercion apsetwith2binop_pr1 : apsetwith2binop >-> tightapSet. +#[reversible] Coercion apsetwith2binop_pr1 : apsetwith2binop >-> tightapSet. Definition apsetwith2binop_setwith2binop : apsetwith2binop -> setwith2binop := λ X : apsetwith2binop, apSet_pr1 (apsetwith2binop_pr1 X),, pr1 (pr1 (pr2 X)),, pr1 (pr2 (pr2 X)). diff --git a/UniMath/Algebra/BinaryOperations.v b/UniMath/Algebra/BinaryOperations.v index 9ccc9ebc41..1c4fd3f5a6 100644 --- a/UniMath/Algebra/BinaryOperations.v +++ b/UniMath/Algebra/BinaryOperations.v @@ -425,7 +425,7 @@ Definition make_isgrop {X : UU} {opp : binop X} (is1 : ismonoidop opp) (is2 : in isgrop opp := tpair (λ is : ismonoidop opp, invstruct opp is) is1 is2. Definition pr1isgrop (X : UU) (opp : binop X) : isgrop opp -> ismonoidop opp := @pr1 _ _. -Coercion pr1isgrop : isgrop >-> ismonoidop. +#[reversible] Coercion pr1isgrop : isgrop >-> ismonoidop. Definition grinv_is {X : UU} {opp : binop X} (is : isgrop opp) : X -> X := pr1 (pr2 is). @@ -611,7 +611,7 @@ Definition make_isabmonoidop {X : UU} {opp : binop X} (H1 : ismonoidop opp) (H2 Definition pr1isabmonoidop (X : UU) (opp : binop X) : isabmonoidop opp -> ismonoidop opp := @pr1 _ _. -Coercion pr1isabmonoidop : isabmonoidop >-> ismonoidop. +#[reversible] Coercion pr1isabmonoidop : isabmonoidop >-> ismonoidop. Definition commax_is {X : UU} {opp : binop X} (is : isabmonoidop opp) : iscomm opp := pr2 is. @@ -722,11 +722,11 @@ Definition make_isabgrop {X : UU} {opp : binop X} (H1 : isgrop opp) (H2 : iscomm isabgrop opp := make_dirprod H1 H2. Definition pr1isabgrop (X : UU) (opp : binop X) : isabgrop opp -> isgrop opp := @pr1 _ _. -Coercion pr1isabgrop : isabgrop >-> isgrop. +#[reversible] Coercion pr1isabgrop : isabgrop >-> isgrop. Definition isabgroptoisabmonoidop (X : UU) (opp : binop X) : isabgrop opp -> isabmonoidop opp := λ is : _, make_dirprod (pr1 (pr1 is)) (pr2 is). -Coercion isabgroptoisabmonoidop : isabgrop >-> isabmonoidop. +#[reversible] Coercion isabgroptoisabmonoidop : isabgrop >-> isabmonoidop. Lemma isapropisabgrop {X : hSet} (opp : binop X) : isaprop (isabgrop opp). Proof. @@ -1015,7 +1015,7 @@ Proof. + simpl. apply (ringmultx0_is). - apply (ringdistraxs_is is). Defined. -Coercion isringopstoisrigops : isringops >-> isrigops. +#[reversible] Coercion isringopstoisrigops : isringops >-> isrigops. (** *) @@ -1024,7 +1024,7 @@ Definition iscommrigops {X : UU} (opp1 opp2 : binop X) : UU := Definition pr1iscommrigops (X : UU) (opp1 opp2 : binop X) : iscommrigops opp1 opp2 -> isrigops opp1 opp2 := @pr1 _ _. -Coercion pr1iscommrigops : iscommrigops >-> isrigops. +#[reversible] Coercion pr1iscommrigops : iscommrigops >-> isrigops. Definition rigiscommop2_is {X : UU} {opp1 opp2 : binop X} (is : iscommrigops opp1 opp2) : iscomm opp2 := pr2 is. @@ -1043,7 +1043,7 @@ Definition iscommringops {X : UU} (opp1 opp2 : binop X) : UU := Definition pr1iscommringops (X : UU) (opp1 opp2 : binop X) : iscommringops opp1 opp2 -> isringops opp1 opp2 := @pr1 _ _. -Coercion pr1iscommringops : iscommringops >-> isringops. +#[reversible] Coercion pr1iscommringops : iscommringops >-> isringops. Definition ringiscommop2_is {X : UU} {opp1 opp2 : binop X} (is : iscommringops opp1 opp2) : iscomm opp2 := pr2 is. @@ -1058,7 +1058,7 @@ Defined. Definition iscommringopstoiscommrigops (X : UU) (opp1 opp2 : binop X) (is : iscommringops opp1 opp2) : iscommrigops opp1 opp2 := make_dirprod (isringopstoisrigops _ _ _ (pr1 is)) (pr2 is). -Coercion iscommringopstoiscommrigops : iscommringops >-> iscommrigops. +#[reversible] Coercion iscommringopstoiscommrigops : iscommringops >-> iscommrigops. (** **** Transfer properties of binary operations relative to weak equivalences *) @@ -1532,7 +1532,7 @@ Definition make_setwithbinop (X : hSet) (opp : binop X) : setwithbinop := tpair (λ X : hSet, binop X) X opp. Definition pr1setwithbinop : setwithbinop -> hSet := @pr1 _ (λ X : hSet, binop X). -Coercion pr1setwithbinop : setwithbinop >-> hSet. +#[reversible] Coercion pr1setwithbinop : setwithbinop >-> hSet. Definition op {X : setwithbinop} : binop X := pr2 X. @@ -1590,7 +1590,7 @@ Definition make_binopfun {X Y : setwithbinop} (f : X -> Y) (is : isbinopfun f) : tpair _ f is. Definition pr1binopfun (X Y : setwithbinop) : binopfun X Y -> (X -> Y) := @pr1 _ _. -Coercion pr1binopfun : binopfun >-> Funclass. +#[reversible] Coercion pr1binopfun : binopfun >-> Funclass. Definition binopfunisbinopfun {X Y : setwithbinop} (f : binopfun X Y) : isbinopfun f := pr2 f. @@ -1623,11 +1623,11 @@ Definition make_binopmono {X Y : setwithbinop} (f : incl X Y) (is : isbinopfun f binopmono X Y := tpair _ f is. Definition pr1binopmono (X Y : setwithbinop) : binopmono X Y -> incl X Y := @pr1 _ _. -Coercion pr1binopmono : binopmono >-> incl. +#[reversible] Coercion pr1binopmono : binopmono >-> incl. Definition binopincltobinopfun (X Y : setwithbinop) : binopmono X Y -> binopfun X Y := λ f, make_binopfun (pr1 (pr1 f)) (pr2 f). -Coercion binopincltobinopfun : binopmono >-> binopfun. +#[reversible] Coercion binopincltobinopfun : binopmono >-> binopfun. Definition binopmonocomp {X Y Z : setwithbinop} (f : binopmono X Y) (g : binopmono Y Z) : binopmono X Z := make_binopmono (inclcomp (pr1 f) (pr1 g)) (isbinopfuncomp f g). @@ -1638,7 +1638,7 @@ Definition make_binopiso {X Y : setwithbinop} (f : X ≃ Y) (is : isbinopfun f) binopiso X Y := tpair _ f is. Definition pr1binopiso (X Y : setwithbinop) : binopiso X Y -> X ≃ Y := @pr1 _ _. -Coercion pr1binopiso : binopiso >-> weq. +#[reversible] Coercion pr1binopiso : binopiso >-> weq. Lemma isasetbinopiso (X Y : setwithbinop) : isaset (binopiso X Y). Proof. @@ -1652,7 +1652,7 @@ Opaque isasetbinopiso. Definition binopisotobinopmono (X Y : setwithbinop) : binopiso X Y -> binopmono X Y := λ f, make_binopmono (weqtoincl (pr1 f)) (pr2 f). -Coercion binopisotobinopmono : binopiso >-> binopmono. +#[reversible] Coercion binopisotobinopmono : binopiso >-> binopmono. Definition binopisocomp {X Y Z : setwithbinop} (f : binopiso X Y) (g : binopiso Y Z) : binopiso X Z := make_binopiso (weqcomp (pr1 f) (pr1 g)) (isbinopfuncomp f g). @@ -1983,7 +1983,7 @@ Definition subsetswithbinopconstr {X : setwithbinop} : Definition pr1subsetswithbinop (X : setwithbinop) : subsetswithbinop X -> hsubtype X := @pr1 _ (λ A : hsubtype X, issubsetwithbinop (@op X) A). -Coercion pr1subsetswithbinop : subsetswithbinop >-> hsubtype. +#[reversible] Coercion pr1subsetswithbinop : subsetswithbinop >-> hsubtype. Definition pr2subsetswithbinop {X : setwithbinop} (Y : subsetswithbinop X) : issubsetwithbinop (@op X) (pr1subsetswithbinop X Y) := pr2 Y. @@ -2002,7 +2002,7 @@ Proof. (A -> A -> A)). simpl. unfold binop. apply subopp. Defined. -Coercion carrierofasubsetwithbinop : subsetswithbinop >-> setwithbinop. +#[reversible] Coercion carrierofasubsetwithbinop : subsetswithbinop >-> setwithbinop. (** **** Relations compatible with a binary operation and quotient objects *) @@ -2071,7 +2071,7 @@ Definition make_binophrel {X : setwithbinop} : Definition pr1binophrel (X : setwithbinop) : binophrel X -> hrel X := @pr1 _ (λ R : hrel X, isbinophrel R). -Coercion pr1binophrel : binophrel >-> hrel. +#[reversible] Coercion pr1binophrel : binophrel >-> hrel. Definition binophrel_resp_left {X : setwithbinop} (R : binophrel X) {a b : X} (c : X) (r : R a b) : R (op c a) (op c b) := @@ -2088,7 +2088,7 @@ Definition make_binoppo {X : setwithbinop} : tpair (λ R : po X, isbinophrel R). Definition pr1binoppo (X : setwithbinop) : binoppo X -> po X := @pr1 _ (λ R : po X, isbinophrel R). -Coercion pr1binoppo : binoppo >-> po. +#[reversible] Coercion pr1binoppo : binoppo >-> po. Definition binopeqrel (X : setwithbinop) : UU := total2 (λ R : eqrel X, isbinophrel R). @@ -2098,7 +2098,7 @@ Definition make_binopeqrel {X : setwithbinop} : Definition pr1binopeqrel (X : setwithbinop) : binopeqrel X -> eqrel X := @pr1 _ (λ R : eqrel X, isbinophrel R). -Coercion pr1binopeqrel : binopeqrel >-> eqrel. +#[reversible] Coercion pr1binopeqrel : binopeqrel >-> eqrel. Definition binopeqrel_resp_left {X : setwithbinop} (R : binopeqrel X) {a b : X} (c : X) (r : R a b) : R (op c a) (op c b) := @@ -2439,7 +2439,7 @@ Definition make_setwith2binop (X : hSet) (opps : (binop X) × (binop X)) : Definition pr1setwith2binop : setwith2binop -> hSet := @pr1 _ (λ X : hSet, (binop X) × (binop X)). -Coercion pr1setwith2binop : setwith2binop >-> hSet. +#[reversible] Coercion pr1setwith2binop : setwith2binop >-> hSet. Definition op1 {X : setwith2binop} : binop X := pr1 (pr2 X). @@ -2490,7 +2490,7 @@ Definition make_twobinopfun {X Y : setwith2binop} (f : X -> Y) (is : istwobinopf twobinopfun X Y := tpair _ f is. Definition pr1twobinopfun (X Y : setwith2binop) : twobinopfun X Y -> (X -> Y) := @pr1 _ _. -Coercion pr1twobinopfun : twobinopfun >-> Funclass. +#[reversible] Coercion pr1twobinopfun : twobinopfun >-> Funclass. Definition binop1fun {X Y : setwith2binop} (f : twobinopfun X Y) : binopfun (setwithbinop1 X) (setwithbinop1 Y) := @@ -2542,11 +2542,11 @@ Definition make_twobinopmono {X Y : setwith2binop} (f : incl X Y) (is : istwobin twobinopmono X Y := tpair _ f is. Definition pr1twobinopmono (X Y : setwith2binop) : twobinopmono X Y -> incl X Y := @pr1 _ _. -Coercion pr1twobinopmono : twobinopmono >-> incl. +#[reversible] Coercion pr1twobinopmono : twobinopmono >-> incl. Definition twobinopincltotwobinopfun (X Y : setwith2binop) : twobinopmono X Y -> twobinopfun X Y := λ f, make_twobinopfun (pr1 (pr1 f)) (pr2 f). -Coercion twobinopincltotwobinopfun : twobinopmono >-> twobinopfun. +#[reversible] Coercion twobinopincltotwobinopfun : twobinopmono >-> twobinopfun. Definition binop1mono {X Y : setwith2binop} (f : twobinopmono X Y) : binopmono (setwithbinop1 X) (setwithbinop1 Y) := @@ -2565,11 +2565,11 @@ Definition make_twobinopiso {X Y : setwith2binop} (f : X ≃ Y) (is : istwobinop twobinopiso X Y := tpair _ f is. Definition pr1twobinopiso (X Y : setwith2binop) : twobinopiso X Y -> X ≃ Y := @pr1 _ _. -Coercion pr1twobinopiso : twobinopiso >-> weq. +#[reversible] Coercion pr1twobinopiso : twobinopiso >-> weq. Definition twobinopisototwobinopmono (X Y : setwith2binop) : twobinopiso X Y -> twobinopmono X Y := λ f, make_twobinopmono (weqtoincl (pr1 f)) (pr2 f). -Coercion twobinopisototwobinopmono : twobinopiso >-> twobinopmono. +#[reversible] Coercion twobinopisototwobinopmono : twobinopiso >-> twobinopmono. Definition twobinopisototwobinopfun {X Y : setwith2binop} (f : twobinopiso X Y) : twobinopfun X Y := make_twobinopfun f (pr2 f). @@ -2820,7 +2820,7 @@ Definition subsetswith2binopconstr {X : setwith2binop} : Definition pr1subsetswith2binop (X : setwith2binop) : subsetswith2binop X -> hsubtype X := @pr1 _ (λ A : hsubtype X, issubsetwith2binop A). -Coercion pr1subsetswith2binop : subsetswith2binop >-> hsubtype. +#[reversible] Coercion pr1subsetswith2binop : subsetswith2binop >-> hsubtype. Definition totalsubsetwith2binop (X : setwith2binop) : subsetswith2binop X. Proof. @@ -2840,7 +2840,7 @@ Proof. (pr2 (pr2 A) a a')) : (A -> A -> A)). simpl. apply (make_dirprod subopp1 subopp2). Defined. -Coercion carrierofsubsetwith2binop : subsetswith2binop >-> setwith2binop. +#[reversible] Coercion carrierofsubsetwith2binop : subsetswith2binop >-> setwith2binop. (** **** Quotient objects *) @@ -2872,7 +2872,7 @@ Definition make_twobinophrel {X : setwith2binop} : Definition pr1twobinophrel (X : setwith2binop) : twobinophrel X -> hrel X := @pr1 _ (λ R : hrel X, is2binophrel R). -Coercion pr1twobinophrel : twobinophrel >-> hrel. +#[reversible] Coercion pr1twobinophrel : twobinophrel >-> hrel. Definition twobinoppo (X : setwith2binop) : UU := total2 (λ R : po X, is2binophrel R). @@ -2882,7 +2882,7 @@ Definition make_twobinoppo {X : setwith2binop} : Definition pr1twobinoppo (X : setwith2binop) : twobinoppo X -> po X := @pr1 _ (λ R : po X, is2binophrel R). -Coercion pr1twobinoppo : twobinoppo >-> po. +#[reversible] Coercion pr1twobinoppo : twobinoppo >-> po. Definition twobinopeqrel (X : setwith2binop) : UU := total2 (λ R : eqrel X, is2binophrel R). @@ -2892,7 +2892,7 @@ Definition make_twobinopeqrel {X : setwith2binop} : Definition pr1twobinopeqrel (X : setwith2binop) : twobinopeqrel X -> eqrel X := @pr1 _ (λ R : eqrel X, is2binophrel R). -Coercion pr1twobinopeqrel : twobinopeqrel >-> eqrel. +#[reversible] Coercion pr1twobinopeqrel : twobinopeqrel >-> eqrel. Definition setwith2binopquot {X : setwith2binop} (R : twobinopeqrel X) : setwith2binop. Proof. diff --git a/UniMath/Algebra/ConstructiveStructures.v b/UniMath/Algebra/ConstructiveStructures.v index a6b382149f..330cd71b1b 100644 --- a/UniMath/Algebra/ConstructiveStructures.v +++ b/UniMath/Algebra/ConstructiveStructures.v @@ -24,7 +24,7 @@ Definition ConstructiveDivisionRig := × isapbinop (X := (pr1 (pr1 X)) ,, R) BinaryOperations.op2 × isConstrDivRig X R. Definition ConstructiveDivisionRig_rig : ConstructiveDivisionRig -> rig := pr1. -Coercion ConstructiveDivisionRig_rig : ConstructiveDivisionRig >-> rig. +#[reversible] Coercion ConstructiveDivisionRig_rig : ConstructiveDivisionRig >-> rig. Definition ConstructiveDivisionRig_apsetwith2binop : ConstructiveDivisionRig -> apsetwith2binop. Proof. intros X. @@ -231,13 +231,13 @@ Definition ConstructiveCommutativeDivisionRig := × isConstrDivRig X R. Definition ConstructiveCommutativeDivisionRig_commrig : ConstructiveCommutativeDivisionRig -> commrig := pr1. -Coercion ConstructiveCommutativeDivisionRig_commrig : +#[reversible] Coercion ConstructiveCommutativeDivisionRig_commrig : ConstructiveCommutativeDivisionRig >-> commrig. Definition ConstructiveCommutativeDivisionRig_ConstructiveDivisionRig : ConstructiveCommutativeDivisionRig -> ConstructiveDivisionRig := λ X, (pr1 (pr1 X),,pr1 (pr2 (pr1 X))) ,, (pr2 X). -Coercion ConstructiveCommutativeDivisionRig_ConstructiveDivisionRig : +#[reversible] Coercion ConstructiveCommutativeDivisionRig_ConstructiveDivisionRig : ConstructiveCommutativeDivisionRig >-> ConstructiveDivisionRig. Definition CCDRap {X : ConstructiveCommutativeDivisionRig} : hrel X := λ x y : X, CDRap (X := ConstructiveCommutativeDivisionRig_ConstructiveDivisionRig X) x y. @@ -432,12 +432,12 @@ Definition ConstructiveField := × isConstrDivRig X R. Definition ConstructiveField_commring : ConstructiveField -> commring := pr1. -Coercion ConstructiveField_commring : +#[reversible] Coercion ConstructiveField_commring : ConstructiveField >-> commring. Definition ConstructiveField_ConstructiveCommutativeDivisionRig : ConstructiveField -> ConstructiveCommutativeDivisionRig := λ X, (commringtocommrig (pr1 X)) ,, (pr2 X). -Coercion ConstructiveField_ConstructiveCommutativeDivisionRig : +#[reversible] Coercion ConstructiveField_ConstructiveCommutativeDivisionRig : ConstructiveField >-> ConstructiveCommutativeDivisionRig. Definition CFap {X : ConstructiveField} : hrel X := λ x y : X, CCDRap (X := ConstructiveField_ConstructiveCommutativeDivisionRig X) x y. diff --git a/UniMath/Algebra/DivisionRig.v b/UniMath/Algebra/DivisionRig.v index 2859af75d4..866a7a3730 100644 --- a/UniMath/Algebra/DivisionRig.v +++ b/UniMath/Algebra/DivisionRig.v @@ -69,7 +69,7 @@ Definition isDivRig_isrdistr {X : rig} (is : isDivRig X) : isrdistr (isDivRig_pl Definition DivRig : UU := ∑ (X : rig), isDivRig X. Definition pr1DivRig (F : DivRig) : hSet := pr1 F. -Coercion pr1DivRig : DivRig >-> hSet. +#[reversible] Coercion pr1DivRig : DivRig >-> hSet. Definition zeroDivRig {F : DivRig} : F := isDivRig_zero (pr2 F). Definition oneDivRig {F : DivRig} : F := isDivRig_one (pr2 F). @@ -143,7 +143,7 @@ End DivRig_pty. Definition CommDivRig : UU := ∑ (X : commrig), isDivRig X. Definition CommDivRig_DivRig (F : CommDivRig) : DivRig := commrigtorig (pr1 F) ,, pr2 F. -Coercion CommDivRig_DivRig : CommDivRig >-> DivRig. +#[reversible] Coercion CommDivRig_DivRig : CommDivRig >-> DivRig. Section CommDivRig_pty. diff --git a/UniMath/Algebra/Domains_and_Fields.v b/UniMath/Algebra/Domains_and_Fields.v index e1fedf34f9..e6c820c306 100644 --- a/UniMath/Algebra/Domains_and_Fields.v +++ b/UniMath/Algebra/Domains_and_Fields.v @@ -324,7 +324,7 @@ Opaque isapropisintdom. Definition intdom : UU := total2 (λ X : commring, isintdom X). Definition pr1intdom : intdom -> commring := @pr1 _ _. -Coercion pr1intdom : intdom >-> commring. +#[reversible] Coercion pr1intdom : intdom >-> commring. Definition nonzeroax (X : intdom) : neg (@paths X 1 0) := pr1 (pr2 X). @@ -530,7 +530,7 @@ Proof. apply (hinhpr (ii2 e2)). - intro e12. apply (hinhpr (ii1 e0)). Defined. -Coercion fldtointdom : fld >-> intdom. +#[reversible] Coercion fldtointdom : fld >-> intdom. Definition fldchoice {X : fld} (x : X) : (multinvpair X x) ⨿ (x = 0) := pr2 (pr2 X) x. diff --git a/UniMath/Algebra/GaussianElimination/Auxiliary.v b/UniMath/Algebra/GaussianElimination/Auxiliary.v index e262cdc92f..09aa87f7f7 100644 --- a/UniMath/Algebra/GaussianElimination/Auxiliary.v +++ b/UniMath/Algebra/GaussianElimination/Auxiliary.v @@ -501,13 +501,13 @@ End Dual. Section Rings_and_Fields. - Coercion multlinvpair_of_multinvpair {R : rig} (x : R) + #[reversible] Coercion multlinvpair_of_multinvpair {R : rig} (x : R) : @multinvpair R x -> @multlinvpair R x. Proof. intros [y [xy yx]]. esplit; eauto. Defined. - Coercion multrinvpair_of_multinvpair {R : rig} (x : R) + #[reversible] Coercion multrinvpair_of_multinvpair {R : rig} (x : R) : @multinvpair R x -> @multrinvpair R x. Proof. intros [y [xy yx]]. esplit; eauto. diff --git a/UniMath/Algebra/GaussianElimination/Matrices.v b/UniMath/Algebra/GaussianElimination/Matrices.v index 082471259b..26bcc8090c 100644 --- a/UniMath/Algebra/GaussianElimination/Matrices.v +++ b/UniMath/Algebra/GaussianElimination/Matrices.v @@ -356,14 +356,14 @@ Section Inverses. ((A ** B) = identity_matrix) × ((B ** A) = identity_matrix). - Coercion matrix_left_inverse_of_inverse {n : nat} + #[reversible] Coercion matrix_left_inverse_of_inverse {n : nat} (A : Matrix R n n) : @matrix_inverse n A -> @matrix_left_inverse n n A. Proof. intros [y [xy yx]]. esplit; eauto. Defined. - Coercion matrix_right_inverse_of_inverse {n : nat} + #[reversible] Coercion matrix_right_inverse_of_inverse {n : nat} (A : Matrix R n n) : @matrix_inverse n A -> @matrix_right_inverse n n A. Proof. diff --git a/UniMath/Algebra/GroupAction.v b/UniMath/Algebra/GroupAction.v index 55e03fe257..74ba9b96fb 100644 --- a/UniMath/Algebra/GroupAction.v +++ b/UniMath/Algebra/GroupAction.v @@ -47,7 +47,7 @@ Definition makeAction {G:gr} (X:hSet) (ac:ActionStructure G X) := X,,ac : Action G. Definition ac_set {G:gr} (X:Action G) := pr1 X. -Coercion ac_set : Action >-> hSet. +#[reversible] Coercion ac_set : Action >-> hSet. Definition ac_type {G:gr} (X:Action G) := pr1hSet (ac_set X). Definition ac_str {G:gr} (X:Action G) := pr2 X : ActionStructure G (ac_set X). Definition ac_mult {G:gr} (X:Action G) := act_mult (pr2 X). @@ -117,7 +117,7 @@ Definition ActionMap {G:gr} (X Y:Action G) := total2 (@is_equivariant _ X Y). Definition underlyingFunction {G:gr} {X Y:Action G} (f:ActionMap X Y) := pr1 f. -Coercion underlyingFunction : ActionMap >-> Funclass. +#[reversible] Coercion underlyingFunction : ActionMap >-> Funclass. Definition equivariance {G:gr} {X Y:Action G} (f:ActionMap X Y) : is_equivariant f := pr2 f. @@ -142,7 +142,7 @@ Proof. apply setproperty. Defined. -Coercion underlyingIso {G:gr} {X Y:Action G} (e:ActionIso X Y) : X ≃ Y := pr1 e. +#[reversible] Coercion underlyingIso {G:gr} {X Y:Action G} (e:ActionIso X Y) : X ≃ Y := pr1 e. Lemma underlyingIso_incl {G:gr} {X Y:Action G} : isincl (underlyingIso : ActionIso X Y -> X ≃ Y). @@ -282,7 +282,7 @@ Qed. Definition Torsor (G:gr) := total2 (@is_torsor G). -Coercion underlyingAction {G} (X:Torsor G) := pr1 X : Action G. +#[reversible] Coercion underlyingAction {G} (X:Torsor G) := pr1 X : Action G. Definition is_torsor_prop {G} (X:Torsor G) := pr2 X. @@ -370,7 +370,7 @@ Defined. Definition PointedTorsor (G:gr) := ∑ X:Torsor G, X. Definition underlyingTorsor {G} (X:PointedTorsor G) := pr1 X : Torsor G. -Coercion underlyingTorsor : PointedTorsor >-> Torsor. +#[reversible] Coercion underlyingTorsor : PointedTorsor >-> Torsor. Definition underlyingPoint {G} (X:PointedTorsor G) := pr2 X : X. Lemma is_quotient {G} (X:Torsor G) (y x:X) : ∃! g, g*x = y. diff --git a/UniMath/Algebra/Groups.v b/UniMath/Algebra/Groups.v index cf8d0d5276..5f4bb5e1bb 100644 --- a/UniMath/Algebra/Groups.v +++ b/UniMath/Algebra/Groups.v @@ -48,7 +48,7 @@ Definition make_gr : tpair (λ X : setwithbinop, isgrop (@op X)). Definition grtomonoid : gr -> monoid := λ X : _, make_monoid (pr1 X) (pr1 (pr2 X)). -Coercion grtomonoid : gr >-> monoid. +#[reversible] Coercion grtomonoid : gr >-> monoid. Definition grinv (X : gr) : X -> X := pr1 (pr2 (pr2 X)). @@ -349,7 +349,7 @@ Definition subgrconstr {X : gr} : Definition subgrtosubmonoid (X : gr) : subgr X -> submonoid X := λ A : _, make_submonoid (pr1 A) (pr1 (pr2 A)). -Coercion subgrtosubmonoid : subgr >-> submonoid. +#[reversible] Coercion subgrtosubmonoid : subgr >-> submonoid. Definition totalsubgr (X : gr) : subgr X. Proof. @@ -387,7 +387,7 @@ Definition isgrcarrier {X : gr} (A : subgr X) : isgrop (@op A) := Definition carrierofasubgr {X : gr} (A : subgr X) : gr. Proof. split with A. apply (isgrcarrier A). Defined. -Coercion carrierofasubgr : subgr >-> gr. +#[reversible] Coercion carrierofasubgr : subgr >-> gr. Lemma intersection_subgr : forall {X : gr} {I : UU} (S : I -> hsubtype X) (each_is_subgr : ∏ i : I, issubgr (S i)), @@ -594,7 +594,7 @@ Section NormalSubGroups. Definition normalsubgr (X : gr) : UU := ∑ N : subgr X, isnormalsubgr N. Definition normalsubgrtosubgr (X : gr) : normalsubgr X -> subgr X := pr1. - Coercion normalsubgrtosubgr : normalsubgr >-> subgr. + #[reversible] Coercion normalsubgrtosubgr : normalsubgr >-> subgr. Definition normalsubgrprop {X : gr} (N : normalsubgr X) : isnormalsubgr N := pr2 N. @@ -789,11 +789,11 @@ Definition abgrconstr (X : abmonoid) (inv0 : X -> X) (is : isinv (@op X) (unel X make_abgr X (make_dirprod (make_isgrop (pr2 X) (tpair _ inv0 is)) (commax X)). Definition abgrtogr : abgr -> gr := λ X : _, make_gr (pr1 X) (pr1 (pr2 X)). -Coercion abgrtogr : abgr >-> gr. +#[reversible] Coercion abgrtogr : abgr >-> gr. Definition abgrtoabmonoid : abgr -> abmonoid := λ X : _, make_abmonoid (pr1 X) (make_dirprod (pr1 (pr1 (pr2 X))) (pr2 (pr2 X))). -Coercion abgrtoabmonoid : abgr >-> abmonoid. +#[reversible] Coercion abgrtoabmonoid : abgr >-> abmonoid. Definition abgr_of_gr (X : gr) (H : iscomm (@op X)) : abgr := make_abgr X (make_isabgrop (pr2 X) H). @@ -969,7 +969,7 @@ Defined. Definition carrierofasubabgr {X : abgr} (A : subabgr X) : abgr. Proof. split with A. apply isabgrcarrier. Defined. -Coercion carrierofasubabgr : subabgr >-> abgr. +#[reversible] Coercion carrierofasubabgr : subabgr >-> abgr. Definition subabgr_incl {X : abgr} (A : subabgr X) : monoidfun A X := submonoid_incl A. diff --git a/UniMath/Algebra/Modules/Core.v b/UniMath/Algebra/Modules/Core.v index 51272c3e8f..4fbdc809e8 100644 --- a/UniMath/Algebra/Modules/Core.v +++ b/UniMath/Algebra/Modules/Core.v @@ -282,7 +282,7 @@ Definition module (R : ring) : UU := ∑ G, module_struct R G. Definition pr1module {R : ring} (M : module R) : abgr := pr1 M. -Coercion pr1module : module >-> abgr. +#[reversible] Coercion pr1module : module >-> abgr. Definition pr2module {R : ring} (M : module R) : module_struct R (pr1module M) := pr2 M. @@ -434,7 +434,7 @@ Definition make_linearfun {R : ring} {M N : module R} (f : M -> N) (is : islinea Definition pr1linearfun {R : ring} {M N : module R} (f : linearfun M N) : M -> N := pr1 f. -Coercion pr1linearfun : linearfun >-> Funclass. +#[reversible] Coercion pr1linearfun : linearfun >-> Funclass. Definition linearfun_islinear {R} {M N : module R} (f : linearfun M N) : islinear f := pr2 f. @@ -513,7 +513,7 @@ Section accessors. make_linearfun pr1modulefun modulefun_to_islinear. End accessors. -Coercion pr1modulefun : modulefun >-> Funclass. +#[reversible] Coercion pr1modulefun : modulefun >-> Funclass. Lemma ismodulefun_comp {R} {M N P : module R} (f : R-mod(M,N)) (g : R-mod(N,P)) : ismodulefun (g ∘ f)%functions. @@ -718,8 +718,8 @@ Section accessors_moduleiso. (tpair _ (pr1weq moduleiso_to_weq) (pr2 f)). End accessors_moduleiso. -Coercion moduleiso_to_weq : moduleiso >-> weq. -Coercion moduleiso_to_modulefun : moduleiso >-> modulefun. +#[reversible] Coercion moduleiso_to_weq : moduleiso >-> weq. +#[reversible] Coercion moduleiso_to_modulefun : moduleiso >-> modulefun. Definition make_moduleiso {R} {M N : module R} f is : moduleiso M N := tpair _ f is. diff --git a/UniMath/Algebra/Modules/Multimodules.v b/UniMath/Algebra/Modules/Multimodules.v index 397a728e8b..932665c921 100644 --- a/UniMath/Algebra/Modules/Multimodules.v +++ b/UniMath/Algebra/Modules/Multimodules.v @@ -44,7 +44,7 @@ Definition multimodule {I : UU} (rings : I -> ring) : UU Definition pr1multimodule {I : UU} {rings : I -> ring} (MM : multimodule rings) : abgr := pr1 MM. -Coercion pr1multimodule : multimodule >-> abgr. +#[reversible] Coercion pr1multimodule : multimodule >-> abgr. Definition pr2multimodule {I : UU} {rings : I -> ring} (MM : multimodule rings) : ∏ i : I, module_struct (rings i) (pr1multimodule MM) := (pr1 (pr2 MM)). @@ -102,7 +102,7 @@ Definition make_multilinearfun {I : UU} {rings : I -> ring} {MM NN : multimodule Definition pr1multilinearfun {I : UU} {rings : I -> ring} {MM NN : multimodule rings} (f : multilinearfun MM NN) : MM -> NN := pr1 f. -Coercion pr1multilinearfun : multilinearfun >-> Funclass. +#[reversible] Coercion pr1multilinearfun : multilinearfun >-> Funclass. Definition ith_linearfun {I : UU} {rings : I -> ring} {MM NN : multimodule rings} (f : multilinearfun MM NN) (i : I) : @@ -144,7 +144,7 @@ Definition make_multimodulefun {I : UU} {rings : I -> ring} Definition pr1multimodulefun {I : UU} {rings : I -> ring} {MM NN : multimodule rings} (f : multimodulefun MM NN) : MM -> NN := pr1 f. -Coercion pr1multimodulefun : multimodulefun >-> Funclass. +#[reversible] Coercion pr1multimodulefun : multimodulefun >-> Funclass. Definition ith_modulefun {I : UU} {rings : I -> ring} {MM NN : multimodule rings} (f : multimodulefun MM NN) (i : I) : diff --git a/UniMath/Algebra/Modules/Quotient.v b/UniMath/Algebra/Modules/Quotient.v index 7fbf542ca1..c2c8dfe217 100644 --- a/UniMath/Algebra/Modules/Quotient.v +++ b/UniMath/Algebra/Modules/Quotient.v @@ -27,13 +27,13 @@ Section quotmod_rel. Definition module_eqrel : UU := ∑ E : eqrel M, isbinophrel E × isactionhrel E. Definition hrelmodule_eqrel (E : module_eqrel) : eqrel M := pr1 E. - Coercion hrelmodule_eqrel : module_eqrel >-> eqrel. + #[reversible] Coercion hrelmodule_eqrel : module_eqrel >-> eqrel. Definition binophrelmodule_eqrel (E : module_eqrel) : binopeqrel M := make_binopeqrel E (pr1 (pr2 E)). - Coercion binophrelmodule_eqrel : module_eqrel >-> binopeqrel. + #[reversible] Coercion binophrelmodule_eqrel : module_eqrel >-> binopeqrel. Definition isactionhrelmodule_eqrel (E : module_eqrel) : isactionhrel E := pr2 (pr2 E). - Coercion isactionhrelmodule_eqrel : module_eqrel >-> isactionhrel. + #[reversible] Coercion isactionhrelmodule_eqrel : module_eqrel >-> isactionhrel. Definition make_module_eqrel (E : eqrel M) : isbinophrel E -> isactionhrel E -> module_eqrel := λ H0 H1, (E,,(H0,,H1)). diff --git a/UniMath/Algebra/Modules/Submodule.v b/UniMath/Algebra/Modules/Submodule.v index b578f91cc8..f7ce115ab9 100644 --- a/UniMath/Algebra/Modules/Submodule.v +++ b/UniMath/Algebra/Modules/Submodule.v @@ -45,7 +45,7 @@ Definition make_submodule {R : ring} {M : module R} : Definition submoduletosubabgr {R : ring} {M : module R} : submodule M -> @subabgr M := λ A : _, make_subgr (pr1 A) (pr1 (pr2 A)). -Coercion submoduletosubabgr : submodule >-> subabgr. +#[reversible] Coercion submoduletosubabgr : submodule >-> subabgr. Definition submodule_to_issubsetwithsmul {R : ring} {M : module R} (A : submodule M) : issubsetwithsmul (module_mult M) A := @@ -71,7 +71,7 @@ Proof. - intros f. apply (invmaponpathsincl _ (isinclpr1carrier A)). apply module_mult_unel2. Defined. -Coercion carrierofasubmodule : submodule >-> module. +#[reversible] Coercion carrierofasubmodule : submodule >-> module. Lemma intersection_submodule {R : ring} {M : module R} {I : UU} (S : I -> hsubtype M) (each_is_submodule : ∏ i : I, issubmodule (S i)) : issubmodule (subtype_intersection S). diff --git a/UniMath/Algebra/Monoids.v b/UniMath/Algebra/Monoids.v index 51ab805f99..cf3eef1cee 100644 --- a/UniMath/Algebra/Monoids.v +++ b/UniMath/Algebra/Monoids.v @@ -59,7 +59,7 @@ Definition make_monoid : tpair (λ X : setwithbinop, ismonoidop (@op X)). Definition pr1monoid : monoid -> setwithbinop := @pr1 _ _. -Coercion pr1monoid : monoid >-> setwithbinop. +#[reversible] Coercion pr1monoid : monoid >-> setwithbinop. Definition assocax (X : monoid) : isassoc (@op X) := pr1 (pr2 X). @@ -138,7 +138,7 @@ Definition pr1monoidfun (X Y : monoid) : monoidfun X Y -> (X -> Y) := @pr1 _ _. Definition monoidfuntobinopfun (X Y : monoid) : monoidfun X Y -> binopfun X Y := λ f, make_binopfun (pr1 f) (pr1 (pr2 f)). -Coercion monoidfuntobinopfun : monoidfun >-> binopfun. +#[reversible] Coercion monoidfuntobinopfun : monoidfun >-> binopfun. Definition monoidfununel {X Y : monoid} (f : monoidfun X Y) : f (unel X) = (unel Y) := pr2 (pr2 f). @@ -218,15 +218,15 @@ Definition make_monoidmono {X Y : monoid} (f : incl X Y) (is : ismonoidfun f) : monoidmono X Y := tpair _ f is. Definition pr1monoidmono (X Y : monoid) : monoidmono X Y -> incl X Y := @pr1 _ _. -Coercion pr1monoidmono : monoidmono >-> incl. +#[reversible] Coercion pr1monoidmono : monoidmono >-> incl. Definition monoidincltomonoidfun (X Y : monoid) : monoidmono X Y -> monoidfun X Y := λ f, monoidfunconstr (pr2 f). -Coercion monoidincltomonoidfun : monoidmono >-> monoidfun. +#[reversible] Coercion monoidincltomonoidfun : monoidmono >-> monoidfun. Definition monoidmonotobinopmono (X Y : monoid) : monoidmono X Y -> binopmono X Y := λ f, make_binopmono (pr1 f) (pr1 (pr2 f)). -Coercion monoidmonotobinopmono : monoidmono >-> binopmono. +#[reversible] Coercion monoidmonotobinopmono : monoidmono >-> binopmono. Definition monoidmonocomp {X Y Z : monoid} (f : monoidmono X Y) (g : monoidmono Y Z) : monoidmono X Z := @@ -238,15 +238,15 @@ Definition make_monoidiso {X Y : monoid} (f : X ≃ Y) (is : ismonoidfun f) : monoidiso X Y := tpair _ f is. Definition pr1monoidiso (X Y : monoid) : monoidiso X Y -> X ≃ Y := @pr1 _ _. -Coercion pr1monoidiso : monoidiso >-> weq. +#[reversible] Coercion pr1monoidiso : monoidiso >-> weq. Definition monoidisotomonoidmono (X Y : monoid) : monoidiso X Y -> monoidmono X Y := λ f, make_monoidmono (weqtoincl (pr1 f)) (pr2 f). -Coercion monoidisotomonoidmono : monoidiso >-> monoidmono. +#[reversible] Coercion monoidisotomonoidmono : monoidiso >-> monoidmono. Definition monoidisotobinopiso (X Y : monoid) : monoidiso X Y -> binopiso X Y := λ f, make_binopiso (pr1 f) (pr1 (pr2 f)). -Coercion monoidisotobinopiso : monoidiso >-> binopiso. +#[reversible] Coercion monoidisotobinopiso : monoidiso >-> binopiso. Definition monoidiso_paths {X Y : monoid} (f g : monoidiso X Y) (e : pr1 f = pr1 g) : f = g. Proof. @@ -404,7 +404,7 @@ Defined. Definition submonoidtosubsetswithbinop (X : monoid) : submonoid X -> @subsetswithbinop X := λ A : _, make_subsetswithbinop (pr1 A) (pr1 (pr2 A)). -Coercion submonoidtosubsetswithbinop : submonoid >-> subsetswithbinop. +#[reversible] Coercion submonoidtosubsetswithbinop : submonoid >-> subsetswithbinop. Lemma ismonoidcarrier {X : monoid} (A : submonoid X) : ismonoidop (@op A). Proof. @@ -421,7 +421,7 @@ Defined. Definition carrierofsubmonoid {X : monoid} (A : submonoid X) : monoid. Proof. split with A. apply ismonoidcarrier. Defined. -Coercion carrierofsubmonoid : submonoid >-> monoid. +#[reversible] Coercion carrierofsubmonoid : submonoid >-> monoid. Lemma intersection_submonoid : forall {X : monoid} {I : UU} (S : I -> hsubtype X) @@ -669,7 +669,7 @@ Definition make_abmonoid : Definition abmonoidtomonoid : abmonoid -> monoid := λ X : _, make_monoid (pr1 X) (pr1 (pr2 X)). -Coercion abmonoidtomonoid : abmonoid >-> monoid. +#[reversible] Coercion abmonoidtomonoid : abmonoid >-> monoid. Definition commax (X : abmonoid) : iscomm (@op X) := pr2 (pr2 X). @@ -884,7 +884,7 @@ Definition carrierofsubabmonoid {X : abmonoid} (A : subabmonoid X) : abmonoid. Proof. unfold subabmonoid in A. split with A. apply isabmonoidcarrier. Defined. -Coercion carrierofsubabmonoid : subabmonoid >-> abmonoid. +#[reversible] Coercion carrierofsubabmonoid : subabmonoid >-> abmonoid. Definition subabmonoid_incl {X : abmonoid} (A : subabmonoid X) : monoidfun A X := submonoid_incl A. diff --git a/UniMath/Algebra/RigsAndRings.v b/UniMath/Algebra/RigsAndRings.v index d00765b61f..bb2ac79ac7 100644 --- a/UniMath/Algebra/RigsAndRings.v +++ b/UniMath/Algebra/RigsAndRings.v @@ -87,7 +87,7 @@ Definition make_rig {X : setwith2binop} (is : isrigops (@op1 X) (@op2 X)) : rig Definition pr1rig : rig -> setwith2binop := @pr1 _ (λ X : setwith2binop, isrigops (@op1 X) (@op2 X)). -Coercion pr1rig : rig >-> setwith2binop. +#[reversible] Coercion pr1rig : rig >-> setwith2binop. Definition rigaxs (X : rig) : isrigops (@op1 X) (@op2 X) := pr2 X. @@ -189,7 +189,7 @@ Opaque isasetrigfun. Definition rigfunconstr {X Y : rig} {f : X -> Y} (is : isrigfun f) : rigfun X Y := tpair _ f is. Definition pr1rigfun (X Y : rig) : rigfun X Y -> (X -> Y) := @pr1 _ _. -Coercion pr1rigfun : rigfun >-> Funclass. +#[reversible] Coercion pr1rigfun : rigfun >-> Funclass. Definition rigaddfun {X Y : rig} (f : rigfun X Y) : monoidfun (rigaddabmonoid X) (rigaddabmonoid Y) := monoidfunconstr (pr1 (pr2 f)). @@ -222,7 +222,7 @@ Definition rigiso (X Y : rig) : UU := total2 (λ f : X ≃ Y, isrigfun f). Definition make_rigiso {X Y : rig} (f : X ≃ Y) (is : isrigfun f) : rigiso X Y := tpair _ f is. Definition pr1rigiso (X Y : rig) : rigiso X Y -> X ≃ Y := @pr1 _ _. -Coercion pr1rigiso : rigiso >-> weq. +#[reversible] Coercion pr1rigiso : rigiso >-> weq. Definition rigisoisrigfun {X Y : rig} (f : rigiso X Y) : isrigfun f := pr2 f. @@ -397,7 +397,7 @@ Definition pr1subrig (X : rig) : @subrig X -> hsubtype X := Definition subrigtosubsetswith2binop (X : rig) : subrig X -> @subsetswith2binop X := λ A : _, make_subsetswith2binop (pr1 A) (make_dirprod (pr1 (pr1 (pr2 A))) (pr1 (pr2 (pr2 A)))). -Coercion subrigtosubsetswith2binop : subrig >-> subsetswith2binop. +#[reversible] Coercion subrigtosubsetswith2binop : subrig >-> subsetswith2binop. Definition rigaddsubmonoid {X : rig} : subrig X -> @subabmonoid (rigaddabmonoid X) := λ A : _, @make_submonoid (rigaddabmonoid X) (pr1 A) (pr1 (pr2 A)). @@ -424,7 +424,7 @@ Defined. Definition carrierofasubrig (X : rig) (A : subrig X) : rig. Proof. intros. split with A. apply isrigcarrier. Defined. -Coercion carrierofasubrig : subrig >-> rig. +#[reversible] Coercion carrierofasubrig : subrig >-> rig. (** **** Quotient objects *) @@ -571,7 +571,7 @@ Proof. Defined. Definition commrigtorig : commrig -> rig := λ X : _, @make_rig (pr1 X) (pr1 (pr2 X)). -Coercion commrigtorig : commrig >-> rig. +#[reversible] Coercion commrigtorig : commrig >-> rig. Definition rigcomm2 (X : commrig) : iscomm (@op2 X) := pr2 (pr2 X). @@ -735,7 +735,7 @@ Definition make_ring {X : setwith2binop} (is : isringops (@op1 X) (@op2 X)) : ri Definition pr1ring : ring -> setwith2binop := @pr1 _ (λ X : setwith2binop, isringops (@op1 X) (@op2 X)). -Coercion pr1ring : ring >-> setwith2binop. +#[reversible] Coercion pr1ring : ring >-> setwith2binop. Definition ringaxs (X : ring) : isringops (@op1 X) (@op2 X) := pr2 X. @@ -792,7 +792,7 @@ Definition ringmultwithminus1 (X : ring) : ∏ x : X, paths (op2 ringminus1 x) ( ringmultwithminus1_is (ringaxs X). Definition ringaddabgr (X : ring) : abgr := make_abgr (make_setwithbinop X op1) (ringop1axs X). -Coercion ringaddabgr : ring >-> abgr. +#[reversible] Coercion ringaddabgr : ring >-> abgr. Definition ringmultmonoid (X : ring) : monoid := make_monoid (make_setwithbinop X op2) (ringop2axs X). @@ -808,7 +808,7 @@ Notation " - x " := (ringinv1 x) : ring_scope. Delimit Scope ring_scope with ring. Definition ringtorig (X : ring) : rig := @make_rig _ (pr2 X). -Coercion ringtorig : ring >-> rig. +#[reversible] Coercion ringtorig : ring >-> rig. (** **** Homomorphisms of rings *) @@ -1407,7 +1407,7 @@ Definition pr1subring (X : ring) : @subring X -> hsubtype X := Definition subringtosubsetswith2binop (X : ring) : subring X -> @subsetswith2binop X := λ A : _, make_subsetswith2binop (pr1 A) (make_dirprod (pr1 (pr1 (pr1 (pr2 A)))) (pr1 (pr2 (pr2 A)))). -Coercion subringtosubsetswith2binop : subring >-> subsetswith2binop. +#[reversible] Coercion subringtosubsetswith2binop : subring >-> subsetswith2binop. Definition addsubgr {X : ring} : subring X -> @subgr X := λ A : _, @make_subgr X (pr1 A) (pr1 (pr2 A)). @@ -1430,7 +1430,7 @@ Defined. Definition carrierofasubring (X : ring) (A : subring X) : ring. Proof. intros. split with A. apply isringcarrier. Defined. -Coercion carrierofasubring : subring >-> ring. +#[reversible] Coercion carrierofasubring : subring >-> ring. (** **** Quotient objects *) @@ -1946,7 +1946,7 @@ Definition commringconstr {X : hSet} (opp1 opp2 : binop X) (make_dirprod (make_dirprod (make_dirprod (make_dirprod ax11 ax12) ax21) dax) ax22). Definition commringtoring : commring -> ring := λ X : _, @make_ring (pr1 X) (pr1 (pr2 X)). -Coercion commringtoring : commring >-> ring. +#[reversible] Coercion commringtoring : commring >-> ring. Definition ringcomm2 (X : commring) : iscomm (@op2 X) := pr2 (pr2 X). @@ -1957,7 +1957,7 @@ Definition ringmultabmonoid (X : commring) : abmonoid := make_abmonoid (make_setwithbinop X op2) (make_dirprod (ringop2axs X) (ringcomm2 X)). Definition commringtocommrig (X : commring) : commrig := make_commrig _ (pr2 X). -Coercion commringtocommrig : commring >-> commrig. +#[reversible] Coercion commringtocommrig : commring >-> commrig. (** **** (X = Y) ≃ (ringiso X Y) diff --git a/UniMath/Algebra/RigsAndRings/Ideals.v b/UniMath/Algebra/RigsAndRings/Ideals.v index 45b0b21326..2616223682 100644 --- a/UniMath/Algebra/RigsAndRings/Ideals.v +++ b/UniMath/Algebra/RigsAndRings/Ideals.v @@ -59,7 +59,7 @@ Section Definitions. Definition ideal_subabmonoid (I : ideal) : subabmonoid (rigaddabmonoid R) := pr1 I. - Coercion ideal_subabmonoid : ideal >-> subabmonoid. + #[reversible] Coercion ideal_subabmonoid : ideal >-> subabmonoid. Definition ideal_isl (I : ideal) : is_lideal I := pr12 I. @@ -148,7 +148,7 @@ Section prime. prime_ideal := p ,, H1 ,, H2. Definition prime_ideal_ideal (p : prime_ideal) : ideal R := pr1 p. - Coercion prime_ideal_ideal : prime_ideal >-> ideal. + #[reversible] Coercion prime_ideal_ideal : prime_ideal >-> ideal. Definition prime_ideal_ax1 (p : prime_ideal) : ∀ a b, p (a * b) ⇒ p a ∨ p b := pr12 p. diff --git a/UniMath/Algebra/Universal/Algebras.v b/UniMath/Algebra/Universal/Algebras.v index 3a898cb11b..76e63afb9f 100644 --- a/UniMath/Algebra/Universal/Algebras.v +++ b/UniMath/Algebra/Universal/Algebras.v @@ -15,7 +15,7 @@ Definition algebra (σ: signature): UU Definition support {σ: signature} (A: algebra σ): sUU (sorts σ) := pr1 A. -Coercion support: algebra >-> sUU. +#[reversible] Coercion support: algebra >-> sUU. Definition ops {σ: signature} (A: algebra σ) := pr2 A. @@ -105,7 +105,7 @@ Local Open Scope hom. Definition hom2fun {σ: signature} {A1 A2: algebra σ} (f: A1 ↷ A2): ∏ s: sorts σ, support A1 s → support A2 s:= pr1 f. -Coercion hom2fun: hom >-> Funclass. +#[reversible] Coercion hom2fun: hom >-> Funclass. Definition hom2axiom {σ: signature} {A1 A2: algebra σ} (f: A1 ↷ A2) := pr2 f. diff --git a/UniMath/Algebra/Universal/EqAlgebras.v b/UniMath/Algebra/Universal/EqAlgebras.v index 4477e7c93e..725299f0ed 100644 --- a/UniMath/Algebra/Universal/EqAlgebras.v +++ b/UniMath/Algebra/Universal/EqAlgebras.v @@ -25,7 +25,7 @@ Section Varieties. Definition algebra_of_eqalgebra {σ : eqspec} : eqalgebra σ -> algebra σ := pr1. - Coercion algebra_of_eqalgebra : eqalgebra >-> algebra. + #[reversible] Coercion algebra_of_eqalgebra : eqalgebra >-> algebra. Definition eqalgebra_proof {σ : eqspec} (a : eqalgebra σ) : is_eqalgebra a := pr2 a. diff --git a/UniMath/Algebra/Universal/Equations.v b/UniMath/Algebra/Universal/Equations.v index e759d6f54e..f0a8430dfc 100644 --- a/UniMath/Algebra/Universal/Equations.v +++ b/UniMath/Algebra/Universal/Equations.v @@ -45,7 +45,7 @@ Definition eqsystem (σ : signature) (V: varspec σ): UU Definition eqsystemids (σ : signature) (V: varspec σ): eqsystem σ V → UU := pr1. -Coercion eqsystemids : eqsystem >-> UU. +#[reversible] Coercion eqsystemids : eqsystem >-> UU. Definition geteq {σ: signature} {V: varspec σ} {sys : eqsystem σ V}: sys → equation σ V := pr2 sys. @@ -59,7 +59,7 @@ Definition eqspec: UU := ∑ (σ : signature) (V: varspec σ), eqsystem σ V. Definition signature_of_eqspec: eqspec → signature := pr1. -Coercion signature_of_eqspec : eqspec >-> signature. +#[reversible] Coercion signature_of_eqspec : eqspec >-> signature. Definition variables (σ: eqspec): varspec σ := pr12 σ. diff --git a/UniMath/Algebra/Universal/Signatures.v b/UniMath/Algebra/Universal/Signatures.v index 67606886fd..a4864c96da 100644 --- a/UniMath/Algebra/Universal/Signatures.v +++ b/UniMath/Algebra/Universal/Signatures.v @@ -52,12 +52,12 @@ Definition signature_simple : UU := ∑ (ns: nat), list (list (⟦ ns ⟧) × Definition make_signature_simple {ns: nat} (ar: list (list (⟦ ns ⟧) × ⟦ ns ⟧)) : signature_simple := ns ,, ar. -Coercion signature_simple_compile (σ: signature_simple) : signature +#[reversible] Coercion signature_simple_compile (σ: signature_simple) : signature := make_signature (⟦ pr1 σ ⟧ ,, isdeceqstn _) (stnset (length (pr2 σ))) (nth (pr2 σ)). Definition signature_simple_single_sorted : UU := list nat. Definition make_signature_simple_single_sorted (ar: list nat) : signature_simple_single_sorted := ar. -Coercion signature_simple_single_sorted_compile (σ: signature_simple_single_sorted): signature +#[reversible] Coercion signature_simple_single_sorted_compile (σ: signature_simple_single_sorted): signature := make_signature_single_sorted (stnset (length σ)) (nth σ). diff --git a/UniMath/Algebra/Universal/Terms.v b/UniMath/Algebra/Universal/Terms.v index 78b9952587..1d3d135873 100644 --- a/UniMath/Algebra/Universal/Terms.v +++ b/UniMath/Algebra/Universal/Terms.v @@ -445,7 +445,7 @@ Section Term. Definition make_term {σ: signature} {s: sorts σ} {l: oplist σ} (lstack: isaterm s l) : term σ s := l ,, lstack. - Coercion term2oplist {σ: signature} {s: sorts σ}: term σ s → oplist σ := pr1. + #[reversible] Coercion term2oplist {σ: signature} {s: sorts σ}: term σ s → oplist σ := pr1. Definition term2proof {σ: signature} {s: sorts σ}: ∏ t: term σ s, isaterm s t := pr2. diff --git a/UniMath/Algebra/Universal/VTerms.v b/UniMath/Algebra/Universal/VTerms.v index 485d80e1be..cb06e1c063 100644 --- a/UniMath/Algebra/Universal/VTerms.v +++ b/UniMath/Algebra/Universal/VTerms.v @@ -22,7 +22,7 @@ Section VTerms. Definition make_varspec (σ: signature) (varsupp: hSet) (varsorts: varsupp → sorts σ) : varspec σ := (varsupp,, varsorts). - Coercion varsupp {σ: signature}: varspec σ → hSet := pr1. + #[reversible] Coercion varsupp {σ: signature}: varspec σ → hSet := pr1. Definition varsort {σ: signature} {V: varspec σ}: V → sorts σ := pr2 V. diff --git a/UniMath/AlgebraicGeometry/SheavesOfRings.v b/UniMath/AlgebraicGeometry/SheavesOfRings.v index ba56008234..7ee20e9f46 100644 --- a/UniMath/AlgebraicGeometry/SheavesOfRings.v +++ b/UniMath/AlgebraicGeometry/SheavesOfRings.v @@ -60,7 +60,7 @@ Section sheaf_commring. Definition sheaf_commring_functor (F : sheaf_commring) : (open_category X)^op ⟶ commring_precategory := pr1 F. - Coercion sheaf_commring_functor : sheaf_commring >-> functor. + #[reversible] Coercion sheaf_commring_functor : sheaf_commring >-> functor. Definition sheaf_commring_locality (F : sheaf_commring) : locality F := pr12 F. diff --git a/UniMath/AlgebraicGeometry/Spec.v b/UniMath/AlgebraicGeometry/Spec.v index cb18c6598b..88c2b2d3d4 100644 --- a/UniMath/AlgebraicGeometry/Spec.v +++ b/UniMath/AlgebraicGeometry/Spec.v @@ -152,7 +152,7 @@ Section section. section := s ,, H. Definition section_map (s : section) : ∏ p : carrier U, localization_at (pr1 p) := pr1 s. - Coercion section_map : section >-> Funclass. + #[reversible] Coercion section_map : section >-> Funclass. Definition section_prop (s : section) : is_section s := pr2 s. diff --git a/UniMath/AlgebraicTheories/AlgebraMorphisms.v b/UniMath/AlgebraicTheories/AlgebraMorphisms.v index 4789783fa4..5fd7656e6d 100644 --- a/UniMath/AlgebraicTheories/AlgebraMorphisms.v +++ b/UniMath/AlgebraicTheories/AlgebraMorphisms.v @@ -36,7 +36,7 @@ Definition algebra_morphism_to_function : A → A' := pr1 F. -Coercion algebra_morphism_to_function : +#[reversible] Coercion algebra_morphism_to_function : algebra_morphism >-> Funclass. Definition make_algebra_morphism diff --git a/UniMath/AlgebraicTheories/AlgebraicTheories.v b/UniMath/AlgebraicTheories/AlgebraicTheories.v index 5ca0a7938d..5fded034e4 100644 --- a/UniMath/AlgebraicTheories/AlgebraicTheories.v +++ b/UniMath/AlgebraicTheories/AlgebraicTheories.v @@ -34,7 +34,7 @@ Definition algebraic_theory_data_to_function : nat → hSet := pr1 T. -Coercion algebraic_theory_data_to_function : algebraic_theory_data >-> Funclass. +#[reversible] Coercion algebraic_theory_data_to_function : algebraic_theory_data >-> Funclass. Definition pr {T : algebraic_theory_data} @@ -57,7 +57,7 @@ Notation "f • g" := Definition algebraic_theory : UU := algebraic_theory_cat. -Coercion algebraic_theory_to_algebraic_theory_data (T : algebraic_theory) +#[reversible] Coercion algebraic_theory_to_algebraic_theory_data (T : algebraic_theory) : algebraic_theory_data := pr1 T. diff --git a/UniMath/AlgebraicTheories/AlgebraicTheoryMorphisms.v b/UniMath/AlgebraicTheories/AlgebraicTheoryMorphisms.v index 4b170abacd..99ac87630d 100644 --- a/UniMath/AlgebraicTheories/AlgebraicTheoryMorphisms.v +++ b/UniMath/AlgebraicTheories/AlgebraicTheoryMorphisms.v @@ -36,14 +36,14 @@ Definition algebraic_theory_morphism_data_to_function : T n → T' n := F n. -Coercion algebraic_theory_morphism_data_to_function : algebraic_theory_morphism_data >-> Funclass. +#[reversible] Coercion algebraic_theory_morphism_data_to_function : algebraic_theory_morphism_data >-> Funclass. Definition algebraic_theory_morphism (T T' : algebraic_theory) : UU := algebraic_theory_cat⟦T, T'⟧. -Coercion algebraic_theory_morphism_to_algebraic_theory_morphism_data +#[reversible] Coercion algebraic_theory_morphism_to_algebraic_theory_morphism_data {T T' : algebraic_theory} (F : algebraic_theory_morphism T T') : algebraic_theory_morphism_data T T' diff --git a/UniMath/AlgebraicTheories/Algebras.v b/UniMath/AlgebraicTheories/Algebras.v index a6ca3ef43f..30ff6b824b 100644 --- a/UniMath/AlgebraicTheories/Algebras.v +++ b/UniMath/AlgebraicTheories/Algebras.v @@ -36,7 +36,7 @@ Definition make_algebra_data : algebra_data T := A ,, action. -Coercion algebra_data_to_hset +#[reversible] Coercion algebra_data_to_hset {T : algebraic_theory} (A : algebra_data T) : hSet @@ -78,7 +78,7 @@ Definition make_algebra : algebra T := pr1 A ,, pr2 A ,, H. -Coercion algebra_to_algebra_data +#[reversible] Coercion algebra_to_algebra_data {T : algebraic_theory} (A : algebra T) : algebra_data T diff --git a/UniMath/AlgebraicTheories/LambdaCalculus.v b/UniMath/AlgebraicTheories/LambdaCalculus.v index a50ba73c28..b8b6bcbf43 100644 --- a/UniMath/AlgebraicTheories/LambdaCalculus.v +++ b/UniMath/AlgebraicTheories/LambdaCalculus.v @@ -93,7 +93,7 @@ Definition lambda_calculus_data : UU := ∑ ). Definition lambda_calculus_data_to_function (L : lambda_calculus_data) : nat → hSet := pr1 L. -Coercion lambda_calculus_data_to_function : lambda_calculus_data >-> Funclass. +#[reversible] Coercion lambda_calculus_data_to_function : lambda_calculus_data >-> Funclass. Definition var {L : lambda_calculus_data} {n : nat} (i : stn n) : L n := pr12 L n i. Definition app {L : lambda_calculus_data} {n : nat} (l l' : L n) : L n := pr122 L n l l'. @@ -320,7 +320,7 @@ Definition is_lambda_calculus (L : lambda_calculus_data) : UU := Definition lambda_calculus : UU := ∑ L, is_lambda_calculus L. -Coercion lambda_calculus_to_lambda_calculus_data (L : lambda_calculus) +#[reversible] Coercion lambda_calculus_to_lambda_calculus_data (L : lambda_calculus) : lambda_calculus_data := pr1 L. diff --git a/UniMath/AlgebraicTheories/LambdaTheories.v b/UniMath/AlgebraicTheories/LambdaTheories.v index 3262c1018d..3fdf70549b 100644 --- a/UniMath/AlgebraicTheories/LambdaTheories.v +++ b/UniMath/AlgebraicTheories/LambdaTheories.v @@ -39,7 +39,7 @@ Definition make_lambda_theory_data : lambda_theory_data := T ,, app ,, abs. -Coercion lambda_theory_data_to_algebraic_theory (L : lambda_theory_data) +#[reversible] Coercion lambda_theory_data_to_algebraic_theory (L : lambda_theory_data) : algebraic_theory := pr1 L. @@ -62,7 +62,7 @@ Definition make_lambda_theory : lambda_theory := L ,, H. -Coercion lambda_theory_to_lambda_theory_data (L : lambda_theory) : lambda_theory_data := pr1 L. +#[reversible] Coercion lambda_theory_to_lambda_theory_data (L : lambda_theory) : lambda_theory_data := pr1 L. Definition app_comp (L : lambda_theory) diff --git a/UniMath/AlgebraicTheories/LambdaTheoryMorphisms.v b/UniMath/AlgebraicTheories/LambdaTheoryMorphisms.v index cc49162756..b2ff095085 100644 --- a/UniMath/AlgebraicTheories/LambdaTheoryMorphisms.v +++ b/UniMath/AlgebraicTheories/LambdaTheoryMorphisms.v @@ -48,7 +48,7 @@ Definition make_lambda_theory_morphism : lambda_theory_morphism L L' := (F ,, H) ,, tt. -Coercion lambda_theory_morphism_to_algebraic_theory_morphism +#[reversible] Coercion lambda_theory_morphism_to_algebraic_theory_morphism {L L' : lambda_theory} (F : lambda_theory_morphism L L') : algebraic_theory_morphism L L' diff --git a/UniMath/AlgebraicTheories/PresheafMorphisms.v b/UniMath/AlgebraicTheories/PresheafMorphisms.v index 930b94a844..b1bca8b9c5 100644 --- a/UniMath/AlgebraicTheories/PresheafMorphisms.v +++ b/UniMath/AlgebraicTheories/PresheafMorphisms.v @@ -49,7 +49,7 @@ Definition presheaf_morphism_to_function : P n → P' n := pr1 f n. -Coercion presheaf_morphism_to_function : presheaf_morphism >-> Funclass. +#[reversible] Coercion presheaf_morphism_to_function : presheaf_morphism >-> Funclass. Definition mor_op {T : algebraic_theory} diff --git a/UniMath/AlgebraicTheories/Presheaves.v b/UniMath/AlgebraicTheories/Presheaves.v index 04ff3c7a7d..15570d3a33 100644 --- a/UniMath/AlgebraicTheories/Presheaves.v +++ b/UniMath/AlgebraicTheories/Presheaves.v @@ -36,7 +36,7 @@ Definition presheaf_data_to_function {T : algebraic_theory} (P : presheaf_data T : nat → hSet := pr1 P. -Coercion presheaf_data_to_function : presheaf_data >-> Funclass. +#[reversible] Coercion presheaf_data_to_function : presheaf_data >-> Funclass. Definition op {T : algebraic_theory} @@ -68,7 +68,7 @@ Definition make_is_presheaf Definition presheaf (T : algebraic_theory) : UU := presheaf_cat T. -Coercion presheaf_to_presheaf_data {T : algebraic_theory} (P : presheaf T) +#[reversible] Coercion presheaf_to_presheaf_data {T : algebraic_theory} (P : presheaf T) : presheaf_data T := make_presheaf_data (pr1 P) (pr12 P). diff --git a/UniMath/Bicategories/Colimits/Coproducts.v b/UniMath/Bicategories/Colimits/Coproducts.v index acbb144e80..030d2351c2 100644 --- a/UniMath/Bicategories/Colimits/Coproducts.v +++ b/UniMath/Bicategories/Colimits/Coproducts.v @@ -41,7 +41,7 @@ Section Coproduct. : UU := ∑ (p : B), b₁ --> p × b₂ --> p. - Coercion bincoprod_cocone_obj + #[reversible] Coercion bincoprod_cocone_obj (p : bincoprod_cocone) : B := pr1 p. @@ -76,7 +76,7 @@ Section Coproduct. (bincoprod_cocone_inr p · φ) (bincoprod_cocone_inr q). - Coercion bincoprod_1cell_1cell + #[reversible] Coercion bincoprod_1cell_1cell {p q : bincoprod_cocone} (φ : bincoprod_1cell p q) : p --> q @@ -751,7 +751,7 @@ Definition bicat_with_bincoprod : UU := ∑ (B : bicat), has_bincoprod B. -Coercion bicat_with_bincoprod_to_bicat +#[reversible] Coercion bicat_with_bincoprod_to_bicat (B : bicat_with_bincoprod) : bicat := pr1 B. diff --git a/UniMath/Bicategories/Colimits/Extensive.v b/UniMath/Bicategories/Colimits/Extensive.v index 23f070e2e3..1ba34635fa 100644 --- a/UniMath/Bicategories/Colimits/Extensive.v +++ b/UniMath/Bicategories/Colimits/Extensive.v @@ -197,12 +197,12 @@ Definition bicat_with_biinitial_bincoprod × has_bincoprod B. -Coercion bicat_with_biinitial_bincoprod_to_bicat_with_biinitial +#[reversible] Coercion bicat_with_biinitial_bincoprod_to_bicat_with_biinitial (B : bicat_with_biinitial_bincoprod) : bicat_with_biinitial := pr1 B ,, pr12 B. -Coercion bicat_with_biinitial_bincoprod_to_bicat_with_bincoprod +#[reversible] Coercion bicat_with_biinitial_bincoprod_to_bicat_with_bincoprod (B : bicat_with_biinitial_bincoprod) : bicat_with_bincoprod := pr1 B ,, pr22 B. diff --git a/UniMath/Bicategories/Colimits/Initial.v b/UniMath/Bicategories/Colimits/Initial.v index 068a1b34f1..7037591fb9 100644 --- a/UniMath/Bicategories/Colimits/Initial.v +++ b/UniMath/Bicategories/Colimits/Initial.v @@ -395,7 +395,7 @@ Definition bicat_with_biinitial : UU := ∑ (B : bicat), biinitial_obj B. -Coercion bicat_with_biinitial_to_bicat +#[reversible] Coercion bicat_with_biinitial_to_bicat (B : bicat_with_biinitial) : bicat := pr1 B. @@ -535,7 +535,7 @@ Definition bicat_with_strict_biinitial : UU := ∑ (B : bicat), strict_biinitial_obj B. -Coercion bicat_with_strict_biinitial_to_bicat +#[reversible] Coercion bicat_with_strict_biinitial_to_bicat (B : bicat_with_strict_biinitial) : bicat := pr1 B. diff --git a/UniMath/Bicategories/Colimits/KleisliObjects.v b/UniMath/Bicategories/Colimits/KleisliObjects.v index 5d1b064aa8..960cfe7a1d 100644 --- a/UniMath/Bicategories/Colimits/KleisliObjects.v +++ b/UniMath/Bicategories/Colimits/KleisliObjects.v @@ -55,7 +55,7 @@ Section KleisliObject. : kleisli_cocone := x ,, f ,, γ ,, fη ,, fμ. - Coercion kleisli_cocone_ob (q : kleisli_cocone) : B := pr1 q. + #[reversible] Coercion kleisli_cocone_ob (q : kleisli_cocone) : B := pr1 q. Section Projections. Context (q : kleisli_cocone). @@ -109,7 +109,7 @@ Section KleisliObject. : kleisli_cocone_mor q₁ q₂ := f ,, α ,, p ,, Hα. - Coercion mor_of_kleisli_cocone_mor + #[reversible] Coercion mor_of_kleisli_cocone_mor {q₁ q₂ : kleisli_cocone} (f : kleisli_cocone_mor q₁ q₂) : q₁ --> q₂ diff --git a/UniMath/Bicategories/ComprehensionCat/BicatOfCompCat.v b/UniMath/Bicategories/ComprehensionCat/BicatOfCompCat.v index 7376bee686..60cfaf57d3 100644 --- a/UniMath/Bicategories/ComprehensionCat/BicatOfCompCat.v +++ b/UniMath/Bicategories/ComprehensionCat/BicatOfCompCat.v @@ -142,7 +142,7 @@ Definition make_cat_with_terminal_disp_cat : cat_with_terminal_disp_cat := C ,, (T ,, tt) ,, D. -Coercion cat_of_cat_with_terminal_disp_cat +#[reversible] Coercion cat_of_cat_with_terminal_disp_cat (C : cat_with_terminal_disp_cat) : univalent_category := pr1 C. @@ -170,7 +170,7 @@ Definition make_functor_with_terminal_disp_cat : functor_with_terminal_disp_cat C₁ C₂ := F ,, (tt ,, HF) ,, FF. -Coercion functor_of_functor_with_terminal_disp_cat +#[reversible] Coercion functor_of_functor_with_terminal_disp_cat {C₁ C₂ : cat_with_terminal_disp_cat} (F : functor_with_terminal_disp_cat C₁ C₂) : C₁ ⟶ C₂ @@ -205,7 +205,7 @@ Definition make_nat_trans_with_terminal_disp_cat : nat_trans_with_terminal_disp_cat F G := τ ,, (tt ,, tt) ,, ττ. -Coercion nat_trans_of_nat_trans_with_terminal_disp_cat +#[reversible] Coercion nat_trans_of_nat_trans_with_terminal_disp_cat {C₁ C₂ : cat_with_terminal_disp_cat} {F G : functor_with_terminal_disp_cat C₁ C₂} (τ : nat_trans_with_terminal_disp_cat F G) @@ -292,7 +292,7 @@ Definition make_cat_with_terminal_cleaving : cat_with_terminal_cleaving := C ,, DC ,, tt. -Coercion cat_terminal_disp_cat_of_cat_with_terminal_disp_cat +#[reversible] Coercion cat_terminal_disp_cat_of_cat_with_terminal_disp_cat (C : cat_with_terminal_cleaving) : cat_with_terminal_disp_cat := pr1 C. @@ -314,7 +314,7 @@ Definition make_functor_with_terminal_cleaving : functor_with_terminal_cleaving C₁ C₂ := F ,, tt ,, HF. -Coercion functor_terminal_disp_cat_of_functor_with_terminal_cleaving +#[reversible] Coercion functor_terminal_disp_cat_of_functor_with_terminal_cleaving {C₁ C₂ : cat_with_terminal_cleaving} (F : functor_with_terminal_cleaving C₁ C₂) : functor_with_terminal_disp_cat C₁ C₂ @@ -339,7 +339,7 @@ Definition make_nat_trans_with_terminal_cleaving : nat_trans_with_terminal_cleaving F G := τ ,, tt ,, tt. -Coercion nat_trans_with_terminal_disp_cat_of_nat_trans_with_terminal_cleaving +#[reversible] Coercion nat_trans_with_terminal_disp_cat_of_nat_trans_with_terminal_cleaving {C₁ C₂ : cat_with_terminal_cleaving} {F G : functor_with_terminal_cleaving C₁ C₂} (τ : nat_trans_with_terminal_cleaving F G) @@ -1072,7 +1072,7 @@ Definition make_cat_with_terminal_cleaving_functor : cat_with_terminal_cleaving_functor := C ,, χ. -Coercion cat_terminal_cleaving_functor_to_cat_terminal_cleaving +#[reversible] Coercion cat_terminal_cleaving_functor_to_cat_terminal_cleaving (C : cat_with_terminal_cleaving_functor) : cat_with_terminal_cleaving := pr1 C. @@ -1097,7 +1097,7 @@ Definition make_functor_with_terminal_cleaving_functor : functor_with_terminal_cleaving_functor C₁ C₂ := F ,, Fχ. -Coercion functor_with_terminal_cleaving_functor_to_functor_with_terminal_cleaving +#[reversible] Coercion functor_with_terminal_cleaving_functor_to_functor_with_terminal_cleaving {C₁ C₂ : cat_with_terminal_cleaving_functor} (F : functor_with_terminal_cleaving_functor C₁ C₂) : functor_with_terminal_cleaving C₁ C₂ @@ -1129,7 +1129,7 @@ Definition make_nat_trans_with_terminal_cleaving_functor : nat_trans_with_terminal_cleaving_functor F G := τ ,, Hτ. -Coercion nat_trans_with_terminal_cleaving_functor_to_nat_trans_with_terminal_cleaving +#[reversible] Coercion nat_trans_with_terminal_cleaving_functor_to_nat_trans_with_terminal_cleaving {C₁ C₂ : cat_with_terminal_cleaving_functor} {F G : functor_with_terminal_cleaving_functor C₁ C₂} (τ : nat_trans_with_terminal_cleaving_functor F G) @@ -1251,7 +1251,7 @@ Definition make_full_comp_cat : full_comp_cat := C ,, (H₁ ,, H₂) ,, tt. -Coercion full_comp_cat_to_cat_with_terminal_cleaving +#[reversible] Coercion full_comp_cat_to_cat_with_terminal_cleaving (C : full_comp_cat) : cat_with_terminal_cleaving_functor := pr1 C. @@ -1281,7 +1281,7 @@ Definition make_full_comp_cat_functor : full_comp_cat_functor C₁ C₂ := F ,, tt ,, HF. -Coercion full_comp_cat_functor_to_functor_with_terminal_cleaving_functor +#[reversible] Coercion full_comp_cat_functor_to_functor_with_terminal_cleaving_functor {C₁ C₂ : full_comp_cat} (F : full_comp_cat_functor C₁ C₂) : functor_with_terminal_cleaving_functor C₁ C₂ @@ -1302,7 +1302,7 @@ Definition full_comp_cat_nat_trans : UU := F ==> G. -Coercion full_comp_cat_nat_trans_to_nat_trans_with_terminal_cleaving_functor +#[reversible] Coercion full_comp_cat_nat_trans_to_nat_trans_with_terminal_cleaving_functor {C₁ C₂ : full_comp_cat} {F G : full_comp_cat_functor C₁ C₂} (τ : full_comp_cat_nat_trans F G) diff --git a/UniMath/Bicategories/Core/Bicat.v b/UniMath/Bicategories/Core/Bicat.v index df11c05e2c..a78b842405 100644 --- a/UniMath/Bicategories/Core/Bicat.v +++ b/UniMath/Bicategories/Core/Bicat.v @@ -28,7 +28,7 @@ Definition prebicat_2cell_struct (C : precategory_ob_mor) Definition prebicat_1_id_comp_cells : UU := ∑ (C : precategory_data), prebicat_2cell_struct C. -Coercion precat_data_from_prebicat_1_id_comp_cells (C : prebicat_1_id_comp_cells) +#[reversible] Coercion precat_data_from_prebicat_1_id_comp_cells (C : prebicat_1_id_comp_cells) : precategory_data := pr1 C. @@ -76,7 +76,7 @@ Definition make_prebicat_data C (str : prebicat_2_id_comp_struct C) (** Data projections. *) (* ----------------------------------------------------------------------------------- *) -Coercion prebicat_cells_1_id_comp_from_prebicat_data (C : prebicat_data) +#[reversible] Coercion prebicat_cells_1_id_comp_from_prebicat_data (C : prebicat_data) : prebicat_1_id_comp_cells := pr1 C. @@ -217,8 +217,8 @@ Qed. Definition prebicat : UU := ∑ C : prebicat_data, prebicat_laws C. -Coercion prebicat_data_from_bicat (C : prebicat) : prebicat_data := pr1 C. -Coercion prebicat_laws_from_bicat (C : prebicat) : prebicat_laws C := pr2 C. +#[reversible] Coercion prebicat_data_from_bicat (C : prebicat) : prebicat_data := pr1 C. +#[reversible] Coercion prebicat_laws_from_bicat (C : prebicat) : prebicat_laws C := pr2 C. (* ----------------------------------------------------------------------------------- *) (** Laws projections. *) @@ -424,7 +424,7 @@ Proof. * exact rwhisk. Defined. -Coercion prebicat_of_bicat (C : bicat) +#[reversible] Coercion prebicat_of_bicat (C : bicat) : prebicat := pr1 C. @@ -575,12 +575,12 @@ Definition make_invertible_2cell {C : prebicat_data} : invertible_2cell f g := η,, inv_η. -Coercion cell_from_invertible_2cell {C : prebicat_data} +#[reversible] Coercion cell_from_invertible_2cell {C : prebicat_data} {a b : C} {f g : a --> b} (η : invertible_2cell f g) : f ==> g := pr1 η. -Coercion property_from_invertible_2cell {C : prebicat_data} +#[reversible] Coercion property_from_invertible_2cell {C : prebicat_data} {a b : C} {f g : a --> b} (η : invertible_2cell f g) : is_invertible_2cell η diff --git a/UniMath/Bicategories/Core/Examples/OneTypes.v b/UniMath/Bicategories/Core/Examples/OneTypes.v index 865c0e4be3..5531e5e87e 100644 --- a/UniMath/Bicategories/Core/Examples/OneTypes.v +++ b/UniMath/Bicategories/Core/Examples/OneTypes.v @@ -27,7 +27,7 @@ Definition make_one_type := tpair (λ A, isofhlevel 3 A) X i. Definition one_type_to_type : one_type -> UU := pr1. -Coercion one_type_to_type : one_type >-> UU. +#[reversible] Coercion one_type_to_type : one_type >-> UU. Definition one_type_isofhlevel (X : one_type) diff --git a/UniMath/Bicategories/Core/Examples/StructuredCategories.v b/UniMath/Bicategories/Core/Examples/StructuredCategories.v index 26dc5372f2..fafad7d696 100644 --- a/UniMath/Bicategories/Core/Examples/StructuredCategories.v +++ b/UniMath/Bicategories/Core/Examples/StructuredCategories.v @@ -318,7 +318,7 @@ Definition make_univ_cat_with_finlim : univ_cat_with_finlim := C ,, (T ,, tt) ,, (P ,, tt). -Coercion univ_cat_of_univ_cat_with_finlim +#[reversible] Coercion univ_cat_of_univ_cat_with_finlim (C : univ_cat_with_finlim) : univalent_category := pr1 C. @@ -346,7 +346,7 @@ Definition make_functor_finlim : functor_finlim C₁ C₂ := F ,, (tt ,, FT) ,, (tt ,, FP). -Coercion functor_of_functor_finlim +#[reversible] Coercion functor_of_functor_finlim {C₁ C₂ : univ_cat_with_finlim} (F : functor_finlim C₁ C₂) : C₁ ⟶ C₂ @@ -377,7 +377,7 @@ Definition make_nat_trans_finlim : nat_trans_finlim F G := τ ,, (tt ,, tt) ,, (tt ,, tt). -Coercion nat_trans_of_nat_trans_finlim +#[reversible] Coercion nat_trans_of_nat_trans_finlim {C₁ C₂ : univ_cat_with_finlim} {F G : functor_finlim C₁ C₂} (τ : nat_trans_finlim F G) diff --git a/UniMath/Bicategories/Core/Strictness.v b/UniMath/Bicategories/Core/Strictness.v index 434619a778..f7d95ff950 100644 --- a/UniMath/Bicategories/Core/Strictness.v +++ b/UniMath/Bicategories/Core/Strictness.v @@ -116,7 +116,7 @@ Proof. Qed. (** Projections *) -Coercion strictness_structure_to_data +#[reversible] Coercion strictness_structure_to_data {B : bicat} (S : strictness_structure B) : strictness_structure_data B @@ -172,7 +172,7 @@ Definition coh_strictness_structure (B : bicat) := ∑ (S : strictness_structure B), is_coh_strictness_structure S. -Coercion pr_strictness_structure +#[reversible] Coercion pr_strictness_structure {B : bicat} (S : coh_strictness_structure B) : strictness_structure B @@ -208,7 +208,7 @@ Definition bisetcat : UU := ∑ (B : bicat), locally_strict B × globally_strict B. -Coercion bisetcat_to_bicat +#[reversible] Coercion bisetcat_to_bicat (B : bisetcat) : bicat := pr1 B. @@ -295,7 +295,7 @@ Qed. Definition strict_bicat := ∑ (B : bicat), is_strict_bicat B. -Coercion bicat_of_strict_bicat +#[reversible] Coercion bicat_of_strict_bicat (B : strict_bicat) : bicat := pr1 B. diff --git a/UniMath/Bicategories/DaggerCategories/BicatOfDaggerCats.v b/UniMath/Bicategories/DaggerCategories/BicatOfDaggerCats.v index 5630e57f7b..3f4a7b8183 100644 --- a/UniMath/Bicategories/DaggerCategories/BicatOfDaggerCats.v +++ b/UniMath/Bicategories/DaggerCategories/BicatOfDaggerCats.v @@ -70,7 +70,7 @@ End BicatOfDaggerCategories. Section Destructors. Definition DAG_to_cat (C : DAG) : category := pr1 C. - Coercion DAG_to_cat : ob >-> category. + #[reversible] Coercion DAG_to_cat : ob >-> category. Definition DAG_to_dagger (C : DAG) : dagger C := pr2 C. diff --git a/UniMath/Bicategories/DisplayedBicats/Cartesians.v b/UniMath/Bicategories/DisplayedBicats/Cartesians.v index 6f4ba093b5..5741224c75 100644 --- a/UniMath/Bicategories/DisplayedBicats/Cartesians.v +++ b/UniMath/Bicategories/DisplayedBicats/Cartesians.v @@ -514,7 +514,7 @@ Section WeakCartesians. : invertible_2cell (wk_lift_1cell_factor_over Lh) h := pr12 Lh. - Coercion disp_mor_wk_lift_1cell_factor + #[reversible] Coercion disp_mor_wk_lift_1cell_factor {c : B} {cc : D c} {h : c --> a} @@ -591,7 +591,7 @@ Section WeakCartesians. : UU := iscontr (wk_lift_2cell_factor_type σσ Lh Lh'). - Coercion disp_cell_wk_lift_2cell_factor + #[reversible] Coercion disp_cell_wk_lift_2cell_factor {c : B} {cc : D c} {h h' : c --> a} diff --git a/UniMath/Bicategories/DisplayedBicats/CleavingOfBicat.v b/UniMath/Bicategories/DisplayedBicats/CleavingOfBicat.v index 4d73128a84..7781b00825 100644 --- a/UniMath/Bicategories/DisplayedBicats/CleavingOfBicat.v +++ b/UniMath/Bicategories/DisplayedBicats/CleavingOfBicat.v @@ -60,7 +60,7 @@ Section BicatCleaving. (hh ;; ff) gg. - Coercion disp_mor_lift_1cell_factor + #[reversible] Coercion disp_mor_lift_1cell_factor {c : B} {cc : D c} {h : c --> a} @@ -110,7 +110,7 @@ Section BicatCleaving. : UU := iscontr (lift_2cell_factor_type σσ Lh Lh'). - Coercion disp_cell_lift_2cell_factor + #[reversible] Coercion disp_cell_lift_2cell_factor {c : B} {cc : D c} {h h' : c --> a} @@ -333,7 +333,7 @@ Section BicatCleaving. (αα : ff ==>[ α ] gg), is_cartesian_2cell αα. - Coercion mor_of_cartesian_lift_2cell + #[reversible] Coercion mor_of_cartesian_lift_2cell {x y : B} {xx : D x} {yy : D y} @@ -858,7 +858,7 @@ Section LocalOpcleaving. : UU := ∑ (gg : xx -->[ g ] yy) (αα : ff ==>[ α ] gg), is_opcartesian_2cell αα. - Coercion mor_of_opcartesian_lift_2cell + #[reversible] Coercion mor_of_opcartesian_lift_2cell {x y : B} {xx : D x} {yy : D y} diff --git a/UniMath/Bicategories/DisplayedBicats/DispAdjunctions.v b/UniMath/Bicategories/DisplayedBicats/DispAdjunctions.v index e80313a306..ee3d27aad1 100644 --- a/UniMath/Bicategories/DisplayedBicats/DispAdjunctions.v +++ b/UniMath/Bicategories/DisplayedBicats/DispAdjunctions.v @@ -124,7 +124,7 @@ Definition disp_left_adjoint := ∑ (ααd : disp_left_adjoint_data α ff), disp_left_adjoint_axioms α ααd. -Coercion disp_data_of_left_adjoint +#[reversible] Coercion disp_data_of_left_adjoint {a b : C} {f : a --> b} (α : left_adjoint f) @@ -134,7 +134,7 @@ Coercion disp_data_of_left_adjoint : disp_left_adjoint_data α ff := pr1 αα. -Coercion disp_axioms_of_left_adjoint +#[reversible] Coercion disp_axioms_of_left_adjoint {a b : C} {f : a --> b} (α : left_adjoint f) @@ -181,7 +181,7 @@ Definition disp_left_adjoint_equivalence × disp_left_equivalence_axioms αe ααd. (* the coercion to the adjoint axioms will be induced *) -Coercion disp_left_adjoint_of_left_adjoint_equivalence +#[reversible] Coercion disp_left_adjoint_of_left_adjoint_equivalence {a b : C} {f : a --> b} {αe : left_adjoint_equivalence f} @@ -190,7 +190,7 @@ Coercion disp_left_adjoint_of_left_adjoint_equivalence (ααe : disp_left_adjoint_equivalence αe ff) : disp_left_adjoint αe ff := (pr1 ααe,, pr12 ααe). -Coercion axioms_of_left_adjoint_equivalence +#[reversible] Coercion axioms_of_left_adjoint_equivalence {a b : C} {f : a --> b} {αe : left_adjoint_equivalence f} @@ -206,7 +206,7 @@ Definition disp_adjunction (aa : D a) (bb : D b) : UU := ∑ ff : aa -->[f] bb, disp_left_adjoint f ff. -Coercion disp_arrow_of_adjunction +#[reversible] Coercion disp_arrow_of_adjunction {a b : C} {f : adjunction a b} {aa : D a} {bb : D b} @@ -214,7 +214,7 @@ Coercion disp_arrow_of_adjunction : aa -->[f] bb := pr1 ff. -Coercion disp_left_adjoint_of_adjunction +#[reversible] Coercion disp_left_adjoint_of_adjunction {a b : C} {f : adjunction a b} {aa : D a} {bb : D b} @@ -228,7 +228,7 @@ Definition disp_adjoint_equivalence (aa : D a) (bb : D b) : UU := ∑ ff : aa -->[f] bb, disp_left_adjoint_equivalence f ff. -Coercion disp_adjunction_of_adjoint_equivalence +#[reversible] Coercion disp_adjunction_of_adjoint_equivalence {a b : C} {f : adjoint_equivalence a b} {aa : D a} {bb : D b} @@ -239,7 +239,7 @@ Proof. apply (disp_left_adjoint_of_left_adjoint_equivalence (pr2 ff)). Defined. -Coercion disp_left_adjoint_equivalence_of_adjoint_equivalence +#[reversible] Coercion disp_left_adjoint_equivalence_of_adjoint_equivalence {a b : C} {f : adjoint_equivalence a b} {aa : D a} {bb : D b} diff --git a/UniMath/Bicategories/DisplayedBicats/DispBicat.v b/UniMath/Bicategories/DisplayedBicats/DispBicat.v index 6c1a760aa8..6143aa1d32 100644 --- a/UniMath/Bicategories/DisplayedBicats/DispBicat.v +++ b/UniMath/Bicategories/DisplayedBicats/DispBicat.v @@ -49,7 +49,7 @@ Definition disp_2cell_struct {C : prebicat_1_id_comp_cells} (D : disp_cat_ob_mor Definition disp_prebicat_1_id_comp_cells (C : prebicat_1_id_comp_cells) : UU := ∑ D : disp_cat_data C, disp_2cell_struct D. -Coercion disp_cat_data_from_disp_prebicat_1_id_comp_cells +#[reversible] Coercion disp_cat_data_from_disp_prebicat_1_id_comp_cells {C : prebicat_1_id_comp_cells} (D : disp_prebicat_1_id_comp_cells C) : disp_cat_data C := pr1 D. @@ -190,12 +190,12 @@ Definition disp_prebicat_ops (D : disp_prebicat_1_id_comp_cells C) : UU Definition disp_prebicat_data : UU := ∑ D : disp_prebicat_1_id_comp_cells C, disp_prebicat_ops D. -Coercion disp_prebicat_ob_mor_cells_1_id_comp_from_disp_prebicat_data +#[reversible] Coercion disp_prebicat_ob_mor_cells_1_id_comp_from_disp_prebicat_data (D : disp_prebicat_data) : disp_prebicat_1_id_comp_cells C := pr1 D. -Coercion disp_prebicat_ops_from_disp_prebicat_data (D : disp_prebicat_data) +#[reversible] Coercion disp_prebicat_ops_from_disp_prebicat_data (D : disp_prebicat_data) : disp_prebicat_ops D := pr2 D. @@ -475,7 +475,7 @@ End disp_prebicat_laws. Definition disp_prebicat : UU := ∑ D : disp_prebicat_data, disp_prebicat_laws D. -Coercion disp_prebicat_data_from_disp_prebicat (D : disp_prebicat) +#[reversible] Coercion disp_prebicat_data_from_disp_prebicat (D : disp_prebicat) : disp_prebicat_data := pr1 D. @@ -749,7 +749,7 @@ Section Display_Invertible_2cell. : UU := ∑ (x : ff ==>[α] ff'), is_disp_invertible_2cell α x. - Coercion disp_cell_from_invertible_2cell {α : invertible_2cell f f'} + #[reversible] Coercion disp_cell_from_invertible_2cell {α : invertible_2cell f f'} {ff : d -->[f] d'} {ff' : d -->[f'] d'} (e : disp_invertible_2cell α ff ff') : ff ==>[α] ff' @@ -1459,7 +1459,7 @@ Definition has_disp_cellset (D : disp_prebicat) : UU Definition disp_bicat : UU := ∑ D : disp_prebicat, has_disp_cellset D. -Coercion disp_prebicat_of_disp_bicat (D : disp_bicat) +#[reversible] Coercion disp_prebicat_of_disp_bicat (D : disp_bicat) : disp_prebicat := pr1 D. diff --git a/UniMath/Bicategories/DisplayedBicats/DispBicatSection.v b/UniMath/Bicategories/DisplayedBicats/DispBicatSection.v index bf8f327430..721dd86d18 100644 --- a/UniMath/Bicategories/DisplayedBicats/DispBicatSection.v +++ b/UniMath/Bicategories/DisplayedBicats/DispBicatSection.v @@ -286,7 +286,7 @@ Definition section_disp_bicat : UU := ∑ (s : section_disp_bicat_data D), section_disp_bicat_laws s. -Coercion section_to_section_data +#[reversible] Coercion section_to_section_data {B : bicat} {D : disp_bicat B} (s : section_disp_bicat D) diff --git a/UniMath/Bicategories/DisplayedBicats/DispModification.v b/UniMath/Bicategories/DisplayedBicats/DispModification.v index 0e400ba333..4f786f5e3b 100644 --- a/UniMath/Bicategories/DisplayedBicats/DispModification.v +++ b/UniMath/Bicategories/DisplayedBicats/DispModification.v @@ -71,7 +71,7 @@ Definition is_disp_modification (mm : disp_modification_data) : UU Definition disp_modification : UU := ∑ mm : disp_modification_data, is_disp_modification mm. -Coercion disp_modification_to_disp_modification_data (αα : disp_modification) +#[reversible] Coercion disp_modification_to_disp_modification_data (αα : disp_modification) : disp_modification_data := pr1 αα. @@ -147,7 +147,7 @@ Definition is_disp_invmodification (mm : disp_invmodification_data) : UU Definition disp_invmodification : UU := ∑ mm : disp_invmodification_data, is_disp_invmodification mm. -Coercion disp_invmodification_to_disp_invmodification_data (αα : disp_invmodification) +#[reversible] Coercion disp_invmodification_to_disp_invmodification_data (αα : disp_invmodification) : disp_invmodification_data := pr1 αα. diff --git a/UniMath/Bicategories/DisplayedBicats/DispPseudofunctor.v b/UniMath/Bicategories/DisplayedBicats/DispPseudofunctor.v index 1f493c9285..0233a71073 100644 --- a/UniMath/Bicategories/DisplayedBicats/DispPseudofunctor.v +++ b/UniMath/Bicategories/DisplayedBicats/DispPseudofunctor.v @@ -94,7 +94,7 @@ Definition disp_psfunctor_ob (FFdata : disp_psfunctor_data) : D₂ (F x) := pr1 FFdata x xx. -Coercion disp_psfunctor_ob : disp_psfunctor_data >-> Funclass. +#[reversible] Coercion disp_psfunctor_ob : disp_psfunctor_data >-> Funclass. Section Projections. @@ -263,7 +263,7 @@ End DispPseudofunctorLaws. Definition disp_psfunctor : UU := ∑ FF : disp_psfunctor_data, is_disp_psfunctor FF. -Coercion disp_psfunctor_to_disp_psfunctor_data (FF : disp_psfunctor) +#[reversible] Coercion disp_psfunctor_to_disp_psfunctor_data (FF : disp_psfunctor) : disp_psfunctor_data := pr1 FF. diff --git a/UniMath/Bicategories/DisplayedBicats/DispTransformation.v b/UniMath/Bicategories/DisplayedBicats/DispTransformation.v index da031c8266..0b211c2a3f 100644 --- a/UniMath/Bicategories/DisplayedBicats/DispTransformation.v +++ b/UniMath/Bicategories/DisplayedBicats/DispTransformation.v @@ -67,7 +67,7 @@ Definition disp_pscomponent_of (αα : disp_pstrans_data) : ∏ (x : B₁) (xx : D₁ x), FF₁ x xx -->[ α x] FF₂ x xx := pr1 αα. -Coercion disp_pscomponent_of : disp_pstrans_data >-> Funclass. +#[reversible] Coercion disp_pscomponent_of : disp_pstrans_data >-> Funclass. Definition disp_psnaturality_of (αα : disp_pstrans_data) {x y : B₁} @@ -154,7 +154,7 @@ End DispPstransLaws. Definition disp_pstrans : UU := ∑ αα : disp_pstrans_data, is_disp_pstrans αα. -Coercion disp_pstrans_to_disp_pstrans_data (αα : disp_pstrans) +#[reversible] Coercion disp_pstrans_to_disp_pstrans_data (αα : disp_pstrans) : disp_pstrans_data := pr1 αα. diff --git a/UniMath/Bicategories/DisplayedBicats/Examples/EnrichedCats.v b/UniMath/Bicategories/DisplayedBicats/Examples/EnrichedCats.v index e854abd6fe..9a6ad45b31 100644 --- a/UniMath/Bicategories/DisplayedBicats/Examples/EnrichedCats.v +++ b/UniMath/Bicategories/DisplayedBicats/Examples/EnrichedCats.v @@ -972,12 +972,12 @@ Section EnrichedCats. : UU := bicat_of_enriched_cats. - Coercion enriched_cat_to_univalent_category + #[reversible] Coercion enriched_cat_to_univalent_category (E : enriched_cat) : univalent_category := pr1 E. - Coercion enriched_cat_to_enrichment + #[reversible] Coercion enriched_cat_to_enrichment (E : enriched_cat) : enrichment E V := pr2 E. @@ -993,7 +993,7 @@ Section EnrichedCats. : UU := E₁ --> E₂. - Coercion enriched_functor_to_functor + #[reversible] Coercion enriched_functor_to_functor {E₁ E₂ : enriched_cat} (F : enriched_functor E₁ E₂) : E₁ ⟶ E₂ @@ -1018,14 +1018,14 @@ Section EnrichedCats. : UU := F ==> G. - Coercion enriched_nat_trans_to_nat_trans + #[reversible] Coercion enriched_nat_trans_to_nat_trans {E₁ E₂ : enriched_cat} {F G : enriched_functor E₁ E₂} (τ : enriched_nat_trans F G) : F ⟹ G := pr1 τ. - Coercion enriched_nat_trans_enrichment + #[reversible] Coercion enriched_nat_trans_enrichment {E₁ E₂ : enriched_cat} {F G : enriched_functor E₁ E₂} (τ : enriched_nat_trans F G) diff --git a/UniMath/Bicategories/DisplayedBicats/Examples/FullSub.v b/UniMath/Bicategories/DisplayedBicats/Examples/FullSub.v index 3a71522c23..8013f14666 100644 --- a/UniMath/Bicategories/DisplayedBicats/Examples/FullSub.v +++ b/UniMath/Bicategories/DisplayedBicats/Examples/FullSub.v @@ -55,18 +55,18 @@ Section FullSubBicat. : UU := f ==> g. - Coercion ob_of_fullsub + #[reversible] Coercion ob_of_fullsub (X : fullsub) : ob C := pr1 X. - Coercion fullsub_to_mor + #[reversible] Coercion fullsub_to_mor {X Y : fullsub} (f : morfullsub X Y) : C⟦pr1 X,pr1 Y⟧ := pr1 f. - Coercion fullsub_to_cell + #[reversible] Coercion fullsub_to_cell {X Y : fullsub} {f g : morfullsub X Y} (α : cellfullsub f g) diff --git a/UniMath/Bicategories/DisplayedBicats/Examples/KleisliTriple.v b/UniMath/Bicategories/DisplayedBicats/Examples/KleisliTriple.v index b175231d55..61b1c7a83a 100644 --- a/UniMath/Bicategories/DisplayedBicats/Examples/KleisliTriple.v +++ b/UniMath/Bicategories/DisplayedBicats/Examples/KleisliTriple.v @@ -57,7 +57,7 @@ Definition object_map_kt : ob C → ob C := pr1 M. -Coercion object_map_kt : kleisli_triple >-> Funclass. +#[reversible] Coercion object_map_kt : kleisli_triple >-> Funclass. Section Projections. Context {C : category} diff --git a/UniMath/Bicategories/DoubleCategories/AlternativeDefinitions/DoubleCatsUnfolded.v b/UniMath/Bicategories/DoubleCategories/AlternativeDefinitions/DoubleCatsUnfolded.v index a2a24a5440..6d35b6fdba 100644 --- a/UniMath/Bicategories/DoubleCategories/AlternativeDefinitions/DoubleCatsUnfolded.v +++ b/UniMath/Bicategories/DoubleCategories/AlternativeDefinitions/DoubleCatsUnfolded.v @@ -35,7 +35,7 @@ Definition predoublecategory_ob_mor_hor : UU Definition obdb (C : predoublecategory_ob_mor_hor) : UU := @pr1 _ _ C. -Coercion obdb : predoublecategory_ob_mor_hor >-> UU. +#[reversible] Coercion obdb : predoublecategory_ob_mor_hor >-> UU. Definition predoublecategory_mor_ver (C : predoublecategory_ob_mor_hor) : UU @@ -44,7 +44,7 @@ Definition predoublecategory_mor_ver (C : predoublecategory_ob_mor_hor) Definition predoublecategory_ob_mor_data : UU := ∑ C, predoublecategory_mor_ver C. -Coercion precategory_ob_mor_from_predoublecategory_ob_mor_data (C : predoublecategory_ob_mor_data) : +#[reversible] Coercion precategory_ob_mor_from_predoublecategory_ob_mor_data (C : predoublecategory_ob_mor_data) : predoublecategory_ob_mor_hor := pr1 C. End Definition_of_Double_Graphs. @@ -90,7 +90,7 @@ Definition predoublecategory_hor_precat_data : UU Definition predoublecategory_ob_mor_data_from_predoublecategory_hor_precat_data (C: predoublecategory_hor_precat_data) : predoublecategory_ob_mor_data := pr1 C. -Coercion predoublecategory_ob_mor_data_from_predoublecategory_hor_precat_data : +#[reversible] Coercion predoublecategory_ob_mor_data_from_predoublecategory_hor_precat_data : predoublecategory_hor_precat_data >-> predoublecategory_ob_mor_data. Definition hor_identity {C : predoublecategory_hor_precat_data} @@ -123,7 +123,7 @@ Definition make_predoublecategory_hor (C : predoublecategory_hor_precat_data) (H Definition predoublecategory_hor_data_from_predoublecategory_hor (C : predoublecategory_hor) : predoublecategory_hor_precat_data := pr1 C. -Coercion predoublecategory_hor_data_from_predoublecategory_hor : predoublecategory_hor >-> predoublecategory_hor_precat_data. +#[reversible] Coercion predoublecategory_hor_data_from_predoublecategory_hor : predoublecategory_hor >-> predoublecategory_hor_precat_data. Definition get_id_hor_left (C : predoublecategory_hor) : ∏ (a b : C) (f : a -h-> b), @@ -167,9 +167,9 @@ Definition make_doublecategory_hor C h : doublecategory_hor := C,,h. Definition doublecategory_hor_to_predoublecategory_hor : doublecategory_hor -> predoublecategory_hor := pr1. -Coercion doublecategory_hor_to_predoublecategory_hor : doublecategory_hor >-> predoublecategory_hor. +#[reversible] Coercion doublecategory_hor_to_predoublecategory_hor : doublecategory_hor >-> predoublecategory_hor. -Coercion double_homset_property (C : doublecategory_hor) : has_hor_homsets C := pr2 C. +#[reversible] Coercion double_homset_property (C : doublecategory_hor) : has_hor_homsets C := pr2 C. Definition und_ob_hor_category (C: doublecategory_hor) : category := make_category (und_ob_hor_precategory C) (pr2 C). @@ -195,7 +195,7 @@ Definition predoublecategory_hor_cat_ver_precat_data : UU (* double graph with h Definition predoublecategory_hor_from_predoublecategory_hor_cat_ver_precat_data (C: predoublecategory_hor_cat_ver_precat_data) : predoublecategory_hor := pr1 C. -Coercion predoublecategory_hor_from_predoublecategory_hor_cat_ver_precat_data : +#[reversible] Coercion predoublecategory_hor_from_predoublecategory_hor_cat_ver_precat_data : predoublecategory_hor_cat_ver_precat_data >-> predoublecategory_hor. Definition ver_identity {C : predoublecategory_hor_cat_ver_precat_data} @@ -223,7 +223,7 @@ Definition predoublecategory_ob_mor_sq_data : UU := (*Ob, HorMor, VerMor, Sq hor Definition predoublecategory_hor_cat_ver_precat_data_from_predoublecategory_square (C : predoublecategory_ob_mor_sq_data) : predoublecategory_hor_cat_ver_precat_data := pr1 C. (* Forget Sq *) -Coercion predoublecategory_hor_cat_ver_precat_data_from_predoublecategory_square : +#[reversible] Coercion predoublecategory_hor_cat_ver_precat_data_from_predoublecategory_square : predoublecategory_ob_mor_sq_data >-> predoublecategory_hor_cat_ver_precat_data. Definition get_predoublecat_sq (C: predoublecategory_ob_mor_sq_data) : @@ -293,7 +293,7 @@ Definition make_predoublecategory_sq_hor_data (C : predoublecategory_ob_mor_sq_d Definition predoublecategory_ob_mor_sq_data_from_predoublecategory_sq_hor_data (C : predoublecategory_sq_hor_data) : predoublecategory_ob_mor_sq_data := pr1 C. -Coercion predoublecategory_ob_mor_sq_data_from_predoublecategory_sq_hor_data : +#[reversible] Coercion predoublecategory_ob_mor_sq_data_from_predoublecategory_sq_hor_data : predoublecategory_sq_hor_data >-> predoublecategory_ob_mor_sq_data. Definition get_hor_sq_identity {C : predoublecategory_sq_hor_data} @@ -365,7 +365,7 @@ Definition make_predoublecategory_hor_sq (C : predoublecategory_sq_hor_data) (H Definition predoublecategory_sq_hor_data_from_predoublecategory_hor_sq (C : predoublecategory_hor_sq) : predoublecategory_sq_hor_data := pr1 C. -Coercion predoublecategory_sq_hor_data_from_predoublecategory_hor_sq : predoublecategory_hor_sq >-> predoublecategory_sq_hor_data. +#[reversible] Coercion predoublecategory_sq_hor_data_from_predoublecategory_hor_sq : predoublecategory_hor_sq >-> predoublecategory_sq_hor_data. Definition get_id_hor_sq_left (C : predoublecategory_hor_sq) : ∏ (a b c d : pr1 C) (f : a -h-> b) (g : a -v-> c) (h : b -v-> d) (k : c -h-> d) @@ -461,7 +461,7 @@ Definition make_predoublecategory_sq_hor_ver_data (C : predoublecategory_hor_sq) Definition predoublecategory_hor_sq_from_predoublecategory_sq_hor_ver_data (C : predoublecategory_sq_hor_ver_data) : predoublecategory_hor_sq := pr1 C. (* Predoublegraph with vertical morphisms and squares composition *) -Coercion predoublecategory_hor_sq_from_predoublecategory_sq_hor_ver_data: +#[reversible] Coercion predoublecategory_hor_sq_from_predoublecategory_sq_hor_ver_data: predoublecategory_sq_hor_ver_data >-> predoublecategory_hor_sq. Definition get_ver_sq_identity {C : predoublecategory_sq_hor_ver_data} @@ -507,7 +507,7 @@ Definition has_predoublecategory_sq_hor_ver_unit_assoc ( C:predoublecategory_sq_ Definition predoublecategory_sq_hor_ver_unit_assoc_data : UU := ∑ (C:predoublecategory_sq_hor_ver_data), has_predoublecategory_sq_hor_ver_unit_assoc C. -Coercion predoublecategory_sq_hor_ver_data_from_predoublecategory_sq_hor_ver_unit_assoc_data (C: predoublecategory_sq_hor_ver_unit_assoc_data) +#[reversible] Coercion predoublecategory_sq_hor_ver_data_from_predoublecategory_sq_hor_ver_unit_assoc_data (C: predoublecategory_sq_hor_ver_unit_assoc_data) : predoublecategory_sq_hor_ver_data := pr1 C. Definition get_ver_left_unitor {C: predoublecategory_sq_hor_ver_unit_assoc_data} {a b : C} (f: a -v-> b) : sqq_iso_special (ver_identity a ·v f) f @@ -625,7 +625,7 @@ Definition predoublecategory : UU := (predoublecategory_interchange C)). -Coercion predoublecategory_sq_hor_ver_unit_assoc_data_from_predoublecategory (C: predoublecategory) +#[reversible] Coercion predoublecategory_sq_hor_ver_unit_assoc_data_from_predoublecategory (C: predoublecategory) : predoublecategory_sq_hor_ver_unit_assoc_data := pr1 C. Definition get_predoublecategory_ver_left_unitor_naturality @@ -825,9 +825,9 @@ Definition make_doublecategory C h k : doublecategory := C,,h,,k. Definition doublecategory_to_predoublecategory : doublecategory → predoublecategory := pr1. -Coercion doublecategory_to_predoublecategory : doublecategory >-> predoublecategory. +#[reversible] Coercion doublecategory_to_predoublecategory : doublecategory >-> predoublecategory. -Coercion homset_sq_property (C : doublecategory) : (has_homsets (und_ob_hor_precategory C) × has_sq_hor_homsets C) := pr2 C. +#[reversible] Coercion homset_sq_property (C : doublecategory) : (has_homsets (und_ob_hor_precategory C) × has_sq_hor_homsets C) := pr2 C. Definition get_has_sq_hor_homsets {C : doublecategory} {a b c d : C} @@ -897,5 +897,5 @@ Section Univalent_Double_Categories. Definition univalent_doublecategory : UU := ∑ (C: doublecategory), is_double_univalent C. - Coercion univalent_doublecategory_to_doublecategory (C: univalent_doublecategory) := pr1 C. + #[reversible] Coercion univalent_doublecategory_to_doublecategory (C: univalent_doublecategory) := pr1 C. End Univalent_Double_Categories. diff --git a/UniMath/Bicategories/DoubleCategories/Basics/DoubleCategoryBasics.v b/UniMath/Bicategories/DoubleCategories/Basics/DoubleCategoryBasics.v index f9f404b182..cf4bde9763 100644 --- a/UniMath/Bicategories/DoubleCategories/Basics/DoubleCategoryBasics.v +++ b/UniMath/Bicategories/DoubleCategories/Basics/DoubleCategoryBasics.v @@ -89,7 +89,7 @@ Definition hor_id : UU := ∑ (I : hor_id_data D), hor_id_laws I. -Coercion hor_id_to_data +#[reversible] Coercion hor_id_to_data {C : category} {D : twosided_disp_cat C C} (I : hor_id D) @@ -224,7 +224,7 @@ Definition hor_comp : UU := ∑ (Cm : hor_comp_data D), hor_comp_laws Cm. -Coercion hor_comp_to_data +#[reversible] Coercion hor_comp_to_data {C : category} {D : twosided_disp_cat C C} (Cm : hor_comp D) diff --git a/UniMath/Bicategories/DoubleCategories/Basics/StrictDoubleCatBasics.v b/UniMath/Bicategories/DoubleCategories/Basics/StrictDoubleCatBasics.v index d3c7cd055e..d45b5f2089 100644 --- a/UniMath/Bicategories/DoubleCategories/Basics/StrictDoubleCatBasics.v +++ b/UniMath/Bicategories/DoubleCategories/Basics/StrictDoubleCatBasics.v @@ -356,7 +356,7 @@ Definition preserves_hor_id_to_data double_id I₂ (F x) := pr1 FFI x. -Coercion preserves_hor_id_to_data : preserves_hor_id >-> Funclass. +#[reversible] Coercion preserves_hor_id_to_data : preserves_hor_id >-> Funclass. Proposition is_natural_preserves_hor_id {C₁ C₂ : category} @@ -662,7 +662,7 @@ Definition preserves_hor_comp_to_data double_hor_comp Cm₂ (FF _ _ f) (FF _ _ g) := pr1 FFc x y z f g. -Coercion preserves_hor_comp_to_data : preserves_hor_comp >-> Funclass. +#[reversible] Coercion preserves_hor_comp_to_data : preserves_hor_comp >-> Funclass. Proposition is_natural_preserves_hor_comp {C₁ C₂ : category} diff --git a/UniMath/Bicategories/DoubleCategories/Core/DoubleCats.v b/UniMath/Bicategories/DoubleCategories/Core/DoubleCats.v index c632c2c1c0..9764a47614 100644 --- a/UniMath/Bicategories/DoubleCategories/Core/DoubleCats.v +++ b/UniMath/Bicategories/DoubleCategories/Core/DoubleCats.v @@ -66,7 +66,7 @@ Definition ob_double_cat : category := pr1 C. -Coercion ob_double_cat : double_cat >-> category. +#[reversible] Coercion ob_double_cat : double_cat >-> category. Definition ver_mor_double_cat {C : double_cat} @@ -373,7 +373,7 @@ Definition globular_iso_square : UU := iso_twosided_disp (identity_z_iso _) (identity_z_iso _) h₁ h₂. -Coercion globular_iso_square_to_hor_mor +#[reversible] Coercion globular_iso_square_to_hor_mor {C : double_cat} {x y : C} {h₁ h₂ : x -->h y} diff --git a/UniMath/Bicategories/DoubleCategories/Core/PseudoDoubleSetCats.v b/UniMath/Bicategories/DoubleCategories/Core/PseudoDoubleSetCats.v index 4eae8cba0e..33c7f6103d 100644 --- a/UniMath/Bicategories/DoubleCategories/Core/PseudoDoubleSetCats.v +++ b/UniMath/Bicategories/DoubleCategories/Core/PseudoDoubleSetCats.v @@ -36,7 +36,7 @@ Definition pseudo_double_setcat := ob univalent_cat_of_pseudo_double_setcategory. (** * 2. Accessors for univalent double categories *) -Coercion pseudo_double_setcat_to_double_cat +#[reversible] Coercion pseudo_double_setcat_to_double_cat (C : pseudo_double_setcat) : double_cat := make_double_cat diff --git a/UniMath/Bicategories/DoubleCategories/Core/StrictDoubleCats.v b/UniMath/Bicategories/DoubleCategories/Core/StrictDoubleCats.v index 0601b50030..105efb64a2 100644 --- a/UniMath/Bicategories/DoubleCategories/Core/StrictDoubleCats.v +++ b/UniMath/Bicategories/DoubleCategories/Core/StrictDoubleCats.v @@ -69,7 +69,7 @@ Definition ob_strict_double_cat : setcategory := pr111 C. -Coercion ob_strict_double_cat : strict_double_cat >-> setcategory. +#[reversible] Coercion ob_strict_double_cat : strict_double_cat >-> setcategory. Definition isaset_ob_strict_double_cat (C : strict_double_cat) @@ -888,7 +888,7 @@ Definition strict_double_functor_ver : C₁ ⟶ C₂ := pr111 F. -Coercion strict_double_functor_ver : strict_double_functor >-> functor. +#[reversible] Coercion strict_double_functor_ver : strict_double_functor >-> functor. Definition strict_double_functor_ver_mor {C₁ C₂ : strict_double_cat} diff --git a/UniMath/Bicategories/DoubleCategories/Core/UnivalentDoubleCats.v b/UniMath/Bicategories/DoubleCategories/Core/UnivalentDoubleCats.v index 724c844434..f7ae996bc8 100644 --- a/UniMath/Bicategories/DoubleCategories/Core/UnivalentDoubleCats.v +++ b/UniMath/Bicategories/DoubleCategories/Core/UnivalentDoubleCats.v @@ -61,7 +61,7 @@ Definition univalent_double_cat := ob bicat_of_double_cats. (** * 2. Accessors for univalent double categories *) -Coercion univalent_double_cat_to_double_cat +#[reversible] Coercion univalent_double_cat_to_double_cat (C : univalent_double_cat) : double_cat := make_double_cat @@ -146,7 +146,7 @@ Definition lax_double_functor_ver : C₁ ⟶ C₂ := pr1 (pr111 F). -Coercion lax_double_functor_ver : lax_double_functor >-> functor. +#[reversible] Coercion lax_double_functor_ver : lax_double_functor >-> functor. Definition lax_double_functor_ver_mor {C₁ C₂ : univalent_double_cat} @@ -457,13 +457,13 @@ Definition strong_double_functor : UU := ∑ (F : lax_double_functor C₁ C₂), is_strong_double_functor F. -Coercion strong_double_functor_to_lax +#[reversible] Coercion strong_double_functor_to_lax {C₁ C₂ : univalent_double_cat} (F : strong_double_functor C₁ C₂) : lax_double_functor C₁ C₂ := pr1 F. -Coercion strong_double_functor_to_strong +#[reversible] Coercion strong_double_functor_to_strong {C₁ C₂ : univalent_double_cat} (F : strong_double_functor C₁ C₂) : is_strong_double_functor F @@ -484,7 +484,7 @@ Definition double_transformation_to_nat_trans : F ⟹ G := pr1 (pr111 τ). -Coercion double_transformation_to_nat_trans : double_transformation >-> nat_trans. +#[reversible] Coercion double_transformation_to_nat_trans : double_transformation >-> nat_trans. Proposition double_transformation_ver_mor {C₁ C₂ : univalent_double_cat} diff --git a/UniMath/Bicategories/DoubleCategories/DoubleBicat/CellsAndSquares.v b/UniMath/Bicategories/DoubleCategories/DoubleBicat/CellsAndSquares.v index 771f94cffa..ca4cee7228 100644 --- a/UniMath/Bicategories/DoubleCategories/DoubleBicat/CellsAndSquares.v +++ b/UniMath/Bicategories/DoubleCategories/DoubleBicat/CellsAndSquares.v @@ -196,7 +196,7 @@ Section VerticalCellsAreSquares. : invertible_vertical_square_data v₁ v₂ := s₁ ,, s₂. - Coercion cell_of_invertible_vertical_square + #[reversible] Coercion cell_of_invertible_vertical_square {x y : B} {v₁ v₂ : x -|-> y} (s : invertible_vertical_square_data v₁ v₂) @@ -251,7 +251,7 @@ Section VerticalCellsAreSquares. : invertible_vertical_square v₁ v₂ := s ,, H. - Coercion invertible_vertical_square_to_data + #[reversible] Coercion invertible_vertical_square_to_data {x y : B} {v₁ v₂ : x -|-> y} (s : invertible_vertical_square v₁ v₂) @@ -478,7 +478,7 @@ Section HorizontalCellsAreSquares. : invertible_horizontal_square_data h₁ h₂ := s₁ ,, s₂. - Coercion cell_of_invertible_horizontal_square + #[reversible] Coercion cell_of_invertible_horizontal_square {x y : B} {h₁ h₂ : x --> y} (s : invertible_horizontal_square_data h₁ h₂) @@ -533,7 +533,7 @@ Section HorizontalCellsAreSquares. : invertible_horizontal_square h₁ h₂ := s ,, H. - Coercion invertible_horizontal_square_to_data + #[reversible] Coercion invertible_horizontal_square_to_data {x y : B} {h₁ h₂ : x --> y} (s : invertible_horizontal_square h₁ h₂) diff --git a/UniMath/Bicategories/DoubleCategories/DoubleBicat/CompanionPairs.v b/UniMath/Bicategories/DoubleCategories/DoubleBicat/CompanionPairs.v index d69b61e30e..8ba2b1470c 100644 --- a/UniMath/Bicategories/DoubleCategories/DoubleBicat/CompanionPairs.v +++ b/UniMath/Bicategories/DoubleCategories/DoubleBicat/CompanionPairs.v @@ -430,7 +430,7 @@ Definition hor_companion : UU := ∑ (v : x -|-> y), are_companions h v. -Coercion mor_of_hor_companion +#[reversible] Coercion mor_of_hor_companion {B : verity_double_bicat} {x y : B} {h : x --> y} @@ -438,7 +438,7 @@ Coercion mor_of_hor_companion : x -|-> y := pr1 c. -Coercion are_companions_hor_companion +#[reversible] Coercion are_companions_hor_companion {B : verity_double_bicat} {x y : B} {h : x --> y} diff --git a/UniMath/Bicategories/DoubleCategories/DoubleBicat/GregariousEquivalence.v b/UniMath/Bicategories/DoubleCategories/DoubleBicat/GregariousEquivalence.v index ce3fe486ed..b2254761bc 100644 --- a/UniMath/Bicategories/DoubleCategories/DoubleBicat/GregariousEquivalence.v +++ b/UniMath/Bicategories/DoubleCategories/DoubleBicat/GregariousEquivalence.v @@ -77,7 +77,7 @@ Section GregariousEquivalence. × left_adjoint_equivalence v. - Coercion is_gregarious_equivalence_to_are_companions + #[reversible] Coercion is_gregarious_equivalence_to_are_companions {x y : B} {h : x --> y} {v : x -|-> y} @@ -148,14 +148,14 @@ Section GregariousEquivalence. : is_hor_gregarious_equivalence h := Hh ,, (v ,, c) ,, Hv. - Coercion is_hor_gregarious_equivalence_to_mor + #[reversible] Coercion is_hor_gregarious_equivalence_to_mor {x y : B} {h : x --> y} (v : is_hor_gregarious_equivalence h) : hor_companion h := pr12 v. - Coercion is_hor_gregarious_equivalence_to_is_left_adjoint_equivalence + #[reversible] Coercion is_hor_gregarious_equivalence_to_is_left_adjoint_equivalence {x y : B} {h : x --> y} (v : is_hor_gregarious_equivalence h) diff --git a/UniMath/Bicategories/DoubleCategories/DoubleBicat/LocalUnivalence.v b/UniMath/Bicategories/DoubleCategories/DoubleBicat/LocalUnivalence.v index 7de69cb699..cb4c552a88 100644 --- a/UniMath/Bicategories/DoubleCategories/DoubleBicat/LocalUnivalence.v +++ b/UniMath/Bicategories/DoubleCategories/DoubleBicat/LocalUnivalence.v @@ -420,13 +420,13 @@ Definition locally_univalent_verity_double_bicat × ver_locally_univalent B. -Coercion locally_univalent_verity_double_bicat_hor_locally_univalent +#[reversible] Coercion locally_univalent_verity_double_bicat_hor_locally_univalent {B : verity_double_bicat} (H : locally_univalent_verity_double_bicat B) : hor_locally_univalent B := pr1 H. -Coercion locally_univalent_verity_double_bicat_ver_locally_univalent +#[reversible] Coercion locally_univalent_verity_double_bicat_ver_locally_univalent {B : verity_double_bicat} (H : locally_univalent_verity_double_bicat B) : ver_locally_univalent B diff --git a/UniMath/Bicategories/DoubleCategories/DoubleBicat/VerityDoubleBicat.v b/UniMath/Bicategories/DoubleCategories/DoubleBicat/VerityDoubleBicat.v index ea69cab81e..4fff3722ef 100644 --- a/UniMath/Bicategories/DoubleCategories/DoubleBicat/VerityDoubleBicat.v +++ b/UniMath/Bicategories/DoubleCategories/DoubleBicat/VerityDoubleBicat.v @@ -160,7 +160,7 @@ Definition make_ver_sq_bicat : ver_sq_bicat := B ,, D. -Coercion ver_bicat_of_ver_sq_bicat +#[reversible] Coercion ver_bicat_of_ver_sq_bicat (B : ver_sq_bicat) : bicat := pr1 B. @@ -240,7 +240,7 @@ Definition make_ver_bicat_sq_bicat : ver_bicat_sq_bicat := B ,, I ,, J ,, H ,, K. -Coercion ver_bicat_to_ver_bicat +#[reversible] Coercion ver_bicat_to_ver_bicat (B : ver_bicat_sq_bicat) : ver_sq_bicat := pr1 B. @@ -295,7 +295,7 @@ Definition ver_bicat_sq_bicat_ver_id_comp := ∑ (B : ver_bicat_sq_bicat), ver_bicat_sq_bicat_ver_id_comp_sq B. -Coercion ver_bicat_sq_bicat_ver_id_comp_to_ver_bicat_sq_bicat +#[reversible] Coercion ver_bicat_sq_bicat_ver_id_comp_to_ver_bicat_sq_bicat (B : ver_bicat_sq_bicat_ver_id_comp) : ver_bicat_sq_bicat := pr1 B. @@ -411,7 +411,7 @@ Definition make_ver_bicat_sq_id_comp_whisker : ver_bicat_sq_id_comp_whisker := B ,, W. -Coercion ver_bicat_sq_id_comp_whisker_to_ver_bicat_sq_bicat_ver_id_comp +#[reversible] Coercion ver_bicat_sq_id_comp_whisker_to_ver_bicat_sq_bicat_ver_id_comp (B : ver_bicat_sq_id_comp_whisker) : ver_bicat_sq_bicat_ver_id_comp := pr1 B. @@ -997,7 +997,7 @@ Definition make_verity_double_bicat : verity_double_bicat := B ,, H. -Coercion verity_double_bicat_to_ver_bicat_sq_id_comp_whisker +#[reversible] Coercion verity_double_bicat_to_ver_bicat_sq_id_comp_whisker (B : verity_double_bicat) : ver_bicat_sq_id_comp_whisker := pr1 B. diff --git a/UniMath/Bicategories/Limits/CommaObjects.v b/UniMath/Bicategories/Limits/CommaObjects.v index f455d7d0e8..7642379178 100644 --- a/UniMath/Bicategories/Limits/CommaObjects.v +++ b/UniMath/Bicategories/Limits/CommaObjects.v @@ -32,7 +32,7 @@ Section CommaObject. (π₂ : p --> b₂), π₁ · f ==> π₂ · g. - Coercion comma_cone_obj + #[reversible] Coercion comma_cone_obj (p : comma_cone) : B := pr1 p. @@ -81,7 +81,7 @@ Section CommaObject. • (θ^-1 ▹ g) • rassociator _ _ _. - Coercion comma_1cell_1cell + #[reversible] Coercion comma_1cell_1cell {p q : comma_cone} (φ : comma_1cell p q) : p --> q @@ -570,7 +570,7 @@ Definition bicat_with_comma : UU := ∑ (B : bicat), has_comma B. -Coercion bicat_with_comma_to_bicat +#[reversible] Coercion bicat_with_comma_to_bicat (B : bicat_with_comma) : bicat := pr1 B. diff --git a/UniMath/Bicategories/Limits/EilenbergMooreComonad.v b/UniMath/Bicategories/Limits/EilenbergMooreComonad.v index 2127fca25d..2f3ed466a8 100644 --- a/UniMath/Bicategories/Limits/EilenbergMooreComonad.v +++ b/UniMath/Bicategories/Limits/EilenbergMooreComonad.v @@ -60,7 +60,7 @@ Section EilenbergMooreComonad. : em_comnd_cone := x ,, f ,, γ ,, fε ,, fν. - Coercion em_comnd_cone_ob (q : em_comnd_cone) : B := pr1 q. + #[reversible] Coercion em_comnd_cone_ob (q : em_comnd_cone) : B := pr1 q. Section Projections. Context (q : em_comnd_cone). @@ -111,7 +111,7 @@ Section EilenbergMooreComonad. : em_comnd_cone_mor q₁ q₂ := f ,, α ,, p ,, Hα. - Coercion mor_of_em_comnd_cone_mor + #[reversible] Coercion mor_of_em_comnd_cone_mor {q₁ q₂ : em_comnd_cone} (f : em_comnd_cone_mor q₁ q₂) : q₁ --> q₂ diff --git a/UniMath/Bicategories/Limits/EilenbergMooreObjects.v b/UniMath/Bicategories/Limits/EilenbergMooreObjects.v index 2072931bff..2289e73a92 100644 --- a/UniMath/Bicategories/Limits/EilenbergMooreObjects.v +++ b/UniMath/Bicategories/Limits/EilenbergMooreObjects.v @@ -163,7 +163,7 @@ Section EMObject. Defined. End MakeCone. - Coercion em_cone_to_ob (e : em_cone) : B := pr1 e. + #[reversible] Coercion em_cone_to_ob (e : em_cone) : B := pr1 e. Definition mor_of_em_cone (e : em_cone) : mnd_incl B e --> m := pr2 e. @@ -184,7 +184,7 @@ Section EMObject. : em_cone_mor e₁ e₂ := g ,, α. - Coercion mor_of_em_cone_mor + #[reversible] Coercion mor_of_em_cone_mor {e₁ e₂ : em_cone} (f : em_cone_mor e₁ e₂) : e₁ --> e₂ diff --git a/UniMath/Bicategories/Limits/Equifiers.v b/UniMath/Bicategories/Limits/Equifiers.v index c7049378f7..abbf514b6f 100644 --- a/UniMath/Bicategories/Limits/Equifiers.v +++ b/UniMath/Bicategories/Limits/Equifiers.v @@ -55,7 +55,7 @@ Section Equifiers. : equifier_cone := i ,, m ,, α. - Coercion equifier_cone_ob + #[reversible] Coercion equifier_cone_ob (cone : equifier_cone) : B := pr1 cone. @@ -87,7 +87,7 @@ Section Equifiers. : equifier_1cell cone₁ cone₂ := k ,, α. - Coercion equifier_1cell_mor + #[reversible] Coercion equifier_1cell_mor {cone₁ cone₂ : equifier_cone} (u : equifier_1cell cone₁ cone₂) : cone₁ --> cone₂ diff --git a/UniMath/Bicategories/Limits/Inserters.v b/UniMath/Bicategories/Limits/Inserters.v index 8d6fa5e7ef..b7f5e2533f 100644 --- a/UniMath/Bicategories/Limits/Inserters.v +++ b/UniMath/Bicategories/Limits/Inserters.v @@ -55,7 +55,7 @@ Section Inserters. : inserter_cone := i ,, m ,, α. - Coercion inserter_cone_ob + #[reversible] Coercion inserter_cone_ob (cone : inserter_cone) : B := pr1 cone. @@ -101,7 +101,7 @@ Section Inserters. : inserter_1cell cone₁ cone₂ := k ,, α ,, p. - Coercion inserter_1cell_mor + #[reversible] Coercion inserter_1cell_mor {cone₁ cone₂ : inserter_cone} (u : inserter_1cell cone₁ cone₂) : cone₁ --> cone₂ diff --git a/UniMath/Bicategories/Limits/IsoInserters.v b/UniMath/Bicategories/Limits/IsoInserters.v index 88894204c1..2fcb792f79 100644 --- a/UniMath/Bicategories/Limits/IsoInserters.v +++ b/UniMath/Bicategories/Limits/IsoInserters.v @@ -55,7 +55,7 @@ Section IsoInserters. : iso_inserter_cone := i ,, m ,, α. - Coercion iso_inserter_cone_ob + #[reversible] Coercion iso_inserter_cone_ob (cone : iso_inserter_cone) : B := pr1 cone. @@ -103,7 +103,7 @@ Section IsoInserters. : iso_inserter_1cell cone₁ cone₂ := k ,, α ,, p. - Coercion iso_inserter_1cell_mor + #[reversible] Coercion iso_inserter_1cell_mor {cone₁ cone₂ : iso_inserter_cone} (u : iso_inserter_1cell cone₁ cone₂) : cone₁ --> cone₂ diff --git a/UniMath/Bicategories/Limits/Products.v b/UniMath/Bicategories/Limits/Products.v index 90ccbcf49b..939a2806e2 100644 --- a/UniMath/Bicategories/Limits/Products.v +++ b/UniMath/Bicategories/Limits/Products.v @@ -41,7 +41,7 @@ Section Product. : UU := ∑ (p : B), p --> b₁ × p --> b₂. - Coercion binprod_cone_obj + #[reversible] Coercion binprod_cone_obj (p : binprod_cone) : B := pr1 p. @@ -76,7 +76,7 @@ Section Product. (φ · binprod_cone_pr2 q) (binprod_cone_pr2 p). - Coercion binprod_1cell_1cell + #[reversible] Coercion binprod_1cell_1cell {p q : binprod_cone} (φ : binprod_1cell p q) : p --> q @@ -704,7 +704,7 @@ Definition bicat_with_binprod : UU := ∑ (B : bicat), has_binprod B. -Coercion bicat_with_binprod_to_bicat +#[reversible] Coercion bicat_with_binprod_to_bicat (B : bicat_with_binprod) : bicat := pr1 B. diff --git a/UniMath/Bicategories/Limits/Pullbacks.v b/UniMath/Bicategories/Limits/Pullbacks.v index f075009f25..94f9d1c175 100644 --- a/UniMath/Bicategories/Limits/Pullbacks.v +++ b/UniMath/Bicategories/Limits/Pullbacks.v @@ -39,7 +39,7 @@ Section Pullback. (π₂ : p --> b₂), invertible_2cell (π₁ · f) (π₂ · g). - Coercion pb_cone_obj + #[reversible] Coercion pb_cone_obj (p : pb_cone) : B := pr1 p. @@ -90,7 +90,7 @@ Section Pullback. • (θ^-1 ▹ g) • rassociator _ _ _. - Coercion pb_1cell_1cell + #[reversible] Coercion pb_1cell_1cell {p q : pb_cone} (φ : pb_1cell p q) : p --> q @@ -194,7 +194,7 @@ Section Pullback. × ((η ▹ pb_cone_pr2 q) • pb_1cell_pr2 ψ = pb_1cell_pr2 φ). - Coercion pb_2cell_2cell + #[reversible] Coercion pb_2cell_2cell {p q : pb_cone} {φ ψ : pb_1cell p q} (η : pb_2cell φ ψ) @@ -665,7 +665,7 @@ Definition bicat_with_pb : UU := ∑ (B : bicat), has_pb B. -Coercion bicat_with_pb_to_bicat +#[reversible] Coercion bicat_with_pb_to_bicat (B : bicat_with_pb) : bicat := pr1 B. diff --git a/UniMath/Bicategories/Logic/DisplayMapBicat.v b/UniMath/Bicategories/Logic/DisplayMapBicat.v index 91abf652b9..2da008c358 100644 --- a/UniMath/Bicategories/Logic/DisplayMapBicat.v +++ b/UniMath/Bicategories/Logic/DisplayMapBicat.v @@ -630,7 +630,7 @@ Definition disp_map_bicat × closed_under_pb_ump_mor D. -Coercion disp_map_bicat_to_arrow_subbicat +#[reversible] Coercion disp_map_bicat_to_arrow_subbicat {B : bicat} (D : disp_map_bicat B) : arrow_subbicat B diff --git a/UniMath/Bicategories/Modifications/Modification.v b/UniMath/Bicategories/Modifications/Modification.v index 0e20227bbb..fe6e5445d5 100644 --- a/UniMath/Bicategories/Modifications/Modification.v +++ b/UniMath/Bicategories/Modifications/Modification.v @@ -57,7 +57,7 @@ Definition modcomponent_of : ∏ (X : B), σ X ==> τ X := pr111 m. -Coercion modcomponent_of : modification >-> Funclass. +#[reversible] Coercion modcomponent_of : modification >-> Funclass. Definition modnaturality_of {B B' : bicat} @@ -173,7 +173,7 @@ Definition invertible_modification_data : UU := ∏ (X : B), invertible_2cell (σ X) (τ X). -Coercion invertible_modification_data_to_modification_data +#[reversible] Coercion invertible_modification_data_to_modification_data {B B' : bicat} {F G : psfunctor B B'} {σ τ : pstrans F G} diff --git a/UniMath/Bicategories/Monads/DistributiveLaws.v b/UniMath/Bicategories/Monads/DistributiveLaws.v index 5dd6776f98..c68e6ee8ed 100644 --- a/UniMath/Bicategories/Monads/DistributiveLaws.v +++ b/UniMath/Bicategories/Monads/DistributiveLaws.v @@ -109,7 +109,7 @@ Section DistributiveLaw. : UU := ∑ (α : g · f ==> f · g), is_distr_law α. - Coercion cell_from_distr_law + #[reversible] Coercion cell_from_distr_law (α : distr_law) : g · f ==> f · g := pr1 α. diff --git a/UniMath/Bicategories/Monads/Examples/MonadsInOp1Bicat.v b/UniMath/Bicategories/Monads/Examples/MonadsInOp1Bicat.v index 95e1f03e10..c10816eb89 100644 --- a/UniMath/Bicategories/Monads/Examples/MonadsInOp1Bicat.v +++ b/UniMath/Bicategories/Monads/Examples/MonadsInOp1Bicat.v @@ -51,7 +51,7 @@ Section MonadOpMor. : mnd_opmor_data := f ,, α. - Coercion mor_of_mnd_opmor_data + #[reversible] Coercion mor_of_mnd_opmor_data (f : mnd_opmor_data) : ob_of_mnd m₁ --> ob_of_mnd m₂ := pr1 f. @@ -98,7 +98,7 @@ Section MonadOpMor. : mnd_opmor := f ,, Hf. - Coercion mnd_opmor_to_mnd_opmor_data + #[reversible] Coercion mnd_opmor_to_mnd_opmor_data (f : mnd_opmor) : mnd_opmor_data := pr1 f. @@ -149,7 +149,7 @@ Definition mnd_opcell : UU := ∑ (α : f₁ ==> f₂), is_mnd_opcell α. -Coercion mnd_opcell_to_cell +#[reversible] Coercion mnd_opcell_to_cell {B : bicat} {m₁ m₂ : mnd B} {f₁ f₂ : mnd_opmor m₁ m₂} diff --git a/UniMath/Bicategories/Monads/Examples/MonadsInOp2Bicat.v b/UniMath/Bicategories/Monads/Examples/MonadsInOp2Bicat.v index 3476574f25..89b305a227 100644 --- a/UniMath/Bicategories/Monads/Examples/MonadsInOp2Bicat.v +++ b/UniMath/Bicategories/Monads/Examples/MonadsInOp2Bicat.v @@ -113,7 +113,7 @@ Section Comonads. : UU := ∑ (C : comnd_data), comnd_laws C. - Coercion comnd_to_comnd_data (C : comnd) : comnd_data := pr1 C. + #[reversible] Coercion comnd_to_comnd_data (C : comnd) : comnd_data := pr1 C. Section LawsProjections. Context (C : comnd). @@ -167,7 +167,7 @@ Section ComonadMorphism. : comnd_mor_data := f ,, fe. - Coercion mor_of_comnd_mor + #[reversible] Coercion mor_of_comnd_mor (f : comnd_mor_data) : ob_of_comnd C₁ --> ob_of_comnd C₂ := pr1 f. @@ -208,7 +208,7 @@ Section ComonadMorphism. : UU := ∑ (f : comnd_mor_data), comnd_mor_laws f. - Coercion comnd_mor_to_comnd_mor_data + #[reversible] Coercion comnd_mor_to_comnd_mor_data (f : comnd_mor) : comnd_mor_data := pr1 f. @@ -265,7 +265,7 @@ Definition comnd_cell : UU := ∑ (α : f₂ ==> f₁), is_comnd_cell α. -Coercion comnd_cell_to_cell +#[reversible] Coercion comnd_cell_to_cell {B : bicat} {C₁ C₂ : comnd B} {f₁ f₂ : comnd_mor C₁ C₂} diff --git a/UniMath/Bicategories/Monads/MixedDistributiveLaws.v b/UniMath/Bicategories/Monads/MixedDistributiveLaws.v index bb9bfc55ef..f6ed3b00f2 100644 --- a/UniMath/Bicategories/Monads/MixedDistributiveLaws.v +++ b/UniMath/Bicategories/Monads/MixedDistributiveLaws.v @@ -86,7 +86,7 @@ Section MixedDistributiveLaw. : mixed_distr_law := τ ,, Hτ. - Coercion mixed_distr_law_to_cell + #[reversible] Coercion mixed_distr_law_to_cell (τ : mixed_distr_law) : e · f ==> f · e := pr1 τ. diff --git a/UniMath/Bicategories/MonoidalCategories/ActionBasedStrength.v b/UniMath/Bicategories/MonoidalCategories/ActionBasedStrength.v index 6aef104d36..e9ecb95286 100644 --- a/UniMath/Bicategories/MonoidalCategories/ActionBasedStrength.v +++ b/UniMath/Bicategories/MonoidalCategories/ActionBasedStrength.v @@ -84,7 +84,7 @@ Definition actionbased_strength_nat : UU := nat_trans actionbased_strength_dom a Definition actionbased_strength_nat_funclass (ϛ : actionbased_strength_nat): ∏ x : ob (A ⊠ Mon_V), actionbased_strength_dom x --> actionbased_strength_codom x := pr1 ϛ. -Coercion actionbased_strength_nat_funclass : actionbased_strength_nat >-> Funclass. +#[reversible] Coercion actionbased_strength_nat_funclass : actionbased_strength_nat >-> Funclass. Definition actionbased_strength_triangle_eq (ϛ : actionbased_strength_nat) := ∏ (a : A), (ϛ (a, I)) · (#F (ϱ a)) = ϱ' (F a). @@ -199,13 +199,13 @@ Qed. Definition actionbased_strength_to_nat {F : A ⟶ A'} (FF : actionbased_strength F) : actionbased_strength_nat F := pr1 FF. -Coercion actionbased_strength_to_nat : actionbased_strength >-> actionbased_strength_nat. +#[reversible] Coercion actionbased_strength_to_nat : actionbased_strength >-> actionbased_strength_nat. (* Definition actionbased_strength_to_nat_trans {F : A ⟶ A'} (FF : actionbased_strength F) : nat_trans (actionbased_strength_dom F) (actionbased_strength_codom F) := pr1 FF. -Coercion actionbased_strength_to_nat_trans : actionbased_strength >-> nat_trans. +#[reversible] Coercion actionbased_strength_to_nat_trans : actionbased_strength >-> nat_trans. *) Identity Coercion actionbased_strength_nat_to_nat_trans : actionbased_strength_nat >-> nat_trans. @@ -307,7 +307,7 @@ Definition actionbased_strong_functor {A A' : category} (actn : action Mon_V A)( := ∑ (F : A ⟶ A'), actionbased_strength actn actn' F. Definition actionbased_strong_functor_to_functor (A A' : category) (actn : action Mon_V A)(actn' : action Mon_V A') (FF : actionbased_strong_functor actn actn') : A ⟶ A' := pr1 FF. -Coercion actionbased_strong_functor_to_functor : actionbased_strong_functor >-> functor. +#[reversible] Coercion actionbased_strong_functor_to_functor : actionbased_strong_functor >-> functor. Definition ab_strong_functor_strength {A A' : category} (actn : action Mon_V A)(actn' : action Mon_V A') (FF : actionbased_strong_functor actn actn') : actionbased_strength_nat actn actn' FF @@ -362,7 +362,7 @@ Section Param_Distr. Definition parameterized_distributivity_nat_funclass (δ : parameterized_distributivity_nat): ∏ v : ob (Mon_V), param_distributivity_dom v --> param_distributivity_codom v := pr1 δ. - Coercion parameterized_distributivity_nat_funclass : parameterized_distributivity_nat >-> Funclass. + #[reversible] Coercion parameterized_distributivity_nat_funclass : parameterized_distributivity_nat >-> Funclass. Section The_Laws. @@ -545,7 +545,7 @@ End The_Laws. Definition parameterized_distributivity_to_nat (sδ : parameterized_distributivity) : parameterized_distributivity_nat := pr1 sδ. -Coercion parameterized_distributivity_to_nat : parameterized_distributivity >-> parameterized_distributivity_nat. +#[reversible] Coercion parameterized_distributivity_to_nat : parameterized_distributivity >-> parameterized_distributivity_nat. Identity Coercion parameterized_distributivity_nat_to_nat_trans : parameterized_distributivity_nat >-> nat_trans. @@ -709,7 +709,7 @@ Section Param_Distr. Definition parameterized_distributivity'_nat_funclass (δ : parameterized_distributivity'_nat): ∏ v : V, param_distributivity'_dom v --> param_distributivity'_codom v := pr1 δ. - Coercion parameterized_distributivity'_nat_funclass : parameterized_distributivity'_nat >-> Funclass. + #[reversible] Coercion parameterized_distributivity'_nat_funclass : parameterized_distributivity'_nat >-> Funclass. Section The_Laws. @@ -857,7 +857,7 @@ End The_Laws. Definition parameterized_distributivity'_to_nat (sδ : parameterized_distributivity') : parameterized_distributivity'_nat := pr1 sδ. -Coercion parameterized_distributivity'_to_nat : parameterized_distributivity' >-> parameterized_distributivity'_nat. +#[reversible] Coercion parameterized_distributivity'_to_nat : parameterized_distributivity' >-> parameterized_distributivity'_nat. Identity Coercion parameterized_distributivity'_nat_to_nat_trans : parameterized_distributivity'_nat >-> nat_trans. @@ -907,7 +907,7 @@ Section RelativeStrengths_Natural_Transformation. Definition rel_strength_nat_funclass (ϛ : rel_strength_nat): ∏ x : ob (Mon_W ⊠ Mon_V), rel_strength_dom x --> rel_strength_codom x := pr1 ϛ. - Coercion rel_strength_nat_funclass : rel_strength_nat >-> Funclass. + #[reversible] Coercion rel_strength_nat_funclass : rel_strength_nat >-> Funclass. (** the following looks like a pentagon but is of the nature of a triangle equation *) Definition rel_strength_pentagon_eq (ϛ : rel_strength_nat) := @@ -929,12 +929,12 @@ Definition rel_strength (F : Mon_V ⟶ Mon_V): UU := Definition rel_strength_to_rel_strength_nat {F : Mon_V ⟶ Mon_V} (str : rel_strength F) : rel_strength_nat F := pr1 str. -Coercion rel_strength_to_rel_strength_nat : rel_strength >-> rel_strength_nat. +#[reversible] Coercion rel_strength_to_rel_strength_nat : rel_strength >-> rel_strength_nat. (* Definition rel_strength_to_nat_trans {F : Mon_V ⟶ Mon_V} (str : rel_strength F) : nat_trans (rel_strength_dom F) (rel_strength_codom F) := pr1 str. -Coercion rel_strength_to_nat_trans : rel_strength >-> nat_trans. *) +#[reversible] Coercion rel_strength_to_nat_trans : rel_strength >-> nat_trans. *) Identity Coercion rel_strength_nat_to_nat_trans : rel_strength_nat >-> nat_trans. diff --git a/UniMath/Bicategories/MonoidalCategories/ActionBasedStrongFunctorCategory.v b/UniMath/Bicategories/MonoidalCategories/ActionBasedStrongFunctorCategory.v index 25bcce6125..239f2a5e88 100644 --- a/UniMath/Bicategories/MonoidalCategories/ActionBasedStrongFunctorCategory.v +++ b/UniMath/Bicategories/MonoidalCategories/ActionBasedStrongFunctorCategory.v @@ -125,7 +125,7 @@ Section AsDisplayedCategory. intro sη. exact (pr1 sη). Defined. - Coercion Strong_Functor_Category_Mor_to_nat_trans : Strong_Functor_Category_Mor >-> nat_trans. + #[reversible] Coercion Strong_Functor_Category_Mor_to_nat_trans : Strong_Functor_Category_Mor >-> nat_trans. Lemma Strong_Functor_Category_Mor_eq (FF GG : actionbased_strong_functor Mon_V actn actn') (sη sη' : Strong_Functor_Category_Mor FF GG) : diff --git a/UniMath/Bicategories/MonoidalCategories/ActionBasedStrongFunctorsMonoidal.v b/UniMath/Bicategories/MonoidalCategories/ActionBasedStrongFunctorsMonoidal.v index 2df1b5c5bd..3c52c4ac54 100644 --- a/UniMath/Bicategories/MonoidalCategories/ActionBasedStrongFunctorsMonoidal.v +++ b/UniMath/Bicategories/MonoidalCategories/ActionBasedStrongFunctorsMonoidal.v @@ -1953,7 +1953,7 @@ Section Main. Definition parameterized_distributivity_bicat_nat : UU := H ⟹ H'. Definition parameterized_distributivity_bicat_nat_funclass (δ : parameterized_distributivity_bicat_nat): ∏ v : ob (Mon_V), H v --> H' v := pr1 δ. - Coercion parameterized_distributivity_bicat_nat_funclass : parameterized_distributivity_bicat_nat >-> Funclass. + #[reversible] Coercion parameterized_distributivity_bicat_nat_funclass : parameterized_distributivity_bicat_nat >-> Funclass. Context (δ: parameterized_distributivity_bicat_nat). diff --git a/UniMath/Bicategories/MonoidalCategories/ActionBasedStrongFunctorsWhiskeredMonoidal.v b/UniMath/Bicategories/MonoidalCategories/ActionBasedStrongFunctorsWhiskeredMonoidal.v index fa53f0eb8a..2979b1928d 100644 --- a/UniMath/Bicategories/MonoidalCategories/ActionBasedStrongFunctorsWhiskeredMonoidal.v +++ b/UniMath/Bicategories/MonoidalCategories/ActionBasedStrongFunctorsWhiskeredMonoidal.v @@ -1518,7 +1518,7 @@ Section Main. Definition parameterized_distributivity_bicat_nat : UU := H ⟹ H'. Definition parameterized_distributivity_bicat_nat_funclass (δ : parameterized_distributivity_bicat_nat): ∏ v : V, H v --> H' v := pr1 δ. - Coercion parameterized_distributivity_bicat_nat_funclass : parameterized_distributivity_bicat_nat >-> Funclass. + #[reversible] Coercion parameterized_distributivity_bicat_nat_funclass : parameterized_distributivity_bicat_nat >-> Funclass. Definition param_distr_bicat_triangle_eq_variant0 (δ : parameterized_distributivity_bicat_nat): UU := δ I_{Mon_V} = param_distr_bicat_triangle_eq_variant0_RHS. diff --git a/UniMath/Bicategories/MonoidalCategories/Actions.v b/UniMath/Bicategories/MonoidalCategories/Actions.v index 595881d4b4..7f272ec326 100644 --- a/UniMath/Bicategories/MonoidalCategories/Actions.v +++ b/UniMath/Bicategories/MonoidalCategories/Actions.v @@ -67,11 +67,11 @@ Definition action_right_unitor : UU := nat_z_iso odot_I_functor (functor_identit Definition action_right_unitor_funclass (μ : action_right_unitor): ∏ x : ob A, odot_I_functor x --> x := pr1 (nat_z_iso_to_trans μ). -Coercion action_right_unitor_funclass : action_right_unitor >-> Funclass. +#[reversible] Coercion action_right_unitor_funclass : action_right_unitor >-> Funclass. Definition action_right_unitor_to_nat_trans (μ : action_right_unitor) : nat_trans odot_I_functor (functor_identity A) := nat_z_iso_to_trans μ. -Coercion action_right_unitor_to_nat_trans: action_right_unitor >-> nat_trans. +#[reversible] Coercion action_right_unitor_to_nat_trans: action_right_unitor >-> nat_trans. Definition odot_x_odot_y_functor : (A ⊠ Mon_V) ⊠ Mon_V ⟶ A := functor_composite (pair_functor odot (functor_identity _)) odot. @@ -97,12 +97,12 @@ Definition action_convertor : UU := nat_z_iso odot_x_odot_y_functor odot_x_otime Definition action_convertor_funclass (χ : action_convertor): ∏ x : ob ((A ⊠ Mon_V) ⊠ Mon_V), odot_x_odot_y_functor x --> odot_x_otimes_y_functor x := pr1 (nat_z_iso_to_trans χ). -Coercion action_convertor_funclass : action_convertor >-> Funclass. +#[reversible] Coercion action_convertor_funclass : action_convertor >-> Funclass. Definition action_convertor_to_nat_trans (χ : action_convertor) : nat_trans odot_x_odot_y_functor odot_x_otimes_y_functor := nat_z_iso_to_trans χ. -Coercion action_convertor_to_nat_trans: action_convertor >-> nat_trans. +#[reversible] Coercion action_convertor_to_nat_trans: action_convertor >-> nat_trans. Definition action_triangle_eq (ϱ : action_right_unitor) (χ : action_convertor) := ∏ (a : A), ∏ (v : Mon_V), (ϱ a) #⊙ (id v) = (χ ((a, I), v)) · (id a) #⊙ (λ' v). diff --git a/UniMath/Bicategories/MonoidalCategories/UnivalenceMonCat/CurriedMonoidalCategories.v b/UniMath/Bicategories/MonoidalCategories/UnivalenceMonCat/CurriedMonoidalCategories.v index 10ed1b0dfd..57a62284bb 100644 --- a/UniMath/Bicategories/MonoidalCategories/UnivalenceMonCat/CurriedMonoidalCategories.v +++ b/UniMath/Bicategories/MonoidalCategories/UnivalenceMonCat/CurriedMonoidalCategories.v @@ -37,7 +37,7 @@ Section Tensor. ∑ T : tensor_data C, tensor_ax T. Definition tensor_to_data {C : category} (T : tensor C) : tensor_data C := pr1 T. - Coercion tensor_to_data : tensor >-> tensor_data. + #[reversible] Coercion tensor_to_data : tensor >-> tensor_data. Definition tensor_to_ax {C : category} (T : tensor C) : tensor_ax T := pr2 T. @@ -59,7 +59,7 @@ Section Tensor. Definition preservestensor_into_preservestensordata {C D : category} {TC : tensor C} {TD : tensor D} {F : functor C D} (pt : preserves_tensor TC TD F) : preserves_tensor_data TC TD F := pr1 pt. - Coercion preservestensor_into_preservestensordata : preserves_tensor >-> preserves_tensor_data. + #[reversible] Coercion preservestensor_into_preservestensordata : preserves_tensor >-> preserves_tensor_data. Lemma identityfunctor_preserves_tensor_data {C : category} (T : tensor C) : preserves_tensor_data T T (functor_identity C). @@ -232,11 +232,11 @@ Section TensorUnit. Definition tensor_unit_to_tensor {C : category} (tu : tensor_unit C) : tensor C := pr1 tu. - Coercion tensor_unit_to_tensor : tensor_unit >-> tensor. + #[reversible] Coercion tensor_unit_to_tensor : tensor_unit >-> tensor. Definition tensor_unit_to_unit {C : category} (tu : tensor_unit C) : ob C := pr2 tu. - Coercion tensor_unit_to_unit : tensor_unit >-> ob. + #[reversible] Coercion tensor_unit_to_unit : tensor_unit >-> ob. Definition functor_tensor_unit {C D : category} (tuC : tensor_unit C) (tuD : tensor_unit D) @@ -250,7 +250,7 @@ Section TensorUnit. {F : functor C D} (ptu : functor_tensor_unit tuC tuD F) : preserves_tensor tuC tuD F := pr1 ptu. - Coercion functor_tensor_unit_to_preserves_tensor : functor_tensor_unit >-> preserves_tensor. + #[reversible] Coercion functor_tensor_unit_to_preserves_tensor : functor_tensor_unit >-> preserves_tensor. Definition functor_tensor_unit_to_preserves_unit {C D : category} @@ -258,7 +258,7 @@ Section TensorUnit. {F : functor C D} (ptu : functor_tensor_unit tuC tuD F) : preserves_unit tuC tuD F := pr2 ptu. - Coercion functor_tensor_unit_to_preserves_unit : functor_tensor_unit >-> preserves_unit. + #[reversible] Coercion functor_tensor_unit_to_preserves_unit : functor_tensor_unit >-> preserves_unit. Definition identity_functor_tensor_unit {C : category} (tu : tensor_unit C) @@ -777,17 +777,17 @@ Section UnitorsAssociator. Definition unitors_associator_to_lunitor {C : category} {tu : tensor_unit C} (ua : unitors_associator tu) : lunitor tu := pr1 ua. - (* Coercion unitors_associator_to_lunitor : unitors_associator >-> lunitor. *) + (* #[reversible] Coercion unitors_associator_to_lunitor : unitors_associator >-> lunitor. *) Definition unitors_associator_to_runitor {C : category} {tu : tensor_unit C} (ua : unitors_associator tu) : runitor tu := pr12 ua. - (* Coercion unitors_associator_to_runitor : unitors_associator >-> runitor. *) + (* #[reversible] Coercion unitors_associator_to_runitor : unitors_associator >-> runitor. *) Definition unitors_associator_to_associator {C : category} {tu : tensor_unit C} (ua : unitors_associator tu) : associator tu := pr22 ua. - (* Coercion unitors_associator_to_associator : unitors_associator >-> associator. *) + (* #[reversible] Coercion unitors_associator_to_associator : unitors_associator >-> associator. *) Definition functor_unitors_associator {C D : category} {tuC : tensor_unit C} {tuD : tensor_unit D} @@ -813,7 +813,7 @@ Section UnitorsAssociator. (puaF : functor_unitors_associator uaC uaD ptuF) : preserves_lunitor ptuF (pr1 uaC) (pr1 uaD) := pr1 puaF. (* : preserves_lunitor ptuF (pr1 uaC) uaD := pr1 puaF. *) - Coercion functor_unitors_associator_to_preserves_lunitor + #[reversible] Coercion functor_unitors_associator_to_preserves_lunitor : functor_unitors_associator >-> preserves_lunitor. Definition functor_unitors_associator_to_preserves_runitor @@ -825,7 +825,7 @@ Section UnitorsAssociator. {ptuF : functor_tensor_unit tuC tuD F} (puaF : functor_unitors_associator uaC uaD ptuF) : preserves_runitor ptuF (pr12 uaC) (pr12 uaD) := pr12 puaF. - Coercion functor_unitors_associator_to_preserves_runitor + #[reversible] Coercion functor_unitors_associator_to_preserves_runitor : functor_unitors_associator >-> preserves_runitor. Definition functor_unitors_associator_to_preserves_associator @@ -837,7 +837,7 @@ Section UnitorsAssociator. {ptuF : functor_tensor_unit tuC tuD F} (puaF : functor_unitors_associator uaC uaD ptuF) : preserves_associator ptuF (pr22 uaC) (pr22 uaD) := pr22 puaF. - Coercion functor_unitors_associator_to_preserves_associator + #[reversible] Coercion functor_unitors_associator_to_preserves_associator : functor_unitors_associator >-> preserves_associator. Definition identity_functor_unitors_associator {C : category} @@ -1058,14 +1058,14 @@ Section MonoidalSigmaStructure. Definition tensor_unit_unitors_associator_to_tensor_unit {C : category} (tuua : tensor_unit_unitors_associator C) : tensor_unit C := pr1 tuua. - Coercion tensor_unit_unitors_associator_to_tensor_unit + #[reversible] Coercion tensor_unit_unitors_associator_to_tensor_unit : tensor_unit_unitors_associator >-> tensor_unit. Definition tensor_unit_unitors_associator_to_unitors_associator {C : category} (tuua : tensor_unit_unitors_associator C) : unitors_associator (tensor_unit_unitors_associator_to_tensor_unit tuua) := pr2 tuua. - Coercion tensor_unit_unitors_associator_to_unitors_associator + #[reversible] Coercion tensor_unit_unitors_associator_to_unitors_associator : tensor_unit_unitors_associator >-> unitors_associator. Definition mon_structure (C : category) : UU @@ -1074,7 +1074,7 @@ Section MonoidalSigmaStructure. Definition mon_structure_to_tensor_unit_unitors_associator {C : category} (lm : mon_structure C) : tensor_unit_unitors_associator C := pr1 lm. - Coercion mon_structure_to_tensor_unit_unitors_associator + #[reversible] Coercion mon_structure_to_tensor_unit_unitors_associator : mon_structure >-> tensor_unit_unitors_associator. Definition mon_structure_triangle_pentagon {C : category} (lm : mon_structure C) @@ -1097,7 +1097,7 @@ Section MonoidalFunctorSigmaStructure. {tuuaD : tensor_unit_unitors_associator D} (ftuua : functor_tensor_unit_unitors_associator F tuuaC tuuaD) : functor_tensor_unit tuuaC tuuaD F := pr1 ftuua. - Coercion functor_tensor_unit_unitors_associator_to_tensor_unit + #[reversible] Coercion functor_tensor_unit_unitors_associator_to_tensor_unit : functor_tensor_unit_unitors_associator >-> functor_tensor_unit. Definition functor_tensor_unit_unitors_associator_to_unitors_associator @@ -1107,7 +1107,7 @@ Section MonoidalFunctorSigmaStructure. (ftuua : functor_tensor_unit_unitors_associator F tuuaC tuuaD) : functor_unitors_associator tuuaC tuuaD (functor_tensor_unit_unitors_associator_to_tensor_unit ftuua) := pr2 ftuua. - Coercion functor_tensor_unit_unitors_associator_to_unitors_associator + #[reversible] Coercion functor_tensor_unit_unitors_associator_to_unitors_associator : functor_tensor_unit_unitors_associator >-> functor_unitors_associator. Definition functor_lax_monoidal diff --git a/UniMath/Bicategories/Morphisms/Adjunctions.v b/UniMath/Bicategories/Morphisms/Adjunctions.v index 6166df3d03..571cb894b1 100644 --- a/UniMath/Bicategories/Morphisms/Adjunctions.v +++ b/UniMath/Bicategories/Morphisms/Adjunctions.v @@ -65,14 +65,14 @@ Section Internal_Adjunction. : UU := ∑ (αd : left_adjoint_data f), left_adjoint_axioms αd. - Coercion data_of_left_adjoint + #[reversible] Coercion data_of_left_adjoint {a b : B} {f : a --> b} (α : left_adjoint f) : left_adjoint_data f := pr1 α. - Coercion axioms_of_left_adjoint + #[reversible] Coercion axioms_of_left_adjoint {a b : B} {f : a --> b} (α : left_adjoint f) @@ -128,14 +128,14 @@ Section Internal_Adjunction. : UU := ∑ (αd : internal_right_adj_data g), internal_right_adj_axioms αd. - Coercion data_of_internal_right_adj + #[reversible] Coercion data_of_internal_right_adj {a b : B} {g : b --> a} (α : internal_right_adj g) : internal_right_adj_data g := pr1 α. - Coercion axioms_of_internal_right_adj + #[reversible] Coercion axioms_of_internal_right_adj {a b : B} {g : b --> a} (α : internal_right_adj g) @@ -159,14 +159,14 @@ Section Internal_Adjunction. := ∑ (αd : left_adjoint_data f), left_equivalence_axioms αd. - Coercion data_of_left_equivalence + #[reversible] Coercion data_of_left_equivalence {a b : B} {f : a --> b} (αe : left_equivalence f) : left_adjoint_data f := pr1 αe. - Coercion axioms_of_left_equivalence + #[reversible] Coercion axioms_of_left_equivalence {a b : B} {f : a --> b} (αe : left_equivalence f) @@ -183,14 +183,14 @@ Section Internal_Adjunction. left_equivalence_axioms αd. (* the coercion to the axioms will be induced *) - Coercion left_adjoint_of_left_adjoint_equivalence + #[reversible] Coercion left_adjoint_of_left_adjoint_equivalence {a b : B} {f : a --> b} (αe : left_adjoint_equivalence f) : left_adjoint f := (pr1 αe,, pr12 αe). - Coercion left_equivalence_of_left_adjoint_equivalence + #[reversible] Coercion left_equivalence_of_left_adjoint_equivalence {a b : B} {f : a --> b} (αe : left_adjoint_equivalence f) @@ -221,13 +221,13 @@ Section Internal_Adjunction. Definition adjunction (a b : B) : UU := ∑ (f : a --> b), left_adjoint f. - Coercion arrow_of_adjunction + #[reversible] Coercion arrow_of_adjunction {a b : B} (f : adjunction a b) : a --> b := pr1 f. - Coercion left_adjoint_of_adjunction + #[reversible] Coercion left_adjoint_of_adjunction {a b : B} (f : adjunction a b) : left_adjoint f @@ -238,13 +238,13 @@ Section Internal_Adjunction. : UU := ∑ (f : a --> b), left_adjoint_equivalence f. - Coercion adjunction_of_adjoint_equivalence + #[reversible] Coercion adjunction_of_adjoint_equivalence {a b : B} (f : adjoint_equivalence a b) : adjunction a b := (pr1 f,,left_adjoint_of_left_adjoint_equivalence (pr2 f)). - Coercion left_adjoint_equivalence_of_adjoint_equivalence + #[reversible] Coercion left_adjoint_equivalence_of_adjoint_equivalence {a b : B} (f : adjoint_equivalence a b) : left_adjoint_equivalence f diff --git a/UniMath/Bicategories/Morphisms/ExtensionsAndLiftings.v b/UniMath/Bicategories/Morphisms/ExtensionsAndLiftings.v index 117f182dc7..5b4b82a593 100644 --- a/UniMath/Bicategories/Morphisms/ExtensionsAndLiftings.v +++ b/UniMath/Bicategories/Morphisms/ExtensionsAndLiftings.v @@ -121,7 +121,7 @@ Section LeftExtension. (τ : f ==> g · h), is_left_extension τ. - Coercion mor_of_left_extension + #[reversible] Coercion mor_of_left_extension (h : left_extension) : y --> z := pr1 h. @@ -131,7 +131,7 @@ Section LeftExtension. : f ==> g · h := pr12 h. - Coercion left_extension_is_left_extension + #[reversible] Coercion left_extension_is_left_extension (h : left_extension) : is_left_extension (cell_of_left_extension h) := pr22 h. @@ -263,7 +263,7 @@ Section LeftLifting. (τ : f ==> h · g), is_left_lifting τ. - Coercion mor_of_left_lifting + #[reversible] Coercion mor_of_left_lifting (h : left_lifting) : z --> y := pr1 h. @@ -273,7 +273,7 @@ Section LeftLifting. : f ==> h · g := pr12 h. - Coercion left_lifting_is_left_lifting + #[reversible] Coercion left_lifting_is_left_lifting (h : left_lifting) : is_left_lifting (cell_of_left_lifting h) := pr22 h. @@ -453,7 +453,7 @@ Section RightExtension. (τ : g · h ==> f), is_right_extension τ. - Coercion mor_of_right_extension + #[reversible] Coercion mor_of_right_extension (h : right_extension) : y --> z := pr1 h. @@ -463,7 +463,7 @@ Section RightExtension. : g · h ==> f := pr12 h. - Coercion right_extension_is_right_extension + #[reversible] Coercion right_extension_is_right_extension (h : right_extension) : is_right_extension (cell_of_right_extension h) := pr22 h. @@ -643,7 +643,7 @@ Section RightLifting. (τ : h · g ==> f), is_right_lifting τ. - Coercion mor_of_right_lifting + #[reversible] Coercion mor_of_right_lifting (h : right_lifting) : z --> y := pr1 h. @@ -653,7 +653,7 @@ Section RightLifting. : h · g ==> f := pr12 h. - Coercion right_lifting_is_left_lifting + #[reversible] Coercion right_lifting_is_left_lifting (h : right_lifting) : is_right_lifting (cell_of_right_lifting h) := pr22 h. diff --git a/UniMath/Bicategories/Morphisms/InternalStreetFibration.v b/UniMath/Bicategories/Morphisms/InternalStreetFibration.v index ad91c123fd..49a2e15025 100644 --- a/UniMath/Bicategories/Morphisms/InternalStreetFibration.v +++ b/UniMath/Bicategories/Morphisms/InternalStreetFibration.v @@ -195,7 +195,7 @@ Section InternalStreetFibration. : UU := internal_sfib_cleaving × lwhisker_is_cartesian. - Coercion internal_sfib_to_cleaving + #[reversible] Coercion internal_sfib_to_cleaving (H : internal_sfib) : internal_sfib_cleaving := pr1 H. @@ -1084,7 +1084,7 @@ Definition make_mor_of_internal_sfib_over : mor_of_internal_sfib_over p₁ p₂ fb := (fe ,, fc ,, f_com). -Coercion mor_of_internal_sfib_over_to_mor +#[reversible] Coercion mor_of_internal_sfib_over_to_mor {B : bicat} {e₁ b₁ : B} {p₁ : e₁ --> b₁} @@ -1204,7 +1204,7 @@ Definition make_cell_of_internal_sfib_over : cell_of_internal_sfib_over γ fe ge := (γe ,, p). -Coercion cell_of_cell_of_internal_sfib_over +#[reversible] Coercion cell_of_cell_of_internal_sfib_over {B : bicat} {b₁ b₂ e₁ e₂ : B} {fb gb : b₁ --> b₂} diff --git a/UniMath/Bicategories/Morphisms/InternalStreetOpFibration.v b/UniMath/Bicategories/Morphisms/InternalStreetOpFibration.v index f3478a4ecb..82d2390b94 100644 --- a/UniMath/Bicategories/Morphisms/InternalStreetOpFibration.v +++ b/UniMath/Bicategories/Morphisms/InternalStreetOpFibration.v @@ -194,7 +194,7 @@ Section InternalStreetOpFibration. : UU := internal_sopfib_opcleaving × lwhisker_is_opcartesian. - Coercion internal_sopfib_to_opcleaving + #[reversible] Coercion internal_sopfib_to_opcleaving (H : internal_sopfib) : internal_sopfib_opcleaving := pr1 H. @@ -800,7 +800,7 @@ Definition make_mor_of_internal_sopfib_over : mor_of_internal_sopfib_over p₁ p₂ fb := (fe ,, fc ,, f_com). -Coercion mor_of_internal_sopfib_over_to_mor +#[reversible] Coercion mor_of_internal_sopfib_over_to_mor {B : bicat} {e₁ b₁ : B} {p₁ : e₁ --> b₁} @@ -920,7 +920,7 @@ Definition make_cell_of_internal_sopfib_over : cell_of_internal_sopfib_over γ fe ge := (γe ,, p). -Coercion cell_of_cell_of_internal_sopfib_over +#[reversible] Coercion cell_of_cell_of_internal_sopfib_over {B : bicat} {b₁ b₂ e₁ e₂ : B} {fb gb : b₁ --> b₂} diff --git a/UniMath/Bicategories/OrthogonalFactorization/FactorizationSystem.v b/UniMath/Bicategories/OrthogonalFactorization/FactorizationSystem.v index adfc17e4e6..ca99a1ccce 100644 --- a/UniMath/Bicategories/OrthogonalFactorization/FactorizationSystem.v +++ b/UniMath/Bicategories/OrthogonalFactorization/FactorizationSystem.v @@ -105,7 +105,7 @@ Definition make_factorization_1cell : factorization_1cell L R f := a ,, l ,, r ,, Ll ,, Rr ,, τ. -Coercion factorization_1cell_ob +#[reversible] Coercion factorization_1cell_ob {B : bicat} {L R : ∏ (x y : B), x --> y → hProp} {x y : B} diff --git a/UniMath/Bicategories/OtherStructure/ClassifyingDiscreteOpfib.v b/UniMath/Bicategories/OtherStructure/ClassifyingDiscreteOpfib.v index 48d0fca5b0..a18fb2a770 100644 --- a/UniMath/Bicategories/OtherStructure/ClassifyingDiscreteOpfib.v +++ b/UniMath/Bicategories/OtherStructure/ClassifyingDiscreteOpfib.v @@ -64,7 +64,7 @@ Section ClassifyingDiscreteOpfibration. : B := pr1 pf. - Coercion mor_of_disc_sopfib_of + #[reversible] Coercion mor_of_disc_sopfib_of {x : B} {f : x --> s} (pf : disc_sopfib_of f) diff --git a/UniMath/Bicategories/OtherStructure/DualityInvolution.v b/UniMath/Bicategories/OtherStructure/DualityInvolution.v index 5b52acd664..4596324e48 100644 --- a/UniMath/Bicategories/OtherStructure/DualityInvolution.v +++ b/UniMath/Bicategories/OtherStructure/DualityInvolution.v @@ -560,7 +560,7 @@ Definition duality_involution := ∑ (d : duality_involution_data L), duality_involution_laws d. -Coercion duality_involution_to_data +#[reversible] Coercion duality_involution_to_data {B : bicat} {L : psfunctor (op2_bicat B) B} (d : duality_involution L) diff --git a/UniMath/Bicategories/PseudoFunctors/Biadjunction.v b/UniMath/Bicategories/PseudoFunctors/Biadjunction.v index 80e6d16ccc..ce5f0a1bf6 100644 --- a/UniMath/Bicategories/PseudoFunctors/Biadjunction.v +++ b/UniMath/Bicategories/PseudoFunctors/Biadjunction.v @@ -73,7 +73,7 @@ Section BiadjunctionProjections. := pr22 R. End BiadjunctionProjections. -Coercion biadj_right_adjoint : left_biadj_unit_counit >-> psfunctor. +#[reversible] Coercion biadj_right_adjoint : left_biadj_unit_counit >-> psfunctor. Section BiadjunctionTriangleLaws. Context {B₁ B₂ : bicat} @@ -151,7 +151,7 @@ Section BiadjunctionDataProjections. := pr22 R. End BiadjunctionDataProjections. -Coercion left_biadj_data_to_left_biadj_unit_counit +#[reversible] Coercion left_biadj_data_to_left_biadj_unit_counit : left_biadj_data >-> left_biadj_unit_counit. Definition make_biadj_unit_counit diff --git a/UniMath/Bicategories/PseudoFunctors/Biequivalence.v b/UniMath/Bicategories/PseudoFunctors/Biequivalence.v index cac61f96f5..b15d73d0f8 100644 --- a/UniMath/Bicategories/PseudoFunctors/Biequivalence.v +++ b/UniMath/Bicategories/PseudoFunctors/Biequivalence.v @@ -162,14 +162,14 @@ Definition inv_psfunctor_of_is_biequivalence : psfunctor D C := pr1 e. -Coercion unit_counit_from_is_biequivalence +#[reversible] Coercion unit_counit_from_is_biequivalence {C D : bicat} {F : psfunctor C D} (e : is_biequivalence F) : is_biequivalence_unit_counit F (inv_psfunctor_of_is_biequivalence e) := pr12 e. -Coercion adjoints_from_is_biequivalence +#[reversible] Coercion adjoints_from_is_biequivalence {C D : bicat} {F : psfunctor C D} (e : is_biequivalence F) : is_biequivalence_adjoints e @@ -178,12 +178,12 @@ Coercion adjoints_from_is_biequivalence Definition biequivalence (C D : bicat) : UU := ∑ F : psfunctor C D, is_biequivalence F. -Coercion psfunctor_of_biequivalence {C D : bicat} +#[reversible] Coercion psfunctor_of_biequivalence {C D : bicat} (e : biequivalence C D) : psfunctor C D := pr1 e. -Coercion is_biequivalence_of_biequivalence {C D : bicat} (e : biequivalence C D) +#[reversible] Coercion is_biequivalence_of_biequivalence {C D : bicat} (e : biequivalence C D) : is_biequivalence (psfunctor_of_biequivalence e) := pr2 e. diff --git a/UniMath/Bicategories/PseudoFunctors/Display/PseudoFunctorBicat.v b/UniMath/Bicategories/PseudoFunctors/Display/PseudoFunctorBicat.v index 4a72f5887e..2e24fdc903 100644 --- a/UniMath/Bicategories/PseudoFunctors/Display/PseudoFunctorBicat.v +++ b/UniMath/Bicategories/PseudoFunctors/Display/PseudoFunctorBicat.v @@ -81,7 +81,7 @@ Section PseudoFunctorData. End PseudoFunctorData. -Coercion functor_data_from_bifunctor_ob_mor_cell +#[reversible] Coercion functor_data_from_bifunctor_ob_mor_cell {C D : bicat} (F: psfunctor_data C D) : functor_data C D diff --git a/UniMath/Bicategories/PseudoFunctors/Display/StrictPseudoFunctorBicat.v b/UniMath/Bicategories/PseudoFunctors/Display/StrictPseudoFunctorBicat.v index 5d50724b07..a86ff038e1 100644 --- a/UniMath/Bicategories/PseudoFunctors/Display/StrictPseudoFunctorBicat.v +++ b/UniMath/Bicategories/PseudoFunctors/Display/StrictPseudoFunctorBicat.v @@ -80,7 +80,7 @@ Section StrictPseudoFunctorData. Defined. End StrictPseudoFunctorData. -Coercion functor_data_from_bifunctor_ob_mor_cell +#[reversible] Coercion functor_data_from_bifunctor_ob_mor_cell {C D : bicat} (F: strict_psfunctor_data C D) : functor_data C D diff --git a/UniMath/Bicategories/PseudoFunctors/PseudoFunctor.v b/UniMath/Bicategories/PseudoFunctors/PseudoFunctor.v index 75a93c93b7..caba2c05a0 100644 --- a/UniMath/Bicategories/PseudoFunctors/PseudoFunctor.v +++ b/UniMath/Bicategories/PseudoFunctors/PseudoFunctor.v @@ -66,7 +66,7 @@ Definition make_psfunctor : psfunctor C D := (F ,, (HF ,, Fcells)). -Coercion psfunctor_to_psfunctor_data +#[reversible] Coercion psfunctor_to_psfunctor_data {C D : bicat} (F : psfunctor C D) : psfunctor_data C D diff --git a/UniMath/Bicategories/PseudoFunctors/StrictPseudoFunctor.v b/UniMath/Bicategories/PseudoFunctors/StrictPseudoFunctor.v index eb78c040f6..ae7a53f881 100644 --- a/UniMath/Bicategories/PseudoFunctors/StrictPseudoFunctor.v +++ b/UniMath/Bicategories/PseudoFunctors/StrictPseudoFunctor.v @@ -56,7 +56,7 @@ Definition make_strict_psfunctor : strict_psfunctor C D := (F ,, HF). -Coercion strict_psfunctor_to_strict_psfunctor_data +#[reversible] Coercion strict_psfunctor_to_strict_psfunctor_data {C D : bicat} (F : strict_psfunctor C D) : strict_psfunctor_data C D diff --git a/UniMath/Bicategories/Transformations/Examples/PseudoTransformationIntoCat.v b/UniMath/Bicategories/Transformations/Examples/PseudoTransformationIntoCat.v index 20682a873b..5e6bc6a74f 100644 --- a/UniMath/Bicategories/Transformations/Examples/PseudoTransformationIntoCat.v +++ b/UniMath/Bicategories/Transformations/Examples/PseudoTransformationIntoCat.v @@ -149,7 +149,7 @@ Definition pstrans_from_cat_into_cat_data_to_ob : F x --> G x := pr1 τ x. -Coercion pstrans_from_cat_into_cat_data_to_ob : pstrans_from_cat_into_cat_data >-> Funclass. +#[reversible] Coercion pstrans_from_cat_into_cat_data_to_ob : pstrans_from_cat_into_cat_data >-> Funclass. Definition pstrans_from_cat_into_cat_data_nat {C : category} diff --git a/UniMath/Bicategories/Transformations/PseudoTransformation.v b/UniMath/Bicategories/Transformations/PseudoTransformation.v index 00c9def9d0..1161500697 100644 --- a/UniMath/Bicategories/Transformations/PseudoTransformation.v +++ b/UniMath/Bicategories/Transformations/PseudoTransformation.v @@ -54,7 +54,7 @@ Definition pscomponent_of : ∏ (X : C), F X --> G X := pr111 η. -Coercion pscomponent_of : pstrans >-> Funclass. +#[reversible] Coercion pscomponent_of : pstrans >-> Funclass. Definition psnaturality_of {C D : bicat} diff --git a/UniMath/Bicategories/WkCatEnrichment/hcomp_bicat.v b/UniMath/Bicategories/WkCatEnrichment/hcomp_bicat.v index d16ad6129e..e46d654d61 100644 --- a/UniMath/Bicategories/WkCatEnrichment/hcomp_bicat.v +++ b/UniMath/Bicategories/WkCatEnrichment/hcomp_bicat.v @@ -43,7 +43,7 @@ Definition hcomp_bicat_data → cell _ _ g₁ g₂ → cell _ _ (comp1 _ _ _ f₁ g₁) (comp1 _ _ _ f₂ g₂)). -Coercion hcomp_bicat_ob +#[reversible] Coercion hcomp_bicat_ob (B : hcomp_bicat_data) : UU := pr1 B. @@ -300,7 +300,7 @@ Definition hcomp_bicat : UU := ∑ (B : hcomp_bicat_data), hcomp_bicat_laws B. -Coercion hcomp_bicat_to_data +#[reversible] Coercion hcomp_bicat_to_data (B : hcomp_bicat) : hcomp_bicat_data := pr1 B. diff --git a/UniMath/Bicategories/WkCatEnrichment/prebicategory.v b/UniMath/Bicategories/WkCatEnrichment/prebicategory.v index ee53d95cef..0228b9127d 100644 --- a/UniMath/Bicategories/WkCatEnrichment/prebicategory.v +++ b/UniMath/Bicategories/WkCatEnrichment/prebicategory.v @@ -54,7 +54,7 @@ Local Notation "C 'c×' D" := (category_binproduct C D) Definition prebicategory_ob_hom : UU := ∑ C : UU, ∏ a b : C, category. -Coercion bicat_ob (C : prebicategory_ob_hom) : UU := pr1 C. +#[reversible] Coercion bicat_ob (C : prebicategory_ob_hom) : UU := pr1 C. Definition homcat {C : prebicategory_ob_hom} (a b : C) : category := pr2 C a b. @@ -71,7 +71,7 @@ Definition prebicategory_id_comp := (∏ a : C, a -1-> a) × (∏ a b c : C, ((a -1-> b) c× (b -1-> c)) ⟶ (a -1-> c)). -Coercion prebicategory_ob_hom_from_prebicategory_id_comp (C : prebicategory_id_comp) : +#[reversible] Coercion prebicategory_ob_hom_from_prebicategory_id_comp (C : prebicategory_id_comp) : prebicategory_ob_hom := pr1 C. Definition identity1 {C : prebicategory_id_comp} (a : C) : a -1-> a := pr1 (pr2 C) a. @@ -143,7 +143,7 @@ Definition prebicategory_data : UU := × (∏ a b : C, left_unitor_trans_type a b) × (∏ a b : C, right_unitor_trans_type a b). (* Right *) -Coercion prebicategory_id_comp_from_prebicategory_data (C : prebicategory_data) +#[reversible] Coercion prebicategory_id_comp_from_prebicategory_data (C : prebicategory_data) : prebicategory_id_comp := pr1 C. @@ -230,7 +230,7 @@ Definition is_prebicategory (C : prebicategory_data) : UU Definition prebicategory : UU := total2 is_prebicategory. -Coercion prebicategory_data_from_prebicategory (C : prebicategory) : prebicategory_data +#[reversible] Coercion prebicategory_data_from_prebicategory (C : prebicategory) : prebicategory_data := pr1 C. Definition has_homcats (C : prebicategory) : UU diff --git a/UniMath/CategoryTheory/Abelian.v b/UniMath/CategoryTheory/Abelian.v index 1986964a8d..7bcff839c6 100644 --- a/UniMath/CategoryTheory/Abelian.v +++ b/UniMath/CategoryTheory/Abelian.v @@ -140,16 +140,16 @@ Section def_abelian. Definition AbelianPreCat : UU := ∑ A : (∑ C : category, Data1 C), AbelianData (pr1 A) (pr2 A). Definition precategory_of_AbelianPreCat (A : AbelianPreCat) : category := pr1 (pr1 A). - Coercion precategory_of_AbelianPreCat : AbelianPreCat >-> category. + #[reversible] Coercion precategory_of_AbelianPreCat : AbelianPreCat >-> category. Definition make_Abelian (C : category) (AD1 : Data1 C) (AD : AbelianData C AD1) : AbelianPreCat := tpair _ (tpair _ C AD1) AD. Definition to_Data1 (A : AbelianPreCat) : Data1 A := pr2 (pr1 A). - Coercion to_Data1 : AbelianPreCat >-> Data1. + #[reversible] Coercion to_Data1 : AbelianPreCat >-> Data1. Definition to_Data2 (A : AbelianPreCat) : Data2 A (to_Data1 A) := pr1 (pr2 A). - Coercion to_Data2 : AbelianPreCat >-> Data2. + #[reversible] Coercion to_Data2 : AbelianPreCat >-> Data2. Definition to_MonicsAreKernels (A : AbelianPreCat) : MonicsAreKernels A (to_Data1 A) (to_Data2 A) := dirprod_pr1 (pr2 (pr2 A)). diff --git a/UniMath/CategoryTheory/Actegories/Actegories.v b/UniMath/CategoryTheory/Actegories/Actegories.v index b40bc8354c..f915f17d87 100644 --- a/UniMath/CategoryTheory/Actegories/Actegories.v +++ b/UniMath/CategoryTheory/Actegories/Actegories.v @@ -59,7 +59,7 @@ Definition make_actegory_data {C : category} {A : action_data C} := (A,,au,,auinv,,aα,,aαinv). Definition actegory_action_data {C : category} (AD : actegory_data C) : action_data C := pr1 AD. -Coercion actegory_action_data : actegory_data >-> action_data. +#[reversible] Coercion actegory_action_data : actegory_data >-> action_data. Definition actegory_unitordata {C : category} (AD : actegory_data C) : action_unitor_data AD := pr1 (pr2 AD). @@ -152,14 +152,14 @@ Definition actegory (C : category) : UU := ∑ (AD : actegory_data C), (actegory_laws AD). Definition actegory_actdata {C : category} (Act : actegory C) : actegory_data C := pr1 Act. -Coercion actegory_actdata : actegory >-> actegory_data. +#[reversible] Coercion actegory_actdata : actegory >-> actegory_data. Definition actegory_actlaws {C : category} (Act : actegory C) : actegory_laws Act := pr2 Act. Definition actegory_action_is_bifunctor {C : category} (Act : actegory C) : is_bifunctor Act := pr12 Act. -Coercion actegory_action +#[reversible] Coercion actegory_action {C : category} (Act : actegory C) : bifunctor V C C diff --git a/UniMath/CategoryTheory/Actegories/ConstructionOfActegoryMorphisms.v b/UniMath/CategoryTheory/Actegories/ConstructionOfActegoryMorphisms.v index ad7d0da4a0..25c39dd415 100644 --- a/UniMath/CategoryTheory/Actegories/ConstructionOfActegoryMorphisms.v +++ b/UniMath/CategoryTheory/Actegories/ConstructionOfActegoryMorphisms.v @@ -156,7 +156,7 @@ Definition relativelaxcommutator: UU := ∑ γ : relativelaxcommutator_data, relativelaxcommutator_nat γ × relativelaxcommutator_tensor γ × relativelaxcommutator_unit γ. Definition relativelaxcommutator_lddata (γ : relativelaxcommutator): relativelaxcommutator_data := pr1 γ. -Coercion relativelaxcommutator_lddata : relativelaxcommutator >-> relativelaxcommutator_data. +#[reversible] Coercion relativelaxcommutator_lddata : relativelaxcommutator >-> relativelaxcommutator_data. Definition relativelaxcommutator_ldnat (γ : relativelaxcommutator): relativelaxcommutator_nat γ := pr12 γ. Definition relativelaxcommutator_ldtensor (γ : relativelaxcommutator): relativelaxcommutator_tensor γ := pr122 γ. diff --git a/UniMath/CategoryTheory/Actegories/CoproductsInActegories.v b/UniMath/CategoryTheory/Actegories/CoproductsInActegories.v index 5176be0d41..fd0fe3d4b3 100644 --- a/UniMath/CategoryTheory/Actegories/CoproductsInActegories.v +++ b/UniMath/CategoryTheory/Actegories/CoproductsInActegories.v @@ -129,7 +129,7 @@ Section BinaryCoproduct. Definition actegory_bincoprod_distributor : UU := bifunctor_bincoprod_distributor BCP BCP Act. Definition actegory_bincoprod_distributor_to_data (δ : actegory_bincoprod_distributor) : actegory_bincoprod_distributor_data := pr1 δ. - Coercion actegory_bincoprod_distributor_to_data : actegory_bincoprod_distributor >-> actegory_bincoprod_distributor_data. + #[reversible] Coercion actegory_bincoprod_distributor_to_data : actegory_bincoprod_distributor >-> actegory_bincoprod_distributor_data. Definition bincoprod_functor_lineator_data (δ : actegory_bincoprod_distributor) : lineator_data Mon_V (actegory_binprod Mon_V Act Act) Act (bincoproduct_functor BCP). @@ -286,7 +286,7 @@ Section Coproduct. Definition actegory_coprod_distributor_to_data (δ : actegory_coprod_distributor) : actegory_coprod_distributor_data := pr1 δ. - Coercion actegory_coprod_distributor_to_data : + #[reversible] Coercion actegory_coprod_distributor_to_data : actegory_coprod_distributor >-> actegory_coprod_distributor_data. Definition coprod_functor_lineator_data (δ : actegory_coprod_distributor_data) : diff --git a/UniMath/CategoryTheory/Actegories/MorphismsOfActegories.v b/UniMath/CategoryTheory/Actegories/MorphismsOfActegories.v index f32889a106..c1e9900115 100644 --- a/UniMath/CategoryTheory/Actegories/MorphismsOfActegories.v +++ b/UniMath/CategoryTheory/Actegories/MorphismsOfActegories.v @@ -86,7 +86,7 @@ Section TheDefinitions. Definition lineator_lax : UU := ∑ (ld : lineator_data), lineator_laxlaws ld. Definition lineator_lindata (ll : lineator_lax) : lineator_data := pr1 ll. - Coercion lineator_lindata : lineator_lax >-> lineator_data. + #[reversible] Coercion lineator_lindata : lineator_lax >-> lineator_data. Definition lineator_linlaws (ll : lineator_lax) : lineator_laxlaws ll := pr2 ll. @@ -215,7 +215,7 @@ Section TheDefinitions. Definition lineator : UU := ∑ (ll : lineator_lax), lineator_strongly ll. Definition lineator_lineatorlax (lin : lineator) : lineator_lax := pr1 lin. - Coercion lineator_lineatorlax : lineator >-> lineator_lax. + #[reversible] Coercion lineator_lineatorlax : lineator >-> lineator_lax. Definition lineator_linstrongly (lin : lineator) : lineator_strongly lin := pr2 lin. diff --git a/UniMath/CategoryTheory/Actions.v b/UniMath/CategoryTheory/Actions.v index 2f008136b4..c3e2a46e07 100644 --- a/UniMath/CategoryTheory/Actions.v +++ b/UniMath/CategoryTheory/Actions.v @@ -116,7 +116,7 @@ Defined. Definition contr_cat : UU := ∑ C : category, iscontr (ob C). Definition contr_cat_cat : contr_cat -> category := pr1. -Coercion contr_cat_cat : contr_cat >-> category. +#[reversible] Coercion contr_cat_cat : contr_cat >-> category. Definition contr_cat_iscontr : ∏ C : contr_cat, iscontr (ob C) := pr2. Definition contr_cat_center (C : contr_cat) : ob C := iscontrpr1 (contr_cat_iscontr C). diff --git a/UniMath/CategoryTheory/Additive.v b/UniMath/CategoryTheory/Additive.v index 08584d60c0..cd796bce8a 100644 --- a/UniMath/CategoryTheory/Additive.v +++ b/UniMath/CategoryTheory/Additive.v @@ -48,7 +48,7 @@ Section def_additive. Definition CategoryWithAdditiveStructure : UU := ∑ PA : PreAdditive, AdditiveStructure PA. Definition Additive_PreAdditive (A : CategoryWithAdditiveStructure) : PreAdditive := pr1 A. - Coercion Additive_PreAdditive : CategoryWithAdditiveStructure >-> PreAdditive. + #[reversible] Coercion Additive_PreAdditive : CategoryWithAdditiveStructure >-> PreAdditive. Definition make_Additive (PA : PreAdditive) (H : AdditiveStructure PA) : CategoryWithAdditiveStructure. Proof. @@ -64,7 +64,7 @@ Section def_additive. Definition AdditiveCategory : UU := ∑ PA : PreAdditive, isAdditive PA. - Coercion Additive_to_PreAdditive (A : AdditiveCategory) : PreAdditive := pr1 A. + #[reversible] Coercion Additive_to_PreAdditive (A : AdditiveCategory) : PreAdditive := pr1 A. (** Accessor functions. *) Definition to_AdditiveStructure (A : CategoryWithAdditiveStructure) : AdditiveStructure A := pr2 A. diff --git a/UniMath/CategoryTheory/AdditiveFunctors.v b/UniMath/CategoryTheory/AdditiveFunctors.v index 239fedf237..f2a9427b30 100644 --- a/UniMath/CategoryTheory/AdditiveFunctors.v +++ b/UniMath/CategoryTheory/AdditiveFunctors.v @@ -98,7 +98,7 @@ Section def_additivefunctor. (** Accessor functions *) Definition AdditiveFunctor_Functor {A B : CategoryWithAdditiveStructure} (F : AdditiveFunctor A B) : functor A B := pr1 F. - Coercion AdditiveFunctor_Functor : AdditiveFunctor >-> functor. + #[reversible] Coercion AdditiveFunctor_Functor : AdditiveFunctor >-> functor. Definition AdditiveFunctor_isAdditiveFunctor {A B : CategoryWithAdditiveStructure} (F : AdditiveFunctor A B) : isAdditiveFunctor (AdditiveFunctor_Functor F) := pr2 F. @@ -455,7 +455,7 @@ Section def_additive_equivalence. Definition AddEquiv_are_adjoints {A1 A2 : CategoryWithAdditiveStructure} (AE : AddEquiv A1 A2) : are_adjoints (AddEquiv1 AE) (AddEquiv2 AE) := pr2 (pr1 AE). - Coercion AddEquiv_are_adjoints : AddEquiv >-> are_adjoints. + #[reversible] Coercion AddEquiv_are_adjoints : AddEquiv >-> are_adjoints. Definition AddEquivUnit {A1 A2 : CategoryWithAdditiveStructure} (AE : AddEquiv A1 A2) : nat_trans (functor_identity A1) (functor_composite (AddEquiv1 AE) (AddEquiv2 AE)) := diff --git a/UniMath/CategoryTheory/Adjunctions/Core.v b/UniMath/CategoryTheory/Adjunctions/Core.v index 2d65d737db..88984e79d8 100644 --- a/UniMath/CategoryTheory/Adjunctions/Core.v +++ b/UniMath/CategoryTheory/Adjunctions/Core.v @@ -119,7 +119,7 @@ Definition make_form_adjunction {A B : category} {F : functor A B} {G : functor Definition adjunction (A B : category) : UU := ∑ X : adjunction_data A B, form_adjunction' X. - Coercion data_from_adjunction {A B} (X : adjunction A B) + #[reversible] Coercion data_from_adjunction {A B} (X : adjunction A B) : adjunction_data _ _ := pr1 X. Definition make_adjunction {A B : category} @@ -139,7 +139,7 @@ Definition make_form_adjunction {A B : category} {F : functor A B} {G : functor (adj : adjunction A B) : triangle_2_statement adj := pr2 (pr2 adj). - Coercion are_adjoints_from_adjunction {A B} (X : adjunction A B) + #[reversible] Coercion are_adjoints_from_adjunction {A B} (X : adjunction A B) : are_adjoints (left_functor X) (right_functor X). Proof. use make_are_adjoints. @@ -159,7 +159,7 @@ Definition make_form_adjunction {A B : category} {F : functor A B} {G : functor Definition is_left_adjoint {A B : category} (F : functor A B) : UU := ∑ (G : functor B A), are_adjoints F G. -Coercion adjunction_data_from_is_left_adjoint {A B : category} +#[reversible] Coercion adjunction_data_from_is_left_adjoint {A B : category} {F : functor A B} (HF : is_left_adjoint F) : adjunction_data A B := (F,, _ ,,unit_from_are_adjoints (pr2 HF) ,,counit_from_are_adjoints (pr2 HF) ). @@ -170,12 +170,12 @@ Coercion adjunction_data_from_is_left_adjoint {A B : category} Definition are_adjoints_to_is_left_adjoint {A B : category} (F : functor A B) (G : functor B A) (H : are_adjoints F G) : is_left_adjoint F := (G,,H). - Coercion are_adjoints_to_is_left_adjoint : are_adjoints >-> is_left_adjoint. + #[reversible] Coercion are_adjoints_to_is_left_adjoint : are_adjoints >-> is_left_adjoint. Definition are_adjoints_to_is_right_adjoint {A B : category} (F : functor A B) (G : functor B A) (H : are_adjoints F G) : is_right_adjoint G := (F,,H). - Coercion are_adjoints_to_is_right_adjoint : are_adjoints >-> is_right_adjoint. + #[reversible] Coercion are_adjoints_to_is_right_adjoint : are_adjoints >-> is_right_adjoint. Definition right_adjoint {A B : category} {F : functor A B} (H : is_left_adjoint F) : functor B A := pr1 H. diff --git a/UniMath/CategoryTheory/Categories/HSET/FilteredColimits.v b/UniMath/CategoryTheory/Categories/HSET/FilteredColimits.v index 1f0a3559b6..e00a9afc13 100644 --- a/UniMath/CategoryTheory/Categories/HSET/FilteredColimits.v +++ b/UniMath/CategoryTheory/Categories/HSET/FilteredColimits.v @@ -50,10 +50,10 @@ Section filtered_colimits_in_SET. := ∑ (j : vertex J), (dob d j : hSet). Local Definition cobasepr1 : cobase -> vertex J := pr1. - Local Coercion cobasepr1 : cobase >-> vertex. + Local #[reversible] Coercion cobasepr1 : cobase >-> vertex. Local Definition cobasept : ∏ (a : cobase), (dob d a) : hSet := pr2. - Local Coercion cobasept : cobase >-> pr1hSet. + Local #[reversible] Coercion cobasept : cobase >-> pr1hSet. Definition filtered_cobase_rel : hrel cobase := λ (a b : cobase), diff --git a/UniMath/CategoryTheory/CategoriesWithBinOps.v b/UniMath/CategoryTheory/CategoriesWithBinOps.v index f6b6b62947..6c1998ca6d 100644 --- a/UniMath/CategoryTheory/CategoriesWithBinOps.v +++ b/UniMath/CategoryTheory/CategoriesWithBinOps.v @@ -20,7 +20,7 @@ Section def_precategory_with_binops. Definition precategoryWithBinOps : UU := ∑ C : category, precategoryWithBinOpsData C. Definition precategoryWithBinOps_precategory (P : precategoryWithBinOps) : category := pr1 P. - Coercion precategoryWithBinOps_precategory : precategoryWithBinOps >-> category. + #[reversible] Coercion precategoryWithBinOps_precategory : precategoryWithBinOps >-> category. Definition make_precategoryWithBinOps (C : category) (H : precategoryWithBinOpsData C) : precategoryWithBinOps := tpair _ C H. diff --git a/UniMath/CategoryTheory/Core/Categories.v b/UniMath/CategoryTheory/Core/Categories.v index bae2ef2ca2..35cdf2e1cb 100644 --- a/UniMath/CategoryTheory/Core/Categories.v +++ b/UniMath/CategoryTheory/Core/Categories.v @@ -26,7 +26,7 @@ Definition make_precategory_ob_mor (ob : UU)(mor : ob -> ob -> UU) : precategory_ob_mor := tpair _ ob mor. Definition ob (C : precategory_ob_mor) : UU := @pr1 _ _ C. -Coercion ob : precategory_ob_mor >-> UU. +#[reversible] Coercion ob : precategory_ob_mor >-> UU. Definition precategory_morphisms { C : precategory_ob_mor } : C -> C -> UU := pr2 C. @@ -71,7 +71,7 @@ Definition make_precategory_data (C : precategory_ob_mor) Definition precategory_ob_mor_from_precategory_data (C : precategory_data) : precategory_ob_mor := pr1 C. -Coercion precategory_ob_mor_from_precategory_data : +#[reversible] Coercion precategory_ob_mor_from_precategory_data : precategory_data >-> precategory_ob_mor. Definition identity {C : precategory_data} @@ -147,7 +147,7 @@ Definition make_precategory_one_assoc (C : precategory_data) (H : is_precategory Definition precategory_data_from_precategory (C : precategory) : precategory_data := pr1 C. -Coercion precategory_data_from_precategory : precategory >-> precategory_data. +#[reversible] Coercion precategory_data_from_precategory : precategory >-> precategory_data. Definition has_homsets (C : precategory_ob_mor) : UU := ∏ a b : C, isaset (a --> b). @@ -160,8 +160,8 @@ Qed. Definition category := ∑ C:precategory, has_homsets C. Definition make_category C h : category := C,,h. Definition category_to_precategory : category -> precategory := pr1. -Coercion category_to_precategory : category >-> precategory. -Coercion homset_property (C : category) : has_homsets C := pr2 C. +#[reversible] Coercion category_to_precategory : category >-> precategory. +#[reversible] Coercion homset_property (C : category) : has_homsets C := pr2 C. Definition homset {C : category} diff --git a/UniMath/CategoryTheory/Core/Functors.v b/UniMath/CategoryTheory/Core/Functors.v index 611763319f..02d8fa1b89 100644 --- a/UniMath/CategoryTheory/Core/Functors.v +++ b/UniMath/CategoryTheory/Core/Functors.v @@ -62,7 +62,7 @@ Definition functor_data_constr (C C' : precategory_ob_mor) Definition functor_on_objects {C C' : precategory_ob_mor} (F : functor_data C C') : ob C -> ob C' := pr1 F. -Coercion functor_on_objects : functor_data >-> Funclass. +#[reversible] Coercion functor_on_objects : functor_data >-> Funclass. Definition functor_on_morphisms {C C' : precategory_ob_mor} (F : functor_data C C') { a b : ob C} : a --> b -> F a --> F b := pr2 F a b. @@ -156,7 +156,7 @@ Qed. Definition functor_data_from_functor (C C': precategory_data) (F : functor C C') : functor_data C C' := pr1 F. -Coercion functor_data_from_functor : functor >-> functor_data. +#[reversible] Coercion functor_data_from_functor : functor >-> functor_data. Definition functor_eq_eq_from_functor_ob_eq (C C' : precategory_data) (hs: has_homsets C') diff --git a/UniMath/CategoryTheory/Core/Isos.v b/UniMath/CategoryTheory/Core/Isos.v index 5596194ce8..601504b3d6 100644 --- a/UniMath/CategoryTheory/Core/Isos.v +++ b/UniMath/CategoryTheory/Core/Isos.v @@ -42,7 +42,7 @@ Qed. Definition iso {C: precategory_data} (a b : C) := ∑ f : a --> b, is_iso f. Definition morphism_from_iso {C : precategory_data} {a b : C} (f : iso a b) : a --> b := pr1 f. -Coercion morphism_from_iso : iso >-> precategory_morphisms. +#[reversible] Coercion morphism_from_iso : iso >-> precategory_morphisms. Definition iso_is_iso {C : precategory_data} {a b : C} (f : iso a b) : is_iso f := pr2 f. @@ -446,7 +446,7 @@ Definition is_z_isomorphism_mor {C : precategory_data} {a b : C} {f : a --> b} Definition is_z_isomorphism_is_inverse_in_precat {C : precategory_data} {a b : C} {f : a --> b} (I : is_z_isomorphism f) : is_inverse_in_precat f (is_z_isomorphism_mor I) := pr2 I. -Coercion is_z_isomorphism_is_inverse_in_precat : is_z_isomorphism >-> is_inverse_in_precat. +#[reversible] Coercion is_z_isomorphism_is_inverse_in_precat : is_z_isomorphism >-> is_inverse_in_precat. Definition is_z_isomorphism_inv {C : precategory_data} {a b : C} {f : a --> b} (I : is_z_isomorphism f) : is_z_isomorphism (is_z_isomorphism_mor I). @@ -504,7 +504,7 @@ Definition make_z_iso' {C : precategory_data} {a b : C} (f : a --> b) (H : is_z_ z_iso a b := (f,,H). Definition z_iso_mor {C : precategory_data} {a b : ob C} (f : z_iso a b) : a --> b := pr1 f. -Coercion z_iso_mor : z_iso >-> precategory_morphisms. +#[reversible] Coercion z_iso_mor : z_iso >-> precategory_morphisms. Definition inv_from_z_iso {C : precategory_data} {a b : C} (i : z_iso a b) : b --> a := is_z_isomorphism_mor (pr2 i). @@ -513,7 +513,7 @@ Definition inv_from_z_iso {C : precategory_data} {a b : C} (i : z_iso a b) : b - Definition z_iso_is_inverse_in_precat {C : precategory_data} {a b : C} (i : z_iso a b) : is_inverse_in_precat i (inv_from_z_iso i) := pr2 i. -Coercion z_iso_is_inverse_in_precat : z_iso >-> is_inverse_in_precat. +#[reversible] Coercion z_iso_is_inverse_in_precat : z_iso >-> is_inverse_in_precat. Definition z_iso_inv {C : precategory_data} {a b : C} (I : z_iso a b) : z_iso b a. Proof. @@ -646,7 +646,7 @@ Qed. Definition morphism_from_z_iso {C : precategory_data} (a b : ob C) (f : z_iso a b) : a --> b := pr1 f. -Coercion morphism_from_z_iso : z_iso >-> precategory_morphisms. +#[reversible] Coercion morphism_from_z_iso : z_iso >-> precategory_morphisms. Lemma isaset_z_iso {C : category} (a b : ob C) : isaset (z_iso a b). Proof. diff --git a/UniMath/CategoryTheory/Core/NaturalTransformations.v b/UniMath/CategoryTheory/Core/NaturalTransformations.v index 3ced757044..4c1ca8851c 100644 --- a/UniMath/CategoryTheory/Core/NaturalTransformations.v +++ b/UniMath/CategoryTheory/Core/NaturalTransformations.v @@ -72,7 +72,7 @@ Definition nat_trans_data_from_nat_trans {C C' : precategory_data} Definition nat_trans_data_from_nat_trans_funclass {C C' : precategory_data} {F F' : functor_data C C'}(a : nat_trans F F') : ∏ x : ob C, F x --> F' x := pr1 a. -Coercion nat_trans_data_from_nat_trans_funclass : nat_trans >-> Funclass. +#[reversible] Coercion nat_trans_data_from_nat_trans_funclass : nat_trans >-> Funclass. Definition nat_trans_ax {C C' : precategory_data} {F F' : functor_data C C'} (a : nat_trans F F') : @@ -325,7 +325,7 @@ Defined. Definition nat_iso_to_trans {C D : precategory} {F G : C ⟶ D} (ν : nat_iso F G) : F ⟹ G := pr1 ν. -Coercion nat_iso_to_trans : nat_iso >-> nat_trans. +#[reversible] Coercion nat_iso_to_trans : nat_iso >-> nat_trans. (* ⁻¹ *) Definition nat_iso_to_trans_inv {C D : precategory} {F G : C ⟶ D} (ν : nat_iso F G) : G ⟹ F := @@ -387,7 +387,7 @@ Defined. Definition nat_z_iso_to_trans {C D : precategory_data} {F G : C ⟶ D} (μ : nat_z_iso F G) : F ⟹ G := pr1 μ. -Coercion nat_z_iso_to_trans : nat_z_iso >-> nat_trans. +#[reversible] Coercion nat_z_iso_to_trans : nat_z_iso >-> nat_trans. Definition pr2_nat_z_iso {C D : precategory_data} {F G : C ⟶ D} (μ : nat_z_iso F G) : is_nat_z_iso μ := pr2 μ. diff --git a/UniMath/CategoryTheory/Core/Setcategories.v b/UniMath/CategoryTheory/Core/Setcategories.v index 8adf5ba854..2060cba6cd 100644 --- a/UniMath/CategoryTheory/Core/Setcategories.v +++ b/UniMath/CategoryTheory/Core/Setcategories.v @@ -30,7 +30,7 @@ Definition is_setcategory : precategory → UU := object_homtype_hlevel 2 2. Definition setcategory := total2 is_setcategory. Definition category_from_setcategory (C : setcategory) : category := (pr1 C,, (dirprod_pr2 (pr2 C))). -Coercion category_from_setcategory : setcategory >-> category. +#[reversible] Coercion category_from_setcategory : setcategory >-> category. Definition make_setcategory (C : category) diff --git a/UniMath/CategoryTheory/Core/TwoCategories.v b/UniMath/CategoryTheory/Core/TwoCategories.v index f21b341881..3cb8a2e819 100644 --- a/UniMath/CategoryTheory/Core/TwoCategories.v +++ b/UniMath/CategoryTheory/Core/TwoCategories.v @@ -43,7 +43,7 @@ Definition make_two_cat_data : two_cat_data := C ,, cellsC ,, id ,, vC ,, lW ,, rW. -Coercion precategory_from_two_cat_data (C : two_cat_data) +#[reversible] Coercion precategory_from_two_cat_data (C : two_cat_data) : precategory_data := pr1 C. @@ -134,7 +134,7 @@ Proof. - exact (pr22 C). Defined. -Coercion category_from_two_cat_data : two_cat_category >-> category. +#[reversible] Coercion category_from_two_cat_data : two_cat_category >-> category. Definition two_cat_laws (C : two_cat_category) : UU @@ -182,8 +182,8 @@ Definition make_two_precat : two_precat := C ,, HC. -Coercion two_cat_category_from_two_cat (C : two_precat) : two_cat_category := pr1 C. -Coercion two_cat_laws_from_two_cat (C : two_precat) : two_cat_laws C := pr2 C. +#[reversible] Coercion two_cat_category_from_two_cat (C : two_precat) : two_cat_category := pr1 C. +#[reversible] Coercion two_cat_laws_from_two_cat (C : two_precat) : two_cat_laws C := pr2 C. (* ----------------------------------------------------------------------------------- *) (** Laws projections. *) @@ -279,7 +279,7 @@ Definition make_two_cat : two_cat := C ,, HC. -Coercion two_cat_to_two_precat +#[reversible] Coercion two_cat_to_two_precat (C : two_cat) : two_precat := pr1 C. @@ -354,7 +354,7 @@ Definition make_two_setcat : two_setcat := C ,, HC. -Coercion two_setcat_to_two_cat +#[reversible] Coercion two_setcat_to_two_cat (C : two_setcat) : two_cat := pr1 C. @@ -376,7 +376,7 @@ Definition make_univalent_two_cat : univalent_two_cat := C ,, HC. -Coercion univalent_two_cat_to_two_cat +#[reversible] Coercion univalent_two_cat_to_two_cat (C : univalent_two_cat) : two_cat := pr1 C. diff --git a/UniMath/CategoryTheory/Core/Univalence.v b/UniMath/CategoryTheory/Core/Univalence.v index bc8713a6ef..eb742f4fa5 100644 --- a/UniMath/CategoryTheory/Core/Univalence.v +++ b/UniMath/CategoryTheory/Core/Univalence.v @@ -68,9 +68,9 @@ Definition univalent_category : UU := ∑ C : category, is_univalent C. Definition make_univalent_category (C : category) (H : is_univalent C) : univalent_category := tpair _ C H. -Coercion univalent_category_to_category (C : univalent_category) : category := pr1 C. +#[reversible] Coercion univalent_category_to_category (C : univalent_category) : category := pr1 C. -Coercion univalent_category_has_homsets (C : univalent_category) +#[reversible] Coercion univalent_category_has_homsets (C : univalent_category) : has_homsets C := pr2 (pr1 C). diff --git a/UniMath/CategoryTheory/DaggerCategories/Categories.v b/UniMath/CategoryTheory/DaggerCategories/Categories.v index 546f0fb16f..b30ad0e7bf 100644 --- a/UniMath/CategoryTheory/DaggerCategories/Categories.v +++ b/UniMath/CategoryTheory/DaggerCategories/Categories.v @@ -50,7 +50,7 @@ Section DaggerCategories. Definition dagger_to_struct {C : category} (dag : dagger C) : dagger_structure C := pr1 dag. - Coercion dagger_to_struct : dagger >-> dagger_structure. + #[reversible] Coercion dagger_to_struct : dagger >-> dagger_structure. Definition dagger_to_laws {C : category} (dag : dagger C) : dagger_laws dag := pr2 dag. @@ -110,11 +110,11 @@ Section DaggerCategories. Definition dagger_category_to_cat (C : dagger_category) : category := pr1 C. - Coercion dagger_category_to_cat : dagger_category >-> category. + #[reversible] Coercion dagger_category_to_cat : dagger_category >-> category. Definition dagger_category_to_dagger (C : dagger_category) : dagger C := pr2 C. - Coercion dagger_category_to_dagger : dagger_category >-> dagger. + #[reversible] Coercion dagger_category_to_dagger : dagger_category >-> dagger. Notation "{ f }_ C ^†" := (dagger_category_to_dagger C _ _ f). diff --git a/UniMath/CategoryTheory/DaggerCategories/Functors.v b/UniMath/CategoryTheory/DaggerCategories/Functors.v index 6c6a80d413..088d8eb611 100644 --- a/UniMath/CategoryTheory/DaggerCategories/Functors.v +++ b/UniMath/CategoryTheory/DaggerCategories/Functors.v @@ -72,7 +72,7 @@ Section DaggerFunctors. (F : dagger_functor dagC dagD) : functor C D := pr1 F. - Coercion dagger_functor_to_functor : dagger_functor >-> functor. + #[reversible] Coercion dagger_functor_to_functor : dagger_functor >-> functor. Definition dagger_functor_to_is_dagger_functor {C D : category} diff --git a/UniMath/CategoryTheory/DaggerCategories/Unitary.v b/UniMath/CategoryTheory/DaggerCategories/Unitary.v index a00d3162c5..20aa704835 100644 --- a/UniMath/CategoryTheory/DaggerCategories/Unitary.v +++ b/UniMath/CategoryTheory/DaggerCategories/Unitary.v @@ -34,7 +34,7 @@ Section UnitaryMorphisms. {C : category} {dag : dagger_structure C} {x y : C} (u : unitary dag x y) : C⟦x,y⟧ := pr1 u. - Coercion unitary_to_mor : unitary >-> precategory_morphisms. + #[reversible] Coercion unitary_to_mor : unitary >-> precategory_morphisms. Lemma isaset_unitary {C : category} (dag : dagger_structure C) (x y : C) diff --git a/UniMath/CategoryTheory/DisplayedCats/Constructions.v b/UniMath/CategoryTheory/DisplayedCats/Constructions.v index 01b63f547b..ccb7571474 100644 --- a/UniMath/CategoryTheory/DisplayedCats/Constructions.v +++ b/UniMath/CategoryTheory/DisplayedCats/Constructions.v @@ -395,7 +395,7 @@ Section Sections. (F : section_disp_data D) (x : C) := pr1 F x : D x. - Coercion section_disp_on_objects : section_disp_data >-> Funclass. + #[reversible] Coercion section_disp_on_objects : section_disp_data >-> Funclass. Definition section_disp_on_morphisms {C} {D : disp_cat C} (F : section_disp_data D) {x y : C} (f : x --> y) @@ -416,7 +416,7 @@ Section Sections. Definition section_disp_data_from_section_disp {C} {D : disp_cat C} (F : section_disp D) := pr1 F. - Coercion section_disp_data_from_section_disp + #[reversible] Coercion section_disp_data_from_section_disp : section_disp >-> section_disp_data. Definition section_disp_id {C} {D : disp_cat C} (F : section_disp D) @@ -561,7 +561,7 @@ Definition section_nat_trans_data_from_section_nat_trans_disp_funclass {F F': section_disp D} (nt : section_nat_trans_disp F F') : ∏ x : ob C, F x -->[identity _] F' x := section_nt_disp_data_from_section_nt_disp nt. -Coercion section_nat_trans_data_from_section_nat_trans_disp_funclass : +#[reversible] Coercion section_nat_trans_data_from_section_nat_trans_disp_funclass : section_nat_trans_disp >-> Funclass. Definition section_nt_disp_axioms_from_section_nt_disp diff --git a/UniMath/CategoryTheory/DisplayedCats/Core.v b/UniMath/CategoryTheory/DisplayedCats/Core.v index be76ce26fa..4838693c3e 100644 --- a/UniMath/CategoryTheory/DisplayedCats/Core.v +++ b/UniMath/CategoryTheory/DisplayedCats/Core.v @@ -105,7 +105,7 @@ Definition make_disp_cat_ob_mor := obd,, mord. Definition ob_disp {C: precategory_ob_mor} (D : disp_cat_ob_mor C) : C -> UU := pr1 D. -Coercion ob_disp : disp_cat_ob_mor >-> Funclass. +#[reversible] Coercion ob_disp : disp_cat_ob_mor >-> Funclass. Definition mor_disp {C: precategory_ob_mor} {D : disp_cat_ob_mor C} {x y} xx yy (f : x --> y) @@ -127,7 +127,7 @@ Definition disp_cat_ob_mor_from_disp_cat_data {C: precategory_data} : disp_cat_ob_mor C := pr1 D. -Coercion disp_cat_ob_mor_from_disp_cat_data : +#[reversible] Coercion disp_cat_ob_mor_from_disp_cat_data : disp_cat_data >-> disp_cat_ob_mor. Definition id_disp {C: precategory_data} {D : disp_cat_data C} {x:C} (xx : D x) @@ -185,7 +185,7 @@ Definition disp_cat (C : category) := total2 (disp_cat_axioms C). Definition disp_cat_data_from_disp_cat {C} (D : disp_cat C) := pr1 D : disp_cat_data C. -Coercion disp_cat_data_from_disp_cat : disp_cat >-> disp_cat_data. +#[reversible] Coercion disp_cat_data_from_disp_cat : disp_cat >-> disp_cat_data. Definition make_disp_cat_locally_prop {C : category} diff --git a/UniMath/CategoryTheory/DisplayedCats/Equivalences.v b/UniMath/CategoryTheory/DisplayedCats/Equivalences.v index d3b12adb63..f25522f3e4 100644 --- a/UniMath/CategoryTheory/DisplayedCats/Equivalences.v +++ b/UniMath/CategoryTheory/DisplayedCats/Equivalences.v @@ -95,7 +95,7 @@ Section DisplayedAdjunction. := ∑ AA : disp_adjunction_data A D D', triangle_1_statement_over AA × triangle_2_statement_over AA. - Coercion data_of_disp_adjunction (C C' : category) (A : adjunction C C') + #[reversible] Coercion data_of_disp_adjunction (C C' : category) (A : adjunction C C') D D' (AA : disp_adjunction A D D') : disp_adjunction_data _ _ _ := pr1 AA. Definition triangle_1_over {C C' : category} @@ -128,7 +128,7 @@ Section DisplayedAdjunction. {FF : disp_functor (left_functor A) D D'} (GG : right_adjoint_over_data FF) := pr1 GG. - Coercion functor_of_right_adjoint_over + #[reversible] Coercion functor_of_right_adjoint_over : right_adjoint_over_data >-> disp_functor. Definition adjunction_of_right_adjoint_over_data {C C' : category} @@ -137,7 +137,7 @@ Section DisplayedAdjunction. (GG : right_adjoint_over_data FF) : disp_adjunction_data A D D' := (FF,, GG). - Coercion adjunction_of_right_adjoint_over_data + #[reversible] Coercion adjunction_of_right_adjoint_over_data : right_adjoint_over_data >-> disp_adjunction_data. Definition right_adjoint_of_disp_adjunction_data @@ -161,7 +161,7 @@ Section DisplayedAdjunction. (GG : right_adjoint_over FF) : right_adjoint_over_data FF := pr1 GG. - Coercion data_of_right_adjoint_over + #[reversible] Coercion data_of_right_adjoint_over : right_adjoint_over >-> right_adjoint_over_data. Definition adjunction_of_right_adjoint_over {C C' : category} @@ -208,12 +208,12 @@ Section DisplayedEquivalences. := ∑ AA : disp_adjunction E D D', @form_equiv_over _ _ E _ _ (pr1 AA). (* argument A is not inferred *) - Coercion adjunction_of_equiv_over {C C' : category} (E : adj_equiv C C') + #[reversible] Coercion adjunction_of_equiv_over {C C' : category} (E : adj_equiv C C') {D : disp_cat C} {D': disp_cat C'} (EE : equiv_over E D D') : disp_adjunction _ _ _ := pr1 EE. - Coercion axioms_of_equiv_over {C C' : category} (E : adj_equiv C C') + #[reversible] Coercion axioms_of_equiv_over {C C' : category} (E : adj_equiv C C') {D : disp_cat C} {D': disp_cat C'} (EE : equiv_over E D D') : form_equiv_over _ := pr2 EE. @@ -229,7 +229,7 @@ Section DisplayedEquivalences. {D : disp_cat C} {D': disp_cat C'} {FF : disp_functor (left_functor E) D D'} (EE : is_equiv_over E FF) := pr1 EE. - Coercion right_adjoint_of_is_equiv_over + #[reversible] Coercion right_adjoint_of_is_equiv_over : is_equiv_over >-> right_adjoint_over. Definition equiv_of_is_equiv_over {C C' : category} (E : adj_equiv C C') @@ -238,7 +238,7 @@ Section DisplayedEquivalences. (EE : is_equiv_over E FF) : equiv_over E D D' := (adjunction_of_right_adjoint_over _ EE ,, pr2 EE). - Coercion equiv_of_is_equiv_over + #[reversible] Coercion equiv_of_is_equiv_over : is_equiv_over >-> equiv_over. (* Again, don’t worry about the ambiguous path generated here. *) @@ -492,7 +492,7 @@ Definition left_adj_over_id {C} {D D' : disp_cat C} (A : disp_adjunction_id_data D D') : disp_functor _ D D' := pr1 A. -Coercion left_adj_over_id +#[reversible] Coercion left_adj_over_id : disp_adjunction_id_data >-> disp_functor. Definition right_adj_over_id {C} {D D' : disp_cat C} @@ -545,7 +545,7 @@ Definition disp_adjunction_id {C} (D D' : disp_cat C) : UU Definition data_of_disp_adjunction_id {C} {D D' : disp_cat C} (A : disp_adjunction_id D D') := pr1 A. -Coercion data_of_disp_adjunction_id +#[reversible] Coercion data_of_disp_adjunction_id : disp_adjunction_id >-> disp_adjunction_id_data. Definition triangle_1_over_id {C} {D D' : disp_cat C} @@ -574,14 +574,14 @@ Definition functor_of_right_adjoint_over_id {C} {D D' : disp_cat C} {FF : disp_functor _ D D'} (GG : right_adjoint_over_id_data FF) := pr1 GG. -Coercion functor_of_right_adjoint_over_id : right_adjoint_over_id_data >-> disp_functor. +#[reversible] Coercion functor_of_right_adjoint_over_id : right_adjoint_over_id_data >-> disp_functor. Definition adjunction_of_right_adjoint_over_id_data {C} {D D' : disp_cat C} {FF : disp_functor _ D D'} (GG : right_adjoint_over_id_data FF) : disp_adjunction_id_data D D' := (FF,, GG). -Coercion adjunction_of_right_adjoint_over_id_data +#[reversible] Coercion adjunction_of_right_adjoint_over_id_data : right_adjoint_over_id_data >-> disp_adjunction_id_data. Definition right_adjoint_of_disp_adjunction_id_data {C} {D D' : disp_cat C} @@ -598,7 +598,7 @@ Definition data_of_right_adjoint_over_id {C} {D D' : disp_cat C} {FF : disp_functor _ D D'} (GG : right_adjoint_over_id FF) := pr1 GG. -Coercion data_of_right_adjoint_over_id +#[reversible] Coercion data_of_right_adjoint_over_id : right_adjoint_over_id >-> right_adjoint_over_id_data. Definition adjunction_of_right_adjoint_over_id {C} {D D' : disp_cat C} @@ -657,13 +657,13 @@ Definition equiv_over_id {C} (D D' : disp_cat C) : UU Definition adjunction_of_equiv_over_id {C} {D D' : disp_cat C} (A : equiv_over_id D D') := pr1 A. -Coercion adjunction_of_equiv_over_id +#[reversible] Coercion adjunction_of_equiv_over_id : equiv_over_id >-> disp_adjunction_id. Definition axioms_of_equiv_over_id {C} {D D' : disp_cat C} (A : equiv_over_id D D') := pr2 A. -Coercion axioms_of_equiv_over_id +#[reversible] Coercion axioms_of_equiv_over_id : equiv_over_id >-> form_equiv_over_id. Definition is_equiv_over_id {C} {D D' : disp_cat C} @@ -675,7 +675,7 @@ Definition right_adjoint_of_is_equiv_over_id {C} {D D' : disp_cat C} {FF : disp_functor _ D D'} (E : is_equiv_over_id FF) := pr1 E. -Coercion right_adjoint_of_is_equiv_over_id +#[reversible] Coercion right_adjoint_of_is_equiv_over_id : is_equiv_over_id >-> right_adjoint_over_id. Definition equiv_of_is_equiv_over_id {C} {D D' : disp_cat C} @@ -683,7 +683,7 @@ Definition equiv_of_is_equiv_over_id {C} {D D' : disp_cat C} (E : is_equiv_over_id FF) : equiv_over_id D D' := (adjunction_of_right_adjoint_over_id E ,, pr2 E). -Coercion equiv_of_is_equiv_over_id +#[reversible] Coercion equiv_of_is_equiv_over_id : is_equiv_over_id >-> equiv_over_id. (* Again, don’t worry about the ambiguous path generated here. *) diff --git a/UniMath/CategoryTheory/DisplayedCats/Examples.v b/UniMath/CategoryTheory/DisplayedCats/Examples.v index 71d091e1c0..b6d7518384 100644 --- a/UniMath/CategoryTheory/DisplayedCats/Examples.v +++ b/UniMath/CategoryTheory/DisplayedCats/Examples.v @@ -81,8 +81,8 @@ Definition grp_inv_l {X : hSet} {G : grp_structure_data X} Definition grp_structure (X : hSet) : UU := ∑ G : grp_structure_data X, grp_structure_axioms G. -Coercion grp_data {X} (G : grp_structure X) : grp_structure_data X := pr1 G. -Coercion grp_axioms {X} (G : grp_structure X) : grp_structure_axioms _ := pr2 G. +#[reversible] Coercion grp_data {X} (G : grp_structure X) : grp_structure_data X := pr1 G. +#[reversible] Coercion grp_axioms {X} (G : grp_structure X) : grp_structure_axioms _ := pr2 G. Definition is_grp_hom {X Y : hSet} (f : X -> Y) (GX : grp_structure X) (GY : grp_structure Y) : UU diff --git a/UniMath/CategoryTheory/DisplayedCats/Examples/AlgebraStructures.v b/UniMath/CategoryTheory/DisplayedCats/Examples/AlgebraStructures.v index a28337e7ed..8acc241eaf 100644 --- a/UniMath/CategoryTheory/DisplayedCats/Examples/AlgebraStructures.v +++ b/UniMath/CategoryTheory/DisplayedCats/Examples/AlgebraStructures.v @@ -61,7 +61,7 @@ Section MonadToStruct. : monad_algebra X := f ,, p. - Coercion monad_algebra_struct_to_mor + #[reversible] Coercion monad_algebra_struct_to_mor {X : hSet} (f : monad_algebra X) : M X --> X diff --git a/UniMath/CategoryTheory/DisplayedCats/Fibrations.v b/UniMath/CategoryTheory/DisplayedCats/Fibrations.v index 0233b6cb62..16f9d30b4d 100644 --- a/UniMath/CategoryTheory/DisplayedCats/Fibrations.v +++ b/UniMath/CategoryTheory/DisplayedCats/Fibrations.v @@ -169,21 +169,21 @@ Definition object_of_cartesian_lift {C : category} {D : disp_cat C} (fd : cartesian_lift d f) : D c' := pr1 fd. -Coercion object_of_cartesian_lift : cartesian_lift >-> ob_disp. +#[reversible] Coercion object_of_cartesian_lift : cartesian_lift >-> ob_disp. Definition mor_disp_of_cartesian_lift {C : category} {D : disp_cat C} {c} (d : D c) {c' : C} (f : c' --> c) (fd : cartesian_lift d f) : (fd : D c') -->[f] d := pr1 (pr2 fd). -Coercion mor_disp_of_cartesian_lift : cartesian_lift >-> mor_disp. +#[reversible] Coercion mor_disp_of_cartesian_lift : cartesian_lift >-> mor_disp. Definition cartesian_lift_is_cartesian {C : category} {D : disp_cat C} {c} (d : D c) {c' : C} (f : c' --> c) (fd : cartesian_lift d f) : is_cartesian fd := pr2 (pr2 fd). -Coercion cartesian_lift_is_cartesian : cartesian_lift >-> is_cartesian. +#[reversible] Coercion cartesian_lift_is_cartesian : cartesian_lift >-> is_cartesian. Definition is_cartesian_disp_functor {C C' : category} {F : functor C C'} @@ -243,7 +243,7 @@ Definition cartesian_disp_functor : UU := ∑ (FF : disp_functor F D₁ D₂), is_cartesian_disp_functor FF. -Coercion disp_functor_of_cartesian_disp_functor +#[reversible] Coercion disp_functor_of_cartesian_disp_functor {C₁ C₂ : category} {F : C₁ ⟶ C₂} {D₁ : disp_cat C₁} @@ -462,7 +462,7 @@ Definition is_discrete_fibration {C : category} (D : disp_cat C) : UU Definition discrete_fibration C : UU := ∑ D : disp_cat C, is_discrete_fibration D. -Coercion disp_cat_from_discrete_fibration C (D : discrete_fibration C) +#[reversible] Coercion disp_cat_from_discrete_fibration C (D : discrete_fibration C) : disp_cat C := pr1 D. Definition unique_lift {C} {D : discrete_fibration C} {c c'} (f : c' --> c) (d : D c) @@ -1189,7 +1189,7 @@ Definition opcartesian_disp_functor : UU := ∑ (FF : disp_functor F D₁ D₂), is_opcartesian_disp_functor FF. -Coercion disp_functor_of_opcartesian_disp_functor +#[reversible] Coercion disp_functor_of_opcartesian_disp_functor {C₁ C₂ : category} {F : C₁ ⟶ C₂} {D₁ : disp_cat C₁} diff --git a/UniMath/CategoryTheory/DisplayedCats/Functors.v b/UniMath/CategoryTheory/DisplayedCats/Functors.v index bd2520ef20..8585a6ce9a 100644 --- a/UniMath/CategoryTheory/DisplayedCats/Functors.v +++ b/UniMath/CategoryTheory/DisplayedCats/Functors.v @@ -39,7 +39,7 @@ Section Disp_Functor. : D (F x) := pr1 FF x xx. - Coercion disp_functor_on_objects : disp_functor_data >-> Funclass. + #[reversible] Coercion disp_functor_on_objects : disp_functor_data >-> Funclass. (** Unfortunately, the coercion loses implicitness of the {x:C'} argument: we have to write [ FF _ xx ] instead of just [ FF xx ]. @@ -86,7 +86,7 @@ Section Disp_Functor. : disp_functor_data F D' D := pr1 FF. - Coercion disp_functor_data_from_disp_functor + #[reversible] Coercion disp_functor_data_from_disp_functor : disp_functor >-> disp_functor_data. Definition disp_functor_id {C' C} {F} {D' : disp_cat C'} {D : disp_cat C} diff --git a/UniMath/CategoryTheory/DisplayedCats/Isos.v b/UniMath/CategoryTheory/DisplayedCats/Isos.v index edba2ba97b..47d3ab7043 100644 --- a/UniMath/CategoryTheory/DisplayedCats/Isos.v +++ b/UniMath/CategoryTheory/DisplayedCats/Isos.v @@ -39,12 +39,12 @@ Section Isos. Definition mor_disp_from_z_iso {C : precategory} {D : disp_cat_data C} {x y : C} {f : z_iso x y}{xx : D x} {yy : D y} (i : z_iso_disp f xx yy) : _ -->[ _ ] _ := pr1 i. - Coercion mor_disp_from_z_iso : z_iso_disp >-> mor_disp. + #[reversible] Coercion mor_disp_from_z_iso : z_iso_disp >-> mor_disp. Definition is_z_iso_disp_from_z_iso {C : precategory} {D : disp_cat_data C} {x y : C} {f : z_iso x y}{xx : D x} {yy : D y} (i : z_iso_disp f xx yy) : is_z_iso_disp f i := pr2 i. - Coercion is_z_iso_disp_from_z_iso : z_iso_disp >-> is_z_iso_disp. + #[reversible] Coercion is_z_iso_disp_from_z_iso : z_iso_disp >-> is_z_iso_disp. Definition inv_mor_disp_from_z_iso {C : precategory} {D : disp_cat_data C} {x y : C} {f : z_iso x y}{xx : D x} {yy : D y} diff --git a/UniMath/CategoryTheory/DisplayedCats/MoreFibrations/Prefibrations.v b/UniMath/CategoryTheory/DisplayedCats/MoreFibrations/Prefibrations.v index 843bf710ee..71d6840efe 100644 --- a/UniMath/CategoryTheory/DisplayedCats/MoreFibrations/Prefibrations.v +++ b/UniMath/CategoryTheory/DisplayedCats/MoreFibrations/Prefibrations.v @@ -52,7 +52,7 @@ Proof. intros H d'' hh. apply H. Defined. -Coercion pre'_implies_pre : is_pre'cartesian >-> is_precartesian. +#[reversible] Coercion pre'_implies_pre : is_pre'cartesian >-> is_precartesian. Definition pre_implies_pre' {C : category} {D : disp_cat C} @@ -190,7 +190,7 @@ Definition object_of_precartesian_lift (fd : precartesian_lift d f) : D c' := pr1 fd. -Coercion object_of_precartesian_lift : precartesian_lift >-> ob_disp. +#[reversible] Coercion object_of_precartesian_lift : precartesian_lift >-> ob_disp. Definition object_of_pre'cartesian_lift {C : category} {D : disp_cat C} @@ -198,7 +198,7 @@ Definition object_of_pre'cartesian_lift (fd : pre'cartesian_lift d f) : D c' := pr1 fd. -Coercion object_of_pre'cartesian_lift : pre'cartesian_lift >-> ob_disp. +#[reversible] Coercion object_of_pre'cartesian_lift : pre'cartesian_lift >-> ob_disp. Definition mor_disp_of_precartesian_lift {C : category} {D : disp_cat C} @@ -206,7 +206,7 @@ Definition mor_disp_of_precartesian_lift (fd : precartesian_lift d f) : (fd : D c') -->[f] d := pr1 (pr2 fd). -Coercion mor_disp_of_precartesian_lift : precartesian_lift >-> mor_disp. +#[reversible] Coercion mor_disp_of_precartesian_lift : precartesian_lift >-> mor_disp. Definition mor_disp_of_pre'cartesian_lift {C : category} {D : disp_cat C} @@ -214,7 +214,7 @@ Definition mor_disp_of_pre'cartesian_lift (fd : pre'cartesian_lift d f) : (fd : D c') -->[f] d := pr1 (pr2 fd). -Coercion mor_disp_of_pre'cartesian_lift : pre'cartesian_lift >-> mor_disp. +#[reversible] Coercion mor_disp_of_pre'cartesian_lift : pre'cartesian_lift >-> mor_disp. Definition precartesian_lift_is_precartesian {C : category} {D : disp_cat C} @@ -222,7 +222,7 @@ Definition precartesian_lift_is_precartesian (fd : precartesian_lift d f) : is_precartesian fd := pr2 (pr2 fd). -Coercion precartesian_lift_is_precartesian : precartesian_lift >-> is_precartesian. +#[reversible] Coercion precartesian_lift_is_precartesian : precartesian_lift >-> is_precartesian. Definition pre'cartesian_lift_is_pre'cartesian {C : category} {D : disp_cat C} @@ -230,7 +230,7 @@ Definition pre'cartesian_lift_is_pre'cartesian (fd : pre'cartesian_lift d f) : is_pre'cartesian fd := pr2 (pr2 fd). -Coercion pre'cartesian_lift_is_pre'cartesian : pre'cartesian_lift >-> is_pre'cartesian. +#[reversible] Coercion pre'cartesian_lift_is_pre'cartesian : pre'cartesian_lift >-> is_pre'cartesian. Definition pre'_implies_precartesian_lift {C : category} {D : disp_cat C} @@ -242,7 +242,7 @@ Proof. apply pre'_implies_pre. exact (pr2 (pr2 fd)). Defined. -Coercion pre'_implies_precartesian_lift : pre'cartesian_lift >-> precartesian_lift. +#[reversible] Coercion pre'_implies_precartesian_lift : pre'cartesian_lift >-> precartesian_lift. Definition pre_implies_pre'cartesian_lift {C : category} {D : disp_cat C} @@ -277,7 +277,7 @@ Proof. apply pre_implies_pre'cartesian_lift. apply H. Defined. -Coercion pre_implies_pre'cleaving : precleaving >-> pre'cleaving. +#[reversible] Coercion pre_implies_pre'cleaving : precleaving >-> pre'cleaving. Definition pre'_implies_precleaving {C : category} (D : disp_cat C) @@ -312,7 +312,7 @@ Proof. apply pre'_implies_precleaving. exact (pr2 F). Defined. -Coercion pre'_implies_prefibration : pre'fibration >-> prefibration. +#[reversible] Coercion pre'_implies_prefibration : pre'fibration >-> prefibration. Definition pre_implies_pre'fibration (C : category) diff --git a/UniMath/CategoryTheory/DisplayedCats/NaturalTransformations.v b/UniMath/CategoryTheory/DisplayedCats/NaturalTransformations.v index 394a1fbd68..b8bcdc4b24 100644 --- a/UniMath/CategoryTheory/DisplayedCats/NaturalTransformations.v +++ b/UniMath/CategoryTheory/DisplayedCats/NaturalTransformations.v @@ -86,7 +86,7 @@ Section Disp_Nat_Trans. R' x xx -->[ a x ] R x xx := pr1 b x xx. - Coercion disp_nat_trans_pr1 : disp_nat_trans >-> Funclass. + #[reversible] Coercion disp_nat_trans_pr1 : disp_nat_trans >-> Funclass. Definition disp_nat_trans_ax {C' C : precategory_data} @@ -781,7 +781,7 @@ Definition disp_nat_z_iso_to_trans {α: nat_z_iso F G} (µ : disp_nat_z_iso DF DG α) : disp_nat_trans α DF DG := pr1 µ. -Coercion disp_nat_z_iso_to_trans : disp_nat_z_iso >-> disp_nat_trans. +#[reversible] Coercion disp_nat_z_iso_to_trans : disp_nat_z_iso >-> disp_nat_trans. End disp_nat_iso. diff --git a/UniMath/CategoryTheory/DisplayedCats/Structures/CartesianStructure.v b/UniMath/CategoryTheory/DisplayedCats/Structures/CartesianStructure.v index c1dde61b27..c1f88b2c3a 100644 --- a/UniMath/CategoryTheory/DisplayedCats/Structures/CartesianStructure.v +++ b/UniMath/CategoryTheory/DisplayedCats/Structures/CartesianStructure.v @@ -73,7 +73,7 @@ Definition hset_struct_data Definition hset_struct_data_to_fam (P : hset_struct_data) : hSet → UU := pr1 P. -Coercion hset_struct_data_to_fam : hset_struct_data >-> Funclass. +#[reversible] Coercion hset_struct_data_to_fam : hset_struct_data >-> Funclass. Definition mor_hset_struct (P : hset_struct_data) @@ -119,7 +119,7 @@ Definition hset_struct : UU := ∑ (P : hset_struct_data), hset_struct_laws P. -Coercion hset_struct_to_data +#[reversible] Coercion hset_struct_to_data (P : hset_struct) : hset_struct_data := pr1 P. @@ -366,7 +366,7 @@ Definition hset_cartesian_struct_data (PY : P Y), P (X × Y)%set). -Coercion hset_cartesian_struct_datat_to_struct +#[reversible] Coercion hset_cartesian_struct_datat_to_struct (P : hset_cartesian_struct_data) : hset_struct := pr1 P. @@ -426,7 +426,7 @@ Definition hset_cartesian_struct : UU := ∑ (P : hset_cartesian_struct_data), hset_cartesian_struct_laws P. -Coercion hset_cartesian_struct_to_data +#[reversible] Coercion hset_cartesian_struct_to_data (P : hset_cartesian_struct) : hset_cartesian_struct_data := pr1 P. @@ -711,7 +711,7 @@ Definition discrete_hset_struct_data_ob : P X := pr1 PX X. -Coercion discrete_hset_struct_data_ob : discrete_hset_struct_data >-> Funclass. +#[reversible] Coercion discrete_hset_struct_data_ob : discrete_hset_struct_data >-> Funclass. Proposition discrete_hset_struct_data_mor {P : hset_struct} @@ -737,7 +737,7 @@ Definition discrete_hset_struct := ∑ (PX : discrete_hset_struct_data P), discrete_hset_struct_laws PX. -Coercion discrete_hset_struct_to_data +#[reversible] Coercion discrete_hset_struct_to_data {P : hset_struct} (PX : discrete_hset_struct P) : discrete_hset_struct_data P diff --git a/UniMath/CategoryTheory/DisplayedCats/Structures/StructureLimitsAndColimits.v b/UniMath/CategoryTheory/DisplayedCats/Structures/StructureLimitsAndColimits.v index 3927e01a4d..db36637d90 100644 --- a/UniMath/CategoryTheory/DisplayedCats/Structures/StructureLimitsAndColimits.v +++ b/UniMath/CategoryTheory/DisplayedCats/Structures/StructureLimitsAndColimits.v @@ -65,7 +65,7 @@ Definition struct_fun_to_fun : X → Y := pr1 f. -Coercion struct_fun_to_fun : struct_fun >-> Funclass. +#[reversible] Coercion struct_fun_to_fun : struct_fun >-> Funclass. Definition struct_fun_hSet {P : hset_struct} @@ -106,7 +106,7 @@ Definition hset_cartesian_closed_struct_data (constP : struct_contains_constant P), closed_under_fun_data P. -Coercion hset_cartesian_closed_struct_data_to_struct +#[reversible] Coercion hset_cartesian_closed_struct_data_to_struct (P : hset_cartesian_closed_struct_data) : hset_cartesian_struct := pr1 P. @@ -177,7 +177,7 @@ Definition hset_cartesian_closed_struct : UU := ∑ (P : hset_cartesian_closed_struct_data), closed_under_fun_laws P. -Coercion hset_cartesian_closed_struct_to_data +#[reversible] Coercion hset_cartesian_closed_struct_to_data (P : hset_cartesian_closed_struct) : hset_cartesian_closed_struct_data := pr1 P. @@ -312,7 +312,7 @@ Definition hset_equalizer_struct : UU := ∑ (EP : hset_equalizer_struct_data P), hset_equalizer_struct_laws EP. -Coercion hset_equalizer_struct_to_data +#[reversible] Coercion hset_equalizer_struct_to_data {P : hset_struct} (EP : hset_equalizer_struct P) : hset_equalizer_struct_data P @@ -450,7 +450,7 @@ Definition hset_coequalizer_struct : UU := ∑ (EP : hset_coequalizer_struct_data P), hset_coequalizer_struct_laws EP. -Coercion hset_coequalizer_struct_to_data +#[reversible] Coercion hset_coequalizer_struct_to_data {P : hset_struct} (EP : hset_coequalizer_struct P) : hset_coequalizer_struct_data P @@ -576,7 +576,7 @@ Definition hset_struct_type_prod_to_data : P (forall_hSet D) := pr1 HP D PD. -Coercion hset_struct_type_prod_to_data : hset_struct_type_prod >-> Funclass. +#[reversible] Coercion hset_struct_type_prod_to_data : hset_struct_type_prod >-> Funclass. Definition hset_struct_type_prod_ob {P : hset_struct} @@ -688,7 +688,7 @@ Definition pointed_hset_struct : UU := ∑ (Pt : pointed_hset_struct_data P), pointed_hset_struct_laws Pt. -Coercion pointed_hset_struct_to_data +#[reversible] Coercion pointed_hset_struct_to_data {P : hset_struct} (Pt : pointed_hset_struct P) : pointed_hset_struct_data P @@ -787,7 +787,7 @@ Definition hset_binary_coprod_struct : UU := ∑ (EP : hset_binary_coprod_struct_data P), hset_binary_coprod_struct_laws EP. -Coercion hset_binary_coprod_struct_to_data +#[reversible] Coercion hset_binary_coprod_struct_to_data {P : hset_struct} (EP : hset_binary_coprod_struct P) : hset_binary_coprod_struct_data P @@ -914,7 +914,7 @@ Definition hset_struct_set_coprod_to_data : P (∑ (i : I), D i)%set := pr1 HP D PD. -Coercion hset_struct_set_coprod_to_data : hset_struct_set_coprod >-> Funclass. +#[reversible] Coercion hset_struct_set_coprod_to_data : hset_struct_set_coprod >-> Funclass. Definition hset_struct_set_coprod_ob {P : hset_struct} diff --git a/UniMath/CategoryTheory/DisplayedCats/Structures/StructuresSmashProduct.v b/UniMath/CategoryTheory/DisplayedCats/Structures/StructuresSmashProduct.v index 155b2f68c2..b39096f2b1 100644 --- a/UniMath/CategoryTheory/DisplayedCats/Structures/StructuresSmashProduct.v +++ b/UniMath/CategoryTheory/DisplayedCats/Structures/StructuresSmashProduct.v @@ -359,7 +359,7 @@ Definition hset_struct_with_smash_setquot : P (setquotinset (smash_eqrel P Pt PX PY)) := pr21 SP X Y PX PY. -Coercion hset_struct_with_smash_setquot : hset_struct_with_smash >-> Funclass. +#[reversible] Coercion hset_struct_with_smash_setquot : hset_struct_with_smash >-> Funclass. Definition hset_struct_with_smash_setquot_ob {P : hset_cartesian_struct} @@ -712,7 +712,7 @@ Definition hset_struct_with_smash_closed_adj (** 7. Accessores for structures with an pointed hom-adjunction *) -Coercion hset_struct_with_smash_closed_to_point +#[reversible] Coercion hset_struct_with_smash_closed_to_point {P : hset_cartesian_struct} {Pt : pointed_hset_struct P} {SP : hset_struct_with_smash P Pt} @@ -731,7 +731,7 @@ Definition hset_struct_with_smash_closed_adj_to_hom : P (@homset (category_of_hset_struct P) (X ,, PX) (Y ,, PY)) := pr11 PC X Y PX PY. -Coercion hset_struct_with_smash_closed_adj_to_hom +#[reversible] Coercion hset_struct_with_smash_closed_adj_to_hom : hset_struct_with_smash_closed_adj >-> Funclass. Definition hset_struct_smash_curry @@ -811,12 +811,12 @@ Definition hset_struct_with_smash_closed (PC : hset_struct_with_smash_closed_adj SP), hset_struct_with_smash_closed_laws_enrich PC. -Coercion hset_struct_with_smash_closed_to_struct +#[reversible] Coercion hset_struct_with_smash_closed_to_struct (PC : hset_struct_with_smash_closed) : hset_cartesian_struct := pr1 PC. -Coercion hset_struct_with_smash_closed_point +#[reversible] Coercion hset_struct_with_smash_closed_point (PC : hset_struct_with_smash_closed) : pointed_hset_struct PC := pr12 PC. diff --git a/UniMath/CategoryTheory/DisplayedCats/Univalence.v b/UniMath/CategoryTheory/DisplayedCats/Univalence.v index d34344a9ac..cef5887b1e 100644 --- a/UniMath/CategoryTheory/DisplayedCats/Univalence.v +++ b/UniMath/CategoryTheory/DisplayedCats/Univalence.v @@ -72,12 +72,12 @@ Section Univalent_Categories. Definition disp_cat_of_disp_univalent_cat {C} (D : disp_univalent_category C) : disp_cat C := pr1 D. - Coercion disp_cat_of_disp_univalent_cat : disp_univalent_category >-> disp_cat. + #[reversible] Coercion disp_cat_of_disp_univalent_cat : disp_univalent_category >-> disp_cat. Definition disp_univalent_category_is_univalent_disp {C} (D : disp_univalent_category C) : is_univalent_disp D := pr2 D. - Coercion disp_univalent_category_is_univalent_disp : disp_univalent_category >-> is_univalent_disp. + #[reversible] Coercion disp_univalent_category_is_univalent_disp : disp_univalent_category >-> is_univalent_disp. Definition isotoid_disp {C} {D : disp_cat C} (D_cat : is_univalent_disp D) diff --git a/UniMath/CategoryTheory/ElementaryTopos.v b/UniMath/CategoryTheory/ElementaryTopos.v index 2d70319525..855e11a098 100644 --- a/UniMath/CategoryTheory/ElementaryTopos.v +++ b/UniMath/CategoryTheory/ElementaryTopos.v @@ -81,7 +81,7 @@ Definition Topos_PowerObject : PowerObject (Topos_BinProducts) (Topos_SubobjectC End ToposAccessor. -Coercion Topos_category : Topos >->category. +#[reversible] Coercion Topos_category : Topos >->category. Section Topos. diff --git a/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedBinaryCoproducts.v b/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedBinaryCoproducts.v index 8c5f7c3f26..57d83498fa 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedBinaryCoproducts.v +++ b/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedBinaryCoproducts.v @@ -54,7 +54,7 @@ Section EnrichedCoproducts. × I_{V} --> E ⦃ y , a ⦄. - Coercion ob_enriched_binary_coprod_cocone + #[reversible] Coercion ob_enriched_binary_coprod_cocone (a : enriched_binary_coprod_cocone) : C := pr1 a. @@ -112,12 +112,12 @@ Section EnrichedCoproducts. := ∑ (a : enriched_binary_coprod_cocone), is_binary_coprod_enriched a. - Coercion cone_of_binary_coprod_enriched + #[reversible] Coercion cone_of_binary_coprod_enriched (a : binary_coprod_enriched) : enriched_binary_coprod_cocone := pr1 a. - Coercion binary_coprod_enriched_is_coprod + #[reversible] Coercion binary_coprod_enriched_is_coprod (a : binary_coprod_enriched) : is_binary_coprod_enriched a := pr2 a. @@ -612,7 +612,7 @@ Definition cat_with_enrichment_coproduct : UU := ∑ (C : cat_with_enrichment V), enrichment_binary_coprod C. -Coercion cat_with_enrichment_coproduct_to_cat_with_enrichment +#[reversible] Coercion cat_with_enrichment_coproduct_to_cat_with_enrichment {V : monoidal_cat} (C : cat_with_enrichment_coproduct V) : cat_with_enrichment V diff --git a/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedCoequalizers.v b/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedCoequalizers.v index c67f7a387d..241737ec17 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedCoequalizers.v +++ b/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedCoequalizers.v @@ -54,7 +54,7 @@ Section EnrichedCoequalizer. (p : I_{V} --> E ⦃ y , a ⦄), f · enriched_to_arr E p = g · enriched_to_arr E p. - Coercion ob_enriched_coequalizer_cocone + #[reversible] Coercion ob_enriched_coequalizer_cocone (a : enriched_coequalizer_cocone) : C := pr1 a. @@ -123,12 +123,12 @@ Section EnrichedCoequalizer. := ∑ (a : enriched_coequalizer_cocone), is_coequalizer_enriched a. - Coercion cocone_of_coequalizer_enriched + #[reversible] Coercion cocone_of_coequalizer_enriched (a : coequalizer_enriched) : enriched_coequalizer_cocone := pr1 a. - Coercion coequalizer_enriched_is_coequalizer + #[reversible] Coercion coequalizer_enriched_is_coequalizer (a : coequalizer_enriched) : is_coequalizer_enriched a := pr2 a. @@ -555,7 +555,7 @@ Definition cat_with_enrichment_coequalizers : UU := ∑ (C : cat_with_enrichment V), enrichment_coequalizers C. -Coercion cat_with_enrichment_coequalizers_to_cat_with_enrichment +#[reversible] Coercion cat_with_enrichment_coequalizers_to_cat_with_enrichment {V : monoidal_cat} (C : cat_with_enrichment_coequalizers V) : cat_with_enrichment V diff --git a/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedColimits.v b/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedColimits.v index 8a32863b92..7e0bda1fb3 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedColimits.v +++ b/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedColimits.v @@ -58,7 +58,7 @@ Section EnrichedColimit. = #W f · fs j. - Coercion ob_enriched_colim_cocone + #[reversible] Coercion ob_enriched_colim_cocone (a : enriched_colim_cocone) : C := pr1 a. @@ -209,7 +209,7 @@ Section EnrichedColimit. := ∑ (a : enriched_colim_cocone), is_colim_enriched a. - Coercion cocone_of_colim_enriched + #[reversible] Coercion cocone_of_colim_enriched (a : colim_enriched) : enriched_colim_cocone := pr1 a. diff --git a/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedConicalColimits.v b/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedConicalColimits.v index 18530d6273..ceba9f3be9 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedConicalColimits.v +++ b/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedConicalColimits.v @@ -61,7 +61,7 @@ Section EnrichedConicalColimit. ∏ (i j : I) (f : i --> j), #D f · ps j = ps i. - Coercion ob_enriched_conical_colim_cocone + #[reversible] Coercion ob_enriched_conical_colim_cocone (a : enriched_conical_colim_cocone) : C := pr1 a. @@ -145,12 +145,12 @@ Section EnrichedConicalColimit. := ∑ (a : enriched_conical_colim_cocone), is_conical_colim_enriched a. - Coercion cocone_of_enriched_conical_colim_cocone + #[reversible] Coercion cocone_of_enriched_conical_colim_cocone (a : conical_colim_enriched) : enriched_conical_colim_cocone := pr1 a. - Coercion conical_colim_enriched_is_conical_colim + #[reversible] Coercion conical_colim_enriched_is_conical_colim (a : conical_colim_enriched) : is_conical_colim_enriched a := pr2 a. diff --git a/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedCopowers.v b/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedCopowers.v index 86e82ffd41..1784cbcf7d 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedCopowers.v +++ b/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedCopowers.v @@ -64,7 +64,7 @@ Section EnrichedCopowers. : UU := ∑ (a : C), v --> E ⦃ x , a ⦄. - Coercion ob_copower_cocone + #[reversible] Coercion ob_copower_cocone (a : copower_cocone) : C := pr1 a. @@ -311,7 +311,7 @@ Definition cat_with_enrichment_copower : UU := ∑ (C : cat_with_enrichment V), enrichment_copower C. -Coercion cat_with_enrichment_copower_to_cat_with_enrichment +#[reversible] Coercion cat_with_enrichment_copower_to_cat_with_enrichment {V : sym_mon_closed_cat} (C : cat_with_enrichment_copower V) : cat_with_enrichment V diff --git a/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedCoproducts.v b/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedCoproducts.v index 602a461037..1d302a2cd5 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedCoproducts.v +++ b/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedCoproducts.v @@ -47,7 +47,7 @@ Section EnrichedCoproducts. : UU := ∑ (a : C), ∏ (j : J), I_{V} --> E ⦃ D j , a ⦄. - Coercion ob_enriched_coprod_cocone + #[reversible] Coercion ob_enriched_coprod_cocone (a : enriched_coprod_cocone) : C := pr1 a. @@ -96,12 +96,12 @@ Section EnrichedCoproducts. := ∑ (a : enriched_coprod_cocone), is_coprod_enriched a. - Coercion cocone_of_coprod_enriched + #[reversible] Coercion cocone_of_coprod_enriched (a : coprod_enriched) : enriched_coprod_cocone := pr1 a. - Coercion coprod_enriched_is_coprod + #[reversible] Coercion coprod_enriched_is_coprod (a : coprod_enriched) : is_coprod_enriched a := pr2 a. @@ -509,7 +509,7 @@ Definition cat_with_enrichment_coproduct : UU := ∑ (C : cat_with_enrichment V), enrichment_coprod C J. -Coercion cat_with_enrichment_coproduct_to_cat_with_enrichment +#[reversible] Coercion cat_with_enrichment_coproduct_to_cat_with_enrichment {V : monoidal_cat} {J : UU} (C : cat_with_enrichment_coproduct V J) diff --git a/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedInitial.v b/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedInitial.v index 92382e7b6c..2ea37bd8bf 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedInitial.v +++ b/UniMath/CategoryTheory/EnrichedCats/Colimits/EnrichedInitial.v @@ -56,12 +56,12 @@ Section EnrichedInitial. : UU := ∑ (x : C), is_initial_enriched x. - Coercion initial_enriched_to_ob + #[reversible] Coercion initial_enriched_to_ob (x : initial_enriched) : C := pr1 x. - Coercion initial_enriched_to_is_initial + #[reversible] Coercion initial_enriched_to_is_initial (x : initial_enriched) : is_initial_enriched x := pr2 x. @@ -229,7 +229,7 @@ Definition cat_with_enrichment_initial : UU := ∑ (C : cat_with_enrichment V), initial_enriched C. -Coercion cat_with_enrichment_initial_to_cat_with_enrichment +#[reversible] Coercion cat_with_enrichment_initial_to_cat_with_enrichment {V : monoidal_cat} (C : cat_with_enrichment_initial V) : cat_with_enrichment V diff --git a/UniMath/CategoryTheory/EnrichedCats/Enriched/Enriched.v b/UniMath/CategoryTheory/EnrichedCats/Enriched/Enriched.v index abef5dda7d..02a620475d 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Enriched/Enriched.v +++ b/UniMath/CategoryTheory/EnrichedCats/Enriched/Enriched.v @@ -83,7 +83,7 @@ Section Def. enriched_cat_mor y z ⊗ enriched_cat_mor x y --> enriched_cat_mor x z := pr2 (pr2 (pr2 d)) x y z. - Coercion enriched_cat_ob : enriched_precat_data >-> UU. + #[reversible] Coercion enriched_cat_ob : enriched_precat_data >-> UU. (** Constructor. Use like so: [use make_enriched_cat_data] *) Definition make_enriched_precat_data (C : UU) (mor : ∏ x y : C, ob Mon_V) @@ -149,7 +149,7 @@ Section Def. Definition enriched_precat_to_enriched_precat_data : enriched_precat -> enriched_precat_data := pr1. - Coercion enriched_precat_to_enriched_precat_data : + #[reversible] Coercion enriched_precat_to_enriched_precat_data : enriched_precat >-> enriched_precat_data. Definition make_enriched_precat (d : enriched_precat_data) (idax : enriched_id_ax d) @@ -185,7 +185,7 @@ Section Functors. (** Accessors *) Definition enriched_functor_on_objects (F : enriched_functor_data) : enriched_cat_ob D -> enriched_cat_ob E := pr1 F. - Coercion enriched_functor_on_objects : enriched_functor_data >-> Funclass. + #[reversible] Coercion enriched_functor_on_objects : enriched_functor_data >-> Funclass. Definition enriched_functor_on_morphisms (F : enriched_functor_data) : ∏ x y : enriched_cat_ob D, Mon_V⟦enriched_cat_mor x y, enriched_cat_mor (F x) (F y)⟧ := pr2 F. @@ -222,7 +222,7 @@ Section Functors. Definition enriched_functor_to_enriched_functor_data (F : enriched_functor) : enriched_functor_data := pr1 F. - Coercion enriched_functor_to_enriched_functor_data : + #[reversible] Coercion enriched_functor_to_enriched_functor_data : enriched_functor >-> enriched_functor_data. (** Accessors for axioms*) @@ -658,7 +658,7 @@ Definition enriched_nat_trans_law {A B : enriched_precat} {F G : enriched_functo Definition enriched_nat_trans {A B : enriched_precat} (F G : enriched_functor A B) := ∑ a : enriched_nat_trans_data F G, enriched_nat_trans_law a. Definition enriched_nat_trans_data_from_enriched_nat_trans {A B : enriched_precat} {F G : enriched_functor A B} (a : enriched_nat_trans F G) : ∏ a : A, I --> enriched_cat_mor (F a) (G a) := pr1 a. -Coercion enriched_nat_trans_data_from_enriched_nat_trans : enriched_nat_trans >-> Funclass. +#[reversible] Coercion enriched_nat_trans_data_from_enriched_nat_trans : enriched_nat_trans >-> Funclass. Definition enriched_nat_trans_ax {A B : enriched_precat} {F G : enriched_functor A B} (a : enriched_nat_trans F G) :enriched_nat_trans_law a := pr2 a. diff --git a/UniMath/CategoryTheory/EnrichedCats/Enrichment.v b/UniMath/CategoryTheory/EnrichedCats/Enrichment.v index 7d7e521402..89ab4f1abc 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Enrichment.v +++ b/UniMath/CategoryTheory/EnrichedCats/Enrichment.v @@ -174,7 +174,7 @@ Definition enrichment : UU := ∑ (E : enrichment_data C V), enrichment_laws E. -Coercion enrichment_to_data +#[reversible] Coercion enrichment_to_data {C : category} {V : monoidal_cat} (E : enrichment C V) @@ -336,13 +336,13 @@ Definition cat_with_enrichment : UU := ∑ (C : category), enrichment C V. -Coercion cat_with_enrichment_to_cat +#[reversible] Coercion cat_with_enrichment_to_cat {V : monoidal_cat} (E : cat_with_enrichment V) : category := pr1 E. -Coercion cat_with_enrichment_to_enrichment +#[reversible] Coercion cat_with_enrichment_to_enrichment {V : monoidal_cat} (E : cat_with_enrichment V) : enrichment E V diff --git a/UniMath/CategoryTheory/EnrichedCats/EnrichmentAdjunction.v b/UniMath/CategoryTheory/EnrichedCats/EnrichmentAdjunction.v index 47c9ae28f2..32c9ab3cc2 100644 --- a/UniMath/CategoryTheory/EnrichedCats/EnrichmentAdjunction.v +++ b/UniMath/CategoryTheory/EnrichedCats/EnrichmentAdjunction.v @@ -116,7 +116,7 @@ Definition enriched_adjunction : UU := ∑ (L : adjunction C₁ C₂), adjunction_enrichment L E₁ E₂. -Coercion enriched_adjunction_to_adjunction +#[reversible] Coercion enriched_adjunction_to_adjunction {V : monoidal_cat} {C₁ C₂ : category} {E₁ : enrichment C₁ V} @@ -125,7 +125,7 @@ Coercion enriched_adjunction_to_adjunction : adjunction C₁ C₂ := pr1 L. -Coercion enriched_adjunction_to_enrichment +#[reversible] Coercion enriched_adjunction_to_enrichment {V : monoidal_cat} {C₁ C₂ : category} {E₁ : enrichment C₁ V} diff --git a/UniMath/CategoryTheory/EnrichedCats/EnrichmentFunctor.v b/UniMath/CategoryTheory/EnrichedCats/EnrichmentFunctor.v index 7462210b55..b339fd82de 100644 --- a/UniMath/CategoryTheory/EnrichedCats/EnrichmentFunctor.v +++ b/UniMath/CategoryTheory/EnrichedCats/EnrichmentFunctor.v @@ -111,7 +111,7 @@ Definition functor_enrichment_to_data : E₁ ⦃ x, y ⦄ --> E₂ ⦃ F x, F y ⦄ := pr1 FE x y. -Coercion functor_enrichment_to_data : functor_enrichment >-> Funclass. +#[reversible] Coercion functor_enrichment_to_data : functor_enrichment >-> Funclass. Section FunctorLaws. Context {V : monoidal_cat} @@ -172,7 +172,7 @@ Definition functor_with_enrichment : UU := ∑ (F : E₁ ⟶ E₂), functor_enrichment F E₁ E₂. -Coercion functor_with_enrichment_to_functor +#[reversible] Coercion functor_with_enrichment_to_functor {V : monoidal_cat} {E₁ : cat_with_enrichment V} {E₂ : cat_with_enrichment V} diff --git a/UniMath/CategoryTheory/EnrichedCats/EnrichmentMonad.v b/UniMath/CategoryTheory/EnrichedCats/EnrichmentMonad.v index 22518d66fe..fdc3ccebb1 100644 --- a/UniMath/CategoryTheory/EnrichedCats/EnrichmentMonad.v +++ b/UniMath/CategoryTheory/EnrichedCats/EnrichmentMonad.v @@ -39,7 +39,7 @@ Definition monad_enrichment × nat_trans_enrichment (μ M) (functor_comp_enrichment EM EM) EM. -Coercion endo_of_monad_enrichment +#[reversible] Coercion endo_of_monad_enrichment {V : monoidal_cat} {C : category} {E : enrichment C V} @@ -76,7 +76,7 @@ Definition enriched_monad : UU := ∑ (M : Monad C), monad_enrichment E M. -Coercion enriched_monad_to_monad +#[reversible] Coercion enriched_monad_to_monad {V : monoidal_cat} {C : category} {E : enrichment C V} diff --git a/UniMath/CategoryTheory/EnrichedCats/Examples/ChangeOfBase.v b/UniMath/CategoryTheory/EnrichedCats/Examples/ChangeOfBase.v index 658c8b3581..48b1ae26c4 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Examples/ChangeOfBase.v +++ b/UniMath/CategoryTheory/EnrichedCats/Examples/ChangeOfBase.v @@ -112,7 +112,7 @@ Definition preserve_underlying_to_data : I_{V₂} --> F v → I_{V₁} --> v := pr1 Fv v. -Coercion preserve_underlying_to_data : preserve_underlying >-> Funclass. +#[reversible] Coercion preserve_underlying_to_data : preserve_underlying >-> Funclass. Section Laws. Context {V₁ V₂ : monoidal_cat} diff --git a/UniMath/CategoryTheory/EnrichedCats/Examples/PosetEnriched.v b/UniMath/CategoryTheory/EnrichedCats/Examples/PosetEnriched.v index facfcbf726..1861fd2218 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Examples/PosetEnriched.v +++ b/UniMath/CategoryTheory/EnrichedCats/Examples/PosetEnriched.v @@ -100,7 +100,7 @@ Definition poset_enrichment_hom_poset : PartialOrder (x --> y ,, homset_property C x y) := pr1 PEC x y. -Coercion poset_enrichment_hom_poset : poset_enrichment >-> Funclass. +#[reversible] Coercion poset_enrichment_hom_poset : poset_enrichment >-> Funclass. Proposition poset_enrichment_comp_l {C : category} diff --git a/UniMath/CategoryTheory/EnrichedCats/Examples/SmashStructureEnriched.v b/UniMath/CategoryTheory/EnrichedCats/Examples/SmashStructureEnriched.v index 53e5812654..fd6d589be3 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Examples/SmashStructureEnriched.v +++ b/UniMath/CategoryTheory/EnrichedCats/Examples/SmashStructureEnriched.v @@ -129,7 +129,7 @@ Section FixAStructureWithSmash. : P (homset x y) := pr1 SC x y. - Coercion smash_struct_enrichment_to_data : smash_struct_enrichment >-> Funclass. + #[reversible] Coercion smash_struct_enrichment_to_data : smash_struct_enrichment >-> Funclass. Proposition smash_struct_enrichment_comp {C : category} diff --git a/UniMath/CategoryTheory/EnrichedCats/Examples/StructureEnriched.v b/UniMath/CategoryTheory/EnrichedCats/Examples/StructureEnriched.v index d3042b26a8..a1f9b05032 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Examples/StructureEnriched.v +++ b/UniMath/CategoryTheory/EnrichedCats/Examples/StructureEnriched.v @@ -122,7 +122,7 @@ Section FixAStructure. : P (homset x y) := pr1 SC x y. - Coercion struct_enrichment_to_data : struct_enrichment >-> Funclass. + #[reversible] Coercion struct_enrichment_to_data : struct_enrichment >-> Funclass. Proposition struct_enrichment_comp {C : category} diff --git a/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedBinaryProducts.v b/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedBinaryProducts.v index 55379719d2..13dc7f92f9 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedBinaryProducts.v +++ b/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedBinaryProducts.v @@ -58,7 +58,7 @@ Section EnrichedProducts. × I_{V} --> E ⦃ a , y ⦄. - Coercion ob_enriched_binary_prod_cone + #[reversible] Coercion ob_enriched_binary_prod_cone (a : enriched_binary_prod_cone) : C := pr1 a. @@ -116,12 +116,12 @@ Section EnrichedProducts. := ∑ (a : enriched_binary_prod_cone), is_binary_prod_enriched a. - Coercion cone_of_binary_prod_enriched + #[reversible] Coercion cone_of_binary_prod_enriched (a : binary_prod_enriched) : enriched_binary_prod_cone := pr1 a. - Coercion binary_prod_enriched_is_prod + #[reversible] Coercion binary_prod_enriched_is_prod (a : binary_prod_enriched) : is_binary_prod_enriched a := pr2 a. @@ -608,7 +608,7 @@ Definition cat_with_enrichment_binary_prod : UU := ∑ (C : cat_with_enrichment V), enrichment_binary_prod C. -Coercion cat_with_enrichment_binary_prod_to_cat_with_enrichment +#[reversible] Coercion cat_with_enrichment_binary_prod_to_cat_with_enrichment {V : monoidal_cat} (C : cat_with_enrichment_binary_prod V) : cat_with_enrichment V diff --git a/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedConicalLimits.v b/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedConicalLimits.v index 8735118add..c80761d98e 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedConicalLimits.v +++ b/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedConicalLimits.v @@ -60,7 +60,7 @@ Section EnrichedConicalLimit. ∏ (i j : I) (f : i --> j), ps i · #D f = ps j. - Coercion ob_enriched_conical_lim_cone + #[reversible] Coercion ob_enriched_conical_lim_cone (a : enriched_conical_lim_cone) : C := pr1 a. @@ -144,12 +144,12 @@ Section EnrichedConicalLimit. := ∑ (a : enriched_conical_lim_cone), is_conical_lim_enriched a. - Coercion cone_of_conical_lim_enriched + #[reversible] Coercion cone_of_conical_lim_enriched (a : conical_lim_enriched) : enriched_conical_lim_cone := pr1 a. - Coercion enriched_conical_lim_cone_is_conical_lim + #[reversible] Coercion enriched_conical_lim_cone_is_conical_lim (a : conical_lim_enriched) : is_conical_lim_enriched a := pr2 a. diff --git a/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedEqualizers.v b/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedEqualizers.v index dc78808a93..c9691dd0de 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedEqualizers.v +++ b/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedEqualizers.v @@ -51,7 +51,7 @@ Section EnrichedEqualizer. (p : I_{V} --> E ⦃ a , x ⦄), enriched_to_arr E p · f = enriched_to_arr E p · g. - Coercion ob_enriched_equalizer_cone + #[reversible] Coercion ob_enriched_equalizer_cone (a : enriched_equalizer_cone) : C := pr1 a. @@ -120,12 +120,12 @@ Section EnrichedEqualizer. := ∑ (a : enriched_equalizer_cone), is_equalizer_enriched a. - Coercion cone_of_equalizer_enriched + #[reversible] Coercion cone_of_equalizer_enriched (a : equalizer_enriched) : enriched_equalizer_cone := pr1 a. - Coercion equalizer_enriched_is_equalizer + #[reversible] Coercion equalizer_enriched_is_equalizer (a : equalizer_enriched) : is_equalizer_enriched a := pr2 a. @@ -546,7 +546,7 @@ Definition cat_with_enrichment_equalizers : UU := ∑ (C : cat_with_enrichment V), enrichment_equalizers C. -Coercion cat_with_enrichment_equalizers_to_cat_with_enrichment +#[reversible] Coercion cat_with_enrichment_equalizers_to_cat_with_enrichment {V : monoidal_cat} (C : cat_with_enrichment_equalizers V) : cat_with_enrichment V diff --git a/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedLimits.v b/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedLimits.v index 7b65fb581e..2bc5e4f892 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedLimits.v +++ b/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedLimits.v @@ -58,7 +58,7 @@ Section EnrichedLimit. = #W f · fs j. - Coercion ob_enriched_lim_cone + #[reversible] Coercion ob_enriched_lim_cone (a : enriched_lim_cone) : C := pr1 a. @@ -217,7 +217,7 @@ Section EnrichedLimit. := ∑ (a : enriched_lim_cone), is_lim_enriched a. - Coercion cone_of_lim_enriched + #[reversible] Coercion cone_of_lim_enriched (a : lim_enriched) : enriched_lim_cone := pr1 a. diff --git a/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedPowers.v b/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedPowers.v index f4ffe19c98..90a451dbe6 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedPowers.v +++ b/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedPowers.v @@ -54,7 +54,7 @@ Section EnrichedPowers. : UU := ∑ (a : C), v --> E ⦃ a , x ⦄. - Coercion ob_power_cone + #[reversible] Coercion ob_power_cone (a : power_cone) : C := pr1 a. @@ -334,7 +334,7 @@ Definition cat_with_enrichment_power : UU := ∑ (C : cat_with_enrichment V), enrichment_power C. -Coercion cat_with_enrichment_power_to_cat_with_enrichment +#[reversible] Coercion cat_with_enrichment_power_to_cat_with_enrichment {V : sym_mon_closed_cat} (C : cat_with_enrichment_power V) : cat_with_enrichment V diff --git a/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedProducts.v b/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedProducts.v index 7c20565644..76739ab856 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedProducts.v +++ b/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedProducts.v @@ -46,7 +46,7 @@ Section EnrichedProducts. : UU := ∑ (a : C), ∏ (j : J), I_{V} --> E ⦃ a , D j ⦄. - Coercion ob_enriched_prod_cone + #[reversible] Coercion ob_enriched_prod_cone (a : enriched_prod_cone) : C := pr1 a. @@ -95,12 +95,12 @@ Section EnrichedProducts. := ∑ (a : enriched_prod_cone), is_prod_enriched a. - Coercion cone_of_prod_enriched + #[reversible] Coercion cone_of_prod_enriched (a : prod_enriched) : enriched_prod_cone := pr1 a. - Coercion prod_enriched_is_prod + #[reversible] Coercion prod_enriched_is_prod (a : prod_enriched) : is_prod_enriched a := pr2 a. @@ -501,7 +501,7 @@ Definition cat_with_enrichment_product : UU := ∑ (C : cat_with_enrichment V), enrichment_prod C J. -Coercion cat_with_enrichment_product_to_cat_with_enrichment +#[reversible] Coercion cat_with_enrichment_product_to_cat_with_enrichment {V : monoidal_cat} {J : UU} (C : cat_with_enrichment_product V J) diff --git a/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedTerminal.v b/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedTerminal.v index 4a15caeea9..e277ffbd0d 100644 --- a/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedTerminal.v +++ b/UniMath/CategoryTheory/EnrichedCats/Limits/EnrichedTerminal.v @@ -72,12 +72,12 @@ Section EnrichedTerminal. : UU := ∑ (x : C), is_terminal_enriched x. - Coercion terminal_enriched_to_ob + #[reversible] Coercion terminal_enriched_to_ob (x : terminal_enriched) : C := pr1 x. - Coercion terminal_enriched_to_is_terminal + #[reversible] Coercion terminal_enriched_to_is_terminal (x : terminal_enriched) : is_terminal_enriched x := pr2 x. @@ -245,7 +245,7 @@ Definition cat_with_enrichment_terminal : UU := ∑ (C : cat_with_enrichment V), terminal_enriched C. -Coercion cat_with_enrichment_terminal_to_cat_with_enrichment +#[reversible] Coercion cat_with_enrichment_terminal_to_cat_with_enrichment {V : monoidal_cat} (C : cat_with_enrichment_terminal V) : cat_with_enrichment V diff --git a/UniMath/CategoryTheory/Epis.v b/UniMath/CategoryTheory/Epis.v index a23c013c5d..a12bf6aac8 100644 --- a/UniMath/CategoryTheory/Epis.v +++ b/UniMath/CategoryTheory/Epis.v @@ -49,7 +49,7 @@ Section def_epi. (** Gets the arrow out of Epi. *) Definition EpiArrow {x y : C} (E : Epi x y) : C⟦x, y⟧ := pr1 E. - Coercion EpiArrow : Epi >-> precategory_morphisms. + #[reversible] Coercion EpiArrow : Epi >-> precategory_morphisms. Definition EpiisEpi {x y : C} (E : Epi x y) : isEpi E := pr2 E. diff --git a/UniMath/CategoryTheory/Equivalences/CompositesAndInverses.v b/UniMath/CategoryTheory/Equivalences/CompositesAndInverses.v index 46be8fe56f..8c3c7901ed 100644 --- a/UniMath/CategoryTheory/Equivalences/CompositesAndInverses.v +++ b/UniMath/CategoryTheory/Equivalences/CompositesAndInverses.v @@ -43,7 +43,7 @@ Proof. apply (z_iso_is_z_isomorphism (functor_on_z_iso F (make_z_iso' f fH))). Defined. -Coercion left_adj_from_adj_equiv (X Y : category) (K : functor X Y) +#[reversible] Coercion left_adj_from_adj_equiv (X Y : category) (K : functor X Y) (HK : adj_equivalence_of_cats K) : is_left_adjoint K := pr1 HK. (** ** Equivalences *) diff --git a/UniMath/CategoryTheory/Equivalences/Core.v b/UniMath/CategoryTheory/Equivalences/Core.v index ee6923da38..8787f24aea 100644 --- a/UniMath/CategoryTheory/Equivalences/Core.v +++ b/UniMath/CategoryTheory/Equivalences/Core.v @@ -48,7 +48,7 @@ Definition make_forms_equivalence {A B : category} Definition equivalence_of_cats (A B : category) : UU := ∑ (X : adjunction_data A B), forms_equivalence X. -Coercion adjunction_data_from_equivalence_of_cats {A B} +#[reversible] Coercion adjunction_data_from_equivalence_of_cats {A B} (X : equivalence_of_cats A B) : adjunction_data A B := pr1 X. Definition make_equivalence_of_cats {A B : category} @@ -77,7 +77,7 @@ Definition adj_equivalence_of_cats {A B : category} (F : functor A B) : UU := Definition adj_from_equiv (D1 D2 : category) (F : functor D1 D2): adj_equivalence_of_cats F → is_left_adjoint F := λ x, pr1 x. -Coercion adj_from_equiv : adj_equivalence_of_cats >-> is_left_adjoint. +#[reversible] Coercion adj_from_equiv : adj_equivalence_of_cats >-> is_left_adjoint. Definition make_adj_equivalence_of_cats {A B : category} (F : functor A B) (G : functor B A) η ε @@ -153,14 +153,14 @@ Section AdjEquiv. := ∑ F : functor A B, adj_equivalence_of_cats F. - Coercion left_adjequiv (A B : category) + #[reversible] Coercion left_adjequiv (A B : category) (F : adj_equiv A B) : functor A B := pr1 F. - Coercion adj_equiv_of_cats_from_adj {A B : category} + #[reversible] Coercion adj_equiv_of_cats_from_adj {A B : category} (E : adj_equiv A B) : adj_equivalence_of_cats E := pr2 E. - Coercion adj_from_adj_equiv {A B} (F : adj_equiv A B) : adjunction A B. + #[reversible] Coercion adj_from_adj_equiv {A B} (F : adj_equiv A B) : adjunction A B. Proof. use make_adjunction. use(make_adjunction_data F). @@ -172,7 +172,7 @@ Section AdjEquiv. + apply triangle_id_right_ad. Defined. - Coercion equiv_from_adj_equiv {A B} (F : adj_equiv A B) : equivalence_of_cats A B. + #[reversible] Coercion equiv_from_adj_equiv {A B} (F : adj_equiv A B) : equivalence_of_cats A B. Proof. use make_equivalence_of_cats. use(make_adjunction_data F). diff --git a/UniMath/CategoryTheory/ExactCategories/ExactCategories.v b/UniMath/CategoryTheory/ExactCategories/ExactCategories.v index c1e353efbb..372b8ae088 100644 --- a/UniMath/CategoryTheory/ExactCategories/ExactCategories.v +++ b/UniMath/CategoryTheory/ExactCategories/ExactCategories.v @@ -155,10 +155,10 @@ Section Pullbacks. (* move upstream *) Local Open Scope type. Definition IsoArrowTo {M : category} {A A' B:M} (g : A --> B) (g' : A' --> B) := ∑ i : z_iso A A', i · g' = g. - Coercion IsoArrowTo_pr1 {M : category} {A A' B:M} (g : A --> B) (g' : A' --> B) : IsoArrowTo g g' -> z_iso A A' := pr1. + #[reversible] Coercion IsoArrowTo_pr1 {M : category} {A A' B:M} (g : A --> B) (g' : A' --> B) : IsoArrowTo g g' -> z_iso A A' := pr1. Definition IsoArrowFrom {M : category} {A B B':M} (g : A --> B) (g' : A --> B') := ∑ i : z_iso B B', g · i = g'. - Coercion IsoArrowFrom_pr1 {M : category} {A B B':M} (g : A --> B) (g' : A --> B') : IsoArrowFrom g g' -> z_iso B B' := pr1. + #[reversible] Coercion IsoArrowFrom_pr1 {M : category} {A B B':M} (g : A --> B) (g' : A --> B') : IsoArrowFrom g g' -> z_iso B B' := pr1. (* this definition of IsoArrow is asymmetric *) Definition IsoArrow {M : category} {A A' B B':M} (g : A --> B) (g' : A' --> B') := ∑ (i : z_iso A A') (j : z_iso B B'), i · g' = g · j. @@ -514,7 +514,7 @@ Section PreAdditive. Definition ismonoidfun_prop {G H:abgr} (f:G->H) : hProp := make_hProp (ismonoidfun f) (isapropismonoidfun f). Definition PreAdditive_functor (M N:PreAdditive) := ∑ F : M ⟶ N, ∀ A B:M, ismonoidfun_prop (@functor_on_morphisms M N F A B : A --> B -> F A --> F B). - Coercion PreAdditive_functor_to_functor {M N:PreAdditive} : PreAdditive_functor M N -> functor M N := pr1. + #[reversible] Coercion PreAdditive_functor_to_functor {M N:PreAdditive} : PreAdditive_functor M N -> functor M N := pr1. Definition functor_on_morphisms_add {C C' : PreAdditive} (F : PreAdditive_functor C C') { a b : C} : monoidfun (a --> b) (F a --> F b) := monoidfunconstr (pr2 F a b). @@ -882,21 +882,21 @@ End KernelCokernelPairs. Section theDefinition. Definition ExactCategoryData := ∑ M:AdditiveCategory, MorphismPair M -> hProp. (* properties added below *) - Coercion ExactCategoryDataToAdditiveCategory (ME : ExactCategoryData) : AdditiveCategory := pr1 ME. + #[reversible] Coercion ExactCategoryDataToAdditiveCategory (ME : ExactCategoryData) : AdditiveCategory := pr1 ME. Definition isExact {M : ExactCategoryData} (E : MorphismPair M) : hProp := pr2 M E. Definition isExact2 {M : ExactCategoryData} {A B C:M} (f:A-->B) (g:B-->C) := isExact (make_MorphismPair f g). Definition isAdmissibleMonomorphism {M : ExactCategoryData} {A B:M} (i : A --> B) : hProp := ∃ C (p : B --> C), isExact2 i p. Definition AdmissibleMonomorphism {M : ExactCategoryData} (A B:M) : Type := ∑ (i : A --> B), isAdmissibleMonomorphism i. - Coercion AdmMonoToMap {M : ExactCategoryData} {A B:M} : AdmissibleMonomorphism A B -> A --> B := pr1. - Coercion AdmMonoToMap' {M : ExactCategoryData} {A B:M} : AdmissibleMonomorphism A B -> (A --> B)%cat := pr1. + #[reversible] Coercion AdmMonoToMap {M : ExactCategoryData} {A B:M} : AdmissibleMonomorphism A B -> A --> B := pr1. + #[reversible] Coercion AdmMonoToMap' {M : ExactCategoryData} {A B:M} : AdmissibleMonomorphism A B -> (A --> B)%cat := pr1. Definition isAdmissibleEpimorphism {M : ExactCategoryData} {B C:M} (p : B --> C) : hProp := ∃ A (i : A --> B), isExact2 i p. Definition AdmissibleEpimorphism {M : ExactCategoryData} (B C:M) : Type := ∑ (p : B --> C), isAdmissibleEpimorphism p. - Coercion AdmEpiToMap {M : ExactCategoryData} {B C:M} : AdmissibleEpimorphism B C -> B --> C := pr1. - Coercion AdmEpiToMap' {M : ExactCategoryData} {B C:M} : AdmissibleEpimorphism B C -> (B --> C)%cat := pr1. + #[reversible] Coercion AdmEpiToMap {M : ExactCategoryData} {B C:M} : AdmissibleEpimorphism B C -> B --> C := pr1. + #[reversible] Coercion AdmEpiToMap' {M : ExactCategoryData} {B C:M} : AdmissibleEpimorphism B C -> (B --> C)%cat := pr1. Lemma ExactToAdmMono {M : ExactCategoryData} {A B C:M} {i : A --> B} {p : B --> C} : isExact2 i p -> isAdmissibleMonomorphism i. Proof. intros e. exact (hinhpr(C,,p,,e)). @@ -947,7 +947,7 @@ Section theDefinition. (∀ (A B C:M) (i:A-->B) (j:B-->C), hasKernel j ⇒ isAdmissibleEpimorphism (i·j) ⇒ isAdmissibleEpimorphism j)). Definition ExactCategory := ∑ (ME:ExactCategoryData), ExactCategoryProperties ME. - Coercion ExactCategoryToData (M:ExactCategory) : ExactCategoryData := pr1 M. + #[reversible] Coercion ExactCategoryToData (M:ExactCategory) : ExactCategoryData := pr1 M. Definition make_ExactCategory (ME:ExactCategoryData) (p : ExactCategoryProperties ME) : ExactCategory := ME,,p. Definition isExactFunctor {M N:ExactCategory} (F : M ⟶ N) : hProp := ∀ (P : MorphismPair M), isExact P ⇒ isExact (applyFunctorToPair F P). @@ -956,11 +956,11 @@ Section theDefinition. (* TO DO : show an exact functor is additive, or else include that as a condition. That includes showing it induces monoid functions on Hom groups. Start by defining preadditive functors and additive functors. *) - Coercion ExactFunctorToFunctor {M N:ExactCategory} + #[reversible] Coercion ExactFunctorToFunctor {M N:ExactCategory} : ExactFunctor M N -> (M ⟶ N) := pr1. Definition ShortExactSequence (M:ExactCategory) := ∑ (P : MorphismPair M), isExact P. - Coercion ShortExactSequenceToMorphismPair {M:ExactCategory} (P : ShortExactSequence M) + #[reversible] Coercion ShortExactSequenceToMorphismPair {M:ExactCategory} (P : ShortExactSequence M) : MorphismPair M := pr1 P. Definition ShortExactSequenceMap {M:ExactCategory} (P Q:ShortExactSequence M) := MorphismPairMap P Q. diff --git a/UniMath/CategoryTheory/FiveLemma.v b/UniMath/CategoryTheory/FiveLemma.v index 1d23369d76..dda114848e 100644 --- a/UniMath/CategoryTheory/FiveLemma.v +++ b/UniMath/CategoryTheory/FiveLemma.v @@ -208,16 +208,16 @@ Section five_lemma_data. (FRE : FiveRowExacts FRDE) : FiveRow := (FRO,,(FRD,,(FRDE,,FRE))). Definition FiveRow_Obs (FR : FiveRow) : FiveRowObs := pr1 FR. - Coercion FiveRow_Obs : FiveRow >-> FiveRowObs. + #[reversible] Coercion FiveRow_Obs : FiveRow >-> FiveRowObs. Definition FiveRow_Diffs (FR : FiveRow) : FiveRowDiffs FR := pr1 (pr2 FR). - Coercion FiveRow_Diffs : FiveRow >-> FiveRowDiffs. + #[reversible] Coercion FiveRow_Diffs : FiveRow >-> FiveRowDiffs. Definition FiveRow_DiffsEq (FR : FiveRow) : FiveRowDiffsEq FR := pr1 (pr2 (pr2 FR)). - Coercion FiveRow_DiffsEq : FiveRow >-> FiveRowDiffsEq. + #[reversible] Coercion FiveRow_DiffsEq : FiveRow >-> FiveRowDiffsEq. Definition FiveRow_Exacts (FR : FiveRow) : FiveRowExacts FR := pr2 (pr2 (pr2 FR)). - Coercion FiveRow_Exacts : FiveRow >-> FiveRowExacts. + #[reversible] Coercion FiveRow_Exacts : FiveRow >-> FiveRowExacts. (** ** Morphism of [FiveRows] *) @@ -287,11 +287,11 @@ Section five_lemma_data. Definition FiveRowMorphism_Mors {FR1 FR2 : FiveRow} (FRM : FiveRowMorphism FR1 FR2) : FiveRowMors FR1 FR2 := pr1 FRM. - Coercion FiveRowMorphism_Mors : FiveRowMorphism >-> FiveRowMors. + #[reversible] Coercion FiveRowMorphism_Mors : FiveRowMorphism >-> FiveRowMors. Definition FiveRowMorphism_Comms {FR1 FR2 : FiveRow} (FRM : FiveRowMorphism FR1 FR2) : FiveRowMorsComm FRM := pr2 FRM. - Coercion FiveRowMorphism_Comms : FiveRowMorphism >-> FiveRowMorsComm. + #[reversible] Coercion FiveRowMorphism_Comms : FiveRowMorphism >-> FiveRowMorsComm. End five_lemma_data. diff --git a/UniMath/CategoryTheory/FunctorAlgebras.v b/UniMath/CategoryTheory/FunctorAlgebras.v index 2633198355..2fb6a424ab 100644 --- a/UniMath/CategoryTheory/FunctorAlgebras.v +++ b/UniMath/CategoryTheory/FunctorAlgebras.v @@ -103,7 +103,7 @@ Section Algebra_Definition. thus removing coercion globally *) Definition alg_carrier (X : algebra_ob) : C := pr1 X. - Local Coercion alg_carrier : algebra_ob >-> ob. + Local #[reversible] Coercion alg_carrier : algebra_ob >-> ob. Definition alg_map (X : algebra_ob) : F X --> X := pr2 X. @@ -124,7 +124,7 @@ Definition is_algebra_mor (X Y : algebra_ob) (f : alg_carrier X --> alg_carrier := alg_map X · f = #F f · alg_map Y. Definition algebra_mor (X Y : algebra_ob) : UU := FunctorAlg⟦X,Y⟧. - Coercion mor_from_algebra_mor {X Y : algebra_ob} (f : algebra_mor X Y) : C⟦X, Y⟧ := pr1 f. + #[reversible] Coercion mor_from_algebra_mor {X Y : algebra_ob} (f : algebra_mor X Y) : C⟦X, Y⟧ := pr1 f. Lemma algebra_mor_commutes (X Y : algebra_ob) (f : algebra_mor X Y) : alg_map X · f = #F f · alg_map Y. @@ -493,7 +493,7 @@ Section Nats. Definition nat_ob_carrier (N : nat_ob) : ob C := alg_carrier _ (InitialObject N). - Local Coercion nat_ob_carrier : nat_ob >-> ob. + Local #[reversible] Coercion nat_ob_carrier : nat_ob >-> ob. (** We have an arrow alg_map : (F N = 1 + N) --> N, so by the η-rule (UMP) for the coproduct, we can assume that it diff --git a/UniMath/CategoryTheory/FunctorCoalgebras.v b/UniMath/CategoryTheory/FunctorCoalgebras.v index 5385cc01d4..87635d2b48 100644 --- a/UniMath/CategoryTheory/FunctorCoalgebras.v +++ b/UniMath/CategoryTheory/FunctorCoalgebras.v @@ -69,7 +69,7 @@ Section Coalgebra_Definition. Definition coalg_carrier (X : coalgebra_ob) : C := pr1 X. - Local Coercion coalg_carrier : coalgebra_ob >-> ob. + Local #[reversible] Coercion coalg_carrier : coalgebra_ob >-> ob. Definition coalg_map (X : coalgebra_ob) : C ⟦X, F X ⟧ := pr2 X. @@ -91,7 +91,7 @@ Section Coalgebra_Definition. := coalg_map X · #F f = f · coalg_map Y. Definition coalgebra_mor (X Y : coalgebra_ob) : UU := CoAlg_category⟦X,Y⟧. - Coercion mor_from_coalgebra_mor {X Y : coalgebra_ob} (f : coalgebra_mor X Y) : C⟦X, Y⟧ := pr1 f. + #[reversible] Coercion mor_from_coalgebra_mor {X Y : coalgebra_ob} (f : coalgebra_mor X Y) : C⟦X, Y⟧ := pr1 f. Lemma coalgebra_mor_commutes {X Y : coalgebra_ob} (f : coalgebra_mor X Y) : coalg_map X · #F f = pr1 f · coalg_map Y. diff --git a/UniMath/CategoryTheory/GrothendieckTopos.v b/UniMath/CategoryTheory/GrothendieckTopos.v index 16bfb04497..5799eca178 100644 --- a/UniMath/CategoryTheory/GrothendieckTopos.v +++ b/UniMath/CategoryTheory/GrothendieckTopos.v @@ -160,7 +160,7 @@ Section def_grothendiecktopos. (** Accessor functions *) Definition GrothendieckTopos_category (GT : GrothendieckTopos) : category := pr1 (pr1 (pr1 GT)). - Coercion GrothendieckTopos_category : GrothendieckTopos >-> category. + #[reversible] Coercion GrothendieckTopos_category : GrothendieckTopos >-> category. Definition GrothendieckTopos_GrothendieckTopology (GT : GrothendieckTopos) : GrothendieckTopology C := pr2 (pr1 (pr1 GT)). diff --git a/UniMath/CategoryTheory/Groupoids.v b/UniMath/CategoryTheory/Groupoids.v index 8cb90794ff..48b45348ff 100644 --- a/UniMath/CategoryTheory/Groupoids.v +++ b/UniMath/CategoryTheory/Groupoids.v @@ -50,7 +50,7 @@ Definition make_pregroupoid (C : category) (is : is_pregroupoid C) : pregroupoid Definition pregroupoid_to_precategory : pregroupoid -> category := pr1. Definition pregroupoid_is_pregroupoid : ∏ gpd : pregroupoid, is_pregroupoid (pr1 gpd) := pr2. -Coercion pregroupoid_to_precategory : pregroupoid >-> category. +#[reversible] Coercion pregroupoid_to_precategory : pregroupoid >-> category. (** A category is a groupoid when all of its arrows are [iso]s. *) Definition groupoid : UU := ∑ C : category, is_pregroupoid C. @@ -60,10 +60,10 @@ Definition make_groupoid (C : category) (is : is_pregroupoid C) : groupoid := (C Definition groupoid_to_category : groupoid -> category := pr1. Definition groupoid_is_pregroupoid : ∏ gpd : groupoid, is_pregroupoid (pr1 gpd) := pr2. -Coercion groupoid_to_category : groupoid >-> category. +#[reversible] Coercion groupoid_to_category : groupoid >-> category. Definition groupoid_to_pregroupoid : groupoid → pregroupoid := λ gpd, make_pregroupoid gpd (groupoid_is_pregroupoid gpd). -Coercion groupoid_to_pregroupoid : groupoid >-> pregroupoid. +#[reversible] Coercion groupoid_to_pregroupoid : groupoid >-> pregroupoid. Definition univalent_groupoid : UU := ∑ C : univalent_category, is_pregroupoid C. @@ -72,14 +72,14 @@ Definition make_univalent_groupoid (C : univalent_category) (is : is_pregroupoid univalent_groupoid := (C,, is). Definition univalent_groupoid_to_univalent_category : univalent_groupoid -> univalent_category := pr1. -Coercion univalent_groupoid_to_univalent_category : +#[reversible] Coercion univalent_groupoid_to_univalent_category : univalent_groupoid >-> univalent_category. Definition univalent_groupoid_is_pregroupoid : ∏ ugpd : univalent_groupoid, is_pregroupoid (pr1 ugpd) := pr2. Definition univalent_groupoid_to_groupoid : univalent_groupoid -> groupoid := λ ugpd, make_groupoid ugpd (univalent_groupoid_is_pregroupoid ugpd). -Coercion univalent_groupoid_to_groupoid : +#[reversible] Coercion univalent_groupoid_to_groupoid : univalent_groupoid >-> groupoid. (** An alternative characterization of univalence for groupoids *) @@ -219,7 +219,7 @@ Definition discrete_category_to_univalent_groupoid : λ disc, make_univalent_groupoid (make_univalent_category (pr1 disc) (dirprod_pr2 (dirprod_pr2 (pr2 disc)))) (dirprod_pr1 (dirprod_pr2 (pr2 disc))). -Coercion discrete_category_to_univalent_groupoid : +#[reversible] Coercion discrete_category_to_univalent_groupoid : discrete_category >-> univalent_groupoid. Definition discrete_category_is_discrete : ∏ C : discrete_category, is_discrete C := pr2. diff --git a/UniMath/CategoryTheory/HomotopicalCategory.v b/UniMath/CategoryTheory/HomotopicalCategory.v index 6d4940f9d6..6936e69316 100644 --- a/UniMath/CategoryTheory/HomotopicalCategory.v +++ b/UniMath/CategoryTheory/HomotopicalCategory.v @@ -37,7 +37,7 @@ Definition category_with_weq := ∑ C : category, morph_class C. Definition category_with_weq_pr1 (C : category_with_weq) : category := pr1 C. -Coercion category_with_weq_pr1 : category_with_weq >-> category. +#[reversible] Coercion category_with_weq_pr1 : category_with_weq >-> category. Definition two_of_six {C : category} (W : morph_class C) := ∏ (x y z t : C) @@ -72,7 +72,7 @@ Definition homotopical_category : UU := ∑ (C : category_with_weq), is_homotopi Definition homotopical_category_pr1 (C : homotopical_category) : category_with_weq := pr1 C. -Coercion homotopical_category_pr1 : homotopical_category >-> category_with_weq. +#[reversible] Coercion homotopical_category_pr1 : homotopical_category >-> category_with_weq. Definition category_with_weq_pr2 (C : category_with_weq) : morph_class (pr1 C) := pr2 C. diff --git a/UniMath/CategoryTheory/IndexedCategories/IndexedCategory.v b/UniMath/CategoryTheory/IndexedCategories/IndexedCategory.v index 935dbd8e83..694e179645 100644 --- a/UniMath/CategoryTheory/IndexedCategories/IndexedCategory.v +++ b/UniMath/CategoryTheory/IndexedCategories/IndexedCategory.v @@ -71,7 +71,7 @@ Definition indexed_cat_on_ob : univalent_category := pr1 F x. -Coercion indexed_cat_on_ob : indexed_cat_data >-> Funclass. +#[reversible] Coercion indexed_cat_on_ob : indexed_cat_data >-> Funclass. Definition indexed_cat_on_mor {C : category} @@ -168,7 +168,7 @@ Definition make_indexed_cat : indexed_cat C := F ,, HF₁ ,, HF₂. -Coercion indexed_cat_to_data +#[reversible] Coercion indexed_cat_to_data {C : category} (F : indexed_cat C) : indexed_cat_data C diff --git a/UniMath/CategoryTheory/IndexedCategories/IndexedFunctor.v b/UniMath/CategoryTheory/IndexedCategories/IndexedFunctor.v index 54eb67221f..7037de92fc 100644 --- a/UniMath/CategoryTheory/IndexedCategories/IndexedFunctor.v +++ b/UniMath/CategoryTheory/IndexedCategories/IndexedFunctor.v @@ -64,7 +64,7 @@ Definition indexed_functor_to_functor : Φ x ⟶ Ψ x := pr1 τ x. -Coercion indexed_functor_to_functor : indexed_functor_data >-> Funclass. +#[reversible] Coercion indexed_functor_to_functor : indexed_functor_data >-> Funclass. Definition indexed_functor_natural {C : category} @@ -132,7 +132,7 @@ Definition make_indexed_functor : indexed_functor Φ Ψ := τ ,, Hτ. -Coercion indexed_functor_to_data +#[reversible] Coercion indexed_functor_to_data {C : category} {Φ Ψ : indexed_cat C} (τ : indexed_functor Φ Ψ) diff --git a/UniMath/CategoryTheory/IndexedCategories/IndexedTransformation.v b/UniMath/CategoryTheory/IndexedCategories/IndexedTransformation.v index 308cacf413..58aa8d1e85 100644 --- a/UniMath/CategoryTheory/IndexedCategories/IndexedTransformation.v +++ b/UniMath/CategoryTheory/IndexedCategories/IndexedTransformation.v @@ -79,7 +79,7 @@ Definition indexed_nat_trans_to_data : τ x ⟹ θ x := pr1 m x. -Coercion indexed_nat_trans_to_data : indexed_nat_trans >-> Funclass. +#[reversible] Coercion indexed_nat_trans_to_data : indexed_nat_trans >-> Funclass. Proposition indexed_nat_trans_natural {C : category} diff --git a/UniMath/CategoryTheory/LatticeObject.v b/UniMath/CategoryTheory/LatticeObject.v index 4ca88d10dc..896ca67f61 100644 --- a/UniMath/CategoryTheory/LatticeObject.v +++ b/UniMath/CategoryTheory/LatticeObject.v @@ -156,7 +156,7 @@ Definition make_bounded_latticeob {L} {l : latticeob L} {bot top : C⟦TC,L⟧} bounded_latticeop_cat l bot top → bounded_latticeob L := λ bl, l,, bot,, top,, bl. Definition bounded_latticeob_to_latticeob X : bounded_latticeob X → latticeob X := pr1. -Coercion bounded_latticeob_to_latticeob : bounded_latticeob >-> latticeob. +#[reversible] Coercion bounded_latticeob_to_latticeob : bounded_latticeob >-> latticeob. Definition bot_mor {L} (isL : bounded_latticeob L) : C⟦TC,L⟧ := pr1 (pr2 isL). Definition top_mor {L} (isL : bounded_latticeob L) : C⟦TC,L⟧ := pr1 (pr2 (pr2 isL)). diff --git a/UniMath/CategoryTheory/Limits/BinCoproducts.v b/UniMath/CategoryTheory/Limits/BinCoproducts.v index 4dbefcca17..250c8bba38 100644 --- a/UniMath/CategoryTheory/Limits/BinCoproducts.v +++ b/UniMath/CategoryTheory/Limits/BinCoproducts.v @@ -67,7 +67,7 @@ Definition BinCoproducts := ∏ (a b : C), BinCoproduct a b. Definition hasBinCoproducts := ∏ (a b : C), ∥ BinCoproduct a b ∥. Definition BinCoproductObject {a b : C} (CC : BinCoproduct a b) : C := pr1 (pr1 CC). -Coercion BinCoproductObject : BinCoproduct >-> ob. +#[reversible] Coercion BinCoproductObject : BinCoproduct >-> ob. Definition BinCoproductIn1 {a b : C} (CC : BinCoproduct a b): a --> BinCoproductObject CC := pr1 (pr2 (pr1 CC)). Definition BinCoproductIn2 {a b : C} (CC : BinCoproduct a b) : b --> BinCoproductObject CC := @@ -1449,7 +1449,7 @@ Section DistributionThroughFunctor. Definition bincoprod_distributor : UU := ∑ δ : bincoprod_distributor_data, bincoprod_distributor_iso_law δ. Definition bincoprod_distributor_to_data (δ : bincoprod_distributor) : bincoprod_distributor_data := pr1 δ. - Coercion bincoprod_distributor_to_data : bincoprod_distributor >-> bincoprod_distributor_data. + #[reversible] Coercion bincoprod_distributor_to_data : bincoprod_distributor >-> bincoprod_distributor_data. End DistributionThroughFunctor. diff --git a/UniMath/CategoryTheory/Limits/BinDirectSums.v b/UniMath/CategoryTheory/Limits/BinDirectSums.v index 92fe047a65..d3426f60e4 100644 --- a/UniMath/CategoryTheory/Limits/BinDirectSums.v +++ b/UniMath/CategoryTheory/Limits/BinDirectSums.v @@ -169,7 +169,7 @@ Section def_bindirectsums. (** The direct sum object. *) Definition BinDirectSumOb {a b : A} (B : BinDirectSum a b) : A := pr1 (pr1 B). - Coercion BinDirectSumOb : BinDirectSum >-> ob. + #[reversible] Coercion BinDirectSumOb : BinDirectSum >-> ob. (** Accessor functions *) Definition to_In1 {a b : A} (B : BinDirectSum a b) : A⟦a, B⟧ := dirprod_pr1 (pr2 (pr1 B)). @@ -186,7 +186,7 @@ Section def_bindirectsums. (** Another coercion *) Definition BinDirectSum_isBinDirectSum {a b : A} (B : BinDirectSum a b) : isBinDirectSum a b B (to_In1 B) (to_In2 B) (to_Pr1 B) (to_Pr2 B) := pr2 B. - Coercion BinDirectSum_isBinDirectSum : BinDirectSum >-> hProptoType. + #[reversible] Coercion BinDirectSum_isBinDirectSum : BinDirectSum >-> hProptoType. (** Construction of BinCoproduct and BinProduct from BinDirectSum. *) Definition BinDirectSum_BinCoproduct {a b : A} (B : BinDirectSum a b) : diff --git a/UniMath/CategoryTheory/Limits/BinProducts.v b/UniMath/CategoryTheory/Limits/BinProducts.v index 4701070b42..87798e5dbf 100644 --- a/UniMath/CategoryTheory/Limits/BinProducts.v +++ b/UniMath/CategoryTheory/Limits/BinProducts.v @@ -65,7 +65,7 @@ Definition BinProducts : UU := ∏ (c d : C), BinProduct c d. Definition hasBinProducts : UU := ∏ (c d : C), ∥ BinProduct c d ∥. Definition BinProductObject {c d : C} (P : BinProduct c d) : C := pr1 (pr1 P). -Coercion BinProductObject : BinProduct >-> ob. +#[reversible] Coercion BinProductObject : BinProduct >-> ob. Definition BinProductPr1 {c d : C} (P : BinProduct c d): BinProductObject P --> c := pr1 (pr2 (pr1 P)). diff --git a/UniMath/CategoryTheory/Limits/Coends.v b/UniMath/CategoryTheory/Limits/Coends.v index e904ec1174..4753ff7755 100644 --- a/UniMath/CategoryTheory/Limits/Coends.v +++ b/UniMath/CategoryTheory/Limits/Coends.v @@ -36,7 +36,7 @@ Section Coends. := ∑ (w : D), ∏ (x : C), F (x ,, x) --> w. - Coercion ob_of_cowedge + #[reversible] Coercion ob_of_cowedge (w : cowedge_data) : D := pr1 w. @@ -66,7 +66,7 @@ Section Coends. : UU := ∑ (w : cowedge_data), is_cowedge w. - Coercion cowedge_data_of_cowedge + #[reversible] Coercion cowedge_data_of_cowedge (w : cowedge) : cowedge_data := pr1 w. @@ -136,7 +136,7 @@ Section Coends. : UU := ∑ (f : w₁ --> w₂), is_cowedge_map f. - Coercion mor_of_cowedge_map + #[reversible] Coercion mor_of_cowedge_map {w₁ w₂ : cowedge} (f : cowedge_map w₁ w₂) : w₁ --> w₂ @@ -194,7 +194,7 @@ Section Coends. : UU := ∑ (w : cowedge), is_coend w. - Coercion coend_colimit_to_cowedge + #[reversible] Coercion coend_colimit_to_cowedge (e : coend_colimit) : cowedge := pr1 e. diff --git a/UniMath/CategoryTheory/Limits/Coequalizers.v b/UniMath/CategoryTheory/Limits/Coequalizers.v index 1620ba7c4d..63fc7413c0 100644 --- a/UniMath/CategoryTheory/Limits/Coequalizers.v +++ b/UniMath/CategoryTheory/Limits/Coequalizers.v @@ -95,7 +95,7 @@ Section def_coequalizers. (** Returns the coequalizer object. *) Definition CoequalizerObject {y z : C} {f g : y --> z} (E : Coequalizer f g) : C := pr1 (pr1 E). - Coercion CoequalizerObject : Coequalizer >-> ob. + #[reversible] Coercion CoequalizerObject : Coequalizer >-> ob. (** Returns the coequalizer arrow. *) Definition CoequalizerArrow {y z : C} {f g : y --> z} (E : Coequalizer f g) : diff --git a/UniMath/CategoryTheory/Limits/Cokernels.v b/UniMath/CategoryTheory/Limits/Cokernels.v index 503113f227..6e69dcdb52 100644 --- a/UniMath/CategoryTheory/Limits/Cokernels.v +++ b/UniMath/CategoryTheory/Limits/Cokernels.v @@ -72,7 +72,7 @@ Section def_cokernels. Definition hasCokernels : UU := ∏ (x y : C) (f : x --> y), ishinh (Cokernel f). Definition CokernelOb {x y : C} {f : x --> y} (CK : Cokernel f) : ob C := pr1 (pr1 CK). - Coercion CokernelOb : Cokernel >-> ob. + #[reversible] Coercion CokernelOb : Cokernel >-> ob. Definition CokernelArrow {x y : C} {f : x --> y} (CK : Cokernel f) : C⟦y, CK⟧ := pr2 (pr1 CK). diff --git a/UniMath/CategoryTheory/Limits/Cones.v b/UniMath/CategoryTheory/Limits/Cones.v index d09fb54d3a..a504f83216 100644 --- a/UniMath/CategoryTheory/Limits/Cones.v +++ b/UniMath/CategoryTheory/Limits/Cones.v @@ -68,10 +68,10 @@ Proof. Defined. -Coercion ConeData_from_Cone : Cone >-> ConeData. +#[reversible] Coercion ConeData_from_Cone : Cone >-> ConeData. Definition ConeProp_from_Cone (a : Cone) : ConeProp a := pr2 a. -Coercion ConeProp_from_Cone : Cone >-> ConeProp. +#[reversible] Coercion ConeProp_from_Cone : Cone >-> ConeProp. Lemma cone_prop (a : Cone) : diff --git a/UniMath/CategoryTheory/Limits/Coproducts.v b/UniMath/CategoryTheory/Limits/Coproducts.v index a12be2b5dc..82d842e96e 100644 --- a/UniMath/CategoryTheory/Limits/Coproducts.v +++ b/UniMath/CategoryTheory/Limits/Coproducts.v @@ -46,7 +46,7 @@ Definition Coproducts := ∏ (a : I -> C), Coproduct a. Definition hasCoproducts := ∏ (a : I -> C), ∥ Coproduct a ∥. Definition CoproductObject {a : I -> C} (CC : Coproduct a) : C := pr1 (pr1 CC). -Coercion CoproductObject : Coproduct >-> ob. +#[reversible] Coercion CoproductObject : Coproduct >-> ob. Definition CoproductIn {a : I -> C} (CC : Coproduct a): ∏ i, a i --> CoproductObject CC := pr2 (pr1 CC). @@ -440,7 +440,7 @@ Section DistributionThroughFunctor. Definition coprod_distributor : UU := ∑ δ : coprod_distributor_data, coprod_distributor_iso_law δ. Definition coprod_distributor_to_data (δ : coprod_distributor) : coprod_distributor_data := pr1 δ. - Coercion coprod_distributor_to_data : coprod_distributor >-> coprod_distributor_data. + #[reversible] Coercion coprod_distributor_to_data : coprod_distributor >-> coprod_distributor_data. End DistributionThroughFunctor. diff --git a/UniMath/CategoryTheory/Limits/Ends.v b/UniMath/CategoryTheory/Limits/Ends.v index 4bc5348ea5..62d9899be0 100644 --- a/UniMath/CategoryTheory/Limits/Ends.v +++ b/UniMath/CategoryTheory/Limits/Ends.v @@ -38,7 +38,7 @@ Section Ends. := ∑ (w : D), ∏ (x : C), w --> F (x ,, x). - Coercion ob_of_wedge + #[reversible] Coercion ob_of_wedge (w : wedge_data) : D := pr1 w. @@ -68,7 +68,7 @@ Section Ends. : UU := ∑ (w : wedge_data), is_wedge w. - Coercion wedge_data_of_wedge + #[reversible] Coercion wedge_data_of_wedge (w : wedge) : wedge_data := pr1 w. @@ -138,7 +138,7 @@ Section Ends. : UU := ∑ (f : w₁ --> w₂), is_wedge_map f. - Coercion mor_of_wedge_map + #[reversible] Coercion mor_of_wedge_map {w₁ w₂ : wedge} (f : wedge_map w₁ w₂) : w₁ --> w₂ @@ -198,7 +198,7 @@ Section Ends. : UU := ∑ (w : wedge), is_end w. - Coercion end_limit_to_wedge + #[reversible] Coercion end_limit_to_wedge (e : end_limit) : wedge := pr1 e. diff --git a/UniMath/CategoryTheory/Limits/Equalizers.v b/UniMath/CategoryTheory/Limits/Equalizers.v index a3abcd62fd..cc213106f0 100644 --- a/UniMath/CategoryTheory/Limits/Equalizers.v +++ b/UniMath/CategoryTheory/Limits/Equalizers.v @@ -99,7 +99,7 @@ Section def_equalizers. (** Returns the equalizer object. *) Definition EqualizerObject {y z : C} {f g : y --> z} (E : Equalizer f g) : C := pr1 (pr1 E). - Coercion EqualizerObject : Equalizer >-> ob. + #[reversible] Coercion EqualizerObject : Equalizer >-> ob. (** Returns the equalizer arrow. *) Definition EqualizerArrow {y z : C} {f g : y --> z} (E : Equalizer f g) : diff --git a/UniMath/CategoryTheory/Limits/Graphs/Colimits.v b/UniMath/CategoryTheory/Limits/Graphs/Colimits.v index 3f706c31d3..77aeb71b2c 100644 --- a/UniMath/CategoryTheory/Limits/Graphs/Colimits.v +++ b/UniMath/CategoryTheory/Limits/Graphs/Colimits.v @@ -77,7 +77,7 @@ Definition constant_diagram End diagram_def. -Coercion graph_from_precategory : precategory >-> graph. +#[reversible] Coercion graph_from_precategory : precategory >-> graph. (** * Definition of colimits *) diff --git a/UniMath/CategoryTheory/Limits/Graphs/Initial.v b/UniMath/CategoryTheory/Limits/Graphs/Initial.v index e5617811f6..2efa95cfbd 100644 --- a/UniMath/CategoryTheory/Limits/Graphs/Initial.v +++ b/UniMath/CategoryTheory/Limits/Graphs/Initial.v @@ -73,7 +73,7 @@ use tpair. Defined. Definition InitialObject (O : Initial) : C := colim O. -(* Coercion InitialObject : Initial >-> ob. *) +(* #[reversible] Coercion InitialObject : Initial >-> ob. *) Definition InitialArrow (O : Initial) (b : C) : C⟦InitialObject O,b⟧ := colimArrow _ _ (initCocone b). diff --git a/UniMath/CategoryTheory/Limits/Graphs/Pullbacks.v b/UniMath/CategoryTheory/Limits/Graphs/Pullbacks.v index 012a4267f6..f44e077a8b 100644 --- a/UniMath/CategoryTheory/Limits/Graphs/Pullbacks.v +++ b/UniMath/CategoryTheory/Limits/Graphs/Pullbacks.v @@ -155,7 +155,7 @@ Definition hasPullbacks := ∏ (a b c : C) (f : C⟦b, a⟧) (g : C⟦c, a⟧), Definition PullbackObject {a b c : C} {f : C⟦b, a⟧} {g : C⟦c, a⟧}: Pullback f g -> C := λ H, lim H. -(* Coercion PullbackObject : Pullback >-> ob. *) +(* #[reversible] Coercion PullbackObject : Pullback >-> ob. *) Definition PullbackPr1 {a b c : C} {f : C⟦b, a⟧} {g : C⟦c, a⟧} (Pb : Pullback f g) : C⟦lim Pb, b⟧ := limOut Pb One. diff --git a/UniMath/CategoryTheory/Limits/Graphs/Pushouts.v b/UniMath/CategoryTheory/Limits/Graphs/Pushouts.v index 1a4b17432a..ad7ee3c0af 100644 --- a/UniMath/CategoryTheory/Limits/Graphs/Pushouts.v +++ b/UniMath/CategoryTheory/Limits/Graphs/Pushouts.v @@ -127,7 +127,7 @@ Section def_po. Definition PushoutObject {a b c : C} {f : C⟦a, b⟧} {g : C⟦a, c⟧}: Pushout f g -> C := λ H, colim H. - (* Coercion PushoutObject : Pushout >-> ob. *) + (* #[reversible] Coercion PushoutObject : Pushout >-> ob. *) Definition PushoutIn1 {a b c : C} {f : C⟦a, b⟧} {g : C⟦a, c⟧} (Po : Pushout f g) : C⟦b, colim Po⟧ := colimIn Po Two. diff --git a/UniMath/CategoryTheory/Limits/Graphs/Terminal.v b/UniMath/CategoryTheory/Limits/Graphs/Terminal.v index 40c1758858..3a7f71dda5 100644 --- a/UniMath/CategoryTheory/Limits/Graphs/Terminal.v +++ b/UniMath/CategoryTheory/Limits/Graphs/Terminal.v @@ -66,7 +66,7 @@ use tpair. Defined. Definition TerminalObject (T : Terminal) : C := lim T. -(* Coercion TerminalObject : Terminal >-> ob. *) +(* #[reversible] Coercion TerminalObject : Terminal >-> ob. *) Definition TerminalArrow (T : Terminal) (b : C) : C⟦b,TerminalObject T⟧ := limArrow _ _ (termCone b). diff --git a/UniMath/CategoryTheory/Limits/Initial.v b/UniMath/CategoryTheory/Limits/Initial.v index 0adc08e200..3913afd45e 100644 --- a/UniMath/CategoryTheory/Limits/Initial.v +++ b/UniMath/CategoryTheory/Limits/Initial.v @@ -30,7 +30,7 @@ Definition isInitial {C : precategory} (a : C) : UU := ∏ b : C, iscontr (a --> Definition Initial (C : precategory) : UU := ∑ a, @isInitial C a. Definition InitialObject {C : precategory} (O : Initial C) : C := pr1 O. -Coercion InitialObject : Initial >-> ob. +#[reversible] Coercion InitialObject : Initial >-> ob. Definition InitialArrow {C : precategory} (O : Initial C) (b : C) : O --> b := pr1 (pr2 O b). diff --git a/UniMath/CategoryTheory/Limits/Kernels.v b/UniMath/CategoryTheory/Limits/Kernels.v index b0ada7f982..8044dcfaf5 100644 --- a/UniMath/CategoryTheory/Limits/Kernels.v +++ b/UniMath/CategoryTheory/Limits/Kernels.v @@ -65,7 +65,7 @@ Section def_kernels. (** Accessor functions *) Definition KernelOb {y z : C} {g : y --> z} (K : Kernel g) : C := pr1 (pr1 K). - Coercion KernelOb : Kernel >-> ob. + #[reversible] Coercion KernelOb : Kernel >-> ob. Definition KernelArrow {y z : C} {g : y --> z} (K : Kernel g) : C⟦K, y⟧ := pr2 (pr1 K). diff --git a/UniMath/CategoryTheory/Limits/Products.v b/UniMath/CategoryTheory/Limits/Products.v index 9004cefb65..07a6f183e9 100644 --- a/UniMath/CategoryTheory/Limits/Products.v +++ b/UniMath/CategoryTheory/Limits/Products.v @@ -48,7 +48,7 @@ Definition hasProducts := ∏ (ci : ∏ i, C), ∥ Product ci ∥. Definition ProductObject {c : ∏ i, C} (P : Product c) : C := pr1 (pr1 P). -Coercion ProductObject : Product >-> ob. +#[reversible] Coercion ProductObject : Product >-> ob. Definition ProductPr {c : ∏ i, C} (P : Product c) : ∏ i, P --> c i := pr2 (pr1 P). diff --git a/UniMath/CategoryTheory/Limits/Pullbacks.v b/UniMath/CategoryTheory/Limits/Pullbacks.v index 32d45ff0bc..a66112a7d0 100644 --- a/UniMath/CategoryTheory/Limits/Pullbacks.v +++ b/UniMath/CategoryTheory/Limits/Pullbacks.v @@ -79,7 +79,7 @@ Definition hasPullbacks : UU := Definition PullbackObject {a b c : C} {f : b --> a} {g : c --> a}: Pullback f g -> C := λ H, pr1 (pr1 H). -Coercion PullbackObject : Pullback >-> ob. +#[reversible] Coercion PullbackObject : Pullback >-> ob. Definition PullbackPr1 {a b c : C} {f : b --> a} {g : c --> a} (Pb : Pullback f g) : Pb --> b := pr1 (pr2 (pr1 Pb)). diff --git a/UniMath/CategoryTheory/Limits/Pushouts.v b/UniMath/CategoryTheory/Limits/Pushouts.v index fb1b2540df..70e1a9df3e 100644 --- a/UniMath/CategoryTheory/Limits/Pushouts.v +++ b/UniMath/CategoryTheory/Limits/Pushouts.v @@ -66,7 +66,7 @@ Section def_po. Definition PushoutObject {a b c : C} {f : a --> b} {g : a --> c}: Pushout f g -> C := λ H, pr1 (pr1 H). - Coercion PushoutObject : Pushout >-> ob. + #[reversible] Coercion PushoutObject : Pushout >-> ob. Definition PushoutIn1 {a b c : C} {f : a --> b} {g : a --> c} (Pb : Pushout f g) : b --> Pb := pr1 (pr2 (pr1 Pb)). diff --git a/UniMath/CategoryTheory/Limits/Terminal.v b/UniMath/CategoryTheory/Limits/Terminal.v index 9a85364c8c..8500135928 100644 --- a/UniMath/CategoryTheory/Limits/Terminal.v +++ b/UniMath/CategoryTheory/Limits/Terminal.v @@ -38,7 +38,7 @@ Qed. Definition Terminal : UU := ∑ a, isTerminal a. Definition TerminalObject (T : Terminal) : C := pr1 T. -Coercion TerminalObject : Terminal >-> ob. +#[reversible] Coercion TerminalObject : Terminal >-> ob. Definition TerminalArrow (T : Terminal) (b : C) : b --> T := pr1 (pr2 T b). diff --git a/UniMath/CategoryTheory/Limits/Zero.v b/UniMath/CategoryTheory/Limits/Zero.v index 2860813e47..0c691deb67 100644 --- a/UniMath/CategoryTheory/Limits/Zero.v +++ b/UniMath/CategoryTheory/Limits/Zero.v @@ -28,7 +28,7 @@ Section def_zero. Definition Zero : UU := total2 (λ a, isZero a). Definition ZeroObject (Z : Zero) : C := pr1 Z. - Coercion ZeroObject : Zero >-> ob. + #[reversible] Coercion ZeroObject : Zero >-> ob. Definition make_Zero (b : C) (H : isZero b) : Zero. Proof. diff --git a/UniMath/CategoryTheory/LocalizingClass.v b/UniMath/CategoryTheory/LocalizingClass.v index 018798207d..4fa4185cef 100644 --- a/UniMath/CategoryTheory/LocalizingClass.v +++ b/UniMath/CategoryTheory/LocalizingClass.v @@ -57,7 +57,7 @@ Section def_roofs. Definition LocSqr1Ob {SOM : SubsetsOfMors} {x y z : ob C} {s : x --> y} {e1 : SOM x y s} {f : x --> z} (LS1 : LocSqr1 SOM s e1 f) : ob C := pr1 (pr1 LS1). - Coercion LocSqr1Ob : LocSqr1 >-> ob. + #[reversible] Coercion LocSqr1Ob : LocSqr1 >-> ob. Definition LocSqr1Mor1 {SOM : SubsetsOfMors} {x y z : ob C} {s : x --> y} {e1 : SOM x y s} {f : x --> z} (LS1 : LocSqr1 SOM s e1 f) : C⟦y, LS1⟧ := dirprod_pr1 (pr2 (pr1 LS1)). @@ -81,7 +81,7 @@ Section def_roofs. Definition LocSqr2Ob {SOM : SubsetsOfMors} {y z w : ob C} {s : y --> w} {e1 : SOM y w s} {f : z --> w} (LS2 : LocSqr2 SOM s e1 f) : ob C := pr1 (pr1 LS2). - Coercion LocSqr2Ob : LocSqr2 >-> ob. + #[reversible] Coercion LocSqr2Ob : LocSqr2 >-> ob. Definition LocSqr2Mor1 {SOM : SubsetsOfMors} {y z w : ob C} {s : y --> w} {e1 : SOM y w s} {f : z --> w} (LS2 : LocSqr2 SOM s e1 f) : C⟦LS2, y⟧ := dirprod_pr1 (pr2 (pr1 LS2)). @@ -118,7 +118,7 @@ Section def_roofs. Definition PreSwitchOb {SOM : SubsetsOfMors} {x y z : ob C} {s : x --> y} {e : SOM x y s} {f g : y --> z} {H : s · f = s · g} (PreS : PreSwitch SOM s e f g H) : ob C := pr1 (pr1 PreS). - Coercion PreSwitchOb : PreSwitch >-> ob. + #[reversible] Coercion PreSwitchOb : PreSwitch >-> ob. Definition PreSwitchMor {SOM : SubsetsOfMors} {x y z : ob C} {s : x --> y} {e : SOM x y s} {f g : y --> z} {H : s · f = s · g} (PreS : PreSwitch SOM s e f g H) : @@ -141,7 +141,7 @@ Section def_roofs. Definition PostSwitchOb {SOM : SubsetsOfMors} {y z w : ob C} {f g : y --> z} {s : z --> w} {e : SOM z w s} {H : f · s = g · s} (PostS : PostSwitch SOM f g s e H) : ob C := pr1 (pr1 PostS). - Coercion PostSwitchOb : PostSwitch >-> ob. + #[reversible] Coercion PostSwitchOb : PostSwitch >-> ob. Definition PostSwitchMor {SOM : SubsetsOfMors} {y z w : ob C} {f g : y --> z} {s : z --> w} {e : SOM z w s} {H : f · s = g · s} (PostS : PostSwitch SOM f g s e H) : @@ -176,17 +176,17 @@ Section def_roofs. Definition isLocalizingClass_isLocalizingClass1 {SOM : SubsetsOfMors} (H : isLocalizingClass SOM) : isLocalizingClass1 SOM := dirprod_pr1 H. - Coercion isLocalizingClass_isLocalizingClass1 : isLocalizingClass >-> isLocalizingClass1. + #[reversible] Coercion isLocalizingClass_isLocalizingClass1 : isLocalizingClass >-> isLocalizingClass1. Definition isLocalizingClass_isLocalizingClass2 {SOM : SubsetsOfMors} (H : isLocalizingClass SOM) : isLocalizingClass2 SOM := dirprod_pr1 (dirprod_pr2 H). - Coercion isLocalizingClass_isLocalizingClass2 : isLocalizingClass >-> isLocalizingClass2. + #[reversible] Coercion isLocalizingClass_isLocalizingClass2 : isLocalizingClass >-> isLocalizingClass2. Definition isLocalizingClass_isLocalizingClass3 {SOM : SubsetsOfMors} (H : isLocalizingClass SOM) : isLocalizingClass3 SOM := dirprod_pr2 (dirprod_pr2 H). - Coercion isLocalizingClass_isLocalizingClass3 : isLocalizingClass >-> isLocalizingClass3. + #[reversible] Coercion isLocalizingClass_isLocalizingClass3 : isLocalizingClass >-> isLocalizingClass3. (** Collection of morphisms in C *) Variable SOM : SubsetsOfMors. @@ -203,7 +203,7 @@ Section def_roofs. tpair _ (tpair _ z (s,,f)) e. Definition RoofOb {x y : ob C} (R : Roof x y) : ob C := pr1 (pr1 R). - Coercion RoofOb : Roof >-> ob. + #[reversible] Coercion RoofOb : Roof >-> ob. Definition RoofMor1 {x y : ob C} (R : Roof x y) : C⟦R, x⟧ := dirprod_pr1 (pr2 (pr1 R)). @@ -219,7 +219,7 @@ Section def_roofs. tpair _ (tpair _ z (f,,s)) e. Definition CoroofOb {x y : ob C} (CR : Coroof x y) : ob C := pr1 (pr1 CR). - Coercion CoroofOb : Coroof >-> ob. + #[reversible] Coercion CoroofOb : Coroof >-> ob. Definition CoroofMor1 {x y : ob C} (CR : Coroof x y) : C⟦x, CR⟧ := dirprod_pr1 (pr2 (pr1 CR)). @@ -252,7 +252,7 @@ Section def_roofs. tpair _ (tpair _ w (s,,f)) (e,,(H1,,H2)). Definition RoofTopOb {x y : ob C} {R1 R2 : Roof x y} (T : RoofTop R1 R2) : ob C := pr1 (pr1 T). - Coercion RoofTopOb : RoofTop >-> ob. + #[reversible] Coercion RoofTopOb : RoofTop >-> ob. Definition RoofTopMor1 {x y : ob C} {R1 R2 : Roof x y} (T : RoofTop R1 R2) : C⟦T, R1⟧ := dirprod_pr1 (pr2 (pr1 T)). diff --git a/UniMath/CategoryTheory/Monads/Comonads.v b/UniMath/CategoryTheory/Monads/Comonads.v index 8288a5268f..b2f4c51728 100644 --- a/UniMath/CategoryTheory/Monads/Comonads.v +++ b/UniMath/CategoryTheory/Monads/Comonads.v @@ -115,7 +115,7 @@ Section Comonad_disp_def. Definition Comonad : UU := ob category_Comonad. - Coercion functor_from_Comonad (T : Comonad) : functor C C := pr1 T. + #[reversible] Coercion functor_from_Comonad (T : Comonad) : functor C C := pr1 T. Definition δ (T : Comonad) : T ⟹ T ∙ T := pr112 T. Definition ε (T : Comonad) : T ⟹ functor_identity C := pr212 T. @@ -259,7 +259,7 @@ End pointfree. Definition Comonad_Mor {C : category} (T T' : Comonad C) : UU := category_Comonad C ⟦T, T'⟧. -Coercion nat_trans_from_monad_mor {C : category} (T T' : Comonad C) (s : Comonad_Mor T T') +#[reversible] Coercion nat_trans_from_monad_mor {C : category} (T T' : Comonad C) (s : Comonad_Mor T T') : T ⟹ T' := pr1 s. Definition Comonad_Mor_laws {C : category} {T T' : Comonad C} (α : T ⟹ T') @@ -359,7 +359,7 @@ Section Comonad_eq_helper. (∏ a : ob C, F a --> F (F a))) × (∏ a : ob C, F a --> a)). - Coercion functor_data_from_raw_Comonad_data {C : category} (T : raw_Comonad_data C) : + #[reversible] Coercion functor_data_from_raw_Comonad_data {C : category} (T : raw_Comonad_data C) : functor_data C C := make_functor_data (pr1 T) (pr1 (pr1 (pr2 T))). Definition Comonad'_data_laws {C : category} (T : raw_Comonad_data C) := diff --git a/UniMath/CategoryTheory/Monads/KTriples.v b/UniMath/CategoryTheory/Monads/KTriples.v index a18ba912c3..a7ef99356b 100644 --- a/UniMath/CategoryTheory/Monads/KTriples.v +++ b/UniMath/CategoryTheory/Monads/KTriples.v @@ -43,7 +43,7 @@ Definition Kleisli_Data : UU := ∑ T : C → C, (* ----- Projections ----- *) Definition Kleisli_Data_ob (T: Kleisli_Data) (c : C) : C := pr1 T c. -Coercion Kleisli_Data_ob : Kleisli_Data >-> Funclass. +#[reversible] Coercion Kleisli_Data_ob : Kleisli_Data >-> Funclass. Definition η (T : Kleisli_Data) : ∏ a : C, a --> T a := pr1 (pr2 T). @@ -78,8 +78,8 @@ Definition η_bind {T : Kleisli_Data} (H : Kleisli_Laws T) : Definition KleisliMonad : UU := ∑ (T : Kleisli_Data), Kleisli_Laws T. (* argument [C] will be set as not implicit after the end of the section *) -Coercion Kleisli_Data_from_Kleisli (T : KleisliMonad) : Kleisli_Data := pr1 T. -Coercion kleisli_laws (T : KleisliMonad) : Kleisli_Laws (pr1 T) := pr2 T. +#[reversible] Coercion Kleisli_Data_from_Kleisli (T : KleisliMonad) : Kleisli_Data := pr1 T. +#[reversible] Coercion kleisli_laws (T : KleisliMonad) : Kleisli_Laws (pr1 T) := pr2 T. End Kleisli_defn. diff --git a/UniMath/CategoryTheory/Monads/Kleisli.v b/UniMath/CategoryTheory/Monads/Kleisli.v index da56aa0023..352c6c7baa 100644 --- a/UniMath/CategoryTheory/Monads/Kleisli.v +++ b/UniMath/CategoryTheory/Monads/Kleisli.v @@ -25,7 +25,7 @@ Proof. apply idpath. Qed. -Coercion RelMonad_from_Kleisli {C : category} (T : KleisliMonad C) := (T : RelMonad (functor_identity C)). +#[reversible] Coercion RelMonad_from_Kleisli {C : category} (T : KleisliMonad C) := (T : RelMonad (functor_identity C)). (** * Equivalence of the types of KleisliMonad and "monoidal" monads *) Section monad_types_equiv. diff --git a/UniMath/CategoryTheory/Monads/LModules.v b/UniMath/CategoryTheory/Monads/LModules.v index 2cac362947..1aca48ef1e 100644 --- a/UniMath/CategoryTheory/Monads/LModules.v +++ b/UniMath/CategoryTheory/Monads/LModules.v @@ -54,7 +54,7 @@ Section LModule_def. Definition LModule_data (D : category) : UU := ∑ F : functor B D, M ∙ F ⟹ F. -Coercion functor_from_LModule_data (C : category) (F : LModule_data C) +#[reversible] Coercion functor_from_LModule_data (C : category) (F : LModule_data C) : functor B C := pr1 F. Definition lm_mult {C : category} (F : LModule_data C) : M ∙ F ⟹ F := pr2 F. @@ -73,7 +73,7 @@ Qed. Definition LModule (C : category) : UU := ∑ T : LModule_data C, LModule_laws T. -Coercion LModule_data_from_LModule (C : category) (T : LModule C) : LModule_data C := pr1 T. +#[reversible] Coercion LModule_data_from_LModule (C : category) (T : LModule C) : LModule_data C := pr1 T. Lemma LModule_law1 {C : category} {T : LModule C} : ∏ c : B, #T (η M c) · σ T c = identity (T c). @@ -109,7 +109,7 @@ Definition LModule_Mor {C : category} (T T' : LModule C) : UU := ∑ α : T ⟹ T', LModule_Mor_laws α. -Coercion nat_trans_from_module_mor (C : category) (T T' : LModule C) (s : LModule_Mor T T') +#[reversible] Coercion nat_trans_from_module_mor (C : category) (T T' : LModule C) (s : LModule_Mor T T') : T ⟹ T' := pr1 s. Definition LModule_Mor_σ {C : category} {T T' : LModule C} (α : LModule_Mor T T') diff --git a/UniMath/CategoryTheory/Monads/MonadAlgebras.v b/UniMath/CategoryTheory/Monads/MonadAlgebras.v index 1ec5f1cb72..49b2280ca2 100644 --- a/UniMath/CategoryTheory/Monads/MonadAlgebras.v +++ b/UniMath/CategoryTheory/Monads/MonadAlgebras.v @@ -40,7 +40,7 @@ Section Algebra_def. Definition Algebra_data : UU := ∑ X : C, T X --> X. -Coercion Alg_carrier (X : Algebra_data) : C := pr1 X. +#[reversible] Coercion Alg_carrier (X : Algebra_data) : C := pr1 X. Definition Alg_map (X : Algebra_data) : T X --> X := pr2 X. @@ -50,7 +50,7 @@ Definition Algebra_laws (X : Algebra_data) : UU Definition Algebra : UU := ∑ X : Algebra_data, Algebra_laws X. -Coercion Algebra_data_from_Algebra (X : Algebra) : Algebra_data := pr1 X. +#[reversible] Coercion Algebra_data_from_Algebra (X : Algebra) : Algebra_data := pr1 X. Definition Algebra_idlaw (X : Algebra) : η T X · Alg_map X = identity X := pr1 (pr2 X). @@ -82,7 +82,7 @@ Definition is_Algebra_mor {X Y : Algebra} (f : X --> Y) : UU Definition Algebra_mor (X Y : Algebra) : UU := ∑ f : X --> Y, is_Algebra_mor f. -Coercion mor_from_Algebra_mor {X Y : Algebra} (f : Algebra_mor X Y) +#[reversible] Coercion mor_from_Algebra_mor {X Y : Algebra} (f : Algebra_mor X Y) : X --> Y := pr1 f. Definition Algebra_mor_commutes {X Y : Algebra} (f : Algebra_mor X Y) diff --git a/UniMath/CategoryTheory/Monads/Monads.v b/UniMath/CategoryTheory/Monads/Monads.v index 0d5d5822a7..21b0fb0efc 100644 --- a/UniMath/CategoryTheory/Monads/Monads.v +++ b/UniMath/CategoryTheory/Monads/Monads.v @@ -134,7 +134,7 @@ Section Monad_disp_def. Definition Monad : UU := ob category_Monad. - Coercion functor_from_Monad (T : Monad) : functor C C := pr1 T. + #[reversible] Coercion functor_from_Monad (T : Monad) : functor C C := pr1 T. Definition μ (T : Monad) : T ∙ T ⟹ T := pr112 T. Definition η (T : Monad) : functor_identity C ⟹ T := pr212 T. @@ -279,7 +279,7 @@ End pointfree. Definition Monad_Mor {C : category} (T T' : Monad C) : UU := category_Monad C ⟦T, T'⟧. -Coercion nat_trans_from_monad_mor {C : category} (T T' : Monad C) (s : Monad_Mor T T') +#[reversible] Coercion nat_trans_from_monad_mor {C : category} (T T' : Monad C) (s : Monad_Mor T T') : T ⟹ T' := pr1 s. Definition Monad_Mor_laws {C : category} {T T' : Monad C} (α : T ⟹ T') @@ -483,7 +483,7 @@ Section Monad_eq_helper. (∏ a : ob C, F (F a) --> F a)) × (∏ a : ob C, a --> F a)). - Coercion functor_data_from_raw_Monad_data {C : category} (T : raw_Monad_data C) : + #[reversible] Coercion functor_data_from_raw_Monad_data {C : category} (T : raw_Monad_data C) : functor_data C C := make_functor_data (pr1 T) (pr1 (pr1 (pr2 T))). Definition Monad'_data_laws {C : category} (T : raw_Monad_data C) := diff --git a/UniMath/CategoryTheory/Monads/RelativeModules.v b/UniMath/CategoryTheory/Monads/RelativeModules.v index fb2438e9bd..26c988cb70 100644 --- a/UniMath/CategoryTheory/Monads/RelativeModules.v +++ b/UniMath/CategoryTheory/Monads/RelativeModules.v @@ -53,7 +53,7 @@ Section RelModule_Definition. Definition RelModule_ob {R : RelMonad_data J} (M : RelModule_data R) : C → D := pr1 M. - Coercion RelModule_ob : RelModule_data >-> Funclass. + #[reversible] Coercion RelModule_ob : RelModule_data >-> Funclass. Section Projections_and_Laws. @@ -78,7 +78,7 @@ Section RelModule_Definition. × (∏ c d e (f : D ⟦J c, R d⟧) (g : D ⟦J d, R e⟧), mbind M f · mbind M g = mbind M (f · r_bind R g)). - Coercion relmonad_axiom_from_relmodule {M : RelModule_data R} (X : RelModule_laws M) + #[reversible] Coercion relmonad_axiom_from_relmodule {M : RelModule_data R} (X : RelModule_laws M) : RelMonad_axioms R := pr1 X. @@ -142,12 +142,12 @@ Definition make_RelModule {C D : precategory_data} {J : C ⟶ D} (R : RelMonad_d : RelModule R := (M,, HM). -Coercion RelModule_data_from_RelModule {C D : precategory_data} {J : C ⟶ D} +#[reversible] Coercion RelModule_data_from_RelModule {C D : precategory_data} {J : C ⟶ D} {R : RelMonad_data J} (M : RelModule R) : RelModule_data R := pr1 M. -Coercion RelModule_laws_from_RelModule {C D : precategory_data} {J : C ⟶ D} +#[reversible] Coercion RelModule_laws_from_RelModule {C D : precategory_data} {J : C ⟶ D} {R : RelMonad_data J} (M : RelModule R) : RelModule_laws M := pr2 M. @@ -226,9 +226,9 @@ Section Part1. Definition relmodule_mor_map {M N : RelModule R} (φ : RelModule_Mor M N) : ∏ a : C, M a --> N a := pr1 φ. - Coercion relmodule_mor_map : RelModule_Mor >-> Funclass. + #[reversible] Coercion relmodule_mor_map : RelModule_Mor >-> Funclass. - Coercion relmodule_mor_property {M N : RelModule R} (φ : RelModule_Mor M N) + #[reversible] Coercion relmodule_mor_property {M N : RelModule R} (φ : RelModule_Mor M N) : is_relmodule_mor M N φ := pr2 φ. diff --git a/UniMath/CategoryTheory/Monads/RelativeMonads.v b/UniMath/CategoryTheory/Monads/RelativeMonads.v index bf0e09652d..48f999b50c 100644 --- a/UniMath/CategoryTheory/Monads/RelativeMonads.v +++ b/UniMath/CategoryTheory/Monads/RelativeMonads.v @@ -43,7 +43,7 @@ Definition RelMonad_data : UU × (∏ c d, D ⟦J c, F d⟧ → D ⟦F c, F d⟧). Definition RelMonad_ob (R : RelMonad_data) (c : C) : D := pr1 R c. -Coercion RelMonad_ob : RelMonad_data >-> Funclass. +#[reversible] Coercion RelMonad_ob : RelMonad_data >-> Funclass. Definition r_eta (R : RelMonad_data) c : D ⟦J c, R c⟧ := pr1 (pr2 R) c. Definition r_bind (R : RelMonad_data) {c d} (f : D⟦J c, R d⟧) : D ⟦R c, R d⟧ := pr2 (pr2 R) _ _ f. @@ -73,8 +73,8 @@ Definition r_bind_r_bind {R : RelMonad_data} (X : RelMonad_axioms R) (* implicitness of arguments for RelMonad are set after this section *) Definition RelMonad : UU := ∑ R : RelMonad_data, RelMonad_axioms R. -Coercion RelMonad_data_from_RelMonad (R : RelMonad) : RelMonad_data := pr1 R. -Coercion RelMonad_axioms_from_RelMonad (R : RelMonad) : RelMonad_axioms R := pr2 R. +#[reversible] Coercion RelMonad_data_from_RelMonad (R : RelMonad) : RelMonad_data := pr1 R. +#[reversible] Coercion RelMonad_axioms_from_RelMonad (R : RelMonad) : RelMonad_axioms R := pr2 R. Lemma RelMonad_eq (R R' : RelMonad)(hs : has_homsets D) : pr1 R = pr1 R' -> R = R'. @@ -272,10 +272,10 @@ Definition α_r_bind {C D : precategory_data} {J : functor_data C D} Definition RelMonadMor {C D : precategory_data} {J : functor_data C D} (R R' : RelMonad_data J) : UU := ∑ α : RelMonadMor_data R R', RelMonadMor_axioms α. -Coercion RelMonadMor_data_from_RelMonadMor {C D : precategory_data} {J : functor_data C D} +#[reversible] Coercion RelMonadMor_data_from_RelMonadMor {C D : precategory_data} {J : functor_data C D} {R R' : RelMonad_data J} (α : RelMonadMor R R') : RelMonadMor_data R R' := pr1 α. - Coercion RelMonadMor_axioms_from_RelMonadMor {C D : precategory_data} {J : functor_data C D} + #[reversible] Coercion RelMonadMor_axioms_from_RelMonadMor {C D : precategory_data} {J : functor_data C D} {R R' : RelMonad_data J} (α : RelMonadMor R R') : RelMonadMor_axioms α := pr2 α. diff --git a/UniMath/CategoryTheory/Monics.v b/UniMath/CategoryTheory/Monics.v index 7510d00c8e..8789a1fd99 100644 --- a/UniMath/CategoryTheory/Monics.v +++ b/UniMath/CategoryTheory/Monics.v @@ -47,7 +47,7 @@ Section def_monic. (** Gets the arrow out of Monic. *) Definition MonicArrow {y z : C} (M : Monic y z) : C⟦y, z⟧ := pr1 M. - Coercion MonicArrow : Monic >-> precategory_morphisms. + #[reversible] Coercion MonicArrow : Monic >-> precategory_morphisms. Definition MonicisMonic {y z : C} (M : Monic y z) : isMonic M := pr2 M. diff --git a/UniMath/CategoryTheory/Monoidal/Adjunctions.v b/UniMath/CategoryTheory/Monoidal/Adjunctions.v index 8a3ec355d2..cfc5870b91 100644 --- a/UniMath/CategoryTheory/Monoidal/Adjunctions.v +++ b/UniMath/CategoryTheory/Monoidal/Adjunctions.v @@ -1087,7 +1087,7 @@ Section SymMonoidalAdjunctionAccessors. := pr2 HAA. End SymMonoidalAdjunctionAccessors. -Coercion sym_monoidal_adjunction_to_monoidal_adjunction +#[reversible] Coercion sym_monoidal_adjunction_to_monoidal_adjunction {C₁ C₂ : category} {M₁ : monoidal C₁} {M₂ : monoidal C₂} @@ -1098,7 +1098,7 @@ Coercion sym_monoidal_adjunction_to_monoidal_adjunction : monoidal_adjunction M₁ M₂ A := pr1 HA. -Coercion sym_monoidal_adjunction_to_is_symmetric +#[reversible] Coercion sym_monoidal_adjunction_to_is_symmetric {C₁ C₂ : category} {M₁ : monoidal C₁} {M₂ : monoidal C₂} diff --git a/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/BraidedMonoidalCategories.v b/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/BraidedMonoidalCategories.v index 4ec377cde0..1b5ec30663 100644 --- a/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/BraidedMonoidalCategories.v +++ b/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/BraidedMonoidalCategories.v @@ -78,4 +78,4 @@ Definition braided_monoidal_cat_second_hexagon_eq := pr2 (pr2 (pr2 M)). End Braided_Monoidal_Cat_Acessors. -Coercion braided_monoidal_cat_monoidal_cat : braided_monoidal_cat >-> monoidal_cat. +#[reversible] Coercion braided_monoidal_cat_monoidal_cat : braided_monoidal_cat >-> monoidal_cat. diff --git a/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/CategoriesOfMonoids.v b/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/CategoriesOfMonoids.v index 063758e110..4fe9c6ccf0 100644 --- a/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/CategoriesOfMonoids.v +++ b/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/CategoriesOfMonoids.v @@ -39,7 +39,7 @@ Definition monoid_ob : UU := ∑ X : monoid_ob_data, is_monoid_ob (pr1 X) (pr1 (pr2 X)) (pr2 (pr2 X)). Definition monoid_carrier (X : monoid_ob) : Mon := pr1 (pr1 X). -Local Coercion monoid_carrier : monoid_ob >-> ob. +Local #[reversible] Coercion monoid_carrier : monoid_ob >-> ob. Definition monoid_mult (X : monoid_ob) := pr1 (pr2 (pr1 X)). @@ -51,7 +51,7 @@ Definition is_monoid_mor (X Y : monoid_ob) (f : monoid_carrier X --> monoid_carr Definition monoid_mor (X Y : monoid_ob) : UU := ∑ f : X --> Y, is_monoid_mor X Y f. -Coercion mor_from_monoid_mor (X Y : monoid_ob) (f : monoid_mor X Y) : X --> Y := pr1 f. +#[reversible] Coercion mor_from_monoid_mor (X Y : monoid_ob) (f : monoid_mor X Y) : X --> Y := pr1 f. Definition isaprop_is_monoid_mor (X Y : monoid_ob) (f : monoid_carrier X --> monoid_carrier Y): isaprop (is_monoid_mor X Y f). diff --git a/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/DisplayedMonoidalCurried.v b/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/DisplayedMonoidalCurried.v index 3d2fb3a30a..a8fc3bfb6c 100644 --- a/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/DisplayedMonoidalCurried.v +++ b/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/DisplayedMonoidalCurried.v @@ -71,19 +71,19 @@ Section displayedmonoidalcategories. (displayedleftunitor_data dtd i) × (displayedrightunitor_data dtd i) × (displayedassociator_data dtd). Definition displayedtensordata_from_dispmoncatdata (DMD : displayedmonoidalcat_data) : displayedtensor_data := pr1 DMD. - Coercion displayedtensordata_from_dispmoncatdata : displayedmonoidalcat_data >-> displayedtensor_data. + #[reversible] Coercion displayedtensordata_from_dispmoncatdata : displayedmonoidalcat_data >-> displayedtensor_data. Definition displayedunit_from_dispmoncatdata (DMD : displayedmonoidalcat_data) : D I := pr1 (pr2 DMD). - Coercion displayedunit_from_dispmoncatdata : displayedmonoidalcat_data >-> ob_disp. + #[reversible] Coercion displayedunit_from_dispmoncatdata : displayedmonoidalcat_data >-> ob_disp. Definition displayedleftunitordata_from_dispmoncatdata (DMD : displayedmonoidalcat_data) : displayedleftunitor_data DMD DMD := pr1 (pr2 (pr2 DMD)). - Coercion displayedleftunitordata_from_dispmoncatdata : displayedmonoidalcat_data >-> displayedleftunitor_data. + #[reversible] Coercion displayedleftunitordata_from_dispmoncatdata : displayedmonoidalcat_data >-> displayedleftunitor_data. Definition displayedrightunitordata_from_dispmoncatdata (DMD : displayedmonoidalcat_data) : displayedrightunitor_data DMD DMD := pr1 (pr2 (pr2 (pr2 DMD))). - Coercion displayedrightunitordata_from_dispmoncatdata : displayedmonoidalcat_data >-> displayedrightunitor_data. + #[reversible] Coercion displayedrightunitordata_from_dispmoncatdata : displayedmonoidalcat_data >-> displayedrightunitor_data. Definition displayedassociatordata_from_dispmoncatdata (DMD : displayedmonoidalcat_data) : displayedassociator_data DMD := pr2 (pr2 (pr2 (pr2 DMD))). - Coercion displayedassociatordata_from_dispmoncatdata : displayedmonoidalcat_data >-> displayedassociator_data. + #[reversible] Coercion displayedassociatordata_from_dispmoncatdata : displayedmonoidalcat_data >-> displayedassociator_data. (** PROPERTIES **) @@ -131,33 +131,33 @@ Section displayedmonoidalcategories. (displayedtriangle_identity DMD DMD DMD) × (displayedpentagon_identity DMD). Definition displayedtensorid_from_monoidallaws {DMD : displayedmonoidalcat_data} (DML : displayedmonoidal_laws DMD) : displayedtensor_id DMD := pr1 DML. -Coercion displayedtensorid_from_monoidallaws : displayedmonoidal_laws >-> displayedtensor_id. +#[reversible] Coercion displayedtensorid_from_monoidallaws : displayedmonoidal_laws >-> displayedtensor_id. Definition displayedtensorcomp_from_monoidallaws {DMD : displayedmonoidalcat_data} (DML : displayedmonoidal_laws DMD) : displayedtensor_comp DMD := pr1 (pr2 DML). -Coercion displayedtensorcomp_from_monoidallaws : displayedmonoidal_laws >-> displayedtensor_comp. +#[reversible] Coercion displayedtensorcomp_from_monoidallaws : displayedmonoidal_laws >-> displayedtensor_comp. Definition displayedassociatornaturality_from_monoidallaws {DMD : displayedmonoidalcat_data} (DML : displayedmonoidal_laws DMD) : displayedassociator_naturality DMD := pr1 (pr2 (pr2 DML)). -Coercion displayedassociatornaturality_from_monoidallaws : displayedmonoidal_laws >-> displayedassociator_naturality. +#[reversible] Coercion displayedassociatornaturality_from_monoidallaws : displayedmonoidal_laws >-> displayedassociator_naturality. Definition displayedassociatorisiso_from_monoidallaws {DMD : displayedmonoidalcat_data} (DML : displayedmonoidal_laws DMD) : displayedassociator_is_nat_iso DMD := pr1 (pr2 (pr2 (pr2 DML))). -Coercion displayedassociatorisiso_from_monoidallaws : displayedmonoidal_laws >-> displayedassociator_is_nat_iso. +#[reversible] Coercion displayedassociatorisiso_from_monoidallaws : displayedmonoidal_laws >-> displayedassociator_is_nat_iso. Definition displayedleftunitornaturality_from_monoidallaws {DMD : displayedmonoidalcat_data} (DML : displayedmonoidal_laws DMD) : displayedleftunitor_naturality DMD := pr1 (pr2 (pr2 (pr2 (pr2 DML)))). -Coercion displayedleftunitornaturality_from_monoidallaws : displayedmonoidal_laws >-> displayedleftunitor_naturality. +#[reversible] Coercion displayedleftunitornaturality_from_monoidallaws : displayedmonoidal_laws >-> displayedleftunitor_naturality. Definition displayedleftunitorisiso_from_monoidallaws {DMD : displayedmonoidalcat_data} (DML : displayedmonoidal_laws DMD) : displayedleftunitor_is_nat_iso DMD := pr1 (pr2 (pr2 (pr2 (pr2 (pr2 DML))))). -Coercion displayedleftunitorisiso_from_monoidallaws : displayedmonoidal_laws >-> displayedleftunitor_is_nat_iso. +#[reversible] Coercion displayedleftunitorisiso_from_monoidallaws : displayedmonoidal_laws >-> displayedleftunitor_is_nat_iso. Definition displayedrightunitornaturality_from_monoidallaws{DMD : displayedmonoidalcat_data} (DML : displayedmonoidal_laws DMD) : displayedrightunitor_naturality DMD := pr1 (pr2 (pr2 (pr2 (pr2 (pr2 (pr2 DML)))))). -Coercion displayedrightunitornaturality_from_monoidallaws : displayedmonoidal_laws >-> displayedrightunitor_naturality. +#[reversible] Coercion displayedrightunitornaturality_from_monoidallaws : displayedmonoidal_laws >-> displayedrightunitor_naturality. Definition displayedrightunitorisiso_from_monoidallaws {DMD : displayedmonoidalcat_data} (DML : displayedmonoidal_laws DMD) : displayedrightunitor_is_nat_iso DMD := pr1 (pr2 (pr2 (pr2 (pr2 (pr2 (pr2 (pr2 DML))))))). -Coercion displayedrightunitorisiso_from_monoidallaws : displayedmonoidal_laws >-> displayedrightunitor_is_nat_iso. +#[reversible] Coercion displayedrightunitorisiso_from_monoidallaws : displayedmonoidal_laws >-> displayedrightunitor_is_nat_iso. Definition displayedtriangleidentity_from_monoidallaws {DMD : displayedmonoidalcat_data} (DML : displayedmonoidal_laws DMD) : displayedtriangle_identity DMD DMD DMD := pr1 (pr2 (pr2 (pr2 (pr2 (pr2 (pr2 (pr2 (pr2 DML)))))))). -Coercion displayedtriangleidentity_from_monoidallaws : displayedmonoidal_laws >-> displayedtriangle_identity. +#[reversible] Coercion displayedtriangleidentity_from_monoidallaws : displayedmonoidal_laws >-> displayedtriangle_identity. Definition displayedpentagonidentity_from_monoidallaws {DMD : displayedmonoidalcat_data} (DML : displayedmonoidal_laws DMD) : displayedpentagon_identity DMD := pr2 (pr2 (pr2 (pr2 (pr2 (pr2 (pr2 (pr2 (pr2 DML)))))))). -Coercion displayedpentagonidentity_from_monoidallaws : displayedmonoidal_laws >-> displayedpentagon_identity. +#[reversible] Coercion displayedpentagonidentity_from_monoidallaws : displayedmonoidal_laws >-> displayedpentagon_identity. End displayedmonoidalcategories. diff --git a/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/DisplayedMonoidalTensored.v b/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/DisplayedMonoidalTensored.v index 37f92ab0ee..e85c9d13a8 100644 --- a/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/DisplayedMonoidalTensored.v +++ b/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/DisplayedMonoidalTensored.v @@ -764,7 +764,7 @@ Section section_tensor. Definition monoidal_tensor_section : UU := ∑ (α : monoidal_tensor_section_data), monoidal_tensor_section_natural α. - Coercion monoidal_tensor_section_data_from_monoidal_tensor_section (α : monoidal_tensor_section) + #[reversible] Coercion monoidal_tensor_section_data_from_monoidal_tensor_section (α : monoidal_tensor_section) : monoidal_tensor_section_data := pr1 α. diff --git a/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalCategoriesCurried.v b/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalCategoriesCurried.v index 33c93a18cb..c98746a3cd 100644 --- a/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalCategoriesCurried.v +++ b/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalCategoriesCurried.v @@ -54,19 +54,19 @@ Local Open Scope cat. (leftunitor_data T I) × (rightunitor_data T I) × (associator_data T). Definition tensordata_from_monoidalcatdata {C : category} (MD : monoidalcategory_data C) : tensor_data C := (pr1 MD). -Coercion tensordata_from_monoidalcatdata : monoidalcategory_data >-> tensor_data. +#[reversible] Coercion tensordata_from_monoidalcatdata : monoidalcategory_data >-> tensor_data. Definition unit_from_monoidalcatdata {C : category} (MD : monoidalcategory_data C) : C := (pr1 (pr2 MD)). -Coercion unit_from_monoidalcatdata : monoidalcategory_data >-> ob. +#[reversible] Coercion unit_from_monoidalcatdata : monoidalcategory_data >-> ob. Definition leftunitordata_from_monoidalcatdata {C : category} (MD : monoidalcategory_data C) : leftunitor_data MD MD := (pr1 (pr2 (pr2 MD))). -Coercion leftunitordata_from_monoidalcatdata : monoidalcategory_data >-> leftunitor_data. +#[reversible] Coercion leftunitordata_from_monoidalcatdata : monoidalcategory_data >-> leftunitor_data. Definition rightunitordata_from_monoidalcatdata {C : category} (MD : monoidalcategory_data C) : rightunitor_data MD MD := (pr1 (pr2 (pr2 (pr2 MD)))). -Coercion rightunitordata_from_monoidalcatdata : monoidalcategory_data >-> rightunitor_data. +#[reversible] Coercion rightunitordata_from_monoidalcatdata : monoidalcategory_data >-> rightunitor_data. Definition associatordata_from_monoidalcatdata {C : category} (MD : monoidalcategory_data C) : associator_data MD := (pr2 (pr2 (pr2 (pr2 MD)))). -Coercion associatordata_from_monoidalcatdata : monoidalcategory_data >-> associator_data. +#[reversible] Coercion associatordata_from_monoidalcatdata : monoidalcategory_data >-> associator_data. (** Axioms **) @@ -118,40 +118,40 @@ Definition monoidal_laws {C : category} (MD : monoidalcategory_data C) : UU := (triangle_identity MD MD MD) × (pentagon_identity MD). Definition tensorfunctorialityid_from_monoidallaws {C : category} {MD : monoidalcategory_data C} (ML : monoidal_laws MD) : tensorfunctor_id MD := pr1 ML. -Coercion tensorfunctorialityid_from_monoidallaws : monoidal_laws >-> tensorfunctor_id. +#[reversible] Coercion tensorfunctorialityid_from_monoidallaws : monoidal_laws >-> tensorfunctor_id. Definition tensorfunctorialitycomp_from_monoidallaws {C : category} {MD : monoidalcategory_data C} (ML : monoidal_laws MD) : tensorfunctor_comp MD := pr1 (pr2 ML). -Coercion tensorfunctorialitycomp_from_monoidallaws : monoidal_laws >-> tensorfunctor_comp. +#[reversible] Coercion tensorfunctorialitycomp_from_monoidallaws : monoidal_laws >-> tensorfunctor_comp. Definition associatornaturality_from_monoidallaws {C : category} {MD : monoidalcategory_data C} (ML : monoidal_laws MD) : associator_naturality MD := pr1 (pr2 (pr2 ML)). -Coercion associatornaturality_from_monoidallaws : monoidal_laws >-> associator_naturality. +#[reversible] Coercion associatornaturality_from_monoidallaws : monoidal_laws >-> associator_naturality. Definition associatorisiso_from_monoidallaws {C : category} {MD : monoidalcategory_data C} (ML : monoidal_laws MD) : associator_is_natiso MD := pr1 (pr2 (pr2 (pr2 ML))). -Coercion associatorisiso_from_monoidallaws : monoidal_laws >-> associator_is_natiso. +#[reversible] Coercion associatorisiso_from_monoidallaws : monoidal_laws >-> associator_is_natiso. Definition leftunitornaturality_from_monoidallaws {C : category} {MD : monoidalcategory_data C} (ML : monoidal_laws MD) : leftunitor_naturality MD := pr1 (pr2 (pr2 (pr2 (pr2 ML)))). -Coercion leftunitornaturality_from_monoidallaws : monoidal_laws >-> leftunitor_naturality. +#[reversible] Coercion leftunitornaturality_from_monoidallaws : monoidal_laws >-> leftunitor_naturality. Definition leftunitorisiso_from_monoidallaws {C : category} {MD : monoidalcategory_data C} (ML : monoidal_laws MD) : leftunitor_is_natiso MD := pr1 (pr2 (pr2 (pr2 (pr2 (pr2 ML))))). -Coercion leftunitorisiso_from_monoidallaws : monoidal_laws >-> leftunitor_is_natiso. +#[reversible] Coercion leftunitorisiso_from_monoidallaws : monoidal_laws >-> leftunitor_is_natiso. Definition rightunitornaturality_from_monoidallaws {C : category} {MD : monoidalcategory_data C} (ML : monoidal_laws MD) : rightunitor_naturality MD := pr1 (pr2 (pr2 (pr2 (pr2 (pr2 (pr2 ML)))))). -Coercion rightunitornaturality_from_monoidallaws : monoidal_laws >-> rightunitor_naturality. +#[reversible] Coercion rightunitornaturality_from_monoidallaws : monoidal_laws >-> rightunitor_naturality. Definition rightunitorisiso_from_monoidallaws {C : category} {MD : monoidalcategory_data C} (ML : monoidal_laws MD) : rightunitor_is_natiso MD := pr1 (pr2 (pr2 (pr2 (pr2 (pr2 (pr2 (pr2 ML))))))). -Coercion rightunitorisiso_from_monoidallaws : monoidal_laws >-> rightunitor_is_natiso. +#[reversible] Coercion rightunitorisiso_from_monoidallaws : monoidal_laws >-> rightunitor_is_natiso. Definition triangleidentity_from_monoidallaws {C : category} {MD : monoidalcategory_data C} (ML : monoidal_laws MD) : triangle_identity MD MD MD := pr1 (pr2 (pr2 (pr2 (pr2 (pr2 (pr2 (pr2 (pr2 ML)))))))). -Coercion triangleidentity_from_monoidallaws : monoidal_laws >-> triangle_identity. +#[reversible] Coercion triangleidentity_from_monoidallaws : monoidal_laws >-> triangle_identity. Definition pentagonidentity_from_monoidallaws {C : category} {MD : monoidalcategory_data C} (ML : monoidal_laws MD) : pentagon_identity MD := pr2 (pr2 (pr2 (pr2 (pr2 (pr2 (pr2 (pr2 (pr2 ML)))))))). -Coercion pentagonidentity_from_monoidallaws : monoidal_laws >-> pentagon_identity. +#[reversible] Coercion pentagonidentity_from_monoidallaws : monoidal_laws >-> pentagon_identity. Definition monoidalcategory (C : category) : UU := ∑ (MD : monoidalcategory_data C), (monoidal_laws MD). Definition monoidalcategorydata_from_monoidalcategory {C : category} (M : monoidalcategory C) : monoidalcategory_data C := pr1 M. -Coercion monoidalcategorydata_from_monoidalcategory : monoidalcategory >-> monoidalcategory_data. +#[reversible] Coercion monoidalcategorydata_from_monoidalcategory : monoidalcategory >-> monoidalcategory_data. Definition monoidallaws_from_monoidalcategory {C : category} (M : monoidalcategory C) : monoidal_laws M := pr2 M. -Coercion monoidallaws_from_monoidalcategory : monoidalcategory >-> monoidal_laws. +#[reversible] Coercion monoidallaws_from_monoidalcategory : monoidalcategory >-> monoidal_laws. diff --git a/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalCategoriesReordered.v b/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalCategoriesReordered.v index 1deed1f6a4..f8b19b4e40 100644 --- a/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalCategoriesReordered.v +++ b/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalCategoriesReordered.v @@ -9,10 +9,10 @@ Section MonoidalStructReordered. Definition tensor_unit (C : category) : UU := bifunctor C C C × C. Definition tensor_unit_to_tensor {C : category} (tu : tensor_unit C) : bifunctor C C C := pr1 tu. - Coercion tensor_unit_to_tensor : tensor_unit >-> bifunctor. + #[reversible] Coercion tensor_unit_to_tensor : tensor_unit >-> bifunctor. Definition tensor_unit_to_unit {C : category} (tu : tensor_unit C) : ob C := pr2 tu. - Coercion tensor_unit_to_unit : tensor_unit >-> ob. + #[reversible] Coercion tensor_unit_to_unit : tensor_unit >-> ob. (* Unitors and associators *) Definition laxleftunitor {C : category} (tu : tensor_unit C) : UU @@ -20,7 +20,7 @@ Section MonoidalStructReordered. Definition laxleftunitor_to_lunitor_data {C : category} {tu : tensor_unit C} (lu : laxleftunitor tu) : leftunitor_data tu tu := pr1 lu. - Coercion laxleftunitor_to_lunitor_data : laxleftunitor >-> leftunitor_data. + #[reversible] Coercion laxleftunitor_to_lunitor_data : laxleftunitor >-> leftunitor_data. Definition laxleftunitor_to_lunitor_nat {C : category} {tu : tensor_unit C} (lu : laxleftunitor tu) : leftunitor_nat lu := pr2 lu. @@ -30,7 +30,7 @@ Section MonoidalStructReordered. Definition laxrightunitor_to_runitor_data {C : category} {tu : tensor_unit C} (ru : laxrightunitor tu) : rightunitor_data tu tu := pr1 ru. - Coercion laxrightunitor_to_runitor_data : laxrightunitor >-> rightunitor_data. + #[reversible] Coercion laxrightunitor_to_runitor_data : laxrightunitor >-> rightunitor_data. Definition laxrightunitor_to_runitor_nat {C : category} {tu : tensor_unit C} (ru : laxrightunitor tu) : rightunitor_nat ru := pr2 ru. @@ -42,7 +42,7 @@ Section MonoidalStructReordered. Definition laxassociator_to_associator_data {C : category} {tu : tensor_unit C} (α : laxassociator tu) : associator_data tu := pr1 α. - Coercion laxassociator_to_associator_data : laxassociator >-> associator_data. + #[reversible] Coercion laxassociator_to_associator_data : laxassociator >-> associator_data. Definition laxassociator_to_associator_nat_left {C : category} {tu : tensor_unit C} (α : laxassociator tu) : associator_nat_leftwhisker α := pr12 α. @@ -58,7 +58,7 @@ Section MonoidalStructReordered. Definition tensor_unit_unitors_associator_to_tensor_unit {C : category} (tuua : tensor_unit_unitors_associator C) : tensor_unit C := pr1 tuua. - Coercion tensor_unit_unitors_associator_to_tensor_unit + #[reversible] Coercion tensor_unit_unitors_associator_to_tensor_unit : tensor_unit_unitors_associator >-> tensor_unit. Definition tensor_unit_unitors_associator_laxleftunitor {C : category} (tuua : tensor_unit_unitors_associator C) @@ -79,7 +79,7 @@ Section MonoidalStructReordered. {C : category} {M : tensor_unit_unitors_associator C} (lui : lax_monoidal_leftunitor_inverse M) : leftunitorinv_data M M := pr1 lui. - Coercion lax_monoidal_leftunitor_inverse_to_inverse_data + #[reversible] Coercion lax_monoidal_leftunitor_inverse_to_inverse_data : lax_monoidal_leftunitor_inverse >-> leftunitorinv_data. Definition lax_monoidal_leftunitor_inverse_to_inverse_law {C : category} {M : tensor_unit_unitors_associator C} @@ -95,7 +95,7 @@ Section MonoidalStructReordered. {C : category} {M : tensor_unit_unitors_associator C} (lui : lax_monoidal_rightunitor_inverse M) : rightunitorinv_data M M := pr1 lui. - Coercion lax_monoidal_rightunitor_inverse_to_inverse_data + #[reversible] Coercion lax_monoidal_rightunitor_inverse_to_inverse_data : lax_monoidal_rightunitor_inverse >-> rightunitorinv_data. Definition lax_monoidal_rightunitor_inverse_to_inverse_law {C : category} {M : tensor_unit_unitors_associator C} @@ -111,7 +111,7 @@ Section MonoidalStructReordered. {C : category} {M : tensor_unit_unitors_associator C} (lui : lax_monoidal_associator_inverse M) : associatorinv_data M := pr1 lui. - Coercion lax_monoidal_associator_inverse_to_inverse_data + #[reversible] Coercion lax_monoidal_associator_inverse_to_inverse_data : lax_monoidal_associator_inverse >-> associatorinv_data. Definition lax_monoidal_associator_inverse_to_inverse_law {C : category} {M : tensor_unit_unitors_associator C} (lui : lax_monoidal_associator_inverse M) @@ -172,7 +172,7 @@ Section MonoidalStructReordered. Definition monoidal_struct_to_tensor_unit_unitors_associator {C : category} (M : monoidal_struct C) : tensor_unit_unitors_associator C := pr1 M. - Coercion monoidal_struct_to_tensor_unit_unitors_associator + #[reversible] Coercion monoidal_struct_to_tensor_unit_unitors_associator : monoidal_struct >-> tensor_unit_unitors_associator. Definition monoidal_struct_to_pentagontriangle diff --git a/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalCategoriesTensored.v b/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalCategoriesTensored.v index c22a6381b1..73202fc878 100644 --- a/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalCategoriesTensored.v +++ b/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalCategoriesTensored.v @@ -64,11 +64,11 @@ Definition left_unitor : UU := Definition left_unitor_funclass (λ' : left_unitor): ∏ x : ob C, I_pretensor x --> x := pr1 (nat_z_iso_to_trans λ'). -Coercion left_unitor_funclass : left_unitor >-> Funclass. +#[reversible] Coercion left_unitor_funclass : left_unitor >-> Funclass. Definition left_unitor_to_nat_trans (λ' : left_unitor): nat_trans I_pretensor (functor_identity C) := nat_z_iso_to_trans λ'. -Coercion left_unitor_to_nat_trans: left_unitor >-> nat_trans. +#[reversible] Coercion left_unitor_to_nat_trans: left_unitor >-> nat_trans. (* - ⊗ I *) Definition I_posttensor : C ⟶ C := functor_fix_snd_arg _ _ _ tensor I. @@ -85,11 +85,11 @@ Definition right_unitor : UU := Definition right_unitor_funclass (ρ' : right_unitor): ∏ x : ob C, I_posttensor x --> x := pr1 (nat_z_iso_to_trans ρ'). -Coercion right_unitor_funclass : right_unitor >-> Funclass. +#[reversible] Coercion right_unitor_funclass : right_unitor >-> Funclass. Definition right_unitor_to_nat_trans (ρ' : right_unitor): nat_trans I_posttensor (functor_identity C) := nat_z_iso_to_trans ρ'. -Coercion right_unitor_to_nat_trans: right_unitor >-> nat_trans. +#[reversible] Coercion right_unitor_to_nat_trans: right_unitor >-> nat_trans. (* (- ⊗ =) ⊗ ≡ *) Definition assoc_left : (C ⊠ C) ⊠ C ⟶ C := @@ -122,11 +122,11 @@ Definition associator : UU := Definition associator_funclass (α' : associator): ∏ x : ob ((C ⊠ C) ⊠ C), assoc_left x --> assoc_right x := pr1 (nat_z_iso_to_trans α'). -Coercion associator_funclass : associator >-> Funclass. +#[reversible] Coercion associator_funclass : associator >-> Funclass. Definition associator_to_nat_trans (α' : associator): nat_trans assoc_left assoc_right := nat_z_iso_to_trans α'. -Coercion associator_to_nat_trans: associator >-> nat_trans. +#[reversible] Coercion associator_to_nat_trans: associator >-> nat_trans. Definition triangle_eq (λ' : left_unitor) (ρ' : right_unitor) (α' : associator) : UU := ∏ (a b : C), pr1 ρ' a #⊗ id b = pr1 α' ((a, I), b) · id a #⊗ pr1 λ' b. @@ -167,7 +167,7 @@ Definition make_monoidal_cat (C: category)(tensor: C ⊠ C ⟶ C)(I: C) (C,, (tensor,, (I,, (λ',, (ρ',, (α',, (eq1,, eq2))))))). Definition monoidal_cat_cat (M : monoidal_cat) : category := pr1 M. -Coercion monoidal_cat_cat : monoidal_cat >-> category. +#[reversible] Coercion monoidal_cat_cat : monoidal_cat >-> category. Section Monoidal_Cat_Accessors. diff --git a/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalFunctorsCurried.v b/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalFunctorsCurried.v index 34efca69a9..2911750909 100644 --- a/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalFunctorsCurried.v +++ b/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalFunctorsCurried.v @@ -57,10 +57,10 @@ Section Curried_Monoidal_Functors. tensor_preserving_data × unit_preserving_data. Definition tensorpreservingdata_from_monoidalfunctordata (mfd : monoidalfunctor_data) : tensor_preserving_data := pr1 mfd. - Coercion tensorpreservingdata_from_monoidalfunctordata : monoidalfunctor_data >-> tensor_preserving_data. + #[reversible] Coercion tensorpreservingdata_from_monoidalfunctordata : monoidalfunctor_data >-> tensor_preserving_data. Definition unitpreservingdata_from_monoidalfunctordata (mfd : monoidalfunctor_data) : unit_preserving_data := pr2 mfd. - Coercion unitpreservingdata_from_monoidalfunctordata : monoidalfunctor_data >-> unit_preserving_data. + #[reversible] Coercion unitpreservingdata_from_monoidalfunctordata : monoidalfunctor_data >-> unit_preserving_data. (* Weak monoidal functor properties *) Definition tensor_preserving_data_is_natural (tpd : tensor_preserving_data) := @@ -99,7 +99,7 @@ Section Curried_Monoidal_Functors. intros x y. use (iso_stable_under_equalitytransportation (pr2 (pfstrict x y)) (is_z_isomorphism_identity ((F x) ⊗_{N} (F y)))). Defined. - Coercion strictlytensorpreserving_is_strong : is_strictlytensorpreserving >-> is_stronglytensorpreserving. + #[reversible] Coercion strictlytensorpreserving_is_strong : is_strictlytensorpreserving >-> is_stronglytensorpreserving. Definition is_stronglyunitpreserving (upd : unit_preserving_data) : UU := is_z_isomorphism upd. @@ -110,6 +110,6 @@ Section Curried_Monoidal_Functors. Proof. use (iso_stable_under_equalitytransportation (pr2 pfstrict) (is_z_isomorphism_identity I_{N})). Defined. - Coercion strictlyunitpreserving_is_strong : is_strictlyunitpreserving >-> is_stronglyunitpreserving. + #[reversible] Coercion strictlyunitpreserving_is_strong : is_strictlyunitpreserving >-> is_stronglyunitpreserving. End Curried_Monoidal_Functors. diff --git a/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalFunctorsTensored.v b/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalFunctorsTensored.v index 6cd63d7757..9855139022 100644 --- a/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalFunctorsTensored.v +++ b/UniMath/CategoryTheory/Monoidal/AlternativeDefinitions/MonoidalFunctorsTensored.v @@ -62,7 +62,7 @@ Definition monoidal_functor_map := Definition monoidal_functor_map_funclass (μ : monoidal_functor_map) : ∏ x : ob (Mon_C ⊠ Mon_C), monoidal_functor_map_dom x --> monoidal_functor_map_codom x := pr1 μ. -Coercion monoidal_functor_map_funclass : monoidal_functor_map >-> Funclass. +#[reversible] Coercion monoidal_functor_map_funclass : monoidal_functor_map >-> Funclass. Definition monoidal_functor_associativity (μ : monoidal_functor_map) := ∏ (x y z : Mon_C), @@ -88,7 +88,7 @@ Definition make_lax_monoidal_functor (F : Mon_C ⟶ Mon_D) (ϵ : I_D --> F I_C) (F,, (ϵ,, (μ,, (Hass,, Hunit)))). Definition lax_monoidal_functor_functor (lmF : lax_monoidal_functor) : Mon_C ⟶ Mon_D := pr1 lmF. -Coercion lax_monoidal_functor_functor : lax_monoidal_functor >-> functor. +#[reversible] Coercion lax_monoidal_functor_functor : lax_monoidal_functor >-> functor. Definition lax_monoidal_functor_ϵ (lmF : lax_monoidal_functor) : I_D --> lax_monoidal_functor_functor lmF I_C @@ -115,7 +115,7 @@ Definition strong_monoidal_functor : UU := Definition strong_monoidal_functor_lax_monoidal_functor (smF : strong_monoidal_functor) : lax_monoidal_functor := pr1 smF. -Coercion strong_monoidal_functor_lax_monoidal_functor : strong_monoidal_functor >-> lax_monoidal_functor. +#[reversible] Coercion strong_monoidal_functor_lax_monoidal_functor : strong_monoidal_functor >-> lax_monoidal_functor. Definition strong_monoidal_functor_ϵ_is_z_iso (smF : strong_monoidal_functor) : is_z_isomorphism (lax_monoidal_functor_ϵ smF) diff --git a/UniMath/CategoryTheory/Monoidal/Categories.v b/UniMath/CategoryTheory/Monoidal/Categories.v index 54eb49422a..bc3f208cf4 100644 --- a/UniMath/CategoryTheory/Monoidal/Categories.v +++ b/UniMath/CategoryTheory/Monoidal/Categories.v @@ -120,7 +120,7 @@ Definition make_monoidal_data := (T,,I,,lu,,luinv,,ru,,ruinv,,α,,αinv). Definition monoidal_tensor_data {C : category} (MD : monoidal_data C) : tensor_data C := pr1 MD. -Coercion monoidal_tensor_data : monoidal_data >-> tensor_data. +#[reversible] Coercion monoidal_tensor_data : monoidal_data >-> tensor_data. Definition monoidal_unit {C : category} (MD : monoidal_data C) : C := pr12 MD. Notation "I_{ MD }" := (monoidal_unit MD). @@ -413,7 +413,7 @@ Definition monoidal (C : category) : UU := ∑ (MD : monoidal_data C), (monoidal_laws MD). Definition monoidal_mondata {C : category} (M : monoidal C) : monoidal_data C := pr1 M. -Coercion monoidal_mondata : monoidal >-> monoidal_data. +#[reversible] Coercion monoidal_mondata : monoidal >-> monoidal_data. Definition monoidal_monlaws {C : category} (M : monoidal C) : monoidal_laws M := pr2 M. @@ -423,7 +423,7 @@ Definition monoidal_tensor_is_bifunctor : is_bifunctor M := pr12 M. -Coercion monoidal_tensor +#[reversible] Coercion monoidal_tensor {C : category} (M : monoidal C) : bifunctor C C C @@ -1308,8 +1308,8 @@ Local Open Scope moncat. Definition monoidal_cat : UU := ∑ (C : category), monoidal C. -Coercion monoidal_cat_to_cat (V : monoidal_cat) : category := pr1 V. -Coercion monoidal_cat_to_monoidal (V : monoidal_cat) : monoidal V := pr2 V. +#[reversible] Coercion monoidal_cat_to_cat (V : monoidal_cat) : category := pr1 V. +#[reversible] Coercion monoidal_cat_to_monoidal (V : monoidal_cat) : monoidal V := pr2 V. Definition monoidal_cat_tensor_pt {V : monoidal_cat} diff --git a/UniMath/CategoryTheory/Monoidal/CategoriesOfMonoids.v b/UniMath/CategoryTheory/Monoidal/CategoriesOfMonoids.v index 10184a828c..cf9c7ca681 100644 --- a/UniMath/CategoryTheory/Monoidal/CategoriesOfMonoids.v +++ b/UniMath/CategoryTheory/Monoidal/CategoriesOfMonoids.v @@ -85,7 +85,7 @@ Section Category_of_Monoids. Definition monoid_to_monoid_data {x : C} (m : monoid x) : monoid_data x := pr1 m. - Coercion monoid_to_monoid_data : monoid >-> monoid_data. + #[reversible] Coercion monoid_to_monoid_data : monoid >-> monoid_data. Definition monoid_to_monoid_laws {x : C} (m : monoid x) : monoid_laws m := pr2 m. diff --git a/UniMath/CategoryTheory/Monoidal/Comonoids/Category.v b/UniMath/CategoryTheory/Monoidal/Comonoids/Category.v index 75cac4409b..973bf49bea 100644 --- a/UniMath/CategoryTheory/Monoidal/Comonoids/Category.v +++ b/UniMath/CategoryTheory/Monoidal/Comonoids/Category.v @@ -61,7 +61,7 @@ Section CategoryOfComonoids. Definition comonoid_ob (m : comonoid_data) : ob V := pr1 m. - Coercion comonoid_ob : comonoid_data >-> ob. + #[reversible] Coercion comonoid_ob : comonoid_data >-> ob. Definition comonoid_comult (m : comonoid_data) : V⟦m , m ⊗ m⟧ := pr12 m. @@ -124,7 +124,7 @@ Section CategoryOfComonoids. : comonoid_data := pr1 m ,, pr12 m. - Coercion comonoid_to_data : comonoid >-> comonoid_data. + #[reversible] Coercion comonoid_to_data : comonoid >-> comonoid_data. Definition comonoid_to_law_assoc (m : comonoid) : comonoid_laws_assoc m := pr2 (pr222 m). @@ -223,7 +223,7 @@ Section CategoryOfCommutativeComonoids. (m : commutative_comonoid) : comonoid V := pr1 m ,, pr12 m. - Coercion commutative_comonoid_to_comonoid + #[reversible] Coercion commutative_comonoid_to_comonoid : commutative_comonoid >-> comonoid. Definition commutative_comonoid_is_commutative (m : commutative_comonoid) diff --git a/UniMath/CategoryTheory/Monoidal/Displayed/Monoidal.v b/UniMath/CategoryTheory/Monoidal/Displayed/Monoidal.v index 8b9b95033e..473a446ea7 100644 --- a/UniMath/CategoryTheory/Monoidal/Displayed/Monoidal.v +++ b/UniMath/CategoryTheory/Monoidal/Displayed/Monoidal.v @@ -153,7 +153,7 @@ Section DisplayedMonoidalCategories. : disp_tensor D M := pr1 DMD. - Coercion disp_monoidal_tensor : disp_monoidal_data >-> disp_tensor. + #[reversible] Coercion disp_monoidal_tensor : disp_monoidal_data >-> disp_tensor. Definition disp_monoidal_unit {C : category} @@ -735,7 +735,7 @@ Section DisplayedMonoidalCategories. : disp_monoidal_data D M := pr1 DM. - Coercion disp_monoidal_mondata : disp_monoidal >-> disp_monoidal_data. + #[reversible] Coercion disp_monoidal_mondata : disp_monoidal >-> disp_monoidal_data. Definition disp_monoidal_monlaws {C : category} diff --git a/UniMath/CategoryTheory/Monoidal/Displayed/MonoidalFunctorLifting.v b/UniMath/CategoryTheory/Monoidal/Displayed/MonoidalFunctorLifting.v index 29dc0ba5d6..9a53551135 100644 --- a/UniMath/CategoryTheory/Monoidal/Displayed/MonoidalFunctorLifting.v +++ b/UniMath/CategoryTheory/Monoidal/Displayed/MonoidalFunctorLifting.v @@ -209,7 +209,7 @@ Section MonoidalFunctorLifting. := ∑ (ms : flmonoidal_data), flmonoidal_laxlaws ms. Definition flmonoidal_lax_to_data (sm : flmonoidal_lax) : flmonoidal_data := pr1 sm. - Coercion flmonoidal_lax_to_data : flmonoidal_lax >-> flmonoidal_data. + #[reversible] Coercion flmonoidal_lax_to_data : flmonoidal_lax >-> flmonoidal_data. Definition flmonoidal_lax_to_laxlaws (sm : flmonoidal_lax) : flmonoidal_laxlaws sm := pr2 sm. @@ -267,7 +267,7 @@ Section MonoidalFunctorLifting. (fmonoidal_preservesunit Fm)} (sm : flmonoidal Fs) : flmonoidal_lax := pr1 sm. - Coercion flmonoidal_to_flmonoidal_lax : flmonoidal >-> flmonoidal_lax. + #[reversible] Coercion flmonoidal_to_flmonoidal_lax : flmonoidal >-> flmonoidal_lax. Definition flmonoidal_to_fl_stronglaws {Fs : fmonoidal_stronglaws (fmonoidal_preservestensordata Fm) diff --git a/UniMath/CategoryTheory/Monoidal/Displayed/MonoidalSections.v b/UniMath/CategoryTheory/Monoidal/Displayed/MonoidalSections.v index 4ea8d947f9..41191d1a29 100644 --- a/UniMath/CategoryTheory/Monoidal/Displayed/MonoidalSections.v +++ b/UniMath/CategoryTheory/Monoidal/Displayed/MonoidalSections.v @@ -364,7 +364,7 @@ Section MonoidalSections. (sm : smonoidal_lax sd) : smonoidal_data sd := pr1 sm. - Coercion smonoidal_sdata : smonoidal_lax >-> smonoidal_data. + #[reversible] Coercion smonoidal_sdata : smonoidal_lax >-> smonoidal_data. Definition smonoidal_slaxlaws {sd : section_disp D} @@ -430,7 +430,7 @@ Section MonoidalSections. (sm : smonoidal sd) : smonoidal_lax sd := pr1 sm. - Coercion smonoidal_smonoidallax : smonoidal >-> smonoidal_lax. + #[reversible] Coercion smonoidal_smonoidallax : smonoidal >-> smonoidal_lax. Definition smonoidal_smonoidalstronglaws {sd : section_disp D} diff --git a/UniMath/CategoryTheory/Monoidal/Displayed/Symmetric.v b/UniMath/CategoryTheory/Monoidal/Displayed/Symmetric.v index b7c813e4fe..715e04984e 100644 --- a/UniMath/CategoryTheory/Monoidal/Displayed/Symmetric.v +++ b/UniMath/CategoryTheory/Monoidal/Displayed/Symmetric.v @@ -408,7 +408,7 @@ Section DisplayedSymmetric. exact (pr2 DB). Defined. - Coercion disp_symmetric_to_braiding : disp_symmetric >-> disp_braiding. + #[reversible] Coercion disp_symmetric_to_braiding : disp_symmetric >-> disp_braiding. Definition total_symmetric {B : symmetric M} diff --git a/UniMath/CategoryTheory/Monoidal/Displayed/WhiskeredDisplayedBifunctors.v b/UniMath/CategoryTheory/Monoidal/Displayed/WhiskeredDisplayedBifunctors.v index 177ccf5721..b8ee906275 100644 --- a/UniMath/CategoryTheory/Monoidal/Displayed/WhiskeredDisplayedBifunctors.v +++ b/UniMath/CategoryTheory/Monoidal/Displayed/WhiskeredDisplayedBifunctors.v @@ -406,7 +406,7 @@ Section DisplayedBifunctor. : disp_bifunctor_data F DA DB DC := pr1 DF. - Coercion disp_bifunctordata_from_disp_bifunctor : disp_bifunctor >-> disp_bifunctor_data. + #[reversible] Coercion disp_bifunctordata_from_disp_bifunctor : disp_bifunctor >-> disp_bifunctor_data. Definition is_disp_bifunctor_from_disp_bifunctor {A B C : category} diff --git a/UniMath/CategoryTheory/Monoidal/FunctorCategories.v b/UniMath/CategoryTheory/Monoidal/FunctorCategories.v index 4ea4885519..1518e55159 100644 --- a/UniMath/CategoryTheory/Monoidal/FunctorCategories.v +++ b/UniMath/CategoryTheory/Monoidal/FunctorCategories.v @@ -193,7 +193,7 @@ Definition category_symmetric_monoidal_comonad : category Definition symmetric_monoidal_comonad : UU := ob category_symmetric_monoidal_comonad. -Coercion comonad_from_symmetric_monoidal_comonad (T : symmetric_monoidal_comonad) +#[reversible] Coercion comonad_from_symmetric_monoidal_comonad (T : symmetric_monoidal_comonad) : Comonad C := pr11 T ,, pr12 T. diff --git a/UniMath/CategoryTheory/Monoidal/Functors.v b/UniMath/CategoryTheory/Monoidal/Functors.v index 1de7805ae8..90459e729d 100644 --- a/UniMath/CategoryTheory/Monoidal/Functors.v +++ b/UniMath/CategoryTheory/Monoidal/Functors.v @@ -293,7 +293,7 @@ Section MonoidalFunctors. (fm : fmonoidal_lax M N F) : fmonoidal_data M N F := pr1 fm. - Coercion fmonoidal_fdata : fmonoidal_lax >-> fmonoidal_data. + #[reversible] Coercion fmonoidal_fdata : fmonoidal_lax >-> fmonoidal_data. Lemma fmonoidal_lax_eq {C D : category} @@ -619,7 +619,7 @@ Section MonoidalFunctors. (Fm : fmonoidal M N F) : fmonoidal_lax M N F := pr1 Fm. - Coercion fmonoidal_fmonoidallax : fmonoidal >-> fmonoidal_lax. + #[reversible] Coercion fmonoidal_fmonoidallax : fmonoidal >-> fmonoidal_lax. Definition fmonoidal_preservestensorstrongly {C D : category} @@ -1487,13 +1487,13 @@ Definition lax_monoidal_functor : UU := ∑ (F : V₁ ⟶ V₂), fmonoidal_lax V₁ V₂ F. -Coercion lax_monoidal_functor_to_functor +#[reversible] Coercion lax_monoidal_functor_to_functor {V₁ V₂ : monoidal_cat} (F : lax_monoidal_functor V₁ V₂) : V₁ ⟶ V₂ := pr1 F. -Coercion lax_monoidal_functor_to_fmonoidal_lax +#[reversible] Coercion lax_monoidal_functor_to_fmonoidal_lax {V₁ V₂ : monoidal_cat} (F : lax_monoidal_functor V₁ V₂) : fmonoidal_lax V₁ V₂ F @@ -1505,7 +1505,7 @@ Definition symmetric_lax_monoidal_functor := ∑ (F : lax_monoidal_functor V₁ V₂), is_symmetric_monoidal_functor (pr2 V₁) (pr2 V₂) (pr2 F). -Coercion symmetric_lax_monoidal_functor_to_lax_monoidal +#[reversible] Coercion symmetric_lax_monoidal_functor_to_lax_monoidal {V₁ V₂ : sym_monoidal_cat} (F : symmetric_lax_monoidal_functor V₁ V₂) : lax_monoidal_functor V₁ V₂ @@ -1516,7 +1516,7 @@ Definition strong_monoidal_functor : UU := ∑ (F : V₁ ⟶ V₂), fmonoidal V₁ V₂ F. -Coercion strong_monoidal_functor_to_lax_monoidal_functor +#[reversible] Coercion strong_monoidal_functor_to_lax_monoidal_functor {V₁ V₂ : monoidal_cat} (F : strong_monoidal_functor V₁ V₂) : lax_monoidal_functor V₁ V₂ @@ -1528,13 +1528,13 @@ Definition symmetric_strong_monoidal_functor := ∑ (F : strong_monoidal_functor V₁ V₂), is_symmetric_monoidal_functor (pr2 V₁) (pr2 V₂) (pr2 F). -Coercion symmetric_strong_monoidal_functor_to_strong_monoidal +#[reversible] Coercion symmetric_strong_monoidal_functor_to_strong_monoidal {V₁ V₂ : sym_monoidal_cat} (F : symmetric_strong_monoidal_functor V₁ V₂) : strong_monoidal_functor V₁ V₂ := pr1 F. -Coercion symmetric_strong_monoidal_functor_to_lax_symmetric +#[reversible] Coercion symmetric_strong_monoidal_functor_to_lax_symmetric {V₁ V₂ : sym_monoidal_cat} (F : symmetric_strong_monoidal_functor V₁ V₂) : symmetric_lax_monoidal_functor V₁ V₂ diff --git a/UniMath/CategoryTheory/Monoidal/StrongMonad.v b/UniMath/CategoryTheory/Monoidal/StrongMonad.v index 2c1899f3b2..442679de42 100644 --- a/UniMath/CategoryTheory/Monoidal/StrongMonad.v +++ b/UniMath/CategoryTheory/Monoidal/StrongMonad.v @@ -67,7 +67,7 @@ Section LeftStrength. : x ⊗ F y --> F(x ⊗ y) := pr1 tF x y. - Coercion left_strength_to_data : left_strength >-> Funclass. + #[reversible] Coercion left_strength_to_data : left_strength >-> Funclass. Section LeftStrengthLaws. Context {F : V ⟶ V} @@ -130,7 +130,7 @@ Section LeftStrength. : UU := ∑ (tM : left_strength M), left_strong_monad_laws tM. - Coercion left_strong_monad_strength + #[reversible] Coercion left_strong_monad_strength {M : Monad V} (tM : left_strong_monad M) : left_strength M diff --git a/UniMath/CategoryTheory/Monoidal/Structure/Cartesian.v b/UniMath/CategoryTheory/Monoidal/Structure/Cartesian.v index e98da36385..49a0a8a76b 100644 --- a/UniMath/CategoryTheory/Monoidal/Structure/Cartesian.v +++ b/UniMath/CategoryTheory/Monoidal/Structure/Cartesian.v @@ -84,7 +84,7 @@ Definition is_cartesian : UU := ∑ (HM : is_semicartesian M), tensor_isBinProduct HM. -Coercion is_cartesian_to_semicartesian +#[reversible] Coercion is_cartesian_to_semicartesian {M : monoidal_cat} (M_cart : is_cartesian M) : is_semicartesian M @@ -486,7 +486,7 @@ Definition is_cocartesian : UU := ∑ (HM : is_semicocartesian M), tensor_isBinCoproduct HM. -Coercion is_cocartesian_to_semicocartesian +#[reversible] Coercion is_cocartesian_to_semicocartesian {M : monoidal_cat} (M_cocart : is_cocartesian M) : is_semicocartesian M diff --git a/UniMath/CategoryTheory/Monoidal/Structure/Closed.v b/UniMath/CategoryTheory/Monoidal/Structure/Closed.v index df1c65da4f..9fcf027bef 100644 --- a/UniMath/CategoryTheory/Monoidal/Structure/Closed.v +++ b/UniMath/CategoryTheory/Monoidal/Structure/Closed.v @@ -99,7 +99,7 @@ Definition sym_mon_closed_cat : UU := ∑ (V : sym_monoidal_cat), monoidal_leftclosed V. -Coercion sym_monoidal_closed_cat_to_sym_monoidal_cat +#[reversible] Coercion sym_monoidal_closed_cat_to_sym_monoidal_cat (V : sym_mon_closed_cat) : sym_monoidal_cat := pr1 V. diff --git a/UniMath/CategoryTheory/Monoidal/Structure/Symmetric.v b/UniMath/CategoryTheory/Monoidal/Structure/Symmetric.v index e818117952..21a5e22e01 100644 --- a/UniMath/CategoryTheory/Monoidal/Structure/Symmetric.v +++ b/UniMath/CategoryTheory/Monoidal/Structure/Symmetric.v @@ -119,7 +119,7 @@ Section BraidedSymmetricMonoidalCategories. - exact (pr122 Hyp). Defined. - Coercion braiding_laws_to_braiding_laws_one_hexagon : braiding_laws >-> braiding_laws_one_hexagon. + #[reversible] Coercion braiding_laws_to_braiding_laws_one_hexagon : braiding_laws >-> braiding_laws_one_hexagon. *) Definition braiding_laws_one_hexagon_braiding_z_iso @@ -212,7 +212,7 @@ Section BraidedSymmetricMonoidalCategories. : braiding_data M := pr1 B. - Coercion monoidal_braiding_data : braiding >-> braiding_data. + #[reversible] Coercion monoidal_braiding_data : braiding >-> braiding_data. Definition monoidal_braiding_data_inv {C : category} {M : monoidal C} @@ -266,7 +266,7 @@ Section BraidedSymmetricMonoidalCategories. exact (pr2 B). Defined. - Coercion symmetric_to_braiding : symmetric >-> braiding. + #[reversible] Coercion symmetric_to_braiding : symmetric >-> braiding. Definition symmetric_whiskers_swap_nat_trans_data {C : category} {M : monoidal C} (B : symmetric M) (x : C) @@ -312,12 +312,12 @@ Definition sym_monoidal_cat : UU := ∑ (V : monoidal_cat), symmetric V. -Coercion sym_monoidal_cat_to_monoidal_cat +#[reversible] Coercion sym_monoidal_cat_to_monoidal_cat (V : sym_monoidal_cat) : monoidal_cat := pr1 V. -Coercion sym_monoidal_cat_to_symmetric +#[reversible] Coercion sym_monoidal_cat_to_symmetric (V : sym_monoidal_cat) : symmetric V := pr2 V. diff --git a/UniMath/CategoryTheory/Monoidal/WhiskeredBifunctors.v b/UniMath/CategoryTheory/Monoidal/WhiskeredBifunctors.v index a37c6b2146..f5fe350001 100644 --- a/UniMath/CategoryTheory/Monoidal/WhiskeredBifunctors.v +++ b/UniMath/CategoryTheory/Monoidal/WhiskeredBifunctors.v @@ -150,7 +150,7 @@ Section Bifunctor. : bifunctor := (F,,H). Definition bifunctordata_from_bifunctor (F : bifunctor) : bifunctor_data := pr1 F. - Coercion bifunctordata_from_bifunctor : bifunctor >-> bifunctor_data. + #[reversible] Coercion bifunctordata_from_bifunctor : bifunctor >-> bifunctor_data. Definition isbifunctor_from_bifunctor (F : bifunctor) : is_bifunctor F := pr2 F. @@ -358,7 +358,7 @@ Section WhiskeredBinaturaltransformation. since I already have a identity coercion for binat_trans_data. *) Definition binattransdata_from_binattrans_funclass {F G : bifunctor_data A B C} (α : binat_trans F G) : ∏ (a : A) (b : B), C⟦a ⊗_{F} b, a ⊗_{G} b⟧ := pr1 α. - Coercion binattransdata_from_binattrans_funclass : binat_trans >-> Funclass. + #[reversible] Coercion binattransdata_from_binattrans_funclass : binat_trans >-> Funclass. Definition make_binat_trans {F G : bifunctor_data A B C} (α : binat_trans_data F G) (H : is_binat_trans α) : binat_trans F G := (α,,H). @@ -681,7 +681,7 @@ Section DistributionOfBinaryCoproducts. Definition bifunctor_bincoprod_distributor_to_data (δ : bifunctor_bincoprod_distributor) : bifunctor_bincoprod_distributor_data := pr1 δ. - Coercion bifunctor_bincoprod_distributor_to_data : + #[reversible] Coercion bifunctor_bincoprod_distributor_to_data : bifunctor_bincoprod_distributor >-> bifunctor_bincoprod_distributor_data. End DistributionOfBinaryCoproducts. @@ -742,7 +742,7 @@ Section DistributionOfCoproducts. Definition bifunctor_coprod_distributor_to_data (δ : bifunctor_coprod_distributor) : bifunctor_coprod_distributor_data := pr1 δ. - Coercion bifunctor_coprod_distributor_to_data : + #[reversible] Coercion bifunctor_coprod_distributor_to_data : bifunctor_coprod_distributor >-> bifunctor_coprod_distributor_data. End DistributionOfCoproducts. diff --git a/UniMath/CategoryTheory/Morphisms.v b/UniMath/CategoryTheory/Morphisms.v index 7387c5d690..4881e15ea2 100644 --- a/UniMath/CategoryTheory/Morphisms.v +++ b/UniMath/CategoryTheory/Morphisms.v @@ -34,7 +34,7 @@ Section def_morphismpair. Definition Target (M : Morphism) : ob C := pr1 (pr2 M). Definition MorphismMor (M : Morphism) : C⟦Source M, Target M⟧ := pr2 (pr2 M). - Coercion MorphismMor : Morphism >-> precategory_morphisms. + #[reversible] Coercion MorphismMor : Morphism >-> precategory_morphisms. (** ** MorphismPair **) @@ -103,11 +103,11 @@ Section def_morphismpair. Definition MPMor_MPMorMors {MP1 MP2 : MorphismPair} (MPM : MPMor MP1 MP2) : MPMorMors MP1 MP2 := pr1 MPM. - Coercion MPMor_MPMorMors : MPMor >-> MPMorMors. + #[reversible] Coercion MPMor_MPMorMors : MPMor >-> MPMorMors. Definition MPMor_MPMorComms {MP1 MP2 : MorphismPair} (MPM : MPMor MP1 MP2) : MPMorComms MPM := pr2 MPM. - Coercion MPMor_MPMorComms : MPMor >-> MPMorComms. + #[reversible] Coercion MPMor_MPMorComms : MPMor >-> MPMorComms. Lemma reverseCommIsoSquare {M : precategory} {P Q P' Q':M} (f:P'-->P) (g:Q'-->Q) (i:z_iso P' Q') (j:z_iso P Q) : i · g = f · j -> z_iso_inv i · f = g · z_iso_inv j. @@ -238,7 +238,7 @@ Section def_shortshortexactdata. (** Accessor functions *) Definition ShortShortExactData_MorphismPair (SSED : ShortShortExactData) : MorphismPair C := pr1 SSED. - Coercion ShortShortExactData_MorphismPair : ShortShortExactData >-> MorphismPair. + #[reversible] Coercion ShortShortExactData_MorphismPair : ShortShortExactData >-> MorphismPair. Definition ShortShortExactData_Eq (SSED : ShortShortExactData) : (Mor1 SSED) · (Mor2 SSED) = ZeroArrow Z _ _ := pr2 SSED. diff --git a/UniMath/CategoryTheory/NNO.v b/UniMath/CategoryTheory/NNO.v index 26bfa4e3d5..9d5ad52224 100644 --- a/UniMath/CategoryTheory/NNO.v +++ b/UniMath/CategoryTheory/NNO.v @@ -32,7 +32,7 @@ Definition NNO : UU := ∑ (n : C) (z : C ⟦ 1, n ⟧) (s : C ⟦ n, n ⟧), isNNO n z s. Definition NNObject (n : NNO) : C := pr1 n. -Coercion NNObject : NNO >-> ob. +#[reversible] Coercion NNObject : NNO >-> ob. Definition zeroNNO (n : NNO) : C ⟦1,n⟧ := pr1 (pr2 n). Definition sucNNO (n : NNO) : C ⟦n,n⟧ := pr1 (pr2 (pr2 n)). diff --git a/UniMath/CategoryTheory/PointedFunctors.v b/UniMath/CategoryTheory/PointedFunctors.v index fb2af92252..b003e91e22 100644 --- a/UniMath/CategoryTheory/PointedFunctors.v +++ b/UniMath/CategoryTheory/PointedFunctors.v @@ -36,7 +36,7 @@ Context (C : category). Definition ptd_obj : UU := ∑ F : functor C C, functor_identity C ⟹ F. -Coercion functor_from_ptd_obj (F : ptd_obj) : functor C C := pr1 F. +#[reversible] Coercion functor_from_ptd_obj (F : ptd_obj) : functor C C := pr1 F. Definition ptd_pt (F : ptd_obj) : functor_identity C ⟹ F := pr2 F. @@ -45,7 +45,7 @@ Definition is_ptd_mor {F G : ptd_obj}(α: F ⟹ G) : UU := ∏ c : C, ptd_pt F c Definition ptd_mor (F G : ptd_obj) : UU := ∑ α : F ⟹ G, is_ptd_mor α. -Coercion nat_trans_from_ptd_mor {F G : ptd_obj} (a : ptd_mor F G) : nat_trans F G := pr1 a. +#[reversible] Coercion nat_trans_from_ptd_mor {F G : ptd_obj} (a : ptd_mor F G) : nat_trans F G := pr1 a. Lemma eq_ptd_mor {F G : ptd_obj} (a b : ptd_mor F G) : a = b ≃ (a : F ⟹ G) = b. diff --git a/UniMath/CategoryTheory/PreAdditive.v b/UniMath/CategoryTheory/PreAdditive.v index eadf439c6a..1c9546bdda 100644 --- a/UniMath/CategoryTheory/PreAdditive.v +++ b/UniMath/CategoryTheory/PreAdditive.v @@ -91,7 +91,7 @@ Section def_preadditive. Definition PreAdditive : UU := ∑ PA : categoryWithAbgrops, isPreAdditive PA. Definition PreAdditive_categoryWithAbgrops (A : PreAdditive) : categoryWithAbgrops := pr1 A. - Coercion PreAdditive_categoryWithAbgrops : PreAdditive >-> categoryWithAbgrops. + #[reversible] Coercion PreAdditive_categoryWithAbgrops : PreAdditive >-> categoryWithAbgrops. Definition make_PreAdditive (PA : categoryWithAbgrops) (H : isPreAdditive PA) : PreAdditive. Proof. @@ -99,7 +99,7 @@ Section def_preadditive. Defined. Definition PreAdditive_isPreAdditive (A : PreAdditive) : isPreAdditive A := pr2 A. - Coercion PreAdditive_isPreAdditive : PreAdditive >-> isPreAdditive. + #[reversible] Coercion PreAdditive_isPreAdditive : PreAdditive >-> isPreAdditive. Variable A : PreAdditive. diff --git a/UniMath/CategoryTheory/PrecategoriesWithAbgrops.v b/UniMath/CategoryTheory/PrecategoriesWithAbgrops.v index 1b565be27b..d5bc2f6e1c 100644 --- a/UniMath/CategoryTheory/PrecategoriesWithAbgrops.v +++ b/UniMath/CategoryTheory/PrecategoriesWithAbgrops.v @@ -32,7 +32,7 @@ Section def_precategory_with_abgrops. Definition categoryWithAbgrops_precategoryWithBinOps (PB : categoryWithAbgrops) : precategoryWithBinOps := (pr1 PB). - Coercion categoryWithAbgrops_precategoryWithBinOps : + #[reversible] Coercion categoryWithAbgrops_precategoryWithBinOps : categoryWithAbgrops >-> precategoryWithBinOps. Definition make_categoryWithAbgrops (PB : precategoryWithBinOps) diff --git a/UniMath/CategoryTheory/Presheaf.v b/UniMath/CategoryTheory/Presheaf.v index cf8faad8e7..b69747fd55 100644 --- a/UniMath/CategoryTheory/Presheaf.v +++ b/UniMath/CategoryTheory/Presheaf.v @@ -189,7 +189,7 @@ Qed. Definition sieve (c : C) : hSet := (sieve_def c,,isaset_sieve c). Definition pr1sieve {c : C} : sieve_def c → hsubtype _ := @pr1 _ _. -Coercion pr1sieve : sieve_def >-> hsubtype. +#[reversible] Coercion pr1sieve : sieve_def >-> hsubtype. Lemma sieve_eq (c : C) (s t : sieve c) (H : pr1 s = pr1 t) : s = t. Proof. diff --git a/UniMath/CategoryTheory/Profunctors/Core.v b/UniMath/CategoryTheory/Profunctors/Core.v index 42abbaf8fc..2d71cd913e 100644 --- a/UniMath/CategoryTheory/Profunctors/Core.v +++ b/UniMath/CategoryTheory/Profunctors/Core.v @@ -129,7 +129,7 @@ Definition profunctor_point : hSet := pr1 P (y ,, x). -Coercion profunctor_point : profunctor >-> Funclass. +#[reversible] Coercion profunctor_point : profunctor >-> Funclass. Definition profunctor_on_morphisms {C₁ C₂ : category} @@ -355,7 +355,7 @@ Section Dinatural. is_dinatural dinatural_transformation_get_data := pr2 d. End Accessors. - Coercion dinatural_transformation_get_data : dinatural_transformation >-> Funclass. + #[reversible] Coercion dinatural_transformation_get_data : dinatural_transformation >-> Funclass. (** See below for the non-local notation *) Local Notation "F ⇏ G" := (dinatural_transformation F G) (at level 39) : cat. @@ -427,7 +427,7 @@ Section Ends. Definition wedge_pr (w : HSET) (W : wedge w) : ∏ a : C, w --> F a a := (pr1 W). - Coercion wedge_pr : wedge >-> Funclass. + #[reversible] Coercion wedge_pr : wedge >-> Funclass. (** *** Ends *) @@ -446,10 +446,10 @@ Section Ends. (** **** Accessors/coercions *) Definition end_ob (e : End) : ob HSET_univalent_category := pr1 e. - Coercion end_ob : End >-> ob. + #[reversible] Coercion end_ob : End >-> ob. Definition end_wedge (e : End) : wedge e := pr1 (pr2 e). - Coercion end_wedge : End >-> wedge. + #[reversible] Coercion end_wedge : End >-> wedge. (** *** Cowedges *) (** *** Coends *) diff --git a/UniMath/CategoryTheory/Profunctors/Squares.v b/UniMath/CategoryTheory/Profunctors/Squares.v index 7dcd8bcc4f..dede994b8e 100644 --- a/UniMath/CategoryTheory/Profunctors/Squares.v +++ b/UniMath/CategoryTheory/Profunctors/Squares.v @@ -147,7 +147,7 @@ Definition profunctor_iso_square : UU := ∑ (τ : profunctor_square F G P Q), is_profunctor_nat_iso τ. -Coercion profunctor_iso_square_to_square +#[reversible] Coercion profunctor_iso_square_to_square {C₁ C₂ D₁ D₂ : category} {F : C₁ ⟶ C₂} {G : D₁ ⟶ D₂} @@ -157,7 +157,7 @@ Coercion profunctor_iso_square_to_square : profunctor_square F G P Q := pr1 τ. -Coercion profunctor_iso_square_is_iso +#[reversible] Coercion profunctor_iso_square_is_iso {C₁ C₂ D₁ D₂ : category} {F : C₁ ⟶ C₂} {G : D₁ ⟶ D₂} diff --git a/UniMath/CategoryTheory/Profunctors/Transformation.v b/UniMath/CategoryTheory/Profunctors/Transformation.v index 0325a38103..4bacae30ee 100644 --- a/UniMath/CategoryTheory/Profunctors/Transformation.v +++ b/UniMath/CategoryTheory/Profunctors/Transformation.v @@ -51,7 +51,7 @@ Definition profunctor_nat_trans_point : Q y x := pr1 τ (y ,, x) h. -Coercion profunctor_nat_trans_point +#[reversible] Coercion profunctor_nat_trans_point : profunctor_nat_trans >-> Funclass. Proposition profunctor_nat_trans_natural @@ -311,14 +311,14 @@ Definition make_profunctor_nat_iso : profunctor_nat_iso P Q := τ ,, Hτ. -Coercion profunctor_nat_iso_to_profunctor_nat_trans +#[reversible] Coercion profunctor_nat_iso_to_profunctor_nat_trans {C₁ C₂ : category} {P Q : profunctor C₁ C₂} (τ : profunctor_nat_iso P Q) : profunctor_nat_trans P Q := pr1 τ. -Coercion profunctor_nat_iso_to_is_profunctor_nat_iso +#[reversible] Coercion profunctor_nat_iso_to_is_profunctor_nat_iso {C₁ C₂ : category} {P Q : profunctor C₁ C₂} (τ : profunctor_nat_iso P Q) diff --git a/UniMath/CategoryTheory/PseudoElements.v b/UniMath/CategoryTheory/PseudoElements.v index 573b685c0e..5c1bda4c23 100644 --- a/UniMath/CategoryTheory/PseudoElements.v +++ b/UniMath/CategoryTheory/PseudoElements.v @@ -93,7 +93,7 @@ Section def_pseudo_element. Definition PseudoOb {c : A} (P : PseudoElem c) : ob A := pr1 P. Definition PseudoMor {c : A} (P : PseudoElem c) : A⟦PseudoOb P, c⟧ := pr2 P. - Coercion PseudoMor : PseudoElem >-> precategory_morphisms. + #[reversible] Coercion PseudoMor : PseudoElem >-> precategory_morphisms. Definition PseudoIm {c d : A} (P : PseudoElem c) (f : c --> d) : PseudoElem d := make_PseudoElem (P · f). @@ -218,7 +218,7 @@ Section def_pseudo_element. Definition PFiber_Elem {c d : ob A} {f : c --> d} {b : PseudoElem d} (P : PFiber f b) : PseudoElem c := pr1 P. - Coercion PFiber_Elem : PFiber >-> PseudoElem. + #[reversible] Coercion PFiber_Elem : PFiber >-> PseudoElem. Definition PFiber_Eq {c d : ob A} {f : c --> d} {b : PseudoElem d} (P : PFiber f b) : PEq (PseudoIm P f) b := pr2 P. @@ -499,7 +499,7 @@ Section def_pseudo_element. Definition PDiffElem {x y : ob A} {a a' : PseudoElem x} {f : x --> y} {H : PEq (PseudoIm a f) (PseudoIm a' f)} (PD : PDiff f H) : PseudoElem x := pr1 PD. - Coercion PDiffElem : PDiff >-> PseudoElem. + #[reversible] Coercion PDiffElem : PDiff >-> PseudoElem. Definition PDiffIm {x y : ob A} {a a' : PseudoElem x} {f : x --> y} {H : PEq (PseudoIm a f) (PseudoIm a' f)} (PD : PDiff f H) : diff --git a/UniMath/CategoryTheory/RepresentableFunctors/Precategories.v b/UniMath/CategoryTheory/RepresentableFunctors/Precategories.v index 63141516b5..2ce230332e 100644 --- a/UniMath/CategoryTheory/RepresentableFunctors/Precategories.v +++ b/UniMath/CategoryTheory/RepresentableFunctors/Precategories.v @@ -87,7 +87,7 @@ Definition embeddingToFunctor (B C : category) : categoryEmbedding B C -> B ⟶ C := pr1. -Coercion embeddingToFunctor : categoryEmbedding >-> functor. +#[reversible] Coercion embeddingToFunctor : categoryEmbedding >-> functor. Definition categoryIsomorphism (B C : category) := ∑ F:categoryEmbedding B C, isweq ((pr1 F : B ⟶ C) : ob B -> ob C). @@ -96,7 +96,7 @@ Definition isomorphismToEmbedding (B C:category) : categoryIsomorphism B C -> categoryEmbedding B C := pr1. -Coercion isomorphismToEmbedding : categoryIsomorphism >-> categoryEmbedding. +#[reversible] Coercion isomorphismToEmbedding : categoryIsomorphism >-> categoryEmbedding. Definition isomorphismOnMor {B C:category} (F:categoryIsomorphism B C) (b b':B) : Hom B b b' ≃ Hom C (F b) (F b') diff --git a/UniMath/CategoryTheory/RepresentableFunctors/Representation.v b/UniMath/CategoryTheory/RepresentableFunctors/Representation.v index 8abfce3f04..a2399d7b4b 100644 --- a/UniMath/CategoryTheory/RepresentableFunctors/Representation.v +++ b/UniMath/CategoryTheory/RepresentableFunctors/Representation.v @@ -90,7 +90,7 @@ Definition universalElement {C:category} {X:[C^op,HSET]} (r:Representation X) : universalObject r ⇒ X := pr1 (pr2 r). -Coercion universalElement : Representation >-> pr1hSet. +#[reversible] Coercion universalElement : Representation >-> pr1hSet. Definition universalProperty {C:category} {X:[C^op,HSET]} (r:Representation X) (c:C) : c --> universalObject r ≃ (c ⇒ X) diff --git a/UniMath/CategoryTheory/ShortExactSequences.v b/UniMath/CategoryTheory/ShortExactSequences.v index 0cb6ede333..498982949d 100644 --- a/UniMath/CategoryTheory/ShortExactSequences.v +++ b/UniMath/CategoryTheory/ShortExactSequences.v @@ -269,7 +269,7 @@ Section def_shortexactseqs. (** Accessor functions *) Definition ShortShortExact_ShortShortExactData (SSE : ShortShortExact) : ShortShortExactData A (to_Zero A) := pr1 SSE. - Coercion ShortShortExact_ShortShortExactData : ShortShortExact >-> ShortShortExactData. + #[reversible] Coercion ShortShortExact_ShortShortExactData : ShortShortExact >-> ShortShortExactData. Definition ShortShortExact_isKernel (SSE : ShortShortExact) : isKernel (to_Zero A) (KernelArrow (Image SSE)) (Mor2 SSE) (Image_Eq SSE) := pr2 SSE. @@ -304,7 +304,7 @@ Section def_shortexactseqs. (** Accessor functions *) Definition LeftShortExact_ShortShortExact (LSE : LeftShortExact) : ShortShortExact := pr1 LSE. - Coercion LeftShortExact_ShortShortExact : LeftShortExact >-> ShortShortExact. + #[reversible] Coercion LeftShortExact_ShortShortExact : LeftShortExact >-> ShortShortExact. Definition isMonic (LSE : LeftShortExact) : isMonic (Mor1 LSE) := pr2 LSE. @@ -321,7 +321,7 @@ Section def_shortexactseqs. (** Accessor functions *) Definition RightShortExact_ShortShortExact (RSE : RightShortExact) : ShortShortExact := pr1 RSE. - Coercion RightShortExact_ShortShortExact : RightShortExact >-> ShortShortExact. + #[reversible] Coercion RightShortExact_ShortShortExact : RightShortExact >-> ShortShortExact. Definition isEpi (RSE : RightShortExact) : isEpi (Mor2 RSE) := pr2 RSE. @@ -345,7 +345,7 @@ Section def_shortexactseqs. - exact (pr1 SE). - exact (dirprod_pr1 (pr2 SE)). Defined. - Coercion ShortExact_LeftShortExact : ShortExact >-> LeftShortExact. + #[reversible] Coercion ShortExact_LeftShortExact : ShortExact >-> LeftShortExact. Definition ShortExact_RightShortExact (SE : ShortExact) : RightShortExact. Proof. @@ -353,7 +353,7 @@ Section def_shortexactseqs. - exact (pr1 SE). - exact (dirprod_pr2 (pr2 SE)). Defined. - Coercion ShortExact_RightShortExact : ShortExact >-> RightShortExact. + #[reversible] Coercion ShortExact_RightShortExact : ShortExact >-> RightShortExact. End def_shortexactseqs. Arguments Image [A] _. diff --git a/UniMath/CategoryTheory/SimplicialSets.v b/UniMath/CategoryTheory/SimplicialSets.v index be379b441d..8a8769c897 100644 --- a/UniMath/CategoryTheory/SimplicialSets.v +++ b/UniMath/CategoryTheory/SimplicialSets.v @@ -40,7 +40,7 @@ Proof. exact e. Defined. -Coercion monfunstnpr1 : monfunstn >-> Funclass . +#[reversible] Coercion monfunstnpr1 : monfunstn >-> Funclass . Lemma isasetmonfunstn n m : isaset ( monfunstn n m ) . Proof. diff --git a/UniMath/CategoryTheory/SkewMonoidal/CategoriesOfMonoids.v b/UniMath/CategoryTheory/SkewMonoidal/CategoriesOfMonoids.v index 454a5cc474..a606167c4c 100644 --- a/UniMath/CategoryTheory/SkewMonoidal/CategoriesOfMonoids.v +++ b/UniMath/CategoryTheory/SkewMonoidal/CategoriesOfMonoids.v @@ -34,7 +34,7 @@ Notation ρ' := (skewmonoidal_unitr (data_from_skewmonoidal V)). Definition skewMonoid_data : UU := ∑ X : V, (X ⊗ X --> X) × (I --> X). -Coercion sm_ob (X : skewMonoid_data) : V := pr1 X. +#[reversible] Coercion sm_ob (X : skewMonoid_data) : V := pr1 X. Definition sm_unit (X : skewMonoid_data) : I --> X := pr2 (pr2 X). Definition sm_mult (X : skewMonoid_data) : X ⊗ X --> X := pr1 (pr2 X). @@ -48,7 +48,7 @@ Definition skewMonoid_laws (X : skewMonoid_data) : UU := Definition skewMonoid : UU := ∑ (X : skewMonoid_data), skewMonoid_laws X. -Coercion skewMonoid_to_data (X : skewMonoid) : skewMonoid_data := pr1 X. +#[reversible] Coercion skewMonoid_to_data (X : skewMonoid) : skewMonoid_data := pr1 X. Definition skewMonoid_pentagon (X : skewMonoid) : μ X #⊗ identity X · μ X = α' X X X · identity X #⊗ μ X · μ X @@ -76,7 +76,7 @@ Qed. Definition skewMonoid_Mor (T T' : skewMonoid_data) : UU := ∑ α , @skewMonoid_Mor_laws T T' α. -Coercion mor_from_monoid_mor (T T' : skewMonoid_data) (s : skewMonoid_Mor T T') +#[reversible] Coercion mor_from_monoid_mor (T T' : skewMonoid_data) (s : skewMonoid_Mor T T') : V ⟦ T , T' ⟧ := pr1 s. Definition skewMonoid_Mor_η {T T' : skewMonoid_data } (α : skewMonoid_Mor T T') diff --git a/UniMath/CategoryTheory/SkewMonoidal/SkewMonoidalCategories.v b/UniMath/CategoryTheory/SkewMonoidal/SkewMonoidalCategories.v index 0427fa4e47..0dbf307f92 100644 --- a/UniMath/CategoryTheory/SkewMonoidal/SkewMonoidalCategories.v +++ b/UniMath/CategoryTheory/SkewMonoidal/SkewMonoidalCategories.v @@ -39,7 +39,7 @@ Definition skewmonoidal_data : UU := (precategory_binproduct_unassoc _ _ _) ∙ (functor_identity V × tensor)%F ∙ tensor . -Coercion cat_from_skewmonoidal (V : skewmonoidal_data) : category := pr1 V. +#[reversible] Coercion cat_from_skewmonoidal (V : skewmonoidal_data) : category := pr1 V. Definition skewmonoidal_tensor (V : skewmonoidal_data) : V ⊠ V ⟶ V := pr1 (pr2 V). @@ -113,7 +113,7 @@ Definition skewmonoidal_category : UU := α' a b c #⊗ id d · α' a (b ⊗ c) d · id a #⊗ α' b c d). -Coercion data_from_skewmonoidal (V : skewmonoidal_category) : skewmonoidal_data := pr1 V. +#[reversible] Coercion data_from_skewmonoidal (V : skewmonoidal_category) : skewmonoidal_data := pr1 V. Local Notation eq := (pr2 (_ : skewmonoidal_category)). diff --git a/UniMath/CategoryTheory/SplitMonicsAndEpis.v b/UniMath/CategoryTheory/SplitMonicsAndEpis.v index 2832e3fcf9..b0c0160182 100644 --- a/UniMath/CategoryTheory/SplitMonicsAndEpis.v +++ b/UniMath/CategoryTheory/SplitMonicsAndEpis.v @@ -54,7 +54,7 @@ Section SplitMonic. - abstract (apply split_monic_is_monic; exact (pr2 m)). Defined. - Coercion split_monic_to_monic : split_monic >-> Monic. + #[reversible] Coercion split_monic_to_monic : split_monic >-> Monic. (** The chosen section is not necessarily unique *) Lemma isaset_is_split_monic (m : A --> B) : @@ -82,7 +82,7 @@ Section SplitMonic. (that [C]) has homsets, we just coerce to an arrow instead. *) Definition merely_split_monic_to_morphism (m : merely_split_monic) : A --> B := pr1 m. - Coercion merely_split_monic_to_morphism : + #[reversible] Coercion merely_split_monic_to_morphism : merely_split_monic >-> precategory_morphisms. Lemma isaset_merely_split_monic (m : A --> B) : diff --git a/UniMath/CategoryTheory/Subcategory/Core.v b/UniMath/CategoryTheory/Subcategory/Core.v index 7cb0234318..a2fd08b960 100644 --- a/UniMath/CategoryTheory/Subcategory/Core.v +++ b/UniMath/CategoryTheory/Subcategory/Core.v @@ -87,7 +87,7 @@ Definition sub_precategory_comp (C : category) (C':sub_precategories C) : Definition precategory_object_from_sub_precategory_object (C:category) (C':sub_precategories C) (a : sub_ob C') : ob C := pr1 a. -Coercion precategory_object_from_sub_precategory_object : +#[reversible] Coercion precategory_object_from_sub_precategory_object : sub_ob >-> ob. (** A morphism of a subprecategory is also a morphism of the original precategory. *) @@ -95,7 +95,7 @@ Coercion precategory_object_from_sub_precategory_object : Definition precategory_morphism_from_sub_precategory_morphism (C:category) (C':sub_precategories C) (a b : ob C) (f : sub_precategory_morphisms C' a b) : a --> b := pr1 f . -Coercion precategory_morphism_from_sub_precategory_morphism : +#[reversible] Coercion precategory_morphism_from_sub_precategory_morphism : sub_precategory_morphisms >-> precategory_morphisms. (** *** A sub-precategory forms a precategory. *) @@ -108,7 +108,7 @@ Proof. Defined. (* -Coercion sub_precategory_ob_mor : sub_precategories >-> precategory_ob_mor. +#[reversible] Coercion sub_precategory_ob_mor : sub_precategories >-> precategory_ob_mor. *) @@ -190,7 +190,7 @@ Definition carrier_of_sub_category (C : category) (C' : sub_precategories C) : category := make_category _ (has_homsets_carrier_of_subcategory C C'). -Coercion carrier_of_sub_category : sub_precategories >-> category. +#[reversible] Coercion carrier_of_sub_category : sub_precategories >-> category. (** An object satisfying the predicate is an object of the subprecategory *) Definition precategory_object_in_subcat {C : category} {C':sub_precategories C} diff --git a/UniMath/CategoryTheory/Subcategory/Reflective.v b/UniMath/CategoryTheory/Subcategory/Reflective.v index 2f659e5d0e..fe148eb02c 100644 --- a/UniMath/CategoryTheory/Subcategory/Reflective.v +++ b/UniMath/CategoryTheory/Subcategory/Reflective.v @@ -30,7 +30,7 @@ Section Def. (D : reflective_subcategory) : hsubtype C := pr1 D. - Coercion reflective_subcategory_to_hsubtype : + #[reversible] Coercion reflective_subcategory_to_hsubtype : reflective_subcategory >-> hsubtype. Definition reflective_subcategory_to_precategory : @@ -38,7 +38,7 @@ Section Def. intro D; exact (full_sub_precategory D). Defined. - Coercion reflective_subcategory_to_precategory : + #[reversible] Coercion reflective_subcategory_to_precategory : reflective_subcategory >-> precategory. Definition localization (R : reflective_subcategory) : diff --git a/UniMath/CategoryTheory/SubobjectClassifier.v b/UniMath/CategoryTheory/SubobjectClassifier.v index 0324a5c8c9..c7af14d36b 100644 --- a/UniMath/CategoryTheory/SubobjectClassifier.v +++ b/UniMath/CategoryTheory/SubobjectClassifier.v @@ -105,8 +105,8 @@ Section Accessors. End Accessors. -Coercion subobject_classifier_object : subobject_classifier >-> ob. -Coercion true : subobject_classifier >-> Monic. +#[reversible] Coercion subobject_classifier_object : subobject_classifier >-> ob. +#[reversible] Coercion true : subobject_classifier >-> Monic. (** The arrow Goldblatt calls [true! := (! : X -> T) · true] *) Definition const_true {C : category} {T : Terminal C} (X : ob C) diff --git a/UniMath/CategoryTheory/TwoSidedDisplayedCats/DisplayedFunctor.v b/UniMath/CategoryTheory/TwoSidedDisplayedCats/DisplayedFunctor.v index 723868675c..24ca94f3c7 100644 --- a/UniMath/CategoryTheory/TwoSidedDisplayedCats/DisplayedFunctor.v +++ b/UniMath/CategoryTheory/TwoSidedDisplayedCats/DisplayedFunctor.v @@ -62,7 +62,7 @@ Section DisplayedFunctor. : D₂ (F x) (G y) := pr1 FG x y xy. - Coercion twosided_disp_functor_data_ob : twosided_disp_functor_data >-> Funclass. + #[reversible] Coercion twosided_disp_functor_data_ob : twosided_disp_functor_data >-> Funclass. Definition twosided_disp_functor_data_mor (FG : twosided_disp_functor_data) @@ -126,7 +126,7 @@ Section DisplayedFunctor. : UU := ∑ (FG : twosided_disp_functor_data), twosided_disp_functor_laws FG. - Coercion twosided_disp_functor_to_data + #[reversible] Coercion twosided_disp_functor_to_data (FG : twosided_disp_functor) : twosided_disp_functor_data := pr1 FG. diff --git a/UniMath/CategoryTheory/TwoSidedDisplayedCats/DisplayedNatTrans.v b/UniMath/CategoryTheory/TwoSidedDisplayedCats/DisplayedNatTrans.v index 12c20a19b2..ba952ca5d1 100644 --- a/UniMath/CategoryTheory/TwoSidedDisplayedCats/DisplayedNatTrans.v +++ b/UniMath/CategoryTheory/TwoSidedDisplayedCats/DisplayedNatTrans.v @@ -83,7 +83,7 @@ Section DisplayedNatTrans. : FG _ _ xy -->[ τ x ][ θ y ] FG' _ _ xy := pr1 τθ x y xy. - Coercion twosided_disp_nat_trans_ob : twosided_disp_nat_trans >-> Funclass. + #[reversible] Coercion twosided_disp_nat_trans_ob : twosided_disp_nat_trans >-> Funclass. Proposition twosided_disp_nat_trans_ax (τθ : twosided_disp_nat_trans) diff --git a/UniMath/CategoryTheory/TwoSidedDisplayedCats/Examples/Lenses.v b/UniMath/CategoryTheory/TwoSidedDisplayedCats/Examples/Lenses.v index 995e45d61c..a9fa092448 100644 --- a/UniMath/CategoryTheory/TwoSidedDisplayedCats/Examples/Lenses.v +++ b/UniMath/CategoryTheory/TwoSidedDisplayedCats/Examples/Lenses.v @@ -364,7 +364,7 @@ Section Lenses. : lens_data s v := get ,, put. - Coercion lens_to_data + #[reversible] Coercion lens_to_data {s v : C} (l : lens s v) : lens_data s v diff --git a/UniMath/CategoryTheory/TwoSidedDisplayedCats/Isos.v b/UniMath/CategoryTheory/TwoSidedDisplayedCats/Isos.v index 432f1ca649..c03c3f2a89 100644 --- a/UniMath/CategoryTheory/TwoSidedDisplayedCats/Isos.v +++ b/UniMath/CategoryTheory/TwoSidedDisplayedCats/Isos.v @@ -72,7 +72,7 @@ Definition iso_twosided_disp := ∑ (fg : xy₁ -->[ f ][ g ] xy₂), is_iso_twosided_disp (pr2 f) (pr2 g) fg. -Coercion iso_twosided_disp_to_mor +#[reversible] Coercion iso_twosided_disp_to_mor {C₁ C₂ : category} {D : twosided_disp_cat C₁ C₂} {x₁ x₂ : C₁} @@ -85,7 +85,7 @@ Coercion iso_twosided_disp_to_mor : xy₁ -->[ f ][ g ] xy₂ := pr1 fg. -Coercion iso_twosided_disp_to_mor_is_iso +#[reversible] Coercion iso_twosided_disp_to_mor_is_iso {C₁ C₂ : category} {D : twosided_disp_cat C₁ C₂} {x₁ x₂ : C₁} diff --git a/UniMath/CategoryTheory/TwoSidedDisplayedCats/Strictness.v b/UniMath/CategoryTheory/TwoSidedDisplayedCats/Strictness.v index abeac937ec..9097ce99fb 100644 --- a/UniMath/CategoryTheory/TwoSidedDisplayedCats/Strictness.v +++ b/UniMath/CategoryTheory/TwoSidedDisplayedCats/Strictness.v @@ -54,7 +54,7 @@ Definition strict_twosided_disp_cat : UU := ∑ (D : twosided_disp_cat C₁ C₂), is_strict_twosided_disp_cat D. -Coercion strict_twosided_disp_cat_to_twosided_disp_cat +#[reversible] Coercion strict_twosided_disp_cat_to_twosided_disp_cat {C₁ C₂ : category} (D : strict_twosided_disp_cat C₁ C₂) : twosided_disp_cat C₁ C₂ diff --git a/UniMath/CategoryTheory/TwoSidedDisplayedCats/TwoSidedDispCat.v b/UniMath/CategoryTheory/TwoSidedDisplayedCats/TwoSidedDispCat.v index 76329cee5e..65259ca26e 100644 --- a/UniMath/CategoryTheory/TwoSidedDisplayedCats/TwoSidedDispCat.v +++ b/UniMath/CategoryTheory/TwoSidedDisplayedCats/TwoSidedDispCat.v @@ -128,7 +128,7 @@ Definition twosided_disp_cat_ob_mor_to_ob : UU := pr1 D x y. -Coercion twosided_disp_cat_ob_mor_to_ob : twosided_disp_cat_ob_mor >-> Funclass. +#[reversible] Coercion twosided_disp_cat_ob_mor_to_ob : twosided_disp_cat_ob_mor >-> Funclass. Definition twosided_disp_cat_ob_mor_to_mor {C₁ C₂ : precategory_ob_mor} @@ -186,7 +186,7 @@ Definition twosided_disp_cat_data := ∑ (D : twosided_disp_cat_ob_mor C₁ C₂), twosided_disp_cat_id_comp D. -Coercion twosided_disp_cat_data_to_twosided_disp_cat_ob_mor +#[reversible] Coercion twosided_disp_cat_data_to_twosided_disp_cat_ob_mor {C₁ C₂ : precategory_data} (D : twosided_disp_cat_data) : twosided_disp_cat_ob_mor C₁ C₂ @@ -446,7 +446,7 @@ Section TwoSidedDispCat. := ∑ (D : twosided_disp_cat_data), twosided_disp_cat_axioms D. - Coercion twosided_disp_cat_to_twosided_disp_cat_data + #[reversible] Coercion twosided_disp_cat_to_twosided_disp_cat_data (D : twosided_disp_cat) : twosided_disp_cat_data := pr1 D. diff --git a/UniMath/CategoryTheory/TwoSidedDisplayedCats/TwoSidedFibration.v b/UniMath/CategoryTheory/TwoSidedDisplayedCats/TwoSidedFibration.v index 86c2352171..aa7deac6db 100644 --- a/UniMath/CategoryTheory/TwoSidedDisplayedCats/TwoSidedFibration.v +++ b/UniMath/CategoryTheory/TwoSidedDisplayedCats/TwoSidedFibration.v @@ -495,7 +495,7 @@ Definition discrete_twosided_fibration (HD : discrete_twosided_disp_cat D), is_discrete_twosided_fibration HD. -Coercion discrete_twosided_fibration_to_twosided_disp_cat +#[reversible] Coercion discrete_twosided_fibration_to_twosided_disp_cat {C₁ C₂ : category} (D : discrete_twosided_fibration C₁ C₂) : twosided_disp_cat C₁ C₂ diff --git a/UniMath/CategoryTheory/TwoSidedDisplayedCats/Univalence.v b/UniMath/CategoryTheory/TwoSidedDisplayedCats/Univalence.v index cfab6cf765..c11f08910a 100644 --- a/UniMath/CategoryTheory/TwoSidedDisplayedCats/Univalence.v +++ b/UniMath/CategoryTheory/TwoSidedDisplayedCats/Univalence.v @@ -118,7 +118,7 @@ Definition univalent_twosided_disp_cat : UU := ∑ (D : twosided_disp_cat C₁ C₂), is_univalent_twosided_disp_cat D. -Coercion univalent_twosided_disp_cat_to_twosided_disp_cat +#[reversible] Coercion univalent_twosided_disp_cat_to_twosided_disp_cat {C₁ C₂ : category} (D : univalent_twosided_disp_cat C₁ C₂) : twosided_disp_cat C₁ C₂ diff --git a/UniMath/CategoryTheory/catiso.v b/UniMath/CategoryTheory/catiso.v index 97adbdb776..d74b10508d 100644 --- a/UniMath/CategoryTheory/catiso.v +++ b/UniMath/CategoryTheory/catiso.v @@ -40,7 +40,7 @@ Defined. Definition functor_from_catiso (A B : precategory_data) (F : catiso A B) : functor A B := pr1 F. -Coercion functor_from_catiso : +#[reversible] Coercion functor_from_catiso : catiso >-> functor. Definition identity_catiso (A : precategory_data) diff --git a/UniMath/CategoryTheory/rezk_completion.v b/UniMath/CategoryTheory/rezk_completion.v index 9f313bf237..e3498739eb 100644 --- a/UniMath/CategoryTheory/rezk_completion.v +++ b/UniMath/CategoryTheory/rezk_completion.v @@ -82,7 +82,7 @@ End rezk. Definition functor_from (C : precategory) : UU := ∑ D : univalent_category, functor C D. -Coercion target_category (C : precategory) (X : functor_from C) : univalent_category := pr1 X. +#[reversible] Coercion target_category (C : precategory) (X : functor_from C) : univalent_category := pr1 X. Definition func_functor_from {C : precategory} (X : functor_from C) : functor C X := pr2 X. Definition is_initial_functor_from (C : precategory) (X : functor_from C) : UU diff --git a/UniMath/Combinatorics/CGraph.v b/UniMath/Combinatorics/CGraph.v index 94c7afa979..4afad4bc35 100644 --- a/UniMath/Combinatorics/CGraph.v +++ b/UniMath/Combinatorics/CGraph.v @@ -67,7 +67,7 @@ Definition make_cgraph := tpair _ G (make_dirprod h k). Definition precgraph_of_cgraph : cgraph → precgraph := pr1. -Coercion precgraph_of_cgraph : cgraph >-> precgraph. +#[reversible] Coercion precgraph_of_cgraph : cgraph >-> precgraph. Definition isaset_node (G : cgraph) : isaset (node G) diff --git a/UniMath/Combinatorics/DecSet.v b/UniMath/Combinatorics/DecSet.v index 43c8f552fc..85ab4cdd58 100644 --- a/UniMath/Combinatorics/DecSet.v +++ b/UniMath/Combinatorics/DecSet.v @@ -13,6 +13,6 @@ Definition make_decSet (X: UU) (i: isdeceq X): decSet := X,, i. Definition pr1decSet: decSet -> UU := pr1. -Coercion pr1decSet: decSet >-> UU. +#[reversible] Coercion pr1decSet: decSet >-> UU. Definition decproperty (X: decSet) := pr2 X. diff --git a/UniMath/Combinatorics/FiniteSequences.v b/UniMath/Combinatorics/FiniteSequences.v index 5633da59e5..a5312500bf 100644 --- a/UniMath/Combinatorics/FiniteSequences.v +++ b/UniMath/Combinatorics/FiniteSequences.v @@ -216,11 +216,11 @@ Definition length {X} : Sequence X -> nat := pr1. Definition sequenceToFunction {X} (x:Sequence X) := pr2 x : stn (length x) -> X. -Coercion sequenceToFunction : Sequence >-> Funclass. +#[reversible] Coercion sequenceToFunction : Sequence >-> Funclass. Definition unorderedSequenceToFunction {X} (x:UnorderedSequence X) := pr2 x : pr1 (pr1 x) -> X. -Coercion unorderedSequenceToFunction : UnorderedSequence >-> Funclass. +#[reversible] Coercion unorderedSequenceToFunction : UnorderedSequence >-> Funclass. Definition sequenceToUnorderedSequence {X} : Sequence X -> UnorderedSequence X. Proof. @@ -229,7 +229,7 @@ Proof. exact x. Defined. -Coercion sequenceToUnorderedSequence : Sequence >-> UnorderedSequence. +#[reversible] Coercion sequenceToUnorderedSequence : Sequence >-> UnorderedSequence. Definition length'{X} : NonemptySequence X -> nat := λ x, S(pr1 x). @@ -240,11 +240,11 @@ Definition functionToUnorderedSequence {X} {I : FiniteSet} (f:I -> X) : Unordere Definition NonemptySequenceToFunction {X} (x:NonemptySequence X) := pr2 x : stn (length' x) -> X. -Coercion NonemptySequenceToFunction : NonemptySequence >-> Funclass. +#[reversible] Coercion NonemptySequenceToFunction : NonemptySequence >-> Funclass. Definition NonemptySequenceToSequence {X} (x:NonemptySequence X) := functionToSequence (NonemptySequenceToFunction x) : Sequence X. -Coercion NonemptySequenceToSequence : NonemptySequence >-> Sequence. +#[reversible] Coercion NonemptySequenceToSequence : NonemptySequence >-> Sequence. (** *** Lemmas *) diff --git a/UniMath/Combinatorics/FiniteSets.v b/UniMath/Combinatorics/FiniteSets.v index 7ec7029f2d..180283cb53 100644 --- a/UniMath/Combinatorics/FiniteSets.v +++ b/UniMath/Combinatorics/FiniteSets.v @@ -31,7 +31,7 @@ Section nelstructure. : ⟦ n ⟧ -> X := pr1weq S. - Coercion nelstructToFunction : nelstruct >-> Funclass. + #[reversible] Coercion nelstructToFunction : nelstruct >-> Funclass. Definition nelstructonstn (n : nat) : nelstruct n (⟦ n ⟧) := idweq (⟦ n ⟧). @@ -214,7 +214,7 @@ Section finite_structure. Definition finstructToFunction {X : UU} (S : finstruct X) : nelstruct (pr1 S) X := pr2 S. - Coercion finstructToFunction : finstruct >-> nelstruct. + #[reversible] Coercion finstructToFunction : finstruct >-> nelstruct. Definition make_finstruct (X : UU) {n : nat} (w : ⟦ n ⟧ ≃ X) : finstruct X := (n ,, w). @@ -555,7 +555,7 @@ Section finite_subsets. Definition subtype_from_finite_subset {X : hSet} (A : finite_subset X) : hsubtype X := pr1 A. - Coercion subtype_from_finite_subset : finite_subset >-> hsubtype. + #[reversible] Coercion subtype_from_finite_subset : finite_subset >-> hsubtype. Lemma isfinite_singleton {X : hSet} {x : X} : isfinite (singleton x). Proof. @@ -589,7 +589,7 @@ Section FiniteSets. Definition FiniteSet_to_hSet (X : FiniteSet) : hSet := make_hSet (pr1 X) (isfinite_isaset (pr1 X) (pr2 X)). - Coercion FiniteSet_to_hSet : FiniteSet >-> hSet. + #[reversible] Coercion FiniteSet_to_hSet : FiniteSet >-> hSet. Definition FiniteSetSum {I : FiniteSet} (X : I -> FiniteSet) : FiniteSet. Proof. diff --git a/UniMath/Combinatorics/Graph.v b/UniMath/Combinatorics/Graph.v index 3c70b1942d..2e68996d1f 100644 --- a/UniMath/Combinatorics/Graph.v +++ b/UniMath/Combinatorics/Graph.v @@ -45,7 +45,7 @@ Definition make_graph (G : pregraph) := G,, make_dirprod h k. Definition pregraph_of_graph : graph → pregraph := pr1. -Coercion pregraph_of_graph : graph >-> pregraph. +#[reversible] Coercion pregraph_of_graph : graph >-> pregraph. Definition isaset_vertex (G : graph) : isaset (vertex G) diff --git a/UniMath/Combinatorics/KFiniteSubtypes.v b/UniMath/Combinatorics/KFiniteSubtypes.v index a637718d98..9e425eeefc 100644 --- a/UniMath/Combinatorics/KFiniteSubtypes.v +++ b/UniMath/Combinatorics/KFiniteSubtypes.v @@ -172,7 +172,7 @@ Section kfinite_subtypes. Definition subtype_from_kfinite_subtype {X} : kfinite_subtype X -> hsubtype X := pr1. - Coercion subtype_from_kfinite_subtype : kfinite_subtype >-> hsubtype. + #[reversible] Coercion subtype_from_kfinite_subtype : kfinite_subtype >-> hsubtype. Definition kfinite_subtype_property {X} (A : kfinite_subtype X) diff --git a/UniMath/Combinatorics/KFiniteTypes.v b/UniMath/Combinatorics/KFiniteTypes.v index adc71ff2ad..5794f468d5 100644 --- a/UniMath/Combinatorics/KFiniteTypes.v +++ b/UniMath/Combinatorics/KFiniteTypes.v @@ -52,7 +52,7 @@ Section kuratowski_structure. Definition kfinstruct_map {X : UU} (f : kfinstruct X) : ⟦ kfinstruct_cardinality f ⟧ -> X := pr12 f. - Coercion kfinstruct_map : kfinstruct >-> Funclass. + #[reversible] Coercion kfinstruct_map : kfinstruct >-> Funclass. Definition issurjective_kfinstruct {X : UU} (f : kfinstruct X) : issurjective f diff --git a/UniMath/Combinatorics/Lists.v b/UniMath/Combinatorics/Lists.v index 3750de4715..072d98fdf7 100644 --- a/UniMath/Combinatorics/Lists.v +++ b/UniMath/Combinatorics/Lists.v @@ -23,9 +23,9 @@ Definition list : UU := ∑ n, vec A n. (** Length of a list *) Definition length : list -> nat := pr1. -(** Coercion to a vector *) +(** #[reversible] Coercion to a vector *) Definition list_to_vec: ∏ l: list, vec A (length l) := pr2. -Coercion list_to_vec: list >-> vec. +#[reversible] Coercion list_to_vec: list >-> vec. (** The empty list *) Definition nil : list := (0,, vnil). diff --git a/UniMath/Combinatorics/MetricTree.v b/UniMath/Combinatorics/MetricTree.v index 793e413f8d..698ec1f42b 100644 --- a/UniMath/Combinatorics/MetricTree.v +++ b/UniMath/Combinatorics/MetricTree.v @@ -17,7 +17,7 @@ Definition Tree : Type := (mt_symm: ∏ x y, mt_dist x y = mt_dist y x) (mt_trans: ∏ x y z, mt_dist x z <= mt_dist x y + mt_dist y z), (* mt_step: *) ∏ x z, x != z -> ∑ y, (S (mt_dist x y) = mt_dist x z) × (mt_dist y z = 1). -Coercion mt_set (x:Tree) := pr1 x. +#[reversible] Coercion mt_set (x:Tree) := pr1 x. Definition mt_dist (x:Tree) := pr12 x. Definition mt_refl (x:Tree) := pr122 x. Definition mt_anti (x:Tree) := pr122 (pr2 x). diff --git a/UniMath/Combinatorics/OrderedSets.v b/UniMath/Combinatorics/OrderedSets.v index 8e72f39e97..8bbd41e46d 100644 --- a/UniMath/Combinatorics/OrderedSets.v +++ b/UniMath/Combinatorics/OrderedSets.v @@ -177,7 +177,7 @@ Ltac unwrap_OrderedSet X := simpl in total. Local Definition underlyingPoset (X:OrderedSet) : Poset := pr1 X. -Coercion underlyingPoset : OrderedSet >-> Poset. +#[reversible] Coercion underlyingPoset : OrderedSet >-> Poset. Declare Scope oset. Delimit Scope oset with oset. @@ -302,11 +302,11 @@ Ltac oset_induction f e := generalize f; apply OrderedSetEquivalence_rect; intro Definition FiniteOrderedSet := ∑ X:OrderedSet, isfinite X. Definition underlyingOrderedSet (X:FiniteOrderedSet) : OrderedSet := pr1 X. -Coercion underlyingOrderedSet : FiniteOrderedSet >-> OrderedSet. +#[reversible] Coercion underlyingOrderedSet : FiniteOrderedSet >-> OrderedSet. Definition finitenessProperty (X:FiniteOrderedSet) : isfinite X := pr2 X. Definition underlyingFiniteSet : FiniteOrderedSet -> FiniteSet. Proof. intros. exists X. apply finitenessProperty. Defined. -Coercion underlyingFiniteSet : FiniteOrderedSet >-> FiniteSet. +#[reversible] Coercion underlyingFiniteSet : FiniteOrderedSet >-> FiniteSet. Lemma istotal_FiniteOrderedSet (X:FiniteOrderedSet) : istotal (posetRelation X). Proof. intros. exact (pr2 (pr1 X)). Defined. diff --git a/UniMath/Combinatorics/StandardFiniteSets.v b/UniMath/Combinatorics/StandardFiniteSets.v index 2f80a3da3e..9d01c1f308 100644 --- a/UniMath/Combinatorics/StandardFiniteSets.v +++ b/UniMath/Combinatorics/StandardFiniteSets.v @@ -19,7 +19,7 @@ Require Import UniMath.MoreFoundations.NegativePropositions. Definition stn ( n : nat ) := ∑ m, m < n. Definition make_stn n m (l:m nat := @pr1 _ _ . -Coercion stntonat : stn >-> nat. +#[reversible] Coercion stntonat : stn >-> nat. Lemma stnlt {n : nat} (i:stn n) : i < n. Proof. intros. diff --git a/UniMath/Combinatorics/WellFoundedRelations.v b/UniMath/Combinatorics/WellFoundedRelations.v index b21cd4c7d9..c1de600061 100644 --- a/UniMath/Combinatorics/WellFoundedRelations.v +++ b/UniMath/Combinatorics/WellFoundedRelations.v @@ -97,7 +97,7 @@ Section Attempts. Definition attempt x := ∑ f, guided_by x f H. Definition attempt_fun {x} : attempt x -> (∏ y _, P y) := pr1. - Coercion attempt_fun : attempt >-> Funclass. + #[reversible] Coercion attempt_fun : attempt >-> Funclass. Definition attempt_comp {x} : ∏ (f : attempt x), _ := pr2. diff --git a/UniMath/Combinatorics/WellOrderedSets.v b/UniMath/Combinatorics/WellOrderedSets.v index dd87c1e38b..db3d6ea564 100644 --- a/UniMath/Combinatorics/WellOrderedSets.v +++ b/UniMath/Combinatorics/WellOrderedSets.v @@ -35,7 +35,7 @@ Definition TOSubset (X:hSet) : UU := TOSubset_set X. Definition TOSubset_to_subtype {X:hSet} : TOSubset X -> hsubtype X := pr1. -Coercion TOSubset_to_subtype : TOSubset >-> hsubtype. +#[reversible] Coercion TOSubset_to_subtype : TOSubset >-> hsubtype. Local Definition TOSrel {X:hSet} (S : TOSubset X) : hrel (carrier_subset S) := pr12 S. @@ -355,7 +355,7 @@ Definition WOStotal {X:hSet} (S : WOSubset X) : isTotalOrder (WOSrel S) := pr122 Definition WOSubset_to_TOSubset {X:hSet} : WOSubset X -> TOSubset X := λ S, WOSubset_to_subtype S,, WOSrel S,, WOStotal S. -Coercion WOSubset_to_TOSubset : WOSubset >-> TOSubset. +#[reversible] Coercion WOSubset_to_TOSubset : WOSubset >-> TOSubset. Definition WOSwo {X:hSet} (S : WOSubset X) : WellOrdering (carrier_subset S) := pr2 S. @@ -971,7 +971,7 @@ Definition Guided_WOSubset {X:hSet} (g : choice_fun X) := (∑ C, is_guided_WOSu Definition guidedFamily {X:hSet} (g : choice_fun X) : Guided_WOSubset g -> WOSubset X := pr1. -Coercion guidedFamily : Guided_WOSubset >-> WOSubset. +#[reversible] Coercion guidedFamily : Guided_WOSubset >-> WOSubset. (** ** The guided well ordered subsets form a chain *) @@ -1270,7 +1270,7 @@ Definition WellOrderedSet : UU := (∑ (S:hSet), WellOrdering S)%type. Definition WellOrderedSet_to_hSet : WellOrderedSet -> hSet := pr1. -Coercion WellOrderedSet_to_hSet : WellOrderedSet >-> hSet. +#[reversible] Coercion WellOrderedSet_to_hSet : WellOrderedSet >-> hSet. Declare Scope woset. Delimit Scope woset with woset. diff --git a/UniMath/Combinatorics/ZFstructures.v b/UniMath/Combinatorics/ZFstructures.v index db4648a58f..af28b3ff49 100644 --- a/UniMath/Combinatorics/ZFstructures.v +++ b/UniMath/Combinatorics/ZFstructures.v @@ -477,7 +477,7 @@ Qed. Definition preZFS : UU := ∑ (T : Tree), ispreZFS T. Definition Ve (X : preZFS) : hSet := pr111 X. -Coercion Ve : preZFS >-> hSet. +#[reversible] Coercion Ve : preZFS >-> hSet. Definition Ed (X : preZFS) : (Ve X) → (Ve X) → hProp := pr1 (pr2 (pr1 (pr1 X))). @@ -858,7 +858,7 @@ Qed. Definition ZFS : UU := ∑ (X : preZFS), hasuniquerepbranch X. Definition pr1ZFS (X : ZFS) : preZFS := pr1 X. -Coercion pr1ZFS : ZFS >-> preZFS. +#[reversible] Coercion pr1ZFS : ZFS >-> preZFS. Definition ZFS_iso (x y : ZFS) := preZFS_iso x y. diff --git a/UniMath/Folds/folds_isomorphism.v b/UniMath/Folds/folds_isomorphism.v index 4034193296..30041cb305 100644 --- a/UniMath/Folds/folds_isomorphism.v +++ b/UniMath/Folds/folds_isomorphism.v @@ -83,7 +83,7 @@ Definition folds_iso (a b : C) := ∑ i : folds_iso_data a b, folds_iso_prop i. Definition folds_iso_data_from_folds_iso {a b : C} : folds_iso a b → folds_iso_data a b := λ i, pr1 i. -Coercion folds_iso_data_from_folds_iso : folds_iso >-> folds_iso_data. +#[reversible] Coercion folds_iso_data_from_folds_iso : folds_iso >-> folds_iso_data. Lemma folds_iso_eq {a b : C} (i i' : folds_iso a b) : folds_iso_data_from_folds_iso i = folds_iso_data_from_folds_iso i' → i = i'. diff --git a/UniMath/Folds/folds_pre_2_cat.v b/UniMath/Folds/folds_pre_2_cat.v index 053c719e88..cab0ded401 100644 --- a/UniMath/Folds/folds_pre_2_cat.v +++ b/UniMath/Folds/folds_pre_2_cat.v @@ -60,7 +60,7 @@ Definition make_folds_3_ob_mor (ob : UU)(mor : ob → ob → UU) : folds_3_ob_mo := tpair _ ob mor. Definition ob (C : folds_3_ob_mor) : UU := @pr1 _ _ C. -Coercion ob : folds_3_ob_mor >-> UU. +#[reversible] Coercion ob : folds_3_ob_mor >-> UU. Definition folds_3_morphisms {C : folds_3_ob_mor} : C → C → UU := pr2 C. Local Notation "a ⇒ b" := (folds_3_morphisms a b). @@ -79,7 +79,7 @@ Definition folds_3_id_comp_eq := ∑ C : folds_3_ob_mor, Definition folds_ob_mor_from_folds_id_comp (C : folds_3_id_comp_eq) : folds_3_ob_mor := pr1 C. -Coercion folds_ob_mor_from_folds_id_comp : folds_3_id_comp_eq >-> folds_3_ob_mor. +#[reversible] Coercion folds_ob_mor_from_folds_id_comp : folds_3_id_comp_eq >-> folds_3_ob_mor. Definition I {C : folds_3_id_comp_eq} : ∏ {a : C}, a ⇒ a → UU := pr1 (pr1 (pr2 C)). Definition T {C : folds_3_id_comp_eq} : @@ -128,7 +128,7 @@ Definition folds_pre_3_cat := ∑ C : folds_3_id_comp_eq, × folds_ax_comp C) × E_is_good_to_I_and_T C. Definition folds_id_comp_from_folds_precat (C : folds_pre_3_cat) : folds_3_id_comp_eq := pr1 C. -Coercion folds_id_comp_from_folds_precat : folds_pre_3_cat >-> folds_3_id_comp_eq. +#[reversible] Coercion folds_id_comp_from_folds_precat : folds_pre_3_cat >-> folds_3_id_comp_eq. (** * FOLDS-2-precategories *) @@ -148,7 +148,7 @@ Ltac folds_pre_2_cat_props C := Definition folds_3_from_folds_2 (C : folds_pre_2_cat) : folds_pre_3_cat := pr1 C. -Coercion folds_3_from_folds_2 : folds_pre_2_cat >-> folds_pre_3_cat. +#[reversible] Coercion folds_3_from_folds_2 : folds_pre_2_cat >-> folds_pre_3_cat. (** * FOLDS-2-isomorphisms *) diff --git a/UniMath/Folds/folds_precat.v b/UniMath/Folds/folds_precat.v index 2daa295d76..ab3295e9e7 100644 --- a/UniMath/Folds/folds_precat.v +++ b/UniMath/Folds/folds_precat.v @@ -27,7 +27,7 @@ Definition make_folds_ob_mor (ob : UU)(mor : ob → ob → UU) : folds_ob_mor := tpair _ ob mor. Definition ob (C : folds_ob_mor) : UU := @pr1 _ _ C. -Coercion ob : folds_ob_mor >-> UU. +#[reversible] Coercion ob : folds_ob_mor >-> UU. Definition folds_morphisms {C : folds_ob_mor} : C → C → UU := pr2 C. Local Notation "a ⇒ b" := (folds_morphisms a b). @@ -41,7 +41,7 @@ Definition folds_id_T := ∑ C : folds_ob_mor, × (∏ (a b c : C), (a ⇒ b) → (b ⇒ c) → (a ⇒ c) → hProp). Definition folds_ob_mor_from_folds_id_comp (C : folds_id_T) : folds_ob_mor := pr1 C. -Coercion folds_ob_mor_from_folds_id_comp : folds_id_T >-> folds_ob_mor. +#[reversible] Coercion folds_ob_mor_from_folds_id_comp : folds_id_T >-> folds_ob_mor. Definition I {C : folds_id_T} : ∏ {a : C}, a ⇒ a → hProp := pr1 (pr2 C). @@ -84,7 +84,7 @@ Qed. Definition folds_precat := ∑ C : folds_id_T, folds_ax_I C × folds_ax_T C. Definition folds_id_comp_from_folds_precat (C : folds_precat) : folds_id_T := pr1 C. -Coercion folds_id_comp_from_folds_precat : folds_precat >-> folds_id_T. +#[reversible] Coercion folds_id_comp_from_folds_precat : folds_precat >-> folds_id_T. (** * Some lemmas about FOLDS precategories *) diff --git a/UniMath/Foundations/PartA.v b/UniMath/Foundations/PartA.v index e175aa660d..b3455bd821 100644 --- a/UniMath/Foundations/PartA.v +++ b/UniMath/Foundations/PartA.v @@ -1236,7 +1236,7 @@ Notation "X ≃ Y" := (weq X%type Y%type) : type_scope. (* written \~- or \simeq in Agda input method *) Definition pr1weq {X Y : UU} := pr1 : X ≃ Y -> (X -> Y). -Coercion pr1weq : weq >-> Funclass. +#[reversible] Coercion pr1weq : weq >-> Funclass. Definition weqproperty {X Y} (f:X≃Y) : isweq f := pr2 f. @@ -3018,7 +3018,7 @@ Definition make_fibseqstr {X Y Z : UU} (f : X -> Y) (g : Y -> Z) (z : Z) Definition fibseqstrtocomplxstr {X Y Z : UU} (f : X -> Y) (g : Y -> Z) (z : Z) : fibseqstr f g z -> complxstr f g z := @pr1 _ (λ ez : complxstr f g z, isfibseq f g z ez). -Coercion fibseqstrtocomplxstr : fibseqstr >-> complxstr. +#[reversible] Coercion fibseqstrtocomplxstr : fibseqstr >-> complxstr. Definition ezweq {X Y Z : UU} (f : X -> Y) (g : Y -> Z) (z : Z) (fs : fibseqstr f g z) : X ≃ hfiber g z @@ -3870,7 +3870,7 @@ Definition hfsqstrtocommsqstr {X X' Y Z : UU} (f : X -> Y) (f' : X' -> Y) (g : Z -> X) (g' : Z -> X') : hfsqstr f f' g g' -> commsqstr g' f' g f := @pr1 _ (λ h : commsqstr g' f' g f, isweq (commsqZtohfp f f' g g' h)). -Coercion hfsqstrtocommsqstr : hfsqstr >-> commsqstr. +#[reversible] Coercion hfsqstrtocommsqstr : hfsqstr >-> commsqstr. Definition weqZtohfp {X X' Y Z : UU} (f : X -> Y) (f' : X' -> Y) (g : Z -> X) (g' : Z -> X') (hf : hfsqstr f f' g g') : Z ≃ hfp f f' diff --git a/UniMath/Foundations/PartB.v b/UniMath/Foundations/PartB.v index 1f05ee152b..37c56a6913 100644 --- a/UniMath/Foundations/PartB.v +++ b/UniMath/Foundations/PartB.v @@ -699,13 +699,13 @@ Definition incl (X Y : UU) := total2 (fun f : X -> Y => isincl f). Definition make_incl {X Y : UU} (f : X -> Y) (is : isincl f) : incl X Y := tpair _ f is. Definition pr1incl (X Y : UU) : incl X Y -> (X -> Y) := @pr1 _ _. -Coercion pr1incl : incl >-> Funclass. +#[reversible] Coercion pr1incl : incl >-> Funclass. Lemma isinclweq (X Y : UU) (f : X -> Y) : isweq f -> isincl f. Proof. intros is. apply (isofhlevelfweq 1 (make_weq _ is)). Defined. -Coercion isinclweq : isweq >-> isincl. +#[reversible] Coercion isinclweq : isweq >-> isincl. Lemma isofhlevelfsnincl (n : nat) {X Y : UU} (f : X -> Y) (is : isincl f) : isofhlevelf (S n) f. @@ -1044,7 +1044,7 @@ Defined. Definition isdecprop (P:UU) := (P ⨿ ¬P) × isaprop P. Definition isdecproptoisaprop ( X : UU ) ( is : isdecprop X ) : isaprop X := pr2 is. -Coercion isdecproptoisaprop : isdecprop >-> isaprop . +#[reversible] Coercion isdecproptoisaprop : isdecprop >-> isaprop . Lemma isdecpropif ( X : UU ) : isaprop X -> X ⨿ ¬ X -> isdecprop X. Proof. diff --git a/UniMath/Foundations/PartC.v b/UniMath/Foundations/PartC.v index 33f5a42074..8c536e7b64 100644 --- a/UniMath/Foundations/PartC.v +++ b/UniMath/Foundations/PartC.v @@ -1154,7 +1154,7 @@ Lemma isdecincltoisincl {X Y : UU} (f : X -> Y) : isdecincl f -> isincl f. Proof. intros is y. apply (isdecproptoisaprop _ (is y)). Defined. -Coercion isdecincltoisincl : isdecincl >-> isincl. +#[reversible] Coercion isdecincltoisincl : isdecincl >-> isincl. Lemma isdecinclfromisweq {X Y : UU} (f : X -> Y) : isweq f -> isdecincl f. Proof. diff --git a/UniMath/Foundations/Propositions.v b/UniMath/Foundations/Propositions.v index 0f64831925..c4f3cf3efd 100644 --- a/UniMath/Foundations/Propositions.v +++ b/UniMath/Foundations/Propositions.v @@ -81,7 +81,7 @@ Definition hProp := total2 (λ X : UU, isaprop X). Definition make_hProp (X : UU) (is : isaprop X) : hProp := tpair (λ X : UU, isaprop X) X is. Definition hProptoType := @pr1 _ _ : hProp -> UU. -Coercion hProptoType : hProp >-> UU. +#[reversible] Coercion hProptoType : hProp >-> UU. Definition propproperty (P : hProp) := pr2 P : isaprop (pr1 P). diff --git a/UniMath/Foundations/Sets.v b/UniMath/Foundations/Sets.v index bdeb7d0a28..8df703b88f 100644 --- a/UniMath/Foundations/Sets.v +++ b/UniMath/Foundations/Sets.v @@ -83,7 +83,7 @@ Require Export UniMath.Foundations.Propositions. Definition hSet : UU := total2 (λ X : UU, isaset X). Definition make_hSet (X : UU) (i : isaset X) := tpair isaset X i : hSet. Definition pr1hSet : hSet -> UU := @pr1 UU (λ X : UU, isaset X). -Coercion pr1hSet: hSet >-> UU. +#[reversible] Coercion pr1hSet: hSet >-> UU. Definition eqset {X : hSet} (x x' : X) : hProp := make_hProp (x = x') (pr2 X x x'). @@ -277,7 +277,7 @@ Defined. Definition hsubtype (X : UU) : UU := X -> hProp. Identity Coercion id_hsubtype : hsubtype >-> Funclass. Definition carrier {X : UU} (A : hsubtype X) := total2 A. -Coercion carrier : hsubtype >-> Sortclass. +#[reversible] Coercion carrier : hsubtype >-> Sortclass. Definition make_carrier {X : UU} (A : hsubtype X) : ∏ t : X, A t → ∑ x : X, A x := tpair A. Definition pr1carrier {X : UU} (A : hsubtype X) := @pr1 _ _ : carrier A -> X. @@ -771,13 +771,13 @@ Definition po (X : UU) : UU := ∑ R : hrel X, ispreorder R. Definition make_po {X : UU} (R : hrel X) (is : ispreorder R) : po X := tpair ispreorder R is. Definition carrierofpo (X : UU) : po X -> (X -> X -> hProp) := @pr1 _ ispreorder. -Coercion carrierofpo : po >-> Funclass. +#[reversible] Coercion carrierofpo : po >-> Funclass. Definition PreorderedSet : UU := ∑ X : hSet, po X. Definition PreorderedSetPair (X : hSet) (R :po X) : PreorderedSet := tpair _ X R. Definition carrierofPreorderedSet : PreorderedSet -> hSet := pr1. -Coercion carrierofPreorderedSet : PreorderedSet >-> hSet. +#[reversible] Coercion carrierofPreorderedSet : PreorderedSet >-> hSet. Definition PreorderedSetRelation (X : PreorderedSet) : hrel X := pr1 (pr2 X). (* partial orderings *) @@ -786,13 +786,13 @@ Definition make_PartialOrder {X : hSet} (R : hrel X) (is : isPartialOrder R) : PartialOrder X := tpair isPartialOrder R is. Definition carrierofPartialOrder {X : hSet} : PartialOrder X -> hrel X := pr1. -Coercion carrierofPartialOrder : PartialOrder >-> hrel. +#[reversible] Coercion carrierofPartialOrder : PartialOrder >-> hrel. Definition Poset : UU := ∑ X, PartialOrder X. Definition make_Poset (X : hSet) (R : PartialOrder X) : Poset := tpair PartialOrder X R. Definition carrierofposet : Poset -> hSet := pr1. -Coercion carrierofposet : Poset >-> hSet. +#[reversible] Coercion carrierofposet : Poset >-> hSet. Definition posetRelation (X : Poset) : hrel X := pr1 (pr2 X). Lemma isrefl_posetRelation (X : Poset) : isrefl (posetRelation X). @@ -823,7 +823,7 @@ Definition make_posetmorphism (X Y : Poset) : := tpair (fun f : X -> Y => isaposetmorphism f). Definition carrierofposetmorphism (X Y : Poset) : posetmorphism X Y -> (X -> Y) := @pr1 _ _. -Coercion carrierofposetmorphism : posetmorphism >-> Funclass. +#[reversible] Coercion carrierofposetmorphism : posetmorphism >-> Funclass. Definition isdec_ordering (X : Poset) : UU := ∏ (x y : X), decidable (x ≤ y)%poset. @@ -882,7 +882,7 @@ Notation "X ≅ Y" := (PosetEquivalence X Y) (at level 60, no associativity) : (* written \cong in Agda input method *) Definition posetUnderlyingEquivalence {X Y : Poset} : X ≅ Y -> X ≃ Y := pr1. -Coercion posetUnderlyingEquivalence : PosetEquivalence >-> weq. +#[reversible] Coercion posetUnderlyingEquivalence : PosetEquivalence >-> weq. Definition identityPosetEquivalence (X : Poset) : PosetEquivalence X X. Proof. @@ -934,7 +934,7 @@ Definition eqrelconstr {X : UU} (R : hrel X) (is1 : istrans R) (is2 : isrefl R) (is3 : issymm R) : eqrel X := make_eqrel R (make_dirprod (make_dirprod is1 is2) is3). Definition pr1eqrel (X : UU) : eqrel X -> (X -> (X -> hProp)) := @pr1 _ _. -Coercion pr1eqrel : eqrel >-> Funclass. +#[reversible] Coercion pr1eqrel : eqrel >-> Funclass. Definition eqreltrans {X : UU} (R : eqrel X) : istrans R := pr1 (pr1 (pr2 R)). Definition eqrelrefl {X : UU} (R : eqrel X) : isrefl R := pr2 (pr1 (pr2 R)). @@ -1079,7 +1079,7 @@ Definition decrel (X : UU) : UU := total2 (λ R : hrel X, isdecrel R). Definition pr1decrel (X : UU) : decrel X -> hrel X := @pr1 _ _. Definition make_decrel {X : UU} {R : hrel X} (is : isdecrel R) : decrel X := tpair _ R is. -Coercion pr1decrel : decrel >-> hrel. +#[reversible] Coercion pr1decrel : decrel >-> hrel. Definition decreltobrel {X : UU} (R : decrel X) : brel X. Proof. @@ -1587,7 +1587,7 @@ Definition make_setquot {X : UU} (R : hrel X) (A : hsubtype X) (is : iseqclass R A) : setquot R := tpair _ A is. Definition pr1setquot {X : UU} (R : hrel X) : setquot R -> (hsubtype X) := @pr1 _ (λ A : _, iseqclass R A). -Coercion pr1setquot : setquot >-> hsubtype. +#[reversible] Coercion pr1setquot : setquot >-> hsubtype. Lemma isinclpr1setquot {X : UU} (R : hrel X) : isincl (pr1setquot R). Proof. @@ -2722,7 +2722,7 @@ Definition make_compfun {X : UU} (R : hrel X) {S : UU} (f : X -> S) (is : iscomprelfun R f) : compfun R S := tpair _ f is. Definition pr1compfun (X : UU) (R : hrel X) (S : UU) : @compfun X R S -> (X -> S) := @pr1 _ _. -Coercion pr1compfun : compfun >-> Funclass. +#[reversible] Coercion pr1compfun : compfun >-> Funclass. Definition compevmapset {X : UU} (R : hrel X) : X -> ∏ S : hSet, (compfun R S) -> S diff --git a/UniMath/HomologicalAlgebra/Complexes.v b/UniMath/HomologicalAlgebra/Complexes.v index 1cd7677681..6a7d8f4a86 100644 --- a/UniMath/HomologicalAlgebra/Complexes.v +++ b/UniMath/HomologicalAlgebra/Complexes.v @@ -95,7 +95,7 @@ Section def_complexes. (** Accessor functions *) Definition Complex_Funclass (C : Complex) : hz -> ob A := pr1 (pr1 C). - Coercion Complex_Funclass : Complex >-> Funclass. + #[reversible] Coercion Complex_Funclass : Complex >-> Funclass. Definition Diff (C : Complex) (i : hz) : A⟦C i, C (i + 1)⟧ := pr2 (pr1 C) i. @@ -203,7 +203,7 @@ Section def_complexes. (** Accessor functions *) Definition MMor {C1 C2 : Complex} (M : Morphism C1 C2) (i : hz) : A⟦C1 i, C2 i⟧ := pr1 M i. - Coercion MMor : Morphism >-> Funclass. + #[reversible] Coercion MMor : Morphism >-> Funclass. Definition MComm {C1 C2 : Complex} (M : Morphism C1 C2) (i : hz) : (M i) · (Diff C2 i) = (Diff C1 i) · (M (i + 1)) := pr2 M i. diff --git a/UniMath/HomologicalAlgebra/Triangulated.v b/UniMath/HomologicalAlgebra/Triangulated.v index a175c95218..89746ba90c 100644 --- a/UniMath/HomologicalAlgebra/Triangulated.v +++ b/UniMath/HomologicalAlgebra/Triangulated.v @@ -160,7 +160,7 @@ Section def_triangles. (make_MorphismPair f g),,h. Definition TriMP (D : Tri) : MorphismPair A := pr1 D. - Coercion TriMP : Tri >-> MorphismPair. + #[reversible] Coercion TriMP : Tri >-> MorphismPair. (** Follows the naming convention Mor1, Mor2, for MorphismPair *) Definition Mor3 (D : Tri) : A⟦Ob3 D, (AddEquiv1 T) (Ob1 D)⟧ := pr2 D. @@ -176,7 +176,7 @@ Section def_triangles. TriMor D1 D2 := (M,,H). Definition TriMor_Mors {D1 D2 : Tri} (DTM : TriMor D1 D2) : MPMor D1 D2 := pr1 DTM. - Coercion TriMor_Mors : TriMor >-> MPMor. + #[reversible] Coercion TriMor_Mors : TriMor >-> MPMor. Local Lemma TriMorId_comms {x y : ob A} (f : x --> y) : identity x · f = f · identity y. Proof. @@ -361,10 +361,10 @@ Section def_triangles. (M,,H). Definition TriIsoMor {D1 D2 : Tri} (I : TriIso D1 D2) : TriMor D1 D2 := pr1 I. - Coercion TriIsoMor : TriIso >-> TriMor. + #[reversible] Coercion TriIsoMor : TriIso >-> TriMor. Definition TriIso_is_iso {D1 D2 : Tri} (I : TriIso D1 D2) : TriMor_is_iso I := pr2 I. - Coercion TriIso_is_iso : TriIso >-> TriMor_is_iso. + #[reversible] Coercion TriIso_is_iso : TriIso >-> TriMor_is_iso. (** *** Composition of isomorphisms *) @@ -548,7 +548,7 @@ Section def_triangles. Definition ConeDataOb {A : CategoryWithAdditiveStructure} {T : AddEquiv A A} {x y : ob A} (C : ConeData T x y) : ob A := pr1 C. - Coercion ConeDataOb : ConeData >-> ob. + #[reversible] Coercion ConeDataOb : ConeData >-> ob. Definition ConeData1 {A : CategoryWithAdditiveStructure} {T : AddEquiv A A} {x y : ob A} (C : ConeData T x y) : A⟦y, C⟧ := dirprod_pr1 (pr2 C). @@ -583,7 +583,7 @@ Section def_pretriang_data. Defined. Definition PreTriangData_Additive (PTD : PreTriangData) : CategoryWithAdditiveStructure := pr1 (pr1 PTD). - Coercion PreTriangData_Additive : PreTriangData >-> CategoryWithAdditiveStructure. + #[reversible] Coercion PreTriangData_Additive : PreTriangData >-> CategoryWithAdditiveStructure. Definition Trans {PTD : PreTriangData} : AddEquiv PTD PTD := pr2 (pr1 PTD). @@ -627,7 +627,7 @@ Section def_pretriangulated_data. DTri := (T,,H). Definition DTriTri (D : DTri) : Tri := pr1 D. - Coercion DTriTri : DTri >-> Tri. + #[reversible] Coercion DTriTri : DTri >-> Tri. Definition DTriisDTri (D : DTri) : isDTri D := pr2 D. @@ -647,7 +647,7 @@ Section def_pretriangulated_data. Definition TExt_Mor {D1 D2 : DTri} {f1 : Ob1 (DTriTri D1) --> Ob1 D2} {f2 : Ob2 D1 --> Ob2 D2} {H : f1 · Mor1 D2 = Mor1 D1 · f2} (TE : TExt H) : PTD⟦Ob3 D1, Ob3 D2⟧ := pr1 TE. - Coercion TExt_Mor : TExt >-> precategory_morphisms. + #[reversible] Coercion TExt_Mor : TExt >-> precategory_morphisms. Definition TExtComm1 {D1 D2 : DTri} {f1 : Ob1 D1 --> Ob1 D2} {f2 : Ob2 D1 --> Ob2 D2} {H : f1 · Mor1 D2 = Mor1 D1 · f2} (TE : TExt H) : @@ -760,10 +760,10 @@ Section def_pretrangulated. (** Accessor functions for pretriangulated categories *) Definition PreTriang_PreTriangData (PT : PreTriang) : PreTriangData := pr1 PT. - Coercion PreTriang_PreTriangData : PreTriang >-> PreTriangData. + #[reversible] Coercion PreTriang_PreTriangData : PreTriang >-> PreTriangData. Definition PreTriang_isPreTriang (PT : PreTriang) : isPreTriang PT := pr2 PT. - Coercion PreTriang_isPreTriang : PreTriang >-> isPreTriang. + #[reversible] Coercion PreTriang_isPreTriang : PreTriang >-> isPreTriang. End def_pretrangulated. Arguments Trans {PTD} : simpl never. @@ -899,7 +899,7 @@ Section def_triangulated. (H3 : isDTri (make_Tri (f1 · g1) h2 h3)), ∥ Octa H1 H2 H3 ∥) : Triang := (PT,,H). Definition Triang_PreTriang (TR : Triang) : PreTriang := pr1 TR. - Coercion Triang_PreTriang : Triang >-> PreTriang. + #[reversible] Coercion Triang_PreTriang : Triang >-> PreTriang. Definition Octahedral {TR : Triang} {x1 x2 y1 y2 z1 z2 : ob TR} {f1 : x1 --> y1} {f2 : y1 --> z2} {f3 : z2 --> (AddEquiv1 Trans x1)} diff --git a/UniMath/Induction/FunctorAlgebras_legacy.v b/UniMath/Induction/FunctorAlgebras_legacy.v index 49615e68b4..1bdc23b4bd 100644 --- a/UniMath/Induction/FunctorAlgebras_legacy.v +++ b/UniMath/Induction/FunctorAlgebras_legacy.v @@ -52,7 +52,7 @@ Definition algebra_ob : UU := ∑ X : C, F X --> X. thus removing coercion globally *) Definition alg_carrier (X : algebra_ob) : C := pr1 X. -Local Coercion alg_carrier : algebra_ob >-> ob. +Local #[reversible] Coercion alg_carrier : algebra_ob >-> ob. Definition alg_map (X : algebra_ob) : F X --> X := pr2 X. @@ -75,7 +75,7 @@ Definition is_algebra_mor (X Y : algebra_ob) (f : alg_carrier X --> alg_carrier Definition algebra_mor (X Y : algebra_ob) : UU := ∑ f : X --> Y, is_algebra_mor X Y f. -Coercion mor_from_algebra_mor (X Y : algebra_ob) (f : algebra_mor X Y) : X --> Y := pr1 f. +#[reversible] Coercion mor_from_algebra_mor (X Y : algebra_ob) (f : algebra_mor X Y) : X --> Y := pr1 f. Lemma algebra_mor_commutes (X Y : algebra_ob) (f : algebra_mor X Y) @@ -442,7 +442,7 @@ Section Nats. Definition nat_ob_carrier (N : nat_ob) : ob C := alg_carrier _ (InitialObject N). - Local Coercion nat_ob_carrier : nat_ob >-> ob. + Local #[reversible] Coercion nat_ob_carrier : nat_ob >-> ob. (** We have an arrow alg_map : (F N = 1 + N) --> N, so by the η-rule (UMP) for the coproduct, we can assume that it diff --git a/UniMath/Induction/FunctorCoalgebras_legacy.v b/UniMath/Induction/FunctorCoalgebras_legacy.v index 74b1015c1f..582f51ffef 100644 --- a/UniMath/Induction/FunctorCoalgebras_legacy.v +++ b/UniMath/Induction/FunctorCoalgebras_legacy.v @@ -21,7 +21,7 @@ Context {C : precategory} (F : functor C C). Definition coalgebra : UU := ∑ X : C, X --> F X. Definition coalgebra_ob (X : coalgebra) : C := pr1 X. -Local Coercion coalgebra_ob : coalgebra >-> ob. +Local #[reversible] Coercion coalgebra_ob : coalgebra >-> ob. Definition coalgebra_mor (X : coalgebra) : C ⟦X, F X ⟧ := pr2 X. @@ -48,7 +48,7 @@ Definition coalgebra_homo (X Y : coalgebra) := ∑ f : C ⟦X, Y⟧, is_coalgebr Definition mor_from_coalgebra_homo (X Y : coalgebra) (f : coalgebra_homo X Y) : C ⟦X, Y⟧ := pr1 f. -Coercion mor_from_coalgebra_homo : coalgebra_homo >-> precategory_morphisms. +#[reversible] Coercion mor_from_coalgebra_homo : coalgebra_homo >-> precategory_morphisms. Definition coalgebra_homo_eq (hasHom : has_homsets C) {X Y : coalgebra} (f g : coalgebra_homo X Y) : (f : C ⟦X, Y⟧) = g ≃ f = g. diff --git a/UniMath/Induction/M/Core.v b/UniMath/Induction/M/Core.v index be13a4b90c..70c44a4f33 100644 --- a/UniMath/Induction/M/Core.v +++ b/UniMath/Induction/M/Core.v @@ -46,7 +46,7 @@ Section M. Definition M := ∑ (X : coalgebra F), is_final X. Definition M_coalgebra : M → coalgebra F := pr1. Definition M_is_final : ∏ (m : M), is_final (pr1 m) := pr2. - Coercion M_coalgebra : M >-> coalgebra. + #[reversible] Coercion M_coalgebra : M >-> coalgebra. End M. Arguments isaprop_is_final {_ _} _. diff --git a/UniMath/Induction/W/Core.v b/UniMath/Induction/W/Core.v index be25d14765..09f79fd9e3 100644 --- a/UniMath/Induction/W/Core.v +++ b/UniMath/Induction/W/Core.v @@ -42,7 +42,7 @@ Section W. Definition W := ∑ (X : algebra_ob F), is_initial X. Definition W_algebra : W → algebra_ob F := pr1. Definition W_is_initial : ∏ (w : W), is_initial (pr1 w) := pr2. - Coercion W_algebra : W >-> algebra_ob. + #[reversible] Coercion W_algebra : W >-> algebra_ob. End W. Arguments isaprop_is_initial {_ _} _. diff --git a/UniMath/Induction/W/Wtypes.v b/UniMath/Induction/W/Wtypes.v index acaaca5b36..16641a231c 100644 --- a/UniMath/Induction/W/Wtypes.v +++ b/UniMath/Induction/W/Wtypes.v @@ -22,7 +22,7 @@ Definition Wtype (A: UU) (B: ∏ x: A, UU): UU (x : A) (f : B x → U) , w_ind P e_s (w_sup x f) = e_s x f (λ u, w_ind P e_s (f u))). -Coercion w_carrier {A: UU} {B: ∏ x: A, UU} (W: Wtype A B): UU := pr1 W. +#[reversible] Coercion w_carrier {A: UU} {B: ∏ x: A, UU} (W: Wtype A B): UU := pr1 W. Section W. diff --git a/UniMath/MoreFoundations/DecidablePropositions.v b/UniMath/MoreFoundations/DecidablePropositions.v index ba73150801..30c86eb298 100644 --- a/UniMath/MoreFoundations/DecidablePropositions.v +++ b/UniMath/MoreFoundations/DecidablePropositions.v @@ -38,8 +38,8 @@ Definition isFalse (C : ComplementaryPair) Definition trueWitness {C : ComplementaryPair} : isTrue C -> Part1 C := pr1. Definition falseWitness {C : ComplementaryPair} : isFalse C -> Part2 C := pr1. -Coercion trueWitness : isTrue >-> Part1. -Coercion falseWitness : isFalse >-> Part2. +#[reversible] Coercion trueWitness : isTrue >-> Part1. +#[reversible] Coercion falseWitness : isFalse >-> Part2. Lemma complementaryDecisions (C : ComplementaryPair) : iscontr (isTrue C ⨿ isFalse C). @@ -220,7 +220,7 @@ Proof. intros X. exact (pr1 X,, isdecproptoisaprop (pr1 X) (pr2 X)). Defined. -Coercion DecidableProposition_to_hProp : DecidableProposition >-> hProp. +#[reversible] Coercion DecidableProposition_to_hProp : DecidableProposition >-> hProp. Definition decidabilityProperty (X : DecidableProposition) : isdecprop X := pr2 X. @@ -349,11 +349,11 @@ Defined. Definition DecidableSubtype_to_hsubtype {X : UU} (P : DecidableSubtype X) : hsubtype X := λ x, DecidableProposition_to_hProp (P x). -Coercion DecidableSubtype_to_hsubtype : DecidableSubtype >-> hsubtype. +#[reversible] Coercion DecidableSubtype_to_hsubtype : DecidableSubtype >-> hsubtype. Definition DecidableRelation_to_hrel {X : UU} (P : DecidableRelation X) : hrel X := λ x y, DecidableProposition_to_hProp(P x y). -Coercion DecidableRelation_to_hrel : DecidableRelation >-> hrel. +#[reversible] Coercion DecidableRelation_to_hrel : DecidableRelation >-> hrel. Definition natlth_DecidableProposition : DecidableRelation nat := decrel_to_DecidableRelation natlthdec. diff --git a/UniMath/MoreFoundations/Equivalences.v b/UniMath/MoreFoundations/Equivalences.v index 6bb5e7343d..ea861b440e 100644 --- a/UniMath/MoreFoundations/Equivalences.v +++ b/UniMath/MoreFoundations/Equivalences.v @@ -34,7 +34,7 @@ Definition makeEquivalence X Y f g p q h := (f,,g,,p,,q,,h) : X ≅ Y. Definition Equivalence_toFunction {X Y} : X≅Y -> X->Y := pr1. -Coercion Equivalence_toFunction : Equivalence >-> Funclass. +#[reversible] Coercion Equivalence_toFunction : Equivalence >-> Funclass. Definition Equivalence_to_isEquivalence {X Y} (w:X≅Y) : isEquivalence w := pr2 w. diff --git a/UniMath/MoreFoundations/NegativePropositions.v b/UniMath/MoreFoundations/NegativePropositions.v index d29792d7c9..630fd13547 100644 --- a/UniMath/MoreFoundations/NegativePropositions.v +++ b/UniMath/MoreFoundations/NegativePropositions.v @@ -11,7 +11,7 @@ Definition negProp_to_hProp {P : UU} (Q : negProp P) : hProp. Proof. intros. exists (pr1 Q). apply negProp_to_isaprop. Defined. -Coercion negProp_to_hProp : negProp >-> hProp. +#[reversible] Coercion negProp_to_hProp : negProp >-> hProp. Definition negProp_to_iff {P} (nP : negProp P) : ¬P <-> nP := pr2 (pr2 nP). @@ -21,7 +21,7 @@ Proof. intros np. exact (pr2 (negProp_to_iff nP) np). Defined. -Coercion negProp_to_neg : negProp >-> Funclass. +#[reversible] Coercion negProp_to_neg : negProp >-> Funclass. Definition neg_to_negProp {P} {nP : negProp P} : ¬P -> nP. Proof. diff --git a/UniMath/MoreFoundations/Orders.v b/UniMath/MoreFoundations/Orders.v index 91760262ad..14311852d7 100644 --- a/UniMath/MoreFoundations/Orders.v +++ b/UniMath/MoreFoundations/Orders.v @@ -90,9 +90,9 @@ Definition StrongOrder (X : UU) := ∑ R : hrel X, isStrongOrder R. Definition make_StrongOrder {X : UU} (R : hrel X) (is : isStrongOrder R) : StrongOrder X := R,,is. Definition pr1StrongOrder {X : UU} : StrongOrder X → hrel X := pr1. -Coercion pr1StrongOrder : StrongOrder >-> hrel. +#[reversible] Coercion pr1StrongOrder : StrongOrder >-> hrel. Definition pr2StrongOrder {X : UU} {R : StrongOrder X} : isStrongOrder R := pr2 R. -Coercion pr2StrongOrder : StrongOrder >-> isStrongOrder. +#[reversible] Coercion pr2StrongOrder : StrongOrder >-> isStrongOrder. Definition StrongOrder_bck {X Y : UU} (f : Y → X) (gt : StrongOrder X) : StrongOrder Y := diff --git a/UniMath/MoreFoundations/PartA.v b/UniMath/MoreFoundations/PartA.v index ac8e4211f8..295ced970b 100644 --- a/UniMath/MoreFoundations/PartA.v +++ b/UniMath/MoreFoundations/PartA.v @@ -406,7 +406,7 @@ Section PointedTypes. Definition PointedType := ∑ X, X. Definition pointedType X x := X,,x : PointedType. Definition underlyingType (X:PointedType) := pr1 X. - Coercion underlyingType : PointedType >-> UU. + #[reversible] Coercion underlyingType : PointedType >-> UU. Definition basepoint (X:PointedType) := pr2 X. Definition loopSpace (X:PointedType) := pointedType (basepoint X = basepoint X) (idpath _). diff --git a/UniMath/MoreFoundations/Subposets.v b/UniMath/MoreFoundations/Subposets.v index 157dd5caf3..593ca4b7e5 100644 --- a/UniMath/MoreFoundations/Subposets.v +++ b/UniMath/MoreFoundations/Subposets.v @@ -6,7 +6,7 @@ Definition Subposet' (X:Poset) := ∑ (S:Poset) (f:posetmorphism S X), isincl f. Definition Subposet'_to_Poset {X:Poset} (S:Subposet' X) := pr1 S. -Coercion Subposet'_to_Poset : Subposet' >-> Poset. +#[reversible] Coercion Subposet'_to_Poset : Subposet' >-> Poset. Definition Subposet_to_Subposet' {X:Poset} : Subposet X -> Subposet' X. Proof. @@ -30,7 +30,7 @@ Proof. intros S x. set (f := pr1 (pr2 S)); simpl in f. exact (nonempty (hfiber f x)). Defined. -Coercion Subposet_to_Subposet' : Subposet >-> Subposet'. +#[reversible] Coercion Subposet_to_Subposet' : Subposet >-> Subposet'. Definition Subposet'_equiv_Subposet (X:Poset) : Subposet' X ≃ Subposet X. Proof. diff --git a/UniMath/OrderTheory/DCPOs/AlternativeDefinitions/Dcpo.v b/UniMath/OrderTheory/DCPOs/AlternativeDefinitions/Dcpo.v index fc46432687..20c750eac2 100644 --- a/UniMath/OrderTheory/DCPOs/AlternativeDefinitions/Dcpo.v +++ b/UniMath/OrderTheory/DCPOs/AlternativeDefinitions/Dcpo.v @@ -110,7 +110,7 @@ Qed. Definition dcpo := ∑ (X : Poset), isdirectedcomplete X. Definition dcpoposet : dcpo -> Poset := pr1. -Coercion dcpoposet : dcpo >-> Poset. +#[reversible] Coercion dcpoposet : dcpo >-> Poset. Definition dcpoisdirectedcomplete (D : dcpo) : isdirectedcomplete D := pr2 D. Definition make_dcpo (X : Poset) (i : isdirectedcomplete X) : dcpo := (X,,i). @@ -161,7 +161,7 @@ Proof. intros [f isdcpomor]. exists f. exact (pr1 isdcpomor). Defined. -Coercion dcpomorphism_posetmorphism : dcpomorphism >-> posetmorphism. +#[reversible] Coercion dcpomorphism_posetmorphism : dcpomorphism >-> posetmorphism. Lemma dcpomorphism_preservesorder {D D' : dcpo} (f : dcpomorphism D D') : isaposetmorphism f. @@ -430,7 +430,7 @@ End morphismsofdcpos_formdcpo. Section dcpowithbottom. Definition dcpowithbottom := ∑ (D : dcpo), ∑ (l : D), isMinimal l. Definition dcpowithbottom_dcpo : dcpowithbottom -> dcpo := pr1. -Coercion dcpowithbottom_dcpo : dcpowithbottom >-> dcpo. +#[reversible] Coercion dcpowithbottom_dcpo : dcpowithbottom >-> dcpo. Definition dcpowithbottom_isMinimal (D : dcpowithbottom) := (pr2 (pr2 D)). Definition dcpowithbottom_bottom (D : dcpowithbottom) := pr1 (pr2 D). diff --git a/UniMath/OrderTheory/DCPOs/AlternativeDefinitions/FixedPointTheorems.v b/UniMath/OrderTheory/DCPOs/AlternativeDefinitions/FixedPointTheorems.v index 3033dcd7da..e331a75509 100644 --- a/UniMath/OrderTheory/DCPOs/AlternativeDefinitions/FixedPointTheorems.v +++ b/UniMath/OrderTheory/DCPOs/AlternativeDefinitions/FixedPointTheorems.v @@ -378,7 +378,7 @@ Section Least. : least_of_family p -> I := pr1. (* Would be nice to make [least_of_family_index] a coercion, but can’t since its target is an arbitrary type. The best we can do instead is [realise_least_of_family]: *) - Coercion realise_least_of_family {I} (p : I -> P) + #[reversible] Coercion realise_least_of_family {I} (p : I -> P) : least_of_family p -> P := fun ih => p (pr1 ih). @@ -437,7 +437,7 @@ Section Greatest. : greatest_of_family p -> I := pr1. (* Would be nice to make [greatest_of_family_index] a coercion, but can’t since its target is an arbitrary type. The best we can do instead is [realise_greatest_of_family]: *) - Coercion realise_greatest_of_family {I} (p : I -> P) + #[reversible] Coercion realise_greatest_of_family {I} (p : I -> P) : greatest_of_family p -> P := fun ih => p (pr1 ih). @@ -597,12 +597,12 @@ Section Chains. Definition Chain (P : Poset) : UU := ∑ (I : UU), ∑ (p : I -> P), is_chain p. - Coercion chain_index {P} (C : Chain P) : UU + #[reversible] Coercion chain_index {P} (C : Chain P) : UU := pr1 C. Definition chain_family {P} (C : Chain P) : C -> P := pr1 (pr2 C). - Coercion chain_family : Chain >-> Funclass. + #[reversible] Coercion chain_family : Chain >-> Funclass. Definition chain_property {P} (C : Chain P) : is_chain C := pr2 (pr2 C). @@ -627,10 +627,10 @@ Section Chains. Definition Chain_hsubtype (P : Poset) : UU := ∑ A : hsubtype P, is_chain (pr1carrier A). - Coercion pr1_Chain_hsubtype {P} : Chain_hsubtype P -> hsubtype P + #[reversible] Coercion pr1_Chain_hsubtype {P} : Chain_hsubtype P -> hsubtype P := pr1. - Coercion Chain_of_Chain_hsubtype (P : Poset) + #[reversible] Coercion Chain_of_Chain_hsubtype (P : Poset) : Chain_hsubtype P -> Chain P. Proof. intros C. exact (carrier C,, (pr1carrier C,, pr2 C)). @@ -659,12 +659,12 @@ Section Directed. Definition Directed_family (P : Poset) : UU := ∑ (I : UU), ∑ (p : I -> P), isdirected p. - Coercion directed_index {P} (C : Directed_family P) : UU + #[reversible] Coercion directed_index {P} (C : Directed_family P) : UU := pr1 C. Definition directed_family {P} (C : Directed_family P) : C -> P := pr1 (pr2 C). - Coercion directed_family : Directed_family >-> Funclass. + #[reversible] Coercion directed_family : Directed_family >-> Funclass. Definition directed_property {P} (C : Directed_family P) : isdirected C := pr2 (pr2 C). @@ -698,10 +698,10 @@ Section Directed. Definition Directed_hsubtype (P : Poset) : UU := ∑ A : hsubtype P, isdirected (pr1carrier A). - Coercion pr1_Directed_hsubtype {P} : Directed_hsubtype P -> hsubtype P + #[reversible] Coercion pr1_Directed_hsubtype {P} : Directed_hsubtype P -> hsubtype P := pr1. - Coercion Directed_of_Directed_hsubtype (P : Poset) + #[reversible] Coercion Directed_of_Directed_hsubtype (P : Poset) : Directed_hsubtype P -> Directed_family P. Proof. intros C. exact (carrier C,, (pr1carrier C,, pr2 C)). @@ -968,7 +968,7 @@ Definition Progressive_map (P : Poset) := carrier (@isprogressive P). Definition pr1_Progressive_map {P : Poset} : Progressive_map P -> (P -> P) := pr1carrier _. -Coercion pr1_Progressive_map : Progressive_map >-> Funclass. +#[reversible] Coercion pr1_Progressive_map : Progressive_map >-> Funclass. Definition progressive_property {P} (f : Progressive_map P) : isprogressive f @@ -1017,7 +1017,7 @@ Definition isfixedpoint {P : Poset} (f : P -> P) : hsubtype P Definition Fixedpoint {P : Poset} (f : P -> P) : UU := carrier (isfixedpoint f). -Coercion pr1_Fixedpoint {P : Poset} {f : P -> P} : Fixedpoint f -> P +#[reversible] Coercion pr1_Fixedpoint {P : Poset} {f : P -> P} : Fixedpoint f -> P := pr1carrier _. Definition fixedpoint_property {P : Poset} {f : P -> P} (x : Fixedpoint f) @@ -1030,7 +1030,7 @@ Definition ispostfixedpoint {P : Poset} (f : P -> P) : hsubtype P Definition Postfixedpoint {P : Poset} (f : P -> P) : UU := carrier (ispostfixedpoint f). -Coercion pr1_Postfixedpoint {P : Poset} {f : P -> P} : Postfixedpoint f -> P +#[reversible] Coercion pr1_Postfixedpoint {P : Poset} {f : P -> P} : Postfixedpoint f -> P := pr1carrier _. Definition postfixedpoint_property {P : Poset} {f : P -> P} (x : Postfixedpoint f) diff --git a/UniMath/OrderTheory/DCPOs/Basis/Basis.v b/UniMath/OrderTheory/DCPOs/Basis/Basis.v index cadd7c06e5..e61ddf07fe 100644 --- a/UniMath/OrderTheory/DCPOs/Basis/Basis.v +++ b/UniMath/OrderTheory/DCPOs/Basis/Basis.v @@ -62,7 +62,7 @@ Section BasisInDCPO. : UU := ∑ (B : UU), B → X. - Coercion dcpo_basis_data_to_type + #[reversible] Coercion dcpo_basis_data_to_type (B : dcpo_basis_data) : UU := pr1 B. @@ -73,7 +73,7 @@ Section BasisInDCPO. : X := pr2 B b. - Coercion dcpo_basis_data_to_dcpo : dcpo_basis_data >-> Funclass. + #[reversible] Coercion dcpo_basis_data_to_dcpo : dcpo_basis_data >-> Funclass. Definition make_dcpo_basis_data (B : UU) @@ -114,12 +114,12 @@ Section BasisInDCPO. : dcpo_basis := B ,, HB. - Coercion dcpo_basis_to_data + #[reversible] Coercion dcpo_basis_to_data (B : dcpo_basis) : dcpo_basis_data := pr1 B. - Coercion dcpo_basis_to_laws + #[reversible] Coercion dcpo_basis_to_laws (B : dcpo_basis) : dcpo_basis_laws B := pr2 B. diff --git a/UniMath/OrderTheory/DCPOs/Basis/CompactBasis.v b/UniMath/OrderTheory/DCPOs/Basis/CompactBasis.v index 68c34bcc88..bb6e488c61 100644 --- a/UniMath/OrderTheory/DCPOs/Basis/CompactBasis.v +++ b/UniMath/OrderTheory/DCPOs/Basis/CompactBasis.v @@ -79,12 +79,12 @@ Section CompactBasisInDCPO. : compact_basis := B ,, HB. - Coercion compact_basis_to_data + #[reversible] Coercion compact_basis_to_data (B : compact_basis) : dcpo_basis_data X := pr1 B. - Coercion compact_basis_to_laws + #[reversible] Coercion compact_basis_to_laws (B : compact_basis) : compact_basis_laws B := pr2 B. diff --git a/UniMath/OrderTheory/DCPOs/Core/Basics.v b/UniMath/OrderTheory/DCPOs/Core/Basics.v index ab79deecf5..12a6a46aa2 100644 --- a/UniMath/OrderTheory/DCPOs/Core/Basics.v +++ b/UniMath/OrderTheory/DCPOs/Core/Basics.v @@ -78,7 +78,7 @@ Section Upperbounds. : lub := x ,, Hx. - Coercion lub_to_el + #[reversible] Coercion lub_to_el (x : lub) : X := pr1 x. @@ -178,7 +178,7 @@ Proof. apply isaprop_directed_complete_poset. Qed. -Coercion dcpo_struct_to_PartialOrder +#[reversible] Coercion dcpo_struct_to_PartialOrder {X : hSet} (DX : dcpo_struct X) : PartialOrder X @@ -200,9 +200,9 @@ Definition dcpo : UU := ∑ (X : hSet), dcpo_struct X. -Coercion dcpo_to_hSet (X : dcpo) : hSet := pr1 X. +#[reversible] Coercion dcpo_to_hSet (X : dcpo) : hSet := pr1 X. -Coercion dcpo_to_PartialOrder (X : dcpo) : PartialOrder X := pr12 X. +#[reversible] Coercion dcpo_to_PartialOrder (X : dcpo) : PartialOrder X := pr12 X. Definition dcpo_order {X : dcpo} (x y : X) : hProp := pr12 X x y. @@ -364,13 +364,13 @@ Definition dcppo_struct : UU := ∑ (DX : dcpo_struct X), bottom_element DX. -Coercion dcppo_struct_to_dcpo_struct +#[reversible] Coercion dcppo_struct_to_dcpo_struct {X : hSet} (DX : dcppo_struct X) : dcpo_struct X := pr1 DX. -Coercion dcppo_to_pointed_PartialOrder +#[reversible] Coercion dcppo_to_pointed_PartialOrder {X : hSet} (DX : dcppo_struct X) : pointed_PartialOrder X @@ -391,7 +391,7 @@ Definition dcppo : UU := ∑ (X : hSet), dcppo_struct X. -Coercion dcppo_to_dcpo +#[reversible] Coercion dcppo_to_dcpo (X : dcppo) : dcpo := pr1 X ,, pr12 X. diff --git a/UniMath/OrderTheory/DCPOs/Core/DirectedSets.v b/UniMath/OrderTheory/DCPOs/Core/DirectedSets.v index 3580f41f70..7a258d6477 100644 --- a/UniMath/OrderTheory/DCPOs/Core/DirectedSets.v +++ b/UniMath/OrderTheory/DCPOs/Core/DirectedSets.v @@ -62,7 +62,7 @@ Definition directed_set (** 2. Accessors and builders *) -Coercion directed_set_dom +#[reversible] Coercion directed_set_dom {X : hSet} {PX : PartialOrder X} (D : directed_set PX) @@ -76,7 +76,7 @@ Definition directed_set_map : directed_set_dom D → X := pr12 D. -Coercion directed_set_map : directed_set >-> Funclass. +#[reversible] Coercion directed_set_map : directed_set >-> Funclass. Definition directed_set_is_directed {X : hSet} diff --git a/UniMath/OrderTheory/DCPOs/Core/ScottContinuous.v b/UniMath/OrderTheory/DCPOs/Core/ScottContinuous.v index ad448dbe96..c75884ccb6 100644 --- a/UniMath/OrderTheory/DCPOs/Core/ScottContinuous.v +++ b/UniMath/OrderTheory/DCPOs/Core/ScottContinuous.v @@ -58,7 +58,7 @@ Definition is_strict_scott_continuous × f (pointed_PartialOrder_to_point DX) = pointed_PartialOrder_to_point DY. -Coercion is_strict_scott_continuous_to_scott_continuous +#[reversible] Coercion is_strict_scott_continuous_to_scott_continuous {X Y : hSet} {DX : dcppo_struct X} {DY : dcppo_struct Y} @@ -366,7 +366,7 @@ Definition strict_scott_continuous_map : UU := ∑ (f : X → Y), is_strict_scott_continuous X Y f. -Coercion strict_scott_continuous_map_to_scott_continuous_map +#[reversible] Coercion strict_scott_continuous_map_to_scott_continuous_map {X Y : dcppo} (f : strict_scott_continuous_map X Y) : scott_continuous_map X Y @@ -382,7 +382,7 @@ Definition scott_continuous_map_to_fun : Y := pr1 f x. -Coercion scott_continuous_map_to_fun : scott_continuous_map >-> Funclass. +#[reversible] Coercion scott_continuous_map_to_fun : scott_continuous_map >-> Funclass. Proposition is_monotone_scott_continuous_map {X Y : dcpo} @@ -409,7 +409,7 @@ Proof. exact p. Qed. -Coercion scott_continuous_map_to_monotone +#[reversible] Coercion scott_continuous_map_to_monotone {X Y : dcpo} (f : scott_continuous_map X Y) : monotone_function X Y. @@ -474,7 +474,7 @@ Definition strict_scott_continuous_map_to_fun : Y := pr1 f x. -Coercion strict_scott_continuous_map_to_fun +#[reversible] Coercion strict_scott_continuous_map_to_fun : strict_scott_continuous_map >-> Funclass. Proposition eq_strict_scott_continuous_map diff --git a/UniMath/OrderTheory/DCPOs/Core/ScottTopology.v b/UniMath/OrderTheory/DCPOs/Core/ScottTopology.v index 94639af303..cd88c93bc0 100644 --- a/UniMath/OrderTheory/DCPOs/Core/ScottTopology.v +++ b/UniMath/OrderTheory/DCPOs/Core/ScottTopology.v @@ -88,9 +88,9 @@ Definition scott_open_set_to_pred : hProp := pr1 P x. -Coercion scott_open_set_to_pred : scott_open_set >-> Funclass. +#[reversible] Coercion scott_open_set_to_pred : scott_open_set >-> Funclass. -Coercion is_scott_open_scott_open_set +#[reversible] Coercion is_scott_open_scott_open_set {X : dcpo} (P : scott_open_set X) : is_scott_open P @@ -108,9 +108,9 @@ Definition scott_closed_set_to_pred : hProp := pr1 P x. -Coercion scott_closed_set_to_pred : scott_closed_set >-> Funclass. +#[reversible] Coercion scott_closed_set_to_pred : scott_closed_set >-> Funclass. -Coercion is_scott_closed_scott_closed_set +#[reversible] Coercion is_scott_closed_scott_closed_set {X : dcpo} (P : scott_closed_set X) : is_scott_closed P diff --git a/UniMath/OrderTheory/DCPOs/Elements/Maximal.v b/UniMath/OrderTheory/DCPOs/Elements/Maximal.v index f6200c63c9..3716749617 100644 --- a/UniMath/OrderTheory/DCPOs/Elements/Maximal.v +++ b/UniMath/OrderTheory/DCPOs/Elements/Maximal.v @@ -235,7 +235,7 @@ Definition strongly_maximal : hSet := (∑ (x : X), hProp_to_hSet (is_strongly_maximal x))%set. -Coercion element_of_strongly_maximal +#[reversible] Coercion element_of_strongly_maximal {X : dcpo} (x : strongly_maximal X) : X diff --git a/UniMath/OrderTheory/DCPOs/Examples/IdealCompletion.v b/UniMath/OrderTheory/DCPOs/Examples/IdealCompletion.v index 8179274963..8539e9a08a 100644 --- a/UniMath/OrderTheory/DCPOs/Examples/IdealCompletion.v +++ b/UniMath/OrderTheory/DCPOs/Examples/IdealCompletion.v @@ -55,7 +55,7 @@ Definition abstract_basis_data : UU := ∑ (X : UU), X → X → hProp. -Coercion type_of_abstract_basis_data +#[reversible] Coercion type_of_abstract_basis_data (B : abstract_basis_data) : UU := pr1 B. @@ -94,7 +94,7 @@ Definition make_abstract_basis : abstract_basis := B ,, HB. -Coercion abstract_basis_to_data +#[reversible] Coercion abstract_basis_to_data (B : abstract_basis) : abstract_basis_data := pr1 B. diff --git a/UniMath/OrderTheory/DCPOs/FixpointTheorems/Pataraia.v b/UniMath/OrderTheory/DCPOs/FixpointTheorems/Pataraia.v index 6b76f89957..5e52ce698a 100644 --- a/UniMath/OrderTheory/DCPOs/FixpointTheorems/Pataraia.v +++ b/UniMath/OrderTheory/DCPOs/FixpointTheorems/Pataraia.v @@ -56,7 +56,7 @@ Definition progressive_map : UU := ∑ (f : monotone_function X X), is_progressive f. -Coercion monotone_function_of_progressive_map +#[reversible] Coercion monotone_function_of_progressive_map {X : dcpo} (f : progressive_map X) : monotone_function X X diff --git a/UniMath/OrderTheory/Lattice/Boolean.v b/UniMath/OrderTheory/Lattice/Boolean.v index c146ff0416..3400391cb0 100644 --- a/UniMath/OrderTheory/Lattice/Boolean.v +++ b/UniMath/OrderTheory/Lattice/Boolean.v @@ -62,7 +62,7 @@ Section Accessors. End Accessors. -Coercion boolean_algebra_lattice : boolean_algebra >-> bounded_lattice. +#[reversible] Coercion boolean_algebra_lattice : boolean_algebra >-> bounded_lattice. (** Every Boolean algebra has eponentials (is a Heyting algebra). *) Section Heyting. diff --git a/UniMath/OrderTheory/Lattice/Bounded.v b/UniMath/OrderTheory/Lattice/Bounded.v index 1f6d6b57ab..90db32c09d 100644 --- a/UniMath/OrderTheory/Lattice/Bounded.v +++ b/UniMath/OrderTheory/Lattice/Bounded.v @@ -17,7 +17,7 @@ Definition make_bounded_lattice {X : hSet} {l : lattice X} {bot top : X} : bounded_latticeop l bot top → bounded_lattice X := λ bl, l,, bot,, top,, bl. Definition bounded_lattice_to_lattice X : bounded_lattice X → lattice X := pr1. -Coercion bounded_lattice_to_lattice : bounded_lattice >-> lattice. +#[reversible] Coercion bounded_lattice_to_lattice : bounded_lattice >-> lattice. Definition Lbot {X : hSet} (is : bounded_lattice X) : X := pr1 (pr2 is). Definition Ltop {X : hSet} (is : bounded_lattice X) : X := pr1 (pr2 (pr2 is)). diff --git a/UniMath/OrderTheory/Lattice/Complement.v b/UniMath/OrderTheory/Lattice/Complement.v index 785f2e99cb..ee93f4ce1a 100644 --- a/UniMath/OrderTheory/Lattice/Complement.v +++ b/UniMath/OrderTheory/Lattice/Complement.v @@ -21,7 +21,7 @@ Section Def. ∑ y : X, (x ⊕ y = ⊤) × (x ⊗ y = ⊥). Definition complement_to_element {x : X} (y : complement x) : X := pr1 y. - Coercion complement_to_element : complement >-> pr1hSet. + #[reversible] Coercion complement_to_element : complement >-> pr1hSet. Definition complement_top_axiom (x : X) (y : complement x) : x ⊕ y = ⊤ := dirprod_pr1 (pr2 y). diff --git a/UniMath/OrderTheory/Lattice/Heyting.v b/UniMath/OrderTheory/Lattice/Heyting.v index c4a12ddfe0..298477f0cd 100644 --- a/UniMath/OrderTheory/Lattice/Heyting.v +++ b/UniMath/OrderTheory/Lattice/Heyting.v @@ -22,7 +22,7 @@ Section Def. exponential := tpair _ exponential_map prop. Definition exponential_map (exp : exponential) : X -> X -> X := pr1 exp. - Coercion exponential_map : exponential >-> Funclass. + #[reversible] Coercion exponential_map : exponential >-> Funclass. Definition exponential_is_exponential (exp : exponential) : ∏ x y z : X, z ≤ (exponential_map exp x y) <-> (z ∧ x) ≤ y := pr2 exp. diff --git a/UniMath/OrderTheory/Lattice/Lattice.v b/UniMath/OrderTheory/Lattice/Lattice.v index e2c1a17a4d..95b3fdf31d 100644 --- a/UniMath/OrderTheory/Lattice/Lattice.v +++ b/UniMath/OrderTheory/Lattice/Lattice.v @@ -315,7 +315,7 @@ Definition latticewithgt (X : hSet) := Definition lattice_latticewithgt {X : hSet} : latticewithgt X → lattice X := pr1. -Coercion lattice_latticewithgt : latticewithgt >-> lattice. +#[reversible] Coercion lattice_latticewithgt : latticewithgt >-> lattice. (** [Lgt] *) @@ -397,7 +397,7 @@ Definition latticedec (X : hSet) := ∑ lat : lattice X, istotal (Lle lat) × (isdecrel (Lle lat)). Definition lattice_latticedec {X : hSet} (lat : latticedec X) : lattice X := pr1 lat. -Coercion lattice_latticedec : latticedec >-> lattice. +#[reversible] Coercion lattice_latticedec : latticedec >-> lattice. Definition istotal_latticedec {X : hSet} (lat : latticedec X) : istotal (Lle lat) := pr1 (pr2 lat). Definition isdecrel_latticedec {X : hSet} (lat : latticedec X) : isdecrel (Lle lat) := diff --git a/UniMath/OrderTheory/Posets/MonotoneFunctions.v b/UniMath/OrderTheory/Posets/MonotoneFunctions.v index f7dbf47135..3af4bee5be 100644 --- a/UniMath/OrderTheory/Posets/MonotoneFunctions.v +++ b/UniMath/OrderTheory/Posets/MonotoneFunctions.v @@ -53,7 +53,7 @@ Definition monotone_function_to_function : X₁ → X₂ := pr1 f. -Coercion monotone_function_to_function : monotone_function >-> Funclass. +#[reversible] Coercion monotone_function_to_function : monotone_function >-> Funclass. Proposition eq_monotone_function {X₁ X₂ : hSet} diff --git a/UniMath/OrderTheory/Posets/PointedPosets.v b/UniMath/OrderTheory/Posets/PointedPosets.v index bd2a2a9829..72b247a924 100644 --- a/UniMath/OrderTheory/Posets/PointedPosets.v +++ b/UniMath/OrderTheory/Posets/PointedPosets.v @@ -70,7 +70,7 @@ Definition make_pointed_PartialOrder : pointed_PartialOrder X := RX ,, x ,, p. -Coercion pointed_PartialOrder_to_Partial_order +#[reversible] Coercion pointed_PartialOrder_to_Partial_order {X : hSet} (RX : pointed_PartialOrder X) : PartialOrder X @@ -147,7 +147,7 @@ Definition is_strict_and_monotone : UU := is_monotone RX RY f × f ⊥_{RX} = ⊥_{RY}. -Coercion is_strict_and_monotone_function_to_is_monotone +#[reversible] Coercion is_strict_and_monotone_function_to_is_monotone {X Y : hSet} {RX : pointed_PartialOrder X} {RY : pointed_PartialOrder Y} @@ -209,7 +209,7 @@ Definition strict_and_monotone_function_to_fun : X → Y := pr1 f. -Coercion strict_and_monotone_function_to_fun +#[reversible] Coercion strict_and_monotone_function_to_fun : strict_and_monotone_function >-> Funclass. Proposition eq_strict_and_monotone_function diff --git a/UniMath/PAdics/lemmas.v b/UniMath/PAdics/lemmas.v index 7b07e9834a..aeda467649 100644 --- a/UniMath/PAdics/lemmas.v +++ b/UniMath/PAdics/lemmas.v @@ -793,7 +793,7 @@ Definition make_acommring := tpair ( P := fun X : commring => Definition acommringconstr := make_acommring. Definition acommringtocommring : acommring -> commring := @pr1 _ _. -Coercion acommringtocommring : acommring >-> commring. +#[reversible] Coercion acommringtocommring : acommring >-> commring. Definition acommringapartrel ( X : acommring ) : hrel (pr1 X) := pr1 ( pr1 ( pr2 X ) ). @@ -826,7 +826,7 @@ Definition make_aintdom := tpair ( P := fun A : acommring => Definition aintdomconstr := make_aintdom. Definition pr1aintdom : aintdom -> acommring := @pr1 _ _. -Coercion pr1aintdom : aintdom >-> acommring. +#[reversible] Coercion pr1aintdom : aintdom >-> acommring. Definition aintdomazerosubmonoid ( A : aintdom ) : @subabmonoid ( ringmultabmonoid A ). Proof. @@ -845,7 +845,7 @@ Definition isaafield ( A : acommring ) := Definition afld := ∑ A : acommring, isaafield A. Definition make_afld ( A : acommring ) ( is : isaafield A ) : afld := tpair A is . Definition pr1afld : afld -> acommring := @pr1 _ _ . -Coercion pr1afld : afld >-> acommring. +#[reversible] Coercion pr1afld : afld >-> acommring. Lemma afldinvertibletoazero ( A : afld ) ( a : A ) ( p : multinvpair A a ) : a # 0. Proof. diff --git a/UniMath/RealNumbers/Sets.v b/UniMath/RealNumbers/Sets.v index 30dec4dc59..28ac38dac1 100644 --- a/UniMath/RealNumbers/Sets.v +++ b/UniMath/RealNumbers/Sets.v @@ -40,7 +40,7 @@ Definition EffectivelyOrderedSet := Definition pairEffectivelyOrderedSet {X : hSet} (is : EffectiveOrder X) : EffectivelyOrderedSet := tpair _ X is. Definition pr1EffectivelyOrderedSet : EffectivelyOrderedSet → hSet := pr1. -Coercion pr1EffectivelyOrderedSet : EffectivelyOrderedSet >-> hSet. +#[reversible] Coercion pr1EffectivelyOrderedSet : EffectivelyOrderedSet >-> hSet. Definition EOle {X : EffectivelyOrderedSet} : po X := let R := pr2 X in @@ -272,4 +272,4 @@ Definition isCompleteSpace (X : PreorderedSet) := Definition CompleteSpace := ∑ X : PreorderedSet, isCompleteSpace X. Definition pr1CompleteSpace : CompleteSpace → UU := pr1. -Coercion pr1CompleteSpace : CompleteSpace >-> UU. +#[reversible] Coercion pr1CompleteSpace : CompleteSpace >-> UU. diff --git a/UniMath/Semantics/EnrichedEffectCalculus/EECModel.v b/UniMath/Semantics/EnrichedEffectCalculus/EECModel.v index db24ad653b..3f4d96898a 100644 --- a/UniMath/Semantics/EnrichedEffectCalculus/EECModel.v +++ b/UniMath/Semantics/EnrichedEffectCalculus/EECModel.v @@ -103,7 +103,7 @@ Definition eec_plus_model × BinCoproducts (pr1 M). -Coercion eec_plus_model_to_eec_model +#[reversible] Coercion eec_plus_model_to_eec_model (E : eec_plus_model) : eec_model := pr1 E. diff --git a/UniMath/Semantics/LinearLogic/LafontCategory.v b/UniMath/Semantics/LinearLogic/LafontCategory.v index 4a95a49fab..9e05d32e85 100644 --- a/UniMath/Semantics/LinearLogic/LafontCategory.v +++ b/UniMath/Semantics/LinearLogic/LafontCategory.v @@ -43,7 +43,7 @@ Definition lafont_category := ∑ (V : sym_mon_closed_cat), is_left_adjoint (underlying_commutative_comonoid V). -Coercion lafont_category_to_sym_mon_closed_cat +#[reversible] Coercion lafont_category_to_sym_mon_closed_cat (V : lafont_category) : sym_mon_closed_cat := pr1 V. diff --git a/UniMath/Semantics/LinearLogic/LinearCategory.v b/UniMath/Semantics/LinearLogic/LinearCategory.v index cdd267bfe8..c2f4abc2bf 100644 --- a/UniMath/Semantics/LinearLogic/LinearCategory.v +++ b/UniMath/Semantics/LinearLogic/LinearCategory.v @@ -54,7 +54,7 @@ Definition make_linear_category_data : linear_category_data := 𝕃 ,, bang ,, δ ,, ε. -Coercion linear_category_data_to_sym_mon_closed_cat +#[reversible] Coercion linear_category_data_to_sym_mon_closed_cat (𝕃 : linear_category_data) : sym_mon_closed_cat := pr1 𝕃. @@ -203,7 +203,7 @@ Definition make_linear_category : linear_category := 𝕃 ,, H. -Coercion linear_category_to_data +#[reversible] Coercion linear_category_to_data (𝕃 : linear_category) : linear_category_data := pr1 𝕃. diff --git a/UniMath/Semantics/LinearLogic/LinearNonLinear.v b/UniMath/Semantics/LinearLogic/LinearNonLinear.v index 94b48ce43d..e5fdd95ed4 100644 --- a/UniMath/Semantics/LinearLogic/LinearNonLinear.v +++ b/UniMath/Semantics/LinearLogic/LinearNonLinear.v @@ -48,7 +48,7 @@ Definition linear_non_linear_model (** 2. Accessors and builders *) -Coercion linear_non_linear_model_to_linear +#[reversible] Coercion linear_non_linear_model_to_linear (𝕃 : linear_non_linear_model) : sym_mon_closed_cat := pr1 𝕃. diff --git a/UniMath/SubstitutionSystems/ActionBasedStrengthOnHomsInBicat.v b/UniMath/SubstitutionSystems/ActionBasedStrengthOnHomsInBicat.v index 6e5fd7ef14..a4cc903cc9 100644 --- a/UniMath/SubstitutionSystems/ActionBasedStrengthOnHomsInBicat.v +++ b/UniMath/SubstitutionSystems/ActionBasedStrengthOnHomsInBicat.v @@ -380,7 +380,7 @@ Section IndividualFunctorsWithABStrength. (ab_strength_domain_action(C:=bicat_of_cats) C D' forget) (ab_strength_target_action(C:=bicat_of_cats) C D forget) H := ab_str. - Coercion ab_strength_for_functors_and_pointed_functors_to_actionbased_strength : + #[reversible] Coercion ab_strength_for_functors_and_pointed_functors_to_actionbased_strength : ab_strength_for_functors_and_pointed_functors >-> actionbased_strength. Context (ab_str : ab_strength_for_functors_and_pointed_functors). diff --git a/UniMath/SubstitutionSystems/GeneralizedSubstitutionSystems.v b/UniMath/SubstitutionSystems/GeneralizedSubstitutionSystems.v index ba60cd40eb..864e6877d8 100644 --- a/UniMath/SubstitutionSystems/GeneralizedSubstitutionSystems.v +++ b/UniMath/SubstitutionSystems/GeneralizedSubstitutionSystems.v @@ -203,7 +203,7 @@ Section hss. End TheProperty. Definition mhss : UU := ∑ (t : V) (η : I_{Mon_V} --> t) (τ : H t --> t), mbracket t η τ. - Coercion carriermhss (t : mhss) : V := pr1 t. + #[reversible] Coercion carriermhss (t : mhss) : V := pr1 t. Section FixAMhss. diff --git a/UniMath/SubstitutionSystems/LiftingInitial.v b/UniMath/SubstitutionSystems/LiftingInitial.v index d37e6d49f0..28b60dbbf1 100644 --- a/UniMath/SubstitutionSystems/LiftingInitial.v +++ b/UniMath/SubstitutionSystems/LiftingInitial.v @@ -56,7 +56,7 @@ Local Open Scope subsys. Local Open Scope cat. -Local Coercion alg_carrier : algebra_ob >-> ob. +Local #[reversible] Coercion alg_carrier : algebra_ob >-> ob. Section category_Algebra. diff --git a/UniMath/SubstitutionSystems/LiftingInitial_alt.v b/UniMath/SubstitutionSystems/LiftingInitial_alt.v index 18f9533410..28b951f203 100644 --- a/UniMath/SubstitutionSystems/LiftingInitial_alt.v +++ b/UniMath/SubstitutionSystems/LiftingInitial_alt.v @@ -46,7 +46,7 @@ Local Open Scope subsys. Local Open Scope cat. -Local Coercion alg_carrier : algebra_ob >-> ob. +Local #[reversible] Coercion alg_carrier : algebra_ob >-> ob. Section category_Algebra. diff --git a/UniMath/SubstitutionSystems/SignatureCategory.v b/UniMath/SubstitutionSystems/SignatureCategory.v index 0790365e57..62d3f0510f 100644 --- a/UniMath/SubstitutionSystems/SignatureCategory.v +++ b/UniMath/SubstitutionSystems/SignatureCategory.v @@ -143,7 +143,7 @@ Qed. Definition Signature_category_ob_to_functor_data (sig : Signature_category) : functor_data [C, D', hsD'] [C, D, hsD] := pr1 (pr1 sig). - Coercion Signature_category_ob_to_functor_data : Signature_category >-> functor_data. + #[reversible] Coercion Signature_category_ob_to_functor_data : Signature_category >-> functor_data. *) Definition SignatureMor : Signature C D D' → Signature C D D' → UU. @@ -163,7 +163,7 @@ Qed. intro f. exact (pr1 f). Defined. - Coercion SignatureMor_to_nat_trans : SignatureMor >-> nat_trans. + #[reversible] Coercion SignatureMor_to_nat_trans : SignatureMor >-> nat_trans. Lemma SignatureMor_eq (Ht Ht' : Signature C D D') (f g : SignatureMor Ht Ht') : (pr1 f: pr1 Ht ⟹ pr1 Ht') = (pr1 g: pr1 Ht ⟹ pr1 Ht') -> f = g. diff --git a/UniMath/SubstitutionSystems/Signatures.v b/UniMath/SubstitutionSystems/Signatures.v index 85ebc89302..ac920e1eca 100644 --- a/UniMath/SubstitutionSystems/Signatures.v +++ b/UniMath/SubstitutionSystems/Signatures.v @@ -424,18 +424,18 @@ Definition PrestrengthForSignature : UU := θ_source ⟹ θ_target. Definition nat_trans_data_from_PrestrengthForSignature_funclass (θ: PrestrengthForSignature) : ∏ x, θ_source x --> θ_target x := pr1 θ. -Coercion nat_trans_data_from_PrestrengthForSignature_funclass: PrestrengthForSignature >-> Funclass. +#[reversible] Coercion nat_trans_data_from_PrestrengthForSignature_funclass: PrestrengthForSignature >-> Funclass. Definition nat_trans_data_from_PrestrengthForSignatureAtPoint_funclass (Z: Ptd)(θ: PrestrengthForSignatureAtPoint Z) : ∏ x, functor_fix_snd_arg [C, D'] Ptd [C, D] θ_source Z x --> functor_fix_snd_arg [C, D'] Ptd [C, D] θ_target Z x := pr1 θ. -Coercion nat_trans_data_from_PrestrengthForSignatureAtPoint_funclass: PrestrengthForSignatureAtPoint >-> Funclass. +#[reversible] Coercion nat_trans_data_from_PrestrengthForSignatureAtPoint_funclass: PrestrengthForSignatureAtPoint >-> Funclass. Definition StrengthForSignature : UU := ∑ θ : PrestrengthForSignature, θ_Strength1_int θ × θ_Strength2_int θ. -Coercion Strength_Prestrength (θwithlaws: StrengthForSignature) : PrestrengthForSignature := pr1 θwithlaws. +#[reversible] Coercion Strength_Prestrength (θwithlaws: StrengthForSignature) : PrestrengthForSignature := pr1 θwithlaws. End about_signatures. @@ -446,9 +446,9 @@ Definition Presignature : UU Definition Signature : UU := ∑ H : [C, D'] ⟶ [C, D] , StrengthForSignature H. -Coercion Presignature_Functor (S : Presignature) : functor _ _ := pr1 S. -Coercion Signature_Functor (S : Signature) : functor _ _ := pr1 S. -Coercion Presignature_Signature (S : Signature) : Presignature := Signature_Functor S ,, Strength_Prestrength _ (pr2 S). +#[reversible] Coercion Presignature_Functor (S : Presignature) : functor _ _ := pr1 S. +#[reversible] Coercion Signature_Functor (S : Signature) : functor _ _ := pr1 S. +#[reversible] Coercion Presignature_Signature (S : Signature) : Presignature := Signature_Functor S ,, Strength_Prestrength _ (pr2 S). Definition theta (H : Presignature) : PrestrengthForSignature H := pr2 H. diff --git a/UniMath/SubstitutionSystems/SimplifiedHSS/LiftingInitial.v b/UniMath/SubstitutionSystems/SimplifiedHSS/LiftingInitial.v index fa472f394c..0532d05cbc 100644 --- a/UniMath/SubstitutionSystems/SimplifiedHSS/LiftingInitial.v +++ b/UniMath/SubstitutionSystems/SimplifiedHSS/LiftingInitial.v @@ -61,7 +61,7 @@ Local Open Scope subsys. Local Open Scope cat. -Local Coercion alg_carrier : algebra_ob >-> ob. +Local #[reversible] Coercion alg_carrier : algebra_ob >-> ob. Section category_Algebra. diff --git a/UniMath/SubstitutionSystems/SimplifiedHSS/LiftingInitial_alt.v b/UniMath/SubstitutionSystems/SimplifiedHSS/LiftingInitial_alt.v index 23c3e72579..751576ae95 100644 --- a/UniMath/SubstitutionSystems/SimplifiedHSS/LiftingInitial_alt.v +++ b/UniMath/SubstitutionSystems/SimplifiedHSS/LiftingInitial_alt.v @@ -51,7 +51,7 @@ Local Open Scope subsys. Local Open Scope cat. -Local Coercion alg_carrier : algebra_ob >-> ob. +Local #[reversible] Coercion alg_carrier : algebra_ob >-> ob. Section category_Algebra. diff --git a/UniMath/SubstitutionSystems/SimplifiedHSS/SubstitutionSystems.v b/UniMath/SubstitutionSystems/SimplifiedHSS/SubstitutionSystems.v index 1f5d764a3c..ecec603611 100644 --- a/UniMath/SubstitutionSystems/SimplifiedHSS/SubstitutionSystems.v +++ b/UniMath/SubstitutionSystems/SimplifiedHSS/SubstitutionSystems.v @@ -93,7 +93,7 @@ Defined. Local Notation τ := tau_from_alg. (* -Coercion functor_from_algebra_ob (X : algebra_ob _ Id_H) : functor C C := pr1 X. +#[reversible] Coercion functor_from_algebra_ob (X : algebra_ob _ Id_H) : functor C C := pr1 X. *) Local Notation "f ⊕ g" := (BinCoproductOfArrows _ (CPEndC _ _ ) (CPEndC _ _ ) f g). @@ -275,7 +275,7 @@ variables and behaves homomorphically elsewhere, as instructed by the pre-streng Definition heterogeneous_substitution : UU := ∑ (T: algebra_ob Id_H), ∑ (θ : @PrestrengthForSignatureAtPoint C C C H (ptd_from_alg T)), bracket_at θ T (identity _). -Coercion alg_from_hetsubst (T : heterogeneous_substitution) : algebra_ob Id_H := pr1 T. +#[reversible] Coercion alg_from_hetsubst (T : heterogeneous_substitution) : algebra_ob Id_H := pr1 T. Definition θ_from_hetsubst (T : heterogeneous_substitution) : @PrestrengthForSignatureAtPoint C C C H (ptd_from_alg T) := pr1 (pr2 T). @@ -339,7 +339,7 @@ Arguments bracket_parts {_} _ _ . (** the notion of a heterogeneous substitution system that asks for more operations to uniquely exist *) Definition hss : UU := ∑ (T: algebra_ob Id_H), bracket H θ T. -Coercion hetsubst_from_hss (T : hss) : heterogeneous_substitution H. +#[reversible] Coercion hetsubst_from_hss (T : hss) : heterogeneous_substitution H. Proof. exists (pr1 T). use tpair. @@ -689,7 +689,7 @@ Definition ishssMor {T T' : hss} (β : algebra_mor _ T T') : UU Definition hssMor (T T' : hss) : UU := ∑ β : algebra_mor _ T T', ishssMor β. -Coercion ptd_mor_from_hssMor (T T' : hss) (β : hssMor T T') : algebra_mor _ T T' := pr1 β. +#[reversible] Coercion ptd_mor_from_hssMor (T T' : hss) (β : hssMor T T') : algebra_mor _ T T' := pr1 β. (* Definition isAlgMor_hssMor {T T' : hss} (β : hssMor T T') diff --git a/UniMath/SubstitutionSystems/SubstitutionSystems.v b/UniMath/SubstitutionSystems/SubstitutionSystems.v index 378ec11377..a53f6acd24 100644 --- a/UniMath/SubstitutionSystems/SubstitutionSystems.v +++ b/UniMath/SubstitutionSystems/SubstitutionSystems.v @@ -90,7 +90,7 @@ Defined. Local Notation τ := tau_from_alg. (* -Coercion functor_from_algebra_ob (X : algebra_ob _ Id_H) : functor C C := pr1 X. +#[reversible] Coercion functor_from_algebra_ob (X : algebra_ob _ Id_H) : functor C C := pr1 X. *) Local Notation "f ⊕ g" := (BinCoproductOfArrows _ (CPEndC _ _ ) (CPEndC _ _ ) f g). @@ -272,7 +272,7 @@ variables and behaves homomorphically elsewhere, as instructed by the pre-streng Definition heterogeneous_substitution : UU := ∑ (T: algebra_ob Id_H), ∑ (θ : @PrestrengthForSignatureAtPoint C C C H (ptd_from_alg T)), bracket_at θ T (identity _). -Coercion alg_from_hetsubst (T : heterogeneous_substitution) : algebra_ob Id_H := pr1 T. +#[reversible] Coercion alg_from_hetsubst (T : heterogeneous_substitution) : algebra_ob Id_H := pr1 T. Definition θ_from_hetsubst (T : heterogeneous_substitution) : @PrestrengthForSignatureAtPoint C C C H (ptd_from_alg T) := pr1 (pr2 T). @@ -336,7 +336,7 @@ Arguments bracket_parts {_} _ _ . (** the notion of a heterogeneous substitution system that asks for more operations to uniquely exist *) Definition hss : UU := ∑ (T: algebra_ob Id_H), bracket H θ T. -Coercion hetsubst_from_hss (T : hss) : heterogeneous_substitution H := pr1 T,, (nat_trans_fix_snd_arg _ _ _ _ _ θ (ptd_from_alg (pr1 T)) ,, pr2 T _ (identity _)). +#[reversible] Coercion hetsubst_from_hss (T : hss) : heterogeneous_substitution H := pr1 T,, (nat_trans_fix_snd_arg _ _ _ _ _ θ (ptd_from_alg (pr1 T)) ,, pr2 T _ (identity _)). Definition fbracket (T : hss) {Z : Ptd} (f : Z --> ptd_from_alg T) @@ -680,7 +680,7 @@ Definition ishssMor {T T' : hss} (β : algebra_mor _ T T') : UU Definition hssMor (T T' : hss) : UU := ∑ β : algebra_mor _ T T', ishssMor β. -Coercion ptd_mor_from_hssMor (T T' : hss) (β : hssMor T T') : algebra_mor _ T T' := pr1 β. +#[reversible] Coercion ptd_mor_from_hssMor (T T' : hss) (β : hssMor T T') : algebra_mor _ T T' := pr1 β. (* Definition isAlgMor_hssMor {T T' : hss} (β : hssMor T T') diff --git a/UniMath/Topology/Filters.v b/UniMath/Topology/Filters.v index 04674fb96c..9cd4de7cee 100644 --- a/UniMath/Topology/Filters.v +++ b/UniMath/Topology/Filters.v @@ -109,14 +109,14 @@ Definition make_PreFilter {X : UU} (F : (X → hProp) → hProp) F,, Himpl,, isfilter_finite_intersection_carac F Htrue Hand. Definition pr1PreFilter (X : UU) (F : PreFilter X) : (X → hProp) → hProp := pr1 F. -Coercion pr1PreFilter : PreFilter >-> Funclass. +#[reversible] Coercion pr1PreFilter : PreFilter >-> Funclass. Definition isFilter {X : UU} (F : (X → hProp) → hProp) := isPreFilter F × isfilter_notempty F. Definition Filter (X : UU) := ∑ F : (X → hProp) → hProp, isFilter F. Definition pr1Filter (X : UU) (F : Filter X) : PreFilter X := pr1 F,, pr1 (pr2 F). -Coercion pr1Filter : Filter >-> PreFilter. +#[reversible] Coercion pr1Filter : Filter >-> PreFilter. Definition make_Filter {X : UU} (F : (X → hProp) → hProp) (Himp : isfilter_imply F) (Htrue : isfilter_htrue F) @@ -1245,7 +1245,7 @@ End base. Definition BaseOfPreFilter (X : UU) := ∑ (base : (X → hProp) → hProp), isBaseOfPreFilter base. Definition pr1BaseOfPreFilter {X : UU} : BaseOfPreFilter X → ((X → hProp) → hProp) := pr1. -Coercion pr1BaseOfPreFilter : BaseOfPreFilter >-> Funclass. +#[reversible] Coercion pr1BaseOfPreFilter : BaseOfPreFilter >-> Funclass. Definition BaseOfFilter (X : UU) := ∑ (base : (X → hProp) → hProp), isBaseOfFilter base. @@ -1257,7 +1257,7 @@ Proof. - apply (pr1 (pr2 base)). - apply (pr1 (pr2 (pr2 base))). Defined. -Coercion pr1BaseOfFilter : BaseOfFilter >-> BaseOfPreFilter. +#[reversible] Coercion pr1BaseOfFilter : BaseOfFilter >-> BaseOfPreFilter. Lemma BaseOfPreFilter_and {X : UU} (base : BaseOfPreFilter X) : ∏ A B : X → hProp, base A → base B → ∃ C : X → hProp, base C × (∏ x, C x → A x ∧ B x). diff --git a/UniMath/Topology/Topology.v b/UniMath/Topology/Topology.v index c054db6d9e..33c9a5afae 100644 --- a/UniMath/Topology/Topology.v +++ b/UniMath/Topology/Topology.v @@ -106,13 +106,13 @@ Definition make_TopologicalSpace (X : hSet) (O : (X → hProp) → hProp) (X,,O,,is,,(isSetOfOpen_finite_intersection_carac _ is0 is1)). Definition pr1TopologicatSpace : TopologicalSpace → hSet := pr1. -Coercion pr1TopologicatSpace : TopologicalSpace >-> hSet. +#[reversible] Coercion pr1TopologicatSpace : TopologicalSpace >-> hSet. Definition isOpen {T : TopologicalSpace} : (T → hProp) → hProp := pr1 (pr2 T). Definition Open {T : TopologicalSpace} := ∑ O : T → hProp, isOpen O. Definition pr1Open {T : TopologicalSpace} : Open → (T → hProp) := pr1. -Coercion pr1Open : Open >-> Funclass. +#[reversible] Coercion pr1Open : Open >-> Funclass. Section Topology_pty. @@ -333,7 +333,7 @@ Definition base_of_neighborhood {T : TopologicalSpace} (x : T) := ∑ (B : (T → hProp) → hProp), is_base_of_neighborhood x B. Definition pr1base_of_neighborhood {T : TopologicalSpace} (x : T) : base_of_neighborhood x → ((T → hProp) → hProp) := pr1. -Coercion pr1base_of_neighborhood : base_of_neighborhood >-> Funclass. +#[reversible] Coercion pr1base_of_neighborhood : base_of_neighborhood >-> Funclass. Section base_default.