@@ -27,6 +27,8 @@ From HoTT Require Import WildCat.Core
2727 GpdHom ==>
2828 CRelationClasses.flip CRelationClasses.arrow) GpdHom.
2929Proof .
30+ (* Add the next line to the start of any proof to see what it means: *)
31+ unfold "==>", CMorphisms.Proper, CRelationClasses.arrow, CRelationClasses.flip in *.
3032 intros x y eq_xy a b eq_ab eq_yb.
3133 exact (transitivity eq_xy (transitivity eq_yb
3234 (symmetry _ _ eq_ab))).
4850 exact (symmetry _ _ eq_xy).
4951Defined .
5052
51- (** forall a : A, x $== y -> a $== x -> a $== y *)
53+ (** forall a x y : A, x $== y -> a $== x -> a $== y *)
5254#[export] Instance IsProper_GpdHom_to_a {A : Type } `{Is0Gpd A}
5355 {a : A}
5456 : CMorphisms.Proper
5961 by transitivity x.
6062Defined .
6163
62- (** forall a : A, x $== y -> a $== y -> a $== x *)
64+ (** forall a x y : A, x $== y -> a $== y -> a $== x *)
6365#[export] Instance IsProper_GpdHom_from_a {A : Type } `{Is0Gpd A}
6466 {a : A}
6567 : CMorphisms.Proper
@@ -72,6 +74,7 @@ Defined.
7274
7375Open Scope signatureT_scope.
7476
77+ (** If [R] is symmetric and [R x y -> R' (f x) (f y)], then [R y x -> R' (f x) (f y)]. *)
7578#[export] Instance symmetry_flip {A B : Type } {f : A -> B}
7679 {R : Relation A} {R' : Relation B} `{Symmetric _ R}
7780 (H0 : CMorphisms.Proper (R ++> R') f)
8184 apply H0. symmetry. exact Rba.
8285Defined .
8386
87+ (** If [R'] is symmetric and [R x y -> R' x' y' -> R'' (f x x') (f y y')], then [R x y -> R' y' x' -> R'' (f x x') (f y y')]. *)
8488#[export] Instance symmetric_flip_snd {A B C : Type } {R : Relation A}
8589 {R' : Relation B} {R'' : Relation C} `{Symmetric _ R'}
8690 (f : A -> B -> C) (H1 : CMorphisms.Proper (R ++> R' ++> R'') f)
@@ -116,7 +120,7 @@ Proof.
116120 intros a b eq_ab; apply H2; exact eq_ab.
117121Defined .
118122
119- #[export] Instance gpd_hom_is_proper1 {A : Type } `{Is0Gpd A}
123+ #[export] Instance IsProper_Hom {A : Type } `{Is0Gpd A}
120124 : CMorphisms.Proper
121125 (Hom ==> Hom ==> CRelationClasses.arrow) Hom.
122126Proof .
0 commit comments