Está en la página 1de 4

La familia real en Prolog

hombre(philip).

hombre(charles).

hombre(andrew).

hombre(edward).

hombre(william).

hombre(harry).

hombre(george).

hombre(james).

hombre(mark).

hombre(peter).

hombre(mike).

mujer(elisabeth).

mujer(anne).

mujer(diana).

mujer(camilla).

mujer(sarah).

mujer(sophie).

mujer(kate).

mujer(charlotte).

mujer(louise).

mujer(beatrice).

mujer(eugenie).

mujer(zara).

mujer(autumn).

mujer(savannah).

mujer(isla).

mujer(mia).
% Relacion "progenitor" (parent) que asocia un padre (o madre) con su

% hijo (o hija).

progenitor(philip,charles). % philip es progenitor de charles

progenitor(philip,andrew).

progenitor(philip,edward).

progenitor(philip,anne).

progenitor(elisabeth,charles). % elisabeth es progenitora de charles

progenitor(elisabeth,andrew).

progenitor(elisabeth,edward).

progenitor(elisabeth,anne).

progenitor(charles,william).

progenitor(charles,harry).

progenitor(diana,william).

progenitor(diana,harry).

progenitor(william,george).

progenitor(william,charlotte).

progenitor(kate,george).

progenitor(kate,charlotte).

progenitor(edward,louise).

progenitor(edward,james).

progenitor(sophie,louise).

progenitor(sophie,james).

progenitor(andrew,beatrice).

progenitor(andrew,eugenie).

progenitor(sarah,beatrice).

progenitor(sarah,eugenie).
progenitor(anne,peter).

progenitor(anne,zara).

progenitor(mark,peter).

progenitor(mark,zara).

progenitor(peter,savannah).

progenitor(peter,isla).

progenitor(autumn,savannah).

progenitor(autumn,isla).

progenitor(zara,mia).

progenitor(mike,mia).

esposo(philip,elisabeth).

esposo(charles,diana).

esposo(charles,camilla).

esposo(mark,anne).

esposo(andrew,sarah).

esposo(edward,sophie).

esposo(william,kate).

esposo(peter,autumn).

esposo(mike,zara).

divorciado(charles,diana).

divorciado(mark,anne).

divorciado(andrew,sarah).

% ----------------------------------------------------

% Completar el programa a partir de este punto

% ----------------------------------------------------

humano(H) :- hombre(H).
humano(H) :- mujer(H).

padre(F, C) :- hombre(F), progenitor(F, C).

madre(M, C) :- mujer(M), progenitor(M, C).

es_padre(F) :- padre(F, _).

es_madre(M) :- madre(M, _).

hijo(S, P) :- hombre(S), progenitor(P, S).

hija(D, P) :- mujer(D), progenitor(P, D).

divorciada(W,H) :- divorciado(H,W).

es_divorciada(N) :- mujer(N), divorciada(N,_).

es_divorciado(N) :- hombre(N), divorciado(N,_).

hermanos(A, B) :- progenitor(P, A), progenitor(P, B), A\=B.

% los hermanos tienen al menos un progenitor comn

% A\=B controla que los hermanos sean diferentes personas

% "hermanos de sangre" usando relaciones padre y madre

hermanos_de_sangre(A, B) :- padre(F, A), padre(F, B), madre(M, A), madre(M, B), A\=B.

% A\=B controla que los hermanos sean diferentes personas

tio(U, N) :- hombre(U), hermanos(U, P), progenitor(P, N).

tia(A, N) :- mujer(A), hermanos(A, P), progenitor(P, N).

es_tia(N) :- tia(N,_).

sobrino(N,U) :- hombre(N), tio(U,N).

sobrino(N,A) :- hombre(N), tia(A,N).

sobrina(N,U) :- mujer(N), tio(U,N).

sobrina(N,A) :- mujer(N), tia(A,N).