with(linalg); st:={}: L:=4: for i from 0 to L-1 do for j from i+1 to L do st:=st union {[i,j]}: od: od: H:=array(1..nops(st),1..nops(st),sparse); for i from 1 to nops(st) do for j from 1 to nops(st) do rr:=st[j]: ll:=st[i]; x1r:=rr[1]: x2r:=rr[2]: x1l:=ll[1]: x2l:=ll[2]: if (x1r=x1l) then if abs(x2r-x2l)=1 then H[i,j]:=1: else H[i,j]:=0: fi: elif (x2r=x2l) then if abs(x1r-x1l)=1 then H[i,j]:=1: else H[i,j]:=0: fi: else H[i,j]:=0: fi: od: od: eigenvals(H);