Documentation

TauCeti.NumberTheory.Padics.VanDerPut.Basic

The van der Put basis of continuous functions on ℤ_p #

For n : ℕ let ℓ(n) = (p.digits n).length be the number of base-p digits of n, so that ℓ(0) = 0 and p ^ (ℓ(n) - 1) ≤ n < p ^ ℓ(n) for n > 0. The n-th van der Put function is the indicator of the ball n + p ^ ℓ(n) ℤ_p, that is of the x whose truncation modulo p ^ ℓ(n) is n; for n = 0 this is the constant function 1. Deleting the leading digit of n > 0 gives n⁻ = n % p ^ (ℓ(n) - 1), and the n-th van der Put coefficient of a function f on ℤ_p is f 0 for n = 0 and f n - f n⁻ for n > 0.

Van der Put's theorem says that for an ultrametric normed group E, a continuous f : ℤ_[p] → E is the uniformly convergent sum of its van der Put terms, its coefficients tend to zero, and its sup norm is the sup norm of its coefficients. If E is also complete, conversely every null sequence of coefficients defines a continuous function. Together, the coefficients then give an isometric isomorphism C(ℤ_[p], E) ≃ₗᵢ C₀(ℕ, E), linear over any scalars acting continuously on E.

Unlike Mahler's theorem (PadicInt.mahlerEquiv), this needs no ℤ_[p]-module structure on E, and its basis functions are locally constant. The proof rests on the telescoping identity ∑_{n < p ^ k} e_n(x) a_n(f) = f (x mod p ^ k) (PadicInt.sum_vanDerPutTerm_vanDerPutCoeff_apply) and on the biorthogonality of terms and coefficients (PadicInt.vanDerPutCoeff_vanDerPutTerm).

Main definitions #

Main results #

References #

The definitions and the proof of the isometry are modelled on Mathlib's treatment of the Mahler basis in Mathlib.NumberTheory.Padics.MahlerBasis (PadicInt.mahlerTerm, PadicInt.mahlerSeries and PadicInt.mahlerEquiv).

noncomputable def PadicInt.vanDerPutTerm {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} [TopologicalSpace E] [Zero E] (a : E) (n : ℕ) :

The n-th van der Put term with value a: the locally constant function on ℤ_[p] equal to a at the x whose truncation modulo p ^ ℓ is n, and to 0 elsewhere, where ℓ = (p.digits n).length is the number of base-p digits of n. These x form the ball n + p ^ ℓ ℤ_[p] (PadicInt.vanDerPutTerm_apply_eq_ite_norm_sub_le); for n = 0 it is all of ℤ_[p].

