Documentation

Mathlib.RingTheory.Spectrum.Prime.FreeLocus

The free locus of a module #

Main definitions and results #

Let M be a finitely presented R-module.

def Module.freeLocus (R : Type uR) (M : Type uM) [CommRing R] [AddCommGroup M] [Module R M] :

The free locus of a module, i.e. the set of primes p such that Mₚ is free over Rₚ.

Equations
Instances For
    theorem Module.mem_freeLocus_of_isLocalization {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] (p : PrimeSpectrum R) (Rₚ : Type u_1) (Mₚ : Type u_2) [CommRing Rₚ] [Algebra R Rₚ] [IsLocalization.AtPrime Rₚ p.asIdeal] [AddCommGroup Mₚ] [Module R Mₚ] (f : M →ₗ[R] Mₚ) [IsLocalizedModule p.asIdeal.primeCompl f] [Module Rₚ Mₚ] [IsScalarTower R Rₚ Mₚ] :
    p freeLocus R M Free Rₚ Mₚ
    theorem Module.mem_freeLocus_iff_tensor {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] (p : PrimeSpectrum R) (Rₚ : Type u_1) [CommRing Rₚ] [Algebra R Rₚ] [IsLocalization.AtPrime Rₚ p.asIdeal] :
    p freeLocus R M Free Rₚ (TensorProduct R Rₚ M)
    theorem Module.freeLocus_congr {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] {M' : Type u_1} [AddCommGroup M'] [Module R M'] (e : M ≃ₗ[R] M') :
    noncomputable def Module.rankAtStalk {R : Type uR} (M : Type uM) [CommRing R] [AddCommGroup M] [Module R M] (p : PrimeSpectrum R) :

    The rank of M at the stalk of p is the rank of Mₚ as a Rₚ-module.

    Equations
    Instances For
      theorem Module.rankAtStalk_eq_of_equiv {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] {N : Type u_1} [AddCommGroup N] [Module R N] (e : M ≃ₗ[R] N) :
      @[simp]
      theorem Module.rankAtStalk_eq_finrank_of_free {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] [Free R M] :
      rankAtStalk M = (finrank R M)

      If M is R-free, its rank at stalks is constant and agrees with the R-rank of M.

      theorem Module.rankAtStalk_pi {R : Type uR} [CommRing R] {ι : Type u_1} [Finite ι] (M : ιType u_2) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [∀ (i : ι), Flat R (M i)] [∀ (i : ι), Module.Finite R (M i)] (p : PrimeSpectrum R) :
      rankAtStalk ((i : ι) → M i) p = ∑ᶠ (i : ι), rankAtStalk (M i) p

      The rank of Π i, M i at a prime p is the sum of the ranks of M i at p.

      theorem Module.rankAtStalk_prod {R : Type uR} (M : Type uM) [CommRing R] [AddCommGroup M] [Module R M] [Flat R M] [Module.Finite R M] (N : Type u_1) [AddCommGroup N] [Module R N] [Flat R N] [Module.Finite R N] :

      The rank of M × N at p is equal to the sum of the ranks.

      theorem Module.rankAtStalk_baseChange {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] [Flat R M] [Module.Finite R M] {S : Type u_1} [CommRing S] [Algebra R S] (p : PrimeSpectrum S) :
      theorem Module.rankAtStalk_tensorProduct {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] [Flat R M] [Module.Finite R M] (N : Type u_1) [AddCommGroup N] [Module R N] [Module.Finite R N] [Flat R N] :

      See rankAtStalk_tensorProduct_of_isScalarTower for a hetero-basic version.

      theorem Module.rankAtStalk_tensorProduct_of_isScalarTower {R : Type uR} {M : Type uM} [CommRing R] [AddCommGroup M] [Module R M] [Flat R M] [Module.Finite R M] {S : Type u_1} [CommRing S] [Algebra R S] (N : Type u_2) [AddCommGroup N] [Module R N] [Module S N] [IsScalarTower R S N] [Module.Finite S N] [Flat S N] (p : PrimeSpectrum S) :

      The rank of a module M at a prime p is equal to the dimension of κ(p) ⊗[R] M as a κ(p)-module.