// // csp6 // From Barbara Smith's AR33 page 35 // // an example for cbj, fc, bt3 and above, and ac3 // // [minus1(x:integer,y:integer) : boolean -> x = y - 1] [sumsTo5(x:integer,y:integer) : boolean -> x + y = 5] [sumsToMoreThan6(x:integer,y:integer) : boolean -> x + y > 6] [diffAtLeast1(x:integer,y:integer) : boolean -> x - y >= 1] [invDiffAtLeast1(x:integer,y:integer) : boolean -> diffAtLeast1(y,x)] N:integer := 4 V:array := make_array(N,integer,-1) D:array := make_array(N,set,{1,2,3,4,5}) CD:array := make_array(N,set,{}) C:set := {tuple(<,1,2),tuple(>,2,1), tuple(diffAtLeast1,4,1),tuple(invDiffAtLeast1,1,4), tuple(sumsToMoreThan6,2,3), tuple(sumsToMoreThan6,3,2), tuple(sumsTo5,2,4),tuple(sumsTo5,4,2), tuple(<,4,3),tuple(>,3,4)}