File: Mathlib/Topology/Sheaves/Functors.lean

full_name: TopCat.Sheaf.pushforward_sheaf_of_sheaf
code: /-- The pushforward of a sheaf (by a continuous map) is a sheaf.
-/
theorem pushforward_sheaf_of_sheaf {F : X.Presheaf C} (h : F.IsSheaf) : (f _* F).IsSheaf 
goal: ((TopCat.Presheaf.pushforward C f).obj F).IsSheaf

full_name: TopCat.Sheaf.pushforward
code: /-- The pushforward functor.
-/
def pushforward (f : X ⟶ Y) : X.Sheaf C ⥤ Y.Sheaf C 
goal: TopCat.Sheaf C X ⥤ TopCat.Sheaf C Y

full_name: TopCat.Sheaf.pushforward_forget
code: lemma pushforward_forget (f : X ⟶ Y) :
    pushforward C f ⋙ forget C Y = forget C X ⋙ Presheaf.pushforward C f 
goal: TopCat.Sheaf.pushforward C f ⋙ TopCat.Sheaf.forget C Y = TopCat.Sheaf.forget C X ⋙ TopCat.Presheaf.pushforward C f

full_name: TopCat.Sheaf.pushforwardForgetIso
code: /--
Pushforward of sheaves is isomorphic (actually definitionally equal) to pushforward of presheaves.
-/
def pushforwardForgetIso (f : X ⟶ Y) :
    pushforward C f ⋙ forget C Y ≅ forget C X ⋙ Presheaf.pushforward C f 
goal: TopCat.Sheaf.pushforward C f ⋙ TopCat.Sheaf.forget C Y ≅ TopCat.Sheaf.forget C X ⋙ TopCat.Presheaf.pushforward C f

full_name: TopCat.Sheaf.pushforward_obj_val
code: @[simp] lemma pushforward_obj_val (f : X ⟶ Y) (F : X.Sheaf C) :
    ((pushforward C f).obj F).1 = f _* F.1 
goal: ((TopCat.Sheaf.pushforward C f).obj F).val = (TopCat.Presheaf.pushforward C f).obj F.val

full_name: TopCat.Sheaf.pushforward_map
code: @[simp] lemma pushforward_map (f : X ⟶ Y) {F F' : X.Sheaf C} (α : F ⟶ F') :
    ((pushforward C f).map α).1 = (Presheaf.pushforward C f).map α.1 
goal: ((TopCat.Sheaf.pushforward C f).map α).val = (TopCat.Presheaf.pushforward C f).map α.val

full_name: TopCat.Sheaf.pullback
code: /--
The pullback functor.
-/
def pullback (f : X ⟶ Y) : Y.Sheaf A ⥤ X.Sheaf A 
goal: TopCat.Sheaf A Y ⥤ TopCat.Sheaf A X

full_name: TopCat.Sheaf.pullback_eq
code: lemma pullback_eq (f : X ⟶ Y) :
    pullback A f = forget A Y ⋙ Presheaf.pullback A f ⋙ presheafToSheaf _ _ 
goal: TopCat.Sheaf.pullback A f =
  TopCat.Sheaf.forget A Y ⋙
    TopCat.Presheaf.pullback A f ⋙ CategoryTheory.presheafToSheaf (Opens.grothendieckTopology ↑X) A

full_name: TopCat.Sheaf.pullbackIso
code: /--
The pullback of a sheaf is isomorphic (actually definitionally equal) to the sheafification
of the pullback as a presheaf.
-/
def pullbackIso (f : X ⟶ Y) :
    pullback A f ≅ forget A Y ⋙ Presheaf.pullback A f ⋙ presheafToSheaf _ _ 
goal: TopCat.Sheaf.pullback A f ≅
  TopCat.Sheaf.forget A Y ⋙
    TopCat.Presheaf.pullback A f ⋙ CategoryTheory.presheafToSheaf (Opens.grothendieckTopology ↑X) A

full_name: TopCat.Sheaf.pullbackPushforwardAdjunction
code: /-- The adjunction between pullback and pushforward for sheaves on topological spaces. -/
def pullbackPushforwardAdjunction (f : X ⟶ Y) :
    pullback A f ⊣ pushforward A f 
goal: TopCat.Sheaf.pullback A f ⊣ TopCat.Sheaf.pushforward A f

full_name: TopCat.Sheaf.instIsLeftAdjointPullback
code: instance : (pullback A f).IsLeftAdjoint  
goal: (TopCat.Sheaf.pullback A f).IsLeftAdjoint

full_name: TopCat.Sheaf.instIsRightAdjointPushforward
code: instance : (pushforward A f).IsRightAdjoint 
goal: (TopCat.Sheaf.pushforward A f).IsRightAdjoint