Irreducible conjugate-symmetric with equals , nonconstant
ProvedCurveSymmetry.irreducible_anti_radial_formalgebraic-geometrycurve-symmetry-leanfunction-fields
Let be an integer and let be a primitive -th root of unity. Let be an irreducible polynomial of total degree whose coefficients are conjugate-symmetric, for all , and which changes sign under , that is, .
Then there is a polynomial such that
where is obtained from by conjugating its coefficients, and moreover:
- ;
- .
This is the conclusion that the proof of Theorem 1 draws from equation (5): the polynomial is nonconstant, so , and a rotation of order satisfies . The coefficient symmetry is the one of for a real polynomial ; the version for real curves, recorded in the note as equation (5), is obtained from this statement.
Preamble
import Definitions.Def_CurveSymmetry_01_RealLoci import Definitions.Def_CurveSymmetry_02_FamilyBasics import Definitions.Def_CurveSymmetry_05_FamilyFunctionField import Mathlib.Algebra.MvPolynomial.Nilpotent import Mathlib.Algebra.MvPolynomial.NoZeroDivisors import Mathlib.Algebra.Polynomial.FieldDivision import Mathlib.Algebra.Polynomial.Reverse import Mathlib.Analysis.Complex.Isometry import Mathlib.Analysis.Complex.Polynomial.Basic import Mathlib.Analysis.Normed.Affine.MazurUlam import Mathlib.Data.Complex.Basic import Mathlib.RingTheory.MvPolynomial.Homogeneous import Mathlib.RingTheory.MvPolynomial.IrreducibleQuadratic import Mathlib.RingTheory.Polynomial.Eisenstein.Criterion import Mathlib.RingTheory.Polynomial.GaussLemma import Mathlib.RingTheory.RootsOfUnity.Complex import Mathlib.RingTheory.RootsOfUnity.PrimitiveRoots import Mathlib.Tactic open CurveSymmetry set_option autoImplicit false open MvPolynomial
Formal statement
theorem CurveSymmetry.irreducible_anti_radial_form {m : ℕ} (hm : 2 ≤ m) {ζ : ℂ}
(hζ : IsPrimitiveRoot ζ (2 * m)) {P : BPoly} (hirr : Irreducible P)
(hdeg : P.totalDegree < 2 * m) (hanti : rotate ζ P = -P)
(hreal : ∀ a b, P.coeff (exponent b a) = star (P.coeff (exponent a b))) :
∃ A : Polynomial ℂ,
P = (X 0 : BPoly) ^ m * Polynomial.aeval ((X 0 : BPoly) * X 1) A +
(X 1 : BPoly) ^ m * Polynomial.aeval ((X 0 : BPoly) * X 1) (A.map (starRingEnd ℂ)) ∧
1 ≤ A.natDegree ∧ A.natDegree ≤ (P.totalDegree - m) / 2 ∧ m + 2 ≤ P.totalDegree := by sorrySource
C. Perassi, Sharp symmetry bounds for real algebraic curves (note): lemma of the formalization, for proof of Theorem 1, equation (5), p. 3, https://github.com/carlok/curve-symmetry-lean/blob/d99bc17a1c397956c05d7417de50f9beed56580f/sharp_symmetry_bounds.pdf. Lean: https://github.com/carlok/curve-symmetry-lean/blob/d99bc17a1c397956c05d7417de50f9beed56580f/lean/RadialAntiForm.lean (C. Perassi)