Resultant of two polynomials #
This file contains basic facts about resultant of two polynomials over commutative rings.
Main definitions #
Polynomial.resultant
: The resultant of two polynomialsp
andq
is defined as the determinant of the Sylvester matrix ofp
andq
.
TODO #
- The eventual goal is to prove the following property:
resultant (∏ a ∈ s, (X - C a)) f = ∏ a ∈ s, f.eval a
. This allows us to write theresultant f g
as the product of terms of the forma - b
wherea
is a root off
andb
is a root ofg
. - A smaller intermediate goal is to show that the Sylvester matrix corresponds to the linear map
that we will call the Sylvester map, which is
R[X]_n × R[X]_m →ₗ[R] R[X]_(n + m)
given by(p, q) ↦ f * p + g * q
, whereR[X]_n
isPolynomial.degreeLT
inMathlib.RingTheory.Polynomial.Basic
. - Resultant of two binary forms (i.e. homogeneous polynomials in two variables), after binary forms are implemented.
The Sylvester matrix of two polynomials f
and g
of degrees m
and n
respectively is a
(n+m) × (n+m)
matrix with the coefficients of f
and g
arranged in a specific way. Here, m
and n
are free variables, not necessarily equal to the actual degrees of the polynomials f
and
g
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
def
Polynomial.resultant
{R : Type u}
[CommRing R]
(f g : Polynomial R)
(m : ℕ := f.natDegree)
(n : ℕ := g.natDegree)
:
R
The resultant of two polynomials f
and g
is the determinant of the Sylvester matrix of f
and g
. The size arguments m
and n
are implemented as optParam
, meaning that the default
values are f.natDegree
and g.natDegree
respectively, but they can also be specified to be
other values.
Instances For
@[simp]
theorem
Polynomial.resultant_C_zero_right
{R : Type u}
[CommRing R]
(f : Polynomial R)
(m : ℕ)
(a : R)
:
For polynomial f
and constant a
, Res(f, a) = a ^ m
.
For polynomial f
and constant a
, Res(f, a) = a ^ m
.