Lemma 3 (sign clause): for every , and if reverses orientation
ProvedCurveSymmetry.paper_isometry_signLet be irreducible in and of total degree at least . Identify with and write for . Let be the real zero set, assumed infinite, and let be the group of isometries of the Euclidean plane with for every . Let .
Then there is a real number such that
and whenever reverses orientation, that is, whenever there are with for all .
This is the sign clause of Lemma 3 of the note: with , and if is a reflection. Here the last condition is stated for every orientation-reversing symmetry; each of these fixes a point and is therefore a reflection in a line. The finiteness of and the cyclicity of its direct subgroup, also in Lemma 3, are not part of this statement, and the note's standing assumption that is not a circle is not needed.
Formalization Note: is a real polynomial evaluated at ; irreducibility in is irreducibility of the image of under , and is the subgroup of the isometries ℂ ≃ᵢ ℂ preserving .
import Definitions.Def_CurveSymmetry_01_RealLoci import Definitions.Def_CurveSymmetry_02_FamilyBasics 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
theorem CurveSymmetry.paper_isometry_sign {f : RPoly} (hf : GeometricallyIrreducible f)
(hd : 2 ≤ f.totalDegree) (hinf : (cartesianLocus f).Infinite)
(T : isometrySetGroup (cartesianLocus f)) :
∃ ε : ℝ, (ε = 1 ∨ ε = -1) ∧
(∀ z : ℂ, eval (fun i : Fin 2 => if i = 0 then (T.val z).re else (T.val z).im) f =
ε * eval (fun i : Fin 2 => if i = 0 then z.re else z.im) f) ∧
((∃ a b : ℂ, ∀ z : ℂ, T.val z = a * star z + b) → ε = 1) := by sorryConfirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.