Documentation

LeanPool.MarkoffModP.BGS.CorvajaZannier.PlaneCurveDiscriminantBound

A sharp degree bound for a bivariate discriminant #

For a polynomial F in one variable whose coefficients are polynomials of degree at most a, this file proves that the discriminant of F has degree at most (2 * F.natDegree - 2) * a in the coefficient variable. The missing two copies of a relative to the naive Sylvester-determinant estimate come from the constant bottom row in Mathlib's modified Sylvester matrix for the derivative.

This is the algebraic degree estimate needed in the Corvaja--Zannier canonical/divisor calculation.

theorem BGS.CorvajaZannier.natDegree_sylvesterDeriv_apply_le_of_row_ne {K : Type u_1} [Field K] (F : Polynomial (Polynomial K)) (a : ℕ) (hcoeff : ∀ (i : ℕ), (F.coeff i).natDegree ≤ a) (i j : Fin (F.natDegree - 1 + F.natDegree)) (hi : ↑i ≠ 2 * F.natDegree - 2) :
theorem BGS.CorvajaZannier.natDegree_discr_le {K : Type u_1} [Field K] (F : Polynomial (Polynomial K)) (a : ℕ) (hcoeff : ∀ (i : ℕ), (F.coeff i).natDegree ≤ a) :

The discriminant of a degree-b polynomial whose coefficients have degree at most a has degree at most (2 * b - 2) * a.

View a bivariate polynomial as a polynomial in coordinate 1, with ordinary polynomial coefficients in coordinate 0.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem BGS.CorvajaZannier.planeCurvePolynomialInSecondCoordinate_coeff_natDegree_le {K : Type u_1} [Field K] {f : MvPolynomial (Fin 2) K} {firstDegree secondDegree : ℕ} (hdegree : External.HasBidegreeAtMost f firstDegree secondDegree) (i : ℕ) :
    theorem BGS.CorvajaZannier.planeCurvePolynomialInSecondCoordinate_discr_natDegree_le {K : Type u_1} [Field K] {f : MvPolynomial (Fin 2) K} {firstDegree secondDegree : ℕ} (hdegree : External.HasBidegreeAtMost f firstDegree secondDegree) :
    (planeCurvePolynomialInSecondCoordinate f).discr.natDegree ≤ (2 * secondDegree - 2) * firstDegree

    The discriminant in the first coordinate of a plane curve of bidegree at most (firstDegree, secondDegree) has the sharp degree bound (2 * secondDegree - 2) * firstDegree.