Polynomial sequences #
We define polynomial sequences – sequences of polynomials a₀, a₁, ... such that the polynomial
aᵢ has degree i.
Main definitions #
Polynomial.Sequence R: the type of polynomial sequences with coefficients inR
Main statements #
Polynomial.Sequence.basis: a sequence is a basis forR[X]
TODO #
Generalize linear independence to:
IsCancelAddsemirings- just require coefficients are regular
- arbitrary sets of polynomials which are pairwise different degree.
A sequence of polynomials such that the polynomial at index i has degree i.
- elems' : ℕ → Polynomial R
The
i-th element in the sequence has degreei. UseS.degree_eqinstead.
Instances For
@[implicit_reducible]
instance
Polynomial.Sequence.coeFun
{R : Type u_1}
[Semiring R]
:
CoeFun (Sequence R) fun (x : Sequence R) => ℕ → Polynomial R
Equations
theorem
Polynomial.Sequence.degree_strictMono
{R : Type u_1}
[Semiring R]
(S : Sequence R)
:
StrictMono (degree ∘ ↑S)
S i has strictly monotone degree.
theorem
Polynomial.Sequence.natDegree_strictMono
{R : Type u_1}
[Semiring R]
(S : Sequence R)
:
StrictMono (natDegree ∘ ↑S)
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.
theorem
Polynomial.Sequence.linearIndependent
{R : Type u_1}
[Ring R]
(S : Sequence R)
[IsDomain R]
:
LinearIndependent R ↑S
Polynomials in a polynomial sequence are linearly independent.
noncomputable def
Polynomial.Sequence.basis
{R : Type u_1}
[Ring R]
(S : Sequence R)
[IsDomain R]
(hCoeff : ∀ (i : ℕ), IsUnit (↑S i).leadingCoeff)
:
Module.Basis ℕ R (Polynomial R)
Every polynomial sequence is a basis of R[X].
Equations
- S.basis hCoeff = Module.Basis.mk ⋯ ⋯
Instances For
theorem
Polynomial.Sequence.basis_degree_strictMono
{R : Type u_1}
[Ring R]
(S : Sequence R)
[IsDomain 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)
[IsDomain R]
(hCoeff : ∀ (i : ℕ), IsUnit (↑S i).leadingCoeff)
:
StrictMono (natDegree ∘ ⇑(S.basis hCoeff))
Basis elements have strictly monotone natural degree.