menu([Starter,Entree,Dessert,Drink]) :-
 	use_semiring(fuzzy),
	
 	[Starter] in [[salmon]-10,[caviar]-10,[foiegras]-10,[oysters]-4,[no_starter]-6],
 	[Entree]  in [[fish]-8,[wildboar]-8,[sauerkraut]-10],
 	[Drink]   in [[whitewine]-10,[redwine]-10,[beer]-10,[water]-5],
 	[Dessert] in [[applepie]-10,[ice]-10,[fruit]-10,[no_dessert]-6],
	
 	c1(Entree,Drink),
 	c2(Starter,Entree),
 	c3(Starter,Entree,Drink),
 	c4(Entree,Dessert),
 	c5(Starter,Dessert).


c1(Entree,Drink) :-
	[Entree,Drink] in
	[[fish,      whitewine]-10,[fish,      redwine]-10,[fish,      beer]-10,[fish,      water]-10,
	 [wildboar,  whitewine]-1, [wildboar,  redwine]-10,[wildboar,  beer]-1, [wildboar,  water]-1,
	 [sauerkraut,whitewine]-2, [sauerkraut,redwine]-2, [sauerkraut,beer]-7, [sauerkraut,water]-2
	].

c2(Starter,Entree) :-
	[Starter,Entree] in
        [[salmon,fish]-3,     [salmon,wildboar]-10,   [salmon,sauerkraut]-10,
	 [caviar,fish]-3,     [caviar,wildboar]-10,   [caviar,sauerkraut]-10,
	 [foiegras,fish]-10,  [foiegras,wildboar]-2,  [foiegras,sauerkraut]-2,
	 [oysters,fish]-3,    [oysters,wildboar]-10,  [oysters,sauerkraut]-10,
	 [no_starter,fish]-10,[no_starter,wildboar]-2,[no_starter,sauerkraut]-2].

c3(Starter,Entree,Drink) :-
	[Starter,Entree,Drink] in
        [[salmon,fish,whitewine]-8,[salmon,fish,redwine]-1,[salmon,fish,beer]-1,
	 [salmon,fish,water]-1,[salmon,wildboar,whitewine]-8,[salmon,wildboar,redwine]-1,
	 [salmon,wildboar,beer]-1,[salmon,wildboar,water]-1,[salmon,sauerkraut,whitewine]-8,
	 [salmon,sauerkraut,redwine]-1,[salmon,sauerkraut,beer]-1,[salmon,sauerkraut,water]-1,
	 
	 [caviar,fish,whitewine]-8,[caviar,fish,redwine]-1,[caviar,fish,beer]-1,
	 [caviar,fish,water]-1,[caviar,wildboar,whitewine]-8,[caviar,wildboar,redwine]-1,
	 [caviar,wildboar,beer]-1,[caviar,wildboar,water]-1,[caviar,sauerkraut,whitewine]-8,
	 [caviar,sauerkraut,redwine]-1,[caviar,sauerkraut,beer]-1,[caviar,sauerkraut,water]-1,
	 
	 [foiegras,fish,whitewine]-8,[foiegras,fish,redwine]-1,[foiegras,fish,beer]-1,
	 [foiegras,fish,water]-1,[foiegras,wildboar,whitewine]-10,[foiegras,wildboar,redwine]-10,
	 [foiegras,wildboar,beer]-10,[foiegras,wildboar,water]-10,[foiegras,sauerkraut,whitewine]-10,
	 [foiegras,sauerkraut,redwine]-10,[foiegras,sauerkraut,beer]-10,[foiegras,sauerkraut,water]-10,
	 
	 [oysters,fish,whitewine]-8,[oysters,fish,redwine]-1,[oysters,fish,beer]-1,
	 [oysters,fish,water]-1,[oysters,wildboar,whitewine]-8,[oysters,wildboar,redwine]-1,
	 [oysters,wildboar,beer]-1,[oysters,wildboar,water]-1,[oysters,sauerkraut,whitewine]-8,
	 [oysters,sauerkraut,redwine]-1,[oysters,sauerkraut,beer]-1,[oysters,sauerkraut,water]-1,
	 
	 [no_starter,fish,whitewine]-8,[no_starter,fish,redwine]-1,[no_starter,fish,beer]-1,
	 [no_starter,fish,water]-1,[no_starter,wildboar,whitewine]-10,[no_starter,wildboar,redwine]-10,
	 [no_starter,wildboar,beer]-10,[no_starter,wildboar,water]-10,[no_starter,sauerkraut,whitewine]-10,
	 [no_starter,sauerkraut,redwine]-10,[no_starter,sauerkraut,beer]-10,[no_starter,sauerkraut,water]-10].


% c3(Starter,Drink) :-
% 	[Starter,Drink] in
%         [[salmon,whitewine]-10,[salmon,redwine]-10,[salmon,beer]-10,[salmon,water]-10,
% 	 [caviar,whitewine]-10,[caviar,redwine]-10,[caviar,beer]-10,[caviar,water]-10,
% 	 [foiegras,whitewine]-10,[foiegras,redwine]-1,[foiegras,beer]-1,[foiegras,water]-1,
% 	 [oysters,whitewine]-10,[oysters,redwine]-10,[oysters,beer]-10,[oysters,water]-10,
% 	 [no_starter,whitewine]-10,[no_starter,redwine]-10,[no_starter,beer]-10,[no_starter,water]-10].


c4(Entree,Dessert) :-
	[Entree,Dessert] in
        [[fish,applepie]-10,[fish,ice]-10,[fish,fruit]-10,[fish,no_dessert]-10,
	 [wildboar,applepie]-5,[wildboar,ice]-10,[wildboar,fruit]-5,[wildboar,no_dessert]-5,
	 [sauerkraut,applepie]-10,[sauerkraut,ice]-10,[sauerkraut,fruit]-10,[sauerkraut,no_dessert]-10].

c5(Starter,Dessert) :-
	[Starter,Dessert] in
        [[salmon,applepie]-10,[salmon,ice]-10,[salmon,fruit]-10,[salmon,no_dessert]-10,
	 [caviar,applepie]-10,[caviar,ice]-10,[caviar,fruit]-10,[caviar,no_dessert]-10,
	 [foiegras,applepie]-10,[foiegras,ice]-10,[foiegras,fruit]-10,[foiegras,no_dessert]-10,
	 [oysters,applepie]-10,[oysters,ice]-10,[oysters,fruit]-10,[oysters,no_dessert]-10,
	 [no_starter,applepie]-10,[no_starter,ice]-10,[no_starter,fruit]-10,[no_starter,no_dessert]-4].


*****************

| ?- menu([Starter,Entree,Dessert,Drink]), conbb(S).
S = [Entree,Dessert,Drink,Starter]in[[sauerkraut,no_dessert,redwine,caviar]-1],
[Entree]in[[sauerkraut]-2],
[Dessert]in[[no_dessert]-2],
[Drink]in[[redwine]-2],
[Starter]in[[caviar]-2],
[Entree,Dessert]in[[sauerkraut,no_dessert]-10],
[Entree,Drink]in[[sauerkraut,redwine]-2],
[Starter,Entree]in[[caviar,sauerkraut]-10],
[Starter,Dessert]in[[caviar,no_dessert]-10],
[Starter,Entree,Drink]in[[caviar,sauerkraut,redwine]-1] ? 
yes






