category_theory.sites.pushforward
⟷
Mathlib.CategoryTheory.Sites.Pullback
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -42,7 +42,8 @@ instance [HasLimits A] : CreatesLimits (sheafToPresheaf J A) :=
-- The assumptions so that we have sheafification
variable [ConcreteCategory.{v₁} A] [PreservesLimits (forget A)] [HasColimits A] [HasLimits A]
-variable [PreservesFilteredColimits (forget A)] [ReflectsIsomorphisms (forget A)]
+variable [PreservesFilteredColimits (forget A)]
+ [CategoryTheory.Functor.ReflectsIsomorphisms (forget A)]
attribute [local instance] reflects_limits_of_reflects_isomorphisms
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -54,7 +54,7 @@ instance {X : C} : IsCofiltered (J.cover X) :=
same direction as `G`. -/
@[simps]
def Functor.sheafPullback (G : C ⥤ D) : Sheaf J A ⥤ Sheaf K A :=
- sheafToPresheaf J A ⋙ lan G.op ⋙ presheafToSheaf K A
+ sheafToPresheaf J A ⋙ lan G.op ⋙ plusPlusSheaf K A
#align category_theory.sites.pushforward CategoryTheory.Functor.sheafPullback
-/
@@ -65,7 +65,7 @@ instance (G : C ⥤ D) [RepresentablyFlat G] :
· infer_instance
apply (config := { instances := false }) comp_preserves_finite_limits
· apply CategoryTheory.lanPreservesFiniteLimitsOfFlat
- · apply CategoryTheory.presheafToSheaf.Limits.preservesFiniteLimits.{u₁, v₁, v₁}
+ · apply CategoryTheory.plusPlusSheaf.Limits.preservesFiniteLimits.{u₁, v₁, v₁}
infer_instance
#print CategoryTheory.Functor.sheafAdjunctionContinuous /-
@@ -73,7 +73,7 @@ instance (G : C ⥤ D) [RepresentablyFlat G] :
def Functor.sheafAdjunctionContinuous {G : C ⥤ D} (hG₁ : CompatiblePreserving K G)
(hG₂ : CoverPreserving J K G) :
Functor.sheafPullback A J K G ⊣ Functor.sheafPushforwardContinuous A hG₁ hG₂ :=
- ((Lan.adjunction A G.op).comp (sheafificationAdjunction K A)).restrictFullyFaithful
+ ((Lan.adjunction A G.op).comp (plusPlusAdjunction K A)).restrictFullyFaithful
(sheafToPresheaf J A) (𝟭 _)
(NatIso.ofComponents (fun _ => Iso.refl _) fun _ _ _ =>
(Category.comp_id _).trans (Category.id_comp _).symm)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -49,16 +49,17 @@ attribute [local instance] reflects_limits_of_reflects_isomorphisms
instance {X : C} : IsCofiltered (J.cover X) :=
inferInstance
-#print CategoryTheory.Sites.pushforward /-
+#print CategoryTheory.Functor.sheafPullback /-
/-- The pushforward functor `Sheaf J A ⥤ Sheaf K A` associated to a functor `G : C ⥤ D` in the
same direction as `G`. -/
@[simps]
-def Sites.pushforward (G : C ⥤ D) : Sheaf J A ⥤ Sheaf K A :=
+def Functor.sheafPullback (G : C ⥤ D) : Sheaf J A ⥤ Sheaf K A :=
sheafToPresheaf J A ⋙ lan G.op ⋙ presheafToSheaf K A
-#align category_theory.sites.pushforward CategoryTheory.Sites.pushforward
+#align category_theory.sites.pushforward CategoryTheory.Functor.sheafPullback
-/
-instance (G : C ⥤ D) [RepresentablyFlat G] : PreservesFiniteLimits (Sites.pushforward A J K G) :=
+instance (G : C ⥤ D) [RepresentablyFlat G] :
+ PreservesFiniteLimits (Functor.sheafPullback A J K G) :=
by
apply (config := { instances := false }) comp_preserves_finite_limits
· infer_instance
@@ -67,17 +68,18 @@ instance (G : C ⥤ D) [RepresentablyFlat G] : PreservesFiniteLimits (Sites.push
· apply CategoryTheory.presheafToSheaf.Limits.preservesFiniteLimits.{u₁, v₁, v₁}
infer_instance
-#print CategoryTheory.Sites.pullbackPushforwardAdjunction /-
+#print CategoryTheory.Functor.sheafAdjunctionContinuous /-
/-- The pushforward functor is left adjoint to the pullback functor. -/
-def Sites.pullbackPushforwardAdjunction {G : C ⥤ D} (hG₁ : CompatiblePreserving K G)
- (hG₂ : CoverPreserving J K G) : Sites.pushforward A J K G ⊣ Sites.pullback A hG₁ hG₂ :=
+def Functor.sheafAdjunctionContinuous {G : C ⥤ D} (hG₁ : CompatiblePreserving K G)
+ (hG₂ : CoverPreserving J K G) :
+ Functor.sheafPullback A J K G ⊣ Functor.sheafPushforwardContinuous A hG₁ hG₂ :=
((Lan.adjunction A G.op).comp (sheafificationAdjunction K A)).restrictFullyFaithful
(sheafToPresheaf J A) (𝟭 _)
(NatIso.ofComponents (fun _ => Iso.refl _) fun _ _ _ =>
(Category.comp_id _).trans (Category.id_comp _).symm)
(NatIso.ofComponents (fun _ => Iso.refl _) fun _ _ _ =>
(Category.comp_id _).trans (Category.id_comp _).symm)
-#align category_theory.sites.pullback_pushforward_adjunction CategoryTheory.Sites.pullbackPushforwardAdjunction
+#align category_theory.sites.pullback_pushforward_adjunction CategoryTheory.Functor.sheafAdjunctionContinuous
-/
end CategoryTheory
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2021 Andrew Yang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Andrew Yang
-/
-import Mathbin.CategoryTheory.Sites.CoverPreserving
-import Mathbin.CategoryTheory.Sites.LeftExact
+import CategoryTheory.Sites.CoverPreserving
+import CategoryTheory.Sites.LeftExact
#align_import category_theory.sites.pushforward from "leanprover-community/mathlib"@"bd15ff41b70f5e2cc210f26f25a8d5c53b20d3de"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2021 Andrew Yang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Andrew Yang
-
-! This file was ported from Lean 3 source module category_theory.sites.pushforward
-! leanprover-community/mathlib commit bd15ff41b70f5e2cc210f26f25a8d5c53b20d3de
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.CategoryTheory.Sites.CoverPreserving
import Mathbin.CategoryTheory.Sites.LeftExact
+#align_import category_theory.sites.pushforward from "leanprover-community/mathlib"@"bd15ff41b70f5e2cc210f26f25a8d5c53b20d3de"
+
/-!
# Pushforward of sheaves
mathlib commit https://github.com/leanprover-community/mathlib/commit/403190b5419b3f03f1a2893ad9352ca7f7d8bff6
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Andrew Yang
! This file was ported from Lean 3 source module category_theory.sites.pushforward
-! leanprover-community/mathlib commit e2e38c005fc6f715502490da6cb0ec84df9ed228
+! leanprover-community/mathlib commit bd15ff41b70f5e2cc210f26f25a8d5c53b20d3de
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.CategoryTheory.Sites.LeftExact
/-!
# Pushforward of sheaves
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
## Main definitions
* `category_theory.sites.pushforward`: the induced functor `Sheaf J A ⥤ Sheaf K A` for a
mathlib commit https://github.com/leanprover-community/mathlib/commit/28b2a92f2996d28e580450863c130955de0ed398
@@ -49,12 +49,14 @@ attribute [local instance] reflects_limits_of_reflects_isomorphisms
instance {X : C} : IsCofiltered (J.cover X) :=
inferInstance
+#print CategoryTheory.Sites.pushforward /-
/-- The pushforward functor `Sheaf J A ⥤ Sheaf K A` associated to a functor `G : C ⥤ D` in the
same direction as `G`. -/
@[simps]
def Sites.pushforward (G : C ⥤ D) : Sheaf J A ⥤ Sheaf K A :=
sheafToPresheaf J A ⋙ lan G.op ⋙ presheafToSheaf K A
#align category_theory.sites.pushforward CategoryTheory.Sites.pushforward
+-/
instance (G : C ⥤ D) [RepresentablyFlat G] : PreservesFiniteLimits (Sites.pushforward A J K G) :=
by
@@ -65,6 +67,7 @@ instance (G : C ⥤ D) [RepresentablyFlat G] : PreservesFiniteLimits (Sites.push
· apply CategoryTheory.presheafToSheaf.Limits.preservesFiniteLimits.{u₁, v₁, v₁}
infer_instance
+#print CategoryTheory.Sites.pullbackPushforwardAdjunction /-
/-- The pushforward functor is left adjoint to the pullback functor. -/
def Sites.pullbackPushforwardAdjunction {G : C ⥤ D} (hG₁ : CompatiblePreserving K G)
(hG₂ : CoverPreserving J K G) : Sites.pushforward A J K G ⊣ Sites.pullback A hG₁ hG₂ :=
@@ -75,6 +78,7 @@ def Sites.pullbackPushforwardAdjunction {G : C ⥤ D} (hG₁ : CompatiblePreserv
(NatIso.ofComponents (fun _ => Iso.refl _) fun _ _ _ =>
(Category.comp_id _).trans (Category.id_comp _).symm)
#align category_theory.sites.pullback_pushforward_adjunction CategoryTheory.Sites.pullbackPushforwardAdjunction
+-/
end CategoryTheory
mathlib commit https://github.com/leanprover-community/mathlib/commit/21e3562c5e12d846c7def5eff8cdbc520d7d4936
Adjunction.restrictFullyFaithful
to separate file (#12363)
Also resolves a TODO to add lemmas about Adjunction.restrictFullyFaithful
@@ -3,6 +3,7 @@ Copyright (c) 2021 Andrew Yang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Andrew Yang
-/
+import Mathlib.CategoryTheory.Adjunction.Restrict
import Mathlib.CategoryTheory.Sites.CoverPreserving
import Mathlib.CategoryTheory.Sites.LeftExact
These notions on functors are now Functor.Full
, Functor.Faithful
, Functor.EssSurj
, Functor.IsEquivalence
, Functor.ReflectsIsomorphisms
. Deprecated aliases are introduced for the previous names.
@@ -44,7 +44,7 @@ instance [HasLimits A] : CreatesLimits (sheafToPresheaf J A) := inferInstance
-- The assumptions so that we have sheafification
variable [ConcreteCategory.{v₁} A] [PreservesLimits (forget A)] [HasColimits A] [HasLimits A]
-variable [PreservesFilteredColimits (forget A)] [ReflectsIsomorphisms (forget A)]
+variable [PreservesFilteredColimits (forget A)] [(forget A).ReflectsIsomorphisms]
attribute [local instance] reflectsLimitsOfReflectsIsomorphisms
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -34,9 +34,7 @@ open CategoryTheory.Limits
namespace CategoryTheory
variable {C : Type v₁} [SmallCategory C] {D : Type v₁} [SmallCategory D] (G : C ⥤ D)
-
variable (A : Type u₁) [Category.{v₁} A]
-
variable (J : GrothendieckTopology C) (K : GrothendieckTopology D)
-- Porting note: there was an explicit call to
@@ -46,7 +44,6 @@ instance [HasLimits A] : CreatesLimits (sheafToPresheaf J A) := inferInstance
-- The assumptions so that we have sheafification
variable [ConcreteCategory.{v₁} A] [PreservesLimits (forget A)] [HasColimits A] [HasLimits A]
-
variable [PreservesFilteredColimits (forget A)] [ReflectsIsomorphisms (forget A)]
attribute [local instance] reflectsLimitsOfReflectsIsomorphisms
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -39,7 +39,7 @@ variable (A : Type u₁) [Category.{v₁} A]
variable (J : GrothendieckTopology C) (K : GrothendieckTopology D)
--- porting note: there was an explicit call to
+-- Porting note: there was an explicit call to
-- CategoryTheory.Sheaf.CategoryTheory.SheafToPresheaf.CategoryTheory.createsLimits.{u₁, v₁, v₁}
-- but it is not necessary (it was not either in mathlib)
instance [HasLimits A] : CreatesLimits (sheafToPresheaf J A) := inferInstance
This PR introduces the typeclass Functor.IsContinuous
which says that the precomposition with a functor preserves the sheaf condition for Grothendieck topologies. It slightly refactors the previous main theorem about CoverPreserving
and CompatiblePreserving
functors: it now states that such functors are continuous. The pushforward functor for a continuous functor is defined under the Functor.IsContinuous
assumption rather than the combination of both CoverPreserving
and CompatiblePreserving
. The property CoverLifting
is renamed IsCocontinuous
and it is made a class. The property IsCoverDense
is also made a class.
Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>
@@ -9,12 +9,18 @@ import Mathlib.CategoryTheory.Sites.LeftExact
#align_import category_theory.sites.pushforward from "leanprover-community/mathlib"@"e2e38c005fc6f715502490da6cb0ec84df9ed228"
/-!
-# Pushforward of sheaves
+# Pullback of sheaves
## Main definitions
-* `CategoryTheory.Sites.Pushforward`: the induced functor `Sheaf J A ⥤ Sheaf K A` for a
-cover-preserving and compatible-preserving functor `G : (C, J) ⥤ (D, K)`.
+* `CategoryTheory.Functor.sheafPullback`: the functor `Sheaf J A ⥤ Sheaf K A` obtained
+as an extension of a functor `G : C ⥤ D` between the underlying categories.
+
+* `CategoryTheory.Functor.sheafAdjunctionContinuous`: the adjunction
+`G.sheafPullback A J K ⊣ G.sheafPushforwardContinuous A J K` when the functor
+`G` is continuous. In case `G` is representably flat, the pullback functor
+on sheaves commutes with finite limits: this is a morphism of sites in the
+sense of SGA 4 IV 4.9.
-/
@@ -27,7 +33,7 @@ open CategoryTheory.Limits
namespace CategoryTheory
-variable {C : Type v₁} [SmallCategory C] {D : Type v₁} [SmallCategory D]
+variable {C : Type v₁} [SmallCategory C] {D : Type v₁} [SmallCategory D] (G : C ⥤ D)
variable (A : Type u₁) [Category.{v₁} A]
@@ -48,25 +54,23 @@ attribute [local instance] reflectsLimitsOfReflectsIsomorphisms
instance {X : C} : IsCofiltered (J.Cover X) :=
inferInstance
-/-- The pushforward functor `Sheaf J A ⥤ Sheaf K A` associated to a functor `G : C ⥤ D` in the
+/-- The pullback functor `Sheaf J A ⥤ Sheaf K A` associated to a functor `G : C ⥤ D` in the
same direction as `G`. -/
@[simps!]
-def Sites.pushforward (G : C ⥤ D) : Sheaf J A ⥤ Sheaf K A :=
+def Functor.sheafPullback : Sheaf J A ⥤ Sheaf K A :=
sheafToPresheaf J A ⋙ lan G.op ⋙ presheafToSheaf K A
-#align category_theory.sites.pushforward CategoryTheory.Sites.pushforward
+#align category_theory.sites.pushforward CategoryTheory.Functor.sheafPullback
-instance (G : C ⥤ D) [RepresentablyFlat G] : PreservesFiniteLimits (Sites.pushforward A J K G) := by
+instance [RepresentablyFlat G] : PreservesFiniteLimits (G.sheafPullback A J K) := by
have : PreservesFiniteLimits (lan (Functor.op G) ⋙ presheafToSheaf K A) :=
compPreservesFiniteLimits _ _
apply compPreservesFiniteLimits
-/-- The pushforward functor is left adjoint to the pullback functor. -/
-def Sites.pullbackPushforwardAdjunction {G : C ⥤ D} (hG₁ : CompatiblePreserving K G)
- (hG₂ : CoverPreserving J K G) : Sites.pushforward A J K G ⊣ Sites.pullback A hG₁ hG₂ :=
+/-- The pullback functor is left adjoint to the pushforward functor. -/
+def Functor.sheafAdjunctionContinuous [Functor.IsContinuous.{v₁} G J K] :
+ G.sheafPullback A J K ⊣ G.sheafPushforwardContinuous A J K :=
((Lan.adjunction A G.op).comp (sheafificationAdjunction K A)).restrictFullyFaithful
- (sheafToPresheaf J A) (𝟭 _)
- (NatIso.ofComponents fun _ => Iso.refl _)
- (NatIso.ofComponents fun _ => Iso.refl _)
-#align category_theory.sites.pullback_pushforward_adjunction CategoryTheory.Sites.pullbackPushforwardAdjunction
+ (sheafToPresheaf J A) (𝟭 _) (Iso.refl _) (Iso.refl _)
+#align category_theory.sites.pullback_pushforward_adjunction CategoryTheory.Functor.sheafAdjunctionContinuous
end CategoryTheory
@@ -2,15 +2,12 @@
Copyright (c) 2021 Andrew Yang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Andrew Yang
-
-! This file was ported from Lean 3 source module category_theory.sites.pushforward
-! leanprover-community/mathlib commit e2e38c005fc6f715502490da6cb0ec84df9ed228
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.CategoryTheory.Sites.CoverPreserving
import Mathlib.CategoryTheory.Sites.LeftExact
+#align_import category_theory.sites.pushforward from "leanprover-community/mathlib"@"e2e38c005fc6f715502490da6cb0ec84df9ed228"
+
/-!
# Pushforward of sheaves
@@ -68,10 +68,8 @@ def Sites.pullbackPushforwardAdjunction {G : C ⥤ D} (hG₁ : CompatiblePreserv
(hG₂ : CoverPreserving J K G) : Sites.pushforward A J K G ⊣ Sites.pullback A hG₁ hG₂ :=
((Lan.adjunction A G.op).comp (sheafificationAdjunction K A)).restrictFullyFaithful
(sheafToPresheaf J A) (𝟭 _)
- (NatIso.ofComponents (fun _ => Iso.refl _) fun _ =>
- (Category.comp_id _).trans (Category.id_comp _).symm)
- (NatIso.ofComponents (fun _ => Iso.refl _) fun _ =>
- (Category.comp_id _).trans (Category.id_comp _).symm)
+ (NatIso.ofComponents fun _ => Iso.refl _)
+ (NatIso.ofComponents fun _ => Iso.refl _)
#align category_theory.sites.pullback_pushforward_adjunction CategoryTheory.Sites.pullbackPushforwardAdjunction
end CategoryTheory
The unported dependencies are