Theory of univariate polynomials #
We prove basic results about univariate polynomials.
theorem Polynomial.smul_divByMonic {R : Type u} [CommRing R] {q : Polynomial R} (c : R) (p : Polynomial R) :
theorem Polynomial.smul_modByMonic {R : Type u} [CommRing R] {q : Polynomial R} (c : R) (p : Polynomial R) :
_ /ₘ q as an R-linear map.
Equations
- q.divByMonicHom = { toFun := fun (p : Polynomial R) => p /ₘ q, map_add' := ⋯, map_smul' := ⋯ }
Instances For
@[simp]
theorem Polynomial.mem_ker_divByMonic {R : Type u} [CommRing R] {q : Polynomial R} [Nontrivial R] (hq : q.Monic) {p : Polynomial R} :
_ %ₘ q as an R-linear map.
Equations
- q.modByMonicHom = { toFun := fun (p : Polynomial R) => p %ₘ q, map_add' := ⋯, map_smul' := ⋯ }
Instances For
@[simp]
theorem Polynomial.mem_ker_modByMonic {R : Type u} [CommRing R] {q : Polynomial R} (hq : q.Monic) {p : Polynomial R} :
theorem Polynomial.trailingDegree_mul {R : Type u} [Semiring R] [NoZeroDivisors R] {p q : Polynomial R} :
theorem Polynomial.rootMultiplicity_eq_rootMultiplicity {R : Type u} [CommRing R] {p : Polynomial R} {t : R} :
theorem Polynomial.rootMultiplicity_eq_natTrailingDegree {R : Type u} [CommRing R] {p : Polynomial R} {t : R} :
See Polynomial.rootMultiplicity_eq_natTrailingDegree' for the special case of t = 0.
theorem Polynomial.Monic.mem_nonZeroDivisors {R : Type u} [CommRing R] {p : Polynomial R} (h : p.Monic) :
theorem Polynomial.mem_nonZeroDivisors_of_leadingCoeff {R : Type u} [CommRing R] {p : Polynomial R} (h : p.leadingCoeff ∈ nonZeroDivisors R) :
theorem Polynomial.mem_nonZeroDivisors_of_trailingCoeff {R : Type u} [CommRing R] {p : Polynomial R} (h : p.trailingCoeff ∈ nonZeroDivisors R) :
theorem Irreducible.aeval_ne_zero_of_natDegree_ne_one {R : Type u} {S : Type v} [CommRing R] [IsDomain R] [Ring S] [Algebra R S] [FaithfulSMul R S] {p : Polynomial R} (hp : Irreducible p) (hdeg : p.natDegree ≠ 1) {x : S} (hx : x ∈ (algebraMap R S).range) :
theorem Polynomial.natDegree_pos_of_monic_of_aeval_eq_zero {R : Type u} {S : Type v} [CommRing R] [Nontrivial R] [Semiring S] [Algebra R S] [FaithfulSMul R S] {p : Polynomial R} (hp : p.Monic) {x : S} (hx : (aeval x) p = 0) :
theorem Polynomial.rootMultiplicity_mul_X_sub_C_pow {R : Type u} [CommRing R] {p : Polynomial R} {a : R} {n : ℕ} (h : p ≠ 0) :
theorem Polynomial.rootMultiplicity_X_sub_C_pow {R : Type u} [CommRing R] [Nontrivial R] (a : R) (n : ℕ) :
The multiplicity of a as root of (X - a) ^ n is n.
theorem Polynomial.rootMultiplicity_X_sub_C {R : Type u} [CommRing R] [Nontrivial R] [DecidableEq R] {x y : R} :
theorem Polynomial.rootMultiplicity_comp_C_mul_X_add_C {R : Type u} [CommRing R] (p : Polynomial R) (a b c : R) (ha : IsUnit a) :
theorem Polynomial.rootMultiplicity_mul' {R : Type u} [CommRing R] {p q : Polynomial R} {x : R} (hpq : eval x (p /ₘ (X - C x) ^ rootMultiplicity x p) * eval x (q /ₘ (X - C x) ^ rootMultiplicity x q) ≠ 0) :
theorem Polynomial.degree_eq_degree_of_associated {R : Type u} [CommRing R] [IsDomain R] {p q : Polynomial R} (h : Associated p q) :
theorem Polynomial.Monic.prime_of_degree_eq_one {R : Type u} [CommRing R] [IsDomain R] {p : Polynomial R} (hp1 : p.degree = 1) (hm : p.Monic) :
Prime p
theorem Polynomial.irreducible_X_sub_C {R : Type u} [CommRing R] [IsDomain R] (r : R) :
Irreducible (X - C r)
theorem Polynomial.Monic.irreducible_of_degree_eq_one {R : Type u} [CommRing R] [IsDomain R] {p : Polynomial R} (hp1 : p.degree = 1) (hm : p.Monic) :
theorem Polynomial.irreducible_of_degree_eq_one_of_isRelPrime_coeff {R : Type u} [CommRing R] [IsDomain R] {p : Polynomial R} (hp : p.degree = 1) (hc : IsRelPrime (p.coeff 0) (p.coeff 1)) :
A degree 1 polynomial C a * X + C b is irreducible
if a, b are relatively prime.
theorem Polynomial.irreducible_C_mul_X_add_C {R : Type u} [CommRing R] [IsDomain R] {a b : R} (ha : a ≠ 0) (hab : IsRelPrime a b) :
theorem Polynomial.aeval_ne_zero_of_isCoprime {S : Type v} {R : Type u_1} [CommSemiring R] [Nontrivial S] [Semiring S] [Algebra R S] {p q : Polynomial R} (h : IsCoprime p q) (s : S) :
theorem Polynomial.pairwise_coprime_X_sub_C {K : Type u_1} [Field K] {I : Type v} {s : I → K} (H : Function.Injective s) :
theorem Polynomial.rootMultiplicity_mul {R : Type u} [CommRing R] [IsDomain R] {p q : Polynomial R} {x : R} (hpq : p * q ≠ 0) :
theorem Polynomial.exists_multiset_roots {R : Type u} [CommRing R] [IsDomain R] [DecidableEq R] {p : Polynomial R} :
p ≠ 0 → ∃ (s : Multiset R), ↑s.card ≤ p.degree ∧ ∀ (a : R), Multiset.count a s = rootMultiplicity a p