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.