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.

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.

    Instances For

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

      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]
        @[instance_reducible]
        instance CompPoly.CPolynomial.instAddElemDegreeLT {R : Type u_1} [Semiring R] [BEq R] [LawfulBEq R] (n : ) :
        Add (degreeLT n)
        @[instance_reducible]
        @[instance_reducible]
        instance CompPoly.CPolynomial.instSMulElemDegreeLT {R : Type u_1} [Semiring R] [BEq R] [LawfulBEq R] (n : ) :
        SMul R (degreeLT n)
        @[instance_reducible]
        @[instance_reducible]
        def CompPoly.CPolynomial.degreeLTCoeffs {R : Type u_1} [Semiring R] [BEq R] [LawfulBEq R] (n : ) :
        (degreeLT n) →ₗ[R] Fin nR

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

        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.