File: Mathlib/Algebra/Category/ModuleCat/Sheaf/Generators.lean

full_name: SheafOfModules.GeneratingSections.I
code: /-- The type of sections which generate a sheaf of modules. -/
structure GeneratingSections where
  /-- the index type for the sections -/
  I : Type u
  /-- a family of sections which generate the sheaf of modules -/
  s : I → M.sections
  epi : Epi (M.freeHomEquiv.symm s) := by infer_instance
goal: Type u

full_name: SheafOfModules.GeneratingSections.s
code: /-- The type of sections which generate a sheaf of modules. -/
structure GeneratingSections where
  /-- the index type for the sections -/
  I : Type u
  /-- a family of sections which generate the sheaf of modules -/
  s : I → M.sections
  epi : Epi (M.freeHomEquiv.symm s) := by infer_instance
goal: self.I → M.sections

full_name: SheafOfModules.GeneratingSections.epi
code: /-- The type of sections which generate a sheaf of modules. -/
structure GeneratingSections where
  /-- the index type for the sections -/
  I : Type u
  /-- a family of sections which generate the sheaf of modules -/
  s : I → M.sections
  epi : Epi (M.freeHomEquiv.symm s) := by infer_instance
goal: CategoryTheory.Epi (M.freeHomEquiv.symm self.s)

full_name: SheafOfModules.GeneratingSections
code: /-- The type of sections which generate a sheaf of modules. -/
structure GeneratingSections where
  /-- the index type for the sections -/
  I : Type u
  /-- a family of sections which generate the sheaf of modules -/
  s : I → M.sections
  epi : Epi (M.freeHomEquiv.symm s) := by infer_instance
