You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: theories/WildCat/Induced.v
+25-29
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,10 @@ Require Import WildCat.Equiv.
10
10
11
11
This needs to be separate from Core because of HasEquivs usage. We don't make these definitions Global Instances because we only want to apply them manually, but we make them Local Instances so that subsequent ones can pick up the previous ones automatically. *)
12
12
13
+
(** In most of the proofs, we only want to use [intro] on variables of type [A], so this will be handy. *)
14
+
Ltac intros_of_type A :=
15
+
repeat match goal with |- forall (a : A), _ => intro a end.
16
+
13
17
Section Induced_category.
14
18
Context {A B : Type} (f : A -> B).
15
19
@@ -22,60 +26,52 @@ Section Induced_category.
22
26
23
27
LocalInstance is01cat_induced `{Is01Cat B} : Is01Cat A.
24
28
Proof.
25
-
nrapply Build_Is01Cat.
26
-
+ intro a; cbn.
27
-
exact (Id (f a)).
28
-
+ intros a b c; cbn. apply cat_comp.
29
+
nrapply Build_Is01Cat; intros_of_type A; cbn.
30
+
+ apply Id.
31
+
+ apply cat_comp.
29
32
Defined.
30
33
31
34
LocalInstance is0gpd_induced `{Is0Gpd B} : Is0Gpd A.
32
35
Proof.
33
-
nrapply Build_Is0Gpd.
34
-
intros a b; cbn. apply gpd_rev.
36
+
nrapply Build_Is0Gpd; intros_of_type A; cbn.
37
+
apply gpd_rev.
35
38
Defined.
36
39
37
40
(** The structure map along which we induce the category structure becomes a functor with respect to the induced structure. *)
38
41
LocalInstance is0functor_induced `{IsGraph B} : Is0Functor f.
39
42
Proof.
40
-
nrapply Build_Is0Functor.
41
-
intros a b; cbn. exact idmap.
43
+
nrapply Build_Is0Functor; intros_of_type A; cbn.
44
+
exact idmap.
42
45
Defined.
43
46
44
47
LocalInstance is2graph_induced `{Is2Graph B} : Is2Graph A.
45
48
Proof.
46
-
intros a b; cbn. apply isgraph_hom.
49
+
constructor; cbn. apply isgraph_hom.
47
50
Defined.
48
51
49
52
LocalInstance is1cat_induced `{Is1Cat B} : Is1Cat A.
50
53
Proof.
51
-
snrapply Build_Is1Cat; cbn.
52
-
+ intros a b.
53
-
rapply is01cat_hom.
54
-
+ intros a b.
55
-
nrapply is0gpd_hom.
56
-
+ intros a b c.
57
-
rapply is0functor_postcomp.
58
-
+ intros a b c.
59
-
rapply is0functor_precomp.
60
-
+ intros a b c d.
61
-
nrapply cat_assoc.
62
-
+ intros a b.
63
-
nrapply cat_idl.
64
-
+ intros a b.
65
-
nrapply cat_idr.
54
+
snrapply Build_Is1Cat; intros_of_type A; cbn.
55
+
+ rapply is01cat_hom.
56
+
+ nrapply is0gpd_hom.
57
+
+ rapply is0functor_postcomp.
58
+
+ rapply is0functor_precomp.
59
+
+ rapply cat_assoc.
60
+
+ rapply cat_idl.
61
+
+ rapply cat_idr.
66
62
Defined.
67
63
68
64
LocalInstance is1functor_induced `{Is1Cat B} : Is1Functor f.
69
65
Proof.
70
-
srapply Build_Is1Functor; cbn.
71
-
+ intros a b g h. exact idmap.
72
-
+ intros a. exact (Id _).
73
-
+ intros a b c g h. exact (Id _).
66
+
srapply Build_Is1Functor; intros_of_type A; cbn.
67
+
+ intros g h. exact idmap.
68
+
+ exact (Id _).
69
+
+ intros g h. exact (Id _).
74
70
Defined.
75
71
76
72
Instance hasmorext_induced `{HasMorExt B} : HasMorExt A.
77
73
Proof.
78
-
constructor. intros a b; cbn. rapply isequiv_Htpy_path.
0 commit comments