
%%%%%%%%%%%%%%%%%%%%%%

arc(a,b).
arc(b,c).
arc(c,d).
path(X,Y,f(X,Y)) :- arc(X,Y).
path(X,Y,f(X,Z)) :- arc(X,W), path(W,Y,Z).

%%%%%%%%%%%%%%%%%%%%%%%

amico(antonio,bianca).
amico(antonio,enrico).
amico(bianca,dario).
amico(dario,carla).
amico(enrico,bianca).
/* antonio e` amico di tutti */
amico(antonio,Chiunque).

conosce(dario,enrico).
conosce(X,Y) :- amico(X,Y) ; amico(Y,X).
conosce(X,Y) :- amico(X,Qualcuno), amico(Qualcuno,Y).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

genitore(tommaso,francesca).
genitore(tommaso,vittorio).
genitore(francesca,linda).
genitore(francesca,leonardo).
genitore(vittorio,bianca).
genitore(vittorio,andrea).

nonno(X,Y) :- genitore(X,Z), genitore(Z,Y).

%%% ricorsione
antenato(X,Y) :- genitore(X,Y).
antenato(X,Y) :- genitore(X,Z), antenato(Z,Y).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

likes(mary,food).   % clausola 1 
likes(mary,wine).   % clausola 2  
likes(john,beer).   % clausola 3
likes(john,wine).   % clausola 4 
likes(john,mary).   % clausola 5

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

vertical( line(point(X,Y),point(X,Z))).
horizontal( line(point(X,Y),point(Z,Y))).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

vicino(tavolo,penna).
vicino(penna,pc).

colore(tavolo,bianco).
colore(penna,rosso).
colore(pc,verde).
colore(X,Y) :- vicino(X,Z), colore(Z,Y).


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

