Skip to content

Commit 9e2e062

Browse files
committed
feat(NumberTheory/NumberField/InfiniteAdeleRing): norm and product formula for the infinite adele ring (leanprover-community#36204)
1 parent 2e273c9 commit 9e2e062

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

Mathlib/NumberTheory/NumberField/InfiniteAdeleRing.lean

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Authors: Salvatore Mercuri, María Inés de Frutos-Fernández
55
-/
66
module
77

8+
public import Mathlib.Algebra.Group.Pi.Units
89
public import Mathlib.NumberTheory.NumberField.CanonicalEmbedding.Basic
910
public import Mathlib.NumberTheory.NumberField.InfinitePlace.Completion
1011

@@ -114,6 +115,30 @@ theorem denseRange_algebraMap [NumberField K] : DenseRange <| algebraMap K (Infi
114115
(InfinitePlace.denseRange_algebraMap_pi K)
115116
(.piMap fun _ => UniformSpace.Completion.continuous_coe _)
116117

118+
/-- The norm on the infinite adele ring is given by the product of the normalized norms
119+
across infinite places. The normalized norm is the real norm at real places and the
120+
square of the complex norm at complex places. -/
121+
instance [NumberField K] : Norm (InfiniteAdeleRing K) where
122+
norm x := ∏ v, ‖x v‖ ^ v.mult
123+
124+
variable {K}
125+
126+
theorem norm_def [NumberField K] (x : InfiniteAdeleRing K) :
127+
‖x‖ = ∏ v, ‖x v‖ ^ v.mult := rfl
128+
129+
set_option backward.isDefEq.respectTransparency false in
130+
theorem norm_eq_zero_of_not_isUnit [NumberField K] {x : InfiniteAdeleRing K} (hx : ¬IsUnit x) :
131+
‖x‖ = 0 := by
132+
rw [Pi.isUnit_iff, not_forall] at hx
133+
obtain ⟨v, hv⟩ := hx
134+
exact Finset.prod_eq_zero_iff.2 ⟨v, Finset.mem_univ v, by simpa [isUnit_iff_ne_zero] using hv⟩
135+
136+
/-- The product formula for the infinite adele ring. This is the adelic version of
137+
`NumberField.InfinitePlace.prod_eq_abs_norm`. -/
138+
theorem coe_norm_eq_abs_norm [NumberField K] (x : K) :
139+
‖algebraMap K (InfiniteAdeleRing K) x‖ = |Algebra.norm ℚ x| := by
140+
simpa [-Rat.cast_abs, norm_def] using InfinitePlace.prod_eq_abs_norm x
141+
117142
end InfiniteAdeleRing
118143

119144
end NumberField

0 commit comments

Comments
 (0)