Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 247fe80

Browse files
committed
feat(category_theory/cones): cone functoriality is fully faithful (#3202)
The functors `cones.functoriality` and `cocones.functoriality` are fully faithful if the transformation functor is as well.
1 parent adcd09d commit 247fe80

File tree

1 file changed

+23
-4
lines changed

1 file changed

+23
-4
lines changed

src/category_theory/limits/cones.lean

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -250,16 +250,26 @@ variable (F)
250250
def forget : cone F ⥤ C :=
251251
{ obj := λ t, t.X, map := λ s t f, f.hom }
252252

253-
variables {D : Type u'} [category.{v} D]
253+
variables {D : Type u'} [category.{v} D] (G : C ⥤ D)
254254

255-
@[simps] def functoriality (G : C ⥤ D) : cone F ⥤ cone (F ⋙ G) :=
255+
@[simps] def functoriality : cone F ⥤ cone (F ⋙ G) :=
256256
{ obj := λ A,
257257
{ X := G.obj A.X,
258258
π := { app := λ j, G.map (A.π.app j), naturality' := by intros; erw ←G.map_comp; tidy } },
259259
map := λ X Y f,
260260
{ hom := G.map f.hom,
261261
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+
262271
end
272+
263273
end cones
264274

265275
@[ext] structure cocone_morphism (A B : cocone F) :=
@@ -353,15 +363,24 @@ variable (F)
353363
def forget : cocone F ⥤ C :=
354364
{ obj := λ t, t.X, map := λ s t f, f.hom }
355365

356-
variables {D : Type u'} [category.{v} D]
366+
variables {D : Type u'} [category.{v} D] (G : C ⥤ D)
357367

358-
@[simps] def functoriality (G : C ⥤ D) : cocone F ⥤ cocone (F ⋙ G) :=
368+
@[simps] def functoriality : cocone F ⥤ cocone (F ⋙ G) :=
359369
{ obj := λ A,
360370
{ X := G.obj A.X,
361371
ι := { app := λ j, G.map (A.ι.app j), naturality' := by intros; erw ←G.map_comp; tidy } },
362372
map := λ _ _ f,
363373
{ hom := G.map f.hom,
364374
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+
365384
end
366385
end cocones
367386

0 commit comments

Comments
 (0)