Documentation

HexRootsMathlib.Completeness.PelletConverse

The normalized product with inverse-root parameters.

Equations
Instances For
    theorem HexRootsMathlib.coeff_remotePoly (s : Multiset ) (k : ) :
    (remotePoly s).coeff k = (-1) ^ k * s.esymm k

    Coefficients of the normalized remote-root product are the elementary symmetric functions of its parameters, with alternating sign.

    theorem HexRootsMathlib.remotePoly_tail_le {s : Multiset } {d ρ : } (hd : 0 < d) ( : 0 ρ) (hs : zs, d z) :
    k(Finset.range (s.card + 1)).erase 0, (remotePoly (Multiset.map Inv.inv s)).coeff k * ρ ^ k (1 + ρ / d) ^ s.card - 1

    The item-25 bound is exactly a coefficient-tail bound for the normalized remote-root product.

    @[simp]

    The normalized remote-root product has constant coefficient one.

    The normalized product has degree at most the number of parameters, including when a zero parameter makes a nominal linear factor constant.

    Normalizing each nonzero linear root factor by its constant term produces the inverse-root polynomial remotePoly.

    A nonzero complex polynomial with nonzero constant term is its constant term times the normalized inverse-root product. This is the polynomial bridge from item 25's multiset estimate.

    noncomputable def HexRootsMathlib.coeffMass (p : Polynomial ) (n : ) (ρ : ) :

    The weighted coefficient mass through degree < n.

    Equations
    Instances For
      theorem HexRootsMathlib.coeffMass_X_sub_C_mul_le {g : Polynomial } {a : } {n : } {ρ : } ( : 0 ρ) (hdeg : g.natDegree < n) :
      coeffMass ((Polynomial.X - Polynomial.C a) * g) (n + 1) ρ (ρ + a) * coeffMass g n ρ

      Multiplication by one linear factor increases weighted coefficient mass by at most the weighted mass of that factor.

      theorem HexRootsMathlib.coeffMass_remotePoly_le {s : Multiset } {d ρ : } (hd : 0 < d) ( : 0 ρ) (hs : zs, d z) :
      coeffMass (remotePoly (Multiset.map Inv.inv s)) (s.card + 1) ρ (1 + ρ / d) ^ s.card

      Item 25 bounds the entire weighted mass of the normalized remote polynomial after restoring its constant coefficient.

      theorem HexRootsMathlib.coeff_one_remotePoly_le {s : Multiset } {d ρ : } (hd : 0 < d) ( : 0 ρ) (hs : zs, d z) :

      The first remote coefficient is bounded by the same positive-degree tail. This also covers the degree-one case, where the remote multiset is empty and the coefficient vanishes.

      theorem HexRootsMathlib.natDegree_eq_of_roots {q : Polynomial } {a : } {s : Multiset } (hroots : q.roots = a ::ₘ s) :

      The degree side condition paired with pellet_one_of_roots. Keeping it next to the dominance theorem makes the two hypotheses of pellet directly available from the same root-multiset decomposition.

      theorem HexRootsMathlib.pellet_one_of_roots {q : Polynomial } {a : } {s : Multiset } {d ρ : } (hq : q 0) (hroots : q.roots = a ::ₘ s) (hd : 0 < d) ( : 0 ρ) (hremote : zs, d z) (hmargin : a + (ρ + 3 * a) * ((1 + ρ / d) ^ s.card - 1) < ρ) :
      i(Finset.range (s.card + 2)).erase 1, q.coeff i * ρ ^ i < q.coeff 1 * ρ ^ 1

      Exact first-term Pellet converse. Suppose the complete root multiset of q consists of one designated near root a and the remote multiset s. If every remote root is at least d from zero and the displayed wide-margin inequality holds, then the first coefficient of q strictly dominates the complete coefficient tail at radius ρ.

      The exponent s.card counts remote roots with multiplicity. The statement also covers s = 0, so linear polynomials require no separate API.

      theorem HexRootsMathlib.pellet_one_comp_dominates {p : Polynomial } {c z : } {s : Multiset } {d ρ : } (hp : p 0) (hroots : p.roots = z ::ₘ s) (hd : 0 < d) ( : 0 ρ) (hremote : ws, d w - c) (hmargin : z - c + (ρ + 3 * z - c) * ((1 + ρ / d) ^ s.card - 1) < ρ) :

      Translation form of pellet_one_of_roots. Here z is the designated root of p, s is the multiset of every other root (with multiplicity), and the conclusion is stated directly for the Taylor polynomial about an arbitrary centre c.

      This is the clean-margin terminus of the Pellet converse; the executable completeness chain in Completeness.PelletDyadic uses the slack variant pellet_one_comp_slack instead, which absorbs the dyadic rounding gap.