Theory of monic polynomials #
We define integralNormalization
, which relate arbitrary polynomials to monic ones.
If p : R[X]
is a nonzero polynomial with root z
, integralNormalization p
is
a monic polynomial with root leadingCoeff f * z
.
Moreover, integralNormalization 0 = 0
.
Equations
Instances For
@[simp]
theorem
Polynomial.support_integralNormalization_subset
{R : Type u}
[Semiring R]
{p : Polynomial R}
:
p.integralNormalization.support ⊆ p.support
@[deprecated Polynomial.support_integralNormalization_subset]
theorem
Polynomial.integralNormalization_support
{R : Type u}
[Semiring R]
{p : Polynomial R}
:
p.integralNormalization.support ⊆ p.support
theorem
Polynomial.integralNormalization_coeff_degree
{R : Type u}
[Semiring R]
{p : Polynomial R}
{i : ℕ}
(hi : p.degree = ↑i)
:
p.integralNormalization.coeff i = 1
theorem
Polynomial.integralNormalization_coeff_natDegree
{R : Type u}
[Semiring R]
{p : Polynomial R}
(hp : p ≠ 0)
:
p.integralNormalization.coeff p.natDegree = 1
theorem
Polynomial.monic_integralNormalization
{R : Type u}
[Semiring R]
{p : Polynomial R}
(hp : p ≠ 0)
:
p.integralNormalization.Monic
theorem
Polynomial.integralNormalization_mul_C_leadingCoeff
{R : Type u}
[Semiring R]
(p : Polynomial R)
:
theorem
Polynomial.integralNormalization_degree
{R : Type u}
[Semiring R]
{p : Polynomial R}
:
p.integralNormalization.degree = p.degree
theorem
Polynomial.leadingCoeff_smul_integralNormalization
{S : Type v}
[CommSemiring S]
(p : Polynomial S)
:
theorem
Polynomial.integralNormalization_eval₂_leadingCoeff_mul
{R : Type u}
{S : Type v}
[Semiring R]
{p : Polynomial R}
[CommSemiring S]
(h : 1 ≤ p.natDegree)
(f : R →+* S)
(x : S)
:
Polynomial.eval₂ f (f p.leadingCoeff * x) p.integralNormalization = f p.leadingCoeff ^ (p.natDegree - 1) * Polynomial.eval₂ f x p
theorem
Polynomial.integralNormalization_eval₂_eq_zero
{R : Type u}
{S : Type v}
[Semiring R]
[CommSemiring S]
{p : Polynomial R}
(f : R →+* S)
{z : S}
(hz : Polynomial.eval₂ f z p = 0)
(inj : ∀ (x : R), f x = 0 → x = 0)
:
Polynomial.eval₂ f (f p.leadingCoeff * z) p.integralNormalization = 0
theorem
Polynomial.integralNormalization_aeval_eq_zero
{R : Type u}
{S : Type v}
[CommSemiring R]
[CommSemiring S]
[Algebra R S]
{f : Polynomial R}
{z : S}
(hz : (Polynomial.aeval z) f = 0)
(inj : ∀ (x : R), (algebraMap R S) x = 0 → x = 0)
:
(Polynomial.aeval ((algebraMap R S) f.leadingCoeff * z)) f.integralNormalization = 0
@[simp]
theorem
Polynomial.support_integralNormalization
{R : Type u}
[Semiring R]
[IsCancelMulZero R]
{f : Polynomial R}
:
f.integralNormalization.support = f.support