Irreducible polynomials whose real loci correspond under generate the same ideal after substitution
ProvedCurveSymmetry.similarity_span_eqFor a polynomial , let be its real locus in the complex coordinates , . For a real polynomial rewritten in these coordinates, is the zero set of in .
Let be irreducible polynomials whose real loci and are infinite. Let with , and suppose that the similarity maps onto , that is, . Let be the automorphism of the -algebra given by , the substitution of in these coordinates. Then the ideal generated by is the image under of the ideal generated by :
Equivalently, is a nonzero constant multiple of .
In the check of Remark 5 this is how a similarity between real loci yields an isomorphism of the coordinate rings , hence of the function fields, to which the invariance of the genus applies.
Formalization Note: is MvPolynomial (Fin 2) ℂ and is a subset of ; the right-hand side is the image (Ideal.map) of the ideal under .
import Definitions.Def_CurveSymmetry_01_RealLoci import Definitions.Def_CurveSymmetry_02_FamilyBasics import Definitions.Def_CurveSymmetry_03_IsometriesAndCharts import Definitions.Def_CurveSymmetry_05_FamilyFunctionField import Definitions.Def_CurveSymmetry_06_QuadraticRing import Definitions.Def_CurveSymmetry_07_Places import Definitions.Def_CurveSymmetry_08_Differentials import Definitions.Def_CurveSymmetry_09_Genus import Definitions.Def_CurveSymmetry_10_KummerField import Mathlib.Algebra.MvPolynomial.Nilpotent import Mathlib.Algebra.MvPolynomial.NoZeroDivisors import Mathlib.Algebra.MvPolynomial.PDeriv import Mathlib.Algebra.Polynomial.FieldDivision import Mathlib.Algebra.Polynomial.Reverse import Mathlib.Algebra.Polynomial.SpecificDegree import Mathlib.Analysis.Complex.Isometry import Mathlib.Analysis.Complex.OperatorNorm import Mathlib.Analysis.Complex.Polynomial.Basic import Mathlib.Analysis.Normed.Affine.MazurUlam import Mathlib.Data.Complex.Basic import Mathlib.FieldTheory.RatFunc.Basic import Mathlib.FieldTheory.Separable import Mathlib.LinearAlgebra.Basis.Basic import Mathlib.LinearAlgebra.Dimension.Finrank import Mathlib.LinearAlgebra.FiniteDimensional.Defs import Mathlib.LinearAlgebra.TensorProduct.Basis import Mathlib.RingTheory.AdjoinRoot import Mathlib.RingTheory.DedekindDomain.Dvr import Mathlib.RingTheory.DiscreteValuationRing.TFAE import Mathlib.RingTheory.Etale.Field import Mathlib.RingTheory.Etale.Kaehler import Mathlib.RingTheory.Kaehler.Basic import Mathlib.RingTheory.Kaehler.Polynomial import Mathlib.RingTheory.LocalRing.MaximalIdeal.Basic import Mathlib.RingTheory.LocalRing.Module import Mathlib.RingTheory.Localization.AsSubring import Mathlib.RingTheory.MvPolynomial.Homogeneous import Mathlib.RingTheory.MvPolynomial.IrreducibleQuadratic import Mathlib.RingTheory.Nakayama import Mathlib.RingTheory.Polynomial.Eisenstein.Criterion import Mathlib.RingTheory.Polynomial.GaussLemma import Mathlib.RingTheory.RootsOfUnity.Complex import Mathlib.RingTheory.RootsOfUnity.PrimitiveRoots import Mathlib.RingTheory.Spectrum.Maximal.Localization import Mathlib.RingTheory.Valuation.ValuationSubring import Mathlib.Tactic open CurveSymmetry set_option autoImplicit false open Polynomial
theorem CurveSymmetry.similarity_span_eq {P Q : BPoly} (hP : Irreducible P) (hQ : Irreducible Q)
(hPinf : (realLocus P).Infinite) (hQinf : (realLocus Q).Infinite) {a b : ℂ} (ha : a ≠ 0)
(h : (fun z : ℂ => a * z + b) '' realLocus Q = realLocus P) :
Ideal.span {P} =
(Ideal.span {Q}).map ((simPullEquiv a b ha).symm : BPoly →+* BPoly) := by sorry