Validade e Equivalência

Frank Coelho de Alcantara -2020   

Singularidade

Os quantificadores existencial e universal são muito importantes na matemática e, com ele podemos representar todas as condições envolvendo quantidades em raciocínio lógico. Contudo, existe uma representação $\exists!$ especial. Este ponto de exclamação não faz parte da linguagem da lógica predicativa, como definimos anteriormente, mas tem aplicação na prova de teoremas representando expressões: Existe um único $x$ para o qual $P(x)$ é verdadeiro. E pode ser utilizado para representar expressões diversas como:

  1. Existe um e somente um;
  2. Existe exatamente um;

Igualdade

A igualdade é um predicado, normalmente representado por $=$. Em alguns textos de lógica a igualdade faz parte da linguagem adotada. Isto é mais evidente em textos voltados para prova matemática.

Interpretamos o predicado $x=y$ de tal forma que $x$ e $y$ são variáveis que representam exatamente o mesmo elemento em um determinado domínio.

A igualdade pode ser representada por: $$\forall x \forall y (x=y\rightarrow (P(x)\leftrightarrow P(y)))$$

De onde é possível afirmar: $x=y, P(x) \vdash P(y)$ para todo e qualquer predicado $P$.

Quantificadores Aninhados

Considere que as variáveis $x$ e $y$ existem no domínio dos números reais e que $$\forall x \forall y(x + y = y + x)$$

Neste caso estamos dizendo que para quaisquer números reais $x$ e $y$ $x+y=y+x$ que vem a ser a definição da propriedade comutativa da adição no domínio dos números reais. Considere: $$\forall x \exists y (x + y = 0)$$

Neste caso, estamos dizendo que, nos números reais, para qualquer $x$ existe um $y$ que é o seu inverso aditivo.

Por fim, considere: $$\forall x \forall y \forall z(x + (y + z) = (x + y) + z)$$

Exemplo 1

No domínio dos números reais, traduza para linguagem natural: $$\forall x\forall y((x > 0) \wedge (y < 0) → (xy < 0))$$

Para todos os números reais $x$ e para todos os números reais $y$, se $x$ é maior que 0 e $y$ é menor que 0 então o produto entre $x$ e $y$ será menor que zero. Ou, simplificando: no domínio dos reais qualquer produto entre um número negativo e e um número positivo resultará em um número real negativo.

Organizando o Pensamento

Se a interpretação dos quantificadores estiver difícil, podemos simplificar pensando em forma de laços. Isto é uma metáfora, mas ajuda.

Para verificar se $\forall x \forall yP(x, y)$ é verdadeiro, vamos imaginar dois laços aninhados. No primeiro vemos a primeira instância de $x$ e para esta instância corremos o outro laço para todas as instâncias de $y$. Quando avaliarmos todos os $y$, passamos para o próximo $x$ e voltamos a analisar todos os $y$. Se existir um único par $x$ e $y$ onde $P(x,y)$ seja falso então $\forall x \forall yP(x, y)$ é falso.

Igualmente, para verificar se $\forall x \exists yP(x, y)$ repetimos o mesmo laço até encontrar um par $x$, $y$ onde $P(x,y)$ seja verdadeiro. Se não encontrarmos nenhum destes pares então $\forall x \exists yP(x, y)$ é falso.

Exemplo 2

Descreva, com as suas palavras, no seu caderno, o procedimento mental (laço) que devemos utilizar para encontrar a verdade de:

  1. $\exists x \forall yP(x, y)$
  2. $\exists x \exists yP(x, y)$

Resposta 1: fazemos o laço por todos os valores de $x$ e para cada $x$ percorremos todos os valores de $y$ para verificar se existe um valor de $x$ para o qual, em todos os valores de $y$, $P(x,y)$ é verdadeiro, se sim, $\exists x \forall yP(x, y)$ é verdadeiro e paramos no primeiro $x$ que satisfaça esta condição. Caso contrário $\exists x \forall yP(x, y)$ é falso.

Resposta 2: fazemos o laço por todos os valores de $x$ e para cada $x$ verificamos todos os valores de $y$ até encontrar uma combinação de $x$ e $y$ onde $P(x,y)$ seja verdadeiro. Neste caso $\exists x \exists yP(x, y)$ será verdadeiro. Caso nunca encontremos um par $x$ e $y$ onde $P(x,y)$ seja verdadeiro então $\exists x \exists yP(x, y)$ será falso.

