Theory of monic polynomials #
We define integralNormalization
, which relate arbitrary polynomials to monic ones.
If f : R[X]
is a nonzero polynomial with root z
, integralNormalization f
is
a monic polynomial with root leadingCoeff f * z
.
Moreover, integralNormalization 0 = 0
.
Equations
Instances For
@[simp]
theorem
Polynomial.integralNormalization_support
{R : Type u}
[Semiring R]
{f : Polynomial R}
:
f.integralNormalization.support ⊆ f.support
theorem
Polynomial.integralNormalization_coeff_degree
{R : Type u}
[Semiring R]
{f : Polynomial R}
{i : ℕ}
(hi : f.degree = ↑i)
:
f.integralNormalization.coeff i = 1
theorem
Polynomial.integralNormalization_coeff_natDegree
{R : Type u}
[Semiring R]
{f : Polynomial R}
(hf : f ≠ 0)
:
f.integralNormalization.coeff f.natDegree = 1
theorem
Polynomial.monic_integralNormalization
{R : Type u}
[Semiring R]
{f : Polynomial R}
(hf : f ≠ 0)
:
f.integralNormalization.Monic
@[simp]
theorem
Polynomial.support_integralNormalization
{R : Type u}
[Ring R]
[IsDomain R]
{f : Polynomial R}
:
f.integralNormalization.support = f.support
theorem
Polynomial.integralNormalization_eval₂_eq_zero
{R : Type u}
{S : Type v}
[CommRing R]
[IsDomain 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 (z * f p.leadingCoeff) p.integralNormalization = 0
theorem
Polynomial.integralNormalization_aeval_eq_zero
{R : Type u}
{S : Type v}
[CommRing R]
[IsDomain 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 (z * (algebraMap R S) f.leadingCoeff)) f.integralNormalization = 0