Instances For
    theorem PadicInt.vanDerPutTerm_apply {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} [TopologicalSpace E] [Zero E] (a : E) (n : ℕ) (x : ℤ_[p]) :
    (vanDerPutTerm a n) x = if x.appr (p.digits n).length = n then a else 0

    The defining formula of vanDerPutTerm.

    theorem PadicInt.vanDerPutTerm_apply_eq_ite_norm_sub_le {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} [TopologicalSpace E] [Zero E] (a : E) (n : ℕ) (x : ℤ_[p]) :
    (vanDerPutTerm a n) x = if ‖x - ↑n‖ ≤ ↑p ^ (-↑(p.digits n).length) then a else 0

    The n-th van der Put term is supported on the closed ball of radius p ^ (-ℓ) around n, ℓ the number of base-p digits of n.

    theorem PadicInt.vanDerPutTerm_natCast {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} [TopologicalSpace E] [Zero E] (a : E) (n m : ℕ) :
    (vanDerPutTerm a n) ↑m = if m % p ^ (p.digits n).length = n then a else 0

    The value of the n-th van der Put term at a natural number m.

    @[simp]

    The 0-th van der Put term is constant.

    @[simp]
    theorem PadicInt.vanDerPutTerm_zero_left {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} [TopologicalSpace E] [Zero E] (n : ℕ) :

    The van der Put term with value 0 vanishes.

    @[simp]
    theorem PadicInt.vanDerPutTerm_natCast_self {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} [TopologicalSpace E] [Zero E] (a : E) (n : ℕ) :
    (vanDerPutTerm a n) ↑n = a

    The n-th van der Put term takes the value a at n.

    @[simp]
    theorem PadicInt.vanDerPutTerm_add {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} [TopologicalSpace E] [AddZeroClass E] [ContinuousAdd E] (a b : E) (n : ℕ) :

    The van der Put term is additive in its value.

    @[simp]
    theorem PadicInt.vanDerPutTerm_neg {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} [TopologicalSpace E] [NegZeroClass E] [ContinuousNeg E] (a : E) (n : ℕ) :

    The van der Put term commutes with negation of its value.

    @[simp]
    theorem PadicInt.vanDerPutTerm_smul {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} [TopologicalSpace E] {S : Type u_2} [Zero E] [SMulZeroClass S E] [ContinuousConstSMul S E] (c : S) (a : E) (n : ℕ) :

    The van der Put term commutes with scalar multiplication of its value.

    noncomputable def PadicInt.vanDerPutCoeff {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} [Sub E] (f : ℤ_[p] → E) (n : ℕ) :
    E

    The n-th van der Put coefficient of a function f on ℤ_[p]: f 0 for n = 0, and f n - f n⁻ for n > 0, where n⁻ = n % p ^ Nat.log p n is n with its leading base-p digit deleted.

    Instances For
      @[simp]
      theorem PadicInt.vanDerPutCoeff_zero {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} [Sub E] (f : ℤ_[p] → E) :

      The 0-th van der Put coefficient is the value at 0.

      theorem PadicInt.vanDerPutCoeff_of_ne_zero {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} [Sub E] (f : ℤ_[p] → E) {n : ℕ} (hn : n ≠ 0) :
      vanDerPutCoeff f n = f ↑n - f ↑(n % p ^ Nat.log p n)

      For n ≠ 0, the n-th van der Put coefficient is f n - f n⁻.

      @[simp]
      theorem PadicInt.vanDerPutCoeff_add {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} [SubtractionCommMonoid E] (f g : ℤ_[p] → E) (n : ℕ) :

      The van der Put coefficients are additive in the function.

      @[simp]
      theorem PadicInt.vanDerPutCoeff_neg {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} [SubtractionCommMonoid E] (f : ℤ_[p] → E) (n : ℕ) :

      The van der Put coefficients commute with negation of the function.

      @[simp]
      theorem PadicInt.vanDerPutCoeff_sub {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} [SubtractionCommMonoid E] (f g : ℤ_[p] → E) (n : ℕ) :

      The van der Put coefficients commute with subtraction of functions.

      @[simp]
      theorem PadicInt.vanDerPutCoeff_smul {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} {S : Type u_2} [AddGroup E] [DistribSMul S E] (c : S) (f : ℤ_[p] → E) (n : ℕ) :

      The van der Put coefficients commute with scalar multiplication of the function.

      theorem PadicInt.sum_vanDerPutTerm_vanDerPutCoeff_apply {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} [AddCommGroup E] [TopologicalSpace E] (f : ℤ_[p] → E) (x : ℤ_[p]) (k : ℕ) :
      ∑ n ∈ Finset.range (p ^ k), (vanDerPutTerm (vanDerPutCoeff f n) n) x = f ↑(x.appr k)

      The telescoping identity. For any function f on ℤ_[p], the partial sum over n < p ^ k of its van der Put expansion at x is the value of f at the truncation of x modulo p ^ k.

      @[simp]
      theorem PadicInt.vanDerPutCoeff_vanDerPutTerm {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} [AddGroup E] [TopologicalSpace E] (a : E) (m n : ℕ) :
      vanDerPutCoeff (⇑(vanDerPutTerm a m)) n = if n = m then a else 0

      Biorthogonality: the van der Put coefficients of the m-th van der Put term with value a are a at m and 0 elsewhere.

      @[simp]
      theorem PadicInt.norm_vanDerPutTerm {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_1} [SeminormedAddCommGroup E] (a : E) (n : ℕ) :

      The sup norm of a van der Put term is the norm of its value.

      The van der Put coefficients of a continuous function tend to zero: n and n⁻ are congruent modulo p ^ Nat.log p n, and f is uniformly continuous.

      Over an ultrametric group, the van der Put coefficients of a continuous function are bounded by its sup norm.

      noncomputable def PadicInt.vanDerPutSeries {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_2} [NormedAddCommGroup E] (a : ℕ → E) :

      The van der Put series x ↦ ∑ n, e_n(x) a n with coefficients a.

      Instances For
        theorem PadicInt.hasSum_vanDerPut {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_2} [NormedAddCommGroup E] [IsUltrametricDist E] (f : C(ℤ_[p], E)) :
        HasSum (fun (n : ℕ) => vanDerPutTerm (vanDerPutCoeff (⇑f) n) n) f

        Van der Put's theorem: a continuous function on ℤ_[p] with values in an ultrametric normed group is the uniformly convergent sum of its van der Put terms, without assuming completeness.

        A continuous function is the van der Put series of its van der Put coefficients.

        theorem PadicInt.hasSum_vanDerPutSeries {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_2} [NormedAddCommGroup E] [IsUltrametricDist E] [CompleteSpace E] {a : ℕ → E} (ha : Filter.Tendsto a Filter.atTop (nhds 0)) :
        HasSum (fun (n : ℕ) => vanDerPutTerm (a n) n) (vanDerPutSeries a)

        A van der Put series whose coefficients tend to zero converges uniformly.

        theorem PadicInt.vanDerPutSeries_apply {p : ℕ} [hp : Fact (Nat.Prime p)] {E : Type u_2} [NormedAddCommGroup E] [IsUltrametricDist E] [CompleteSpace E] {a : ℕ → E} (ha : Filter.Tendsto a Filter.atTop (nhds 0)) (x : ℤ_[p]) :
        (vanDerPutSeries a) x = ∑' (n : ℕ), (vanDerPutTerm (a n) n) x

        A convergent van der Put series is evaluated pointwise.

        The van der Put coefficients of a convergent van der Put series are its coefficients.

        Van der Put's theorem, as an isometric isomorphism between the continuous functions on ℤ_[p] with values in a complete ultrametric normed group E and the null sequences in E, sending a function to its van der Put coefficients. It is linear over any scalars S acting continuously on E.

        Instances For
          @[simp]
          theorem PadicInt.vanDerPutEquiv_apply {p : ℕ} [hp : Fact (Nat.Prime p)] {S : Type u_1} {E : Type u_2} [NormedAddCommGroup E] [IsUltrametricDist E] [CompleteSpace E] [Semiring S] [Module S E] [ContinuousConstSMul S E] (f : C(ℤ_[p], E)) (n : ℕ) :
          ((vanDerPutEquiv S E) f) n = vanDerPutCoeff (⇑f) n

          The coordinates of vanDerPutEquiv S E f are the van der Put coefficients of f.

          The inverse of vanDerPutEquiv S E sums the van der Put series.

          @[simp]

          The van der Put series of the coordinate vector single n a is the van der Put term vanDerPutTerm a n.

          theorem PadicInt.vanDerPutCoeff_id {p : ℕ} [hp : Fact (Nat.Prime p)] (n : ℕ) :
          vanDerPutCoeff (fun (x : ℤ_[p]) => x) n = ↑(n / p ^ Nat.log p n * p ^ Nat.log p n)

          The van der Put coefficients of the identity of ℤ_[p]: the n-th coefficient is n - n⁻, the leading base-p digit of n times p ^ Nat.log p n (both sides are 0 for n = 0).