mathlib documentation

ideles / fractional_ideal

Factorization of fractional ideals of Dedekind domains #

Every nonzero fractional ideal I of a Dedekind domain R can be factored as a product ∏_v v^{n_v} over the maximal ideals of R, where the exponents n_v are integers. We define fractional_ideal.count K v I (abbreviated as val_v(I) in the documentation) to be n_v, and we prove some of its properties. If I = 0, we define val_v(I) = 0.

Main definitions #

Main results #

Implementation notes #

Since we are only interested in nonzero fractional ideals, we chose to define val_v(I) = 0 so that every val_v is in and we can avoid having to use with_top.

Tags #

dedekind domain, fractional ideal, factorization

Factorization of fractional ideals of Dedekind domains #

theorem prime.exists_mem_finprod_dvd {α : Type u_1} {N : Type u_2} [comm_monoid_with_zero N] {f : α → N} {p : N} (hp : prime p) (hf : (function.mul_support f).finite) :
p ∏ᶠ (i : α), f i(∃ (a : α), p f a)

If a prime p divides a finprod, then it must divide one of its factors.

@[protected, instance]
def ufi_ts {R : Type u_3} {K : Type u_4} [comm_ring R] [field K] [algebra R K] :

The discrete topology on the units of the fractional ideals.

Equations
@[protected, instance]
def ufi_tg {R : Type u_3} {K : Type u_4} [comm_ring R] [field K] [algebra R K] :

The units of the fractional ideals with the discrete topology are a topological group.

@[protected, instance]
def ufi_us {R : Type u_3} {K : Type u_4} [comm_ring R] [field K] [algebra R K] :
Equations
@[protected, instance]
def ufi_ug {R : Type u_3} {K : Type u_4} [comm_ring R] [field K] [algebra R K] :
theorem fractional_ideal.ideal_factor_ne_zero {R : Type u_3} {K : Type u_4} [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] {I : fractional_ideal R K} (hI : I 0) {a : R} {J : ideal R} (haJ : I = (fractional_ideal.span_singleton R ((algebra_map R K) a)⁻¹) * J) :
J 0

If I is a nonzero fractional ideal, a ∈ R, and J is an ideal of R such that I = a⁻¹J, then J is nonzero.

theorem fractional_ideal.constant_factor_ne_zero {R : Type u_3} {K : Type u_4} [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] {I : fractional_ideal R K} (hI : I 0) {a : R} {J : ideal R} (haJ : I = (fractional_ideal.span_singleton R ((algebra_map R K) a)⁻¹) * J) :

If I is a nonzero fractional ideal, a ∈ R, and J is an ideal of R such that I = a⁻¹J, then a is nonzero.

theorem ideal.finite_factors {R : Type u_3} [comm_ring R] [is_domain R] [is_dedekind_domain R] {I : ideal R} (hI : I 0) :

Only finitely many maximal ideals of R divide a given nonzero ideal.

theorem finite_factors {R : Type u_3} [comm_ring R] [is_domain R] [is_dedekind_domain R] (d : R) (hd : ideal.span {d} 0) :

Only finitely many maximal ideals of R divide a given nonzero principal ideal.

theorem associates.finite_factors {R : Type u_3} [comm_ring R] [is_domain R] [is_dedekind_domain R] (I : ideal R) (hI : I 0) :

For every nonzero ideal I of v, there are finitely many maximal ideals v such that the multiplicity of v in the factorization of I, denoted (val_v(I)), is nonzero.

For every nonzero ideal I of v, there are finitely many maximal ideals v such that v^(val_v(I)) is not the unit ideal.

theorem ideal.finite_mul_support_coe {R : Type u_3} {K : Type u_4} [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] [is_domain R] [is_dedekind_domain R] {I : ideal R} (hI : I 0) :

For every nonzero ideal I of v, there are finitely many maximal ideals v such that v^(val_v(I)), regarded as a fractional ideal, is not (1).

theorem ideal.finite_mul_support_inv {R : Type u_3} {K : Type u_4} [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] [is_domain R] [is_dedekind_domain R] {I : ideal R} (hI : I 0) :

For every nonzero ideal I of v, there are finitely many maximal ideals v such that v^-(val_v(I)) is not the unit ideal.

For every nonzero ideal I of v, v^(val_v(I) + 1) does not divide ∏_v v^(val_v(I)).

The multiplicity of v in ∏_v v^(val_v(I)) equals val_v(I).

theorem ideal.factorization {R : Type u_3} [comm_ring R] [is_domain R] [is_dedekind_domain R] (I : ideal R) (hI : I 0) :

The ideal I equals the finprod ∏_v v^(val_v(I)).

theorem ideal.factorization_coe {R : Type u_3} {K : Type u_4} [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] [is_domain R] [is_dedekind_domain R] (I : ideal R) (hI : I 0) :

The ideal I equals the finprod ∏_v v^(val_v(I)), when both sides are regarded as fractional ideals of R.

