Subsheaf of types #
We define the subsheaf of a type-valued presheaf.
Main results #
CategoryTheory.Subfunctor.sheafify: The sheafification of a subpresheaf as a subpresheaf. Note that this is a sheaf only when the whole sheaf is.CategoryTheory.Subfunctor.sheafify_isSheaf: The sheafification is a sheafCategoryTheory.Subfunctor.sheafifyLift: The descent of a map into a sheaf to the sheafification.CategoryTheory.GrothendieckTopology.imageSheaf: The image sheaf of a morphism.CategoryTheory.GrothendieckTopology.imageFactorization: The image sheaf as aLimits.imageFactorization.
theorem
CategoryTheory.Subfunctor.isSeparated
{C : Type u}
[Category.{v, u} C]
{F : Functor Cᵒᵖ (Type w)}
(G : Subfunctor F)
{J : GrothendieckTopology C}
(h : Presieve.IsSeparated J F)
:
Every subpresheaf of a separated presheaf is itself separated.
def
CategoryTheory.Subfunctor.sheafify
{C : Type u}
[Category.{v, u} C]
(J : GrothendieckTopology C)
{F : Functor Cᵒᵖ (Type w)}
(G : Subfunctor F)
:
The sheafification of a subpresheaf as a subpresheaf. Note that this is a sheaf only when the whole presheaf is a sheaf.
Equations
- CategoryTheory.Subfunctor.sheafify J G = { obj := fun (U : Cᵒᵖ) => {s : F.obj U | G.sieveOfSection s ∈ J (Opposite.unop U)}, map := ⋯ }
Instances For
theorem
CategoryTheory.Subfunctor.le_sheafify
{C : Type u}
[Category.{v, u} C]
(J : GrothendieckTopology C)
{F : Functor Cᵒᵖ (Type w)}
(G : Subfunctor F)
:
theorem
CategoryTheory.Subfunctor.eq_sheafify
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F : Functor Cᵒᵖ (Type w)}
(G : Subfunctor F)
(h : Presieve.IsSheaf J F)
(hG : Presieve.IsSheaf J G.toFunctor)
:
theorem
CategoryTheory.Subfunctor.sheafify_isSheaf
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F : Functor Cᵒᵖ (Type w)}
(G : Subfunctor F)
(hF : Presieve.IsSheaf J F)
:
Presieve.IsSheaf J (sheafify J G).toFunctor
theorem
CategoryTheory.Subfunctor.eq_sheafify_iff
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F : Functor Cᵒᵖ (Type w)}
(G : Subfunctor F)
(h : Presieve.IsSheaf J F)
:
theorem
CategoryTheory.Subfunctor.isSheaf_iff
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F : Functor Cᵒᵖ (Type w)}
(G : Subfunctor F)
(h : Presieve.IsSheaf J F)
:
Presieve.IsSheaf J G.toFunctor ↔ ∀ (U : Cᵒᵖ) (s : F.obj U), G.sieveOfSection s ∈ J (Opposite.unop U) → s ∈ G.obj U
theorem
CategoryTheory.Subfunctor.sheafify_sheafify
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F : Functor Cᵒᵖ (Type w)}
(G : Subfunctor F)
(h : Presieve.IsSheaf J F)
:
noncomputable def
CategoryTheory.Subfunctor.sheafifyLift
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F F' : Functor Cᵒᵖ (Type w)}
(G : Subfunctor F)
(f : G.toFunctor ⟶ F')
(h : Presieve.IsSheaf J F')
:
The lift of a presheaf morphism onto the sheafification subpresheaf.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
CategoryTheory.Subfunctor.to_sheafifyLift
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F F' : Functor Cᵒᵖ (Type w)}
(G : Subfunctor F)
(f : G.toFunctor ⟶ F')
(h : Presieve.IsSheaf J F')
:
theorem
CategoryTheory.Subfunctor.to_sheafify_lift_unique
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F F' : Functor Cᵒᵖ (Type w)}
(G : Subfunctor F)
(h : Presieve.IsSheaf J F')
(l₁ l₂ : (sheafify J G).toFunctor ⟶ F')
(e : CategoryStruct.comp (homOfLe ⋯) l₁ = CategoryStruct.comp (homOfLe ⋯) l₂)
:
theorem
CategoryTheory.Subfunctor.sheafify_le
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F : Functor Cᵒᵖ (Type w)}
(G G' : Subfunctor F)
(h : G ≤ G')
(hF : Presieve.IsSheaf J F)
(hG' : Presieve.IsSheaf J G'.toFunctor)
:
def
CategoryTheory.Subfunctor.toRangeSheafify
{C : Type u}
[Category.{v, u} C]
(J : GrothendieckTopology C)
{F F' : Functor Cᵒᵖ (Type w)}
(f : F' ⟶ F)
:
A morphism factors through the sheafification of the image presheaf.
Equations
Instances For
@[simp]
theorem
CategoryTheory.Subfunctor.toRangeSheafify_app_hom_apply_coe
{C : Type u}
[Category.{v, u} C]
(J : GrothendieckTopology C)
{F F' : Functor Cᵒᵖ (Type w)}
(f : F' ⟶ F)
(X : Cᵒᵖ)
(a✝ : F'.obj X)
:
def
CategoryTheory.Sheaf.image
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F F' : Sheaf J (Type w)}
(f : F ⟶ F')
:
The image sheaf of a morphism between sheaves, defined to be the sheafification of
image_presheaf.
Equations
- CategoryTheory.Sheaf.image f = { obj := (CategoryTheory.Subfunctor.sheafify J (CategoryTheory.Subfunctor.range f.hom)).toFunctor, property := ⋯ }
Instances For
@[simp]
theorem
CategoryTheory.Sheaf.image_obj
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F F' : Sheaf J (Type w)}
(f : F ⟶ F')
:
def
CategoryTheory.Sheaf.toImage
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F F' : Sheaf J (Type w)}
(f : F ⟶ F')
:
A morphism factors through the image sheaf.
Equations
Instances For
@[simp]
theorem
CategoryTheory.Sheaf.toImage_hom
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F F' : Sheaf J (Type w)}
(f : F ⟶ F')
:
def
CategoryTheory.Sheaf.imageι
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F F' : Sheaf J (Type w)}
(f : F ⟶ F')
:
The inclusion of the image sheaf to the target.
Equations
Instances For
@[simp]
theorem
CategoryTheory.Sheaf.imageι_hom
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F F' : Sheaf J (Type w)}
(f : F ⟶ F')
:
@[simp]
theorem
CategoryTheory.Sheaf.toImage_ι
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F F' : Sheaf J (Type w)}
(f : F ⟶ F')
:
@[simp]
theorem
CategoryTheory.Sheaf.toImage_ι_assoc
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F F' : Sheaf J (Type w)}
(f : F ⟶ F')
{Z : Sheaf J (Type w)}
(h : F' ⟶ Z)
:
instance
CategoryTheory.instMonoSheafTypeImageι
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F F' : Sheaf J (Type w)}
(f : F ⟶ F')
:
Mono (Sheaf.imageι f)
instance
CategoryTheory.instEpiSheafTypeToImage
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F F' : Sheaf J (Type w)}
(f : F ⟶ F')
:
Epi (Sheaf.toImage f)
def
CategoryTheory.imageMonoFactorization
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F F' : Sheaf J (Type w)}
(f : F ⟶ F')
:
The mono factorization given by image_sheaf for a morphism.
Equations
- CategoryTheory.imageMonoFactorization f = { I := CategoryTheory.Sheaf.image f, m := CategoryTheory.Sheaf.imageι f, m_mono := ⋯, e := CategoryTheory.Sheaf.toImage f, fac := ⋯ }
Instances For
noncomputable def
CategoryTheory.imageFactorization
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F F' : Sheaf J (Type (max v u))}
(f : F ⟶ F')
:
The mono factorization given by image_sheaf for a morphism is an image.
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
CategoryTheory.instHasImagesSheafType
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
:
Limits.HasImages (Sheaf J (Type (max v u)))