
parent(anna,giuseppina).
parent(teresa,giuseppina).
parent(pia,anna).
parent(pia,francesco).
parent(franco,francesco).
parent(franco,anna).
parent(osvaldo,giuseppina).
parent(felice,osvaldo).
parent(pina,osvaldo).
parent(roberto,teresa).
parent(francesco,pia).
parent(gaia,pia).


sibling(X,Y):- parent(X,Z), parent(Y,Z), X\==Y.

cousin(X,Y) :- parent(X,Z), parent(Y,W), sibling(Z,W).

/*  qui le ripetizioni possono esserci poiche'
franco potrebbe essere sibling di pia sia perche'
hanno la stessa madre che perche' hanno lo stesso padre.
ESERCIZIO: fare un programma che non produca ripetizioni. */

