Documentation

Mathlib.Algebra.Polynomial.Sequence

Polynomial sequences #

We define polynomial sequences – sequences of polynomials a₀, a₁, ... such that the polynomial aᵢ has degree i.

Main definitions #

Main statements #

TODO #

Generalize linear independence to:

structure Polynomial.Sequence (R : Type u_1) [Semiring R] :
Type u_1

A sequence of polynomials such that the polynomial at index i has degree i.

  • elems' : Polynomial R

    The i'th element in the sequence. Use S i instead, defined via CoeFun.

  • degree_eq' (i : ) : (self i).degree = i

    The i'th element in the sequence has degree i. Use S.degree_eq instead.

Instances For
    instance Polynomial.Sequence.coeFun {R : Type u_1} [Semiring R] :
    CoeFun (Sequence R) fun (x : Sequence R) => Polynomial R

    Make S i mean S.elems' i.

    Equations
      @[simp]
      theorem Polynomial.Sequence.degree_eq {R : Type u_1} [Semiring R] (S : Sequence R) (i : ) :
      (S i).degree = i

      S i has degree i.

      @[simp]
      theorem Polynomial.Sequence.natDegree_eq {R : Type u_1} [Semiring R] (S : Sequence R) (i : ) :
      (S i).natDegree = i

      S i has natDegree i.

      @[simp]
      theorem Polynomial.Sequence.ne_zero {R : Type u_1} [Semiring R] (S : Sequence R) (i : ) :
      S i 0

      No polynomial in the sequence is zero.

      S i has strictly monotone degree.

      S i has strictly monotone natural degree.

      theorem Polynomial.Sequence.span {R : Type u_1} [Ring R] (S : Sequence R) (hCoeff : ∀ (i : ), IsUnit (S i).leadingCoeff) :

      A polynomial sequence spans R[X] if all of its elements' leading coefficients are units.

      Polynomials in a polynomial sequence are linearly independent.

      noncomputable def Polynomial.Sequence.basis {R : Type u_1} [Ring R] (S : Sequence R) [NoZeroDivisors R] (hCoeff : ∀ (i : ), IsUnit (S i).leadingCoeff) :

      Every polynomial sequence is a basis of R[X].

      Equations
        Instances For
          @[simp]
          theorem Polynomial.Sequence.basis_eq_self {R : Type u_1} [Ring R] (S : Sequence R) [NoZeroDivisors R] (hCoeff : ∀ (i : ), IsUnit (S i).leadingCoeff) (i : ) :
          (S.basis hCoeff) i = S i

          The i'th basis vector is the i'th polynomial in the sequence.

          theorem Polynomial.Sequence.basis_degree_strictMono {R : Type u_1} [Ring R] (S : Sequence R) [NoZeroDivisors R] (hCoeff : ∀ (i : ), IsUnit (S i).leadingCoeff) :
          StrictMono (degree (S.basis hCoeff))

          Basis elements have strictly monotone degree.

          theorem Polynomial.Sequence.basis_natDegree_strictMono {R : Type u_1} [Ring R] (S : Sequence R) [NoZeroDivisors R] (hCoeff : ∀ (i : ), IsUnit (S i).leadingCoeff) :
          StrictMono (natDegree (S.basis hCoeff))

          Basis elements have strictly monotone natural degree.