Documentation

Mathlib.Data.Polynomial.UnitTrinomial

Unit Trinomials #

This file defines irreducible trinomials and proves an irreducibility criterion.

Main definitions #

Main results #

noncomputable def Polynomial.trinomial {R : Type u_1} [Semiring R] (k : ℕ) (m : ℕ) (n : ℕ) (u : R) (v : R) (w : R) :

Shorthand for a trinomial

Equations
Instances For
    theorem Polynomial.trinomial_def {R : Type u_1} [Semiring R] (k : ℕ) (m : ℕ) (n : ℕ) (u : R) (v : R) (w : R) :
    Polynomial.trinomial k m n u v w = Polynomial.C u * Polynomial.X ^ k + Polynomial.C v * Polynomial.X ^ m + Polynomial.C w * Polynomial.X ^ n
    theorem Polynomial.trinomial_leading_coeff' {R : Type u_1} [Semiring R] {k : ℕ} {m : ℕ} {n : ℕ} {u : R} {v : R} {w : R} (hkm : k < m) (hmn : m < n) :
    theorem Polynomial.trinomial_middle_coeff {R : Type u_1} [Semiring R] {k : ℕ} {m : ℕ} {n : ℕ} {u : R} {v : R} {w : R} (hkm : k < m) (hmn : m < n) :
    theorem Polynomial.trinomial_trailing_coeff' {R : Type u_1} [Semiring R] {k : ℕ} {m : ℕ} {n : ℕ} {u : R} {v : R} {w : R} (hkm : k < m) (hmn : m < n) :
    theorem Polynomial.trinomial_natDegree {R : Type u_1} [Semiring R] {k : ℕ} {m : ℕ} {n : ℕ} {u : R} {v : R} {w : R} (hkm : k < m) (hmn : m < n) (hw : w ≠ 0) :
    theorem Polynomial.trinomial_natTrailingDegree {R : Type u_1} [Semiring R] {k : ℕ} {m : ℕ} {n : ℕ} {u : R} {v : R} {w : R} (hkm : k < m) (hmn : m < n) (hu : u ≠ 0) :
    theorem Polynomial.trinomial_leadingCoeff {R : Type u_1} [Semiring R] {k : ℕ} {m : ℕ} {n : ℕ} {u : R} {v : R} {w : R} (hkm : k < m) (hmn : m < n) (hw : w ≠ 0) :
    theorem Polynomial.trinomial_trailingCoeff {R : Type u_1} [Semiring R] {k : ℕ} {m : ℕ} {n : ℕ} {u : R} {v : R} {w : R} (hkm : k < m) (hmn : m < n) (hu : u ≠ 0) :
    theorem Polynomial.trinomial_monic {R : Type u_1} [Semiring R] {k : ℕ} {m : ℕ} {n : ℕ} {u : R} {v : R} (hkm : k < m) (hmn : m < n) :
    theorem Polynomial.trinomial_mirror {R : Type u_1} [Semiring R] {k : ℕ} {m : ℕ} {n : ℕ} {u : R} {v : R} {w : R} (hkm : k < m) (hmn : m < n) (hu : u ≠ 0) (hw : w ≠ 0) :
    theorem Polynomial.trinomial_support {R : Type u_1} [Semiring R] {k : ℕ} {m : ℕ} {n : ℕ} {u : R} {v : R} {w : R} (hkm : k < m) (hmn : m < n) (hu : u ≠ 0) (hv : v ≠ 0) (hw : w ≠ 0) :
    Polynomial.support (Polynomial.trinomial k m n u v w) = {k, m, n}

    A unit trinomial is a trinomial with unit coefficients.

    Equations
    Instances For
      theorem Polynomial.IsUnitTrinomial.irreducible_aux1 {p : Polynomial ℤ} {k : ℕ} {m : ℕ} {n : ℕ} (hkm : k < m) (hmn : m < n) (u : ℤˣ) (v : ℤˣ) (w : ℤˣ) (hp : p = Polynomial.trinomial k m n ↑u ↑v ↑w) :
      Polynomial.C ↑v * (Polynomial.C ↑u * Polynomial.X ^ (m + n) + Polynomial.C ↑w * Polynomial.X ^ (n - m + k + n)) = { toFinsupp := Finsupp.filter (fun (x : ℕ) => x ∈ Set.Ioo (k + n) (n + n)) (p * Polynomial.mirror p).toFinsupp }
      theorem Polynomial.IsUnitTrinomial.irreducible_aux2 {p : Polynomial ℤ} {q : Polynomial ℤ} {k : ℕ} {m : ℕ} {m' : ℕ} {n : ℕ} (hkm : k < m) (hmn : m < n) (hkm' : k < m') (hmn' : m' < n) (u : ℤˣ) (v : ℤˣ) (w : ℤˣ) (hp : p = Polynomial.trinomial k m n ↑u ↑v ↑w) (hq : q = Polynomial.trinomial k m' n ↑u ↑v ↑w) (h : p * Polynomial.mirror p = q * Polynomial.mirror q) :
      theorem Polynomial.IsUnitTrinomial.irreducible_aux3 {p : Polynomial ℤ} {q : Polynomial ℤ} {k : ℕ} {m : ℕ} {m' : ℕ} {n : ℕ} (hkm : k < m) (hmn : m < n) (hkm' : k < m') (hmn' : m' < n) (u : ℤˣ) (v : ℤˣ) (w : ℤˣ) (x : ℤˣ) (z : ℤˣ) (hp : p = Polynomial.trinomial k m n ↑u ↑v ↑w) (hq : q = Polynomial.trinomial k m' n ↑x ↑v ↑z) (h : p * Polynomial.mirror p = q * Polynomial.mirror q) :

      A unit trinomial is irreducible if it is coprime with its mirror

      A unit trinomial is irreducible if it has no complex roots in common with its mirror