Skip to content

Commit a7f12e6

Browse files
committed
fix(Valuation/RankOne): replace abstract completion RankOne instance with concrete instances (#34834)
#26872 fixes the definition of `Valuation.RankOne` so that its order embedding into `NNReal` is a map from the range of the value group (the type `MonoidWithZeroHom.ValueGroup₀`). This causes problems with the instance `instRankOneCompletion` (PR'd recently #33594) because the value group of the completion no longer type checks as the value group of the base ring. This abstract instance was only introduced to combine the proofs of `(v.valuation K).RankOne` and its completion `Valued.v.RankOne`. So we separate them here as concrete separate instances to help with the `RankOne` refactor.
1 parent 73694cf commit a7f12e6

File tree

2 files changed

+9
-18
lines changed

2 files changed

+9
-18
lines changed

Mathlib/NumberTheory/NumberField/FinitePlaces.lean

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -136,22 +136,23 @@ noncomputable def FinitePlace.embedding : WithVal (v.valuation K) →+* adicComp
136136
theorem FinitePlace.embedding_apply (x : K) : embedding v x = ↑x := rfl
137137

138138
noncomputable instance : (v.valuation K).RankOne where
139-
hom := {
140-
toFun := toNNReal (absNorm_ne_zero v)
141-
map_zero' := rfl
142-
map_one' := rfl
143-
map_mul' := map_mul (toNNReal (absNorm_ne_zero v))
144-
}
139+
hom := toNNReal (absNorm_ne_zero v)
145140
strictMono' := toNNReal_strictMono (one_lt_absNorm_nnreal v)
146141
exists_val_nontrivial := by
147142
rcases Submodule.exists_mem_ne_zero_of_ne_bot v.ne_bot with ⟨x, hx1, hx2⟩
148143
use x
149144
rw [valuation_of_algebraMap]
150145
exact ⟨v.intValuation_ne_zero _ hx2, ((intValuation_lt_one_iff_mem _ _).2 hx1).ne⟩
151146

152-
@[deprecated Valuation.instRankOneCompletion (since := "2026-01-05")]
153147
noncomputable instance instRankOneValuedAdicCompletion :
154-
Valuation.RankOne (Valued.v : Valuation (v.adicCompletion K) ℤᵐ⁰) := inferInstance
148+
Valuation.RankOne (Valued.v : Valuation (v.adicCompletion K) ℤᵐ⁰) where
149+
hom := toNNReal (absNorm_ne_zero v)
150+
strictMono' := toNNReal_strictMono (one_lt_absNorm_nnreal v)
151+
exists_val_nontrivial := by
152+
rcases Submodule.exists_mem_ne_zero_of_ne_bot v.ne_bot with ⟨x, hx1, hx2⟩
153+
use x
154+
rw [valuedAdicCompletion_eq_valuation' v (x : K)]
155+
simpa [valuation_of_algebraMap] using ⟨v.intValuation_ne_zero _ hx2, hx1⟩
155156

156157
/-- The `v`-adic completion of `K` is a normed field. -/
157158
noncomputable instance instNormedFieldValuedAdicCompletion : NormedField (adicCompletion K v) :=

Mathlib/RingTheory/Valuation/RankOne.lean

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -114,16 +114,6 @@ instance [RankOne v] : IsNontrivial v where
114114

115115
end RankOne
116116

117-
instance instRankOneCompletion {K : Type*} [Field K] {Γ : Type*}
118-
[LinearOrderedCommGroupWithZero Γ] (v : Valuation K Γ) [h : v.RankOne] :
119-
(Valued.v : Valuation v.Completion Γ).RankOne where
120-
hom := Valuation.RankOne.hom v
121-
strictMono' := Valuation.RankOne.strictMono v
122-
exists_val_nontrivial := by
123-
rcases h.exists_val_nontrivial with ⟨x, hx1, hx2⟩
124-
use (WithVal.equiv v).symm x
125-
simp_all
126-
127117
end Valuation
128118

129119
section ValuativeRel

0 commit comments

Comments
 (0)