/* Some facts about class relationships */
institution(pontificia_universidade_catolica_de_minas_gerais).
course(ciencia_da_computacao).
class(linguagens_de_programacao).
professor(marco_rodrigo).
student(antonio_monteiro,marco_rodrigo).
student(bruna_oliveira,marco_rodrigo).
student(izabela_borges,marco_rodrigo).
presentation(prolog).
/* A general rule */
student(GROUP_MEMBER,PROFESSOR).
?- write('Prolog Presentation'). Prolog Presentation true
?- student(GROUP_MEMBER,marco_rodrigo). GROUP_MEMBER = antonio_monteiro ; GROUP_MEMBER = bruna_oliveira ; GROUP_MEMBER = izabela_borges
true
04
05
06
07
08
09
10
11
12
13
14
15
/* Estrutura de regras recursivas */
ancestral(X,Y) :- mãe(X,Y).
ancestral(X,Y) :- pai(X,Y).
ancestral(X,Y) :- mãe(X,Z),ancestral(Z,Y).
ancestral(X,Y) :- pai(X,Z),ancestral(Z,Y).
/* Ordem de unificação dos predicados */
ancestral(X,Y) :- ancestral(Z,Y),mãe(X,Z).
ancestral(X,Y) :- ancestral(Z,Y),pai(X,Z).
16
17
18
19
20
21
22
23
24
25
26
bruna.oliveira.947632@sga.pucminas.br
izabela.borges@sga.pucminas.br