diferente(_,[]).
diferente(E,[C|R]) :- E \= C, diferente(E,R).
minisudoku([A11,A12,B11,B12,A21,A22,B21,B22,C11,C12,D11,D12,C21,C22,D21,D22]) :-
member(A11,[1,2,3,4]), member(A12,[1,2,3,4]), member(B11,[1,2,3,4]), member(B12,[1,2,3,4]),
member(A21,[1,2,3,4]), member(A22,[1,2,3,4]), member(B21,[1,2,3,4]), member(B22,[1,2,3,4]),
member(C11,[1,2,3,4]), member(C12,[1,2,3,4]), member(D11,[1,2,3,4]), member(D12,[1,2,3,4]),
member(C21,[1,2,3,4]), member(C22,[1,2,3,4]), member(D21,[1,2,3,4]), member(D22,[1,2,3,4]),
diferente(A11,[A12,B11,B12]), diferente(A11,[A21,C11,C21]), diferente(A11,[A12,A21,A22]),
diferente(A12,[A11,B11,B12]), diferente(A12,[A22,C12,C22]), diferente(A12,[A11,A21,A22]),
diferente(B11,[A11,A12,B12]), diferente(B11,[B21,D11,D21]), diferente(B11,[B12,B21,B22]),
diferente(B12,[A11,A12,B11]), diferente(B12,[B22,D12,D22]), diferente(B12,[B11,B21,B22]),
diferente(A21,[A22,B21,B22]), diferente(A21,[A11,C11,C21]), diferente(A21,[A11,A12,A22]),
diferente(A22,[A21,B21,B22]), diferente(A22,[A12,C12,C22]), diferente(A22,[A11,A12,A21]),
diferente(B21,[A21,A22,B22]), diferente(B21,[B11,D11,D21]), diferente(B21,[B11,B12,B22]),
diferente(B22,[A21,A22,B21]), diferente(B22,[B12,D12,D22]), diferente(B22,[B11,B12,B21]),
diferente(C11,[C12,D11,D12]), diferente(C11,[A11,A21,C21]), diferente(C11,[C12,C21,C22]),
diferente(C12,[C11,D11,D12]), diferente(C12,[A12,A22,C22]), diferente(C12,[C11,C21,C22]),
diferente(D11,[C11,C12,D12]), diferente(D11,[B11,B21,D21]), diferente(D11,[D12,D21,D22]),
diferente(D12,[C11,C12,D11]), diferente(D12,[B12,B22,D22]), diferente(D12,[D11,D21,D22]),
diferente(C21,[C22,D21,D22]), diferente(C21,[A11,A21,C11]), diferente(C21,[C11,C12,C22]),
diferente(C22,[C21,D21,D22]), diferente(C22,[A12,A22,C12]), diferente(C22,[C11,C12,C21]),
diferente(D21,[C21,C22,D22]), diferente(D21,[B12,B22,D12]), diferente(D21,[D11,D12,D21]),
diferente(D22,[C21,C22,D21]), diferente(D22,[B12,B22,D12]), diferente(D22,[D11,D12,D21]).