/* Question 1 
 *
 * parent(X,Y) :- X est le parent de Y
 ********************************/
parent(pamela,robert).
parent(thomas,robert).

parent(pierre,elizabeth).
parent(marie,elizabeth).

parent(elizabeth,anne).
parent(elizabeth,patricia).

parent(robert,anne).
parent(robert,patricia).

parent(anne,julie).
parent(anne,nathalie).
parent(anne,luc).

parent(jimmy,julie).
parent(jimmy,nathalie).
parent(jimmy,luc).

parent(patricia,marc).
parent(patricia,kevin).

parent(martin,marc).
parent(martin,kevin).

parent(julie,jean).
parent(sylvain,jean).

parent(luc,sylvie).
parent(rachel,sylvie).

parent(kevin,tom).
parent(sonia,tom).

/* Question 2

1) Est-ce que Patricia est le parent de Marc ?

?- parent(patricia,marc).

Yes

2) Qui sont les parents de Patricia ?

?- parent(X,patricia).

X = elizabeth ;

X = robert ;

No

3) Est-ce que Marie est la mère d'Élizabeth ?

?- parent(marie,elizabeth).

Yes

4) Est-ce que Nathalie a des enfants ?

?- parent(nathalie,X).

No

5) Est-ce que Martin est grand-père ?

?- parent(martin,Y),parent(Y,X).

Y = kevin,
X = tom ;

No

*********************************/

/* Question 3 
 *
 * soeur-frere(X,Y) : X est la soeur ou le frère de Y
 * tante-oncle(X,Y) : X est la tante ou l'oncle de Y
 * petit-enfant(X,Y) : X est le petit-enfant de Y
 * cousin-cousine(X,Y) : X est le cousin ou la cousine de Y
 ********************************/
soeur-frere(X,Y) :- parent(Z,X),parent(Z,Y).
tante-oncle(X,Y) :- soeur-frere(X,Z),parent(Z,Y).
petit-enfant(X,Y) :- parent(Z,X),parent(Y,Z).
cousin-cousine(X,Y) :- tante-oncle(Z,X),parent(Z,Y).

/* Question 4
 *
 * femme(X) : X est une femme
 * homme(X) : X est un homme
 * soeur(X,Y) : X est la soeur de Y
 * frere(X,Y) : X est le frère de Y
 * tante(X,Y) : X est la tante de Y
 * oncle(X,Y) : X est l'oncle de Y
 * cousine(X,Y) : X est la cousine de Y
 * cousin(X,Y) : X est le cousin de Y
 ********************************/
femme(pamela).
femme(marie).
femme(elizabeth).
femme(anne).
femme(patricia).
femme(julie).
femme(nathalie).
femme(rachel).
femme(sonia).
femme(sylvie).

homme(thomas).
homme(pierre).
homme(robert).
homme(jimmy).
homme(martin).
homme(luc).
homme(marc).
homme(kevin).
homme(sylvain).
homme(jean).
homme(tom).

/* Avec toutes les relations */
soeur(X,Y) :- parent(Z,X),parent(Z,Y),femme(X),X\=Y.
frere(X,Y) :- parent(Z,X),parent(Z,Y),homme(X),X\=Y.
tante(X,Y) :- soeur(X,Z),parent(Z,Y),femme(X),X\=Z.
oncle(X,Y) :- frere(X,Z),parent(Z,Y),homme(X),X\=Z.
cousine(X,Y) :- tante-oncle(Z,X),parent(Z,Y),femme(X),X\=Z.
cousin(X,Y) :- tante-oncle(Z,X),parent(Z,Y),homme(X),X\=Z.

/* Avec les relations parent/2, homme/1 et femme/1 */
soeur(X,Y) :- parent(Z,X),parent(Z,Y),femme(X),X\=Y.
frere(X,Y) :- parent(Z,X),parent(Z,Y),homme(X),X\=Y.
tante(X,Y) :- parent(P,X),parent(P,Z),parent(Z,Y),femme(X),X\=Z.
oncle(X,Y) :- parent(P,X),parent(P,Z),parent(Z,Y),parent(Z,Y),homme(X),X\=Z.
cousine(X,Y) :- parent(P,X),parent(G,P),parent(G,Z),parent(Z,Y),femme(X),X\=Z.
cousin(X,Y) :- parent(P,X),parent(G,P),parent(G,Z),parent(Z,Y),homme(X),X\=Z.


