Untitled

mail@pastecode.io avatar
unknown
prolog
a year ago
3.8 kB
22
Indexable
Never

/* immediate family */
parent(mustafa,nehal).
parent(mustafa,farkhunda).
parent(mussab,nehal).
parent(mussab,farkhunda).
parent(omer,nehal).
parent(omer,farkhunda).
parent(osman,nehal).
parent(osman,farkhunda).

/*father's side cousins:*/
parent(rouza,nishat).
parent(rouza,musarrat).

parent(laiba,fayyaz).
parent(laiba,sabeeha).
parent(aymen,fayyaz).
parent(aymen,sabeeha).
parent(hamza,fayyaz).
parent(hamza,sabeeha).

parent(dawood,inam).
parent(dawood,huma).
parent(usama,inam).
parent(usama,huma).
parent(midra,inam).
parent(midra,huma).

parent(jawwad,allaudin).
parent(jawwad,hina).
parent(faiq,allaudin).
parent(faiq,hina).
parent(nabeel,allaudin).
parent(nabeel,hina).
parent(aqsa,allaudin).
parent(aqsa,hina).
parent(afifa,allaudin).
parent(afifa,hina).

/*both side mutual cousins*/
parent(huraira,athar).
parent(huraira,uzma).
parent(abdullah,athar).
parent(abdullah,uzma).
parent(mahnoor,athar).
parent(mahnoor,uzma).

/* mother's side cousins */
parent(sajjad,akbar).
parent(bilal,rakhshinda).
parent(bilal,iqbal).
parent(fatima,rakhshinda).
parent(fatima,iqbal).

/* paternal grandfather's family */
parent(nehal,niaz).
parent(nishat,niaz).
parent(fayyaz,niaz).
parent(nehal,tahira).
parent(nishat,tahira).
parent(fayyaz,tahira).
parent(huma,niaz).
parent(huma,tahira).
parent(hina,niaz).
parent(hina,tahira).
parent(uzma,niaz).
parent(uzma,tahira).

/* maternal grandfather's family */
parent(farkhunda,ayn).
parent(rakhshinda,ayn).
parent(farkhunda,suwaida).
parent(rakhshinda,suwaida).
parent(athar,ayn).
parent(athar,suwaida).
parent(akbar,ayn).
parent(akbar,suwaida).
parent(bashar,ayn).
parent(bashar,suwaida).

/* gender facts */
male(mustafa).
male(mussab).
male(omer).
male(osman).
male(nehal).
male(nishat).
male(niaz).
male(fayyaz).
male(hamza).
male(usama).
male(dawood).
male(inam).
male(jawwad).
male(faiq).
male(nabeel).
male(abdullah).
male(huraira).
male(athar).
male(allaudin).
male(akbar).
male(bashar).
male(ayn).
male(bilal).
male(iqbal).
male(sajjad).

female(huma).
female(hina).
female(uzma).
female(farkhunda).
female(rakhshinda).
female(suwaida).
female(tahira).
female(sabeeha).
female(musarrat).
female(laiba).
female(aymen).
female(rouza).
female(aqsa).
female(afifa).
female(mahnoor).
female(fatima).

mother(X,Y):- /* mother of X is Y */
    parent(X,Y),
    female(Y).

father(X,Y):- /* father of X is Y */
    parent(X,Y),
    male(Y).

son(X,Y):-
    parent(Y,X),
    male(X).

daughter(X,Y):-
    parent(Y,X),
    female(X).

husbandwife(X,Y) :- /* X is a husband of Y wife */
    father(Z,X),
    mother(Z,Y),
	X \= Y.

husbandwife_unique(X,Y):-
    setof((X,Y), husbandwife(X,Y), Pair),
    member((X,Y), Pair).

sibling(X,Y) :- /* X is a sibling of Y */
    father(X,Z),
    father(Y,Z),
    X \= Y.

grandfather(X,Y):- /* X is grandfather of Y */
    parent(Y,Z),
    parent(Z,X),
	male(X).

grandmother(X,Y):-
    parent(Y,Z),
    parent(Z,X),
    female(X).

aunt(X,Y):-
  parent(Y,Z),
  sibling(Z,X),
  female(X).

aunt(X,Y):-
    parent(Y,Z),
    sibling(Z,S),
    husbandwife_unique(S,X),
    female(X).
    

uncle(X,Y):-
	parent(Y,Z),
	sibling(Z,X),
    male(X).

uncle(X,Y):-
    parent(Y,Z),
    sibling(Z,S),
    husbandwife_unique(X,S),
    male(X).

cousinbrother(X,Y):- /* X is cousin brother of Y */
    parent(X,Z),
    parent(Y,W),
    sibling(Z,W),
	male(X).

cousinsister(X,Y):- /* X is cousin sister of Y */
    parent(X,Z),
    parent(Y,W),
    sibling(Z,W),
    female(X).

cousin(X,Y):- /* X is cousin of Y */
    parent(X,Z),
    parent(Y,W),
    sibling(Z,W).

niece(X,Y):-
    female(X),
    uncle(Y,X).

nephew(X,Y):-
    male(X),
    aunt(Y,X).