Exemplo 3

Considere o modelo $M$ onde o universo é o conjunto dos números naturais e os predicados $MD$ representando "é múltiplo de dez" e $IP$ representando "é par". Traduza para a linguagem natural as sentenças a seguir e indique sua veracidade ou não.

  1. $\forall xMD(x)$
  2. $\forall xIP(x)$
  3. $\exists x(MD(x) \wedge IP(x))$
  4. $\exists x(IP(x) \wedge \neg MD(x))$
  5. $\forall x(IP(x) \rightarrow MD(x))$

Exemplo 3 - Resposta

Considere o modelo $M$ onde o universo é o conjunto dos números naturais e os predicados $MD$ representando "é múltiplo de dez" e $IP$ representando "é par". Traduza para a linguagem natural as sentenças a seguir e indique sua veracidade ou não.

  1. $\forall xMD(x)$ - todos os números naturais são múltiplos de 10 - Falso.
  2. $\forall xIP(x)$ - todos os números naturais são pares - Falso.
  3. $\exists x(MD(x) \wedge IP(x))$ - Existe um número natural que é múltiplo de dez e par - Verdadeiro.
  4. $\exists x(IP(x) \wedge \neg MD(x))$ - Existe um número natural que é par e não é múltiplo de dez - Verdadeiro.
  5. $\forall x(IP(x) \rightarrow MD(x))$ - se for número natural e par será também múltiplo de dez - Falso.

Validade

Considere a expressão: $$\forall xP(x) \vee \neg \forall xP(x)$$

Podemos afirmar que esta expressão é verdadeira para qualquer modelo, qualquer predicado e qualquer instância.

Um dos lados da disjunção sempre será verdadeiro.

Dizemos que uma expressão é válida se esta expressão for verdadeira em todo, e qualquer modelo.

Dizemos que uma expressão é contraditória se esta expressão for falsa em todo, e qualquer modelo.

Validade e Tautologia

A validade no cálculo de predicados tem a mesma aplicação da tautologia no cálculo proposicional.

Contudo há uma diferença importante.

Para dizer que uma fórmula proposicional é tautológica basta encontrar a tabela verdade desta fórmula.

Para dizer que uma expressão predicativa é válida, temos que avaliar esta expressão em todos os modelos independente do universo ou do predicado e para todas as interpretações possíveis.

Isso parece um tanto quanto difícil!.

Exercício 1

Considere as seguintes expressões e determine se são válidas ou contraditórias e justifique, usando a linguagem natural, sua definição.

  1. $\exists xP(x) \leftrightarrow \neg \forall x \neg P(x)$
  2. $\forall xP(x) \leftrightarrow \neg \exists x \neg P(x)$
  3. $\exists x(P(x) \vee B(x)) \leftrightarrow \exists x P(x) \vee \exists x B(x)$
  4. $\forall x(P(x) \wedge B(x)) \leftrightarrow \forall x P(x) \vee \forall x B(x)$

Equivalência e Implicação

Dizemos que a expressão $P$ implica em $Q$ se e somente se a expressão $P\rightarrow Q$ for válida.

Dizemos que a expressão $P$ é equivalente em $Q$ se e somente se a expressão $P\leftrightarrow Q$ for válida.

Suponha que $P$ implica em $Q$ e que $Q$ implica em $P$. Então $P\rightarrow Q$ e $Q \rightarrow P$ são válidas. E isto será verdade para qualquer modelo, predicado, ou variável das expressões $P$ e $Q$.

Parece que melhorou um pouco!

Não validade

Para mostrar que uma expressão não é logicamente válida basta provar que existe uma, e somente uma, combinação de universo, instância e predicado, para aquelas expressões na qual elas não são válidas.

Basta encontrar um modelo onde as expressões não são equivalentes.

Exemplo 4

Mostre que $\forall x(P(x)\vee Q(x))$ não é válida. Escreva no seu caderno

