Skip to content

Commit c87f7ca

Browse files
committed
feat(NumberTheory/NumberField/Discriminant): add not_dvd_discr_iff_isUnramifiedIn
A prime `p` does not divide `discr K` if and only if `p` is unramified in the ring of integers, phrased using the `Algebra.IsUnramifiedIn` predicate.
1 parent e568743 commit c87f7ca

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

Mathlib/NumberTheory/NumberField/Discriminant/Different.lean

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,20 @@ lemma not_dvd_discr_iff_forall_liesOver [IsIntegralClosure 𝒪 ℤ K] {p : ℤ}
193193
← Int.natAbs_pow, Int.natAbs_dvd_natAbs] at this
194194
exact (dvd_pow_self _ (Ideal.inertiaDeg_pos' ..).ne').trans this
195195

196+
/-- A prime `p` does not divide `discr K` if and only if `p` (as the ideal `span {p}`) is
197+
unramified in the ring of integers `𝒪`.
198+
199+
Also see `not_dvd_discr_iff_forall_liesOver` and `not_dvd_discr_iff_forall_mem` for variants
200+
whose RHS does not use `Algebra.IsUnramifiedIn`. -/
201+
lemma not_dvd_discr_iff_isUnramifiedIn [IsIntegralClosure 𝒪 ℤ K] {p : ℤ} (hp : Prime p) :
202+
¬ p ∣ discr K ↔ Algebra.IsUnramifiedIn 𝒪 (Ideal.span {p}) := by
203+
have := (IsIntegralClosure.algebraMap_injective 𝒪 ℤ K).isDomain
204+
have := IsIntegralClosure.isDedekindDomain ℤ ℚ K 𝒪
205+
have := CharZero.of_module (R := 𝒪) K
206+
rw [not_dvd_discr_iff_forall_liesOver K 𝒪 hp]
207+
exact (Algebra.isUnramifiedIn_iff_forall_of_isDedekindDomain'
208+
(Ideal.span_singleton_eq_bot.not.mpr hp.ne_zero)).symm
209+
196210
/-- Also see `not_dvd_discr_iff_forall_liesOver` for a slightly easier to prove RHS. -/
197211
lemma not_dvd_discr_iff_forall_mem [IsIntegralClosure 𝒪 ℤ K] {p : ℤ} (hp : Prime p) :
198212
¬ p ∣ discr K ↔ ∀ (P : Ideal 𝒪) (_ : P.IsPrime), ↑p ∈ P →

0 commit comments

Comments
 (0)