goal: Type (max (u + 1) u')

full_name: SheafOfModules.GeneratingSections.π
code: /-- The epimorphism `free σ.I ⟶ M` given by `σ : M.GeneratingSections`. -/
noncomputable abbrev π (σ : M.GeneratingSections) : free σ.I ⟶ M 
goal: SheafOfModules.free σ.I ⟶ M

full_name: SheafOfModules.GeneratingSections.ofEpi_s
code: /-- If `M ⟶ N` is an epimorphisms and that `M` is generated by some sections,
then `N` is generated by the images of these sections. -/
@[simps]
def ofEpi (σ : M.GeneratingSections) (p : M ⟶ N) [Epi p] :
    N.GeneratingSections 
goal: (σ.ofEpi p).s i = SheafOfModules.sectionsMap p (σ.s i)

full_name: SheafOfModules.GeneratingSections.ofEpi
code: /-- If `M ⟶ N` is an epimorphisms and that `M` is generated by some sections,
then `N` is generated by the images of these sections. -/
@[simps]
def ofEpi (σ : M.GeneratingSections) (p : M ⟶ N) [Epi p] :
    N.GeneratingSections 
goal: N.GeneratingSections

full_name: SheafOfModules.GeneratingSections.ofEpi_I
code: /-- If `M ⟶ N` is an epimorphisms and that `M` is generated by some sections,
then `N` is generated by the images of these sections. -/
@[simps]
def ofEpi (σ : M.GeneratingSections) (p : M ⟶ N) [Epi p] :
    N.GeneratingSections 
goal: (σ.ofEpi p).I = σ.I

full_name: SheafOfModules.GeneratingSections.opEpi_id
code: lemma opEpi_id (σ : M.GeneratingSections) :
    σ.ofEpi (𝟙 M) = σ 
goal: σ.ofEpi (𝟙 M) = σ

full_name: SheafOfModules.GeneratingSections.opEpi_comp
code: lemma opEpi_comp (σ : M.GeneratingSections) (p : M ⟶ N) (q : N ⟶ P) [Epi p] [Epi q] :
    σ.ofEpi (p ≫ q) = (σ.ofEpi p).ofEpi q 
goal: σ.ofEpi (p ≫ q) = (σ.ofEpi p).ofEpi q

full_name: SheafOfModules.GeneratingSections.equivOfIso
code: /-- Two isomorphic sheaves of modules have equivalent families of generating sections. -/
def equivOfIso (e : M ≅ N) :
    M.GeneratingSections ≃ N.GeneratingSections 
goal: M.GeneratingSections ≃ N.GeneratingSections

full_name: SheafOfModules.LocalGeneratorsData.I
code: /-- The data of generating sections of the restriction of a sheaf of modules
over a covering of the terminal object. -/
structure LocalGeneratorsData where
  /-- the index type of the covering -/
  I : Type u'
  /-- a family of objects which cover the terminal object -/
  X : I → C
  coversTop : J.CoversTop X
  /-- the data of sections of `M` over `X i` which generate `M.over (X i)` -/
  generators (i : I) : (M.over (X i)).GeneratingSections
goal: Type u'

full_name: SheafOfModules.LocalGeneratorsData
code: /-- The data of generating sections of the restriction of a sheaf of modules
over a covering of the terminal object. -/
structure LocalGeneratorsData where
  /-- the index type of the covering -/
  I : Type u'
  /-- a family of objects which cover the terminal object -/
  X : I → C
  coversTop : J.CoversTop X
  /-- the data of sections of `M` over `X i` which generate `M.over (X i)` -/
  generators (i : I) : (M.over (X i)).GeneratingSections
goal: Type (max (max (u + 1) (u' + 1)) v')

full_name: SheafOfModules.LocalGeneratorsData.generators
code: /-- The data of generating sections of the restriction of a sheaf of modules
over a covering of the terminal object. -/
structure LocalGeneratorsData where
  /-- the index type of the covering -/
  I : Type u'
  /-- a family of objects which cover the terminal object -/
  X : I → C
  coversTop : J.CoversTop X
  /-- the data of sections of `M` over `X i` which generate `M.over (X i)` -/
  generators (i : I) : (M.over (X i)).GeneratingSections
goal: (M.over (self.X i)).GeneratingSections

full_name: SheafOfModules.LocalGeneratorsData.X
code: /-- The data of generating sections of the restriction of a sheaf of modules
over a covering of the terminal object. -/
structure LocalGeneratorsData where
  /-- the index type of the covering -/
  I : Type u'
  /-- a family of objects which cover the terminal object -/
  X : I → C
  coversTop : J.CoversTop X
  /-- the data of sections of `M` over `X i` which generate `M.over (X i)` -/
  generators (i : I) : (M.over (X i)).GeneratingSections
goal: self.I → C

full_name: SheafOfModules.LocalGeneratorsData.coversTop
code: /-- The data of generating sections of the restriction of a sheaf of modules
over a covering of the terminal object. -/
structure LocalGeneratorsData where
  /-- the index type of the covering -/
  I : Type u'
  /-- a family of objects which cover the terminal object -/
  X : I → C
  coversTop : J.CoversTop X
  /-- the data of sections of `M` over `X i` which generate `M.over (X i)` -/
  generators (i : I) : (M.over (X i)).GeneratingSections
goal: J.CoversTop self.X

full_name: SheafOfModules.IsFiniteType.exists_localGeneratorsData
code: /-- A sheaf of modules is of finite type if locally, it is generated by finitely
many sections. -/
class IsFiniteType : Prop where
  exists_localGeneratorsData :
    ∃ (σ : M.LocalGeneratorsData), ∀ (i : σ.I), Finite (σ.generators i).I
goal: ∃ σ, ∀ (i : σ.I), Finite (σ.generators i).I

full_name: SheafOfModules.IsFiniteType
code: /-- A sheaf of modules is of finite type if locally, it is generated by finitely
many sections. -/
class IsFiniteType : Prop where
  exists_localGeneratorsData :
    ∃ (σ : M.LocalGeneratorsData), ∀ (i : σ.I), Finite (σ.generators i).I
goal: Prop

full_name: SheafOfModules.localGeneratorsDataOfIsFiniteType
code: /-- A choice of local generators when `M` is a sheaf of modules of finite type. -/
noncomputable def localGeneratorsDataOfIsFiniteType : M.LocalGeneratorsData 
goal: M.LocalGeneratorsData

full_name: SheafOfModules.instFiniteIOverXLocalGeneratorsDataOfIsFiniteTypeGenerators
code: instance (i : M.localGeneratorsDataOfIsFiniteType.I) :
    Finite (M.localGeneratorsDataOfIsFiniteType.generators i).I 
goal: Finite (M.localGeneratorsDataOfIsFiniteType.generators i).I