mathlib documentation

data.polynomial.degree.trailing_degree

Trailing degree of univariate polynomials

Main definitions

Converts most results about degree, nat_degree and leading_coeff to results about the bottom end of a polynomial

def polynomial.trailing_degree {R : Type u} [semiring R] (p : polynomial R) :

trailing_degree p is the multiplicity of x in the polynomial p, i.e. the smallest X-exponent in p. trailing_degree p = some n when p ≠ 0 and n is the smallest power of X that appears in p, otherwise trailing_degree 0 = ⊤.

Equations
def polynomial.nat_trailing_degree {R : Type u} [semiring R] (p : polynomial R) :

nat_trailing_degree p forces trailing_degree p to , by defining nat_trailing_degree ⊤ = 0.

Equations
def polynomial.trailing_coeff {R : Type u} [semiring R] (p : polynomial R) :
R

trailing_coeff p gives the coefficient of the smallest power of X in p

Equations
def polynomial.trailing_monic {R : Type u} [semiring R] (p : polynomial R) :
Prop

a polynomial is monic_at if its trailing coefficient is 1

Equations
@[instance]

Equations
@[simp]

@[simp]

@[simp]

theorem polynomial.le_trailing_degree_of_ne_zero {R : Type u} {n : } [semiring R] {p : polynomial R} (h : p.coeff n 0) :

theorem polynomial.nat_trailing_degree_le_of_ne_zero {R : Type u} {n : } [semiring R] {p : polynomial R} (h : p.coeff n 0) :

@[simp]
theorem polynomial.trailing_degree_monomial {R : Type u} {a : R} {n : } [semiring R] (ha : a 0) :

theorem polynomial.nat_trailing_degree_monomial {R : Type u} {a : R} {n : } [semiring R] (ha : a 0) :

@[simp]
theorem polynomial.trailing_degree_C {R : Type u} {a : R} [semiring R] (ha : a 0) :

@[simp]

@[simp]

@[simp]

@[simp]
theorem polynomial.trailing_degree_C_mul_X_pow {R : Type u} {a : R} [semiring R] (n : ) (ha : a 0) :

theorem polynomial.coeff_eq_zero_of_trailing_degree_lt {R : Type u} {n : } [semiring R] {p : polynomial R} (h : n < p.trailing_degree) :
p.coeff n = 0

@[simp]
theorem polynomial.trailing_coeff_eq_zero {R : Type u} [semiring R] {p : polynomial R} :

@[simp]

@[simp]

@[simp]

def polynomial.next_coeff_up {R : Type u} [semiring R] (p : polynomial R) :
R

The second-lowest coefficient, or 0 for constants

Equations
@[simp]
theorem polynomial.next_coeff_up_C_eq_zero {R : Type u} [semiring R] (c : R) :

theorem polynomial.ne_zero_of_trailing_degree_lt {R : Type u} [semiring R] {p : polynomial R} {n : with_top } (h : p.trailing_degree < n) :
p 0