Going up #
In this file we define a predicate Algebra.HasGoingUp: An R-algebra S satisfies
Algebra.HasGoingUp R S if for every pair of prime ideals p ≤ q of R with
P a prime of S lying above p, there exists a prime P ≤ Q of S lying above q.
This file closely mirrors Mathlib.RingTheory.Ideal.GoingDown.
Main results #
Algebra.HasGoingUp.iff_specializingMap_primeSpectrumComap: going up is equivalent to specializations lifting alongSpec S → Spec R.Algebra.HasGoingUp.of_isIntegral: integral algebras satisfy going up.
An R-algebra S satisfies Algebra.HasGoingUp R S if for every pair of
prime ideals p ≤ q of R with P a prime of S lying above p, there exists a
prime P ≤ Q of S lying above q.
The condition only asks for < which is easier to prove, use
Ideal.exists_ideal_ge_liesOver_of_le for applying it.
Instances
theorem
Ideal.exists_ltSeries_of_hasGoingUp
{R : Type u_1}
{S : Type u_2}
[CommRing R]
[CommRing S]
[Algebra R S]
[Algebra.HasGoingUp R S]
(l : LTSeries (PrimeSpectrum R))
(P : Ideal S)
[P.IsPrime]
[lo : P.LiesOver (RelSeries.head l).asIdeal]
:
∃ (L : LTSeries (PrimeSpectrum S)),
L.length = l.length ∧ RelSeries.head L = { asIdeal := P, isPrime := ⋯ } ∧ List.map (PrimeSpectrum.comap (algebraMap R S)) (RelSeries.toList L) = RelSeries.toList l
This generalizes exists_ideal_over_prime_of_isIntegral_of_isPrime
to arbitrary length chains.
theorem
Algebra.HasGoingUp.trans
(R : Type u_3)
(S : Type u_4)
[CommRing R]
[CommRing S]
[Algebra R S]
(T : Type u_5)
[CommRing T]
[Algebra R T]
[Algebra S T]
[IsScalarTower R S T]
[HasGoingUp R S]
[HasGoingUp S T]
:
HasGoingUp R T
instance
Algebra.HasGoingUp.of_isIntegral
{R : Type u_3}
{S : Type u_4}
[CommRing R]
[CommRing S]
[Algebra R S]
[Algebra.IsIntegral R S]
:
HasGoingUp R S
Integral algebras satisfy the going up property.