Lógica de Predicados de 1a Ordem – Parte 1
A Lógica de Predicados de 1a Ordem (que pode ser chamada simplesmente de Lógica de Predicados ou de Lógica de 1a Ordem) estende a Lógica Proposicional, deixando-a
mais poderosa. Esta lógica estendida é a lógica é capaz de representar praticamente to-das as sentenças matemáticas com que estamos lidando neste curso.
Para ilustrar, considere a seguinte afirmação matemática: “Se x e y são pares, então x+y é par”. Como poderíamos representá-lo na Lógica Proposicional?
Poderíamos assumir as seguintes “proposições”:
p: x é par
q: y é par
r : (x+y) é par
Assim, a afirmação seria representada pela fórmula:
p q r
No entanto, há três problemas com a fórmula lógica acima, que a tornam inadequada para representar a afirmação desejada com fidelidade:
1. Ela não mostra a interligação que existe entre as proposições – todas as três proposições afirmam que alguma coisa “é par”, no entanto, isso não fica claro na fórmula lógica final!
2. Os valores-verdade de p, q e r não são bem-definidos porque eles depen-dem dos valores inteiros de x e y. Logo, p, q e r, bem como a fórmula final, não são “proposições” verdadeiras. Neste exemplo, se deseja afirmar algo que vale para todo valor inteiro possível de x e y, mas a Lógica Proposici-onal não consegue representar isso.
1. Predicados
A Lógica de 1a Ordem resolve o primeiro problema introduzindo o conceito de predica-do. Um predicado é uma afirmação que depende de uma ou mais variáveis. Abaixo,
definimos alguns exemplos de predicados:
Par(a) representa “a é par”
Ímpar(a) representa “a é ímpar”
Primo(a) representa “a é primo”
Divide(x,y) representa “x é divisor de y” (ou “x divide y”)
Um predicado se torna uma proposição quando são atribuídos valores aos parâmetros (variáveis). Por exemplo:
Par(2) – (a proposição “2 é par”) é verdadeira
Par(3) – é falsa
Par(4) – é verdadeira
Primo(2) – é verdadeira
Primo(3) – é verdadeira
Primo(4) – é falsa
Divide(2,4) – é verdadeira
Divide(3,2) – é falsa
Divide(3,0) – é verdadeira
O predicado é como uma função que, ao receber os valores de entrada, retorna uma proposição (com um valor-verdade específico). Por isso, os predicados também podem
ser chamados de funções proposicionais. Veja que a própria notação é de função.
Podemos usar todos os operadores lógicos da Lógica Proposicional para formar fórmu-las diversas da Lógica de 1a Ordem. Se usarmos o predicado Par(a) definido logo aci-ma, poderemos reescrever a afirmação da introdução assim:
)
(
)
(
)
(
x
Par
y
Par
x
y
Par
Vamos tomar um exemplo de um problema mais informal, que analisamos antes com a Lógica Proposicional (na parte 3 daquele assunto), composto por estas três afirmações:
Alice vai à igreja.
Henrique vai à igreja.
Marcos vai à igreja.
Veja que temos três afirmações muito parecidas. No entanto, fomos obrigados a usar três variáveis proposicionais (a, h e m). No caso acima, poderíamos usar esse predicado ou função proposicional:
VaiIgreja(x) representa “x vai à igreja”
Assim, as três afirmações do início podem ser representadas simplesmente como:
VaiIgreja(Alice)
VaiIgreja(Henrique)
VaiIgreja(Marcos)
Agora, mais alguns exemplos de predicados ligados à Matemática:
Menor(x,y) representa “x é menor que y”
Divide(x,y) representa “x divide (é divisor de) y”
Menor(1,2) 1 (Verdade)
Menor(2,1) 0 (Falso)
Menor(2,2) 0
Divide(2,4) 1
Divide(4,2) 0
Divide(4,4) 1
Divide(3,6) 1
Divide(6,42) 1
Soma(1,2,3) 1 (porque 1+2=3)
Soma(2,2,5) 0 (porque 2+25)
Soma(3,2,5) 1 (porque 3+2=5)
Alguns exemplos de fórmulas mais elaboradas:
Menor(x,y) Menor(y,z) Menor(x,z)
Menor(a,b) Soma (a,c,x) Soma (b,c,y) Menor(x,y)
As duas fórmulas acima são tentativas de representar dois axiomas dos inteiros (quais?).
Um predicado que, geralmente, tem um tratamento especial nas fórmulas da Lógica de 1a Ordem é o predicado “x é igual a y”, que costuma ser representado com a mesma notação da Matemática: x=y. Porém, aqui, ele está definido para qualquer tipo de objeto e não apenas objetos matemáticos.
Nesta disciplina, também vamos aceitar que outras relações matemáticas sejam repre-sentadas na notação convencional matemática. (Na verdade, toda relação matemática pode ser vista como um predicado). Então, fórmulas como x<y, xy, x|y e AB poderão aparecer dentro de fórmulas da Lógica de 1a Ordem com esta mesma notação. Assim, podemos reescrever o penúltimo exemplo dado assim:
2. Quantificadores
Os quantificadores da Lógica de 1a Ordem servem para expressar, em uma só fórmula, múltiplas afirmações feitas sobre todos os elementos de um dado conjunto. Este conjun-to pode ser chamado de universo de discurso ou domínio.
Por exemplo, no domínio dos naturais (N), podemos querer representar que “todo natu-ral pode ser par ou ímpar”. Vamos usar o predicado ParÍmpar(x) para representar que “x pode ser par ou ímpar”. Assim, o que queremos dizer é:
ParÍmpar(0)
ParÍmpar(1)
ParÍmpar(2)
ParÍmpar(3)
...
Neste caso, para realmente expressar o que queremos, precisaríamos de uma fórmula lógica infinita. Porém um dos quantificadores nos ajudará a criar uma fórmula finita na Lógica de 1a Ordem. Veremos adiante...
Estes são os dois quantificadores principais:
Quantificador universal:
x
U
[
P
(
x
)]
o Afirma que “para todo x do domínio U, vale o predicado P(x)”
o O símbolo é um “A” de cabeça para baixo (por conta da palavra inglesa “all”
que quer dizer “todo”)
Quantificador existencial:
x
U
[
P
(
x
)]
o Afirma que “existe (pelos menos) um x do domínio U que satisfaz P(x)” o O símbolo é um “E” voltado para a esquerda (vem de “exists”)
Essa fórmula pode ser lida como: “para todo x do conjunto N, é verdade o predicado ParÍmpar(x)”. Neste caso, ela representa uma afirmação verdadeira.
Para explicar o quantificador existencial, considere que você quer dizer que “existe um dos naturais que é primo e par”. Vamos usar o predicado PrimoPar(x) para representar que “x é um número primo par”. Neste caso, o que queremos afirmar é que:
PrimoPar (0)
PrimoPar(1)
PrimoPar(2)
PrimoPar(3)
...
Na Lógica de 1a Ordem, basta usarmos o quantificador existencial assim:
N x
[PrimoPar(x)]
Essa fórmula pode ser lida como: “existe algum x no conjunto N, tal que é verdade o predicado PrimoPar(x)”. Trata-se de uma afirmação verdadeira (por conta do x=2).
Se o universo de discurso (ou domínio) estiver claro no contexto, é possível omiti-lo das fórmulas quantificadas, deixando-as assim:
x
P
(
x
)
ou
x
P
(
x
)
. Vamos dar alguns exemplos considerando Z como universo de discurso e considerando os predicados Par(a), Divide(x,y) e Ímpar(x) apresentados antes: xPar(x)
Afirma que “todo inteiro é par”. É falsa.
x
Divide(2,x)Ímpar(x)
Afirma que “todo inteiro é divisível por 2 ou é ímpar”. É verdadeira.
x
Par(x)Divide(x,2)
cau- x
Ímpar(x)Divide(x,2)
Afirma que “existe um inteiro que é ímpar e é divisor de 2”. É falsa.
Agora podemos, enfim, representar a afirmação do início dessa nota de aula com exati-dão. Esta seria a fórmula que representa que “(para todos x e y inteiros) se x é par e y é par, então x+y é par”:
Par
(
x
)
Par
(
y
)
Par
(
x
y
)
Z
y
Z
x
Quando temos dois quantificadores iguais em seqüência, com o mesmo universo de discurso, podemos simplificar a fórmula assim, sem alterar o significado:
(
)
(
)
(
)
,
y
Z
Par
x
Par
y
Par
x
y
x
Um detalhe importante é que, quando há quantificadores de tipos distintos, a ordem em que eles aparecem interfere no significado da fórmula lógica. Ou seja, geralmente, fórmulas assim têm significados distintos:
(i)
x
y
P
(
x
,
y
)
(ii)
y
x
P
(
x
,
y
)
Por exemplo, considerando que o universo de discurso é o conjunto de todas as pessoas e que P(x,y) representa “x é amigo de y”, as duas fórmulas acima representariam estas duas afirmações:
(i) “todo mundo tem algum amigo”
(ii) “existe alguém que todo mundo é amigo dele”
Agora, vamos dar um exemplo matemático considerando o universo de discurso N e considerando o predicado P(x,y) como “xy”. Neste caso, teríamos estas duas fórmulas:
(i)
x
y
(
x
y
)
, que significa que “todo número natural é maior ou igual que algum natural”. Esta fórmula é verdadeira.natu-Se você entendeu este último exemplo, tente responder: Quais seriam os valores-verdade dessas duas fórmulas se mudarmos o universo para Z? E se mudarmos o predi-cado para “x>y”? E se mudarmos as duas coisas?
3. Funções
Outra “novidade” na Lógica de 1a Ordem é que são permitidas funções quaisquer, com qualquer domínio e qualquer contra-domínio. Vamos representá-las sempre com nomes começando com minúsculas. Alguns exemplos de funções que podem ser usadas se-guem abaixo:
pai(x) representa “a pessoa que é pai biológico de x”
está(x) representa “o lugar onde x está”
sucessor(x) representa “o sucessor de x (ou seja,o valor x+1)”
Naturalmente, a função só serve para o caso em que o objeto definido por ela é único para cada entrada dada. Assim, não podemos criar uma função avô(x) porque cada pes-soa tem mais de um avô biológico. Neste caso, teríamos que usar um predicado
Avô(x,y) para dizer que “y é um avo de x”.
Em geral, funções servem para facilitar a representação de algumas afirmações. Por exemplo, analise as seguintes fórmulas e tente explicar o que elas afirmam:
y
x
,
[ pai(pai(x)) = y Avô(x, y) ]y
x
,
[ casados(pai(x),y) mãe(x)=y madrasta(x)=y ]y
x
,
[ pai(x)=a pai(y)=b irmãos(a,b) primos(x,y) ]Por permitir funções, é possível usar, nas fórmulas lógicas, todos operadores matemáti-cos que vimos, tais como +, –, , mod, div, e , pois todos eles são funções (que re-cebem um par e retornam um valor). Se desejássemos ser rigorosos com a sintaxe das fórmulas, essas operações precisariam ser também representadas com nomes tais como:
soma(x,y) representa “x+y” (o resultado)
união(x,y) representa “x y” etc.
Porém, vamos aceitar que os operadores matemáticos mais conhecidos sejam represen-tados com a notação convencional dentro das fórmulas da Lógica de 1a Ordem. (Na ver-dade, já fizemos isso em alguns exemplos das seções anteriores, em que usamos o ope-rador +). Agora, seguem dois exemplos de fórmulas mais elaboradas usando funções e relações matemáticas diversas. Tente interpretar o significado delas:
3
1
3
2
1
(mod
9
)
3
1
)
(
)
(
,
2
x
k
x
k
x
Z
k
Z
x
x
y
x
y
y
Ímpar
x
Par
Z
y
x
A partir de agora, observe toda afirmação matemática desta disciplina em termos da Lógica de Predicados. Tente observar, em toda afirmação, como cada variável é quanti-ficada (“para todo x” ou “existe x”?). Veremos, mais adiante, como o quantificador da afirmação vai afetar as demonstrações.