File: Mathlib/AlgebraicGeometry/Modules/Tilde.lean

full_name: ModuleCat.Tilde.Localizations
code: /-- For an `R`-module `M` and a point `P` in `Spec R`, `Localizations P` is the localized module
`M` at the prime ideal `P`. -/
abbrev Localizations (P : PrimeSpectrum.Top R) 
goal: Type u

full_name: ModuleCat.Tilde.isFraction
code: /-- For any open subset `U ⊆ Spec R`, `IsFraction` is the predicate expressing that a function
`f : ∏_{x ∈ U}, Mₓ` is such that for any `𝔭 ∈ U`, `f 𝔭 = m / s` for some `m : M` and `s ∉ 𝔭`.
In short `f` is a fraction on `U`. -/
def isFraction {U : Opens (PrimeSpectrum R)} (f : ∀ 𝔭 : U, Localizations M 𝔭.1) : Prop 
goal: Prop

full_name: ModuleCat.Tilde.isFractionPrelocal
code: /--
The property of a function `f : ∏_{x ∈ U}, Mₓ` being a fraction is stable under restriction.
-/
def isFractionPrelocal : PrelocalPredicate (Localizations M) 
goal: TopCat.PrelocalPredicate (ModuleCat.Tilde.Localizations M)

full_name: ModuleCat.Tilde.isLocallyFraction
code: /--
For any open subset `U ⊆ Spec R`, `IsLocallyFraction` is the predicate expressing that a function
`f : ∏_{x ∈ U}, Mₓ` is such that for any `𝔭 ∈ U`, there exists an open neighbourhood `V ∋ 𝔭`, such
that for any `𝔮 ∈ V`, `f 𝔮 = m / s` for some `m : M` and `s ∉ 𝔮`.
In short `f` is locally a fraction on `U`.
-/
def isLocallyFraction : LocalPredicate (Localizations M) 
goal: TopCat.LocalPredicate (ModuleCat.Tilde.Localizations M)

full_name: ModuleCat.Tilde.isLocallyFraction_pred
code: @[simp]
theorem isLocallyFraction_pred {U : Opens (PrimeSpectrum.Top R)}
    (f : ∀ x : U, Localizations M x) :
    (isLocallyFraction M).pred f =
      ∀ y : U,
        ∃ (V : _) (_ : y.1 ∈ V) (i : V ⟶ U),
          ∃ (m : M) (s: R), ∀ x : V, ¬s ∈ x.1.asIdeal ∧ s • f (i x) =
            LocalizedModule.mkLinearMap x.1.asIdeal.primeCompl M m 
goal: (ModuleCat.Tilde.isLocallyFraction M).pred f =
  ∀ (y : ↥U),
    ∃ V,
      ∃ (_ : ↑y ∈ V),
        ∃ i m s,
          ∀ (x : ↥V),
            s ∉ (↑x).asIdeal ∧ s • f ((fun x => ⟨↑x, ⋯⟩) x) = (LocalizedModule.mkLinearMap (↑x).asIdeal.primeCompl ↑M) m

full_name: ModuleCat.Tilde.instModuleαCommRingObjOppositeOpensTopologicalSpaceTopCommRingCatValStructureSheafLocalizationsValMemSetCoeUnop
code: noncomputable instance (U : (Opens (PrimeSpectrum.Top R))ᵒᵖ) (x : U.unop):
    Module ((Spec.structureSheaf R).val.obj U) (Localizations M x)
goal: Module (↑((AlgebraicGeometry.Spec.structureSheaf R).val.obj U)) (ModuleCat.Tilde.Localizations M ↑x)

full_name: ModuleCat.Tilde.sections_smul_localizations_def
code: @[simp]
lemma sections_smul_localizations_def
    {U : (Opens (PrimeSpectrum.Top R))ᵒᵖ} (x : U.unop)
    (r : (Spec.structureSheaf R).val.obj U)
    (m : Localizations M ↑x) :
  r • m = r.1 x • m 
goal: r • m = ↑r x • m

full_name: ModuleCat.Tilde.sectionsSubmodule
code: /--
For any `R`-module `M` and any open subset `U ⊆ Spec R`, `M^~(U)` is an `𝒪_{Spec R}(U)`-submodule
of `∏_{𝔭 ∈ U} M_𝔭`. -/
def sectionsSubmodule (U : (Opens (PrimeSpectrum R))ᵒᵖ) :
    Submodule ((Spec.structureSheaf R).1.obj U) (∀ x : U.unop, Localizations M x.1) 
goal: Submodule (↑((AlgebraicGeometry.Spec.structureSheaf R).val.obj U))
  ((x : ↥(Opposite.unop U)) → ModuleCat.Tilde.Localizations M ↑x)

full_name: ModuleCat.tildeInType
code: /--
For any `R`-module `M`, `TildeInType R M` is the sheaf of set on `Spec R` whose sections on `U` are
the dependent functions that are locally fractions. This is often denoted by `M^~`.

See also `Tilde.isLocallyFraction`.
-/
def tildeInType : Sheaf (Type u) (PrimeSpectrum.Top R) 
goal: TopCat.Sheaf (Type u) (AlgebraicGeometry.PrimeSpectrum.Top R)

full_name: ModuleCat.instAddCommGroupObjOppositeOpensαTopologicalSpaceTopValTildeInType
code: instance (U : (Opens (PrimeSpectrum.Top R))ᵒᵖ) :
    AddCommGroup (M.tildeInType.1.obj U) 
goal: AddCommGroup (M.tildeInType.val.obj U)

full_name: ModuleCat.preTildeInAddCommGrp
code: /--
`M^~` as a presheaf of abelian groups over `Spec R`
-/
def preTildeInAddCommGrp : Presheaf AddCommGrp (PrimeSpectrum.Top R) 
goal: TopCat.Presheaf AddCommGrp (AlgebraicGeometry.PrimeSpectrum.Top R)

full_name: ModuleCat.tildeInAddCommGrp
code: /--
`M^~` as a sheaf of abelian groups over `Spec R`
-/
def tildeInAddCommGrp : Sheaf AddCommGrp (PrimeSpectrum.Top R) 
goal: TopCat.Sheaf AddCommGrp (AlgebraicGeometry.PrimeSpectrum.Top R)

full_name: ModuleCat.instModuleαRingObjOppositeOpensTopologicalSpaceCarrierCommRingCatSpecOfRingCatValRingCatSheafAddCommGroupTopAddCommGrpTildeInAddCommGrp
code: noncomputable instance (U : (Opens (PrimeSpectrum.Top R))ᵒᵖ) :
    Module ((Spec (.of R)).ringCatSheaf.1.obj U) (M.tildeInAddCommGrp.1.obj U) 
goal: Module ↑((AlgebraicGeometry.Spec (CommRingCat.of R)).ringCatSheaf.val.obj U) ↑(M.tildeInAddCommGrp.val.obj U)

full_name: ModuleCat.tilde
code: /--
`M^~` as a sheaf of `𝒪_{Spec R}`-modules
-/
noncomputable def tilde : (Spec (CommRingCat.of R)).Modules 
goal: (AlgebraicGeometry.Spec (CommRingCat.of R)).Modules