``` import Mathlib abbrev Poly := MvPolynomial (Fin 2) ℂ ab...
Prompt
``` import Mathlib abbrev Poly := MvPolynomial (Fin 2) ℂ abbrev Point := Fin 2 → ℂ abbrev FunctionField := FractionRing Poly def origin : Point := fun _ => 0 def xPoly : Poly := MvPolynomial.X (0 : Fin 2) def yPoly : Poly := MvPolynomial.X (1 : Fin 2) def split_at (n : Nat) (L : List Poly) : List Poly × List Poly := match n with | 0 => ([], L) | Nat.succ k => match L with | [] => ([], []) | x :: xs => let (l1, l2) := split_at k xs (x :: l1, l2) def forwardCore (scale : ℂ) (dim : Nat) (L : List Poly) : List Poly := let g1 := (split_at dim L).1 let g2 := (split_at dim L).2 let h1 := List.zipWith (fun P Q => (P + Q) * MvPolynomial.C scale) g1 g2 let h2 := List.zipWith (fun P Q => (Q - P) * MvPolynomial.C scale) g1 g2 h1 ++ h2 def ValidDim (dim : Nat) : Prop := dim > 0 ∧ dim ≤ 18446744073709551615 / 2 def transform_precondition (dim : Nat) (L : List Poly) : Prop := ValidDim dim ∧ L.length = dim + dim def mixForwardCore (scale : ℂ) (dim : Nat) (L : List Poly) (_ : transform_precondition dim L) : List Poly := forwardCore scale dim L theorem forwardCore_on_pair (scale : ℂ) (P Q : Poly) : forwardCore scale 1 [P, Q] = [(P + Q) * MvPolynomial.C scale, (Q - P) * MvPolynomial.C scale] := by rfl theorem forwardCore_not_injective_on_unrestricted_lists (scale : ℂ) : ∃ L1 L2 : List Poly, L1 ≠ L2 ∧ forwardCore scale 1 L1 = forwardCore scale 1 L2 := by refine ⟨[0], [1], ?, ?⟩ · intro h cases h exact zero_ne_one rfl · rfl def HasAlgebraicCoefficients (P : Poly) : Prop := ∀ e ∈ P.support, IsAlgebraic ℚ (MvPolynomial.coeff e P) structure DivisibilityCertificate where divisor : Poly dividend : Poly quotient : Poly factorization : dividend = divisor * quotient def IsCompositeNat (n : Nat) : Prop := 1 < n ∧ ¬ Nat.Prime n def evalPair (P Q : Poly) (z : Point) : Point := fun i => if i = 0 then MvPolynomial.eval z P else MvPolynomial.eval z Q def HasPolynomialInverse (P Q : Poly) : Prop := ∃ R S : Poly, (∀ z : Point, evalPair R S (evalPair P Q z) = z) ∧ (∀ z : Point, evalPair P Q (evalPair R S z) = z) def InjectiveOnC2 (P Q : Poly) : Prop := Function.Injective (evalPair P Q) def jacobianDet (P Q : Poly) : Poly := MvPolynomial.pderiv (0 : Fin 2) P * MvPolynomial.pderiv (1 : Fin 2) Q - MvPolynomial.pderiv (1 : Fin 2) P * MvPolynomial.pderiv (0 : Fin 2) Q def jacobianAtOrigin (P Q : Poly) : Matrix (Fin 2) (Fin 2) ℂ := fun i j => MvPolynomial.eval origin (if i = 0 then if j = 0 then MvPolynomial.pderiv (0 : Fin 2) P else MvPolynomial.pderiv (1 : Fin 2) P else if j = 0 then MvPolynomial.pderiv (0 : Fin 2) Q else MvPolynomial.pderiv (1 : Fin 2) Q) def IsProperMap (F : Point → Point) : Prop := Continuous F ∧ ∀ s : Set Point, IsCompact s → IsCompact (F ⁻¹' s) def ProperAt (F : Point → Point) (y : Point) : Prop := ∃ U : Set Point, IsOpen U ∧ y ∈ U ∧ ∀ s : Set Point, IsCompact s → s ⊆ U → IsCompact (F ⁻¹' s) def JelonekSet (P Q : Poly) : Set Point := {y | ¬ ProperAt (evalPair P Q) y} def zeroLocus (p : Poly) : Set Point := {z | MvPolynomial.eval z p = 0} def IsIrreducibleCurveComponent (C S : Set Point) : Prop := ∃ f : Poly, Irreducible f ∧ C = zeroLocus f ∧ C ⊆ S ∧ ∀ g : Poly, Irreducible g → zeroLocus g ⊆ S → C ⊆ zeroLocus g → zeroLocus g ⊆ C def polynomialCurveParam (u v : Polynomial ℂ) (t : ℂ) : Point := fun i => if i = 0 then u.eval t else v.eval t def CUniruled (S : Set Point) : Prop := ∃ u v : Polynomial ℂ, DenseRange (polynomialCurveParam u v) ∧ Set.range (polynomialCurveParam u v) ⊆ S def generatedSubfield (P Q : Poly) : IntermediateField ℂ FunctionField := IntermediateField.adjoin ℂ {algebraMap Poly FunctionField P, algebraMap Poly FunctionField Q} def functionFieldDegree (P Q : Poly) : Nat := Module.finrank (generatedSubfield P Q) FunctionField def IsBirationalPolynomialMap (P Q : Poly) : Prop := FiniteDimensional (generatedSubfield P Q) FunctionField ∧ functionFieldDegree P Q = 1 def GeneratesFullPolynomialRing (P Q : Poly) : Prop := Algebra.adjoin ℂ ({P, Q} : Set Poly) = ⊤ def AllMapProperties (P Q : Poly) : Prop := InjectiveOnC2 P Q ∧ IsBirationalPolynomialMap P Q ∧ IsProperMap (evalPair P Q) ∧ GeneratesFullPolynomialRing P Q def exponentTotalDegree (e : Fin 2 →₀ ℕ) : ℕ := e.sum fun _ n => n def leadingHomogeneous (p : Poly) : Poly := ∑ e in p.support.filter (fun e => exponentTotalDegree e = p.totalDegree), MvPolynomial.monomial e (MvPolynomial.coeff e p) def exponentPoint (e : Fin 2 →₀ ℕ) : Fin 2 → ℝ := fun i => (e i : ℝ) def NewtonPolygon (p : Poly) : Set (Fin 2 → ℝ) := convexHull ℝ (exponentPoint '' (p.support : Set (Fin 2 →₀ ℕ))) structure PlaceAtInfinity where value : Poly → WithTop ℤ value_zero : value 0 = ⊤ value_one : value 1 = 0 value_mul : ∀ p q, value (p * q) = value p + value q value_add : ∀ p q, value (p + q) ≥ min (value p) (value q) value_nonzero_constant : ∀ c : ℂ, c ≠ 0 → value (MvPolynomial.C c) = 0 centered_at_infinity : ∃ p : Poly, value p < 0 structure CompactificationAtInfinity where boundaryPlaces : Set PlaceAtInfinity def IsProperlyCertifiedAtInfinity (C : CompactificationAtInfinity) : Prop := ∀ v ∈ C.boundaryPlaces, v.centered_at_infinity structure PolynomialMapData where P : Poly Q : Poly hP_algebraic_coefficients : HasAlgebraicCoefficients P hQ_algebraic_coefficients : HasAlgebraicCoefficients Q divisibilityCertificates : List DivisibilityCertificate h_gcd_degree_ge_16 : 16 ≤ Nat.gcd P.totalDegree Q.totalDegree h_gcd_degree_composite : IsCompositeNat (Nat.gcd P.totalDegree Q.totalDegree) h_moh_total_degree_gt_100 : 100 < max P.totalDegree Q.totalDegree h_function_field_finite : FiniteDimensional (generatedSubfield P Q) FunctionField h_extension_degree_ge_5 : 5 ≤ functionFieldDegree P Q h_extension_degree_ne_two : functionFieldDegree P Q ≠ 2 h_extension_degree_ne_three : functionFieldDegree P Q ≠ 3 h_extension_degree_ne_four : functionFieldDegree P Q ≠ 4 compactification : CompactificationAtInfinity h_compactification_boundary_is_at_infinity : IsProperlyCertifiedAtInfinity compactification h_jelonek_components_C_uniruled : ∀ C : Set Point, IsIrreducibleCurveComponent C (JelonekSet P Q) → CUniruled C h_origin_fixed : evalPair P Q origin = origin h_jacobian_at_origin_is_identity : jacobianAtOrigin P Q = 1 h_jacobian_determinant_is_one : jacobianDet P Q = MvPolynomial.C 1 h_no_polynomial_inverse : ¬ HasPolynomialInverse P Q h_inverse_iff_all_map_properties : HasPolynomialInverse P Q ↔ AllMapProperties P Q theorem no_inverse_implies_some_map_property_fails (D : PolynomialMapData) : ¬ InjectiveOnC2 D.P D.Q ∨ ¬ IsBirationalPolynomialMap D.P D.Q ∨ ¬ IsProperMap (evalPair D.P D.Q) ∨ ¬ GeneratesFullPolynomialRing D.P D.Q := by classical by_contra h push_neg at h exact D.h_no_polynomial_inverse (D.h_inverse_iff_all_map_properties.mpr h) ez a lenyeg ezt extraktáld: 1. P, Q ∈ ℂ[x, y] are polynomials (finitely many terms, no roots, negative exponents, exp, log, fractions, or power series). 2. Coefficients lie in a field of characteristic 0 (ℂ, ℝ, ℚ, ℚ̄). 3. det J_F = P_x Q_y − P_y Q_x ≡ c ≠ 0 as a polynomial identity over ℂ (not merely nonvanishing on ℝ²). 4. F has no polynomial inverse; equivalently, at least one of the following fails: F injective on ℂ², F birational, F proper, ℂ[P, Q] = ℂ[x, y]. 5. deg P ∤ deg Q and deg Q ∤ deg P. 6. gcd(deg P, deg Q) ≠ 1, not prime, and ≥ 16. 7. Neither P nor Q has only one place at infinity. 8. Topological degree d = [ℂ(x, y) : ℂ(P, Q)] ≥ 2; d = 2 excluded; d ≥ 4 (Domrina–Orevkov). 9. Non-proper set S_F ⊂ ℂ² is a nonempty curve with ℂ-uniruled components. 10. Leading homogeneous forms of P and Q are scalar multiples of powers of a common form; Newton polygons satisfy Abhyankar–Moh–Heitmann constraints. 11. WLOG: F(0,0) = (0,0), J_F(0) = I, det J_F ≡ 1, coefficients in ℚ̄. 12. Proof of non-invertibility: explicit (x₁, y₁) ≠ (x₂, y₂) ∈ ℂ² with F(x₁, y₁) = F(x₂, y₂), or proof of non-birationality/non-properness. 13. Independent symbolic verification (e.g. Gröbner basis of P = a, Q = b). a kód teljes matematikai kepletet írd lr semmi mast ne Read it letter by letter, line by line, from beginning to end—you need to understand and remember every little detail! Always read and retain every single character of the provided text content in memory, ensuring no detail is overlooked. szöveg nem lehet benne hasznald a code executiont de ne kod meg ilyenek hanem csak sima matematika ```
Response not available