If I is a nonzero fractional ideal, a ∈ R, and J is an ideal of R such that I = a⁻¹J, then I is equal to the product ∏_v v^(val_v(J) - val_v(a)).

For a nonzero k = r/s ∈ K, the fractional ideal (k) is equal to the product ∏_v v^(val_v(r) - val_v(s)).

noncomputable def fractional_ideal.count {R : Type u_3} (K : Type u_4) [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] [is_domain R] [is_dedekind_domain R] (v : maximal_spectrum R) (I : fractional_ideal R K) :

If I is a nonzero fractional ideal, a ∈ R, and J is an ideal of R such that I = a⁻¹J, then we define val_v(I) as (val_v(J) - val_v(a)). If I = 0, we set val_v(I) = 0.

Equations

val_v(I) does not depend on the choice of a and J used to represent I.

theorem fractional_ideal.count_mul {R : Type u_3} (K : Type u_4) [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] [is_domain R] [is_dedekind_domain R] (v : maximal_spectrum R) {I I' : fractional_ideal R K} (hI : I 0) (hI' : I' 0) :

For nonzero I, I', val_v(I*I') = val_v(I) + val_v(I').

theorem fractional_ideal.count_mul' {R : Type u_3} (K : Type u_4) [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] [is_domain R] [is_dedekind_domain R] (v : maximal_spectrum R) (I I' : fractional_ideal R K) :

For nonzero I, I', val_v(I*I') = val_v(I) + val_v(I'). If I or I' is zero, then val_v(I*I') = 0.

theorem fractional_ideal.count_zero {R : Type u_3} (K : Type u_4) [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] [is_domain R] [is_dedekind_domain R] (v : maximal_spectrum R) :

val_v(0) = 0.

theorem fractional_ideal.count_one {R : Type u_3} (K : Type u_4) [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] [is_domain R] [is_dedekind_domain R] (v : maximal_spectrum R) :

val_v(1) = 0.

theorem fractional_ideal.count_pow {R : Type u_3} (K : Type u_4) [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] [is_domain R] [is_dedekind_domain R] (v : maximal_spectrum R) (n : ) (I : fractional_ideal R K) :

For every n ∈ ℕ and every ideal I, val_v(I^n) = n*val_v(I).

theorem fractional_ideal.count_self {R : Type u_3} (K : Type u_4) [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] [is_domain R] [is_dedekind_domain R] (v : maximal_spectrum R) :

val_v(v) = 1, when v is regarded as a fractional ideal.

theorem fractional_ideal.count_pow_self {R : Type u_3} (K : Type u_4) [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] [is_domain R] [is_dedekind_domain R] (v : maximal_spectrum R) (n : ) :

val_v(v) = n for every n ∈ ℕ.

theorem fractional_ideal.count_inv {R : Type u_3} (K : Type u_4) [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] [is_domain R] [is_dedekind_domain R] (v : maximal_spectrum R) (n : ) (I : fractional_ideal R K) :

val_v(I⁻ⁿ) = -val_v(Iⁿ) for every n ∈ ℤ.

theorem fractional_ideal.count_zpow {R : Type u_3} (K : Type u_4) [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] [is_domain R] [is_dedekind_domain R] (v : maximal_spectrum R) (n : ) (I : fractional_ideal R K) :

val_v(Iⁿ) = n*val_v(I) for every n ∈ ℤ.

theorem fractional_ideal.count_zpow_self {R : Type u_3} (K : Type u_4) [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] [is_domain R] [is_dedekind_domain R] (v : maximal_spectrum R) (n : ) :

val_v(v) = n for every n ∈ ℤ.

theorem fractional_ideal.count_maximal_coprime {R : Type u_3} (K : Type u_4) [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] [is_domain R] [is_dedekind_domain R] (v w : maximal_spectrum R) (hw : w v) :

If v ≠ w are two maximal ideals of R, then val_v(w) = 0.

theorem fractional_ideal.count_finprod_coprime {R : Type u_3} (K : Type u_4) [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] [is_domain R] [is_dedekind_domain R] (v : maximal_spectrum R) (exps : maximal_spectrum R) :
fractional_ideal.count K v (∏ᶠ (w : maximal_spectrum R) (H : w v), (w.as_ideal) ^ exps w) = 0

val_v(∏_{w ≠ v} w^{exps w}) = 0.

theorem fractional_ideal.count_finprod {R : Type u_3} (K : Type u_4) [comm_ring R] [field K] [algebra R K] [is_fraction_ring R K] [is_domain R] [is_dedekind_domain R] (v : maximal_spectrum R) (exps : maximal_spectrum R) (h_exps : ∀ᶠ (v : maximal_spectrum R) in filter.cofinite, exps v = 0) :
fractional_ideal.count K v (∏ᶠ (v : maximal_spectrum R), (v.as_ideal) ^ exps v) = exps v

If exps is finitely supported, then val_v(∏_w w^{exps w}) = exps v.

If I ≠ 0, then val_v(I) = 0 for all but finitely many maximal ideals of R.