blam([]). blam([L|L]) :- blam(L). id2([], []). id2([L1|R1], [L2|R2]) :- id2(L1,L2), L1 = L2, id2(R1,R2), R1 = R2. id3([], []). id3([L1|R1], [L2|R2]) :- id3(L1,L2), L1 = L2, id3(R1,R2), R1 = R2, L1 = R1. run(N) :- length(L,N), \+ ( blam(L), id2(L,R), L \== R ). run3(N) :- length(L,N), \+ ( blam(L), id3(L,R), L \== R ).