Documentation

CompPoly.Univariate.Linear

Linear Algebra API for Computable Univariate Polynomials #

This file contains linear maps and instance-stable bounded-degree predicates for CPolynomial.

This is an R-linear function that returns the coefficient of X^n.

Equations
Instances For
    @[simp]
    theorem CompPoly.CPolynomial.lcoeff_apply {R : Type u_1} [Semiring R] [BEq R] [LawfulBEq R] (n : ℕ) (p : CPolynomial R) :
    (lcoeff n) p = p.coeff n

    Applying lcoeff n returns the coefficient of degree n.

    The set of CPolynomial R consisting of polynomials of degree ≤ n.

    Equations
    Instances For

      The set of CPolynomial R consisting of polynomials of degree < n.

      Equations
      Instances For

        Membership in degreeLE is the corresponding degree bound.

        theorem CompPoly.CPolynomial.mem_degreeLT {R : Type u_1} [Zero R] {n : ℕ} {p : CPolynomial R} :
        p ∈ degreeLT n ↔ p.degree < ↑n

        Membership in degreeLT is the corresponding strict degree bound.

        degreeLT n is exactly the bounded-size carrier storing at most n coefficients.

        The zero polynomial has bounded degree for every cutoff.

        theorem CompPoly.CPolynomial.add_mem_degreeLT {R : Type u_1} [Semiring R] [BEq R] [LawfulBEq R] {n : ℕ} {p q : CPolynomial R} (hp : p ∈ degreeLT n) (hq : q ∈ degreeLT n) :
        p + q ∈ degreeLT n

        degreeLT n is closed under addition.

        theorem CompPoly.CPolynomial.nsmul_mem_degreeLT {R : Type u_1} [Semiring R] [BEq R] [LawfulBEq R] {n m : ℕ} {p : CPolynomial R} (hp : p ∈ degreeLT n) :

        degreeLT n is closed under additive scalar multiplication.

        theorem CompPoly.CPolynomial.smul_mem_degreeLT {R : Type u_1} [Semiring R] [BEq R] [LawfulBEq R] {n : ℕ} (r : R) {p : CPolynomial R} (hp : p ∈ degreeLT n) :

        degreeLT n is closed under semiring scalar multiplication.

        @[instance_reducible]
        Equations
        @[instance_reducible]
        instance CompPoly.CPolynomial.instAddElemDegreeLT {R : Type u_1} [Semiring R] [BEq R] [LawfulBEq R] (n : ℕ) :
        Add ↑(degreeLT n)
        Equations
        @[instance_reducible]
        Equations
        @[instance_reducible]
        instance CompPoly.CPolynomial.instSMulElemDegreeLT {R : Type u_1} [Semiring R] [BEq R] [LawfulBEq R] (n : ℕ) :
        SMul R ↑(degreeLT n)
        Equations
        @[instance_reducible]
        Equations
        • One or more equations did not get rendered due to their size.
        @[instance_reducible]
        Equations
        • One or more equations did not get rendered due to their size.
        def CompPoly.CPolynomial.degreeLTCoeffs {R : Type u_1} [Semiring R] [BEq R] [LawfulBEq R] (n : ℕ) :
        ↑(degreeLT n) →ₗ[R] Fin n → R

        The first n coefficients on degreeLT n form a computable linear map to Fin n → R.

        Equations
        Instances For
          @[simp]
          theorem CompPoly.CPolynomial.degreeLTCoeffs_apply {R : Type u_1} [Semiring R] [BEq R] [LawfulBEq R] (n : ℕ) (p : ↑(degreeLT n)) (i : Fin n) :
          (degreeLTCoeffs n) p i = (↑p).coeff ↑i

          Applying degreeLTCoeffs returns the corresponding bounded coefficient.