:- set_prolog_flag( discontiguous_warnings,off ).
:- set_prolog_flag( single_var_warnings,off ).
:- set_prolog_flag( unknown,fail ).

%--------------------------------- - - - - - - - - - -  -  -  -  -   -
% Extensao do meta-predicado demo: Questao,Resposta -> {V,F}
 
demo( Questao,verdadeiro ) :-
    Questao.
demo( Questao,falso ) :-
    -Questao.
demo( Questao,desconhecido ) :-
    nao( Questao ),
    nao( -Questao ).
 
%--------------------------------- - - - - - - - - - -  -  -  -  -   -
% Extensao do meta-predicado nao: Questao -> {V,F}
 
nao( Questao ) :-
    Questao, !, fail.
nao( Questao ).	

%--------------------------------- - - - - - - - - - -  -  -  -  -   -
% Extensao do predicado pais: pai,mae,filho -> {V,F,D}

pais(abel,alice,ana).

pais(antonio,alberta,anibal).

pais(bras,belem,berta).
pais(bras,belem,berto).



exc(pais(celso,catia,crispim)).
exc(pais(caio,catia,crispim)).

pais(daniel,m1,danilo).
exc(pais(P,M,F)):-
	pais(P,m1,F).

pais(elias,elsa,eurico).

exc(pais(fausto,m2,fabia)).
exc(pais(fausto,m2,octavia)).
pais(fausto,m2,F).
exc(pais(P,M,F)):-
	pais(P,m2,F).

pais(guido,guida,golias).
	
-pais(P,M,F):-
	nao(pais(P,M,F)),
	nao(exc(pais(P,M,F))).
	
%--------------------------------- - - - - - - - - - -  -  -  -  -   -
% Extensao do predicado nasceu: pessoa,data -> {V,F,D}

nasceu(ana,01,01,2013).

nasceu(anibal,02,01,2013).

nasceu(berta,02,02,2013).
nasceu(berto,02,02,2013).

nasceu(catia,03,03,2014).

nasceu(danilo,03,03,2014).

exc(nasceu(eurico,05,05,2013)).
exc(nasceu(eurico,15,05,2013)).
exc(nasceu(eurico,25,05,2013)).

nasceu(danilo,04,04,2013).

nasceu(golias,d1,m1,a1).
exc(nasceu(P,D,M,A)):-
	nasceu(golias,d1,m1,a1).

-nasceu(helder,08,08,2013).


-nasceu(P,D,M,A):-
	nao(nasceu(P,D,M,A)),
	nao(exc(nasceu(P,D,M,A))).












