@@ -18,38 +18,38 @@ variable {X : C}
18
18
19
19
namespace category_theory.functor
20
20
21
- @[simps] def to_cocone (F : J ⥤ over X) : cocone (F ⋙ over.forget) :=
21
+ @[simps] def to_cocone (F : J ⥤ over X) : cocone (F ⋙ over.forget X ) :=
22
22
{ X := X,
23
23
ι := { app := λ j, (F.obj j).hom } }
24
24
25
- @[simps] def to_cone (F : J ⥤ under X) : cone (F ⋙ under.forget) :=
25
+ @[simps] def to_cone (F : J ⥤ under X) : cone (F ⋙ under.forget X ) :=
26
26
{ X := X,
27
27
π := { app := λ j, (F.obj j).hom } }
28
28
29
29
end category_theory.functor
30
30
31
31
namespace category_theory.over
32
32
33
- @[simps] def colimit (F : J ⥤ over X) [has_colimit (F ⋙ forget)] : cocone F :=
34
- { X := mk $ colimit.desc (F ⋙ forget) F.to_cocone,
33
+ @[simps] def colimit (F : J ⥤ over X) [has_colimit (F ⋙ forget X )] : cocone F :=
34
+ { X := mk $ colimit.desc (F ⋙ forget X ) F.to_cocone,
35
35
ι :=
36
- { app := λ j, hom_mk $ colimit.ι (F ⋙ forget) j,
36
+ { app := λ j, hom_mk $ colimit.ι (F ⋙ forget X ) j,
37
37
naturality' :=
38
38
begin
39
39
intros j j' f,
40
- have := colimit.w (F ⋙ forget) f,
40
+ have := colimit.w (F ⋙ forget X ) f,
41
41
tidy
42
42
end } }
43
43
44
- def forget_colimit_is_colimit (F : J ⥤ over X) [has_colimit (F ⋙ forget)] :
45
- is_colimit (forget.map_cocone (colimit F)) :=
46
- is_colimit.of_iso_colimit (colimit.is_colimit (F ⋙ forget)) (cocones.ext (iso.refl _) (by tidy))
44
+ def forget_colimit_is_colimit (F : J ⥤ over X) [has_colimit (F ⋙ forget X )] :
45
+ is_colimit (( forget X) .map_cocone (colimit F)) :=
46
+ is_colimit.of_iso_colimit (colimit.is_colimit (F ⋙ forget X )) (cocones.ext (iso.refl _) (by tidy))
47
47
48
- instance : reflects_colimits (forget : over X ⥤ C ) :=
48
+ instance : reflects_colimits (forget X ) :=
49
49
{ reflects_colimits_of_shape := λ J 𝒥,
50
50
{ reflects_colimit := λ F,
51
51
by constructor; exactI λ t ht,
52
- { desc := λ s, hom_mk (ht.desc (forget.map_cocone s))
52
+ { desc := λ s, hom_mk (ht.desc (( forget X) .map_cocone s))
53
53
begin
54
54
apply ht.hom_ext, intro j,
55
55
rw [←category.assoc, ht.fac],
@@ -58,17 +58,17 @@ instance : reflects_colimits (forget : over X ⥤ C) :=
58
58
exact (w (t.ι.app j)).symm,
59
59
end ,
60
60
fac' := begin
61
- intros s j, ext, exact ht.fac (forget.map_cocone s) j
61
+ intros s j, ext, exact ht.fac (( forget X) .map_cocone s) j
62
62
-- TODO: Ask Simon about multiple ext lemmas for defeq types (comma_morphism & over.category.hom)
63
63
end ,
64
64
uniq' :=
65
65
begin
66
66
intros s m w,
67
67
ext1 j,
68
- exact ht.uniq (forget.map_cocone s) m.left (λ j, congr_arg comma_morphism.left (w j))
68
+ exact ht.uniq (( forget X) .map_cocone s) m.left (λ j, congr_arg comma_morphism.left (w j))
69
69
end } } }
70
70
71
- instance has_colimit {F : J ⥤ over X} [has_colimit (F ⋙ forget)] : has_colimit F :=
71
+ instance has_colimit {F : J ⥤ over X} [has_colimit (F ⋙ forget X )] : has_colimit F :=
72
72
has_colimit.mk { cocone := colimit F,
73
73
is_colimit := reflects_colimit.reflects (forget_colimit_is_colimit F) }
74
74
@@ -79,43 +79,43 @@ instance has_colimits_of_shape [has_colimits_of_shape J C] :
79
79
instance has_colimits [has_colimits C] : has_colimits (over X) :=
80
80
{ has_colimits_of_shape := λ J 𝒥, by resetI; apply_instance }
81
81
82
- instance forget_preserves_colimit {X : C} {F : J ⥤ over X} [has_colimit (F ⋙ forget)] :
83
- preserves_colimit F (forget : over X ⥤ C ) :=
82
+ instance forget_preserves_colimit {X : C} {F : J ⥤ over X} [has_colimit (F ⋙ forget X )] :
83
+ preserves_colimit F (forget X ) :=
84
84
preserves_colimit_of_preserves_colimit_cocone
85
85
(reflects_colimit.reflects (forget_colimit_is_colimit F)) (forget_colimit_is_colimit F)
86
86
87
87
instance forget_preserves_colimits_of_shape [has_colimits_of_shape J C] {X : C} :
88
- preserves_colimits_of_shape J (forget : over X ⥤ C ) :=
88
+ preserves_colimits_of_shape J (forget X ) :=
89
89
{ preserves_colimit := λ F, by apply_instance }
90
90
91
91
instance forget_preserves_colimits [has_colimits C] {X : C} :
92
- preserves_colimits (forget : over X ⥤ C ) :=
92
+ preserves_colimits (forget X ) :=
93
93
{ preserves_colimits_of_shape := λ J 𝒥, by apply_instance }
94
94
95
95
end category_theory.over
96
96
97
97
namespace category_theory.under
98
98
99
- @[simps] def limit (F : J ⥤ under X) [has_limit (F ⋙ forget)] : cone F :=
100
- { X := mk $ limit.lift (F ⋙ forget) F.to_cone,
99
+ @[simps] def limit (F : J ⥤ under X) [has_limit (F ⋙ forget X )] : cone F :=
100
+ { X := mk $ limit.lift (F ⋙ forget X ) F.to_cone,
101
101
π :=
102
- { app := λ j, hom_mk $ limit.π (F ⋙ forget) j,
102
+ { app := λ j, hom_mk $ limit.π (F ⋙ forget X ) j,
103
103
naturality' :=
104
104
begin
105
105
intros j j' f,
106
- have := (limit.w (F ⋙ forget) f).symm,
106
+ have := (limit.w (F ⋙ forget X ) f).symm,
107
107
tidy
108
108
end } }
109
109
110
- def forget_limit_is_limit (F : J ⥤ under X) [has_limit (F ⋙ forget)] :
111
- is_limit (forget.map_cone (limit F)) :=
112
- is_limit.of_iso_limit (limit.is_limit (F ⋙ forget)) (cones.ext (iso.refl _) (by tidy))
110
+ def forget_limit_is_limit (F : J ⥤ under X) [has_limit (F ⋙ forget X )] :
111
+ is_limit (( forget X) .map_cone (limit F)) :=
112
+ is_limit.of_iso_limit (limit.is_limit (F ⋙ forget X )) (cones.ext (iso.refl _) (by tidy))
113
113
114
- instance : reflects_limits (forget : under X ⥤ C ) :=
114
+ instance : reflects_limits (forget X ) :=
115
115
{ reflects_limits_of_shape := λ J 𝒥,
116
116
{ reflects_limit := λ F,
117
117
by constructor; exactI λ t ht,
118
- { lift := λ s, hom_mk (ht.lift (forget.map_cone s))
118
+ { lift := λ s, hom_mk (ht.lift (( forget X) .map_cone s))
119
119
begin
120
120
apply ht.hom_ext, intro j,
121
121
rw [category.assoc, ht.fac],
@@ -124,16 +124,16 @@ instance : reflects_limits (forget : under X ⥤ C) :=
124
124
exact (w (t.π.app j)).symm,
125
125
end ,
126
126
fac' := begin
127
- intros s j, ext, exact ht.fac (forget.map_cone s) j
127
+ intros s j, ext, exact ht.fac (( forget X) .map_cone s) j
128
128
end ,
129
129
uniq' :=
130
130
begin
131
131
intros s m w,
132
132
ext1 j,
133
- exact ht.uniq (forget.map_cone s) m.right (λ j, congr_arg comma_morphism.right (w j))
133
+ exact ht.uniq (( forget X) .map_cone s) m.right (λ j, congr_arg comma_morphism.right (w j))
134
134
end } } }
135
135
136
- instance has_limit {F : J ⥤ under X} [has_limit (F ⋙ forget)] : has_limit F :=
136
+ instance has_limit {F : J ⥤ under X} [has_limit (F ⋙ forget X )] : has_limit F :=
137
137
has_limit.mk { cone := limit F,
138
138
is_limit := reflects_limit.reflects (forget_limit_is_limit F) }
139
139
@@ -145,7 +145,7 @@ instance has_limits [has_limits C] : has_limits (under X) :=
145
145
{ has_limits_of_shape := λ J 𝒥, by resetI; apply_instance }
146
146
147
147
instance forget_preserves_limits [has_limits C] {X : C} :
148
- preserves_limits (forget : under X ⥤ C ) :=
148
+ preserves_limits (forget X ) :=
149
149
{ preserves_limits_of_shape := λ J 𝒥,
150
150
{ preserves_limit := λ F, by exactI
151
151
preserves_limit_of_preserves_limit_cone
0 commit comments