Skip to content

Commit caa4dbd

Browse files
committed
feat(NumberTheory/NumberField/Completion/FinitePlace): compatibility of finite places across an algebra map (#41604)
Given an extension of finite places, this PR proves compatibility across an algebra map. Eventually it would be nice to have a version stated purely in terms of `FinitePlace`, but we are lacking the ramification theory of finite places required for this (I have larger plans to do ramification theory for absolute values more generally, but this will take some time). Co-authored-by: tb65536 <thomas.l.browning@gmail.com>
1 parent 7e604db commit caa4dbd

1 file changed

Lines changed: 25 additions & 4 deletions

File tree

Mathlib/NumberTheory/NumberField/Completion/FinitePlace.lean

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ module
88
public import Mathlib.Algebra.Order.Archimedean.Submonoid
99
public import Mathlib.LinearAlgebra.FreeModule.IdealQuotient
1010
public import Mathlib.NumberTheory.NumberField.InfinitePlace.Embeddings
11+
public import Mathlib.NumberTheory.RamificationInertia.Valuation
1112
public import Mathlib.RingTheory.DedekindDomain.AdicValuation
1213
public import Mathlib.RingTheory.DedekindDomain.Factorization
1314
public import Mathlib.RingTheory.Valuation.Archimedean
@@ -88,8 +89,8 @@ end DVR
8889

8990
namespace NumberField
9091

91-
variable {K : Type*} [Field K] {R : Type*} [CommRing R] [Algebra R K] [IsDedekindDomain R]
92-
[IsFractionRing R K] (v : HeightOneSpectrum R)
92+
variable {K L : Type*} [Field K] [Field L] [Algebra K L] {R : Type*} [CommRing R] [Algebra R K]
93+
[IsDedekindDomain R] [IsFractionRing R K] (v : HeightOneSpectrum R)
9394

9495
/-- The embedding of a field inside its `adicCompletion` with respect to `v`. -/
9596
noncomputable def FinitePlace.embedding : K →+* adicCompletion K v :=
@@ -342,7 +343,7 @@ lemma isFinitePlace_iff [NumberField K] (v : AbsoluteValue K ℝ) :
342343

343344
namespace FinitePlace
344345

345-
variable [NumberField K]
346+
variable [NumberField K] [NumberField L]
346347

347348
instance : FunLike (FinitePlace K) K ℝ where
348349
coe w x := w.1 x
@@ -468,6 +469,26 @@ alias IsDedekindDomain.HeightOneSpectrum.equivHeightOneSpectrum_symm_apply :=
468469
@[deprecated (since := "2026-03-11")]
469470
alias IsDedekindDomain.HeightOneSpectrum.embedding_mul_absNorm := embedding_mul_absNorm
470471

472+
-- TODO: restate in terms of finite places rather than non-trivial prime ideals of the Dedekind
473+
-- domains `𝓞 K` and `𝓞 L` once we have a ramification theory for finite places set up.
474+
-- Note that this will mean `FinitePlace.equivHeightOneSpectrum` no longer appears in the statement.
475+
lemma equivHeightOneSpectrum_symm_apply_algebraMap
476+
(v : HeightOneSpectrum (𝓞 K)) (w : HeightOneSpectrum (𝓞 L)) [w.1.LiesOver v.1] (x : K) :
477+
FinitePlace.equivHeightOneSpectrum.symm w (algebraMap K L x) =
478+
FinitePlace.equivHeightOneSpectrum.symm v x ^
479+
(w.1.ramificationIdx (𝓞 K) * w.1.inertiaDeg (𝓞 K)) := by
480+
by_cases hx : x = 0
481+
· rw [hx, map_zero, map_zero, map_zero, zero_pow]
482+
exact (mul_pos (w.asIdeal.ramificationIdx_pos (𝓞 K)) (w.asIdeal.inertiaDeg_pos (𝓞 K))).ne'
483+
simp_rw [NumberField.FinitePlace.equivHeightOneSpectrum_symm_apply,
484+
FinitePlace.norm_embedding, HeightOneSpectrum.adicAbv_def]
485+
rw [← IsDedekindDomain.HeightOneSpectrum.valuation_liesOver L v, map_pow,
486+
Ideal.ramificationIdx'_eq_ramificationIdx v.1 w.1 v.ne_bot,
487+
WithZeroMulInt.toNNReal_neg_apply _ (by simpa), WithZeroMulInt.toNNReal_neg_apply _ (by simpa),
488+
← Ideal.absNorm_pow_inertiaDeg v.1 w.1]
489+
simp only [Nat.cast_pow, NNReal.coe_zpow, ← zpow_natCast, ← zpow_mul]
490+
grind
491+
471492
lemma finprod_finitePlace_pow_multiplicity {I : Ideal (𝓞 K)} (hI : I ≠ ⊥) :
472493
∏ᶠ v : FinitePlace K, v.maximalIdeal.asIdeal ^ multiplicity v.maximalIdeal.asIdeal I = I := by
473494
conv_rhs => rw [← finprod_heightOneSpectrum_pow_multiplicity hI]
@@ -485,7 +506,7 @@ section LiesOver
485506

486507
namespace HeightOneSpectrum
487508

488-
variable {L : Type*} [NumberField K] [Field L] [NumberField L] [Algebra K L]
509+
variable [NumberField K] [NumberField L]
489510
variable (v : HeightOneSpectrum (𝓞 K)) (w : HeightOneSpectrum (𝓞 L))
490511
variable [Algebra (v.adicCompletion K) (w.adicCompletion L)]
491512
[ContinuousSMul (v.adicCompletion K) (w.adicCompletion L)]

0 commit comments

Comments
 (0)