Skip to content

Commit bcd0d3b

Browse files
committed
feat(CategoryTheory/Sites): commutation of fiber functors with functors which preserves filtered colimits (leanprover-community#34989)
1 parent 6b83b4d commit bcd0d3b

1 file changed

Lines changed: 33 additions & 2 deletions

File tree

Mathlib/CategoryTheory/Sites/Point/Basic.lean

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ and with arbitrary colimits.
4646

4747
@[expose] public section
4848

49-
universe w' w v v' u u'
49+
universe w' w v v' v'' u u' u''
5050

5151
namespace CategoryTheory
5252

@@ -77,7 +77,8 @@ namespace Point
7777
attribute [instance] initiallySmall isCofiltered
7878

7979
variable {J} (Φ : Point.{w} J) {A : Type u'} [Category.{v'} A]
80-
[HasColimitsOfSize.{w, w} A]
80+
{B : Type u''} [Category.{v''} B]
81+
[HasColimitsOfSize.{w, w} A] [HasColimitsOfSize.{w, w} B]
8182

8283
instance : HasColimitsOfShape Φ.fiber.Elementsᵒᵖ A :=
8384
hasColimitsOfShape_of_finallySmall _ _
@@ -279,6 +280,36 @@ instance [HasSheafify J A] [J.WEqualsLocallyBijective A] [(forget A).ReflectsIso
279280
rw [← Functor.map_comp, Sheaf.sheafifyCocone_ι_app_val]
280281
dsimp))⟩
281282

283+
variable (F : A ⥤ B) [LocallySmall.{w} C] [PreservesFilteredColimitsOfSize.{w, w} F]
284+
285+
/-- If `Φ` is a point of a site and `F : A ⥤ B` is a functor which preserves
286+
filtered colimits, then taking fibers of presheaves at `Φ` commutes with `F`. -/
287+
noncomputable def presheafFiberCompIso :
288+
(Functor.whiskeringRight _ _ _).obj F ⋙ Φ.presheafFiber ≅
289+
Φ.presheafFiber ⋙ F :=
290+
haveI := Functor.Final.preservesColimitsOfShape_of_final
291+
(FinallySmall.fromFilteredFinalModel.{w} (Φ.fiber.Elementsᵒᵖ)) F
292+
Functor.isoWhiskerLeft
293+
((Functor.whiskeringLeft _ _ _).obj _) (preservesColimitNatIso F).symm
294+
295+
@[reassoc]
296+
lemma toPresheafFiber_presheafFiberCompIso_hom_app
297+
(X : C) (x : Φ.fiber.obj X) (P : Cᵒᵖ ⥤ A) :
298+
Φ.toPresheafFiber X x (P ⋙ F) ≫ (Φ.presheafFiberCompIso F).hom.app P =
299+
F.map (Φ.toPresheafFiber X x P) := by
300+
haveI := Functor.Final.preservesColimitsOfShape_of_final
301+
(FinallySmall.fromFilteredFinalModel.{w} (Φ.fiber.Elementsᵒᵖ)) F
302+
simp only [presheafFiberCompIso]
303+
exact ι_preservesColimitIso_inv F ((CategoryOfElements.π Φ.fiber).op ⋙ P) _
304+
305+
/-- If `Φ` is a point of a site and `F : A ⥤ B` is a functor which preserves
306+
filtered colimits, then taking fibers of sheaves at `Φ` commutes with `F`. -/
307+
@[simps!]
308+
noncomputable def sheafFiberCompIso [J.HasSheafCompose F] :
309+
sheafCompose J F ⋙ Φ.sheafFiber ≅ Φ.sheafFiber ⋙ F :=
310+
Functor.isoWhiskerLeft (sheafToPresheaf J A) (Φ.presheafFiberCompIso F) ≪≫
311+
(Functor.associator _ _ _).symm
312+
282313
end Point
283314

284315
end GrothendieckTopology

0 commit comments

Comments
 (0)