Para tanto, precisamos encontrar um modelo onde $\forall x(P(x)\vee Q(x))$ não seja verdade. Considere o universo dos números naturais. Considere $P(x)$ como "$x$ é impar" e $Q(x)$ como "$x$ é múltiplo de 10". Neste modelo, $\forall x(P(x)\vee Q(x))$, significa: todos os números naturais são ímpares ou múltiplos de 10. Logo, neste modelo $\forall x(P(x)\vee Q(x))$ é falsa e, consequentemente, não válida.

Instâncias Tautológicas

Dizemos que uma expressão é uma instância tautológica se ela for o resultado da substituição uniforme das proposições, em uma formula bem formada de uma tautologia, por expressões do cálculo de predicados.

Determinar que uma expressão é ou não uma instância tautológica depende apenas da sintaxe da expressão. Ignoramos o modelo.

No cálculo proposicional a fórmula bem formada $p \rightarrow p$ é uma tautologia. Então, qualquer expressão do cálculo de predicados neste padrão será uma instância tautológica.

Qualquer instância tautológica é uma expressão válida!

Exemplo 4

São instâncias tautológicas:

Baseadas em $p \rightarrow p$: $$P(x) \rightarrow P(x)$$ e $$\forall x \exists yQ(x,y) \rightarrow \forall x \exists yQ(x,y)$$

Baseadas em $p \rightarrow (q \rightarrow p)$: $$\forall x \exists yQ(x,y) \rightarrow(\exists xP(x) \rightarrow \forall x \exists yQ(x,y))$$

Extrapolando os conceitos

Observe que $P(x) \rightarrow P(x)$ é uma instância tautológica e possui uma variável livre (variáveis que não estão no escopo de um quantificador).

Se $P(x) \rightarrow P(x)$ é válida, tem que ser válida em qualquer modelo. Logo $\forall x(P(x) \rightarrow P(x))$ é válido.

$\forall x(P(x) \rightarrow P(x))$ é válida!

Assim se $P(x)$ representa uma expressão válida, $\forall xP(x)$,$\forall xP(x)$, $\forall x\forall yP(x)$ também serão válidas.

$P(x) \rightarrow P(x)$ é uma instância tautológica. $\forall x(P(x) \rightarrow P(x))$ não é instância tautológica, mas ambas são expressões válidas.

Resumo

Toda instância tautológica é válida.

Todas as expressões construídas com quantificadores na frente de uma expressão é válida.

Existem expressões válidas que não são instâncias tautológicas.

Assim se $P(x)$ representa uma expressão válida, $\forall xP(x)$,$\forall xP(x)$, $\forall x\forall yP(x)$ também serão válidas.

$P(x) \rightarrow P(x)$ é uma instância tautológica. $\forall x(P(x) \rightarrow P(x))$ não é instância tautológica, mas ambas são expressões válidas.

Exercício 2

Na figura a seguir existe um conjunto de expressões válidas identifique aquelas que são instâncias tautológicas e justifique.

permite otimização utilizando as características da linguagem.

Dualidade

Os quantificadores são duais: $$\forall xP(x) \Leftrightarrow \neg \exists x \neg P(x)$$ $$\exists xP(x) \Leftrightarrow \neg \forall x \neg P(x)$$

Em alguns trabalhos o alfabeto adotado para a linguagem da lógica de predicados não contem o símbolo $\exists$ é usado apenas $\neg \forall \neg$ em seu lugar.

Comutabilidade

Quantificadores do mesmo tipo são comutáveis: $$\forall x \forall yP(x,y) \Leftrightarrow \forall y \forall xP(x,y)$$ $$\exists x \exists yP(x,y) \Leftrightarrow \exists y \exists xP(x,y)$$

Quantificadores diferentes comutam em apenas uma direção:$$\exists x \forall yP(x,y) \Rightarrow \forall y \exists xP(x,y) $$

Distributividade

Quantificadores universais são completamente distributivos sobre a conjunção: $$\forall x(P(x) \wedge Q(x)) \Leftrightarrow \forall xP(x) \wedge \forall xQ(x)$$

Quantificadores universais são distributivos sobre a disjunção em uma direção: $$\forall xP(x) \vee \forall xQ(x) \Rightarrow \forall x(P(x) \vee Q(x))$$

Quantificadores existenciais são completamente distributivos sobre a disjunção::$$\exists x(P(x) \vee Q(x)) \Leftrightarrow \exists xP(x) \vee \exists xQ(x)$$

