Documentation

Complexity.Foundations.Data.Polynomial.CoeffNorm1

The ℓ₁ coefficient norm of an integer polynomial #

This module defines the ℓ₁ coefficient norm Polynomial.coeffNorm1 of a univariate integer polynomial p : ℤ[X]: $$\|p\|_1 = \sum_{i \in \mathrm{supp}(p)} |p_i|,$$ together with its basic triangle, scaling, shift, linear-factor, submultiplicative, and integer-cast inequalities used in Lemma 4.6, Lemma 5.1, and Appendix B of [OpenAI2026ETH].

Main definitions #

Main results #

References #

The ℓ₁ coefficient norm ∑ i ∈ p.support, (p.coeff i).natAbs of an integer polynomial.

Instances For
    @[simp]

    The ℓ₁ norm of 0 is 0.

    theorem Polynomial.coeffNorm1_eq_sum_of_support_subset {p : Polynomial ℤ} {S : Finset ℕ} (hS : p.support ⊆ S) :
    p.coeffNorm1 = ∑ i ∈ S, (p.coeff i).natAbs

    Sum expression for coeffNorm1 over any superset S ⊇ p.support.

    Every individual coefficient of p has absolute value at most coeffNorm1 p.

    The sum of (p.coeff i).natAbs over any finite set of indices is at most coeffNorm1 p.

    The ℓ₁ norm of a constant polynomial C a is a.natAbs.

    @[simp]

    The ℓ₁ norm of 1 is 1.

    @[simp]

    Negating a polynomial preserves coeffNorm1.

    Difference triangle inequality for coeffNorm1.

    theorem Polynomial.coeffNorm1_sum_le {ι : Type u_1} (s : Finset ι) (f : ι → Polynomial ℤ) :
    (∑ i ∈ s, f i).coeffNorm1 ≤ ∑ i ∈ s, (f i).coeffNorm1

    Finite-sum triangle inequality for coeffNorm1.

    Scaling by C a scales coeffNorm1 by at most a.natAbs.

    Multiplying by X preserves coeffNorm1.

    Multiplying by X ^ k does not increase coeffNorm1.

    Multiplying by C a - X scales coeffNorm1 by at most a.natAbs + 1.

    Multiplying by 1 - X increases coeffNorm1 by at most a factor of 2.

    Multiplying by (1 - X) ^ ℓ increases coeffNorm1 by at most a factor of 2 ^ ℓ.

    coeffNorm1 is submultiplicative on ℤ[X].

    theorem Polynomial.coeffNorm1_prod_le {ι : Type u_1} (s : Finset ι) (f : ι → Polynomial ℤ) :
    (∏ a ∈ s, f a).coeffNorm1 ≤ ∏ a ∈ s, (f a).coeffNorm1

    coeffNorm1 of a finite product is at most the product of the coeffNorm1s.

    Casting coeffNorm1 p to ℤ gives the sum of integer absolute values |p.coeff i|.

    Integer-cast constant norm (coeffNorm1 (C a) : ℤ) = |a|.

    Integer-cast triangle inequality for coeffNorm1.

    theorem Polynomial.natCast_coeffNorm1_sum_le {ι : Type u_1} (s : Finset ι) (f : ι → Polynomial ℤ) :
    ↑(∑ i ∈ s, f i).coeffNorm1 ≤ ∑ i ∈ s, ↑(f i).coeffNorm1

    Integer-cast finite-sum triangle inequality for coeffNorm1.

    Integer-cast scalar multiplication bound for coeffNorm1.

    @[simp]

    The ℓ₁ coefficient norm of ofCoeffList l equals the sum of Int.natAbs of l.