mathlib documentation

ideles / adeles_R

The finite adèle ring of a Dedekind domain #

Given a Dedekind domain R with field of fractions K and a maximal ideal v of R, we define the completion of K with respect to its v-adic valuation, denoted adic_completion, and its ring of integers, denoted adic_completion_integers.

We define the ring of finite adèles of a Dedekind domain. We provide two equivalent definitions of this ring (TODO: show that they are equivalent).

We show that there is an injective ring homomorphism from the field of fractions of a Dedekind domain of Krull dimension 1 to its finite adèle ring.

Main definitions #

Main results #

Implementation notes #

We are only interested on Dedekind domains of Krull dimension 1 (i.e., not fields). If R is a field, its finite adèle ring is just defined to be empty.

References #

Tags #

finite adèle ring, dedekind domain, completions

theorem mul_le_one₀ {α : Type u_1} [linear_ordered_comm_group_with_zero α] {x y : α} (hx : x 1) (hy : y 1) :
x * y 1
noncomputable def force_noncomputable {α : Sort u_1} (a : α) :
α

Auxiliary definition to force a definition to be noncomputable. This is used to avoid timeouts or memory errors when Lean cannot decide whether a certain definition is computable. Author: Gabriel Ebner.

Equations
@[simp]
theorem force_noncomputable_def {α : Sort u_1} (a : α) :

Completions with respect to adic valuations #

Given a Dedekind domain R with field of fractions K and a maximal ideal v of R, we define the completion of K with respect to its v-adic valuation, denoted adic_completion,and its ring of integers, denoted adic_completion_integers.

We define R_hat (resp. K_hat) to be the product of adic_completion_integers (resp. adic_completion), where v runs over all maximal ideals of R.

K as a valued field with the v-adic valuation.

Equations
noncomputable def maximal_spectrum.ts' {R K : Type} [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (v : maximal_spectrum R) :

The topological space structure on K corresponding to the v-adic valuation.

Equations
noncomputable def maximal_spectrum.us' {R K : Type} [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (v : maximal_spectrum R) :

The uniform space structure on K corresponding to the v-adic valuation.

