Documentation

TauCeti.NumberTheory.Height.Polynomial.Basic

Projective coefficient heights of univariate polynomials #

The height of a polynomial is the native projective height of its coefficient vector. It is unchanged by nonzero scalar multiplication; constants and the zero polynomial have multiplicative height one. The normalization is relative to the admissible family of absolute values on the coefficient field, rather than its degree-root normalization.

The product estimate uses Mathlib's Height.mulHeight_linearMap_apply_le on coefficient convolution. Its archimedean factor counts the coefficients of the smaller-degree factor; the nonarchimedean estimate has no such factor. These estimates are used to control coefficients of auxiliary polynomials in Diophantine approximation.

References #

noncomputable def Polynomial.mulHeight {K : Type u_1} [Field K] [Height.AdmissibleAbsValues K] (p : Polynomial K) :

The relative projective multiplicative height of the coefficients of a polynomial.

Instances For
    noncomputable def Polynomial.logHeight {K : Type u_1} [Field K] [Height.AdmissibleAbsValues K] (p : Polynomial K) :

    The relative projective logarithmic height of the coefficients of a polynomial.

    Instances For

      Polynomial logarithmic height agrees with the native finitely supported height.

      Polynomial height is the height of the tuple indexed by its nonzero coefficients.

      theorem Polynomial.mulHeight_eq_coeff {K : Type u_1} [Field K] [Height.AdmissibleAbsValues K] (p : Polynomial K) {n : ℕ} (hn : p.support ⊆ Finset.range n) :
      p.mulHeight = Height.mulHeight fun (i : Fin n) => p.coeff ↑i

      Any finite coefficient tuple containing the support gives the polynomial height.

      theorem Polynomial.logHeight_eq_coeff {K : Type u_1} [Field K] [Height.AdmissibleAbsValues K] (p : Polynomial K) {n : ℕ} (hn : p.support ⊆ Finset.range n) :
      p.logHeight = Height.logHeight fun (i : Fin n) => p.coeff ↑i

      The finite coefficient-tuple description of logarithmic polynomial height.

      Any finite coefficient tuple extending past the degree gives the polynomial height.

      The logarithmic coefficient-tuple description when the tuple extends past the degree.

      @[simp]
      theorem Polynomial.mulHeight_monomial {K : Type u_1} [Field K] [Height.AdmissibleAbsValues K] (n : ℕ) (c : K) :
      ((monomial n) c).mulHeight = 1
      @[simp]
      theorem Polynomial.logHeight_monomial {K : Type u_1} [Field K] [Height.AdmissibleAbsValues K] (n : ℕ) (c : K) :
      ((monomial n) c).logHeight = 0
      @[simp]
      theorem Polynomial.mulHeight_C {K : Type u_1} [Field K] [Height.AdmissibleAbsValues K] (c : K) :
      (C c).mulHeight = 1
      @[simp]
      theorem Polynomial.logHeight_C {K : Type u_1} [Field K] [Height.AdmissibleAbsValues K] (c : K) :
      (C c).logHeight = 0
      @[simp]
      @[simp]
      @[simp]
      theorem Polynomial.mulHeight_smul {K : Type u_1} [Field K] [Height.AdmissibleAbsValues K] (p : Polynomial K) {c : K} (hc : c ≠ 0) :

      Nonzero scalar multiplication does not change projective coefficient height.

      @[simp]
      theorem Polynomial.mulHeight_C_mul {K : Type u_1} [Field K] [Height.AdmissibleAbsValues K] (p : Polynomial K) {c : K} (hc : c ≠ 0) :
      @[simp]
      theorem Polynomial.logHeight_smul {K : Type u_1} [Field K] [Height.AdmissibleAbsValues K] (p : Polynomial K) {c : K} (hc : c ≠ 0) :
      @[simp]
      theorem Polynomial.logHeight_C_mul {K : Type u_1} [Field K] [Height.AdmissibleAbsValues K] (p : Polynomial K) {c : K} (hc : c ≠ 0) :
      @[simp]

      The coefficient height of the linear polynomial with root a is the scalar height of a.

      @[simp]

      The logarithmic coefficient height of the linear polynomial with root a is the scalar logarithmic height of a.

      The height of a product is bounded by the product of coefficient heights, with the archimedean convolution factor given by the smaller degree plus one.

      The logarithmic form of the coefficient convolution estimate.