# mathlib3documentation

data.polynomial.degree.trailing_degree

# Trailing degree of univariate polynomials #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

## Main definitions #

• trailing_degree p: the multiplicity of X in the polynomial p
• nat_trailing_degree: a variant of trailing_degree that takes values in the natural numbers
• trailing_coeff: the coefficient at index nat_trailing_degree p

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

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
theorem polynomial.trailing_degree_lt_wf {R : Type u} [semiring R] :
well_founded (λ (p q : ,

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
Instances for polynomial.trailing_monic
@[protected, instance]
Equations
@[simp]
@[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) :
= n
theorem polynomial.nat_trailing_degree_monomial_le {R : Type u} {a : R} {n : } [semiring R] :
n
@[simp]
theorem polynomial.trailing_degree_C {R : Type u} {a : R} [semiring R] (ha : a 0) :
theorem polynomial.le_trailing_degree_C {R : Type u} {a : R} [semiring R] :
@[simp]
theorem polynomial.nat_trailing_degree_C {R : Type u} [semiring R] (a : R) :
@[simp]
@[simp]
@[simp]
theorem polynomial.trailing_degree_C_mul_X_pow {R : Type u} {a : R} [semiring R] (n : ) (ha : a 0) :
= n
theorem polynomial.le_trailing_degree_C_mul_X_pow {R : Type u} [semiring R] (n : ) (a : R) :
@[simp]
theorem polynomial.trailing_coeff_eq_zero {R : Type u} [semiring R] {p : polynomial R} :
p = 0
theorem polynomial.le_nat_trailing_degree {R : Type u} {n : } [semiring R] {p : polynomial R} (hp : p 0) (hn : (m : ), m < n p.coeff m = 0) :
theorem polynomial.le_nat_trailing_degree_mul {R : Type u} [semiring R] {p q : polynomial R} (h : p * q 0) :
theorem polynomial.trailing_degree_mul' {R : Type u} [semiring R] {p q : polynomial R} (h : 0) :
theorem polynomial.nat_trailing_degree_mul' {R : Type u} [semiring R] {p q : polynomial R} (h : 0) :
theorem polynomial.nat_trailing_degree_mul {R : Type u} [semiring R] {p q : polynomial R} (hp : p 0) (hq : q 0) :
@[simp]
@[simp]
@[simp]
@[simp]
theorem polynomial.trailing_degree_neg {R : Type u} [ring R] (p : polynomial R) :
@[simp]
theorem polynomial.nat_trailing_degree_neg {R : Type u} [ring R] (p : polynomial R) :
@[simp]
theorem polynomial.nat_trailing_degree_int_cast {R : Type u} [ring R] (n : ) :
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) :