Programação lógica e funcional
Por: Iasmin Moura • 5/8/2019 • Trabalho acadêmico • 311 Palavras (2 Páginas) • 242 Visualizações
1. Formalize os argumentos abaixo e depois valide-os usando dedução:
Se Felipe passa creme, então ele fica triste
Se a pele de Felipe está irritada, ele passa creme
Felipe não está triste
Logo, a pele de Felipe não está irritada
p: Felipe passa creme
q: Felipe está triste
r: A pele de Felipe está irritada
(p → q), (r → p), ¬q ╞ ¬r
1. p → q
2. r → p
3. ¬q
------------------------------
4. p → q, ¬q ╞ ¬p MT(1,3)
5. r → p, ╞ ¬r MT(2,4)
2. O predicado num()/2 classifica números em três categorias: positivos, nulo e negativos. Esse predicado da maneira como está definido, realiza retrocesso desnecessário. Explique por que isso acontece e, em seguida, utilize cortes para eliminar esse retrocesso.
num(N, positivo) :- N > 0.
num(0, nulo).
Num(N, negativo) :- N < 0.
O retrocesso ocorre devido ao fato do programa retornar sempre pra verificar se o número em questão é nulo.
num(N, positivo) :- N > 0.
num(N, negativo) :- N < 0.
num(0, nulo).
3. Usando os fatos abaixo responda as questões sub-sequentes:
animal(mamifero, tigre,carnivoro,listrado).
animal(mamifero, iena,carnivoro,disforme).
animal(mamifero,leao,carnivoro,juba).
animal(mamifero,zebra,herbivoro,listrado).
animal(ave,aguia,carnivoro,grande).
animal(ave,pardal,catador,pequeno).
animal(reptil,cobra,carnivoro,largo).
animal(reptil,lagarto,catador,pequeno).
a) Faça uma consulta que retorne todos os mamíferos;
?- animal(mamifero, X, _, _).
X = tigre ;
X = iena ;
X = leao ;
X = zebra.
b) Faça uma consulta que retorne todos os mamíferos que são carnívoros;
?- animal(mamifero, X, carnivoro, _).
X = tigre ;
X = iena ;
X = leao ;
false.
c) Faça uma consulta que retorne todos os mamíferos com listras;
?- animal(mamifero, X, _, listrado).
X = tigre ;
X = zebra.
d) Faça uma consulta que retorne qualquer réptil com listras.
animal(reptil, X, _, listrado).
false.
...