p-adic norm

This file defines the p-adic valuation and the p-adic norm on ℚ.

The p-adic valuation on ℚ is the difference of the multiplicities of p in the numerator and denominator of q. This function obeys the standard properties of a valuation, with the appropriate assumptions on p.

The valuation induces a norm on ℚ. This norm is a nonarchimedean absolute value. It takes values in {0} ∪ {1/p^k | k ∈ ℤ}.

Notations

This file uses the local notation /. for rat.mk.

Implementation notes

Much, but not all, of this file assumes that p is prime. This assumption is inferred automatically by taking (prime p) as a type class argument.

References

Tags

p-adic, p adic, padic, norm, valuation


padic_val_rat

For p 1, the p-adic valuation of an integer z 0 is the largest natural number n such that p^n divides z.

padic_val_rat defines the valuation of a rational q to be the valuation of q.num minus the valuation of q.denom. If q = 0 or p = 1, then padic_val_rat p q defaults to 0.

padic_val_rat_def

A simplification of the definition of padic_val_rat p q when q 0 and p is prime.

padic_val_rat.neg

padic_val_rat p q is symmetric in q.

padic_val_rat.one

padic_val_rat p 1 is 0 for any p.

padic_val_rat.padic_val_rat_self

For p 0, p 1, padic_val_rat p p` is 1.

padic_val_rat.padic_val_rat_of_int

The p-adic value of an integer z 0 is the multiplicity of p in z.

padic_val_rat.finite_int_prime_iff

The multiplicity of p : ℕ in a : ℤ is finite exactly when a 0.

padic_val_rat.defn

A rewrite lemma for padic_val_rat p q when q is expressed in terms of rat.mk.

padic_val_rat.mul

A rewrite lemma for padic_val_rat p (q * r) with conditions q 0, r 0.

padic_val_rat.pow

A rewrite lemma for padic_val_rat p (q^k) with condition q ≠ 0`.

padic_val_rat.inv

A rewrite lemma for padic_val_rat p (q⁻¹) with condition q 0.

padic_val_rat.div

A rewrite lemma for padic_val_rat p (q / r) with conditions q 0, r 0.

padic_val_rat.padic_val_rat_le_padic_val_rat_iff

A condition for padic_val_rat p (n₁ / d₁) padic_val_rat p (n₂ / d₂), in terms of divisibility by p^n`.

padic_val_rat.le_padic_val_rat_add_of_le

Sufficient conditions to show that the p-adic valuation of q is less than or equal to the p-adic vlauation of q + r.

padic_val_rat.min_le_padic_val_rat_add

The minimum of the valuations of q and r is less than or equal to the valuation of q + r.

padic_norm

If q 0, the p-adic norm of a rational q is p ^ (-(padic_val_rat p q)). If q = 0, the p-adic norm of q is 0.

padic_norm.eq_fpow_of_nonzero

Unfolds the definition of the p-adic norm of q when q 0.

padic_norm.nonneg

The p-adic norm is nonnegative.

padic_norm.zero

The p-adic norm of 0 is 0.

padic_norm.one

The p-adic norm of 1 is 1.

padic_norm.image

The image of padic_norm p is {0} ∪ {p^(-n) | n ∈ ℤ}.

padic_norm.nonzero

If q 0, then padic_norm p q 0.

padic_norm.neg

padic_norm p is symmetric.

padic_norm.zero_of_padic_norm_eq_zero

If the p-adic norm of q is 0, then q is 0.

padic_norm.mul

The p-adic norm is multiplicative.

padic_norm.div

The p-adic norm respects division.

padic_norm.of_int

The p-adic norm of an integer is at most 1.

padic_norm.nonarchimedean

The p-adic norm is nonarchimedean: the norm of p + q is at most the max of the norm of p and the norm of q.

padic_norm.triangle_ineq

The p-adic norm respects the triangle inequality: the norm of p + q is at most the norm of p plus the norm of q.

padic_norm.sub

The p-adic norm of a difference is at most the max of each component. Restates the archimedean property of the p-adic norm.

padic_norm.add_eq_max_of_ne

If the p-adic norms of q and r are different, then the norm of q + r is equal to the max of the norms of q and r.

padic_norm.is_absolute_value

The p-adic norm is an absolute value: positive-definite and multiplicative, satisfying the triangle inequality.

padic_norm.le_of_dvd

If p^n divides an integer z, then the p-adic norm of z is at most p^(-n).