Documentation

LeanPool.Zeta32.Arith.Small.Binom

Binomial polynomials binom(t,a), their integer values at all integers, Newton expansion at an arbitrary centre, derivatives at integers (v_p ≥ β - ⌊log_p e⌋), D_m = m!·binom(t+m,m), and the residue scale K!/∏_{l≠j}(l-j) ∈ ℤ.

@[reducible, inline]
noncomputable abbrev Zeta32.Arith.Small.binomPoly (a : ℕ) :

binom(t,a)=descPochhammer a/a!.

Equations
Instances For
    theorem Zeta32.Arith.Small.eq_of_eval_shift_nat {p q : Polynomial ℚ} (c : ℚ) (h : ∀ (m : ℕ), Polynomial.eval (c + ↑m) p = Polynomial.eval (c + ↑m) q) :
    p = q

    Two rational polynomials agreeing on c+m for every natural m are equal.

    theorem Zeta32.Arith.Small.binomPoly_eval_int (k : ℕ) (m : ℤ) :
    ∃ (z : ℤ), Polynomial.eval (↑m) (binomPoly k) = ↑z

    binom(m,k) is an integer for every integer m, including negative m.

    The k-th forward difference of the values of f, at step 1.

    Equations
    Instances For
      theorem Zeta32.Arith.Small.newtonCoeff_eq_sum (f : Polynomial ℚ) (c : ℚ) (k : ℕ) :
      newtonCoeff f c k = ∑ i ∈ Finset.range (k + 1), (-1) ^ (k - i) * ↑(k.choose i) * Polynomial.eval (c + ↑i) f
      theorem Zeta32.Arith.Small.newtonCoeff_eq_zero {f : Polynomial ℚ} {d : ℕ} (hf : f.natDegree ≤ d) (c : ℚ) {k : ℕ} (hk : d < k) :
      newtonCoeff f c k = 0

      Newton expansion at an arbitrary rational centre c, degree window d.

      theorem Zeta32.Arith.Small.newtonCoeff_VG (p : ℕ) [Fact (Nat.Prime p)] {f : Polynomial ℚ} (c r : ℚ) (k : ℕ) (hv : ∀ i ≤ k, Zeta5Irrational.VG p (Polynomial.eval (c + ↑i) f) r) :

      VG bound on Newton coefficients from a window of consecutive values.

      d/dx binom(x,k+1) at x=0 equals (-1)^k/(k+1).

      theorem Zeta32.Arith.Small.derivative_eval_newton {f : Polynomial ℚ} {d : ℕ} (hf : f.natDegree ≤ d) (c : ℚ) :
      Polynomial.eval c (Polynomial.derivative f) = ∑ k ∈ Finset.range d, newtonCoeff f c (k + 1) * ((-1) ^ k / (↑k + 1))

      The derivative at a Newton centre: f'(c)=sum_{k=1}^d Delta^k f(c) (-1)^(k-1)/k.

      theorem Zeta32.Arith.Small.derivative_eval_VG (p : ℕ) [Fact (Nat.Prime p)] {f : Polynomial ℚ} {e : ℕ} (hf : f.natDegree ≤ e) (r : ℚ) (hv : ∀ (m : ℤ), Zeta5Irrational.VG p (Polynomial.eval (↑m) f) r) (m : ℤ) :

      Derivative values at integers from values at all integers.

      D_m and the shifted binomial #

      theorem Zeta32.Arith.Small.D_succ (m : ℕ) :
      D (m + 1) = D m * (Polynomial.X + Polynomial.C (↑m + 1))
      theorem Zeta32.Arith.Small.D_eval_nat (K m : ℕ) :
      Polynomial.eval (↑m) (D K) = ↑K.factorial * ↑((m + K).choose K)

      K! binom(t+K,k) = D_K binom(t,k-K)/binom(k,K) for K <= k.

      theorem Zeta32.Arith.Small.inv_choose_VG (p : ℕ) [hp : Fact (Nat.Prime p)] {k K N : ℕ} (hk : K ≤ k) (hkN : k ≤ N) :
      Zeta5Irrational.VG p (↑(k.choose K))⁻¹ (-↑(Nat.log p N))

      Residue denominators #

      Product of the differences from j to all other indices in 1, …, K.

      Equations
      Instances For
        theorem Zeta32.Arith.Small.D_eval_eq_prod (m : ℕ) (x : ℚ) :
        Polynomial.eval x (D m) = ∏ l ∈ Finset.Icc 1 m, (x + ↑l)
        theorem Zeta32.Arith.Small.eraseProd_base {j : ℕ} (hj : 1 ≤ j) :
        eraseProd j j = (-1) ^ (j - 1) * ↑(j - 1).factorial
        theorem Zeta32.Arith.Small.eraseProd_succ {K j : ℕ} (hjK : j ≤ K) :
        eraseProd (K + 1) j = eraseProd K j * (↑(K + 1) - ↑j)
        theorem Zeta32.Arith.Small.eraseProd_eq {K j : ℕ} (hj : 1 ≤ j) (hjK : j ≤ K) :
        eraseProd K j = (-1) ^ (j - 1) * ↑(j - 1).factorial * ↑(K - j).factorial
        theorem Zeta32.Arith.Small.residueScale_eq {K j : ℕ} (hj : 1 ≤ j) (hjK : j ≤ K) :
        ↑K.factorial / eraseProd K j = (-1) ^ (j - 1) * ↑K * ↑((K - 1).choose (j - 1))
        theorem Zeta32.Arith.Small.residueScale_VG (p : ℕ) {K j : ℕ} (hj : 1 ≤ j) (hjK : j ≤ K) :