@@ -112,6 +112,27 @@ def coreId : (𝟭 C).core ≅ 𝟭 (Core C) := Iso.refl _
112112def coreComp {E : Type u₃} [Category.{v₃} E] (F : C ⥤ D) (G : D ⥤ E) :
113113 (F ⋙ G).core ≅ F.core ⋙ G.core := Iso.refl _
114114
115+ /-- The natural isomorphism
116+ ```
117+ F.core
118+ Core C ⥤ Core D
119+ inclusion C ‖ ‖ inclusion D
120+ V V
121+ C ⥤ D
122+ F
123+ ```
124+ thought of as pseudonaturality of `inclusion`,
125+ when viewing `Core` as a pseudofunctor.
126+ -/
127+ @[simps!]
128+ def coreCompInclusionIso (F : C ⥤ D) :
129+ F.core ⋙ Core.inclusion D ≅ Core.inclusion C ⋙ F :=
130+ Iso.refl _
131+
132+ lemma core_comp_inclusion (F : C ⥤ D) :
133+ F.core ⋙ Core.inclusion D = Core.inclusion C ⋙ F :=
134+ Functor.ext_of_iso (coreCompInclusionIso F) (by cat_disch)
135+
115136end Functor
116137
117138namespace Iso
@@ -160,6 +181,44 @@ lemma coreAssociator {E : Type u₃} [Category.{v₃} E] {E' : Type u₄} [Categ
160181
161182end Iso
162183
184+ namespace Core
185+
186+ variable {G : Type u₂} [Groupoid.{v₂} G]
187+
188+ /-- The functor `functorToCore (F ⋙ H)` factors through `functortoCore H`. -/
189+ def functorToCoreCompLeftIso {G' : Type u₃} [Groupoid.{v₃} G'] (H : G ⥤ C) (F : G' ⥤ G) :
190+ functorToCore (F ⋙ H) ≅ F ⋙ functorToCore H :=
191+ NatIso.ofComponents (fun _ ↦ Iso.refl _)
192+
193+ lemma functorToCore_comp_left {G' : Type u₃} [Groupoid.{v₃} G'] (H : G ⥤ C) (F : G' ⥤ G) :
194+ functorToCore (F ⋙ H) = F ⋙ functorToCore H :=
195+ Functor.ext_of_iso (functorToCoreCompLeftIso H F) (by cat_disch)
196+
197+ /-- The functor `functorToCore (H ⋙ F)` factors through `functorToCore H`. -/
198+ def functorToCoreCompRightIso {C' : Type u₄} [Category.{v₄} C'] (H : G ⥤ C) (F : C ⥤ C') :
199+ functorToCore (H ⋙ F) ≅ functorToCore H ⋙ F.core :=
200+ Iso.refl _
201+
202+ lemma functorToCore_comp_right {C' : Type u₄} [Category.{v₄} C'] (H : G ⥤ C) (F : C ⥤ C') :
203+ functorToCore (H ⋙ F) = functorToCore H ⋙ F.core :=
204+ Functor.ext_of_iso (functorToCoreCompRightIso H F) (by cat_disch)
205+
206+ /-- The functor `functorToCore (𝟭 G)` is a section of `inclusion G`. -/
207+ def inclusionCompFunctorToCoreIso : inclusion G ⋙ functorToCore (𝟭 G) ≅ 𝟭 (Core G) :=
208+ NatIso.ofComponents (fun _ ↦ Iso.refl _)
209+
210+ theorem inclusion_comp_functorToCore : inclusion G ⋙ functorToCore (𝟭 G) = 𝟭 (Core G) :=
211+ Functor.ext_of_iso inclusionCompFunctorToCoreIso (by cat_disch)
212+
213+ /-- The functor `functorToCore (inclusion C)` is isomorphic to the identity on `Core C`. -/
214+ def functorToCoreInclusionIso : functorToCore (inclusion C) ≅ 𝟭 (Core C) :=
215+ Iso.refl _
216+
217+ theorem functorToCore_inclusion : functorToCore (inclusion C) = 𝟭 (Core C) :=
218+ Functor.ext_of_iso functorToCoreInclusionIso (by cat_disch)
219+
220+ end Core
221+
163222variable (D : Type u₂) [Category.{v₂} D]
164223
165224namespace Equivalence
0 commit comments