All MicroEvals
I want a complete, exact, executable computational pipeline ...
Create MicroEval

I want a complete, exact, executable computational pipeline ...

Prompt

I want a complete, exact, executable computational pipeline that builds the normalized two-dimensional Keller–collision coefficient ideal for a given degree bound d, decides it exactly, and terminates in exactly one machine-verified state — (A) explicit F1, F2 ∈ ℚ̄[x,y] and points P ≠ Q with det JF ≡ 1 verified as an exact polynomial identity and F(P) = F(Q) verified exactly; (B) an explicit Nullstellensatz certificate 1 = Σ g_i·h_i verified by exact expansion, proving the searched ansatz contains no such map; or (C) an exact list of which sub-blocks were decided when resources ran out — so that every emitted claim is reproducible from the emitted code and data alone, with no floating-point approximation, no unverified formula, and no placeholder code. 1. CURRENT STATE (reproduce as regression tests; do not present as new results) 1.1 Degree ≤ 3 full non-homogeneous ansatz: collision ideal = (1); certificate exists. 1.2 Homogeneous quartic leading ansatz: unit ideal. 1.3 Hamiltonian ansatz F = (x + H_y, y − H_x) with det Hess H = 0: only triangular automorphisms. 1.4 Rational-map "denominator-cancellation lenses" and finite-field constructions: out of scope (not global polynomial maps over ℂ). 2. UPGRADE SCOPE 2.1 Full non-homogeneous degree-4 ansatz (24 unknowns, 29 equations), then d = 5..8 by block elimination. 2.2 Exported, independently re-verified certificates for every terminal state. 2.3 Structural pre-filters from proven theorems, encoded in code with citations. 2.4 Asymptotic (non-properness) analysis module for concrete candidates. 2.5 The "15-variable linear reduction" (imposing P_x + Q_y ≡ 0) is NOT a reduction of the general problem: combined with the Keller identity it forces P_xQ_y − P_yQ_x ≡ 0, i.e. it is exactly sub-case 1.3. It must not replace the full system. 3. FIXED MATHEMATICAL SETUP 3.1 F1 = x + P(x,y), F2 = y + Q(x,y), P, Q ∈ (x,y)², total degree ≤ d. Unknowns p_ij, q_ij for 2 ≤ i+j ≤ d; N_d = (d+1)(d+2) − 6 unknowns (d = 4: 24). 3.2 Keller polynomial K = P_x + Q_y + P_xQ_y − P_yQ_x, and det JF − 1 = K identically. The constant coefficient of K is identically 0 (assert this). Coefficients of K on all monomials of degree 1..2d−2 give d(2d−1) − 1 equations (d = 4: 27). 3.3 Collision points P0 = (0,0), Q0 = (1,0): C1 = 1 + P(1,0), C2 = Q(1,0). Total equations d(2d−1) + 1 (d = 4: 29). 3.4 I_d = ⟨Keller coefficient equations, C1, C2⟩ ⊂ ℚ[p_ij, q_ij]. 3.5 Normalization proof to record in README: for any Keller map G with G(P) = G(Q), P ≠ Q, pick an affine A with A(0,0) = P, A(1,0) = Q and the affine B(w) = (dG(P)·dA)^{-1}(w − G(P)); then F = B∘G∘A satisfies F(0,0) = F(1,0) = 0, dF(0,0) = I, det JF ≡ 1, hence has the form 3.1. 3.6 Theorems to encode as filters and result labels: (T1) Moh 1983: every Keller map ℂ²→ℂ² of degree ≤ 100 is an automorphism. Hence I_d = (1) for all d ≤ 100. A state-(A) result with d ≤ 100 is a bug: dump the full state and abort. (T2) Nakai–Baba 1977: if deg F1 | deg F2 or deg F2 | deg F1, F is an automorphism. (T2') Appelgate–Onishi 1985: if gcd(deg F1, deg F2) ≤ 8, F is an automorphism. (T3) If deg F1 + deg F2 > 2 then det J(F1_top, F2_top) = 0, so the top forms are F1_top = α·h^a, F2_top = β·h^b for a common form h. (T4) A proper Keller map is an automorphism (finite étale cover of simply connected ℂ²), and an injective polynomial map ℂ²→ℂ² is an automorphism; any counterexample is non-proper and non-injective. 4. SOFTWARE CONTRACT 4.1 Python ≥ 3.10; SymPy for construction and all re-verification. Gröbner bases, lifts, dimension and triangular decomposition delegated to Singular ≥ 4.3 (or Macaulay2) through subprocess with generated scripts and strict output parsing; msolve optional for zero-dimensional systems. Exact rational and algebraic-number arithmetic only. 4.2 Repository, every file complete: keller/model.py, keller/backend_singular.py, keller/certify.py, keller/asymptotics.py, keller/cli.py, tests/test_regression.py, README.md, requirements.txt. No ellipses, TODOs, stubs, mock outputs, or omitted functions. 4.3 Deterministic: variable order p_ij, q_ij sorted by (i+j, i), then auxiliaries; degrevlex; fixed seeds for any specialization. 4.4 Every result returned by the external engine is re-verified by SymPy expansion before it is reported. 5. CONSTRUCTION STEPS, IN ORDER Step 1 model.build_system(d): create symbols; build P, Q, F, J, K = expand(det J − 1); extract coefficients with Poly(K, x, y).terms(); return (equations, unknowns, metadata: monomial, degree block). Assert equation count d(2d−1) + 1 and unknown count N_d. Step 2 model.top_form_branches(d): by (T3), branch on the degree-(2d−2) block: (a) Q_d = c·P_d with new unknown c; (b) P_d = 0, Q_d free. Run both branches and the unbranched full system; assert identical terminal states. Step 3 backend.groebner(equations): reduced Gröbner basis in characteristic 0 (std or slimgb). If the basis is {1} go to Step 4, else Step 5. Step 4 backend.lift_certificate(equations): cofactors g_i with Σ g_i·h_i = 1 via lift/liftstd; export as exact rationals to certificate_d.json with SHA-256; certify.verify_certificate re-expands Σ g_i·h_i in SymPy and asserts == 1. Terminal state (B). Step 5 backend.solve(equations): compute dimension. Zero-dimensional: triangular decomposition, algebraic numbers given by minimal polynomials, candidates built over ℚ(θ). Positive-dimensional: fix free parameters to small rationals, solve the remaining zero-dimensional system exactly, extending to a number field if needed. Every candidate goes to Step 6. Step 6 certify.certify_candidate(F1, F2, P, Q): (a) expand(det J) − 1, reduced modulo the minimal polynomial, is the zero polynomial; (b) independent check: exact evaluation of det J − 1 on the grid {0,…,2d−2}² (deg_x, deg_y ≤ 2d−2, so vanishing on the grid is equivalent to (a)); (c) F(P) − F(Q) = (0,0) exactly; (d) P ≠ Q; (e) degrees ≤ d. All five passing with d ≤ 100 triggers the (T1) bug-abort; with d > 100 it is state (A). Step 7 cli.report: JSON and text: d, ansatz, unknown/equation counts, engine, wall time, terminal state, certificate path and hash, (T1)/(T2)/(T2') labels. 6. ESCALATION AND STRUCTURAL SEARCH 6.1 Run d = 3 (must reproduce 1.1) and d = 4 in full; expected state (B) with certificates. 6.2 d = 5..8: block elimination from the top degree block downward with top-form branching; certificate per completed block; on resource exhaustion emit state (C) listing completed blocks. 6.3 d > 12: do not attempt full-coefficient Gröbner bases; print unknown/equation counts and the (T1) label. Implement degree_pair_filter(m, n) encoding (T2), (T2') and gcd structure, and leading_form_ansatz(m, n, e) with F1_top = h^a, F2_top = β·h^b, deg h = e, m = ae, n = be, as constraint generators applicable only for d > 100. 6.4 asymptotics.jelonek_set(F): homogenize to X, Y, Z; I = ⟨F1^h − u·Z^m, F2^h − v·Z^n⟩ in ℚ[X,Y,Z,u,v]; saturate by Z; add Z; saturate by ⟨X,Y⟩; eliminate X, Y, Z → ideal of the asymptotic set S_F ⊂ ℂ²_{u,v}. S_F = ∅ ⇒ F proper ⇒ automorphism by (T4) ⇒ reject. 6.5 asymptotics.puiseux_tract(m, n, α, β, N, M): branch γ(t) = (t^α Σ_{k≤M} a_k t^{−k/N}, t^β Σ_{k≤M} b_k t^{−k/N}), α, β ∈ ℚ_{>0}, with (a_0 : b_0) a root direction of the common form h; require that F1(γ(t)) and F2(γ(t)) contain no positive fractional powers of t; return the resulting polynomial conditions in (p_ij, q_ij, a_k, b_k) to adjoin to I_d. Label them necessary conditions only; they never replace Step 6. 7. OUTPUT CONTRACT 7.1 State (A): F1, F2 with exact coefficients (ℚ or ℚ(θ) with its minimal polynomial), P, Q, the outputs of Step 6 (a)–(e), and the reproduction command. 7.2 State (B): d, ansatz, Gröbner basis {1}, cofactors (file and hash), SymPy re-verification output True. 7.3 State (C): exact list of decided blocks and their certificates. 7.4 Prohibited: any F1, F2, P, Q that skipped or failed Step 6; approximate coefficients; incomplete code; any claim without an emitted certificate. Send back the complete code with all the fixes. Fix each of the listed errors one by one, making sure to actually correct them so that there are 0 errors remaining. Keep the original imports, since the files exist. Write out every single character; do not abbreviate anything. Fix every error. There must be exactly one file. Do not write anything else; just output the complete code, and it must not contain any comments. Never, under any circumstances, use simplified, substitute, dummy, simulated, or fake code. Write the entire file as complete, unabridged, production-ready code in a single code block. It must be 100% error-free, a complete, error-free file, and must be submitted as a downloadable file. These requirements are mandatory and must be strictly adhered to. If no list of errors is provided, you must find all the errors and fix them. If there were comments in the original code, delete them. And most importantly: YOU MUST NEVER SIMPLIFY!

Drag to resize

Response not available

Drag to resize

Response not available

Drag to resize

Response not available

Drag to resize
Drag to resize