Логическая задача на swi-prolog
Помогите разобраться, чего я недосмотрел в задании? При запуске зависает
fam(карпов).
fam(сомов).
fam(щукин).
work(актер).
work(литератор).
work(скульптор).
work(художник).
colour(белый).
colour(красный).
colour(серый).
colour(черный).
smoke(папиросы).
smoke(сигареты).
smoke(сигары).
smoke(трубку).
win(1000).
win(2000).
win(3000).
win(-6000).
solve(Mans):-
Mans = [man(A, AW, AC, AS,AWin),man(B, BW, BC, BS,BWin),man(C, CW, CC, CS,CWin),
man(D, DW, DC, DS,DWin)],
fam(A), fam(B), fam(C),fam(D),% unique([X, Y, Z]),
work(AW), work(BW), work(CW), work(DW), %unique([XNat, YNat, ZNat]),
colour(AC),colour(BC), colour(CC), colour(DC), % unique([XSp, YSp, ZSp]),
smoke(AS),smoke(BS), smoke(CS), smoke(DS),
win(AWin), win(BWin), win(CWin), win(DWin), % unique([XP, YP, ZP]),
% 1
member(man(_, _, черный, папиросы,_), Mans),
% 2
member(man(_, актер, _, _, 1000), Mans),
member(man(_, _, серый, _, 3000), Mans),
% 3
member(man(ершов, _, _, сигареты, _), Mans),
member(man(_, литератор, _, трубка, _), Mans),
not(member(man(сомов, литератор, _, _, _), Mans)),
% 4
member(man(щукин, скульптор, белый, _, _), Mans),
% 5
member(man(_, _, красный, _, -6000), Mans),
not(member(man(_, художник, _, _, -6000), Mans)).
start(Solve):-
solve(Solve), Solve = [man(_, _, _, _, 1000), man(_, _, _, _, 2000),
man(_, _, _, _, 3000),man(_, _, _, _, -6000)].
запускаю так
