The ECLiPSe banner with the version number and configuration (unless visible in the script): Machine type: i686 Operating system name and version number: Linux 2.2.18 If graphics is involved, ProTcl and Tcl/Tk release number, X version number, X server type and window manager: not involved Your .eclipserc and ECLIPSE... environment variables, if used: not used A script which causes the bug to appear, enhanced by comments where necessary (start from the ECLiPSe banner unless the option -e is used): Short description: In the previous version of Eclipse, I had no trouble using the arithmetic "mod" operator in constraints. Now I get: type error in (Robert{[1 .. 6]} + 1 - 1) mod (6 - 1 + 1) + 1 #\= Kate{[1 .. 6]} The relevant declarations are: Person = [Claude, Jeanne, Kate, Liana, Martin, Robert], Person :: [1,2,3,4,5,6], Long description: Here is the full program. I put it in a file "foo" and invoke "eclipse -b foo -e run". % ---- long insert follows :- use_module(library(fd)) . :- use_module(library(fd_search)) . :- use_module(library(fd_global)) . :- import occurrences/3 from fd_global. :- import alldifferent/1 from fd_global. run :- % Description of a logic puzzle: French Phrases, Italian Soda, p. 43, % Dell Logic Puzzles June 1999 (4 stars) % CLASS person: claude jeanne kate liana martin robert Person = [Claude, Jeanne, Kate, Liana, Martin, Robert], % PARTITION gender: men women Men = 'Men', Women = 'Women', Gender = [Gender1, Gender2, Gender3, Gender4, Gender5, Gender6], Gender :: [Men, Women], % AGREE men: claude martin robert % translator deferring output until declarations done. % AGREE women: jeanne kate liana % translator deferring output until declarations done. % CLASS position: 1 .. 6 circular % We translate this class as a row identifier % CLASS soda: blueberry lemon peach tangelo kiwi grapefruit Soda = [Blueberry, Lemon, Peach, Tangelo, Kiwi, Grapefruit], % CLASS visits: quebec tahiti haiti martinique belgium ivory Visits = [Quebec, Tahiti, Haiti, Martinique, Belgium, Ivory], % finishing declarations Visits :: [1,2,3,4,5,6], alldifferent(Visits), Person :: [1,2,3,4,5,6], alldifferent(Person), Soda :: [1,2,3,4,5,6], alldifferent(Soda), % deferred AGREE men: claude martin robert (Claude #= 1 #/\ Gender1 #= Men #\/ Claude #= 2 #/\ Gender2 #= Men #\/ Claude #= 3 #/\ Gender3 #= Men #\/ Claude #= 4 #/\ Gender4 #= Men #\/ Claude #= 5 #/\ Gender5 #= Men #\/ Claude #= 6 #/\ Gender6 #= Men), (Martin #= 1 #/\ Gender1 #= Men #\/ Martin #= 2 #/\ Gender2 #= Men #\/ Martin #= 3 #/\ Gender3 #= Men #\/ Martin #= 4 #/\ Gender4 #= Men #\/ Martin #= 5 #/\ Gender5 #= Men #\/ Martin #= 6 #/\ Gender6 #= Men), (Robert #= 1 #/\ Gender1 #= Men #\/ Robert #= 2 #/\ Gender2 #= Men #\/ Robert #= 3 #/\ Gender3 #= Men #\/ Robert #= 4 #/\ Gender4 #= Men #\/ Robert #= 5 #/\ Gender5 #= Men #\/ Robert #= 6 #/\ Gender6 #= Men), % deferred AGREE women: jeanne kate liana (Jeanne #= 1 #/\ Gender1 #= Women #\/ Jeanne #= 2 #/\ Gender2 #= Women #\/ Jeanne #= 3 #/\ Gender3 #= Women #\/ Jeanne #= 4 #/\ Gender4 #= Women #\/ Jeanne #= 5 #/\ Gender5 #= Women #\/ Jeanne #= 6 #/\ Gender6 #= Women), (Kate #= 1 #/\ Gender1 #= Women #\/ Kate #= 2 #/\ Gender2 #= Women #\/ Kate #= 3 #/\ Gender3 #= Women #\/ Kate #= 4 #/\ Gender4 #= Women #\/ Kate #= 5 #/\ Gender5 #= Women #\/ Kate #= 6 #/\ Gender6 #= Women), (Liana #= 1 #/\ Gender1 #= Women #\/ Liana #= 2 #/\ Gender2 #= Women #\/ Liana #= 3 #/\ Gender3 #= Women #\/ Liana #= 4 #/\ Gender4 #= Women #\/ Liana #= 5 #/\ Gender5 #= Women #\/ Liana #= 6 #/\ Gender6 #= Women), % declarations finished % CONFLICT quebec 1 1 #\= Quebec, % REQUIRED quebec blueberry OR quebec lemon Quebec #= Blueberry #\/ Quebec #= Lemon, % OFFSET !+-1 position: robert kate (Robert + 1 - 1) mod (6-1+1)+1 #\= Kate #/\ (Robert - 1 - 1) mod (6-1+1)+1 #\= Kate, % OFFSET +-3 position: robert peach (Robert + 3 - 1) mod (6-1+1)+1 #= Peach #\/ (Robert - 3 - 1) mod (6-1+1)+1 #= Peach, % CONFLICT tangelo tahiti Tahiti #\= Tangelo, % OFFSET +-1 position: liana tangelo (Liana + 1 - 1) mod (6-1+1)+1 #= Tangelo #\/ (Liana - 1 - 1) mod (6-1+1)+1 #= Tangelo, % OFFSET +-1 position: liana tahiti (Liana + 1 - 1) mod (6-1+1)+1 #= Tahiti #\/ (Liana - 1 - 1) mod (6-1+1)+1 #= Tahiti, % OFFSET !+-1 position: jeanne kiwi (Jeanne + 1 - 1) mod (6-1+1)+1 #\= Kiwi #/\ (Jeanne - 1 - 1) mod (6-1+1)+1 #\= Kiwi, % VAR x X :: 1..6, % AGREE men: haiti 3 x (Haiti #= 1 #/\ Gender1 #= Men #\/ Haiti #= 2 #/\ Gender2 #= Men #\/ Haiti #= 3 #/\ Gender3 #= Men #\/ Haiti #= 4 #/\ Gender4 #= Men #\/ Haiti #= 5 #/\ Gender5 #= Men #\/ Haiti #= 6 #/\ Gender6 #= Men), (3 #= 1 #/\ Gender1 #= Men #\/ 3 #= 2 #/\ Gender2 #= Men #\/ 3 #= 3 #/\ Gender3 #= Men #\/ 3 #= 4 #/\ Gender4 #= Men #\/ 3 #= 5 #/\ Gender5 #= Men #\/ 3 #= 6 #/\ Gender6 #= Men), (X #= 1 #/\ Gender1 #= Men #\/ X #= 2 #/\ Gender2 #= Men #\/ X #= 3 #/\ Gender3 #= Men #\/ X #= 4 #/\ Gender4 #= Men #\/ X #= 5 #/\ Gender5 #= Men #\/ X #= 6 #/\ Gender6 #= Men), % CONFLICT haiti 3 x Haiti #\= X, 3 #\= Haiti, 3 #\= X, % CONFLICT x claude Claude #\= X, % CONFLICT claude martinique Claude #\= Martinique, % OFFSET +-1 position: grapefruit claude (Grapefruit + 1 - 1) mod (6-1+1)+1 #= Claude #\/ (Grapefruit - 1 - 1) mod (6-1+1)+1 #= Claude, % OFFSET +-1 position: grapefruit martinique (Grapefruit + 1 - 1) mod (6-1+1)+1 #= Martinique #\/ (Grapefruit - 1 - 1) mod (6-1+1)+1 #= Martinique, % REQUIRED belgium 4 OR belgium 5 Belgium #= 4 #\/ Belgium #= 5, % CONFLICT belgium tangelo Belgium #\= Tangelo, % VAR y Y :: 1..6, % MATCH 2 4 6, kate claude y 2 #= Kate #\/ 2 #= Claude #\/ 2 #= Y, 4 #= Kate #\/ 4 #= Claude #\/ 4 #= Y, 6 #= Kate #\/ 6 #= Claude #\/ 6 #= Y, Kate #= 2 #\/ Kate #= 4 #\/ Kate #= 6, Claude #= 2 #\/ Claude #= 4 #\/ Claude #= 6, Y #= 2 #\/ Y #= 4 #\/ Y #= 6, Kate #\= Y, Claude #\= Y, % CONFLICT y lemon Lemon #\= Y, % VAR a A :: 1..6, % VAR b B :: 1..6, % AGREE men: a b (A #= 1 #/\ Gender1 #= Men #\/ A #= 2 #/\ Gender2 #= Men #\/ A #= 3 #/\ Gender3 #= Men #\/ A #= 4 #/\ Gender4 #= Men #\/ A #= 5 #/\ Gender5 #= Men #\/ A #= 6 #/\ Gender6 #= Men), (B #= 1 #/\ Gender1 #= Men #\/ B #= 2 #/\ Gender2 #= Men #\/ B #= 3 #/\ Gender3 #= Men #\/ B #= 4 #/\ Gender4 #= Men #\/ B #= 5 #/\ Gender5 #= Men #\/ B #= 6 #/\ Gender6 #= Men), % OFFSET 1 position: ivory a (Ivory + 1 - 1) mod (6-1+1)+1 #= A, % OFFSET 1 position: b ivory (B + 1 - 1) mod (6-1+1)+1 #= Ivory, % Propagate information flatten([Visits, Person, Gender, Soda, A, B, X, Y], AllVars), search(AllVars, 0, occurrence, indomain, complete, [backtrack(BacktrackCount)]), % print result write(stdout, '\nvisits:'), write(stdout, ' Quebec='), write(stdout, Quebec), write(stdout, ' Tahiti='), write(stdout, Tahiti), write(stdout, ' Haiti='), write(stdout, Haiti), write(stdout, ' Martinique='), write(stdout, Martinique), write(stdout, ' Belgium='), write(stdout, Belgium), write(stdout, ' Ivory='), write(stdout, Ivory), write(stdout, '\nposition:'), write(stdout, ' 1='), write(stdout, 1), write(stdout, ' 2='), write(stdout, 2), write(stdout, ' 3='), write(stdout, 3), write(stdout, ' 4='), write(stdout, 4), write(stdout, ' 5='), write(stdout, 5), write(stdout, ' 6='), write(stdout, 6), write(stdout, '\nperson:'), write(stdout, ' Claude='), write(stdout, Claude), write(stdout, ' Jeanne='), write(stdout, Jeanne), write(stdout, ' Kate='), write(stdout, Kate), write(stdout, ' Liana='), write(stdout, Liana), write(stdout, ' Martin='), write(stdout, Martin), write(stdout, ' Robert='), write(stdout, Robert), write(stdout, '\npartition gender='), write(stdout, Gender), write(stdout, '\nsoda:'), write(stdout, ' Blueberry='), write(stdout, Blueberry), write(stdout, ' Lemon='), write(stdout, Lemon), write(stdout, ' Peach='), write(stdout, Peach), write(stdout, ' Tangelo='), write(stdout, Tangelo), write(stdout, ' Kiwi='), write(stdout, Kiwi), write(stdout, ' Grapefruit='), write(stdout, Grapefruit), write(stdout, '\nvar a = '), write(stdout, A), write(stdout, '\nvar b = '), write(stdout, B), write(stdout, '\nvar x = '), write(stdout, X), write(stdout, '\nvar y = '), write(stdout, Y), write(stdout, '\nBacktrack = '), write(stdout, BacktrackCount), write(stdout, '\n') .Received on Tue Jul 17 13:24:45 2001
This archive was generated by hypermail 2.1.8 : Wed 16 Nov 2005 06:08:08 PM GMT GMT