Documentation

Ratpoints.Mathlib.Algebra.Polynomial.Homogenize

Squarefree homogenizations and the reflection #

Candidates for Mathlib.Algebra.Polynomial.Homogenize: when the homogenization of a polynomial is squarefree, and the homogenization of its reflection.

Main statements #

Proof #

For n ≥ p.natDegree + 2, X 1 ^ 2 divides the homogenization (Polynomial.homogenize_eq_homogenize_natDegree_mul), and if a * a divides p, the square of the homogenization of a divides it (Polynomial.squarefree_of_squarefree_homogenize). Conversely, let A * A divide the homogenization for n ≤ p.natDegree + 1: then A is homogeneous (MvPolynomial.IsHomogeneous.of_mul_left), X 1 does not divide it, since X 1 ^ (n - p.natDegree) is the largest power of X 1 that divides the homogenization (Polynomial.not_X_one_dvd_homogenize_natDegree), and the square of its value at (X, 1) divides p, so that this value is a unit; hence A is a unit. The reflection compares the coefficients of the two homogenizations, and the exchange of the variables is a ring automorphism, which preserves squarefreeness (MulEquiv.squarefree_iff). Mathlib's file does not import squarefreeness.

For n ≥ p.natDegree, the homogenization of degree n of p is that of degree p.natDegree times the power n - p.natDegree of the second variable.

The second variable does not divide the homogenization of degree p.natDegree of a polynomial p ≠ 0: the coefficient of X 0 ^ p.natDegree there is the leading coefficient of p, while every multiple of X 1 has the coefficient 0 there.

A polynomial over a commutative semiring without zero divisors is squarefree if some homogenization of it is, of degree n ≥ p.natDegree.

The homogenization of degree n of the reflection of p in degree n is that of p with the two variables exchanged, for every p and n: both see only the coefficients of p up to n.

The homogenization of degree n ≥ p.natDegree of a polynomial p over a domain is squarefree if and only if p is squarefree and n exceeds the degree of p by at most one; for larger n, X 1 ^ 2 divides it.

For n ≥ p.natDegree, the homogenization of degree n of a polynomial p over a domain is squarefree exactly when the reflection of p in degree n is, if n exceeds the degree of the reflection by at most one: the homogenization of degree n of the reflection is that of p with the variables exchanged (Polynomial.homogenize_reflect).