Subsheaf of types #
We define the sub(pre)sheaf of a type valued presheaf.
Main results #
CategoryTheory.Subpresheaf
: A subpresheaf of a presheaf of types.CategoryTheory.Subpresheaf.sheafify
: The sheafification of a subpresheaf as a subpresheaf. Note that this is a sheaf only when the whole sheaf is.CategoryTheory.Subpresheaf.sheafify_isSheaf
: The sheafification is a sheafCategoryTheory.Subpresheaf.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
.
def
CategoryTheory.Subpresheaf.sheafify
{C : Type u}
[Category.{v, u} C]
(J : GrothendieckTopology C)
{F : Functor Cᵒᵖ (Type w)}
(G : Subpresheaf 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.Subpresheaf.sheafify J G = { obj := fun (U : Cᵒᵖ) => {s : F.obj U | G.sieveOfSection s ∈ J (Opposite.unop U)}, map := ⋯ }
Instances For
theorem
CategoryTheory.Subpresheaf.le_sheafify
{C : Type u}
[Category.{v, u} C]
(J : GrothendieckTopology C)
{F : Functor Cᵒᵖ (Type w)}
(G : Subpresheaf F)
:
theorem
CategoryTheory.Subpresheaf.eq_sheafify
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F : Functor Cᵒᵖ (Type w)}
(G : Subpresheaf F)
(h : Presieve.IsSheaf J F)
(hG : Presieve.IsSheaf J G.toPresheaf)
:
theorem
CategoryTheory.Subpresheaf.sheafify_isSheaf
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F : Functor Cᵒᵖ (Type w)}
(G : Subpresheaf F)
(hF : Presieve.IsSheaf J F)
:
Presieve.IsSheaf J (sheafify J G).toPresheaf
theorem
CategoryTheory.Subpresheaf.eq_sheafify_iff
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F : Functor Cᵒᵖ (Type w)}
(G : Subpresheaf F)
(h : Presieve.IsSheaf J F)
:
theorem
CategoryTheory.Subpresheaf.isSheaf_iff
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F : Functor Cᵒᵖ (Type w)}
(G : Subpresheaf F)
(h : Presieve.IsSheaf J F)
:
Presieve.IsSheaf J G.toPresheaf ↔ ∀ (U : Cᵒᵖ) (s : F.obj U), G.sieveOfSection s ∈ J (Opposite.unop U) → s ∈ G.obj U
theorem
CategoryTheory.Subpresheaf.sheafify_sheafify
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F : Functor Cᵒᵖ (Type w)}
(G : Subpresheaf F)
(h : Presieve.IsSheaf J F)
:
noncomputable def
CategoryTheory.Subpresheaf.sheafifyLift
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F F' : Functor Cᵒᵖ (Type w)}
(G : Subpresheaf F)
(f : G.toPresheaf ⟶ 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.Subpresheaf.to_sheafifyLift
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F F' : Functor Cᵒᵖ (Type w)}
(G : Subpresheaf F)
(f : G.toPresheaf ⟶ F')
(h : Presieve.IsSheaf J F')
:
theorem
CategoryTheory.Subpresheaf.to_sheafify_lift_unique
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F F' : Functor Cᵒᵖ (Type w)}
(G : Subpresheaf F)
(h : Presieve.IsSheaf J F')
(l₁ l₂ : (sheafify J G).toPresheaf ⟶ F')
(e : CategoryStruct.comp (homOfLe ⋯) l₁ = CategoryStruct.comp (homOfLe ⋯) l₂)
:
theorem
CategoryTheory.Subpresheaf.sheafify_le
{C : Type u}
[Category.{v, u} C]
{J : GrothendieckTopology C}
{F : Functor Cᵒᵖ (Type w)}
(G G' : Subpresheaf F)
(h : G ≤ G')
(hF : Presieve.IsSheaf J F)
(hG' : Presieve.IsSheaf J G'.toPresheaf)
:
def
CategoryTheory.Subpresheaf.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.Subpresheaf.toRangeSheafify_app_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 = { val := (CategoryTheory.Subpresheaf.sheafify J (CategoryTheory.Subpresheaf.range f.val)).toPresheaf, cond := ⋯ }
Instances For
@[simp]
theorem
CategoryTheory.Sheaf.image_val
{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_val
{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ι_val
{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)))