Quantificadores existenciais são distributivos sobre a conjunção em uma direção: $$\exists x(P(x) \wedge Q(x)) \Rightarrow \exists xP(x) \wedge \exists xQ(x)$$

Distributividade e variáveis livres

A aplicação de quantificadores a conjunção ou disjunção em expressões que contém variáveis livres permitem a distribuição completa.

$$\exists xP(x) \vee Q \Leftrightarrow \exists x(P(x) \vee Q)$$ $$\forall xP(x) \vee Q \Leftrightarrow \forall x(P(x) \vee Q)$$
$$Q \vee \exists xP(x) \Leftrightarrow \exists x(Q \vee P(x))$$ $$Q \vee \forall xP(x) \Leftrightarrow \forall x(Q \vee P(x))$$
$$\exists xP(x) \wedge Q \Leftrightarrow \exists x(P(x) \wedge Q)$$ $$\forall xP(x) \wedge Q \Leftrightarrow \forall x(P(x) \wedge Q)$$
$$Q \wedge \exists xP(x) \Leftrightarrow \exists x(Q \wedge P(x))$$ $$Q \wedge \forall xP(x) \Leftrightarrow \forall x(Q \wedge P(x))$$

Quantificação e implicação

O quantificador universal é distributivo sobre a bicondicional em uma direção: $$\forall x(P(x) \leftrightarrow Q(x)) \Rightarrow (\forall x P(x) \leftrightarrow \forall x Q(x))$$

Se um dos operadores for uma variável livre então: $$ \forall x(P(x) \rightarrow Q) \Leftrightarrow (\exists x P(x) \rightarrow Q)$$ $$ \forall x(Q \rightarrow P(x)) \Leftrightarrow (Q \rightarrow \forall x P(x))$$

Para o quantificador existencial temos: $$ \forall x(P(x) \leftrightarrow Q(x)) \Rightarrow (\exists xP(x) \leftrightarrow \exists xQ(x))$$

Sobre a implicação

As seguintes expressões são verdadeiras:

$$\exists x(P(x) \rightarrow Q(x)) \Leftrightarrow (\forall xP(x) \rightarrow \exists xQ(x))$$ $$(\exists xP(x) \rightarrow \forall xQ(x)) \Rightarrow \forall x(P(x) \rightarrow Q(x))$$
$$\forall x(P(x) \rightarrow Q(x)) \Rightarrow (\exists xP(x) \rightarrow \exists xQ(x))$$ $$\forall x(P(x) \rightarrow Q(x)) \Rightarrow (\forall xP(x) \rightarrow \exists xQ(x))$$

Exemplo 5

Já podemos fazer derivações de expressões predicativas:

$\exists x(P(x) \rightarrow Q(x))$ $\equiv \exists x(\neg P(x) \vee Q(x))$
$\equiv \exists x \neg P(x) \vee \exists xQ(x)$
$\equiv \neg \exists x \neg P(x) \rightarrow \exists xQ(x)$
$\equiv \forall xP(x) \rightarrow \exists xQ(x)$

Consultando suas anotações e os slides das aulas, justifique, no seu caderno, cada uma destas passagens.

Exercício Somativo para Prova

Esta questão vale dois pontos na prova do segundo bimestre:

A seguinte história foi retirada do livro de Wirth (1976) Algorithms + data structures = programs:

Eu casei com uma viúva, vamos chamá-la de W, que tem uma filha adulta, que chamaremos de D. Meu pai (P), que nos visita com frequência, se apaixonou por minha filha adotiva e casou com ela. Desta forma, meu pai se tornou meu genro e minha filha adotiva se transformou na minha madastra. Alguns meses mais tarde minha esposa deu a luz a um menino, meu filho (F), o qual é cunhado do meu pai e meu tio. A esposa do meu pai, que é minha filha adotiva, também teve um filho (F2).

Use o cálculo de predicados para criar um conjunto de expressões para representar a situação descrita por Wirth, expressões que definam os relacionamentos familiares descritos e prove que eu sou meu próprio neto. Valendo 1 ponto na prova do segundo bimestre.

Implemente todo este problema em Prolog e encontre quem é meu neto.