% Fatos.
homer.
marge.
bart.
lisa.
maggie.
mona.
jacqueline.
patty.
abraham.
clancy.
hugo.
louise.
herb.
mulher(marge).
mulher(maggie).
mulher(lisa).
mulher(mona).
mulher(jacqueline).
mulher(selma).
mulher(patty).
mulher(louise).
homem(homer).
homem(bart).
homem(abraham).
homem(clancy).
homem(hugo).
homem(herb).
homem(clancy).
progenitor(homer,bart).
progenitor(homer,lisa).
progenitor(homer,maggie).
progenitor(marge,bart).
progenitor(marge,lisa).
progenitor(marge,maggie).
progenitor(abraham, homer).
progenitor(mona, homer).
progenitor(clancy, marge).
progenitor(clancy, patty).
progenitor(clancy, selma).
progenitor(jacqueline, marge).
progenitor(jacqueline, patty).
progenitor(jacqueline, selma).
progenitor(abraham, herb).
progenitor(herb, hugo).
progenitor(louise, hugo).
% Regras
pai(A,B) :- homem(A), progenitor(A,B).
mãe(A,B) :- mulher(A), progenitor(A,B).
é_pai(A) :- pai(A,_).
é_mãe(A) :- mãe(A,_).
filho(A,B):- homem(A), progenitor(B,A).
filha(A,B):- mulher(A), progenitor(B,A).
irmaos(X,Y) :-
progenitor(Z,X),
progenitor(Z,Y),
X\=Y.
irmao_completos(A,B) :-
pai(P,A), pai(P,B),
mãe(M,A), mãe(M,B),
A\=B.
tio(T,A) :-
homem(T),
irmaos(T,X), progenitor(X,A).
tia(T,A) :-
mulher(T),
irmaos(T,X), progenitor(X,A).
primo(A,B) :-
homem(A),
progenitor(X,A),
progenitor(Y,B),
irmaos(X,Y).
prima(A,B) :-
mulher(A),
progenitor(X,A),
progenitor(Y,B),
irmaos(X,Y).
avô(A,B) :- pai(A,X), pai(X,B).
avó(A,B) :- pai(A,X), pai(X,B).
Referências: