cm_checks.py

back to table · edit · history · where entries came from · files · download

891 bytes, as of the version from 2026-11-02 11:01 (current). Recorded here, not run.

import json
import numberdb.sage as numberdb
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
from sage.rings.rational_field import QQ
from sage.schemes.elliptic_curves.cm import hilbert_class_polynomial
from generate import ITEMS,exact_argument
R=PolynomialRing(QQ,'x')
stored=numberdb.table('T129')['Numbers']
out=[]
for item in ITEMS:
 t=exact_argument(item)
 if item['D'] is None:continue
 j=t*(t+216)**3/(t-27)**3
 D=item['D'];H=hilbert_class_polynomial(D)
 assert H(j)==0,(item['key'],D)
 original=stored[str(D)];original=original.get('number') if isinstance(original,dict) else original
 assert R(original)==H
 out.append({'t':item['key'],'D':D,'interior':bool(-1<t<27),'degree':int(t.minpoly().degree()),'j_minpoly':str(j.minpoly())})
assert len(out)==33 and sum(x['interior'] for x in out)==10
print(json.dumps({'CM_checks':out,'passed':True},indent=2))