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

full_name: SheafOfModules.Presentation
code: /-- A global presentation of a sheaf of modules `M` consists of a family `generators.s`
of sections `s` which generate `M`, and a family of sections which generate
the kernel of the morphism `generators.π : free (generators.I) ⟶ M`. -/
structure Presentation where
  /-- generators -/
  generators : M.GeneratingSections
  /-- relations -/
  relations : (kernel generators.π).GeneratingSections
goal: Type (max (u + 1) u')

full_name: SheafOfModules.Presentation.relations
code: /-- A global presentation of a sheaf of modules `M` consists of a family `generators.s`
of sections `s` which generate `M`, and a family of sections which generate
the kernel of the morphism `generators.π : free (generators.I) ⟶ M`. -/
structure Presentation where
  /-- generators -/
  generators : M.GeneratingSections
  /-- relations -/
  relations : (kernel generators.π).GeneratingSections
goal: (CategoryTheory.Limits.kernel self.generators.π).GeneratingSections

full_name: SheafOfModules.Presentation.generators
code: /-- A global presentation of a sheaf of modules `M` consists of a family `generators.s`
of sections `s` which generate `M`, and a family of sections which generate
the kernel of the morphism `generators.π : free (generators.I) ⟶ M`. -/
structure Presentation where
  /-- generators -/
  generators : M.GeneratingSections
  /-- relations -/
  relations : (kernel generators.π).GeneratingSections
goal: M.GeneratingSections

full_name: SheafOfModules.QuasicoherentData.coversTop
code: /-- This structure contains the data of a family of objects `X i` which cover
the terminal object, and of a presentation of `M.over (X i)` for all `i`. -/
structure QuasicoherentData 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
  /-- a presentation of the sheaf of modules `M.over (X i)` for any `i : I` -/
  presentation (i : I) : (M.over (X i)).Presentation
goal: J.CoversTop self.X

full_name: SheafOfModules.QuasicoherentData
code: /-- This structure contains the data of a family of objects `X i` which cover
the terminal object, and of a presentation of `M.over (X i)` for all `i`. -/
structure QuasicoherentData 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
  /-- a presentation of the sheaf of modules `M.over (X i)` for any `i : I` -/
  presentation (i : I) : (M.over (X i)).Presentation
goal: Type (max (max (u + 1) (u' + 1)) v')

full_name: SheafOfModules.QuasicoherentData.presentation
code: /-- This structure contains the data of a family of objects `X i` which cover
the terminal object, and of a presentation of `M.over (X i)` for all `i`. -/
structure QuasicoherentData 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
  /-- a presentation of the sheaf of modules `M.over (X i)` for any `i : I` -/
  presentation (i : I) : (M.over (X i)).Presentation
goal: (M.over (self.X i)).Presentation

full_name: SheafOfModules.QuasicoherentData.I
code: /-- This structure contains the data of a family of objects `X i` which cover
the terminal object, and of a presentation of `M.over (X i)` for all `i`. -/
structure QuasicoherentData 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
  /-- a presentation of the sheaf of modules `M.over (X i)` for any `i : I` -/
  presentation (i : I) : (M.over (X i)).Presentation
goal: Type u'

full_name: SheafOfModules.QuasicoherentData.X
code: /-- This structure contains the data of a family of objects `X i` which cover
the terminal object, and of a presentation of `M.over (X i)` for all `i`. -/
structure QuasicoherentData 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
  /-- a presentation of the sheaf of modules `M.over (X i)` for any `i : I` -/
  presentation (i : I) : (M.over (X i)).Presentation
goal: self.I → C

full_name: SheafOfModules.QuasicoherentData.localGeneratorsData_I
code: /-- If `M` is quasicoherent, it is locally generated by sections. -/
@[simps]
def localGeneratorsData (q : M.QuasicoherentData) : M.LocalGeneratorsData 
goal: q.localGeneratorsData.I = q.I

full_name: SheafOfModules.QuasicoherentData.localGeneratorsData_X
code: /-- If `M` is quasicoherent, it is locally generated by sections. -/
@[simps]
def localGeneratorsData (q : M.QuasicoherentData) : M.LocalGeneratorsData 
goal: ∀ (a : q.I), q.localGeneratorsData.X a = q.X a

full_name: SheafOfModules.QuasicoherentData.localGeneratorsData
code: /-- If `M` is quasicoherent, it is locally generated by sections. -/
@[simps]
def localGeneratorsData (q : M.QuasicoherentData) : M.LocalGeneratorsData 
goal: M.LocalGeneratorsData

full_name: SheafOfModules.QuasicoherentData.localGeneratorsData_generators
code: /-- If `M` is quasicoherent, it is locally generated by sections. -/
@[simps]
def localGeneratorsData (q : M.QuasicoherentData) : M.LocalGeneratorsData 
goal: q.localGeneratorsData.generators i = (q.presentation i).generators

full_name: SheafOfModules.IsQuasicoherent.nonempty_quasicoherentData
code: /-- A sheaf of modules is quasi-coherent if it is locally the cokernel of a
morphism between coproducts of copies of the sheaf of rings. -/
class IsQuasicoherent : Prop where
  nonempty_quasicoherentData : Nonempty M.QuasicoherentData
goal: Nonempty M.QuasicoherentData

full_name: SheafOfModules.IsQuasicoherent
code: /-- A sheaf of modules is quasi-coherent if it is locally the cokernel of a
morphism between coproducts of copies of the sheaf of rings. -/
class IsQuasicoherent : Prop where
  nonempty_quasicoherentData : Nonempty M.QuasicoherentData
goal: Prop

full_name: SheafOfModules.IsFinitePresentation
code: /-- A sheaf of modules is finitely presented if it is locally the cokernel of a
morphism between coproducts of finitely many copies of the sheaf of rings.. -/
class IsFinitePresentation : Prop where
  exists_quasicoherentData :
    ∃ (σ : M.QuasicoherentData), ∀ (i : σ.I), (Finite (σ.presentation i).generators.I ∧
      Finite (σ.presentation i).relations.I)
goal: Prop

full_name: SheafOfModules.IsFinitePresentation.exists_quasicoherentData
code: /-- A sheaf of modules is finitely presented if it is locally the cokernel of a
morphism between coproducts of finitely many copies of the sheaf of rings.. -/
class IsFinitePresentation : Prop where
  exists_quasicoherentData :
    ∃ (σ : M.QuasicoherentData), ∀ (i : σ.I), (Finite (σ.presentation i).generators.I ∧
      Finite (σ.presentation i).relations.I)
goal: ∃ σ, ∀ (i : σ.I), Finite (σ.presentation i).generators.I ∧ Finite (σ.presentation i).relations.I

full_name: SheafOfModules.quasicoherentDataOfIsFinitePresentation
code: /-- A choice of local presentations when `M` is a sheaf of modules of finite presentation. -/
noncomputable def quasicoherentDataOfIsFinitePresentation : M.QuasicoherentData 
goal: M.QuasicoherentData

full_name: SheafOfModules.instFiniteIOverXQuasicoherentDataOfIsFinitePresentationGeneratorsPresentation
code: instance (i : M.quasicoherentDataOfIsFinitePresentation.I) :
    Finite (M.quasicoherentDataOfIsFinitePresentation.presentation i).generators.I 
goal: Finite (M.quasicoherentDataOfIsFinitePresentation.presentation i).generators.I

full_name: SheafOfModules.instFiniteIOverXQuasicoherentDataOfIsFinitePresentationRelationsPresentation
code: instance (i : M.quasicoherentDataOfIsFinitePresentation.I) :
    Finite (M.quasicoherentDataOfIsFinitePresentation.presentation i).relations.I 
goal: Finite (M.quasicoherentDataOfIsFinitePresentation.presentation i).relations.I

full_name: SheafOfModules.instIsFiniteTypeOfIsFinitePresentation
code: instance [M.IsFinitePresentation] : M.IsFiniteType 
goal: M.IsFiniteType