/* Kérdés:
	meg lehet-e állapítani, hogy kik nem szeretik a sört.

Ez a kérdés azért bonyolult, mert lehet, hogy dezsõ sem szereti a sört,
de õ benne sincs az adatbázisban. Sõt, én sem szeretem, ez sem derül ki az
adatokból :))

Csak úgy lehetne feltenni a kérdést, hogy kik nem szeretik a sört az adatbázisban
szereplõk közül. Ennek megválaszolására mutatok egy lehetséges megoldást,
de ezeket a beépített predikátumokat csak késõbb vesszük. 
Megérteni viszont most is meg lehet, aláírom a magyarázatot.

Inditás pl.: nemszereti(Kik,sör).

(de persze a sör bármilyen más italra is kicserélhetõ :))
*/ 


  szereti(pál,sör).
  szereti(éva,cola).
  szereti(józsi,bor).
  szereti(jenõ,sör).
  szereti(imre,sör).
  szereti(jani,cola).
  szereti(pista,bor).
  
  mernek(sarok,bor).
  mernek(sarok,sör).
  mernek(hullám,sör).
  mernek(hullám,bor).
  mernek(hullám,cola).
  
  jar(Diak,Kocsma):-szereti(Diak,Ital),
                    mernek(Kocsma,Ital).
                   
 
  nemszereti(ItaltNemszeretoDiakok,Ital) :- findall(Diak, szereti(Diak,_),OsszesDiak),
		             findall(Diak, szereti(Diak,Ital), ItaltszeretoDiakok),
		             subtract(OsszesDiak,ItaltszeretoDiakok,ItaltNemszeretoDiakok).			 
 
 
/* Az elsõ findall létrehozza az OsszesDiak nevezetû listát, melynek elemei
azok a Diak-ok, akik szerepelnek a "szereti" adatbázisban. 
A második findall létrehozza az ItaltszeretoDiakok nevezetû listát, melynek
elemei azok a Diak-ok, akik szeretik az Ital-t.
A subtract pedig a két lista, mint két halmaz különbségét képezi. 

*/