@@ -250,16 +250,26 @@ variable (F)
250
250
def forget : cone F ⥤ C :=
251
251
{ obj := λ t, t.X, map := λ s t f, f.hom }
252
252
253
- variables {D : Type u'} [category.{v} D]
253
+ variables {D : Type u'} [category.{v} D] (G : C ⥤ D)
254
254
255
- @[simps] def functoriality (G : C ⥤ D) : cone F ⥤ cone (F ⋙ G) :=
255
+ @[simps] def functoriality : cone F ⥤ cone (F ⋙ G) :=
256
256
{ obj := λ A,
257
257
{ X := G.obj A.X,
258
258
π := { app := λ j, G.map (A.π.app j), naturality' := by intros; erw ←G.map_comp; tidy } },
259
259
map := λ X Y f,
260
260
{ hom := G.map f.hom,
261
261
w' := by intros; rw [←functor.map_comp, f.w] } }
262
+
263
+ instance functoriality_full [full G] [faithful G] : full (functoriality F G) :=
264
+ { preimage := λ X Y t,
265
+ { hom := G.preimage t.hom,
266
+ w' := λ j, G.map_injective (by simpa using t.w j) } }
267
+
268
+ instance functoriality_faithful [faithful G] : faithful (cones.functoriality F G) :=
269
+ { map_injective' := λ X Y f g e, by { ext1, injection e, apply G.map_injective h_1 } }
270
+
262
271
end
272
+
263
273
end cones
264
274
265
275
@[ext] structure cocone_morphism (A B : cocone F) :=
@@ -353,15 +363,24 @@ variable (F)
353
363
def forget : cocone F ⥤ C :=
354
364
{ obj := λ t, t.X, map := λ s t f, f.hom }
355
365
356
- variables {D : Type u'} [category.{v} D]
366
+ variables {D : Type u'} [category.{v} D] (G : C ⥤ D)
357
367
358
- @[simps] def functoriality (G : C ⥤ D) : cocone F ⥤ cocone (F ⋙ G) :=
368
+ @[simps] def functoriality : cocone F ⥤ cocone (F ⋙ G) :=
359
369
{ obj := λ A,
360
370
{ X := G.obj A.X,
361
371
ι := { app := λ j, G.map (A.ι.app j), naturality' := by intros; erw ←G.map_comp; tidy } },
362
372
map := λ _ _ f,
363
373
{ hom := G.map f.hom,
364
374
w' := by intros; rw [←functor.map_comp, cocone_morphism.w] } }
375
+
376
+ instance functoriality_full [full G] [faithful G] : full (functoriality F G) :=
377
+ { preimage := λ X Y t,
378
+ { hom := G.preimage t.hom,
379
+ w' := λ j, G.map_injective (by simpa using t.w j) } }
380
+
381
+ instance functoriality_faithful [faithful G] : faithful (functoriality F G) :=
382
+ { map_injective' := λ X Y f g e, by { ext1, injection e, apply G.map_injective h_1 } }
383
+
365
384
end
366
385
end cocones
367
386
0 commit comments