10.64 Symbolic powers to 10.84 Transfinite dévissage of…
Section10.64 Symbolic powers#
Section 10.64 of the Stacks Project, Tag 05G9. 3 tags here are carried by 3 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0313, a definition
Tag 0313 in the Stacks Project.
Ideal.symbolicPower, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/SymbolicPower.lean, line 49. References: EGA IV (11.4.7).
The
nth symbolic powerp ^ (n)of a prime idealpof a commutative semiringR: the kernel ofR → R_p / p ^ n R_p, realized as the contraction toRof the idealp ^ n R_pof the localizationR_p.
public def symbolicPower {R : Type*} [CommSemiring R] (p : Ideal R) [p.IsPrime] (n : ℕ) :
Ideal R
Tag 0314, a lemma
Tag 0314 in the Stacks Project.
ass_quotient_symbolicPower', a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/SymbolicPower/AssociatedPrimes.lean, line 166.
For a Noetherian ring
R, a prime idealp, andn > 0, the set of associated primes ofR / p^{(n)}is exactly{p}.
theorem ass_quotient_symbolicPower' {R : Type*} [CommRing R] [IsNoetherianRing R]
(p : Ideal R) [p.IsPrime] (n : ℕ) (hn : 0 < n) :
Stacks.AssociatedPrimes.assPrimes R (R ⧸ symbolicPower' p n) = {p}
Tag 0BC0, a lemma
Tag 0BC0 in the Stacks Project.
symbolicPower_map_of_flat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/SymbolicPower.lean, line 697.
For a flat ring map
R → Sand a primep ⊆ Rwhose extensionq = p Sis prime,p^{(n)} S = q^{(n)}.
theorem symbolicPower_map_of_flat {R S : Type*} [CommRing R] [CommRing S] (φ : R →+* S)
(hφ : φ.Flat) (p : Ideal R) [p.IsPrime] (hq : (p.map φ).IsPrime) (n : ℕ) :
(symbolicPower' p n).map φ = symbolicPower' (p.map φ) n
Sources
Section10.65 Relative assassin#
Section 10.65 of the Stacks Project, Tag 05GA. 5 tags here are carried by 5 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 05GB, a lemma
Tag 05GB in the Stacks Project.
Module.relativeAssassin_comparison, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/RelativeAssassin.lean, line 842.
Let
R → Sbe a ring map, letNbe anS-module, and letA,A',A_fin,A'_fin,B,B_finbe the six sets of primes ofSattached to this data: with𝔭 = R ∩ 𝔮, the primes𝔮associated toN ⊗_R κ(𝔭)overS, those in the image of the primes associated toN ⊗_R κ(𝔭)over the fibre ringS ⊗_R κ(𝔭), those associated toN / 𝔭N, those associated toN / 𝔭'Nfor some prime𝔭'ofR, those associated toN ⊗_R Mfor someR-moduleM, and those associated toN ⊗_R Mfor some finiteR-moduleM. Then (1)A = A'; (2)A_fin ⊆ A,B_fin ⊆ B,A_fin ⊆ A'_fin ⊆ B_finandA ⊆ B; (3) ifSis Noetherian thenA = A_finandB = B_fin; (4) ifNis flat overRthenA = A_fin = A'_finandB = B_fin; (5) ifRis Noetherian andNis flat overRthen all six sets are equal.
public theorem relativeAssassin_comparison (R : Type u) (S : Type v) [CommRing R] [CommRing S]
[Algebra R S] (N : Type w) [AddCommGroup N] [Module S N] [Module R N] [IsScalarTower R S N]
{A A' Afin A'fin B Bfin : Set (PrimeSpectrum S)}
(hA : A = {q | q.asIdeal ∈
associatedPrimes S (N ⊗[R] (PrimeSpectrum.comap (algebraMap R S) q).asIdeal.ResidueField)})
(hA' : A' = {q | ∃ Q : PrimeSpectrum
(S ⊗[R] (PrimeSpectrum.comap (algebraMap R S) q).asIdeal.ResidueField),
Q.asIdeal ∈ associatedPrimes
(S ⊗[R] (PrimeSpectrum.comap (algebraMap R S) q).asIdeal.ResidueField)
((S ⊗[R] (PrimeSpectrum.comap (algebraMap R S) q).asIdeal.ResidueField) ⊗[S] N) ∧
PrimeSpectrum.comap (algebraMap S
(S ⊗[R] (PrimeSpectrum.comap (algebraMap R S) q).asIdeal.ResidueField)) Q = q})
(hAfin : Afin = {q | q.asIdeal ∈ associatedPrimes S
(N ⧸ ((PrimeSpectrum.comap (algebraMap R S) q).asIdeal.map (algebraMap R S) •
(⊤ : Submodule S N)))})
(hA'fin : A'fin = {q | ∃ p : PrimeSpectrum R, q.asIdeal ∈ associatedPrimes S
(N ⧸ (p.asIdeal.map (algebraMap R S) • (⊤ : Submodule S N)))})
(hB : B = {q | ∃ (M : Type (max u v)) (_ : AddCommGroup M) (_ : Module R M),
q.asIdeal ∈ associatedPrimes S (N ⊗[R] M)})
(hBfin : Bfin = {q | ∃ (M : Type (max u v)) (_ : AddCommGroup M) (_ : Module R M)
(_ : Module.Finite R M), q.asIdeal ∈ associatedPrimes S (N ⊗[R] M)}) :
A = A' ∧
(Afin ⊆ A ∧ Bfin ⊆ B ∧ Afin ⊆ A'fin ∧ A'fin ⊆ Bfin ∧ A ⊆ B) ∧
(IsNoetherianRing S → A = Afin ∧ B = Bfin) ∧
(Module.Flat R N → A = Afin ∧ Afin = A'fin ∧ B = Bfin) ∧
(IsNoetherianRing R → Module.Flat R N →
A = A' ∧ A' = Afin ∧ Afin = A'fin ∧ A'fin = Bfin ∧ Bfin = B)
Tag 05GC, a definition
Tag 05GC in the Stacks Project.
Module.relativeAssassin, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/RelativeAssassin/Defs.lean, line 100.
The relative assassin
Ass_{S/R}(N)of anS-moduleNover a ring mapR → S: the set of primes𝔮ofSwhich, with𝔭 = R ∩ 𝔮the contraction of𝔮toR, are associated primes overSof the fibre moduleN ⊗_R κ(𝔭), that is, are the annihilator of some element of it. This is the setAofModule.relativeAssassin_comparison.
public def relativeAssassin : Set (PrimeSpectrum S)
Tag 0312, a lemma
Tag 0312 in the Stacks Project.
associatedPrimes.tensorProduct_of_flat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/AssociatedPrime/FlatBaseChange.lean, line 495.
Let
R → Sbe a ring map, letMbe anR-module and letNbe anS-module which is flat as anR-module. ThenAss_S(N ⊗_R M) ⊇ ⋃_{𝔭 ∈ Ass_R(M)} Ass_S(N / 𝔭N), and ifRis Noetherian this inclusion is an equality. HereAssis the set of primes that are the annihilator of an element, written out as such, and the index set of the equality isassociatedPrimes R M.
public theorem associatedPrimes.tensorProduct_of_flat {R S M N : Type*} [CommRing R] [CommRing S]
[Algebra R S] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module S N] [Module R N]
[IsScalarTower R S N] [Module.Flat R N] :
(⋃ p ∈ {p : Ideal R | p.IsPrime ∧ ∃ m : M, (⊥ : Submodule R M).colon {m} = p},
{q : Ideal S | q.IsPrime ∧
∃ w : N ⧸ (p.map (algebraMap R S) • (⊤ : Submodule S N)),
(⊥ : Submodule S (N ⧸ (p.map (algebraMap R S) • (⊤ : Submodule S N)))).colon {w} =
q}) ⊆
{q : Ideal S | q.IsPrime ∧ ∃ w : N ⊗[R] M, (⊥ : Submodule S (N ⊗[R] M)).colon {w} = q} ∧
(IsNoetherianRing R →
{q : Ideal S | q.IsPrime ∧ ∃ w : N ⊗[R] M, (⊥ : Submodule S (N ⊗[R] M)).colon {w} = q} =
⋃ p ∈ associatedPrimes R M,
{q : Ideal S | q.IsPrime ∧
∃ w : N ⧸ (p.map (algebraMap R S) • (⊤ : Submodule S N)),
(⊥ : Submodule S (N ⧸ (p.map (algebraMap R S) • (⊤ : Submodule S N)))).colon {w} =
q})
Tag 05C1, a lemma
Tag 05C1 in the Stacks Project.
Stacks.AssociatedPrimes.Localization.associatedPrimes_chain, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/AssociatedPrime/Localization.lean, line 311.
Stacks 05C1, combined (abstract). Under flatness, via the canonical map
Spec(S ⊗_R K) → Spec(S), we haveAss_S(N) = Ass_S(N ⊗_R K) = Ass_{S ⊗_R K}(N ⊗_R K), where the last equality is read as the preimage identity alongIdeal.comap (algebraMap S (S ⊗_R K)). All localization data are explicit hypotheses.
theorem associatedPrimes_chain [Module.Flat R N] (μN : N →ₗ[R] NK) (μNₛ : N →ₗ[S] NK)
(hSK : IsLocalization (Algebra.algebraMapSubmonoid S (nonZeroDivisors R)) SK)
(hμN : IsLocalizedModule (nonZeroDivisors R) μN)
(hμNₛ : IsLocalizedModule (Algebra.algebraMapSubmonoid S (nonZeroDivisors R)) μNₛ)
(hμ : ∀ n, μNₛ n = μN n) :
associatedPrimes S N = associatedPrimes S NK ∧
(Ideal.comap (algebraMap S SK)) ⁻¹' (associatedPrimes S NK)
= associatedPrimes SK NK
Tag 05C2, a lemma
Tag 05C2 in the Stacks Project.
associatedPrimes.tensorProduct_of_flat_fiberRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/AssociatedPrime/FlatTensorProduct.lean, line 420. References: EGA IV (3.3.1), “affine case”; EGA IV (3.3.6), “affine case, X = S”.
Stacks Tag 05C2. Let
R → Sbe a ring map, letMbe anR-module and letNbe anS-module which is flat as anR-module. ViewingSpec(S ⊗_R κ(𝔭))as a subset ofSpec(S)(Tag 00E6), we haveAss_S(N ⊗_R M) ⊇ ⋃_{𝔭 ∈ Ass_R(M)} Ass_{S ⊗_R κ(𝔭)}(N ⊗_R κ(𝔭)), and this inclusion is an equality ifRis Noetherian. HereAss_R(M)is the source's set of associated primes of Tag 00LA, the primes that are the annihilator of an element ofM; over a Noetherian ring it agrees with Mathlib'sassociatedPrimes, which is how the second assertion spells it.
public theorem associatedPrimes.tensorProduct_of_flat_fiberRing {R S M N : Type*} [CommRing R]
[CommRing S] [Algebra R S] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module S N]
[Module R N] [IsScalarTower R S N] [Module.Flat R N] :
(⋃ p ∈ {p : PrimeSpectrum R | ∃ m : M, (⊥ : Submodule R M).colon {m} = p.asIdeal},
PrimeSpectrum.comap (algebraMap S (S ⊗[R] p.asIdeal.ResidueField)) ''
{Q | Q.asIdeal ∈ associatedPrimes (S ⊗[R] p.asIdeal.ResidueField)
((S ⊗[R] p.asIdeal.ResidueField) ⊗[S] N)}) ⊆
{q : PrimeSpectrum S | q.asIdeal ∈ associatedPrimes S (N ⊗[R] M)} ∧
(IsNoetherianRing R →
{q : PrimeSpectrum S | q.asIdeal ∈ associatedPrimes S (N ⊗[R] M)} =
⋃ p ∈ {p : PrimeSpectrum R | p.asIdeal ∈ associatedPrimes R M},
PrimeSpectrum.comap (algebraMap S (S ⊗[R] p.asIdeal.ResidueField)) ''
{Q | Q.asIdeal ∈ associatedPrimes (S ⊗[R] p.asIdeal.ResidueField)
((S ⊗[R] p.asIdeal.ResidueField) ⊗[S] N)})
Sources
Section10.66 Weakly associated primes#
Section 10.66 of the Stacks Project, Tag 0546. 17 tags here are carried by 21 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0547, a definition
Tag 0547 in the Stacks Project.
IsWeaklyAssociatedPrime, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/WeaklyAssociatedPrime/Defs.lean, line 81. The attribute's comment: “predicate”.
A prime ideal
IofRis weakly associated to theR-moduleMifIis minimal among the prime ideals containing the annihilator(R ∙ m).annihilatorof some elementm ∈ M.
def IsWeaklyAssociatedPrime (I : Ideal R) : Prop
weaklyAssociatedPrimes, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/WeaklyAssociatedPrime/Defs.lean, line 86. The attribute's comment: “set”.
The set of weakly associated primes of
M(overR).
def weaklyAssociatedPrimes : Set (Ideal R)
Tag 0566, a lemma
Tag 0566 in the Stacks Project.
weaklyAssociated_iff_localization_and_exists_radical_eq, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/WeaklyAssociatedPrime/Defs.lean, line 247.
For a prime
pofR, the following are equivalent:
pis weakly associated toM;p R_pis weakly associated toM_p;- there exists
t ∈ M_pwith√(Ann_{R_p}(t)) = p R_p.
theorem weaklyAssociated_iff_localization_and_exists_radical_eq
(p : Ideal R) [p.IsPrime] :
(WeaklyAssociated p M ↔
WeaklyAssociated (IsLocalRing.maximalIdeal (Localization.AtPrime p))
(LocalizedModule.AtPrime p M))
∧ (WeaklyAssociated (IsLocalRing.maximalIdeal (Localization.AtPrime p))
(LocalizedModule.AtPrime p M) ↔
∃ t : LocalizedModule.AtPrime p M,
(annihilatorOfElem_semiring (R := Localization.AtPrime p) t).radical
= IsLocalRing.maximalIdeal (Localization.AtPrime p))
Tag 0EMA, a lemma
Tag 0EMA in the Stacks Project.
weakAss_eq_minimalPrimes0EMA, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/WeaklyAssociatedPrime/Defs.lean, line 505.
For a reduced commutative ring
R, the weakly associated primes ofRare exactly the minimal primes ofR.
theorem weakAss_eq_minimalPrimes0EMA [IsReduced R] :
weaklyAssociatedPrimes R R = minimalPrimes R
Tag 0548, a lemma
Tag 0548 in the Stacks Project.
Module.weaklyAssociatedPrimes_subset_of_injective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/AssociatedPrime/WeaklyAssociated.lean, line 680.
Stacks 0548, first inclusion. Let
Rbe a ring and letf : M →ₗ[R] M'be an injective map ofR-modules. ThenWeakAss(M) ⊆ WeakAss(M'), whereWeakAss(N)is the set of primes ofRminimal over the annihilator of an element ofN.
public theorem Module.weaklyAssociatedPrimes_subset_of_injective
{R : Type*} [CommSemiring R] {M M' : Type*}
[AddCommMonoid M] [Module R M] [AddCommMonoid M'] [Module R M']
{f : M →ₗ[R] M'} (hf : Function.Injective f) :
{p : Ideal R | ∃ m : M, p ∈ (R ∙ m).annihilator.minimalPrimes} ⊆
{p : Ideal R | ∃ m : M', p ∈ (R ∙ m).annihilator.minimalPrimes}
Module.weaklyAssociatedPrimes_subset_union_of_exact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/AssociatedPrime/WeaklyAssociated.lean, line 695.
Stacks 0548, second inclusion. Let
Rbe a ring and let0 → M → M' → M''be an exact sequence ofR-modules, i.e.f : M →ₗ[R] M'is injective with image the kernel ofg : M' →ₗ[R] M''. ThenWeakAss(M') ⊆ WeakAss(M) ∪ WeakAss(M''), whereWeakAss(N)is the set of primes ofRminimal over the annihilator of an element ofN.
public theorem Module.weaklyAssociatedPrimes_subset_union_of_exact
{R : Type*} [CommSemiring R] {M M' M'' : Type*}
[AddCommMonoid M] [Module R M] [AddCommMonoid M'] [Module R M']
[AddCommMonoid M''] [Module R M''] {f : M →ₗ[R] M'} {g : M' →ₗ[R] M''}
(hf : Function.Injective f) (hfg : Function.Exact f g) :
{p : Ideal R | ∃ m : M', p ∈ (R ∙ m).annihilator.minimalPrimes} ⊆
{p : Ideal R | ∃ m : M, p ∈ (R ∙ m).annihilator.minimalPrimes} ∪
{p : Ideal R | ∃ m : M'', p ∈ (R ∙ m).annihilator.minimalPrimes}
Tag 0588, a lemma
Tag 0588 in the Stacks Project.
weakAss_empty_iff_zero, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/WeaklyAssociatedPrime/Basic.lean, line 30.
Stacks Tag 0588 (Lemma 10.66.5): an
R-moduleMis the zero module if and only if it has no weakly associated primes.
theorem weakAss_empty_iff_zero {R : Type*} [CommRing R] {M : Type*} [AddCommGroup M]
[Module R M] :
(∀ m : M, m = 0) ↔ weaklyAssociatedPrimes R M = ∅
Tag 0589, a lemma
Tag 0589 in the Stacks Project.
StacksProblem.ass_subset_weakAss_subset_supp, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/AssociatedPrime/Defs.lean, line 313. References: SGA 2 III (1.2), “(ii) ⇒ (i)”.
Stacks tag 0589 (Lemma 10.66.6):
Ass(M) ⊆ WeakAss(M) ⊆ Supp(M).
theorem ass_subset_weakAss_subset_supp (R : Type*) [CommRing R] (M : Type*)
[AddCommGroup M] [Module R M] :
Ass R M ⊆ WeakAss R M ∧ WeakAss R M ⊆ Supp R M
Tag 05C3, a lemma
Tag 05C3 in the Stacks Project.
iUnion_weaklyAssociatedPrimes_eq_zeroDivisorsOn, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/WeaklyAssociatedPrime/Defs.lean, line 293.
Let
Rbe a commutative ring andManR-module. The union of the weakly associated primes ofMis the set of zerodivisors onM.
theorem iUnion_weaklyAssociatedPrimes_eq_zeroDivisorsOn
(R : Type*) [CommRing R] (M : Type*) [AddCommGroup M] [Module R M] :
(⋃ q ∈ weaklyAssociatedPrimes05C3 R M, (q : Set R)) = zeroDivisorsOn05C3 R M
Tag 05C4, a lemma
Tag 05C4 in the Stacks Project.
Module.exists_mem_minimalPrimes_annihilator_span_singleton_of_minimal_mem_support, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/AssociatedPrime/WeaklyAssociated.lean, line 466.
Stacks 05C4. Let
Rbe a ring andManR-module. Any prime𝔭which is minimal among the elements of the support ofMis weakly associated toM, i.e.𝔭is minimal over the annihilator of some element ofM.
public theorem Module.exists_mem_minimalPrimes_annihilator_span_singleton_of_minimal_mem_support
{R : Type*} [CommRing R] {M : Type*} [AddCommGroup M] [Module R M] {p : PrimeSpectrum R}
(hp : Minimal (· ∈ Module.support R M) p) :
∃ m : M, p.asIdeal ∈ (R ∙ m).annihilator.minimalPrimes
Tag 058A, a lemma
Tag 058A in the Stacks Project.
isAssociatedPrime_tfae_of_fg, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/AssociatedPrime/WeaklyAssociated.lean, line 312.
Stacks 058A. Let
Rbe a ring,ManR-module andpa finitely generated ideal ofR. Thenp ∈ Ass(M), i.e.pis prime and is the annihilator of an element ofM, iffpis an associated prime ofMin Mathlib's sense (the radical of the annihilator of an element), iffp ∈ WeakAss(M), i.e.pis minimal among the primes containing the annihilator of an element ofM.
public theorem isAssociatedPrime_tfae_of_fg {R : Type*} [CommSemiring R] {M : Type*}
[AddCommMonoid M] [Module R M] {p : Ideal R} (hp : p.FG) :
List.TFAE [(p.IsPrime ∧ ∃ m : M, p = (R ∙ m).annihilator),
IsAssociatedPrime p M,
∃ m : M, p ∈ (R ∙ m).annihilator.minimalPrimes]
associatedPrimes_eq_setOf_exists_mem_minimalPrimes_annihilator, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/AssociatedPrime/WeaklyAssociated.lean, line 323.
Stacks 058A, the Noetherian case. Let
Rbe a Noetherian ring andManR-module. ThenAss(M) = WeakAss(M): a prime ofRis the radical of the annihilator of an element ofMif and only if it is minimal among the primes containing the annihilator of an element ofM.
public theorem associatedPrimes_eq_setOf_exists_mem_minimalPrimes_annihilator {R : Type*}
[CommSemiring R] [IsNoetherianRing R] {M : Type*} [AddCommMonoid M] [Module R M] :
associatedPrimes R M =
{p : Ideal R | ∃ m : M, p ∈ (R ∙ m).annihilator.minimalPrimes}
Tag 05C6, a lemma
Tag 05C6 in the Stacks Project.
weakAss_subset_image_comap, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/WeaklyAssociatedPrime/Basic.lean, line 79. References: EGA IV (3.1.10.1), “Lifting inclusion”.
Stacks tag 05C6 (Lemma 10.66.11): for a ring map
φ : R → Sand anS-moduleMregarded as anR-module by restriction of scalars alongφ, every prime ofRweakly associated toMis the contraction alongφof a prime ofSweakly associated toM.
theorem weakAss_subset_image_comap
{R S : Type*} [CommRing R] [CommRing S] (φ : R →+* S)
{M : Type*} [AddCommGroup M] [Module S M] :
letI : Module R M := Module.compHom M φ
weaklyAssociatedPrimes R M ⊆ (Ideal.comap φ) '' (weaklyAssociatedPrimes S M)
Tag 05E1, a lemma
Tag 05E1 in the Stacks Project.
weakAss_eq_comap_image_of_finite, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/WeaklyAssociatedPrime/Functoriality.lean, line 262.
For a finite ring map
φ : R → Sand anS-moduleM, the weakly associated primes ofMoverRare exactly the contractions alongf = Spec(φ)of the weakly associated primes ofMoverS, i.e.WeakAss_R(M) = f(WeakAss_S(M))as subsets ofSpec(R).
theorem weakAss_eq_comap_image_of_finite (hfin : Module.Finite R S) :
{p : Ideal R | IsWeaklyAssociatedPrime R M p}
= (Ideal.comap (algebraMap R S)) '' {q : Ideal S | IsWeaklyAssociatedPrime S M q}
Tag 05C8, a lemma
Tag 05C8 in the Stacks Project.
weaklyAssociatedPrimes_comap_quotient, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/WeaklyAssociatedPrime/Defs.lean, line 342. References: EGA IV (3.1.10.1), “Quotient maps A → A/I”.
For a commutative ring
R, an idealI, and anR/I-moduleM(viewed as anR-module by restriction of scalars), the canonical injectionπ* = Ideal.comap (R → R/I)carries the weakly associated primes computed overR/Ionto those computed overR.
theorem weaklyAssociatedPrimes_comap_quotient :
Ideal.comap (Ideal.Quotient.mk I) '' weaklyAssociatedPrimes (R ⧸ I) M
= weaklyAssociatedPrimes R M
Tag 05C9, a lemma
Tag 05C9 in the Stacks Project.
weakAss_localizedModule_eq_image, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/WeaklyAssociatedPrime/Defs.lean, line 436. The attribute's comment: “(1)”.
WeakAss_R(S⁻¹M) = ι(WeakAss_{S⁻¹R}(S⁻¹M)): theR-module weakly associated primes ofS⁻¹Mare the image underιof theS⁻¹R-module weakly associated primes ofS⁻¹M.
theorem weakAss_localizedModule_eq_image :
weakAss R (LocalizedModule S M) =
localizationComap S '' (weakAss (Localization S) (LocalizedModule S M))
weakAss_inter_image_eq_weakAss_localizedModule, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/WeaklyAssociatedPrime/Defs.lean, line 466. The attribute's comment: “(2)”.
{ p ∈ WeakAss_R(M) | p ∈ ι(Spec(S⁻¹R)) } = WeakAss_R(S⁻¹M): the primes weakly associated toMand lying in the image ofι(i.e. disjoint fromS) are exactly the primes weakly associated toS⁻¹M.
theorem weakAss_inter_image_eq_weakAss_localizedModule :
{p ∈ weakAss R M | p ∈ Set.range (localizationComap S)} =
weakAss R (LocalizedModule S M)
Tag 05CA, a lemma
Tag 05CA in the Stacks Project.
Module.weaklyAssociatedPrimes_eq_of_isSMulRegular_of_isLocalizedModule, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/WeaklyAssociatedPrime/Localization.lean, line 172.
Stacks 05CA. Let
Rbe a ring,ManR-module andS ⊆ Ra multiplicative subset such that everys ∈ Sis a nonzerodivisor onM. ThenMand its localizationS⁻¹Mhave the same weakly associated primes:WeakAss(M) = WeakAss(S⁻¹M), whereWeakAss(N)is the set of primes ofRminimal over the annihilator of an element ofN.
public theorem Module.weaklyAssociatedPrimes_eq_of_isSMulRegular_of_isLocalizedModule
{R : Type*} [CommSemiring R] {M M' : Type*}
[AddCommMonoid M] [Module R M] [AddCommMonoid M'] [Module R M']
(S : Submonoid R) (f : M →ₗ[R] M') [IsLocalizedModule S f]
(hS : ∀ s ∈ S, IsSMulRegular M s) :
{p : Ideal R | ∃ m : M, p ∈ (R ∙ m).annihilator.minimalPrimes} =
{p : Ideal R | ∃ m : M', p ∈ (R ∙ m).annihilator.minimalPrimes}
Tag 05CB, a lemma
Tag 05CB in the Stacks Project.
Module.injective_pi_localization_weaklyAssociatedPrimes, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/WeaklyAssociatedPrime/Separation.lean, line 197.
Stacks 05CB. Let
Rbe a ring andManR-module. The canonical mapM → ∏_{𝔭 ∈ WeakAss(M)} M_𝔭fromMto the product of its localizations at the weakly associated primes ofM— the primes minimal over the annihilator of an element ofM— is injective.
public theorem Module.injective_pi_localization_weaklyAssociatedPrimes
{R : Type*} [CommRing R] {M : Type*} [AddCommGroup M] [Module R M]
{Mₚ : {p : PrimeSpectrum R // ∃ m : M, p.asIdeal ∈ (R ∙ m).annihilator.minimalPrimes} → Type*}
[∀ p, AddCommMonoid (Mₚ p)] [∀ p, Module R (Mₚ p)] (f : ∀ p, M →ₗ[R] Mₚ p)
[∀ p, IsLocalizedModule.AtPrime p.1.asIdeal (f p)] :
Function.Injective (LinearMap.pi f)
Tag 05CC, a lemma
Tag 05CC in the Stacks Project.
Stacks.WeaklyAssociatedPrimes.BaseChange.weakAss_eq_of_flat_domain, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/WeaklyAssociatedPrime/Localization.lean, line 341.
Stacks tag 05CC (Lemma 10.66.18): let
R → Sbe a ring map andNanS-module that is flat over the domainR(withModule R Ncompatible with theS-action viaIsScalarTower R S N). IdentifyingS ⊗_R KwithA = Localization T_S,N ⊗_R KwithM = LocalizedModule T_S N, andSpec(S ⊗_R K)with its image inSpec(S)underPrimeSpectrum.comap (algebraMap S A), the weakly associated primes ofNoverSare exactly the images of the weakly associated primes ofN ⊗_R KoverS ⊗_R K: a primeqofSis weakly associated toNif and only if there is a primeq'ofAthat is weakly associated toMand whose contraction alongS → Aequalsq.
theorem weakAss_eq_of_flat_domain
[Module.Flat R N] (q : PrimeSpectrum S) :
IsWeaklyAssociatedPrime S N q.asIdeal ↔
∃ q' : PrimeSpectrum (Localization (baseChangeSubmonoid R S)),
IsWeaklyAssociatedPrime (Localization (baseChangeSubmonoid R S))
(LocalizedModule (baseChangeSubmonoid R S) N) q'.asIdeal ∧
PrimeSpectrum.comap (algebraMap S (Localization (baseChangeSubmonoid R S))) q' = q
Tag 0CUB, a lemma
Tag 0CUB in the Stacks Project.
IsWeaklyAssociatedPrime.comap_tensorProduct_field, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/AssociatedPrime/WeaklyAssociatedFieldExtension.lean, line 499.
Stacks 0CUB. Let
K / kbe a field extension,Rak-algebra andManR-module. If a prime𝔮 ⊂ R ⊗[k] Kis weakly associated toM ⊗[k] K, here written as the base change(R ⊗[k] K) ⊗[R] M, then the prime𝔭 = 𝔮 ∩ Rit lies over is weakly associated toM.
theorem IsWeaklyAssociatedPrime.comap_tensorProduct_field {k K R M : Type*} [Field k]
[Field K] [Algebra k K] [CommRing R] [Algebra k R] [AddCommGroup M] [Module R M]
{q : Ideal (R ⊗[k] K)} (hq : IsWeaklyAssociatedPrime (R ⊗[k] K) ((R ⊗[k] K) ⊗[R] M) q) :
IsWeaklyAssociatedPrime R M (q.comap (algebraMap R (R ⊗[k] K)))
Sources
Section10.67 Embedded primes#
Section 10.67 of the Stacks Project, Tag 02M4. 4 tags here are carried by 4 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 02M5, a definition
Tag 02M5 in the Stacks Project.
IsEmbeddedAssociatedPrime, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/AssociatedPrime/Embedded.lean, line 899.
Definition 1 (Embedded associated prime). A prime
𝔭is an embedded associated prime ofMif it is an associated prime ofMthat is not minimal among the associated primes ofM, i.e. there is an associated prime𝔮ofMwith𝔮 ⊊ 𝔭.
def IsEmbeddedAssociatedPrime
(R M : Type*) [CommRing R] [AddCommGroup M] [Module R M] (𝔭 : Ideal R) : Prop
Tag 02M6, a lemma
Tag 02M6 in the Stacks Project.
Module.exists_isGreatest_isNowhereDense_support, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/AssociatedPrime/Embedded.lean, line 421.
Let
Rbe a Noetherian ring andMa finiteR-module. The set ofR-submodulesK ⊆ Mwhose support is nowhere dense inSupp(M)has a largest elementK, and the quotientM' = M / Ksatisfies: (1)Supp(M) = Supp(M'); (2) every associated prime ofM'is minimal among the associated primes ofM', that is,M'has no embedded associated primes; (3) for everyf ∈ Rlying in all embedded associated primes ofM, the localization ofM → M'at the powers offis bijective, soM_f ≅ M'_f.
public theorem exists_isGreatest_isNowhereDense_support :
∃ K : Submodule R M,
IsGreatest {K : Submodule R M |
IsNowhereDense (Subtype.val ⁻¹' support R ↥K : Set ↥(support R M))} K ∧
support R (M ⧸ K) = support R M ∧
(∀ p ∈ associatedPrimes R (M ⧸ K), Minimal (· ∈ associatedPrimes R (M ⧸ K)) p) ∧
∀ f : R, (∀ p ∈ associatedPrimes R M, ¬ Minimal (· ∈ associatedPrimes R M) p → f ∈ p) →
Function.Bijective (LocalizedModule.map (Submonoid.powers f) K.mkQ)
Tag 02M7, a lemma
Tag 02M7 in the Stacks Project.
Module.isGreatest_isNowhereDense_support_localized', a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/AssociatedPrime/Embedded.lean, line 859.
Let
Rbe a Noetherian ring,Ma finiteR-module, and letK ⊆ Mbe the largestR-submodule whose support is nowhere dense inSupp(M), as produced byModule.exists_isGreatest_isNowhereDense_support. LetRₚbe the localization ofRat a submonoidpandg : M →ₗ[R] Mₚthe localization ofMatp. Then the localized submoduleKₚ ⊆ Mₚis the largestRₚ-submodule ofMₚwhose support is nowhere dense inSupp(Mₚ). Since(M ⧸ K)ₚ = Mₚ ⧸ Kₚ, this says that removing the embedded associated primes commutes with localization:(M')ₚ = (Mₚ)'.
public theorem isGreatest_isNowhereDense_support_localized' (p : Submonoid R)
[IsLocalization p Rₚ] (g : M →ₗ[R] Mₚ) [IsLocalizedModule p g] {K : Submodule R M}
(hK : IsGreatest {K : Submodule R M |
IsNowhereDense (Subtype.val ⁻¹' support R ↥K : Set ↥(support R M))} K) :
IsGreatest {L : Submodule Rₚ Mₚ |
IsNowhereDense (Subtype.val ⁻¹' support Rₚ ↥L : Set ↥(support Rₚ Mₚ))}
(K.localized' Rₚ p g)
Tag 02M8, a lemma
Tag 02M8 in the Stacks Project.
hasNoEmbeddedAssociatedPrimes_quotient_annihilator, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/AssociatedPrime/Embedded.lean, line 980.
Theorem (Stacks Tag 02M8). Let
Rbe a Noetherian commutative ring andMa finiteR-module having no embedded associated primes. LetIbe the annihilator ofM. ThenR ⧸ I, viewed as a module over itself, has no embedded associated primes (i.e. the ringR ⧸ Ihas no embedded primes, in the sense ofHasNoEmbeddedAssociatedPrimes).
theorem hasNoEmbeddedAssociatedPrimes_quotient_annihilator
(R M : Type*) [CommRing R] [IsNoetherianRing R]
[AddCommGroup M] [Module R M] [Module.Finite R M]
(hM : HasNoEmbeddedAssociatedPrimes R M) :
HasNoEmbeddedAssociatedPrimes (R ⧸ Module.annihilator R M) (R ⧸ Module.annihilator R M)
Sources
Section10.68 Regular sequences#
Section 10.68 of the Stacks Project, Tag 0AUH. 9 tags here are carried by 8 declarations of the repository (all in StacksFrontier) and 5 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00LF, a definition
Tag 00LF in the Stacks Project.
Declarations registered for the tag:
RingTheory.Sequence.IsRegularregistered withadd_to_stacksin StacksFrontier/RingTheory/Sequence/Regular/Basic.lean, line 93 (StacksFrontier): “anM-regular sequence”. References: EGA 0 (15.1.7), “nonzero quotient added”; SGA 1 II (4.14).RingTheory.Sequence.isRegular_iffregistered withadd_to_stacksin StacksFrontier/RingTheory/Sequence/Regular/Basic.lean, line 96 (StacksFrontier): “its two conditions”.RingTheory.Sequence.IsWeaklyRegularregistered withadd_to_stacksin StacksFrontier/RingTheory/Sequence/Regular/Basic.lean, line 97 (StacksFrontier): “condition (1): eachfᵢis a nonzerodivisor on the previous quotient”. References: EGA 0 (15.2.2), “special case”; EGA IV (19.5.1); EGA 0 (15.1.7), “M-regular sequence”.RingTheory.Sequence.isWeaklyRegular_iffregistered withadd_to_stacksin StacksFrontier/RingTheory/Sequence/Regular/Basic.lean, line 102 (StacksFrontier): “condition (1), unfolded”. References: EGA 0 (15.1.7), “M-regular sequence”.
Tag 00LG, an example
Tag 00LG in the Stacks Project.
regularSequence_xyz_one_sub_x, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Sequence/Regular/Basic.lean, line 281. The attribute's comment: “(1)”.
The sequence
x, y(1-x), z(1-x)is a regular sequence onk[x, y, z].
theorem regularSequence_xyz_one_sub_x (k : Type) [Field k] :
RingTheory.Sequence.IsRegular (mvPolyRingFin3 k)
([X 0, X 1 * (1 - X 0), X 2 * (1 - X 0)] : List (mvPolyRingFin3 k))
not_regularSequence_permuted_xyz_one_sub_x, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Sequence/Regular/Basic.lean, line 295. The attribute's comment: “(2)”.
The sequence
y(1-x), z(1-x), xis not a regular sequence onk[x, y, z].
theorem not_regularSequence_permuted_xyz_one_sub_x (k : Type) [Field k] :
¬ RingTheory.Sequence.IsRegular (mvPolyRingFin3 k)
([X 1 * (1 - X 0), X 2 * (1 - X 0), X 0] : List (mvPolyRingFin3 k))
Tag 00LJ, a lemma
Tag 00LJ in the Stacks Project.
Declarations registered for the tag:
IsLocalRing.isRegular_of_permregistered withadd_to_stacksin StacksFrontier/RingTheory/Sequence/Regular/Permutation.lean, line 18 (StacksFrontier): “for a Noetherian module over a local ring”.
Tag 00LM, a lemma
Tag 00LM in the Stacks Project.
RingTheory.Sequence.isRegular_map_algebraMap_iff_of_faithfullyFlat_of_isBaseChange, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Sequence/BaseChange.lean, line 155. References: EGA 0 (15.1.14), “converse (ff case)”; EGA 0 (15.2.5), “affine, faithfully flat”; EGA 0 (15.1.13), “special case”; SGA 3 VIIB (5.5.2), “special case”.
Let
Rbe a commutative ring,ManR-module,Sa faithfully flatR-algebra andf : M →ₗ[R] Na base change ofMtoS. Then a sequencersinRisM-regular if and only if its image inSisN-regular.
public theorem isRegular_map_algebraMap_iff_of_faithfullyFlat_of_isBaseChange
{f : M →ₗ[R] N} (hf : IsBaseChange S f) (rs : List R) :
IsRegular N (rs.map (algebraMap R S)) ↔ IsRegular M rs
Tag 061L, a lemma
Tag 061L in the Stacks Project.
regular_sequence_localize_away_of_atPrime, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Sequence/Regular/Basic.lean, line 580. References: EGA 0 (15.2.4), “special case”.
Regularity of a sequence over the localization at a prime spreads out to a localization away from some element not in the prime.
theorem regular_sequence_localize_away_of_atPrime
{R : Type*} [CommRing R] [IsNoetherianRing R]
{M : Type*} [AddCommGroup M] [Module R M] [Module.Finite R M]
(p : Ideal R) [p.IsPrime] (xs : List R)
(hp : IsRegular (LocalizedModule p.primeCompl M)
(xs.map (algebraMap R (Localization.AtPrime p)))) :
∃ g ∈ p.primeCompl,
IsRegular (LocalizedModule (Submonoid.powers g) M)
(xs.map (algebraMap R (Localization.Away g)))
Tag 065K, a lemma
Tag 065K in the Stacks Project.
Stacks.RingTheory.Sequence.isRegular_append_of_isRegular_quotient, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Sequence/Regular/Append.lean, line 50.
Let
fbe a regular sequence inAgenerating the idealI, and letgbe a list of elements ofAwhose images inA ⧸ Iform a regular sequence. Thenf ++ gis a regular sequence inA.
theorem isRegular_append_of_isRegular_quotient {A : Type*} [CommRing A] {I : Ideal A}
{f g : List A} (hf : IsRegular A f) (hI : Ideal.ofList f = I)
(hg : IsRegular (A ⧸ I) (g.map (Ideal.Quotient.mk I))) : IsRegular A (f ++ g)
Tag 0F1T, a lemma
Tag 0F1T in the Stacks Project.
isRegular_of_shortExact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Sequence/Regular/Basic.lean, line 670.
Given a short exact sequence
0 → M₁ →[α] M₂ →[β] M₃ → 0ofR-modules, if a sequencersof elements ofRis bothM₁-regular andM₃-regular, then it isM₂-regular.
theorem isRegular_of_shortExact {R : Type*} [CommRing R]
{M₁ M₂ M₃ : Type*} [AddCommGroup M₁] [Module R M₁]
[AddCommGroup M₂] [Module R M₂] [AddCommGroup M₃] [Module R M₃]
(α : M₁ →ₗ[R] M₂) (β : M₂ →ₗ[R] M₃)
(hα : Function.Injective α) (hβ : Function.Surjective β)
(hexact : LinearMap.range α = LinearMap.ker β)
(rs : List R)
(h1 : IsRegular M₁ rs) (h3 : IsRegular M₃ rs) :
IsRegular M₂ rs
Tag 07DV, a lemma
Tag 07DV in the Stacks Project.
RingTheory.Sequence.isRegular_zipWith_pow_iff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Sequence/Powers.lean, line 302. References: EGA 0 (15.1.20), “first assertion”.
Stacks 07DV. Let
Rbe a commutative ring, letMbe anR-module, letrs = [f₁, …, f_r]be a list of elements ofRand letes = [e₁, …, e_r]be a list of positive integers of the same length. Thenf₁ ^ e₁, …, f_r ^ e_ris anM-regular sequence if and only iff₁, …, f_ris anM-regular sequence.
public theorem RingTheory.Sequence.isRegular_zipWith_pow_iff {R : Type*} [CommRing R]
(M : Type*) [AddCommGroup M] [Module R M] {rs : List R} {es : List ℕ}
(hlen : rs.length = es.length) (hes : ∀ e ∈ es, 0 < e) :
IsRegular M (rs.zipWith (· ^ ·) es) ↔ IsRegular M rs
Tag 07DW, a lemma
Tag 07DW in the Stacks Project.
tfae_isRegular_perm_sublist_polySeq, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Sequence/Regular/Permutation.lean, line 721.
Stacks Tag 07DW (Lemma 10.68.10). For
fs = [f_1, …, f_r] : List Rwhose entries do not generate the unit ideal (Ideal.span {x | x ∈ fs} ≠ ⊤, i.e.(f_1, …, f_r) ≠ R), the three conditions are equivalent. The proof is the 3-cycle1 → 2 → 3 → 1:1 → 2extends a sublist to a permutation;2 → 3issg_two_to_three(Stacks 07DV);3 → 1issg_three_to_one(variable-permutation automorphism + descent).
theorem tfae_isRegular_perm_sublist_polySeq (fs : List R) (hfs : Ideal.span {x | x ∈ fs} ≠ ⊤) :
List.TFAE
[ ∀ l' : List R, l'.Perm fs → IsRegular R l',
∀ l' : List R, l' <+ fs → IsRegular R l',
IsRegular (MvPolynomial (Fin fs.length) R) (polySeq fs) ]
Sources
Section10.69 Quasi-regular sequences#
Section 10.69 of the Stacks Project, Tag 061M. 8 tags here are carried by 9 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 061N, an equation
Tag 061N in the Stacks Project.
quasiRegularCanonicalMap, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Sequence/QuasiRegular/Defs.lean, line 220. References: EGA 0 (15.1.1); EGA 0 (15.1.4); EGA 0 (15.1.5), “special case”; EGA 0 (15.2.1), “special case”; EGA 0 (17.1.1), “more general”; EGA IV (19.5.1); EGA IV (19.5.4), “more general”; EGA IV (19.6.2), “special case”; EGA IV (19.7.1), “special case”.
The canonical map
φ : S → T, the(R/J)-linear map induced bycanonicalBilin. On a monomial generator it sendsX^e ⊗ m̄ ↦ (f^e · m mod J^{|e|+1}M).
noncomputable def quasiRegularCanonicalMap {c : ℕ} (f : Fin c → R) :
Source M f →ₗ[qrRbar f] Target M f
Tag 061P, a definition
Tag 061P in the Stacks Project.
RingTheory.Sequence.IsQuasiRegular, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Sequence/QuasiRegular/Defs/Defs.lean, line 50. References: EGA 0 (15.1.7), “quasi-regular half”; EGA 0 (15.1.4), “M-quasi-regular”; EGA 0 (15.2.2), “special case”; EGA IV (19.5.1); EGA IV (19.5.5.2), “more general”.
A sequence
rs = f_1, …, f_cof elements of a commutative ringRisM-quasi-regular, for anR-moduleM, if the canonical map of graded(R/J)[X_1, …, X_c]-modulesΦ_M : (R/J)[X_1, …, X_c] ⊗_{R/J} (M/JM) → ⨁_{n ≥ 0} J^n M / J^{n+1} M,X_1^{e_1} ⋯ X_c^{e_c} ⊗ m̄ ↦ f_1^{e_1} ⋯ f_c^{e_c} m mod J^{e_1 + … + e_c + 1} M, is an isomorphism, whereJ = (f_1, …, f_c). AnR-quasi-regular sequence is called simply a quasi-regular sequence.
def IsQuasiRegular {R : Type*} [CommRing R] (M : Type*) [AddCommGroup M] [Module R M]
(rs : List R) : Prop
Tag 00LN, a lemma
Tag 00LN in the Stacks Project.
Stacks.QuasiregularSequence.isRegular_isQuasiregularSeq, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Sequence/QuasiRegular/Basic/RegularIsQuasiRegular.lean, line 900. The attribute's comment: “(2)”. References: EGA 0 (15.1.10), “necessity”; EGA 0 (15.1.9), “first assertion”; EGA IV (19.5.1), “a) ⇒ c)”.
Statement 2. An
M-regular sequence (Mathlib'sIsRegular, i.e. the full Definition 1 includingM/JM ≠ 0) isM-quasi-regular.Proved by REVERSE induction (last-element peel) on
rsviaList.reverseRecOn, usingisQuasiregularSeq_snocfor the step.
theorem isRegular_isQuasiregularSeq (M : Type*) [AddCommGroup M] [Module R M] (rs : List R)
(h : RingTheory.Sequence.IsRegular M rs) : IsQuasiregularSeq rs M
Stacks.QuasiregularSequence.isRegular_isQuasiregularSeq_self, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Sequence/QuasiRegular/Basic/RegularIsQuasiRegular.lean, line 921. The attribute's comment: “(1)”. References: EGA 0 (15.1.9), “first part, M = R”; EGA IV (19.5.1), “a) ⇒ c) for M = A”.
Statement 1. A regular sequence of
R(the caseM = R) is a quasi-regular sequence. This is the special caseM = Rof Statement 2.
theorem isRegular_isQuasiregularSeq_self (rs : List R) (h : RingTheory.Sequence.IsRegular R rs) :
IsQuasiregularSeq rs R
Tag 065L, a lemma
Tag 065L in the Stacks Project.
RingTheory.Sequence.IsQuasiRegular.of_flat_of_isBaseChange, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Sequence/QuasiRegular/Basic/FlatBaseChangeAndLocalConverse.lean, line 357.
Stacks 065L. Let
R → Sbe a flat ring map,ManR-module andrs = f_1, …, f_ranM-quasi-regular sequence inR. Then the images off_1, …, f_rinSform aM ⊗_R S-quasi-regular sequence, where the base change is taken abstractly:Nis anyS-module receiving anR-linearf : M →ₗ[R] Nthat exhibits it as the base change ofM.
public theorem IsQuasiRegular.of_flat_of_isBaseChange {R S M N : Type*} [CommRing R] [CommRing S]
[Algebra R S] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] [Module S N]
[IsScalarTower R S N] [Module.Flat R S] {f : M →ₗ[R] N} (hf : IsBaseChange S f) {rs : List R}
(reg : IsQuasiRegular M rs) : IsQuasiRegular N (rs.map (algebraMap R S))
Tag 061Q, a lemma
Tag 061Q in the Stacks Project.
RingTheory.Sequence.exists_notMem_isQuasiRegular_away_of_isQuasiRegular_atPrime, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Sequence/QuasiRegular/Basic/SpreadToStandardOpen.lean, line 502.
Stacks 061Q. Let
Rbe a Noetherian ring,Ma finiteR-module,𝔭 ⊂ Ra prime andrs = x₁, …, x_ca sequence of elements ofRwhose image inR_𝔭isM_𝔭-quasi-regular. Then there is ag ∈ R,g ∉ 𝔭, such that the image ofrsinR_gisM_g-quasi-regular.
public theorem exists_notMem_isQuasiRegular_away_of_isQuasiRegular_atPrime {R : Type*} [CommRing R]
[IsNoetherianRing R] {M : Type*} [AddCommGroup M] [Module R M] [Module.Finite R M]
(p : Ideal R) [p.IsPrime] (rs : List R) (Rₚ : Type*) [CommRing Rₚ] [Algebra R Rₚ]
[IsLocalization.AtPrime Rₚ p] (Mₚ : Type*) [AddCommGroup Mₚ] [Module R Mₚ] [Module Rₚ Mₚ]
[IsScalarTower R Rₚ Mₚ] (fₚ : M →ₗ[R] Mₚ) [IsLocalizedModule p.primeCompl fₚ]
(hp : IsQuasiRegular Mₚ (rs.map (algebraMap R Rₚ))) :
∃ g ∉ p,
∀ (Rg : Type*) [CommRing Rg] [Algebra R Rg] [IsLocalization.Away g Rg] (Mg : Type*)
[AddCommGroup Mg] [Module R Mg] [Module Rg Mg] [IsScalarTower R Rg Mg] (fg : M →ₗ[R] Mg)
[IsLocalizedModule (Submonoid.powers g) fg],
IsQuasiRegular Mg (rs.map (algebraMap R Rg))
Tag 061R, a lemma
Tag 061R in the Stacks Project.
RingTheory.Sequence.IsQuasiRegular.quasiRegular_drop_mod_prev, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Sequence/QuasiRegular/Basic/QuotientByPrefix.lean, line 554.
Stacks 061R. Let
Mbe a module over a commutative ringRand letrs = f_1, …, f_cbe anM-quasi-regular sequence inR. For anyi, the imagesf̄_{i+1}, …, f̄_cof the remaining elements inR̄ = R/(f_1, …, f_i)form anM̄-quasi-regular sequence, whereM̄ = M/(f_1, …, f_i)M.
public theorem IsQuasiRegular.quasiRegular_drop_mod_prev {R M : Type*} [CommRing R]
[AddCommGroup M] [Module R M] {rs : List R} (reg : IsQuasiRegular M rs) (i : ℕ) :
IsQuasiRegular (M ⧸ (Ideal.ofList (rs.take i) • ⊤ : Submodule R M))
((rs.drop i).map (Ideal.Quotient.mk (Ideal.ofList (rs.take i))))
Tag 061S, a lemma
Tag 061S in the Stacks Project.
RingTheory.Sequence.IsRegular.of_isQuasiRegular_of_mem_maximalIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Sequence/QuasiRegular/Basic/FlatBaseChangeAndLocalConverse.lean, line 708. References: EGA 0 (15.1.9), “converse, local”; EGA 0 (15.1.11), “converse, local case”; EGA 0 (15.2.2), “converse: q-reg ⇒ reg”; EGA IV (16.9.11), “local Noetherian ring”; EGA 0 (15.1.10), “sufficiency”; EGA 0 (15.1.3), “partial”; EGA IV (16.9.12), “parenthetical”; EGA IV (19.5.1), “special case”.
Stacks 061S. Let
(R, 𝔪)be a local Noetherian ring and letMbe a nonzero finiteR-module. AnM-quasi-regular sequencef_1, …, f_cof elements of𝔪is anM-regular sequence.
public theorem IsRegular.of_isQuasiRegular_of_mem_maximalIdeal {R M : Type*} [CommRing R]
[IsLocalRing R] [IsNoetherianRing R] [AddCommGroup M] [Module R M] [Nontrivial M]
[Module.Finite R M] {rs : List R} (mem : ∀ r ∈ rs, r ∈ IsLocalRing.maximalIdeal R)
(reg : IsQuasiRegular M rs) : IsRegular M rs
Tag 065N, a lemma
Tag 065N in the Stacks Project.
isMQuasiregular_iff_isMQuasiregular_quotient, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Sequence/QuasiRegular/Graded.lean, line 704.
Theorem (Stacks Tag 065N, Lemma 10.69.9). The sequence
f_1, ..., f_risM-quasi-regular (overR, with respect toM) if and only if the image sequencef̄_1, ..., f̄_risM̄-quasi-regular (overR̄ = R / I_R, with respect toM̄ = M / I_M).
theorem isMQuasiregular_iff_isMQuasiregular_quotient {c : ℕ} (f : Fin c → R) :
letI := mbarModule (M := M) f
IsMQuasiregular (M := M) f ↔
IsMQuasiregular (R := Rbar f) (M := Mbar (M := M) f) (fbar f)
Sources
Section10.70 Blow up algebras#
Section 10.70 of the Stacks Project, Tag 052P. 10 tags here are carried by 16 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 052Q, a definition
Tag 052Q in the Stacks Project.
affineBlowupAlgebra, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Blowup/Defs.lean, line 85.
The affine blowup algebra
R[I/a]of an idealIof a ringRand an elementa : R, defined as theR-subalgebra of a localizationSofRaway fromagenerated by the fractionsy/awithy ∈ I. Fora ∈ Iits elements are exactly the fractionsx/aⁿwithx ∈ Iⁿ.
public def affineBlowupAlgebra (I : Ideal R) (a : R) (S : Type*) [CommRing S] [Algebra R S]
[IsLocalization.Away a S] : Subalgebra R S
Tag 07Z3, a lemma
Tag 07Z3 in the Stacks Project.
blowup_image_a_mem_nonZeroDivisors, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Blowup/Basic.lean, line 647. The attribute's comment: “(1)”. References: EGA IV (19.4.1), “partial”.
The image of
ainR[I/a]is a nonzerodivisor.
theorem blowup_image_a_mem_nonZeroDivisors {R : Type*} [CommRing R] (I : Ideal R) (a : R)
(ha : a ∈ I) :
haveI : Fact (a ∈ I) := ⟨ha⟩
(algebraMap R (Blowup I a)) a ∈ nonZeroDivisors (Blowup I a)
blowup_idealMap_eq_span, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Blowup/Basic.lean, line 668. The attribute's comment: “(2)”. References: EGA IV (19.4.1), “partial”.
The ideal of
R[I/a]generated by the image ofIequals the principal ideal generated by the image ofa.
theorem blowup_idealMap_eq_span {R : Type*} [CommRing R] (I : Ideal R) (a : R) (ha : a ∈ I) :
haveI : Fact (a ∈ I) := ⟨ha⟩
Ideal.map (algebraMap R (Blowup I a)) I
= Ideal.span {(algebraMap R (Blowup I a)) a}
blowup_localization_away_bijective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Blowup/Basic.lean, line 701. The attribute's comment: “(3)”.
The map
R_a → (R[I/a])_ainduced by the structure mapR → R[I/a]on localizations at the powers ofais bijective.
theorem blowup_localization_away_bijective {R : Type*} [CommRing R] (I : Ideal R) (a : R)
(ha : a ∈ I) :
haveI : Fact (a ∈ I) := ⟨ha⟩
Function.Bijective (Localization.awayMap (Blowup.of : R →+* Blowup I a) a)
Tag 0BIP, a lemma
Tag 0BIP in the Stacks Project.
affineBlowup_baseChange_iso, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Blowup/Basic.lean, line 1422.
The map
ΦofaffineBlowup_baseChangeinduces an isomorphism ofS-algebras(S ⊗[R] R[I/a]) / (S ⊗[R] R[I/a])[b^∞] ≅ S[J/b].
theorem affineBlowup_baseChange_iso :
Nonempty <|
(TensorProduct R S (affineBlowup0BIP I a ha) ⧸
torsionIdeal (TensorProduct R S (affineBlowup0BIP I a ha))
(algebraMap S _ (algebraMap R S a)))
≃ₐ[S]
(affineBlowup0BIP (I.map (algebraMap R S)) (algebraMap R S a)
(Ideal.mem_map_of_mem _ ha))
Tag 0G8S, a lemma
Tag 0G8S in the Stacks Project.
Ideal.range_eq_affineBlowup_and_ker_eq_saturation, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Blowup/Affine.lean, line 279.
Stacks 0G8S. Let
Rbe a ring, letI = (a, bᵢ : i ∈ ι)be an ideal ofRgenerated byatogether with a familyb : ι → R, and letRₐbe the localization ofRata. Letφ : R[xᵢ : i ∈ ι] → Rₐbe theR-algebra map withφ xᵢ = bᵢ/a. Then the range ofφis the affine blowup algebraR[I/a] = {x/aⁿ : x ∈ Iⁿ}, andφ f = 0if and only ifaⁿ flies in the ideal of relations(a xᵢ - bᵢ)for somen; that is,φinduces a surjectionR[xᵢ]/(a xᵢ - bᵢ) → R[I/a]whose kernel is thea-power torsion of the source.
public theorem Ideal.range_eq_affineBlowup_and_ker_eq_saturation
{R : Type*} [CommRing R] {ι : Type*} {Rₐ : Type*} [CommRing Rₐ] [Algebra R Rₐ]
{a : R} {b : ι → R} {I : Ideal R} [IsLocalization.Away a Rₐ]
(hI : I = Ideal.span (insert a (Set.range b)))
(φ : MvPolynomial ι R →ₐ[R] Rₐ)
(hφ : ∀ i, φ (X i) * algebraMap R Rₐ a = algebraMap R Rₐ (b i)) :
Set.range φ =
{y : Rₐ | ∃ n : ℕ, ∃ x ∈ I ^ n, y * algebraMap R Rₐ a ^ n = algebraMap R Rₐ x} ∧
∀ f : MvPolynomial ι R, φ f = 0 ↔
∃ n : ℕ, a ^ n • f ∈ Ideal.span (Set.range fun i ↦ C a * X i - C (b i))
Tag 080U, a lemma
Tag 080U in the Stacks Project.
AffineBlowup.fImage_mem_nonZeroDivisors, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Blowup/Basic.lean, line 950. The attribute's comment: “f nonzerodivisor in R'”.
If
a ∈ IandV(f) = V(I), then the image offinR' = R[I/a]is a nonzerodivisor.
theorem fImage_mem_nonZeroDivisors (ha : a ∈ I) (f : R)
(hf : PrimeSpectrum.zeroLocus ({f} : Set R) = PrimeSpectrum.zeroLocus (I : Set R)) :
fImage I a f ∈ nonZeroDivisors (Rprime I a)
AffineBlowup.blowup_localization_f_iso_a, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Blowup/Basic.lean, line 996. The attribute's comment: “R'_f = R'_a”.
Assume
a ∈ IandV(f) = V(I). LetR'fbe a localization ofR' = R[I/a]away from the image off, andR'aa localization ofR'away from the image ofa. ThenR'fis also a localization ofR'away from the image ofa, andR'f ≃ₐ[R] R'a.
theorem blowup_localization_f_iso_a (ha : a ∈ I) (f : R)
(hf : PrimeSpectrum.zeroLocus ({f} : Set R) = PrimeSpectrum.zeroLocus (I : Set R))
(R'f R'a : Type*) [CommRing R'f] [CommRing R'a]
[Algebra (Rprime I a) R'f] [Algebra (Rprime I a) R'a]
[Algebra R R'f] [Algebra R R'a]
[IsScalarTower R (Rprime I a) R'f] [IsScalarTower R (Rprime I a) R'a]
[IsLocalization.Away (fImage I a f) R'f]
[IsLocalization.Away (algebraMap R (Rprime I a) a) R'a] :
IsLocalization.Away (algebraMap R (Rprime I a) a) R'f ∧
Nonempty (R'f ≃ₐ[R] R'a)
AffineBlowup.ringLocalization_a_iso_blowup_localization_a, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Blowup/Basic.lean, line 1029. The attribute's comment: “R'_a = R_a”.
Let
R'abe a localization ofR' = R[I/a]away from the image ofa, andRa'a localization ofRaway froma. Then the canonical mapR_a → R'_ainduced byR → R'is bijective.
theorem ringLocalization_a_iso_blowup_localization_a
(R'a Ra' : Type*) [CommRing R'a] [CommRing Ra']
[Algebra (Rprime I a) R'a] [Algebra R Ra'] [Algebra R R'a]
[IsScalarTower R (Rprime I a) R'a]
[IsLocalization.Away (algebraMap R (Rprime I a) a) R'a]
[IsLocalization.Away a Ra'] :
Function.Bijective
(IsLocalization.Away.map Ra' R'a (algebraMap R (Rprime I a)) a)
Tag 0BBI, a lemma
Tag 0BBI in the Stacks Project.
IsLocalization.Away.map_affineBlowupAlgebra, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Blowup/Affine.lean, line 459.
Stacks 0BBI, surjectivity. Let
Rbe a ring,I ⊆ Ran ideal anda f : R. The canonicalR-algebra map from a localizationAofRaway fromato a localizationBofRaway fromf * amaps the affine blowup algebraR[I/a] ⊆ Aonto the affine blowup algebraR[fI/(fa)] ⊆ B.
public theorem IsLocalization.Away.map_affineBlowupAlgebra {R : Type*} [CommRing R]
(I : Ideal R) (a f : R) (A : Type*) [CommRing A] [Algebra R A] [IsLocalization.Away a A]
(B : Type*) [CommRing B] [Algebra R B] [Algebra A B] [IsScalarTower R A B]
[IsLocalization.Away (f * a) B] :
(affineBlowupAlgebra I a A).map (IsScalarTower.toAlgHom R A B) =
affineBlowupAlgebra (Ideal.span {f} * I) (f * a) B
IsLocalization.Away.map_eq_zero_iff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Blowup/Affine.lean, line 473.
Stacks 0BBI, the kernel. Let
Abe an algebra over a commutative semiringR, letf : Rand letBbe a localization ofAaway from the image off. Theny : Amaps to0inBif and only ifyisf-power torsion. Restricted to the affine blowup algebraR[I/a] ⊆ Athis describes the kernel of the mapR[I/a] → R[fI/(fa)]ofIsLocalization.Away.map_affineBlowupAlgebra.
public theorem IsLocalization.Away.map_eq_zero_iff {R : Type*} [CommSemiring R] {A : Type*}
[CommSemiring A] [Algebra R A] {B : Type*} [CommSemiring B] [Algebra A B]
(f : R) [IsLocalization.Away (algebraMap R A f) B] (y : A) :
algebraMap A B y = 0 ↔ ∃ n : ℕ, f ^ n • y = 0
Tag 052S, a lemma
Tag 052S in the Stacks Project.
isReduced_affineBlowup, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Blowup/Basic.lean, line 293.
If
Ris reduced anda ∈ I, then the affine blowup algebraR[I/a]is reduced.
theorem isReduced_affineBlowup [IsReduced R] (ha : a ∈ I) :
IsReduced (affineBlowupAlgebraAway I a)
Tag 052R, a lemma
Tag 052R in the Stacks Project.
affineBlowup_isDomain, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Blowup/Basic.lean, line 143.
If
Ris a domain,I ⊆ Ran ideal, anda ∈ Iis a nonzero element, then the affine blowup algebraR[I/a]is a domain.
theorem affineBlowup_isDomain [IsDomain R] (ha : a ≠ 0) :
IsDomain (affineBlowup I a)
Tag 052T, a lemma
Tag 052T in the Stacks Project.
PrimeSpectrum.denseRange_comap_of_notMem_minimalPrimes, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Blowup/Dominant.lean, line 148.
Blowing up is dominant. Let
f : R →+* Sbe a ring map anda : Ran element such that every element of the kernel offis annihilated by a power ofa. Ifais contained in no minimal prime ofR, thenSpec S → Spec Rhas dense image.Applied to the affine blowup algebra
S = R[I/a]of an idealI ∋ a— whose structure map kills exactly thea-power torsion ofR— this is Stacks Tag 052T; seePrimeSpectrum.denseRange_comap_algebraMap_affineBlowupAlgebra.
public theorem denseRange_comap_of_notMem_minimalPrimes {R S : Type*} [CommSemiring R]
[CommSemiring S] (f : R →+* S) (a : R)
(hker : ∀ x : R, f x = 0 → ∃ n : ℕ, a ^ n * x = 0)
(ha : ∀ p ∈ minimalPrimes R, a ∉ p) :
DenseRange (comap f)
PrimeSpectrum.denseRange_comap_algebraMap_affineBlowupAlgebra, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Blowup/Dominant.lean, line 163.
Blowing up is dominant. Let
Rbe a ring,I ⊆ Ran ideal anda : R. Ifais contained in no minimal prime ofR, thenSpec (R[I/a]) → Spec Rhas dense image, whereR[I/a] = affineBlowupAlgebra I a Sis the affine blowup algebra of(R, I)ata, realized inside a localizationSofRaway froma.The source assumes
a ∈ I; the statement holds without it, since for arbitraryathe algebraaffineBlowupAlgebra I a Sis the affine blowup algebra ofI + (a)ata.
public theorem denseRange_comap_algebraMap_affineBlowupAlgebra {R : Type*} [CommRing R]
(I : Ideal R) (a : R) (S : Type*) [CommRing S] [Algebra R S] [IsLocalization.Away a S]
(ha : ∀ p ∈ minimalPrimes R, a ∉ p) :
DenseRange (comap (algebraMap R (affineBlowupAlgebra I a S)))
Tag 052M, a lemma
Tag 052M in the Stacks Project.
Stacks.AffineBlowup.stacks052M_main, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AffineBlowup/Valuation.lean, line 743.
Theorem 1 (Stacks Tag 052M, main case
𝔪 ≠ 0). Let(R, 𝔪)be a local domain with fraction fieldK, and assume𝔪 ≠ 0. LetAbe a valuation ring ofKwhich dominatesR. Then the family𝒮of admissible affine blowup algebras of Definition 7:
- is nonempty and directed under inclusion, and moreover for any two admissible pairs
(I, a),(J, b)(Definition 7'), the explicit displayed product pair(I*J, a*b)is again an admissible pair, and its associated subringaffineBlowupImage (I*J) (a*b)contains bothaffineBlowupImage I aandaffineBlowupImage J b; and- has directed union equal to
A: an elementx ∈ Klies inAiff it lies in some member of𝒮.Assembled from the four conjunct lemmas
stacks052M_C1_nonempty,stacks052M_C2_directed,stacks052M_C3_refinement,stacks052M_C4_union.
theorem stacks052M_main
[IsDomain R] [IsLocalRing R]
(hm : IsLocalRing.maximalIdeal R ≠ ⊥)
(A : ValuationSubring K) (hdom : Dominates R A) :
-- (1a) nonemptiness
(∃ B, IsAdmissibleBlowup R A B) ∧
-- (1b) abstract directedness under inclusion
DirectedOn (· ≤ ·) {B | IsAdmissibleBlowup R A B} ∧
-- (1c) the explicit common refinement `R[IJ/(ab)]` of two admissible pairs:
-- the displayed product pair `(I*J, a*b)` is itself an admissible pair, and
-- its subring contains both factors.
(∀ (I J : Ideal R) (a b : R) (ha : a ∈ I) (hb : b ∈ J),
IsAdmissiblePair R A I a ha →
IsAdmissiblePair R A J b hb →
∃ (hab : a * b ∈ I * J),
IsAdmissiblePair R A (I * J) (a * b) hab ∧
(affineBlowupImage I a ha : Subring K) ≤ affineBlowupImage (I * J) (a * b) hab ∧
(affineBlowupImage J b hb : Subring K) ≤ affineBlowupImage (I * J) (a * b) hab) ∧
-- (2) the directed union equals A
(∀ x : K, x ∈ A ↔ ∃ B, IsAdmissibleBlowup R A B ∧ x ∈ B)
Sources
Section10.71 Ext groups#
Section 10.71 of the Stacks Project, Tag 00LO. 9 tags here are carried by 11 declarations of the repository (all in StacksFrontier) and 15 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00LP, a lemma
Tag 00LP in the Stacks Project.
exists_free_resolution, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/Resolution/Existence.lean, line 278. The attribute's comment: “(1)”.
(Existence of a free resolution.) For any commutative ring
Rand anyR-moduleM, there exists an exact complex ofR-modules... → F₂ → F₁ → F₀ → M → 0in which everyFᵢis free.
theorem exists_free_resolution
(R : Type u) [CommRing R] (M : Type u) [AddCommGroup M] [Module R M] :
∃ P : FreeResolutionData R M, P.IsExact ∧ P.IsFree
exists_finite_free_resolution, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/Resolution/Existence.lean, line 294. The attribute's comment: “(2)”. References: EGA 0 (11.9.2), “special case”; EGA IV (12.3.2), “(i), special case”; SGA 2 VIII (1.2), “partial”; SGA 4 IX (2.3), “partial”; SGA 6 VI (1.6), “partial”.
(Finite free resolution in the Noetherian finite case.) If
Ris a Noetherian commutative ring andMis a finiteR-module, then there exists an exact complex ofR-modules... → F₂ → F₁ → F₀ → M → 0in which everyFᵢis finite free.
theorem exists_finite_free_resolution
(R : Type u) [CommRing R] [IsNoetherianRing R]
(M : Type u) [AddCommGroup M] [Module R M] [Module.Finite R M] :
∃ P : FreeResolutionData R M, P.IsExact ∧ P.IsFiniteFree
Tag 00LQ, a definition
Tag 00LQ in the Stacks Project.
CategoryTheory.ObjectProperty.LeftResolution, a structure in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/Resolution/Defs/Comparison.lean, line 95.
A
P.LeftResolution Zconsists of a bundledℕ-indexed chain complex whose terms lie in the classP, along with a quasi-isomorphism to the complex consisting of justZsupported in degree0; equivalently, an exact complex… → F₁ → F₀ → Z → 0with allFᵢinP.
public structure LeftResolution (P : ObjectProperty C) (Z : C)
ModuleResolution, a structure in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/Resolution/Defs/Comparison.lean, line 131. The attribute's comment: “resolution”. References: SGA 4½ Etat 0 (3.1.8), “special case”.
A (left) resolution
F_• → Mof anR-moduleM: an exact chain complex… → F₂ → F₁ → F₀ → M → 0ofR-modules, encoded as an ℕ-indexed chain complex together with a quasi-isomorphism toMin degree0.
structure ModuleResolution (R : Type u) [Ring R] (M : Type v)
[AddCommGroup M] [Module R M]
FreeModuleResolution, a structure in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/Resolution/Defs/Comparison.lean, line 146. The attribute's comment: “free resolution”. References: EGA 0 (11.4.1).
A resolution of
Mby freeR-modules: a resolutionF_• → Msuch that everyF_iis a freeR-module.
structure FreeModuleResolution (R : Type u) [Ring R] (M : Type v)
[AddCommGroup M] [Module R M] extends ModuleResolution R M
FiniteFreeModuleResolution, a structure in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/Resolution/Defs/Comparison.lean, line 154. The attribute's comment: “finite free resolution”.
A resolution of
Mby finite freeR-modules: a resolutionF_• → Msuch that everyF_iis a free and finitely generatedR-module.
structure FiniteFreeModuleResolution (R : Type u) [Ring R] (M : Type v)
[AddCommGroup M] [Module R M] extends FreeModuleResolution R M
Tag 00LR, a lemma
Tag 00LR in the Stacks Project.
Declarations registered for the tag:
Homotopy.homologyMap_eqregistered withadd_to_stacksin StacksFrontier/Algebra/Homology/Resolution/Comparison.lean, line 230 (StacksFrontier): “Stated for complexes in any preadditive category.”. References: EGA 0 (11.2.3), “abutment clause”; SGA 4½ Etat 0 (1.3.2), “partial”.
Tag 00LS, a lemma
Tag 00LS in the Stacks Project.
exists_lift_along_resolution, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/Resolution/Comparison.lean, line 372. The attribute's comment: “(1)”.
Statement (1): Existence of a lift. Let
φ : M → Nbe a map ofR-modules, letCbe an (arbitrary) resolution ofN, and letFbe a complex overMwhose terms are all freeR-modules. Then there exists a map of complexesα : F → Cliftingφ.
theorem exists_lift_along_resolution {M N : Type*} [AddCommGroup M] [Module R M] [AddCommGroup N]
[Module R N]
(φ : M →ₗ[R] N) (F : ComplexOver R M) (C : ComplexOver R N)
(hC : IsResolution C) (hF : IsFreeComplex F) :
∃ α : ∀ i, F.obj i →ₗ[R] C.obj i, IsLift φ F C α
lift_unique_up_to_homotopy, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/Resolution/Comparison.lean, line 412. The attribute's comment: “(2)”. References: EGA III (6.3.8), “partial”.
Statement (2): Uniqueness up to homotopy. Any two maps of complexes
α, β : F → Clifting the sameφare chain homotopic.
theorem lift_unique_up_to_homotopy {M N : Type*} [AddCommGroup M] [Module R M]
[AddCommGroup N] [Module R N]
(φ : M →ₗ[R] N) (F : ComplexOver R M) (C : ComplexOver R N)
(hC : IsResolution C) (hF : IsFreeComplex F)
(α β : ∀ i, F.obj i →ₗ[R] C.obj i)
(hα : IsLift φ F C α) (hβ : IsLift φ F C β) :
HomotopicComplexOver F C α β
Tag 00LT, a lemma
Tag 00LT in the Stacks Project.
ModuleCat.homologyMap_linearYoneda_eq_and_isIso_and_eq_id, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/Resolution/Comparison.lean, line 192. The attribute's comment: “A free resolution is an ObjectProperty.LeftResolution for the class of free modules (00LQ) and Hom_R(F_•, N) is the image of F_• under (linearYoneda R (ModuleCat R)).obj N, so H^i(α) is a homologyMap. The source's display has the two cohomology groups interchanged, since Hom_R(-, N) is contravariant; see the module docstring.”.
Stacks 00LT. Let
Rbe a ring, letM₁,M₂,NbeR-modules, letFbe a free resolution ofM₁, letGbe a free resolution ofM₂, letφ : M₁ → M₂be a module map and letα : F_• → G_•be a map of complexes inducingφ. Then, for everyi, the mapH^i(α) : H^i(Hom_R(G_•, N)) → H^i(Hom_R(F_•, N))is independent of the choice ofα; it is an isomorphism ifφis one; and a mapF_• → F_•inducing the identity ofM₁induces the identity onH^i(Hom_R(F_•, N)).
public theorem homologyMap_linearYoneda_eq_and_isIso_and_eq_id {R : Type u} [CommRing R]
{M₁ M₂ : ModuleCat.{v} R} (N : ModuleCat.{v} R)
(F : ObjectProperty.LeftResolution (fun P : ModuleCat.{v} R => Module.Free R P) M₁)
(G : ObjectProperty.LeftResolution (fun P : ModuleCat.{v} R => Module.Free R P) M₂)
(φ : M₁ ⟶ M₂) (α : F.complex ⟶ G.complex)
(hα : α ≫ G.π = F.π ≫ (ChainComplex.single₀ (ModuleCat.{v} R)).map φ) (i : ℕ) :
(∀ β : F.complex ⟶ G.complex,
β ≫ G.π = F.π ≫ (ChainComplex.single₀ (ModuleCat.{v} R)).map φ →
homologyMap ((opFunctor _ _ ⋙
((linearYoneda R (ModuleCat.{v} R)).obj N).mapHomologicalComplex _).map β.op) i =
homologyMap ((opFunctor _ _ ⋙
((linearYoneda R (ModuleCat.{v} R)).obj N).mapHomologicalComplex _).map α.op) i) ∧
(IsIso φ → IsIso (homologyMap ((opFunctor _ _ ⋙
((linearYoneda R (ModuleCat.{v} R)).obj N).mapHomologicalComplex _).map α.op) i)) ∧
(∀ γ : F.complex ⟶ F.complex, γ ≫ F.π = F.π →
homologyMap ((opFunctor _ _ ⋙
((linearYoneda R (ModuleCat.{v} R)).obj N).mapHomologicalComplex _).map γ.op) i
= 𝟙 _)
Tag 00LU, a lemma
Tag 00LU in the Stacks Project.
Declarations registered for the tag:
CategoryTheory.Abelian.Ext.covariantSequence_exactregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 225 (StacksFrontier): “exactness of Ext^n0 -> ... -> Ext^n1 window (whole long exact sequence for n0+1=n1)”. References: SGA 3 XV (2.10), “more general”; SGA 4 V (6.2), “Exactness of (6.2.1)”; SGA 4½ Etat 0 (1.1.2), “special case”; SGA 4½ Etat 0 (3.2.2), “special case”; SGA 7 VII (3.3.6), “partial”; SGA 7 VII (3.7.5), “special case”.CategoryTheory.Abelian.Ext.covariantSequenceregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 227 (StacksFrontier): “the long exact sequence (as composable arrows)”. References: SGA 4 V (6.2); SGA 7 VII (3.7.5).CategoryTheory.Abelian.Ext.covariant_sequence_exact₂'registered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 229 (StacksFrontier): “exactness at Ext^n(M,N)”. References: SGA 3 XV (2.10), “more general”; SGA 7 VII (3.3.6), “Exactness at Extⁿ(L•,A)”.CategoryTheory.Abelian.Ext.covariant_sequence_exact₃'”. References: SGA 4 V (6.2), “partial”; SGA 4½ Etat 0 (1.1.2), “special case”; SGA 7 VII (3.3.6), “Exactness at Extⁿ(L•,A″)”; SGA 7 VII (3.7.5), “Exactness at Ext^n(P”.CategoryTheory.Abelian.Ext.covariant_sequence_exact₁'”. References: SGA 4 V (6.2), “partial”; SGA 4½ Etat 0 (1.1.2), “special case”; SGA 4½ Etat 0 (3.2.2), “Exactness at Ext^{n+1}(V”; SGA 7 VII (3.3.6), “Exactness at Extⁿ⁺¹(L•”; SGA 7 VII (3.7.5), “Exactness at Ext^{n+1}(P”.CategoryTheory.Abelian.Ext.postcomp_mk₀_injective_of_monoregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 233 (StacksFrontier): “leading 0: Hom(M,N') -> Hom(M,N) injective”.CategoryTheory.Abelian.Ext.addEquiv₀registered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 235 (StacksFrontier): “Ext^0(M,N) = Hom(M,N)”. References: SGA 4 V (2.1.1), “more general”; SGA 4 V (6.0), “6.0.3, 6.0.4”; SGA 4 V (6.3), “(6.3.1)”; SGA 7 VII (3.1.7), “special case”.
Tag 065P, a lemma
Tag 065P in the Stacks Project.
Declarations registered for the tag:
CategoryTheory.Abelian.Ext.contravariantSequence_exactregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 103 (StacksFrontier): “exactness of the Ext^n0 -> ... -> Ext^n1 window (whole sequence for 1+n0=n1)”. References: SGA 4 V (2.1.1), “partial”; SGA 4 V (6.2), “Exactness of (6.2.2)”; SGA 4½ Etat 0 (1.1.2), “special case”; SGA 4½ Etat 0 (3.2.2), “special case”; SGA 7 VII (3.4.9), “partial”; SGA 7 VII (3.7.5), “special case”.CategoryTheory.Abelian.Ext.contravariantSequenceregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 105 (StacksFrontier): “the long exact sequence (as composable arrows)”. References: SGA 4 V (6.2); SGA 7 VII (3.4.9), “partial”; SGA 7 VII (3.7.5).CategoryTheory.Abelian.Ext.contravariant_sequence_exact₂'registered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 107 (StacksFrontier): “exactness at Ext^n(M,N)”. References: SGA 4 V (2.1.1), “Exactness Ext^n(X3”; SGA 4 V (6.2), “partial”; SGA 4½ Etat 0 (1.1.2), “special case”; SGA 7 VII (3.4.9), “partial”; SGA 7 VII (3.7.5), “Exactness at Ext^n(P”.CategoryTheory.Abelian.Ext.contravariant_sequence_exact₁'registered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 109 (StacksFrontier): “exactness at Ext^n(M',N)”. References: SGA 4 V (2.1.1), “Exactness Ext^n(X2”; SGA 4 V (6.2), “partial”; SGA 4½ Etat 0 (1.1.2), “special case”; SGA 4½ Etat 0 (3.2.2), “Exactness at Ext^n(X”; SGA 7 VII (3.4.9), “partial”.CategoryTheory.Abelian.Ext.contravariant_sequence_exact₃'registered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 111 (StacksFrontier): “exactness at Ext^(n+1)(M'',N)”. References: SGA 4 V (6.2), “partial”.CategoryTheory.Abelian.Ext.precomp_mk₀_injective_of_epiregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 113 (StacksFrontier): “leading 0: Hom(M'',N) -> Hom(M,N) injective”.CategoryTheory.Abelian.Ext.addEquiv₀registered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 115 (StacksFrontier): “Ext^0(M,N) = Hom(M,N)”. References: SGA 4 V (2.1.1), “more general”; SGA 4 V (6.0), “6.0.3, 6.0.4”; SGA 4 V (6.3), “(6.3.1)”; SGA 7 VII (3.1.7), “special case”.
Tag 00LV, a lemma
Tag 00LV in the Stacks Project.
ext_annihilated, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ext/Finiteness.lean, line 527.
Stacks 00LV. If
xannihilatesNorxannihilatesM, thenxannihilates every Ext group \(\operatorname{Ext}^i_R(M, N)\).
theorem ext_annihilated (M N : ModuleCat.{u} R) (x : R)
(h : x ∈ Module.annihilator R N ∨ x ∈ Module.annihilator R M) (i : ℕ) :
∀ ξ : extModule M N i, x • ξ = 0
Tag 08YR, a lemma
Tag 08YR in the Stacks Project.
ext_finite_of_noetherian, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ext/Finiteness.lean, line 315. References: EGA III (4.5.1), “special case”; SGA 6 I (3.7), “Clause b), special case”.
For a Noetherian ring
Rand finiteR-modulesM,N, eachExt^i_R(M, N)is a finiteR-module.
theorem ext_finite_of_noetherian (R : Type) [CommRing R] [IsNoetherianRing R]
(M N : ModuleCat.{0} R) [Module.Finite R M] [Module.Finite R N] (i : ℕ) :
Module.Finite R (((Ext R (ModuleCat R) i).obj (Opposite.op M)).obj N)
Sources
Section10.72 Depth#
Section 10.72 of the Stacks Project, Tag 00LE. 11 tags here are carried by 11 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00LI, a definition
Tag 00LI in the Stacks Project.
Module.depth, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Depth/Defs/Defs.lean, line 53. References: EGA 0 (16.4.5), “more general”; EGA IV (5.7.1), “more general”; EGA IV (6.10.3); SGA 2 III (2.8), “special case”; SGA 2 IV (5.3); SGA 2 XI (3.10).
The
I-depth of anR-moduleM, forIan ideal ofR: the supremum inℕ∞ = {0, 1, 2, …, ∞}of the lengths of theM-regular sequences with all terms inI, except that the depth is⊤whenI • M = M(which happens for instance whenM = 0).
public noncomputable def Module.depth (R : Type*) [CommRing R] (I : Ideal R) (M : Type*)
[AddCommGroup M] [Module R M] : ℕ∞
Tag 0AUI, a lemma
Tag 0AUI in the Stacks Project.
Module.depth_eq_iSup_isWeaklyRegular_length, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Depth/Criteria.lean, line 202. References: EGA 0 (16.4.5), “more general”.
The
I-depth of a finiteR-moduleMis the supremum of the lengths of the sequencesf₁, …, f_r ∈ Isuch thatfᵢis a nonzerodivisor onM/(f₁, …, f_{i-1})M; that is, the nonvanishing requirementM/(f₁, …, f_r)M ≠ 0on regular sequences and the case distinctionI • M = Min the definition of the depth may be dropped together.
public theorem depth_eq_iSup_isWeaklyRegular_length (R : Type*) [CommRing R] (I : Ideal R)
(M : Type*) [AddCommGroup M] [Module R M] [Module.Finite R M] :
depth R I M =
⨆ rs ∈ {rs : List R | (∀ r ∈ rs, r ∈ I) ∧ RingTheory.Sequence.IsWeaklyRegular M rs},
(rs.length : ℕ∞)
Tag 00LK, a lemma
Tag 00LK in the Stacks Project.
Module.depth_le_supportDim, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Depth/Dimension.lean, line 264. References: EGA 0 (16.4.5), “(16.4.5.1)”.
Depth is at most the dimension of the support. If
Mis a finiteR-module andIis an ideal ofRwithI • M ≠ M, thendepth_I(M) ≤ dim(Supp(M)). ForRNoetherian local,Ithe maximal ideal andMnonzero, this isdepth(M) ≤ dim(Supp(M)).
public theorem depth_le_supportDim (R : Type*) [CommRing R] (I : Ideal R) (M : Type*)
[AddCommGroup M] [Module R M] [Module.Finite R M] (hI : I • (⊤ : Submodule R M) ≠ ⊤) :
(depth R I M : WithBot ℕ∞) ≤ supportDim R M
Tag 0AUJ, a lemma
Tag 0AUJ in the Stacks Project.
Module.depth_lt_top, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Depth/Dimension.lean, line 470.
Depth along an ideal is finite over a Noetherian ring. If
Ris Noetherian,Mis a finiteR-module andIis an ideal ofRwithI • M ≠ M, thendepth_I(M) < ∞; that is, the lengths of theM-regular sequences contained inIare bounded. The hypothesisI • M ≠ Malso forcesM ≠ 0.
public theorem depth_lt_top (R : Type*) [CommRing R] [IsNoetherianRing R] (I : Ideal R)
(M : Type*) [AddCommGroup M] [Module R M] [Module.Finite R M]
(hI : I • (⊤ : Submodule R M) ≠ ⊤) :
depth R I M < ⊤
Tag 00LW, a lemma
Tag 00LW in the Stacks Project.
depth_eq_least_nonzero_ext, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Depth/Ext.lean, line 1002. References: EGA 0 (16.4.4), “depth = least n Ext≠0”; EGA 0 (16.4.5), “partial”; SGA 2 III (2.8), “local case”; SGA 2 III (3.4), “(1) <=> (3)”; SGA 2 III (2.4), “(3)⇔(4)”; SGA 2 III (2.7), “special case”; SGA 2 III (3.3), “special case”.
Stacks Tag 00LW (Lemma 10.72.5). Let
Rbe a Noetherian local ring with maximal ideal𝔪, residue fieldκ = R/𝔪, and letMbe a nonzero finiteR-module. Then there is a least indexnfor whichExt^n_R(κ, M)is nonzero, and the depth ofMequals this indexn:depth(M) = min { i | Ext^i_R(κ, M) ≠ 0 }.
theorem depth_eq_least_nonzero_ext {R : Type u} [CommRing R] [IsNoetherianRing R] [IsLocalRing R]
{M : Type u} [AddCommGroup M] [Module R M] [Module.Finite R M] (hM : Nontrivial M) :
∃ n : ℕ,
IsLeast
{i : ℕ |
Nontrivial
(Ext (ModuleCat.of R (R ⧸ IsLocalRing.maximalIdeal R)) (ModuleCat.of R M) i)}
n ∧
Module.depthSup R (IsLocalRing.maximalIdeal R) M = (n : ℕ∞)
Tag 00LX, a lemma
Tag 00LX in the Stacks Project.
Module.min_depth_le_depth_of_exact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Depth/ShortExact.lean, line 279.
Depth in a short exact sequence. Let
Rbe a Noetherian ring,I ⊆ Ran ideal, and let0 → N' → N → N'' → 0be a short exact sequence of finiteR-modules, given byf : N' →ₗ[R] Ninjective,g : N →ₗ[R] N''surjective andFunction.Exact f g. Then
min {depth_I(N'), depth_I(N'')} ≤ depth_I(N),min {depth_I(N), depth_I(N') - 1} ≤ depth_I(N''),min {depth_I(N), depth_I(N'') + 1} ≤ depth_I(N'),the subtraction being the truncated one of
ℕ∞.
public theorem min_depth_le_depth_of_exact {R : Type*} [CommRing R] [IsNoetherianRing R]
(I : Ideal R) {N' N N'' : Type*} [AddCommGroup N'] [Module R N'] [AddCommGroup N]
[Module R N] [AddCommGroup N''] [Module R N''] [Module.Finite R N] {f : N' →ₗ[R] N}
{g : N →ₗ[R] N''} (h : Function.Exact f g) (hf : Function.Injective f)
(hg : Function.Surjective g) :
min (depth R I N') (depth R I N'') ≤ depth R I N ∧
min (depth R I N) (depth R I N' - 1) ≤ depth R I N'' ∧
min (depth R I N) (depth R I N'' + 1) ≤ depth R I N'
Tag 090R, a lemma
Tag 090R in the Stacks Project.
Module.depth_quotSMulTop_succ_eq_depth_and_exists_isRegular_append, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Depth/Criteria.lean, line 612. The attribute's comment: “Stated for an arbitrary ideal of a Noetherian ring; M nonzero is used only as I • M ≠ M, and only by part (2), so both parameters are bound inside the conclusion.”. References: SGA 2 III (2.6).
Depth drops by one modulo a nonzerodivisor, and regular sequences extend to length equal to the depth. Let
Rbe a Noetherian ring,I ⊆ Ran ideal andMa finiteR-module.
- If
x ∈ Iis a nonzerodivisor onM, thendepth_I(M/xM) + 1 = depth_I(M).- If
I • M ≠ M, then everyM-regular sequencerswith all terms inIextends to anM-regular sequencers ++ sswith all terms inIand(rs ++ ss).length = depth_I(M).The source states this for
Ithe maximal ideal of a Noetherian local ring andMnonzero, and writes (1) asdepth(M/xM) = depth(M) - 1; the equality with+ 1on the left is the sharper form inℕ∞, where subtraction is truncated.
public theorem depth_quotSMulTop_succ_eq_depth_and_exists_isRegular_append {R : Type*}
[CommRing R] [IsNoetherianRing R] (I : Ideal R) (M : Type*) [AddCommGroup M] [Module R M]
[Module.Finite R M] :
(∀ x ∈ I, IsSMulRegular M x → depth R I (QuotSMulTop x M) + 1 = depth R I M) ∧
(I • (⊤ : Submodule R M) ≠ ⊤ → ∀ rs : List R, (∀ r ∈ rs, r ∈ I) →
RingTheory.Sequence.IsRegular M rs →
∃ ss : List R, (∀ s ∈ ss, s ∈ I) ∧ RingTheory.Sequence.IsRegular M (rs ++ ss) ∧
((rs ++ ss).length : ℕ∞) = depth R I M)
Tag 0CN5, a lemma
Tag 0CN5 in the Stacks Project.
exists_mem_associatedPrimes_quotSMulTop_pow_of_mem_minimalPrimes, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/AssociatedPrime/MinimalPrimes.lean, line 221. The attribute's comment: “Stated over an arbitrary Noetherian ring for an arbitrary x: the source's locality is unused, and x ∈ 𝔪 is implied to the extent it matters by 𝔮 being a minimal prime over 𝔭 + (x).”.
A minimal prime over
𝔭 + (x)is an associated prime ofM/xⁿM. LetRbe a Noetherian ring,Ma finiteR-module andx ∈ R. If𝔭is an associated prime ofMand𝔮is a minimal prime over𝔭 + (x), then𝔮is an associated prime ofM/xⁿMfor somen ≥ 1.The source states this for
xin the maximal ideal of a Noetherian local ring; neither restriction is used, andx ∉ 𝔪makes𝔭 + (x) = ⊤, which has no minimal primes.
public theorem exists_mem_associatedPrimes_quotSMulTop_pow_of_mem_minimalPrimes {R : Type*}
[CommRing R] [IsNoetherianRing R] {M : Type*} [AddCommGroup M] [Module R M]
[Module.Finite R M] (x : R) {p q : Ideal R} (hp : p ∈ associatedPrimes R M)
(hq : q ∈ (p + Ideal.span {x}).minimalPrimes) :
∃ n : ℕ, 0 < n ∧ q ∈ associatedPrimes R (QuotSMulTop (x ^ n) M)
Tag 0BK4, a lemma
Tag 0BK4 in the Stacks Project.
Module.depth_le_ringKrullDim_quotient_of_mem_associatedPrimes, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Depth/Criteria.lean, line 865. References: EGA 0 (16.4.6), “(iii), first inequality”.
Stacks 0BK4. Let
(R, 𝔪)be a Noetherian local ring andMa finiteR-module. If𝔭is an associated prime ofM, thendepth(M) ≤ dim(R/𝔭), the depth being taken along𝔪.The source states this as
dim(R/𝔭) ≥ depth(M).
public theorem depth_le_ringKrullDim_quotient_of_mem_associatedPrimes {R : Type*} [CommRing R]
[IsNoetherianRing R] [IsLocalRing R] {M : Type*} [AddCommGroup M] [Module R M]
[Module.Finite R M] {p : Ideal R} (hp : p ∈ associatedPrimes R M) :
(depth R (IsLocalRing.maximalIdeal R) M : WithBot ℕ∞) ≤ ringKrullDim (R ⧸ p)
Tag 0FCC, a lemma
Tag 0FCC in the Stacks Project.
Module.depth_le_depth_localized_add_ringKrullDim_quotient, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Depth/Localization.lean, line 702. The attribute's comment: “Stated in WithBot ℕ∞ with the smaller side on the left, for Module.depth (Tag 00LI) along the maximal ideals of R and of Rₚ, and with the localizations presented by IsLocalization.AtPrime and IsLocalizedModule. See the module docstring.”.
Depth drops by at most
dim(R/𝔭)under localization. Let(R, 𝔪)be a Noetherian local ring,Ma finiteR-module and𝔭 ⊆ Ra prime ideal. Thendepth_𝔪(M) ≤ depth_{𝔭R_𝔭}(M_𝔭) + dim(R/𝔭). The localization is presented abstractly:Rₚis any localization ofRat𝔭andf : M →ₗ[R] Mₚany localization ofMat𝔭. The inequality is read inWithBot ℕ∞, whereringKrullDimlives.
public theorem depth_le_depth_localized_add_ringKrullDim_quotient {R : Type*} [CommRing R]
[IsNoetherianRing R] [IsLocalRing R] (M : Type*) [AddCommGroup M] [Module R M]
[Module.Finite R M] (p : Ideal R) [p.IsPrime] (Rₚ : Type*) [CommRing Rₚ] [Algebra R Rₚ]
[IsLocalization.AtPrime Rₚ p] [IsLocalRing Rₚ] (Mₚ : Type*) [AddCommGroup Mₚ]
[Module R Mₚ] [Module Rₚ Mₚ] [IsScalarTower R Rₚ Mₚ] (f : M →ₗ[R] Mₚ)
[IsLocalizedModule p.primeCompl f] :
(depth R (IsLocalRing.maximalIdeal R) M : WithBot ℕ∞) ≤
(depth Rₚ (IsLocalRing.maximalIdeal Rₚ) Mₚ : WithBot ℕ∞) + ringKrullDim (R ⧸ p)
Tag 0AUK, a lemma
Tag 0AUK in the Stacks Project.
Module.depth_eq_iInf_depth_isLocalized_maximal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Depth/Localization.lean, line 438. References: EGA 0 (16.4.8), “B finite over A”; SGA 2 III (2.10), “S finite over local R”.
Depth is the minimum of the depths of the localizations at the maximal ideals. Let
(R, 𝔪)be a Noetherian local ring, letR → Sbe a finite ring map and letNbe a finiteS-module. Then the depth ofNas anR-module along𝔪is the infimum, over the maximal ideals𝔪ᵢofS, of the depths of the localizationsN_{𝔪ᵢ}over the local ringsS_{𝔪ᵢ}. SinceSis semilocal the infimum is a minimum over a finite nonempty set, unlessSis the zero ring, in which case both sides are⊤.
public theorem depth_eq_iInf_depth_isLocalized_maximal
{R S : Type*} [CommRing R] [IsLocalRing R] [IsNoetherianRing R] [CommRing S] [Algebra R S]
[Module.Finite R S] {N : Type*} [AddCommGroup N] [Module S N] [Module.Finite S N]
[Module R N] [IsScalarTower R S N]
(Sₘ : MaximalSpectrum S → Type*) [∀ P, CommRing (Sₘ P)] [∀ P, Algebra S (Sₘ P)]
[∀ P, IsLocalization.AtPrime (Sₘ P) P.asIdeal]
(Nₘ : MaximalSpectrum S → Type*) [∀ P, AddCommGroup (Nₘ P)] [∀ P, Module S (Nₘ P)]
[∀ P, Module (Sₘ P) (Nₘ P)] [∀ P, IsScalarTower S (Sₘ P) (Nₘ P)]
(f : ∀ P, N →ₗ[S] Nₘ P) [∀ P, IsLocalizedModule P.asIdeal.primeCompl (f P)] :
depth R (IsLocalRing.maximalIdeal R) N =
⨅ P : MaximalSpectrum S,
haveI : IsLocalRing (Sₘ P) := IsLocalization.AtPrime.isLocalRing (Sₘ P) P.asIdeal
depth (Sₘ P) (IsLocalRing.maximalIdeal (Sₘ P)) (Nₘ P)
Sources
Section10.73 Functorialities for Ext#
Section 10.73 of the Stacks Project, Tag 087M. 1 tag here is carried by 1 declaration of the repository (in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 087N, a lemma
Tag 087N in the Stacks Project.
flat_base_change_ext, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ext/BaseChange.lean, line 203.
Flat base change for Ext. For a flat ring map
f : R → R', anR-moduleM, anR'-moduleN', and eachi ≥ 0, the comparison mapc^iofextFlatBaseChangeComparisonis an isomorphism of abelian groups (here phrased as bijectivity of the underlying group homomorphism).
theorem flat_base_change_ext {R R' : Type} [CommRing R] [CommRing R']
(f : R →+* R') (hf : f.Flat) (M : ModuleCat.{0} R) (N' : ModuleCat.{0} R') (i : ℕ) :
Function.Bijective (extFlatBaseChangeComparison f M N' i)
Sources
Section10.74 An application of Ext groups#
Section 10.74 of the Stacks Project, Tag 02HN. 1 tag here is carried by 1 declaration of the repository (in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 02HO, a lemma
Tag 02HO in the Stacks Project.
split_injection_of_arbitrarily_large_split_mod_pow, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/SplitInjection.lean, line 439. References: EGA 0 (19.1.8), “partial”.
Theorem (Stacks Tag 02HO, Lemma 10.74.1). Let
Rbe a Noetherian commutative ring,I ⊆ Ran ideal contained in the Jacobson radical ofR, andN,MfiniteR-modules. Letφ : N → MbeR-linear. If for arbitrarily largenthe induced mapφ̄ₙ : N / Iⁿ N → M / Iⁿ Mis a split injection, thenφitself is a split injection.
theorem split_injection_of_arbitrarily_large_split_mod_pow
{R N M : Type*} [CommRing R] [IsNoetherianRing R]
[AddCommGroup N] [Module R N] [Module.Finite R N]
[AddCommGroup M] [Module R M] [Module.Finite R M]
(I : Ideal R) (hI : I ≤ Ideal.jacobson ⊥) (φ : N →ₗ[R] M)
(h : ForArbitrarilyLarge (fun n => IsSplitInjection (inducedMapModPow φ I n))) :
IsSplitInjection φ
Sources
Section10.75 Tor groups and flatness#
Section 10.75 of the Stacks Project, Tag 00LY. 7 tags here are carried by 9 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00LZ, a lemma
Tag 00LZ in the Stacks Project.
torMap_independent_of_lift, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Tor/Finiteness.lean, line 442.
The induced map on homology is independent of the choice of the lift: two chain maps
α, β : F.complex ⟶ G.complexboth liftingφ : M₁ ⟶ M₂induce equal mapsH_i(F ⊗ N) ⟶ H_i(G ⊗ N).
theorem torMap_independent_of_lift {R : Type} [CommRing R] {M₁ M₂ : ModuleCat R}
(F : FreeResolution M₁) (G : FreeResolution M₂) (N : ModuleCat R) {φ : M₁ ⟶ M₂}
(α β : F.complex ⟶ G.complex) (hα : IsLift F G φ α) (hβ : IsLift F G φ β) (i : ℕ) :
torMap F G N α i = torMap F G N β i
Tag 00M0, a lemma
Tag 00M0 in the Stacks Project.
CategoryTheory.ShortComplex.ShortExact.exists_Tor'_one_composableArrows_exact_and_epi, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Tor/Vanishing.lean, line 210.
Let
Rbe a commutative ring, letMbe anR-module and letS : 0 → N' → N → N'' → 0be a short exact sequence ofR-modules. Then there is a connecting homomorphismδ : Tor₁(M, N'') ⟶ M ⊗ N'making
Tor₁(M, N') → Tor₁(M, N) → Tor₁(M, N'') →δ M ⊗ N' → M ⊗ N → M ⊗ N''exact, and
M ⊗ N → M ⊗ N''is surjective. HereTor₁(M, -)is(Tor' (ModuleCat R) 1).obj M, the first left derived functor of- ⊗ Nevaluated atM, and the maps other thanδare the functorial ones.
public theorem exists_Tor'_one_composableArrows_exact_and_epi {R : Type u} [CommRing R]
{S : ShortComplex (ModuleCat.{u} R)} (hS : S.ShortExact) (M : ModuleCat.{u} R) :
(∃ δ : ((Tor' (ModuleCat.{u} R) 1).obj M).obj S.X₃ ⟶ M ⊗ S.X₁,
(ComposableArrows.mk₅ (((Tor' (ModuleCat.{u} R) 1).obj M).map S.f)
(((Tor' (ModuleCat.{u} R) 1).obj M).map S.g) δ (M ◁ S.f) (M ◁ S.g)).Exact) ∧
Epi (M ◁ S.g)
Tag 00M1, a lemma
Tag 00M1 in the Stacks Project.
Stacks.Tor.DoubleComplex.statement1, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Tor/Balancing/CanonicalIso.lean, line 408. The attribute's comment: “(1)”.
For a double complex
Awhose rows are resolutions of the horizontal cokernels and whose columns are resolutions of the vertical cokernels, there is an isomorphism ofR-modulesH_i(R(A)_•) ≅ H_i(U(A)_•)for everyi ≥ 0.
theorem statement1 (A : DoubleCx R) (hrow : A.RowResolution) (hcol : A.ColResolution)
(i : ℕ) : Nonempty (A.RHom i ≃ₗ[R] A.UHom i)
Stacks.Tor.DoubleComplex.statement2, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Tor/Balancing/CanonicalIso.lean, line 417. The attribute's comment: “(2)”.
The isomorphisms
H_i(R(A)_•) ≅ H_i(U(A)_•)can be chosen naturally inA: there is an assignment, to every double complexAsatisfying the resolution hypotheses and everyi, of an isomorphisme A : H_i(R(A)_•) ≅ H_i(U(A)_•), such thatH_i(U(Ψ)) ∘ e A = e B ∘ H_i(R(Ψ))for every morphismΨ : A → Bof such double complexes.
theorem statement2 :
∃ e : ∀ (A : DoubleCx R), A.RowResolution → A.ColResolution → ∀ i,
(A.RHom i ≃ₗ[R] A.UHom i),
∀ (A B : DoubleCx R) (hrowA : A.RowResolution) (hcolA : A.ColResolution)
(hrowB : B.RowResolution) (hcolB : B.ColResolution)
(Ψ : DCxHom A B) (i : ℕ),
(Ψ.UHomMap i).comp (e A hrowA hcolA i : A.RHom i →ₗ[R] A.UHom i) =
((e B hrowB hcolB i : B.RHom i →ₗ[R] B.UHom i)).comp (Ψ.RHomMap i)
Tag 00M3, a lemma
Tag 00M3 in the Stacks Project.
tor_symm_canonically_iso, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Tor/Balancing/Naturality.lean, line 740. References: EGA III (6.3.5), “(i), special case”; EGA III (6.5.5), “S = X = Y = Spec R”; EGA III (6.7.13), “special case”.
For every
i ≥ 0the two functors(M, N) ↦ Tor_i^R(M, N)and(M, N) ↦ Tor_i^R(N, M)are canonically isomorphic: there is a natural isomorphism between the bifunctorTor (ModuleCat R) iand the swap bifunctor(Tor (ModuleCat R) i).flipin the functor categoryModuleCat R ⥤ ModuleCat R ⥤ ModuleCat R.
theorem tor_symm_canonically_iso (i : ℕ) :
Nonempty (Tor (ModuleCat.{u} R) i ≅ (Tor (ModuleCat.{u} R) i).flip)
Tag 00M4, a remark
Tag 00M4 in the Stacks Project.
swap_eigenspace_dim, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/LinearAlgebra/TensorProduct/Swap.lean, line 394.
Eigenspace dimensions in characteristic
≠ 2. Assumechar k ≠ 2anddim_k V = n. Then the+1-eigenspace of the swap map has dimension(n^2 + n)/2and the-1-eigenspace has dimension(n^2 - n)/2.Argument: the
-1-eigenspace has dimension(n^2 − n)/2byswap_finrank_antisymm. SinceE₊₁andE₋₁are complementary (swap_isCompl_eigenspaces), their dimensions add tofinrank (V ⊗ V) = n * n = n^2(Submodule.finrank_add_eq_of_isComplandModule.finrank_tensorProduct). The remaining+1-dimension is thenn^2 − (n^2 − n)/2 = (n^2 + n)/2, a nat-arithmetic identity (bothn^2 ± nare even).
theorem swap_eigenspace_dim
(hk : (2 : k) ≠ 0) (n : ℕ) (hn : Module.finrank k V = n) :
Module.finrank k (swapEigenspace k V (1 : k)) = (n ^ 2 + n) / 2 ∧
Module.finrank k (swapEigenspace k V (-1 : k)) = (n ^ 2 - n) / 2
swap_not_isDiagonalizable, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/LinearAlgebra/TensorProduct/Swap.lean, line 483.
Non-diagonalizability in characteristic
2. Assumechar k = 2anddim_k V ≥ 2. Then the swap map is not diagonalizable.Argument: if
σwere diagonalizable then⨆ λ, eigenspace λ = ⊤. But in characteristic2every eigenspace is contained ineigenspace 1(swap_eigenspace_le_one_char2), so⨆ λ, eigenspace λ ≤ eigenspace 1, whenceeigenspace 1 = ⊤, i.e.σ x = xfor allx. This contradictsswap_ne_id, which produces a tensor moved byσ.
theorem swap_not_isDiagonalizable
(hk : (2 : k) = 0) (hn : 2 ≤ Module.finrank k V) :
¬ IsDiagonalizable (swapMap k V)
Tag 0AZ4, a lemma
Tag 0AZ4 in the Stacks Project.
tor_finite_of_noetherian, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Tor/Finiteness.lean, line 317. References: EGA III (6.5.13), “special case”; EGA III (6.7.9), “special case”; EGA III (7.4.7), “(i), special case”.
Let
Rbe a Noetherian ring and letM,Nbe finiteR-modules. ThenTor_p^R(M, N)is a finiteR-module for everyp.
theorem tor_finite_of_noetherian (R : Type u) [CommRing R] [IsNoetherianRing R]
(M N : ModuleCat.{u} R) [Module.Finite R M] [Module.Finite R N] (p : ℕ) :
Module.Finite R (((Tor (ModuleCat.{u} R) p).obj M).obj N)
Tag 00M5, a lemma
Tag 00M5 in the Stacks Project.
Module.Flat.tfae_isZero_Tor', a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Tor/Flatness.lean, line 192. References: EGA 0 (6.1.1).
Let
Rbe a commutative ring and letMbe anR-module. The following are equivalent: (1)Mis flat overR; (2) for alli > 0the functorTor_i(M, -)is zero; (3) the functorTor₁(M, -)is zero; (4)Tor₁(M, R/I) = 0for all idealsI ⊆ R; (5)Tor₁(M, R/I) = 0for all finitely generated idealsI ⊆ R. HereTor_i(M, -)is(Tor' (ModuleCat R) i).obj M, thei-th left derived functor of- ⊗ Nevaluated atM.
public theorem tfae_isZero_Tor' {R : Type u} [CommRing R] (M : ModuleCat.{u} R) :
List.TFAE
[Module.Flat R M,
∀ i, 0 < i → IsZero ((Tor' (ModuleCat.{u} R) i).obj M),
IsZero ((Tor' (ModuleCat.{u} R) 1).obj M),
∀ I : Ideal R,
IsZero (((Tor' (ModuleCat.{u} R) 1).obj M).obj (ModuleCat.of R (R ⧸ I))),
∀ I : Ideal R, I.FG →
IsZero (((Tor' (ModuleCat.{u} R) 1).obj M).obj (ModuleCat.of R (R ⧸ I)))]
Sources
Section10.76 Functorialities for Tor#
Section 10.76 of the Stacks Project, Tag 00M7. 2 tags here are carried by 3 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00M8, a lemma
Tag 00M8 in the Stacks Project.
flat_base_change_tor, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Tor/BaseChange.lean, line 172.
Flat base change for Tor. Let
R → R'be a flat ring map of commutative rings and letM,NbeR-modules. Then for everyithe base-change map(torBaseChangeIso i M N).hom : Tor_i^R(M, N) ⊗_R R' ⟶ Tor_i^{R'}(M ⊗_R R', N ⊗_R R')is an isomorphism ofR'-modules.
theorem flat_base_change_tor [Module.Flat R R'] (i : ℕ) (M N : ModuleCat.{0} R) :
IsIso (torBaseChangeIso (R' := R') i M N).hom
flat_base_change_tor_of_universe, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Tor/BaseChangeOfUniverse.lean, line 132.
Flat base change for Tor (Stacks Tag
00M8), for rings in an arbitrary universe.Let
S -> S'be a flat ring map of commutative rings (encoded as anS-algebraS'withModule.Flat S S'), and letM,NbeS-modules. Then for everyithe canonical base-change mapTor_i^S(M, N) (x)_S S' -> Tor_i^{S'}(M (x)_S S', N (x)_S S')— the underlying morphism(torBaseChangeIsoOfUniverse i M N).homof the comparison — is an isomorphism ofS'-modules.
theorem flat_base_change_tor_of_universe [Module.Flat S S'] (i : ℕ) (M N : ModuleCat.{u} S) :
IsIso (torBaseChangeIsoOfUniverse (S' := S') i M N).hom
Tag 0BNF, a lemma
Tag 0BNF in the Stacks Project.
tor_commutes_filtered_colimits, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Tor/BaseChange.lean, line 438. References: EGA III (6.3.12), “special case”; EGA III (6.3.6), “special case”; EGA III (6.5.6), “special case”.
Tor commutes with filtered colimits. Applying
Tor_n^R(-, N)to the direct-limit colimit cocone of a directed system(G i)ofR-modules yields again a colimit cocone, i.e. the canonical mapcolim_i Tor_n^R(G i, N) → Tor_n^R(colim_i G i, N)is an isomorphism.The ring
R : Type u, the index typeι : Type v, the modulesG : ι → Type wand the second argumentN : ModuleCat.{x} Rlive in four independent universes, and the conclusion is stated about their canonicalULifts intomax u v w x.
theorem tor_commutes_filtered_colimits
{R : Type u} [CommRing R]
{ι : Type v} [DecidableEq ι] [Preorder ι] [IsDirected ι (· ≤ ·)] [Nonempty ι]
(G : ι → Type w) [∀ i, AddCommGroup (G i)] [∀ i, Module R (G i)]
(f : (i j : ι) → i ≤ j → G i →ₗ[R] G j)
[DirectedSystem G (fun i j h => f i j h)]
(N : ModuleCat.{x} R) (n : ℕ) :
Nonempty (CategoryTheory.Limits.IsColimit
(((CategoryTheory.Tor (ModuleCat.{max u v w x} (ULift.{max v w x, u} R)) n).flip.obj
(ModuleCat.of (ULift.{max v w x, u} R) (ULift.{max u v w, x} N))).mapCocone
(ModuleCat.directLimitCocone
(fun i : ULift.{max u w x, v} ι => ULift.{max u v x, w} (G i.down))
(torULiftTransition.{u, v, w, x} G f))))
Sources
Section10.77 Projective modules#
Section 10.77 of the Stacks Project, Tag 05CD. 8 tags here are carried by 9 declarations of the repository (all in StacksFrontier) and 1 registered declaration, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 05CE, a definition
Tag 05CE in the Stacks Project.
Module.projective_iff_homLeft_shortExact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Projective/HomExact.lean, line 65. The attribute's comment: “elementwise form, any ring”.
An
R-modulePis projective if and only ifHom_R(P, -)carries every short exact sequence0 → N₁ → N₂ → N₃ → 0to a short exact sequence0 → Hom(P, N₁) → Hom(P, N₂) → Hom(P, N₃) → 0.
theorem projective_iff_homLeft_shortExact :
Module.Projective R P ↔ ∀ (N₁ N₂ N₃ : Type (max u v)) [AddCommGroup N₁] [Module R N₁]
[AddCommGroup N₂] [Module R N₂] [AddCommGroup N₃] [Module R N₃]
(f : N₁ →ₗ[R] N₂) (g : N₂ →ₗ[R] N₃), Function.Injective f → Function.Exact f g →
Function.Surjective g →
Function.Injective (LinearMap.compRight (M := P) ℕ f) ∧
Function.Exact (LinearMap.compRight (M := P) ℕ f) (LinearMap.compRight (M := P) ℕ g) ∧
Function.Surjective (LinearMap.compRight (M := P) ℕ g)
Module.projective_iff_shortExact_map_linearCoyoneda, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Projective/HomExact.lean, line 91.
An
R-modulePis projective if and only if the functorHom_R(P, -) : ModuleCat R ⥤ ModuleCat Rsends short exact sequences to short exact sequences.
theorem projective_iff_shortExact_map_linearCoyoneda :
Module.Projective R P ↔ ∀ S : ShortComplex (ModuleCat.{max u v} R), S.ShortExact →
(S.map ((linearCoyoneda R (ModuleCat.{max u v} R)).obj
(op (ModuleCat.of R P)))).ShortExact
Module.projective_iff_preservesFiniteLimits_and_preservesFiniteColimits_linearCoyoneda, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Projective/HomExact.lean, line 121. The attribute's comment: “exact functor as preserving finite limits and finite colimits”.
An
R-modulePis projective if and only if the functorHom_R(P, -) : ModuleCat R ⥤ ModuleCat Ris exact, in the sense that it preserves finite limits and finite colimits.
theorem projective_iff_preservesFiniteLimits_and_preservesFiniteColimits_linearCoyoneda :
Module.Projective R P ↔
PreservesFiniteLimits ((linearCoyoneda R (ModuleCat.{max u v} R)).obj
(op (ModuleCat.of R P))) ∧
PreservesFiniteColimits ((linearCoyoneda R (ModuleCat.{max u v} R)).obj
(op (ModuleCat.of R P)))
Tag 05CF, a lemma
Tag 05CF in the Stacks Project.
characterize_projective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Projective/Characterization.lean, line 130. References: EGA 0 (17.2.1), “n = 0”; SGA 5 XV (3.Lemma3), “more general”.
Theorem (Stacks Tag 05CF). For an
R-moduleP, the three conditions "Pis projective (lifting property)", "Pis a direct summand of a free module", and "Ext^1_R(P, M) = 0for allM" are equivalent.
theorem characterize_projective (P : Type u) [AddCommGroup P] [Module R P] :
List.TFAE
[IsProjectiveLifting R P, IsDirectSummandOfFree R P, ExtOneVanishes R P]
Tag 0G8T, a lemma
Tag 0G8T in the Stacks Project.
projective_of_ext_one_eq_zero, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ext/Finiteness.lean, line 607. References: EGA 0 (17.2.1), “n = 0”; EGA 0 (17.2.8), “special case”.
Stacks tag 0G8T (Lemma 10.77.3): a finite module
Pover a Noetherian ringRis projective as soon asExt¹_R(P, M)vanishes for every finiteR-moduleM.
theorem projective_of_ext_one_eq_zero {R : Type} [CommRing R] [IsNoetherianRing R]
(P : Type) [AddCommGroup P] [Module R P] [Module.Finite R P]
(h : ∀ (M : Type) [AddCommGroup M] [Module R M] [Module.Finite R M],
Subsingleton (Abelian.Ext (C := ModuleCat R) (ModuleCat.of R P) (ModuleCat.of R M) 1)) :
Module.Projective R P
Tag 065Q, a lemma
Tag 065Q in the Stacks Project.
Declarations registered for the tag:
Module.instProjectiveDFinsuppregistered withadd_to_stacksin StacksFrontier/RingTheory/Module/Projective/Characterization.lean, line 150 (StacksFrontier): “a direct sum of projective modules is projective”.
Tag 07LV, a lemma
Tag 07LV in the Stacks Project.
Module.exists_projective_quotient_smul_top_linearEquiv_of_isNilpotent, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Projective/Lifting.lean, line 376. References: SGA 5 XV (3.Lemma3), “(ii), existence”.
Stacks 07LV. Let
Rbe a ring, letI ⊆ Rbe a nilpotent two-sided ideal and letQbe a projectiveR ⧸ I-module. Then there is a projectiveR-modulePtogether with an isomorphismP/IP ≅ QofR ⧸ I-modules.
public theorem Module.exists_projective_quotient_smul_top_linearEquiv_of_isNilpotent
{R : Type u} [Ring R] {I : Ideal R} [I.IsTwoSided] {Q : Type v} [AddCommGroup Q]
[Module (R ⧸ I) Q] [Module.Projective (R ⧸ I) Q] (hI : IsNilpotent I) :
∃ (P : Type (max u v)) (_ : AddCommGroup P) (_ : Module R P),
Module.Projective R P ∧ Nonempty ((P ⧸ I • (⊤ : Submodule R P)) ≃ₗ[R ⧸ I] Q)
Tag 0D47, a lemma
Tag 0D47 in the Stacks Project.
lift_finite_projective_of_locallyNilpotent, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Projective/Lifting.lean, line 393. References: SGA 5 XV (3.Lemma3), “(ii) existence, finite”.
Stacks Tag 0D47 (Lemma 10.77.6). Let
Rbe a commutative ring andI ⊆ Ra locally nilpotent ideal. LetPbarbe a finite projectiveR/I-module. Then there exists a finite projectiveR-modulePtogether with an isomorphism ofR/I-modulesP / I P ≅ Pbar.
theorem lift_finite_projective_of_locallyNilpotent
{R : Type u} [CommRing R] (I : Ideal R)
(hI : I.IsLocallyNilpotent)
(Pbar : Type u) [AddCommGroup Pbar] [Module (R ⧸ I) Pbar]
[Module.Finite (R ⧸ I) Pbar] [Module.Projective (R ⧸ I) Pbar] :
∃ (P : Type u) (_ : AddCommGroup P) (_ : Module R P),
Module.Finite R P ∧ Module.Projective R P ∧
Nonempty ((P ⧸ (I • (⊤ : Submodule R P))) ≃ₗ[R ⧸ I] Pbar)
Tag 05CG, a lemma
Tag 05CG in the Stacks Project.
Module.Flat.projective_of_isNilpotent_of_projective_quotient_smul_top, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Projective/NilpotentIdeal.lean, line 193. References: SGA 5 XV (3.Lemma3), “(ii) flat ⇒ projective”.
Stacks 05CG. Let
Rbe a ring, letI ⊆ Rbe a nilpotent ideal and letMbe a flatR-module such thatM/IMis a projectiveR ⧸ I-module. ThenMis a projectiveR-module.
public theorem Module.Flat.projective_of_isNilpotent_of_projective_quotient_smul_top
{R : Type u} [CommRing R] {I : Ideal R} {M : Type v} [AddCommGroup M] [Module R M]
[Module.Flat R M] (hI : IsNilpotent I)
(hM : Module.Projective (R ⧸ I) (M ⧸ I • (⊤ : Submodule R M))) :
Module.Projective R M
Tag 0H7M, a lemma
Tag 0H7M in the Stacks Project.
projective_of_projective_quotient_inter_zero, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Projective/Lifting.lean, line 943.
Stacks Tag 0H7M, Lemma 10.77.8: if \(I \cap J = 0\) and both \(P/IP\) (as an \(R/I\)-module) and \(P/JP\) (as an \(R/J\)-module) are projective, then \(P\) is a projective \(R\)-module.
theorem projective_of_projective_quotient_inter_zero
(R : Type*) [CommRing R] (I J : Ideal R) (hIJ : I ⊓ J = ⊥)
(P : Type*) [AddCommGroup P] [Module R P]
(hI : Module.Projective (R ⧸ I) (P ⧸ (I • (⊤ : Submodule R P))))
(hJ : Module.Projective (R ⧸ J) (P ⧸ (J • (⊤ : Submodule R P)))) :
Module.Projective R P
Sources
Section10.78 Finite projective modules#
Section 10.78 of the Stacks Project, Tag 00NV. 8 tags here are carried by 9 declarations of the repository (all in StacksFrontier) and 2 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00NW, a definition
Tag 00NW in the Stacks Project.
Module.IsLocallyFree, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/LocallyFree/SheafBridge.lean, line 116. The attribute's comment: “(1)”. References: EGA 0 (5.4.1), “affine case”; EGA II (6.5.1), “(I)”; EGA III (7.9.1); EGA IV (21.5.3), “special case”; SGA 3 XV (2.10).
Mis a locally freeR-module: there is a familyf : ι → Rwhose basic opens coverSpec R(equivalently, generate the unit ideal) and such that each localizationM_{f i}is a freeR_{f i}-module.
def Module.IsLocallyFree (R : Type u) [CommRing R] (M : Type u)
[AddCommGroup M] [Module R M] : Prop
Module.IsFiniteLocallyFree, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/LocallyFree/SheafBridge.lean, line 132. The attribute's comment: “(2)”. References: EGA 0 (5.4.1), “affine case”; EGA II (6.5.1), “(I), special case”; EGA III (7.9.1); EGA IV (18.2.7), “partial”; EGA IV (21.5.3), “special case”; SGA 1 VIII (7.6), “affine module condition”; SGA 6 IV (2.1), “special case”.
Mis a finite locally freeR-module: as above, but each localizationM_{f i}is in addition finitely generated (hence finite free) overR_{f i}.
def Module.IsFiniteLocallyFree (R : Type u) [CommRing R] (M : Type u)
[AddCommGroup M] [Module R M] : Prop
Module.IsFiniteLocallyFreeOfRank, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/LocallyFree/SheafBridge.lean, line 167. The attribute's comment: “(3)”. References: EGA 0 (5.4.1), “affine case, rank n”; EGA II (6.5.1), “(I), special case”; EGA IV (18.2.7), “partial”; SGA 4½ Arcata (1.4.2); SGA 6 X (6.1), “partial”.
Mis finite locally free of rankr: there is a covering familyf : ι → RofSpec Rsuch that each localizationM_{f i}is free of rankroverR_{f i}, i.e. has a basis indexed byFin r.
def Module.IsFiniteLocallyFreeOfRank (R : Type u) [CommRing R] (M : Type v)
[AddCommGroup M] [Module R M] (r : ℕ) : Prop
Tag 00NX, a lemma
Tag 00NX in the Stacks Project.
Module.finite_projective_tfae, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/LocallyFree/FiniteProjective.lean, line 362. References: EGA III (7.3.4), “(1) => (8)”; EGA IV (2.1.12), “affine, flat everywhere”; EGA III (7.9.1); SGA 6 I (1.3.1), “affine case; (i)⇔(iii)”; SGA 6 I (2.15.1), “affine case, (3)⇒(7)”; SGA 6 I (5.8.3), “commutative ring case”; SGA 6 I (6.0), “special case”.
Characterizations of finite projective modules. For a module
Mover a commutative ringRthe following are equivalent: (1)Mis finitely presented and flat; (2)Mis finite projective; (3)Mis a direct summand of a finite free module; (4)Mis finitely presented and free at every prime; (5)Mis finitely presented and free at every maximal ideal; (6)Mis finite and locally free; (7)Mis finite locally free; (8)Mis finite, free at every prime, and its rank functionρ_M = Module.rankAtStalk Mis locally constant onSpec(R).
public theorem Module.finite_projective_tfae (R : Type u) [CommRing R] (M : Type v)
[AddCommGroup M] [Module R M] :
List.TFAE
[Module.FinitePresentation R M ∧ Module.Flat R M,
Module.Finite R M ∧ Module.Projective R M,
∃ (n : ℕ) (f : (Fin n → R) →ₗ[R] M) (g : M →ₗ[R] (Fin n → R)), f ∘ₗ g = LinearMap.id,
Module.FinitePresentation R M ∧ Module.freeLocus R M = Set.univ,
Module.FinitePresentation R M ∧ ∀ (𝔪 : Ideal R) (_ : 𝔪.IsMaximal),
Module.Free (Localization.AtPrime 𝔪) (LocalizedModule 𝔪.primeCompl M),
Module.Finite R M ∧ ∃ s : Set R, Ideal.span s = ⊤ ∧
∀ f ∈ s, Module.Free (Localization.Away f) (LocalizedModule.Away f M),
∃ s : Set R, Ideal.span s = ⊤ ∧ ∀ f ∈ s,
Module.Free (Localization.Away f) (LocalizedModule.Away f M) ∧
Module.Finite (Localization.Away f) (LocalizedModule.Away f M),
Module.Finite R M ∧ Module.freeLocus R M = Set.univ ∧
IsLocallyConstant (Module.rankAtStalk (R := R) M)]
Tag 0FWG, a lemma
Tag 0FWG in the Stacks Project.
Module.projective_iff_isLocallyConstant_finrank_fiber, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Projective/LocallyConstantRank.lean, line 407. References: SGA 6 III (5.6), “affine, E = M in deg 0”; SGA 6 I (6.0), “special case”; SGA 6 III (5.4.1), “special case”.
A finite module over a reduced ring is projective iff its fibre dimension is locally constant. For
Ra reduced commutative ring andMa finiteR-module,Mis projective (equivalently, byModule.finite_projective_tfae, finite locally free) if and only if the functionρ_M : Spec(R) → ℕ,𝔭 ↦ dim_{κ(𝔭)} M ⊗_R κ(𝔭), is locally constant. This is item (9) in the list of characterizations of finite projective modules.
public theorem Module.projective_iff_isLocallyConstant_finrank_fiber (R : Type u) [CommRing R]
[IsReduced R] (M : Type v) [AddCommGroup M] [Module R M] [Module.Finite R M] :
Module.Projective R M ↔
IsLocallyConstant fun p : PrimeSpectrum R ↦
Module.finrank p.asIdeal.ResidueField (p.asIdeal.Fiber M)
Tag 00NY, a remark
Tag 00NY in the Stacks Project.
Stacks.FiniteFlatNotProjective.quotientModule_not_projective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/LocallyFree/Basic.lean, line 214.
M = R/Iis not a projectiveR-module, although it is finite and flat.
theorem quotientModule_not_projective : ¬ Module.Projective SmoothFunReal QuotientModule
Tag 00O1, a lemma
Tag 00O1 in the Stacks Project.
finite_projective_iff_baseChange, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/LocallyFree/Basic.lean, line 256. References: SGA 3 VIB (11.8.2), “special case”.
Stacks 00O1 (Lemma 10.78.6). Let
R → Sbe a flat local homomorphism of local rings, and letMbe a finiteR-module. ThenMis finite projective overRif and only ifM ⊗_R Sis finite projective overS.
theorem finite_projective_iff_baseChange {R : Type*} {S : Type*} {M : Type*}
[CommRing R] [CommRing S] [Algebra R S]
[AddCommGroup M] [Module R M]
[IsLocalRing R] [IsLocalRing S]
[IsLocalHom (algebraMap R S)]
[Module.Flat R S]
[Module.Finite R M] :
(Module.Finite R M ∧ Module.Projective R M) ↔
(Module.Finite S (S ⊗[R] M) ∧ Module.Projective S (S ⊗[R] M))
Tag 02M9, a lemma
Tag 02M9 in the Stacks Project.
Module.free_of_flat_of_preconnectedSpace, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/LocalRing/Module.lean, line 232. The attribute's comment: “The second assertion; the first, for a module of constant rank, is Mathlib's Module.free_of_flat_of_finrank_eq.”. References: EGA IV (11.3.12), “more general”; EGA IV (15.2.4), “Freeness clause”.
A finite locally free module over a semi-local ring with connected spectrum is free. Let
Rbe a semi-local ring, so with finitely many maximal ideals, whose spectrum is (pre)connected, and letMbe a finite locally freeR-module, spelled here as finitely presented and flat. ThenMis free. The rank ofMis a locally constant function onSpec(R), hence constant, and a finite locally free module of constant rank over a semi-local ring is free (Module.free_of_flat_of_finrank_eq).
public theorem Module.free_of_flat_of_preconnectedSpace (R : Type u) [CommRing R]
[Finite (MaximalSpectrum R)] [PreconnectedSpace (PrimeSpectrum R)] (M : Type v)
[AddCommGroup M] [Module R M] [Module.FinitePresentation R M] [Module.Flat R M] :
Module.Free R M
Tag 03C1, a lemma
Tag 03C1 in the Stacks Project.
contains_sBasis_of_generates, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Free/Basis.lean, line 612. References: SGA 3 V (4.2).
Let
Rbe a local ring with maximal idealmand infinite residue field. LetR → Sbe a ring map,ManS-module, andN ⊆ ManR-submodule. IfSis semi-local withm S ⊆ Jac(S),Mis finite free overS, andNgeneratesMas anS-module, thenNcontains anS-basis ofM.
theorem contains_sBasis_of_generates
{R S M : Type*} [CommRing R] [CommRing S] [Algebra R S]
[AddCommGroup M] [Module S M] [Module R M] [IsScalarTower R S M]
[IsLocalRing R] [Infinite (IsLocalRing.ResidueField R)]
(hSsemilocal : Finite (MaximalSpectrum S))
(hmS : Ideal.map (algebraMap R S) (IsLocalRing.maximalIdeal R) ≤ Ring.jacobson S)
[Module.Free S M] [Module.Finite S M]
(N : Submodule R M)
(hN : GeneratesAsSModule S N) :
ContainsSBasis S N
Tag 0DVB, a lemma
Tag 0DVB in the Stacks Project.
Declarations registered for the tag:
rTensorHomEquivHomRTensorregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 271 (StacksFrontier): “the isomorphism Hom(M, N) ⊗ L ≃ Hom(M, N ⊗ L) for M finite projective”. References: SGA 5 III (3.1), “special case”; SGA 5 III (6.3), “special case”; SGA 6 I (7.6), “special case”.rTensorHomEquivHomRTensor_toLinearMapregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 273 (StacksFrontier): “it is the canonical map f ⊗ l ↦ (m ↦ f m ⊗ l)”.
Sources
Section10.79 Open loci defined by module maps#
Section 10.79 of the Stacks Project, Tag 05GD. 4 tags here are carried by 5 declarations of the repository (all in StacksFrontier) and 1 registered declaration, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 05GE, a lemma
Tag 05GE in the Stacks Project.
LinearMap.setOf_localizedMap_atPrime_surjective_eq_setOf_baseChange_surjective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/SurjectivityLocus.lean, line 122. The attribute's comment: “the equality of the two loci in the displayed formula”.
Let
Rbe a ring and letφ : M →ₗ[R] Nbe a map ofR-modules whose cokernelN ⧸ φ.rangeis a finiteR-module. Then the set of primespofRsuch that the localized mapφ_p : M_p → N_pis surjective is the set of primespsuch that the fibre mapφ ⊗ κ(p) : M ⊗_R κ(p) → N ⊗_R κ(p)is surjective.
public theorem LinearMap.setOf_localizedMap_atPrime_surjective_eq_setOf_baseChange_surjective
{R M N : Type*} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N]
(φ : M →ₗ[R] N) [Module.Finite R (N ⧸ φ.range)] :
{p : PrimeSpectrum R | Function.Surjective (LocalizedModule.map p.asIdeal.primeCompl φ)} =
{p | Function.Surjective (φ.baseChange p.asIdeal.ResidueField)}
Tag 05GF, a lemma
Tag 05GF in the Stacks Project.
LinearMap.isOpen_setOf_localizedMap_atPrime_bijective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/FinitePresentation/Locus.lean, line 102.
Let
Rbe a ring and letφ : M →ₗ[R] Nbe a map ofR-modules withMa finiteR-module andNa finitely presentedR-module. Then the set of primespofRsuch that the localized mapφ_p : M_p → N_pis an isomorphism is an open subset ofSpec(R).
public theorem LinearMap.isOpen_setOf_localizedMap_atPrime_bijective
{R M N : Type*} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N]
(φ : M →ₗ[R] N) [Module.Finite R M] [Module.FinitePresentation R N] :
IsOpen {p : PrimeSpectrum R |
Function.Bijective (LocalizedModule.map p.asIdeal.primeCompl φ)}
Tag 0GWM, a lemma
Tag 0GWM in the Stacks Project.
Declarations registered for the tag:
Module.FinitePresentation.exists_free_localizedModule_powersregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 255 (StacksFrontier). References: EGA IV (8.5.5), “special case”.
Tag 00O0, a lemma
Tag 00O0 in the Stacks Project.
Stacks.FiniteProjective.MapLocus.isOpen_injLocus_and_localized, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Projective/Locus.lean, line 882. The attribute's comment: “(1)”. References: EGA 0 (19.1.12), “P₁,P₂ finite projective”; EGA IV (11.3.7), “affine case, b)=>a)”.
(Injectivity locus.) The injectivity locus
Uis open, and for everyfwithD(f) ⊆ U: (a) the localized mapφ_fis injective; and (b)Coker(φ)_fis finite projective overR_f.
theorem isOpen_injLocus_and_localized
(φ : P₁ →ₗ[R] P₂) [Module.Finite R P₁] [Module.Projective R P₁]
[Module.Finite R P₂] [Module.Projective R P₂] :
IsOpen (injLocus φ) ∧
∀ f : R, (PrimeSpectrum.basicOpen f : Set (PrimeSpectrum R)) ⊆ injLocus φ →
Function.Injective (localizedMap φ f) ∧
Module.Finite (Localization.Away f)
(Localization.Away f ⊗[R] (P₂ ⧸ LinearMap.range φ)) ∧
Module.Projective (Localization.Away f)
(Localization.Away f ⊗[R] (P₂ ⧸ LinearMap.range φ))
Stacks.FiniteProjective.MapLocus.isOpen_surjLocus_and_localized, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Projective/Locus.lean, line 901. The attribute's comment: “(2)”.
(Surjectivity locus.) The surjectivity locus
Wis open, and for everyfwithD(f) ⊆ W: (a) the localized mapφ_fis surjective; and (b)Ker(φ)_fis finite projective overR_f.
theorem isOpen_surjLocus_and_localized
(φ : P₁ →ₗ[R] P₂) [Module.Finite R P₁] [Module.Projective R P₁]
[Module.Finite R P₂] [Module.Projective R P₂] :
IsOpen (surjLocus φ) ∧
∀ f : R, (PrimeSpectrum.basicOpen f : Set (PrimeSpectrum R)) ⊆ surjLocus φ →
Function.Surjective (localizedMap φ f) ∧
Module.Finite (Localization.Away f)
(Localization.Away f ⊗[R] (LinearMap.ker φ)) ∧
Module.Projective (Localization.Away f)
(Localization.Away f ⊗[R] (LinearMap.ker φ))
Stacks.FiniteProjective.MapLocus.isOpen_isoLocus_and_localized, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Projective/Locus.lean, line 924. The attribute's comment: “(3)”.
(Isomorphism locus.) The isomorphism locus
Vis open, and for everyfwithD(f) ⊆ V, the localized mapφ_fis bijective.Formal consequence of Theorems 1 and 2:
isoLocus φ = injLocus φ ∩ surjLocus φ(isoLocus_eq), so it is open as an intersection of two opens; and onD(f) ⊆ isoLocus φ ⊆ injLocus φ(resp.⊆ surjLocus φ) the localized map is both injective (injective_localizedMap_of_subset) and surjective (surjective_localizedMap_of_subset), hence bijective.
theorem isOpen_isoLocus_and_localized
(φ : P₁ →ₗ[R] P₂) [Module.Finite R P₁] [Module.Projective R P₁]
[Module.Finite R P₂] [Module.Projective R P₂] :
IsOpen (isoLocus φ) ∧
∀ f : R, (PrimeSpectrum.basicOpen f : Set (PrimeSpectrum R)) ⊆ isoLocus φ →
Function.Bijective (localizedMap φ f)
Sources
Section10.81 Characterizing flatness#
Section 10.81 of the Stacks Project, Tag 058C. 3 tags here are carried by 3 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 058E, a lemma
Tag 058E in the Stacks Project.
Module.Flat.iff_exists_factorization_of_finitePresentation, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/EquationalCriterion.lean, line 172.
Stacks 058E. An
R-moduleMis flat if and only if everyR-linear map toMfrom a finitely presentedR-modulePfactors through a free finiteR-module: there arek : ℕand mapsh : P → (Fin k →₀ R)andg : (Fin k →₀ R) → Mwithf = g ∘ h.
public theorem Module.Flat.iff_exists_factorization_of_finitePresentation {R : Type u} {M : Type v}
[CommRing R] [AddCommGroup M] [Module R M] :
Module.Flat R M ↔ ∀ ⦃P : Type u⦄ [AddCommGroup P] [Module R P]
[Module.FinitePresentation R P] (f : P →ₗ[R] M),
∃ (k : ℕ) (h : P →ₗ[R] (Fin k →₀ R)) (g : (Fin k →₀ R) →ₗ[R] M), f = g ∘ₗ h
Tag 058F, a lemma
Tag 058F in the Stacks Project.
Module.Flat.iff_surjective_compRight_of_finitePresentation, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/EquationalCriterion.lean, line 250.
Stacks 058F. An
R-moduleMis flat if and only if for every finitely presentedR-modulePand every surjectionφ : N → MofR-modules the induced mapHom_R(P, N) → Hom_R(P, M), postcomposition withφ, is surjective.
public theorem Module.Flat.iff_surjective_compRight_of_finitePresentation {R : Type u} [CommRing R]
[Small.{v} R] {M : Type v} [AddCommGroup M] [Module R M] :
Module.Flat R M ↔
∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
⦃N : Type v⦄ [AddCommGroup N] [Module R N] (φ : N →ₗ[R] M), Function.Surjective φ →
Function.Surjective (LinearMap.compRight (M := P) R φ)
Tag 058G, a theorem
Tag 058G in the Stacks Project.
flat_iff_directLimit_free_finite, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/Lazard.lean, line 714. References: EGA 0 (6.1.2), “special case”; EGA 0 (6.2.3), “special case”; EGA 0 (6.3.4), “partial”; SGA 3 VIIA (4.2.1), “more general”; SGA 4 V (1.2), “Reverse implication only”; SGA 4 V (8.2.12), “special case”; SGA 4 VI (8.6.4), “special case”; SGA 4 XVII (5.5.1.1), “special case”; SGA 4 XVII (5.5.1.2), “partial”; SGA 4 XVII (5.5.6.3), “partial”.
Lazard's theorem. An
R-moduleMover a commutative ringRis flat if and only ifMis the colimit of a directed system of free finiteR-modules: there exists a directed (nonempty, filtered) preorderι, a family ofR-modulesG : ι → TypewithR-linear transition mapsfforming aDirectedSystem, such that everyG iis free and finite, together with anR-linear isomorphism between the direct limitModule.DirectLimit G fandM.
theorem flat_iff_directLimit_free_finite {R : Type u} [CommRing R] (M : Type u)
[AddCommGroup M] [Module R M] :
Module.Flat R M ↔
∃ (ι : Type u) (_ : Preorder ι) (_ : IsDirected ι (· ≤ ·)) (_ : Nonempty ι)
(_ : DecidableEq ι) (G : ι → Type u) (_ : (i : ι) → AddCommGroup (G i))
(_ : (i : ι) → Module R (G i)) (f : (i j : ι) → i ≤ j → G i →ₗ[R] G j)
(_ : DirectedSystem G fun i j h => f i j h),
(∀ i, Module.Free R (G i)) ∧ (∀ i, Module.Finite R (G i)) ∧
Nonempty (Module.DirectLimit G f ≃ₗ[R] M)
Sources
Section10.82 Universally injective module maps#
Section 10.82 of the Stacks Project, Tag 058H. 14 tags here are carried by 20 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 058I, a definition
Tag 058I in the Stacks Project.
UniversallyInjective, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/UniversallyInjective.lean, line 342. References: EGA IV (11.9.14), “special case”; EGA IV (11.9.18), “special case”; SGA 1 II (4.5).
Universally injective module map. A homomorphism of
R-modulesf : M →ₗ[R] Nis universally injective if for everyR-moduleQ, the induced mapf ⊗ id_Q : M ⊗_R Q → N ⊗_R Q(i.e.f.rTensor Q) is injective.
def UniversallyInjective {M N : Type v} [AddCommGroup M] [AddCommGroup N]
[Module R M] [Module R N] (f : M →ₗ[R] N) : Prop
Tag 058J, an example
Tag 058J in the Stacks Project.
split_universallyExact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/UniversallyExact.lean, line 289. The attribute's comment: “(1)”.
A split short exact sequence is universally exact; equivalently its first map
f₁is universally injective.
theorem split_universallyExact
{M₁ M₂ M₃ : Type v} [AddCommGroup M₁] [Module R M₁]
[AddCommGroup M₂] [Module R M₂] [AddCommGroup M₃] [Module R M₃]
(S : ShortExact (R := R) M₁ M₂ M₃) (hS : S.IsSplit) :
S.UniversallyExact
colim_universallyExact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/UniversallyExact.lean, line 385. The attribute's comment: “(2)”.
Filtered colimits preserve universally exact short exact sequences.
theorem colim_universallyExact
{ι : Type v} [Preorder ι] [IsDirected ι (· ≤ ·)] [Nonempty ι] [DecidableEq ι]
{M₁ M₂ M₃ : ι → Type v}
[∀ i, AddCommGroup (M₁ i)] [∀ i, Module R (M₁ i)]
[∀ i, AddCommGroup (M₂ i)] [∀ i, Module R (M₂ i)]
[∀ i, AddCommGroup (M₃ i)] [∀ i, Module R (M₃ i)]
(D : DirectedSES (R := R) ι M₁ M₂ M₃)
(hD : ∀ i, (D.seq i).UniversallyExact) :
Function.Injective D.colimF₁ ∧
Function.Surjective D.colimF₂ ∧
LinearMap.range D.colimF₁ = LinearMap.ker D.colimF₂ ∧
UniversallyInjective D.colimF₁
Tag 058K, a theorem
Tag 058K in the Stacks Project.
Function.Exact.universallyExact_tfae, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/UniversallyExact.lean, line 1168. The attribute's comment: “Items (1)-(6), in the source's order, as a List.TFAE.”.
Stacks 058K. Let
0 → M₁ →[f₁] M₂ →[f₂] M₃ → 0be a short exact sequence ofR-modules. The following are equivalent: 1. the sequence is universally exact, that is,f₁ ⊗ id_Qis injective for everyR-moduleQ; 2. for every finitely presentedR-moduleQthe sequence0 → M₁ ⊗ Q → M₂ ⊗ Q → M₃ ⊗ Q → 0is exact; 3. wheneverx i ∈ M₁,y j ∈ M₂anda i j ∈ Rsatisfyf₁ (x i) = ∑ j, a i j • y jfor alli, there arez j ∈ M₁withx i = ∑ j, a i j • z jfor alli; 4. every commutative squaref₁ ∘ β = γ ∘ αwithα : Rⁿ → Rᵐ,β : Rⁿ → M₁andγ : Rᵐ → M₂admitsδ : Rᵐ → M₁withδ ∘ α = β; 5. for every finitely presentedR-modulePthe mapHom_R(P, M₂) → Hom_R(P, M₃)given by postcomposition withf₂is surjective; 6. the sequence is the colimit of a directed system of split exact sequences0 → M₁ → M_{2,j} → M_{3,j} → 0withM_{3,j}finitely presented.
public theorem Function.Exact.universallyExact_tfae {R : Type u} [CommRing R] [Small.{v} R]
{M₁ M₂ M₃ : Type v} [AddCommGroup M₁] [Module R M₁] [AddCommGroup M₂] [Module R M₂]
[AddCommGroup M₃] [Module R M₃] {f₁ : M₁ →ₗ[R] M₂} {f₂ : M₂ →ₗ[R] M₃}
(h : Function.Exact f₁ f₂) (h₁ : Function.Injective f₁) (h₂ : Function.Surjective f₂) :
List.TFAE
[ ∀ (Q : Type v) [AddCommGroup Q] [Module R Q], Function.Injective (f₁.rTensor Q),
∀ (Q : Type v) [AddCommGroup Q] [Module R Q] [Module.FinitePresentation R Q],
Function.Injective (f₁.rTensor Q) ∧ Function.Exact (f₁.rTensor Q) (f₂.rTensor Q) ∧
Function.Surjective (f₂.rTensor Q),
∀ (n m : ℕ) (x : Fin n → M₁) (y : Fin m → M₂) (a : Fin n → Fin m → R),
(∀ i, f₁ (x i) = ∑ j, a i j • y j) → ∃ z : Fin m → M₁, ∀ i, x i = ∑ j, a i j • z j,
∀ (n m : ℕ) (α : (Fin n →₀ R) →ₗ[R] (Fin m →₀ R)) (β : (Fin n →₀ R) →ₗ[R] M₁)
(γ : (Fin m →₀ R) →ₗ[R] M₂), f₁ ∘ₗ β = γ ∘ₗ α →
∃ δ : (Fin m →₀ R) →ₗ[R] M₁, δ ∘ₗ α = β,
∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P],
Function.Surjective (LinearMap.compRight (M := P) R f₂),
∃ (J : Type v) (_ : Preorder J) (_ : IsDirected J (· ≤ ·)) (_ : Nonempty J)
(F : J ⥤ ShortComplex (ModuleCat.{v} R)) (c : Cocone F) (_ : IsColimit c)
(_ : c.pt ≅ ModuleCat.shortComplexOfCompEqZero f₁ f₂ h.linearMap_comp_eq_zero),
∀ j, Nonempty (F.obj j).Splitting ∧ Module.FinitePresentation R (F.obj j).X₃ ∧
IsIso ((c.ι.app j).τ₁) ]
Tag 058L, a lemma
Tag 058L in the Stacks Project.
Function.Exact.split_iff_forall_rTensor_injective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/UniversallyExact.lean, line 1354. The attribute's comment: “Exactness is hypothesised; splitness is the existence of a section of f₂.”.
Stacks 058L. Let
0 → M₁ →[f₁] M₂ →[f₂] M₃ → 0be a short exact sequence ofR-modules withM₃of finite presentation. Thenf₂admits anR-linear section — equivalently, the sequence is split — if and only if the sequence is universally exact, that is, if and only iff₁ ⊗ id_Q : M₁ ⊗ Q → M₂ ⊗ Qis injective for everyR-moduleQ.
public theorem Function.Exact.split_iff_forall_rTensor_injective {R : Type u} [CommRing R]
[Small.{v} R] {M₁ M₂ M₃ : Type v} [AddCommGroup M₁] [Module R M₁] [AddCommGroup M₂]
[Module R M₂] [AddCommGroup M₃] [Module R M₃] [Module.FinitePresentation R M₃]
{f₁ : M₁ →ₗ[R] M₂} {f₂ : M₂ →ₗ[R] M₃} (h : Function.Exact f₁ f₂)
(h₁ : Function.Injective f₁) (h₂ : Function.Surjective f₂) :
(∃ l : M₃ →ₗ[R] M₂, f₂ ∘ₗ l = LinearMap.id) ↔
∀ (Q : Type v) [AddCommGroup Q] [Module R Q],
Function.Injective (f₁.rTensor Q)
Tag 058M, a lemma
Tag 058M in the Stacks Project.
Module.Flat.iff_forall_rTensor_injective_of_exact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/UniversallyInjective.lean, line 132. The attribute's comment: “Exactness is hypothesised; universal injectivity of f₁ is spelled out.”.
An
R-moduleMis flat if and only if every short exact sequence0 → M₁ →[f₁] M₂ →[f₂] M → 0ofR-modules is universally exact, that is, if and only iff₁ ⊗ id_Q : M₁ ⊗ Q → M₂ ⊗ Qis injective for every such sequence and everyR-moduleQ.
public theorem Module.Flat.iff_forall_rTensor_injective_of_exact {R : Type u} [CommRing R]
[Small.{v} R] {M : Type v} [AddCommGroup M] [Module R M] :
Module.Flat R M ↔
∀ ⦃M₁ M₂ : Type v⦄ [AddCommGroup M₁] [Module R M₁] [AddCommGroup M₂] [Module R M₂]
(f₁ : M₁ →ₗ[R] M₂) (f₂ : M₂ →ₗ[R] M), Function.Injective f₁ →
Function.Exact f₁ f₂ → Function.Surjective f₂ →
∀ (Q : Type v) [AddCommGroup Q] [Module R Q],
Function.Injective (f₁.rTensor Q)
Tag 058P, a lemma
Tag 058P in the Stacks Project.
UniversallyExact.flat_of_middle_flat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/UniversallyExact.lean, line 481. References: EGA 0 (6.7.4), “partial”.
Theorem (Stacks Tag 058P, Lemma 10.82.7). Let
0 -> M_1 ->[u] M_2 ->[v] M_3 -> 0be a universally exact sequence ofR-modules withM_2flat. ThenM_1is flat andM_3is flat.
theorem UniversallyExact.flat_of_middle_flat
{M₁ M₂ M₃ : Type u} [AddCommGroup M₁] [AddCommGroup M₂] [AddCommGroup M₃]
[Module R M₁] [Module R M₂] [Module R M₃]
(u : M₁ →ₗ[R] M₂) (v : M₂ →ₗ[R] M₃)
(hue : UniversallyExact u v) (hM₂ : Module.Flat R M₂) :
Module.Flat R M₁ ∧ Module.Flat R M₃
Tag 05CH, a lemma
Tag 05CH in the Stacks Project.
universallyInjective_rTensor, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/UniversallyInjective.lean, line 358.
If
u : M →ₗ[R] M'is universally injective, then for anyR-moduleNthe induced mapu ⊗ id_N : M ⊗_R N → M' ⊗_R N(i.e.LinearMap.rTensor N u) is again universally injective.
theorem universallyInjective_rTensor {R : Type} [CommRing R]
{M : Type} [AddCommGroup M] [Module R M]
{M' : Type} [AddCommGroup M'] [Module R M']
(u : M →ₗ[R] M') (hu : UniversallyInjective u)
(N : Type) [AddCommGroup N] [Module R N] :
UniversallyInjective (LinearMap.rTensor N u)
Tag 05CI, a lemma
Tag 05CI in the Stacks Project.
comp_universallyInjective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/UniversallyInjective.lean, line 392.
A composition of universally injective
R-module maps is universally injective.
theorem comp_universallyInjective {R : Type u} [CommRing R] {M N P : Type*}
[AddCommGroup M] [AddCommGroup N] [AddCommGroup P]
[Module R M] [Module R N] [Module R P]
(f : M →ₗ[R] N) (g : N →ₗ[R] P)
(hf : IsPureMono.{u, v} f) (hg : IsPureMono.{u, v} g) :
IsPureMono.{u, v} (g ∘ₗ f)
Tag 05CJ, a lemma
Tag 05CJ in the Stacks Project.
Function.Injective.of_rTensor_comp, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/LinearAlgebra/TensorProduct/InjectiveComposition.lean, line 77. The attribute's comment: “Stated for one test module Q; the source's form is its closure over Q.”.
Let
f : M →ₗ[R] M'andg : M' →ₗ[R] M''beR-module maps and letQbe anR-module. If(g ∘ₗ f) ⊗ id_Qis injective, then so isf ⊗ id_Q. Quantifying overQ: if the compositiong ∘ₗ fis universally injective, thenfis universally injective.
public theorem Function.Injective.of_rTensor_comp {R : Type*} [CommSemiring R] {M M' M'' Q : Type*}
[AddCommMonoid M] [Module R M] [AddCommMonoid M'] [Module R M'] [AddCommMonoid M'']
[Module R M''] [AddCommMonoid Q] [Module R Q] {f : M →ₗ[R] M'} {g : M' →ₗ[R] M''}
(h : Function.Injective ((g ∘ₗ f).rTensor Q)) : Function.Injective (f.rTensor Q)
Tag 05CL, a lemma
Tag 05CL in the Stacks Project.
Stacks.UniversalInjectivity.LocalizationCriteria.universally_injective_check_stalks, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/UniversallyInjective.lean, line 867.
For a ring map
R → Sand a mapf : M → M'ofS-modules, universal injectivity offas a map ofR-modules can be checked on localizations: the following are equivalent:fis universally injective overR;f_qis, for every primeqofS;f_mis, for every maximal idealmofS; and the corresponding statements over the localizationsR_p.
theorem universally_injective_check_stalks
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S]
{M : Type w} {M' : Type w'}
[AddCommGroup M] [Module S M] [Module R M] [IsScalarTower R S M]
[AddCommGroup M'] [Module S M'] [Module R M'] [IsScalarTower R S M']
(f : M →ₗ[S] M') :
[ -- (1) f is universally injective as a map of R-modules
UniversallyInjective.{max u t} (f.restrictScalars R),
-- (2) for every prime q of S, f_q is universally injective as a map of R-modules
∀ (q : Ideal S) [q.IsPrime], UniversallyInjective.{max u t} (A := R) (localizedMapR f q),
-- (3) for every maximal m of S, f_m is universally injective as a map of R-modules
∀ (m : Ideal S) [m.IsMaximal], UniversallyInjective.{max u t} (A := R) (localizedMapR f m),
-- (4) for every prime q of S, f_q is universally injective as a map of R_p-modules
∀ (q : Ideal S) [q.IsPrime],
UniversallyInjective.{max u t} (A := Localization.AtPrime (q.under R)) (localizedMapRp f q),
-- (5) for every maximal m of S, f_m is universally injective as a map of R_p-modules
∀ (m : Ideal S) [m.IsMaximal],
UniversallyInjective.{max u t} (A := Localization.AtPrime (m.under R)) (localizedMapRp f m)
].TFAE
Tag 05CM, a lemma
Tag 05CM in the Stacks Project.
IsLocalizedModule.rTensor_injective_of_rTensor_injective_and_iff_extendScalars, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Localization/UniversalInjectivity.lean, line 372. The attribute's comment: “Items (1) and (2) together, for one test module Q; the source's form is the closure over Q.”.
Stacks 05CM. Let
A → Bbe a ring map, letS ⊆ AandS' ⊆ Bbe multiplicative subsets, letf : M → M'be a map ofB-modules and letfₛ : N → N'be its localization atS', pinned by the squarefₛ ∘ₗ g = g' ∘ₗ f. LetQbe anA-module with localizationS⁻¹QatS. Then:
- if
f ⊗ id_Qis injective, so isfₛ ⊗ id_Q, both tensor products taken overA;fₛ ⊗_A id_Qis injective if and only iffₛ ⊗_{S⁻¹A} id_{S⁻¹Q}is injective.This is the source's own sentence, about one localized map. The two items are independent of each other and each is stated separately, over its own data alone, as
IsLocalizedModule.rTensor_injective_of_rTensor_injectiveandLinearMap.rTensor_injective_iff_extendScalarsOfIsLocalization; those are the forms to cite.
public theorem IsLocalizedModule.rTensor_injective_of_rTensor_injective_and_iff_extendScalars
{A B : Type*} [CommRing A] [CommRing B] [Algebra A B] (S : Submonoid A) (S' : Submonoid B)
(Aₛ : Type*) [CommRing Aₛ] [Algebra A Aₛ] [IsLocalization S Aₛ] {M M' N N' Q Qₛ : Type*}
[AddCommGroup M] [Module A M] [Module B M] [IsScalarTower A B M]
[AddCommGroup M'] [Module A M'] [Module B M'] [IsScalarTower A B M']
[AddCommGroup N] [Module A N] [Module B N] [IsScalarTower A B N]
[Module Aₛ N] [IsScalarTower A Aₛ N]
[AddCommGroup N'] [Module A N'] [Module B N'] [IsScalarTower A B N']
[Module Aₛ N'] [IsScalarTower A Aₛ N']
[AddCommGroup Q] [Module A Q] [AddCommGroup Qₛ] [Module A Qₛ] [Module Aₛ Qₛ]
[IsScalarTower A Aₛ Qₛ] (g : M →ₗ[B] N) (g' : M' →ₗ[B] N') [IsLocalizedModule S' g]
[IsLocalizedModule S' g'] (q : Q →ₗ[A] Qₛ) [IsLocalizedModule S q] (f : M →ₗ[B] M')
(fₛ : N →ₗ[B] N') (hf : fₛ ∘ₗ g = g' ∘ₗ f) :
(Function.Injective ((f.restrictScalars A).rTensor Q) →
Function.Injective ((fₛ.restrictScalars A).rTensor Q)) ∧
(Function.Injective ((fₛ.restrictScalars A).rTensor Q) ↔
Function.Injective ((LinearMap.extendScalarsOfIsLocalization S Aₛ
(fₛ.restrictScalars A)).rTensor Qₛ))
IsLocalizedModule.rTensor_injective_of_rTensor_injective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Localization/UniversalInjectivity.lean, line 403. The attribute's comment: “Item (1), for one test module Q; the source's form is the closure over Q.”.
Stacks 05CM, item (1). Let
A → Bbe a ring map, letS' ⊆ Bbe a multiplicative subset, letf : M → M'be a map ofB-modules and letfₛ : N → N'be its localization atS', pinned by the squarefₛ ∘ₗ g = g' ∘ₗ f. LetQbe anA-module. Iff ⊗ id_Qis injective, so isfₛ ⊗ id_Q, both tensor products taken overA.Quantifying over
Q: iffis universally injective as a map ofA-modules, then so is its localization atS'. Composed withLinearMap.rTensor_injective_iff_extendScalarsOfIsLocalizationthis gives the universal injectivity of the localization as a map ofS⁻¹A-modules as well, for anyS ⊆ Awithφ(S) ⊆ S'.
public theorem IsLocalizedModule.rTensor_injective_of_rTensor_injective
{A B : Type*} [CommRing A] [CommRing B] [Algebra A B] (S' : Submonoid B)
{M M' N N' : Type*}
[AddCommGroup M] [Module A M] [Module B M] [IsScalarTower A B M]
[AddCommGroup M'] [Module A M'] [Module B M'] [IsScalarTower A B M']
[AddCommGroup N] [Module A N] [Module B N] [IsScalarTower A B N]
[AddCommGroup N'] [Module A N'] [Module B N'] [IsScalarTower A B N']
(g : M →ₗ[B] N) (g' : M' →ₗ[B] N') [IsLocalizedModule S' g] [IsLocalizedModule S' g']
(f : M →ₗ[B] M') (fₛ : N →ₗ[B] N') (hf : fₛ ∘ₗ g = g' ∘ₗ f) (Q : Type*) [AddCommGroup Q]
[Module A Q] (h : Function.Injective ((f.restrictScalars A).rTensor Q)) :
Function.Injective ((fₛ.restrictScalars A).rTensor Q)
LinearMap.rTensor_injective_iff_extendScalarsOfIsLocalization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Localization/UniversalInjectivity.lean, line 428. The attribute's comment: “Item (2), for one test module Q and one localization S⁻¹Q of it; stated for an A-linear map between S⁻¹A-modules, of which the source's B-linear map between (S')⁻¹B-modules is a case.”.
Stacks 05CM, item (2). Let
S ⊆ Abe a multiplicative subset, letfₛ : N → N'be a map ofA-modules between twoS⁻¹A-modules and letQbe anA-module with localizationS⁻¹QatS. Thenfₛ ⊗_A id_Qis injective if and only iffₛ ⊗_{S⁻¹A} id_{S⁻¹Q}is injective.Quantifying over
Q: for a map betweenS⁻¹A-modules — in particular between(S')⁻¹B-modules, for a multiplicativeS' ⊆ Bwithφ(S) ⊆ S', which is the case the source states — universal injectivity as a map ofA-modules and universal injectivity as a map ofS⁻¹A-modules are the same condition.
public theorem LinearMap.rTensor_injective_iff_extendScalarsOfIsLocalization
{A : Type*} [CommRing A] (S : Submonoid A) (Aₛ : Type*) [CommRing Aₛ] [Algebra A Aₛ]
[IsLocalization S Aₛ] {N N' Q Qₛ : Type*}
[AddCommGroup N] [Module A N] [Module Aₛ N] [IsScalarTower A Aₛ N]
[AddCommGroup N'] [Module A N'] [Module Aₛ N'] [IsScalarTower A Aₛ N']
[AddCommGroup Q] [Module A Q] [AddCommGroup Qₛ] [Module A Qₛ] [Module Aₛ Qₛ]
[IsScalarTower A Aₛ Qₛ] (q : Q →ₗ[A] Qₛ) [IsLocalizedModule S q] (fₛ : N →ₗ[A] N') :
Function.Injective (fₛ.rTensor Q) ↔
Function.Injective ((LinearMap.extendScalarsOfIsLocalization S Aₛ fₛ).rTensor Qₛ)
Tag 0AS5, a lemma
Tag 0AS5 in the Stacks Project.
Module.Flat.rTensor_injective_iff_injective_mapQ_smul_top, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/UniversallyInjective.lean, line 318. The attribute's comment: “M/IM is M ⧸ I • ⊤ and the induced map is Submodule.mapQ along f; the left-hand side spells out universal injectivity, which Mathlib has no name for.”.
Let
f : M →ₗ[R] M'be a map ofR-modules withM'flat. Thenfis universally injective, that isf ⊗ id_Qis injective for everyR-moduleQ, if and only if the induced mapM/IM → M'/IM'is injective for every finitely generated idealI ⊆ R.
public theorem Module.Flat.rTensor_injective_iff_injective_mapQ_smul_top {R : Type u} [CommRing R]
[Small.{v} R] {M M' : Type v} [AddCommGroup M] [Module R M] [AddCommGroup M'] [Module R M']
[Module.Flat R M'] (f : M →ₗ[R] M') :
(∀ (Q : Type v) [AddCommGroup Q] [Module R Q], Function.Injective (f.rTensor Q)) ↔
∀ ⦃I : Ideal R⦄, I.FG →
Function.Injective ((I • ⊤ : Submodule R M).mapQ (I • ⊤ : Submodule R M') f
(Submodule.smul_top_le_comap_smul_top I f))
Tag 0H9I, a lemma
Tag 0H9I in the Stacks Project.
reflects_injections, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/UniversallyInjective.lean, line 973. The attribute's comment: “(1)”.
Base change along a universally injective ring map reflects injections. If
R → Sis universally injective as a map ofR-modules andf ⊗_R id_S : M ⊗[R] S → N ⊗[R] Sis injective, thenfis injective.
theorem reflects_injections
{R : Type u} [CommRing R] {S : Type u} [CommRing S] [Algebra R S]
(hRS : UniversallyInjective (Algebra.linearMap R S))
{M : Type u} [AddCommGroup M] [Module R M]
{N : Type u} [AddCommGroup N] [Module R N]
(f : M →ₗ[R] N)
(hf : Function.Injective (LinearMap.rTensor S f)) :
Function.Injective f
reflects_surjections, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/UniversallyInjective.lean, line 988. The attribute's comment: “(2)”. References: EGA IV (2.2.7), “partial”; EGA IV (2.5.4.1), “more general”.
Base change along a universally injective ring map reflects surjections. If
R → Sis universally injective as a map ofR-modules andf ⊗_R id_S : M ⊗[R] S → N ⊗[R] Sis surjective, thenfis surjective.
theorem reflects_surjections
{R : Type u} [CommRing R] {S : Type u} [CommRing S] [Algebra R S]
(hRS : UniversallyInjective (Algebra.linearMap R S))
{M : Type u} [AddCommGroup M] [Module R M]
{N : Type u} [AddCommGroup N] [Module R N]
(f : M →ₗ[R] N)
(hf : Function.Surjective (LinearMap.rTensor S f)) :
Function.Surjective f
reflects_isomorphisms, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/UniversallyInjective.lean, line 1019. The attribute's comment: “(3)”.
Base change along a universally injective ring map reflects isomorphisms. If
R → Sis universally injective as a map ofR-modules andf ⊗_R id_S : M ⊗[R] S → N ⊗[R] Sis bijective, thenfis bijective.
theorem reflects_isomorphisms
{R : Type u} [CommRing R] {S : Type u} [CommRing S] [Algebra R S]
(hRS : UniversallyInjective (Algebra.linearMap R S))
{M : Type u} [AddCommGroup M] [Module R M]
{N : Type u} [AddCommGroup N] [Module R N]
(f : M →ₗ[R] N)
(hf : Function.Bijective (LinearMap.rTensor S f)) :
Function.Bijective f
Tag 05CK, a lemma
Tag 05CK in the Stacks Project.
faithfullyFlat_universallyInjective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/UniversallyInjective.lean, line 485. References: EGA 0 (6.5.1), “B faithfully flat”; EGA IV (2.2.8), “affine case”; EGA 0 (6.6.1), “(a)”; SGA 3 VIB (11.14), “necessity”.
For a faithfully flat ring map
φ : R → S, the structure mapR → Sviewed as anR-linear map (Algebra.linearMap R S, whereSis given itsR-module structure viaφ) is universally injective: for everyR-moduleQ, the induced mapR ⊗_R Q → S ⊗_R Qis injective.
theorem faithfullyFlat_universallyInjective
{R S : Type*} [CommRing R] [CommRing S] (φ : R →+* S) (hφ : φ.FaithfullyFlat) :
haveI := φ.toAlgebra
UniversallyInjectivePoly (Algebra.linearMap R S)
faithfullyFlat_comap_map_eq, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/UniversallyInjective.lean, line 525. The attribute's comment: “in particular”. References: EGA 0 (6.6.3), “first part, M = A”; EGA 0 (6.5.1), “B faithfully flat”; EGA 0 (22.4.8), “more general”; EGA 0 (6.5.2), “φ⁻¹(aB) = a”; EGA 0 (6.6.1), “(a) ⇒ φ⁻¹(aB) = a in (d)”; SGA 1 IV (2.6), “(i)”; SGA 3 V (9.1), “partial”.
For a faithfully flat ring map
φ : R → Sand every idealI ⊆ R, the contraction of the extended idealI Sback toRequalsI, i.e.φ⁻¹(I S) = I.This is Mathlib's
Ideal.comap_map_eq_self_of_faithfullyFlat, restated for a bare ring map.
theorem faithfullyFlat_comap_map_eq
{R S : Type*} [CommRing R] [CommRing S] (φ : R →+* S) (hφ : φ.FaithfullyFlat)
(I : Ideal R) :
Ideal.comap φ (Ideal.map φ I) = I
Sources
Section10.83 Descent for finite projective modules#
Section 10.83 of the Stacks Project, Tag 058Q. 3 tags here are carried by 2 declarations of the repository (all in StacksFrontier) and 3 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 058R, a lemma
Tag 058R in the Stacks Project.
Declarations registered for the tag:
Module.finitePresentation_of_projectiveregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 265 (StacksFrontier): “(⇒) finitely presented”.Module.Flat.of_projectiveregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 266 (StacksFrontier): “(⇒) flat: projective modules are flat”. References: EGA 0 (6.1.1), “more general”; EGA 0 (6.1.2), “more general”; EGA IV (12.3.1), “a ⇒ b”; SGA 1 IV (4.3), “(ii) ⇒ (iii)”; SGA 3 VIIB (0.2.2), “projective implies flat”.Module.Flat.projective_of_finitePresentationregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 267 (StacksFrontier): “(⇐) projective; finiteness comes fromFinitePresentation(instance)”. References: EGA 0 (10.1.3), “(ii): c ⇒ b, c ⇒ b”; EGA III (7.7.12), “more general”; EGA IV (12.3.1), “b ⇒ a”; SGA 1 IV (4.3), “case (b): (iii) ⇒ (ii)”; SGA 3 VIIB (0.2.2), “partial”; SGA 3 VIIB (1.2.1), “special case”; SGA 5 IIIB (5.10), “partial”; SGA 6 I (5.8.3), “(ii) ⇒ (i)”; SGA 6 VI (1.5.2), “Case B = A, n = 0”.
Tag 03C4, a lemma
Tag 03C4 in the Stacks Project.
Module.FinitePresentation.of_isBaseChange_of_faithfullyFlat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/FaithfullyFlat/Descent.lean, line 184. The attribute's comment: “Part (2). Part (1) is Module.Finite.of_finite_tensorProduct_of_faithfullyFlat and part (3) is Module.Flat.of_flat_tensorProduct, both in Mathlib.”. References: EGA IV (2.5.2), “(ii), descent, affine”; EGA IV (2.5.3), “fin. pres., descent”; EGA IV (2.5.2), “(ii), descent, affine”; SGA 1 VIII (1.11), “fin. pres., descent”; SGA 1 VIII (1.10), “fin. pres., affine”; SGA 4½ Arcata (1.4.2), “(ii), fin. presentation”; SGA 1 VIII (1.11), “fin. pres., descent”; SGA 4½ Arcata (1.4.2), “(ii), fin. presentation”.
Stacks 03C4 (part 2). Let
R → Sbe a faithfully flat ring map, letMbe anR-module and letf : M →ₗ[R] Nexhibit theS-moduleNas the base change ofMalongR → S. IfNis a finitely presentedS-module, thenMis a finitely presentedR-module.
theorem FinitePresentation.of_isBaseChange_of_faithfullyFlat {R : Type*} [CommRing R]
{S : Type*} [CommRing S] [Algebra R S] [Module.FaithfullyFlat R S]
{M : Type*} [AddCommGroup M] [Module R M]
{N : Type*} [AddCommGroup N] [Module R N] [Module S N] [IsScalarTower R S N]
(f : M →ₗ[R] N) (h : IsBaseChange S f) [Module.FinitePresentation S N] :
Module.FinitePresentation R M
Tag 058S, a proposition
Tag 058S in the Stacks Project.
Module.Projective.of_finite_of_isBaseChange_of_faithfullyFlat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/FaithfullyFlat/Descent.lean, line 209. The attribute's comment: “The projectivity half of the conclusion; the finiteness half is Mathlib's Module.Finite.of_finite_tensorProduct_of_faithfullyFlat.”. References: SGA 1 VIII (1.10), “loc. free, affine”; SGA 3 VIB (11.8.2), “finite projective case”; SGA 3 VIB (11.8.1), “(ii), special case”; SGA 3 VIB (11.9.1), “special case”.
Stacks 058S (the projectivity half). Let
R → Sbe a faithfully flat ring map, letMbe anR-module and letf : M →ₗ[R] Nexhibit theS-moduleNas the base change ofMalongR → S. IfNis a finite projectiveS-module, thenMis a projectiveR-module. Together withModule.Finite.of_finite_tensorProduct_of_faithfullyFlatthis says that being a finite projective module descends along a faithfully flat ring map.
theorem Projective.of_finite_of_isBaseChange_of_faithfullyFlat {R : Type*} [CommRing R]
{S : Type*} [CommRing S] [Algebra R S] [Module.FaithfullyFlat R S]
{M : Type*} [AddCommGroup M] [Module R M]
{N : Type*} [AddCommGroup N] [Module R N] [Module S N] [IsScalarTower R S N]
(f : M →ₗ[R] N) (h : IsBaseChange S f)
[Module.Finite S N] [Module.Projective S N] :
Module.Projective R M
Sources
Section10.84 Transfinite dévissage of modules#
Section 10.84 of the Stacks Project, Tag 058T. 5 tags here are carried by 6 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 058U, a definition
Tag 058U in the Stacks Project.
Submodule.IsDirectSumDevissage, a structure in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Devissage.lean, line 290. The attribute's comment: “direct sum devissage”.
A direct sum dévissage of an
R-moduleMis an increasing familyNof submodules ofM, indexed by the ordinalsα < s, withN 0 = 0, with unionM, continuous at limit ordinals, and withN αa direct summand ofN (α + 1)wheneverα + 1 < s.
public structure IsDirectSumDevissage (s : Ordinal.{w}) (N : Ordinal.{w} → Submodule R M) :
Prop
Submodule.IsKaplanskyDevissage, a structure in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Devissage.lean, line 309. The attribute's comment: “Kaplansky devissage”.
A Kaplansky dévissage of an
R-moduleMis a direct sum dévissage all of whose quotientsN (α + 1) / N αare countably generated, which is to say thatN (α + 1)is generated overN αby countably many elements ofM.
public structure IsKaplanskyDevissage (s : Ordinal.{w}) (N : Ordinal.{w} → Submodule R M) : Prop
extends IsDirectSumDevissage s N
Tag 058V, a lemma
Tag 058V in the Stacks Project.
devissage_iso, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Devissage.lean, line 121.
Stacks Tag 058V (Lemma 10.84.2). Given a direct sum dévissage of
N, the moduleNis isomorphic to the direct sum of the successive quotientsM_{α+1} / M_αover all ordinalsαwithα + 1 < S.Here the
α-th summandM_{α+1}/M_αis realized as the quotient of the submoduleM (Order.succ α)ofNby the image ofM αinside it ((M α).submoduleOf (M (Order.succ α)), which isM α ⊓ M (succ α) = M αviewed as a submodule of↥(M (succ α))).
theorem devissage_iso (D : DirectSumDevissage.{u} R N) :
Nonempty (N ≃ₗ[R] DirectSum {α : Ordinal.{u} // Order.succ α < D.S}
(fun a => (D.M (Order.succ a.1)) ⧸ (D.M a.1).submoduleOf (D.M (Order.succ a.1))))
Tag 058W, a lemma
Tag 058W in the Stacks Project.
Submodule.exists_sSupIndep_countable_span_iff_exists_isKaplanskyDevissage, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Devissage.lean, line 604. The attribute's comment: “Countable generation written as a countable spanning set, and the direct sum decomposition internally, as an independent set of submodules of M with supremum ⊤.”.
Stacks 058W. Let
Mbe a module over a ringR. ThenMis a direct sum of countably generatedR-modules — that is,Mis the internal direct sum of an independent set of countably generated submodules — if and only ifMadmits a Kaplansky dévissage.
public theorem exists_sSupIndep_countable_span_iff_exists_isKaplanskyDevissage
(R : Type v) (M : Type u) [Ring R] [AddCommGroup M] [Module R M] :
(∃ S : Set (Submodule R M), sSupIndep S ∧ sSup S = ⊤ ∧
∀ N ∈ S, ∃ t : Set M, t.Countable ∧ span R t = N) ↔
∃ (s : Ordinal.{u}) (N : Ordinal.{u} → Submodule R M),
IsKaplanskyDevissage s N
Tag 058X, a theorem
Tag 058X in the Stacks Project.
Submodule.exists_sSupIndep_countable_span_of_isCompl, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/LinearAlgebra/DirectSum/CountablyGenerated.lean, line 557. The attribute's comment: “Being a direct sum of countably generated modules written internally, as in 058W: an independent set of submodules with supremum ⊤, each spanned by a countable set. P is a direct summand of M in the sense of a complement in the submodule lattice of M.”.
Stacks 058X. Let
Mbe a module over a ringRwhich is a direct sum of countably generatedR-modules — that is,Mis the internal direct sum of an independent set of countably generated submodules. IfPis a direct summand ofM, with complementQ, thenPis also a direct sum of countably generatedR-modules.
public theorem exists_sSupIndep_countable_span_of_isCompl {R : Type*} {M : Type*} [Ring R]
[AddCommGroup M] [Module R M]
(hM : ∃ S : Set (Submodule R M), sSupIndep S ∧ sSup S = ⊤ ∧
∀ N ∈ S, ∃ t : Set M, t.Countable ∧ span R t = N)
(P Q : Submodule R M) (hPQ : IsCompl P Q) :
∃ S : Set (Submodule R ↥P), sSupIndep S ∧ sSup S = ⊤ ∧
∀ N ∈ S, ∃ t : Set ↥P, t.Countable ∧ span R t = N
Tag 058Y, a theorem
Tag 058Y in the Stacks Project.
Submodule.exists_sSupIndep_countable_span_projective_of_projective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/LinearAlgebra/DirectSum/ProjectiveCountablyGenerated.lean, line 247. The attribute's comment: “Being a direct sum of countably generated projective modules is written internally, as in 058W and 058X: an independent set of submodules with supremum ⊤, each spanned by a countable set and each projective. Countable generation is a countable spanning set.”.
Let
Mbe a projective module over a ringR. ThenMis a direct sum of countably generated projectiveR-modules: there is an independent set of submodules ofMwith supremum⊤, each spanned by a countable set and each projective overR.
public theorem exists_sSupIndep_countable_span_projective_of_projective {R : Type*} {M : Type*}
[Ring R] [AddCommGroup M] [Module R M] [Module.Projective R M] :
∃ S : Set (Submodule R M), sSupIndep S ∧ sSup S = ⊤ ∧
∀ N ∈ S, (∃ t : Set M, t.Countable ∧ span R t = N) ∧ Module.Projective R ↥N
Sources
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.