English
If p is a prime in a Dedekind domain and S is an extension with localization S_p, every prime of S_p lies above p.
Русский
Если p — простой идеал в Дедекинд домене и есть локализация S_p, то каждый простой в S_p лежит над p.
LaTeX
$$$$P \\in \\text{normalizedFactors}(\\mathrm{Ideal.map}(\\mathrm{algebraMap}_R S_p)(p))$$$$
Lean4
/-- If `p` is a prime in the Dedekind domain `R`, `S` an extension of `R` and `Sₚ` the localization
of `S` at `p`, then all primes in `Sₚ` are factors of the image of `p` in `Sₚ`. -/
theorem mem_normalizedFactors_of_isPrime [IsDomain S] {P : Ideal Sₚ} (hP : IsPrime P) (hP0 : P ≠ ⊥) :
P ∈ normalizedFactors (Ideal.map (algebraMap R Sₚ) p) :=
by
have non_zero_div : Algebra.algebraMapSubmonoid S p.primeCompl ≤ S⁰ :=
map_le_nonZeroDivisors_of_injective _ (FaithfulSMul.algebraMap_injective _ _) p.primeCompl_le_nonZeroDivisors
letI : Algebra (Localization.AtPrime p) Sₚ := localizationAlgebra p.primeCompl S
haveI : IsScalarTower R (Localization.AtPrime p) Sₚ :=
IsScalarTower.of_algebraMap_eq fun x =>
by
rw [IsScalarTower.algebraMap_apply R S]
exact
(IsLocalization.map_eq (T := Algebra.algebraMapSubmonoid S (primeCompl p)) (Submonoid.le_comap_map _) x).symm
obtain ⟨pid, p', ⟨hp'0, hp'p⟩, hpu⟩ :=
(IsDiscreteValuationRing.iff_pid_with_one_nonzero_prime (Localization.AtPrime p)).mp
(IsLocalization.AtPrime.isDiscreteValuationRing_of_dedekind_domain R hp0 _)
have : IsLocalRing.maximalIdeal (Localization.AtPrime p) ≠ ⊥ :=
by
rw [Submodule.ne_bot_iff] at hp0 ⊢
obtain ⟨x, x_mem, x_ne⟩ := hp0
exact
⟨algebraMap _ _ x, (IsLocalization.AtPrime.to_map_mem_maximal_iff _ _ _).mpr x_mem,
IsLocalization.to_map_ne_zero_of_mem_nonZeroDivisors _ p.primeCompl_le_nonZeroDivisors
(mem_nonZeroDivisors_of_ne_zero x_ne)⟩
rw [← Multiset.singleton_le, ← normalize_eq P, ←
normalizedFactors_irreducible (Ideal.prime_of_isPrime hP0 hP).irreducible, ←
dvd_iff_normalizedFactors_le_normalizedFactors hP0, dvd_iff_le,
IsScalarTower.algebraMap_eq R (Localization.AtPrime p) Sₚ, ← Ideal.map_map,
Localization.AtPrime.map_eq_maximalIdeal, Ideal.map_le_iff_le_comap, hpu (IsLocalRing.maximalIdeal _) ⟨this, _⟩,
hpu (comap _ _) ⟨_, _⟩]
· have : Algebra.IsIntegral (Localization.AtPrime p) Sₚ := ⟨isIntegral_localization⟩
exact mt (Ideal.eq_bot_of_comap_eq_bot) hP0
· exact Ideal.comap_isPrime (algebraMap (Localization.AtPrime p) Sₚ) P
· exact (IsLocalRing.maximalIdeal.isMaximal _).isPrime
· rw [Ne, zero_eq_bot, Ideal.map_eq_bot_iff_of_injective]
· assumption
rw [IsScalarTower.algebraMap_eq R S Sₚ]
exact (IsLocalization.injective Sₚ non_zero_div).comp (FaithfulSMul.algebraMap_injective _ _)