Exercícios de Lógica de Primeira Ordem
Estes exercícios foram copiados e/ou inspirados nas seguintes obras:
- Lógica e Aritmética de Augusto Franco de Oliveira.
- forallχ de P. D. Magnus.
- Logic in Computer Science de Michael Huth e Mark Ryan.
- Artificial Intelligence, A Modern Approach de Stuart Russell e Peter Norvig.
- Mathematics for Computer Science: Course Textbook de Eric Lehman, F Thomson Leighton e Albert R Meyer.
Formalização de Linguagem Natural
Exercício 1 No domínio dos animais, formalize:
- O Aníbal, o Bói e a Certa vivem no Jardim Zoológico.
- Bói é um réptil, mas não é um crocodilo.
- Se Certa gosta do Bói então Bói é um macaco.
- Se Bói e Certa são crocodilos, Aníbal gosta de ambos.
- Alguns répteis vivem no jardim zoológico.
- Todo o crocodilo é um réptil.
- Qualquer animal que viva num jardim zoológico é um macaco ou um crocodilo.
- Alguns répteis não são crocodilos.
- Certa gosta de um réptil.
- Bói gosta de todos os macacos que moram no jardim zoológico.
- Todos os animais de que Aníbal gosta também gostam dele.
- Se algum animal for um réptil, é o Aníbal.
- Se algum animal for um crocodilo, também é um réptil.
- Qualquer animal de que Certa gosta, também Aníbal gosta.
- Há um animal que gosta do Bói mas, infelizmente, o Bói não corresponde.
Exercício 2 $$ \begin{array}{ll} S\at{x} & x~\text{sabe a combinação do cofre.}\cr E\at{x} & x~\text{é espião.}\cr V\at{x} & x~\text{é vegetariano.}\cr C\at{x,y} & x~\text{confia em}~y.\cr B & \text{Bond, James.}\cr G & \text{Nell, Ma.} \end{array} $$
Use os símbolos acima para formalizar:
- Bond é um espião, mas nenhum vegetariano é espião.
- Ninguém sabe a combinação do cofre, a não ser que Nell a saiba.
- Nenhum espião sabe a combinação do cofre.
- Nem Bond nem Nell são vegetarianos.
- Nell confia num vegetariano.
- Quem confia em Bond confia num vegetariano.
- Quem confia em Bond confia em alguém que confia num vegetariano.
- Só Nell sabe a combinação do cofre.
- Nell confia em Bond, mas em mais ninguém.
- A pessoa que sabe a combinação do cofre é vegetariano.
- A pessoa que sabe a combinação do cofre não é espião.
Exercício 3 Defina linguagens adequadas, formalize e demonstre:
- Os únicos candidatos são o João e o Alberto. O João e o Alberto são idiotas. Portanto, qualquer candidato é idiota.
- Todo o barbeiro faz a barba das pessoas que não se barbeiam a si próprias. Nenhum barbeiro faz a barba das pessoas que se barbeiam a si próprias. Portanto, não existem barbeiros.
Fórmulas Proposicionais
Exercício 4 Tendo em conta as convenções de escrita, desenhe árvores de análise sintática das seguintes fórmulas:
- $p\at{a}$
- $p\at{a} \to q\at{a}$
- $\forall x~ p\at{x}\to q\at{x}$
- $p\at{a} \land \del{\forall x~ p\at{x}\to q\at{x} \to q\at{a}}$
- $\del{p\at{a} \land \forall x~ p\at{x}\to q\at{x}} \to q\at{a}$
- $\del{p\at{a} \land \forall x~ p\at{x}} \to \del{q\at{x} \to q\at{a}}$
Exercício 5 Ocorrências Livres e Ligadas
-
Identifique as ocorrências livres e ligadas da variável $x$ nas seguintes fórmulas:
- $\forall x~(p(x) \to q(x))$
- $p(x) \land \exists y~r(x, y)$
- $\forall y~ (p(y) \to q(x))$
- $\exists x~ (p(x) \lor r(x, y))$
- $(\forall x~ p(x)) \to q(x)$
-
Indique se as seguintes afirmações são verdadeiras ou falsas:
- Na fórmula $\forall x~(p(x) \to q(x))$, todas as ocorrências de $x$ são ligadas.
- Na fórmula $p(x) \land \exists y~ r(x, y)$, a primeira ocorrência de $x$ é livre e a segunda é ligada.
- Na fórmula $\forall y~(p(y) \to q(x))$, a variável $x$ não tem ocorrências ligadas.
- Na fórmula $\exists x~ (p(x) \lor r(x, y))$, a variável $y$ tem uma ocorrência livre.
- Na fórmula $(\forall x~p(x)) \to q(x)$, a variável $x$ tem uma ocorrência livre.
-
Reescreva as seguintes fórmulas, renomeando as variáveis ligadas para evitar conflitos de nomes:
- $\forall x~(p(x) \to \exists x~ q(x))$
- $\exists x~ (p(x) \land \forall y~r(x, y))$
- $\forall x~(p(x) \to \exists y~ (q(y) \land r(x, y)))$
-
Construa fórmulas da lógica de primeira ordem que satisfaçam as seguintes condições:
- Uma fórmula com duas variáveis livres e uma variável ligada.
- Uma fórmula com uma variável livre e duas variáveis ligadas.
- Uma fórmula com todas as variáveis ligadas.
- Uma fórmula com todas as variáveis livres.
-
Considere a seguinte fórmula: $\forall x~(p(x) \to \exists y~ (q(x, y) \land r(y)))$
- Identifique as ocorrências livres e ligadas de $x$ e $y$.
- Reescreva a fórmula, renomeando as variáveis ligadas para evitar conflitos de nomes.
- Construa um modelo que satisfaça a fórmula.
-
Identifique os termos livres e não livres na fórmula $\forall x~ (p(x, y) \to q(f(x), z))$.
-
Quais dos seguintes termos são livres e quais são não livres na fórmula $\exists x~(r(x, g(y)) \land \forall z~ s(x, z, h(x)))$?
- $x$
- $y$
- $z$
- $g(y)$
- $h(x)$
-
Dada a fórmula $\forall x~(p(x) \to \exists y~q(x, y, f(z)))$, determine se as seguintes afirmações são verdadeiras ou falsas:
- O termo $x$ é livre para $z$.
- O termo $y$ é não livre para $z$.
- O termo $z$ é livre para $z$.
- O termo $f(z)$ é não livre para $z$.
-
Construa uma fórmula da lógica de primeira ordem com as seguintes características:
- Contém pelo menos um termo livre e um termo não livre.
- Utiliza as funções $f$ e $g$ e os predicados $p$ e $q$.
Dedução Natural
Exercício 6 Faça as seguintes provas, usando acumulativamente as regras e condições indicadas:
Sejam $p, q, r$ símbolos relacionais, $f$ funcional e $a, b$ termos adequados.
Eliminação Universal: $\ndEQU$
- $p\at{a}, \forall x~p\at{x}\to q\at{x} \vdash q\at{a}$
- $\neg q\at{a}, \forall x~ p\at{x}\to q\at{x} \vdash \neg p\at{a}$
Introdução Universal: $\ndIQU$.
- $\forall x~ p\at{x} \to q\at{x}, \forall x~q\at{x} \to r\at{x} \vdash \forall x~\del{p\at{x} \to r\at{x}}$
- $\forall x~ p\at{x}, \forall x~ p\at{x}\to q\at{x} \vdash \forall x~ q\at{x}$
- $\forall x~ p\at{x} \land q\at{x} \vdash \forall x~ p\at{x}$
- $\forall x~ p\at{x} \land q\at{x} \dashv\vdash \forall x~ p\at{x} \land \forall x~ q\at{x}$
- $\forall x~ p\at{x} \lor q\at{x}, \forall x~ \neg p\at{x}\vdash \forall x~ q\at{x}$
Introdução Existencial: $\ndIQE$.
- $p\at{a}, \forall x~ p\at{x} \to q\at{x}\vdash \exists x~ q\at{x}$
Eliminação Existencial: $\ndEQE$.
N.B. $\forall xy$ abrevia $\forall x~ \forall y$ e também $\exists xy$ abrevia $\exists x~ \exists y$._
- $\exists x~ p\at{x}, \forall x~ p\at{x} \to q\at{x}\vdash \exists x~ q\at{x}$
- $\forall x~ p\at{x} \dashv\vdash \forall y~ p\at{y}$
- $\exists x~ p\at{x} \dashv\vdash \exists y~ p\at{y}$
- $\forall xy~ p\at{x,y} \dashv\vdash \forall yx~ p\at{x,y}$
- $\exists xy~ p\at{x,y} \dashv\vdash \exists yx~ p\at{x,y}$
- $\exists x~ p\at{x} \dashv\vdash \exists xy~ p\at{x} \land p\at{y}$
- $\exists x\forall y~ p\at{x,y} \vdash \forall y\exists x~ p\at{x,y}$
- $\forall x~ p\at{x} \dashv\vdash \neg \exists x~ \neg p\at{x}$
- $\exists x~ p\at{x} \dashv\vdash \neg \forall x~ \neg p\at{x}$
Seja $s$ uma fórmula sem variáveis livres e onde não ocorre $x$.
- $\forall x~ s \to p\at{x} \dashv\vdash s \to \forall x~ p\at{x}$
- $\forall x~ s \land p\at{x} \dashv\vdash s \land \forall x~ p\at{x}$
- $\forall x~ s \lor p\at{x} \dashv\vdash s \lor \forall x~ p\at{x}$
- $\exists x~ s \lor p\at{x} \dashv\vdash s \lor \exists x~ p\at{x}$
- $\exists x~ s \land p\at{x} \dashv\vdash s \land \exists x~ p\at{x}$
- $\exists x~ \del{p\at{x} \to s} \dashv\vdash \del{\forall x~ p\at{x}}\to s$
- $\forall x~ \del{p\at{x} \to s} \dashv\vdash \del{\exists x~ p\at{x}}\to s$
Introdução da Igualdade: $\ndIEqual$.
- Se em $t$ não ocorrem variáveis, $\vdash \exists x~ x = t$
- $\vdash \exists x~ x=x$
Eliminação da Igualdade: $\ndEEqual$.
- $\vdash \forall x~ x=x$
- $\vdash \forall xy~ x=y \to y = x$
- $\vdash \forall xyz~ \del{x=y \land y = x}\to x = z$
- $\vdash \forall xyuv~ \del{x = u \land y = v} \to \del{r\at{x,y} \liff r\at {u,v}}$
- $\vdash \forall xyuv~ \del{x = u \land y = v} \to \del{f\at{x,y} = f\at {u,v}}$
- $p\at{a} \dashv\vdash \exists x~ x = a \land p\at{x}$
- $\forall x~ p\at{x}\to\del{x = a \lor x = b}, \exists x~ p\at{x}\land q\at{x} \vdash q\at{a} \lor q\at{b}$
- $p\at{a} \dashv\vdash \forall x~ x = a \to p\at{x}$
- $\vdash \forall xyz~ \del{x = y \land y = z} \to x = y$.
Consequência Semântica
Exercício 7 Senhor dos Anéis $$ \begin{array}{ll} \cat{U} & \cbr{\lit{Legolas}, \lit{Aragorn}} \cr a^v & \cbr{\lit{Legolas}, \lit{Aragorn}} \cr b^v & \cbr{\lit{Legolas}} \cr n^v & \emptyset \cr c^v & \lit{Aragorn} \cr \end{array} $$
Use a interpretação acima para determinar das fórmulas seguintes quais são verdadeiras e quais são falsas.
- $b\at{c}$
- $a\at{c} \liff \neg n\at{c}$
- $\forall x~ a\at{x}$
- $n\at{c} \to \del{a\at{c} \lor b\at{c}}$
- $\forall x~ \neg b\at{x}$
- $\exists x~ a\at{x} \land b\at{x}$
- $\exists x~ a\at{x} \to n\at{x}$
- $\exists x~ b\at{x} \to \forall x~ a\at{x}$
Exercício 8 Alien
$$ \begin{array}{ll} \cat{U} & \cbr{\lit{Ripley}, \lit{Dallas}, \lit{Kane}} \cr h^v & \cbr{\lit{Ripley}, \lit{Dallas}, \lit{Kane}} \cr w^v & \cbr{\lit{Ripley}, \lit{Dallas}} \cr r^v & \cbr{ \del{\lit{Ripley}, \lit{Dallas}}, \del{\lit{Dallas}, \lit{Kane}}, \del{\lit{Kane}, \lit{Ripley}} } \cr m^v & \lit{Kane} \cr \end{array} $$
Use a interpretação acima para determinar das fórmulas seguintes quais são verdadeiras e quais são falsas.
- $\exists x~ r\at{x, m} \land r\at{m, x}$
- $\forall x~ r\at{x, m} \lor r\at{m, x}$
- $\forall x~ h\at{x} \liff w\at{x}$
- $\forall x~ r\at{x, m} \to w\at{x}$
- $\forall x~ w\at{x} \to \del{h\at{x} \land w\at{x}}$
- $\exists x~ r\at{x, x}$
- $\exists xy~ r\at{x, y}$
- $\forall xy~ r\at{x, y}$
- $\forall xy~ r\at{x, y} \lor r\at{y, x}$
- $\forall xyz~ \del{r\at{x, y} \land r\at{y, z}}\to r\at{x,z}$
Exercício 9 Mostre que as seguintes relações $\models$ estão erradas, construindo interpretações onde as hipóteses são verdadeiras a conclusão falsa:
- $\forall x~ p\at{x} \to q\at{x} \models \exists x~ q\at{x}$
- $\forall x~ p\at{x} \to q\at{x}, \forall x~ p\at{x} \to r\at{x} \models \exists x~ q\at{x} \land r\at{x}$
- $\exists x~p\at{x} \to q\at{x} \models \exists x~p\at{x}$
- $p\at{a}, p\at{b}, p\at{c} \models \forall x~p\at{x}$
- $p\at{a,b}, \exists x~ p\at{x, a} \models p\at{b,a}$
- $\exists x~p\at{x} \land q\at{x}, \exists x~ q\at{x} \to \exists x~ r\at{x} \models \exists x~ p\at{x} \land r\at{x}$
- $\forall x~p\at{x, a}, \forall x~ p\at{a, x} \models \forall x~ p\at{x, x}$
- $\exists x~p\at{x} \land q\at{x}, \exists x~ \neg p\at{x}, \exists x~ \neg q\at{x} \models \exists x~ \neg p\at{x} \land \neg q\at{x}$
- $p\at{a,b} \to \forall x~p\at{x, b}, \exists x~ p\at{x, b} \models p\at{b, b}$
Aplicações
Exercício 10 Linguagem das Árvores Genealógicas
- Partindo apenas das relações $\lit{Descendente}, \lit{Cônjuge}$ e $\lit{Feminina}$, defina as restantes relações e funções $$ \begin{gathered} \neut{Progenitor}_2, \neut{Irm}_2, \lit{Irmão}_2, \lit{Irmã}_2, \lit{Descendente}_2, \lit{Filha}_2, \cr \lit{Filho}_2, \lit{Cônjuge}_2, \lit{Marido}_2, \lit{Esposa}_2, \neut{Av}_2, \neut{Net}_2, \neut{Ti}_2 \end{gathered} $$
- Consulte a árvore genealógica dos deuses gregos nesta página da wikipédia e deduza quem são $\neut{}s~\neut{Net}s$ de $\lit{Phoebe}$, $\neut{}s~\neut{Cunhad}s$ de $\lit{Hestia}$, e $\neut{}s~\neut{Bisav}s$ de $\lit{Anteros}$ num sistema lógico adequado (por exemplo, prolog).
Exercício 11 Linguagem dos Conjuntos
Formalize:
- Um conjunto é subconjunto de outro se e só se todos os elementos do primeiro conjunto são elementos do segundo conjunto.
- Dois conjuntos são iguais se e só se cada um é subconjunto do outro.
- Um elemento está na interseção de dois conjuntos se e só se é elemento de ambos os conjuntos.
- Um elemento está na união de dois conjuntos se e só se é elemento de algum dos conjuntos.
Exercício 12 Linguagem das Listas
- Formalize as regras das listas.
Formalize, classifique (compatível, contingente, válida, contradição) justificando formalmente, dê exemplos e contra-exemplos das seguintes afirmações e afirmações:
- $\fat{First}{\sbr{x|y}} = x$ e $\fat{Rest}{\sbr{x|y}} = y$.
- $\fat{Find}{a, \sbr{x|y}}$ se e só se $a = x$ ou $\fat{Find}{a, y}$.
- Duas listas são iguais se têm os mesmos elementos nas mesmas posições.
- Defina a função $\fat{Append}{x,y}$ de acordo com as seguintes regras: $$ \begin{aligned} \fat{Append}{\sbr{~ }, z} &= z \cr \fat{Append}{\sbr{x | y}, z} &= \sbr{x | \fat{Append}{y,z}} \end{aligned} $$
- Defina a função comprimento de uma lista, acrescentando a linguagem dos números naturais.
- Mostre que duas listas iguais têm o mesmo comprimento.
- Mostre se existem listas diferentes com o mesmo comprimento (e se no domínio existir só um elemento?).
- Mostre se duas listas que têm os mesmos elementos também têm o mesmo comprimento.