Skip to content

Commit 971ebb0

Browse files
committed
feat(RingTheory/Valuation/Discrete/Basic): define discrete valuations (#21371)
We define (normalized) discrete valuations. Co-authored-by: Filippo A. E. Nuccio <filippo.nuccio@univ-st-etienne.fr>
1 parent 1aa77e3 commit 971ebb0

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

Mathlib.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4981,6 +4981,7 @@ import Mathlib.RingTheory.Unramified.Pi
49814981
import Mathlib.RingTheory.Valuation.AlgebraInstances
49824982
import Mathlib.RingTheory.Valuation.Archimedean
49834983
import Mathlib.RingTheory.Valuation.Basic
4984+
import Mathlib.RingTheory.Valuation.Discrete.Basic
49844985
import Mathlib.RingTheory.Valuation.ExtendToLocalization
49854986
import Mathlib.RingTheory.Valuation.Integers
49864987
import Mathlib.RingTheory.Valuation.Integral
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/-
2+
Copyright (c) 2025 María Inés de Frutos-Fernández, Filippo A. E. Nuccio. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: María Inés de Frutos-Fernández, Filippo A. E. Nuccio
5+
-/
6+
import Mathlib.Algebra.GroupWithZero.Int
7+
import Mathlib.RingTheory.Valuation.Basic
8+
9+
/-!
10+
# Discrete Valuations
11+
12+
A valuation `v : A → ℤₘ₀` on a ring `A` is said to be a (normalized) discrete valuation if
13+
`ofAdd (-1 : ℤ)` belongs to the image of `v`. Note that valuations in Mathlib are multiplicative;
14+
if `a : A → ℤ ∪ {infty}` is the additive valuation associated to `v`, this is equivalent to asking
15+
that `1 : ℤ` belongs to the image of `a`.
16+
17+
## Main Definitions
18+
* `IsDiscrete`: We define a valuation to be discrete if it is `ℤₘ₀`-valued and `ofAdd (-1 : ℤ)`
19+
belongs to the image.
20+
21+
## TODO
22+
* Define (pre)uniformizers for nontrivial `ℤₘ₀`-valued valuations.
23+
* Relate discrete valuations and discrete valuation rings.
24+
25+
-/
26+
27+
namespace Valuation
28+
29+
open Function Multiplicative Set
30+
31+
variable {A : Type*} [Ring A]
32+
33+
/-- A valuation `v` on a ring `A` is (normalized) discrete if it is `ℤₘ₀`-valued and
34+
`ofAdd (-1 : ℤ)` belongs to the image. Note that the latter is equivalent to
35+
asking that `1 : ℤ` belongs to the image of the corresponding additive valuation. -/
36+
class IsDiscrete (v : Valuation A ℤₘ₀) : Prop where
37+
one_mem_range : (↑(ofAdd (-1 : ℤ)) : ℤₘ₀) ∈ range v
38+
39+
variable {K : Type*} [Field K]
40+
41+
/-- A discrete valuation on a field `K` is surjective. -/
42+
lemma IsDiscrete.surj (v : Valuation K ℤₘ₀) [hv : IsDiscrete v] :
43+
Surjective v := by
44+
intro c
45+
obtain ⟨π, hπ⟩ := hv
46+
refine WithZero.cases_on c ⟨0, map_zero _⟩ fun a ↦ ⟨π ^ (-a.toAdd), ?_⟩
47+
simp [hπ, ← WithZero.ofAdd_zpow]
48+
49+
/-- A `ℤₘ₀`-valued valuation on a field `K` is discrete if and only if it is surjective. -/
50+
lemma isDiscrete_iff_surjective (v : Valuation K ℤₘ₀) :
51+
IsDiscrete v ↔ Surjective v :=
52+
fun _ ↦ IsDiscrete.surj v, fun hv ↦ ⟨hv _⟩⟩
53+
54+
end Valuation

0 commit comments

Comments
 (0)