Equations
def maximal_spectrum.adic_completion {R : Type} (K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (v : maximal_spectrum R) :
Type

The completion of K with respect to its v-adic valuation.

Equations
@[protected, instance]
Equations

The ring of integers of adic_completion.

Equations
def R_hat (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
Type

The product of all adic_completion_integers, where v runs over the maximal ideals of R.

Equations
@[protected, instance]
noncomputable def R_hat.comm_ring (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
Equations
@[protected, instance]
noncomputable def R_hat.topological_space (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
Equations
@[protected, instance]
noncomputable def R_hat.inhabited (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
Equations
def K_hat (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
Type

The product of all adic_completion, where v runs over the maximal ideals of R.

Equations
@[protected, instance]
noncomputable def K_hat.inhabited (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
Equations
@[protected, instance]
noncomputable def K_hat.comm_ring (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
Equations
@[protected, instance]
noncomputable def K_hat.ring (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
ring (K_hat R K)
Equations
@[protected, instance]
noncomputable def K_hat.topological_space (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
Equations
@[protected, instance]
@[protected, instance]

The natural inclusion of R in adic_completion.

Equations

The natural inclusion of R in adic_completion_integers.

Equations
noncomputable def inj_R (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
R → R_hat R K

The diagonal inclusion r ↦ (r)_v of R in R_hat.

Equations
theorem inj_R.map_one (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
inj_R R K 1 = 1
theorem inj_R.map_mul (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (x y : R) :
inj_R R K (x * y) = (inj_R R K x) * inj_R R K y
def group_hom_prod (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
R_hat R K →+ K_hat R K

The inclusion of R_hat in K_hat is a homomorphism of additive monoids.

Equations
def hom_prod (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
R_hat R K →+* K_hat R K

The inclusion of R_hat in K_hat is a ring homomorphism.

Equations

The finite adèle ring of a Dedekind domain #

We define the finite adèle ring of R as the restricted product over all maximal ideals v of R of adic_completion with respect to adic_completion_integers. We prove that it is a commutative ring and give it a topology that makes it into a topological ring.

def restricted (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
K_hat R K → Prop

A tuple (x_v)_v is in the restricted product of the adic_completion with respect to adic_completion_integers if for all but finitely many v, x_v ∈ adic_completion_integers.

Equations
def finite_adele_ring' (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
Type

The finite adèle ring of R is the restricted product over all maximal ideals v of R of adic_completion with respect to adic_completion_integers.

Equations
def coe' (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :

The coercion map from finite_adele_ring' R K to K_hat R K.

Equations
@[protected, instance]
noncomputable def has_coe' (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
Equations
@[protected, instance]
noncomputable def has_lift_t' (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
Equations

The sum of two finite adèles is a finite adèle.

noncomputable def add' (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (x y : finite_adele_ring' R K) :

Addition on the finite adèle. ring.

Equations

The tuple (0)_v is a finite adèle.

The negative of a finite adèle is a finite adèle.

noncomputable def neg' (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (x : finite_adele_ring' R K) :

Negation on the finite adèle ring.

Equations

The product of two finite adèles is a finite adèle.

noncomputable def mul' (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (x y : finite_adele_ring' R K) :

Multiplication on the finite adèle ring.

Equations

The tuple (1)_v is a finite adèle.

@[protected, instance]

finite_adele_ring' R K is a commutative additive group.

Equations
@[norm_cast]
theorem finite_adele_ring'.coe_add (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (x y : finite_adele_ring' R K) :
(x + y) = x + y
@[norm_cast]
theorem finite_adele_ring'.coe_zero (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
0 = 0
@[norm_cast]
@[norm_cast]
theorem finite_adele_ring'.coe_mul (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (x y : finite_adele_ring' R K) :
x * y = (x) * y
@[norm_cast]
theorem finite_adele_ring'.coe_one (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
1 = 1
@[protected, instance]
Equations

The ring of integers adic_completion_integers is an open subset of adic_completion.

A generating set for the topology on the finite adèle ring of R consists on products ∏_v U_v of open sets such that U_v = adic_completion_integers for all but finitely many maximal ideals v.

Equations

Addition on the finite adèle ring of R is continuous.

Multiplication on the finite adèle ring of R is continuous.

@[protected, instance]

The finite adèle ring of R is a topological ring.

The product ∏_v adic_completion_integers is an open subset of the finite adèle ring of R.

@[protected, instance]
Equations
theorem mul_apply (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (x y : finite_adele_ring' R K) :
(x.val) * y.val, _⟩ = x * y
theorem mul_apply_val (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (x y : finite_adele_ring' R K) :
(x.val) * y.val = (x * y).val
@[simp]
theorem one_def (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
1, _⟩ = 1
@[simp]
theorem zero_def (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
0, _⟩ = 0

For any x ∈ K, the tuple (x)_v is a finite adèle.

@[simp]
theorem inj_K_coe (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (ᾰ : K) (v : maximal_spectrum R) :
(inj_K R K ᾰ) v =
noncomputable def inj_K (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :

The diagonal inclusion k ↦ (k)_v of K into the finite adèle ring of R.

Equations
theorem inj_K_apply (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (k : K) :
inj_K R K k = λ (v : maximal_spectrum R), k, _⟩
@[simp]
theorem inj_K.map_zero (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
inj_K R K 0 = 0
@[simp]
theorem inj_K.map_add (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (x y : K) :
inj_K R K (x + y) = inj_K R K x + inj_K R K y
@[simp]
theorem inj_K.map_one (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
inj_K R K 1 = 1
@[simp]
theorem inj_K.map_mul (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (x y : K) :
inj_K R K (x * y) = (inj_K R K x) * inj_K R K y
noncomputable def inj_K.add_group_hom (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :

The map inj_K is an additive group homomorphism.

Equations
noncomputable def inj_K.ring_hom (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :

The map inj_K is a ring homomorphism.

Equations
theorem inj_K.ring_hom_apply (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] {k : K} :
(inj_K.ring_hom R K) k = inj_K R K k

If maximal_spectrum R is nonempty, then inj_K is injective. Note that the nonemptiness hypothesis is satisfied for every Dedekind domain that is not a field.

Alternative definition of the finite adèle ring #

We can also define the finite adèle ring of R as the localization of R_hat at R∖{0}. We denote this definition by finite_adele_ring and construct a ring homomorphism from finite_adele_ring R to finite_adele_ring' R. TODO: show that this homomorphism is in fact an isomorphism of topological rings.

def diag_R (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :

R∖{0} is a submonoid of R_hat R K, via the inclusion r ↦ (r)_v.

Equations
def finite_adele_ring (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
Type

The finite adèle ring of R as the localization of R_hat at R∖{0}.

Equations
@[protected, instance]
noncomputable def finite_adele_ring.comm_ring (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
Equations
@[protected, instance]
noncomputable def finite_adele_ring.algebra (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
Equations
@[protected, instance]
@[protected, instance]
noncomputable def finite_adele_ring.inhabited (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
Equations
theorem preimage_diag_R (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (x : (diag_R R K)) :
∃ (r : R), r 0 inj_R R K r = x
theorem hom_prod_diag_unit (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (x : (diag_R R K)) :

For every r ∈ R, (r)_v is a unit of K_hat R K.

noncomputable def map_to_K_hat (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (x : finite_adele_ring R K) :
K_hat R K

The map from finite_adele_ring R K to K_hat R K induced by hom_prod.

Equations

The image of map_to_K_hat R K is contained in finite_adele_ring' R K.

theorem map_to_K_hat.map_one (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
map_to_K_hat R K 1 = 1
theorem map_to_K_hat.map_mul (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (x y : finite_adele_ring R K) :
map_to_K_hat R K (x * y) = (map_to_K_hat R K x) * map_to_K_hat R K y
theorem map_to_K_hat.map_add (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] (x y : finite_adele_ring R K) :
map_to_K_hat R K (x + y) = map_to_K_hat R K x + map_to_K_hat R K y
theorem map_to_K_hat.map_zero (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :
map_to_K_hat R K 0 = 0
noncomputable def finite_adele.hom (R K : Type) [comm_ring R] [is_domain R] [is_dedekind_domain R] [field K] [algebra R K] [is_fraction_ring R K] :

map_to_K_hat is a ring homomorphism between our two definitions of finite adèle ring.

Equations