python3 - <<'EOF' import random def det(A): n=len(A) A=[list(r) for r in A] for c in range(n): p=next((r for r in range(c,n) if A[r][c]),None) if p is None:return 0 A[c],A[p]=A[p],A[c] for r in range(c+1,n): if A[r][c]:A[r]=[x^y for x,y in zip(A[r],A[c])] return 1 for trial in range(1000): M=[[0]*6 for _ in range(6)] for i in range(6): M[i][i]=random.randrange(2) for j in range(i+1,6): M[i][j]=M[j][i]=random.randrange(2) if not any(M[i][i] for i in range(6)):continue if not det(M):continue v=[M[i][i] for i in range(6)] p=sum(v)%2 x=1^p one=[sum(M[i][j] for j in range(6))%2 for i in range(6)] w=[x*v[i]^one[i] for i in range(6)] C=[[0]*8 for _ in range(8)] C[0][0]=C[1][1]=1 C[0][1]=C[1][0]=p for i in range(6): C[0][i+2]=C[i+2][0]=v[i] C[1][i+2]=C[i+2][1]=w[i] for j in range(6): C[i+2][j+2]=M[i][j]^(v[i]&v[j]) D=[[C[i][j]^(i==j) for j in range(8)] for i in range(8)] E=[[0]*8 for _ in range(8)] E[0][1]=E[1][0]=p for i in range(6): E[0][i+2]=E[i+2][0]=v[i] E[1][i+2]=E[i+2][1]=w[i] for j in range(6): E[i+2][j+2]=M[i][j]^(v[i]&v[j])^(i==j) if D!=E:print('matrix mismatch') dd=det(D) if dd!=det(E):print('det mismatch') print('done') EOF