:- style_check( all ). :- use_module(library(gecode/clpfd)). :- use_module(library(maplist)). t0 :- test0(X), writeln(X). test0(X) :- X in 1..10, X #= 2. t1 :- test1(X), writeln(X), fail. t1. test1(X) :- X in 1..10, Y in 3..7, Z in 1..4, X / Y #= Z, labeling([], [X]). t2 :- test2(X), writeln(X), fail. t2. test2(X) :- X in 1..10, X / 4 #= 2, labeling([], [X]). t3 :- test3(X), writeln(X), fail. t3. test3(A) :- A = [X,Y,Z], A ins 1..4, Y #> 2, lex_chain(A), all_different(A), labeling([], [X,Y,Z]). t4 :- test4(X), writeln(X), fail. t4. test4(A) :- A = [X,Y,Z], A ins 1..4, Y #> 2, Z #> 3, lex_chain(A), min(A, 1), all_different(A), labeling([], [X,Y,Z]). t5 :- test5(X), writeln(X), fail. t5. test5(A) :- A = [X,_Y,_Z], A ins 0..1, in_relation( A, [[0,0,0],[0,1,0],[1,0,0]] ), X #> 0, labeling([], A). t6 :- test6(X), writeln(X), fail. t6. test6(A+B) :- A = [X,_Y,_Z], B = [X1,Y1,Z1], A ins 0..1, B ins 0..1, extensional_constraint([[0,0,0],[0,1,0],[1,0,0]], C), in_relation( A, C ), in_relation( B, C ), X #> 0, X1 #< X, Y1 #\= Z1, labeling([], A), labeling([], B). t7 :- test7(X), writeln(X), fail. t7. test7(A) :- A = [X,_Y,_Z], A ins 0..1, in_dfa( A, 0, [t(0,0,0),t(0,1,1),t(1,0,0),t(-1,0,0)], [0]), X #> 0, labeling([], A). t8 :- test8(X), writeln(X), fail. t8. test8(A+B) :- A = [X,_Y,_Z,_W], B = [X1,Y1,Z1,_W1], A ins 0..1, B ins 0..1, dfa( 0, [t(0,0,0),t(0,1,1),t(1,0,0),t(-1,0,0)], [0], C), in_dfa( A, C ), in_dfa( B, C ), X #> 0, X1 #< X, Y1 #\= Z1, labeling([], A), labeling([], B). t9 :- test9(M), X <== list(M), writeln(X), fail. t9. test9(X) :- X = array[1..2, 1..2] of 0..3, all_different(X), X[1,1] #< X[1,2], X[2,1] #< X[2,2], X[1,1] #< X[2,1], labeling( [], X ). t10 :- test10(M), X <== list(M), writeln(X), fail. t10. test10(X) :- X = array[1..2, 1..2] of 0..3, all_different(X), X[1,1] #< X[1,2], X[2,1] #< X[2,2], X[1,1] #< X[2,1], Z in 0..20, Z #= sum( [I in 1..2, J in 1..2] where (I = 2, J = 2), X[I,J]), maximize(Z), labeling( [ff], X ). t11 :- test11(X), writeln(X), fail. t11. test11(X) :- length(X, 3), X ins 1..3, X #<, labeling( [], X ). t12 :- test12(X), writeln(X), fail. t12. test12(X) :- length(X, 3), X ins 1..3, X #>, labeling( [max,max_step], X ). t13 :- test13(X), writeln(X), fail. t13. test13(X) :- length(X, 3), X ins 1..3, X #\=, count(X, 1) #= 1, labeling( [max,max_step], X ). t14 :- test14(X), writeln(X), fail. t14. test14(X) :- X = [A,B,C], boolvars(X), 1 #= ( A<=>(B \/ C) ), labeling( [max,max_step], X ). t15 :- test15(X), writeln(X), fail. t15. test15(X) :- X = [A,B,C], boolvars(X), clause(or,[B],[A],1), clause(or,[C],[B],1), A #= 1, labeling( [max,max_step], X ).