Untitled - DIMAp

Transcrição

Untitled - DIMAp
1
2
3
Logica para a Ci^encia da
Computac~ao
Benjamn Rene Callejas Bedregal
Laboratorio de Logica e Intelig^encia Computacional - LabLIC
Departamento de Informatica e Matematica Aplicada - DIMAp
Universidade Federal do Rio Grande do Norte - UFRN
[email protected]
Benedito Melo Acioly Departamento de Ci^encias Exatas - DCE
Universidade Estadual do Sudoeste da Bahia - UESB
[email protected]
NATAL, Fevereiro de 2002
Conteudo
1 Linguagens Formais
1.1
1.2
1.3
1.4
1.5
1.6
Linguagens Formais . . . . . . . . . . . . . . . .
-algebras . . . . . . . . . . . . . . . . . . . . .
Relac~ao entre Linguagens Formais e -algebras
Classes Equacionais . . . . . . . . . . . . . . . .
-Domnios . . . . . . . . . . . . . . . . . . . .
Exerccios . . . . . . . . . . . . . . . . . . . . .
2 Logica Proposicional: Linguagem e Sem^antica
2.1
2.2
2.3
2.4
A Linguagem da Logica Proposicional . . . . .
A Linguagem Formal da Logica Proposicional
Logica Proposicional . . . . . . . . . . . . . .
Exerccios . . . . . . . . . . . . . . . . . . . .
3 A Teoria Formal da Logica Proposicional
3.1
3.2
3.3
3.4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Teorias Formais . . . . . . . . . . . . . . . . . . . .
Teoria Formal da Logica Proposicional . . . . . . .
Teorema da Deduc~ao . . . . . . . . . . . . . . . . .
Outras Teorias Formais para a Logica Proposicional
3.4.1 Teoria Formal 1 . . . . . . . . . . . . . . . .
3.4.2 Teoria Formal 2 . . . . . . . . . . . . . . . .
3.4.3 Teoria Formal 3 . . . . . . . . . . . . . . . .
3.4.4 Teoria Formal 4 . . . . . . . . . . . . . . . .
3.4.5 Teoria Formal 5 . . . . . . . . . . . . . . . .
3.5 Exerccios . . . . . . . . . . . . . . . . . . . . . . .
i
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
. 2
. 5
. 6
. 13
. 19
. 21
.
.
.
.
.
.
.
.
.
.
.
.
.
.
25
26
29
37
46
49
49
52
53
60
60
60
60
61
62
62
CONTEUDO
ii
4 Computa
c~ao na Logica Proposicional
65
5 Logica de Predicados: Linguagem e Sem^antica
89
4.1 Metodo de Eliminac~ao de Literais Complementares . . . . . . . . . . . . . 65
4.2 Resultados de Completude . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.1
5.2
5.3
5.4
5.5
5.6
Traduc~ao do Portugu^es para a Logica . . . . . . . . . .
Quanticadores e Tipos . . . . . . . . . . . . . . . . .
Quanticadores como Conjunco~es e Disjunco~es Innitas
Linguagem de 1a Ordem . . . . . . . . . . . . . . . . .
Verdade . . . . . . . . . . . . . . . . . . . . . . . . . .
Exerccios . . . . . . . . . . . . . . . . . . . . . . . . .
6 A Teoria Formal da Logica de Predicados
6.1 Teoria Formal do Calculo de Predicados
6.1.1 Linguagem Formal: . . . . . . . .
6.2 Teorema da Deduc~ao . . . . . . . . . . .
6.3 Exerccios . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
91
92
94
95
102
110
113
113
114
117
126
7 Computa
c~ao na Logica de Predicados
129
8 Programa
c~ao em Logica e Prolog
163
7.1 Resoluc~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
7.2 Resultados de Completude . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.3 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
8.1 Conceitos Basicos . . . . . . . . . . . . .
8.1.1 Clausulas de Horn . . . . . . . .
8.1.2 Caractersticas Basica do Prolog .
8.2 Estrutura Basica do Prolog . . . . . . .
8.2.1 Termos e objetos . . . . . . . . .
8.2.2 O Escopo dos Identicadores . . .
8.3 Fatos Elementares . . . . . . . . . . . . .
8.4 Consultas . . . . . . . . . . . . . . . . .
8.4.1 Conjunc~oes . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
165
165
166
167
168
170
170
171
172
CONTEUDO
iii
8.5 Variaveis . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.5.1 Variaveis An^onimas . . . . . . . . . . . . . . . . . .
8.6 Regras . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.6.1 Regras Recursivas . . . . . . . . . . . . . . . . . . .
8.7 Disjunc~oes e Negac~oes . . . . . . . . . . . . . . . . . . . .
8.7.1 Disjunca~o . . . . . . . . . . . . . . . . . . . . . . .
8.7.2 Negac~ao por Falha e Hipoteses do Mundo Fechado .
8.8 Operadores de Controle . . . . . . . . . . . . . . . . . . .
8.8.1 Backtracking . . . . . . . . . . . . . . . . . . . . .
8.8.2 Comando \Cut" . . . . . . . . . . . . . . . . . . . .
8.8.3 Comando \Fail" . . . . . . . . . . . . . . . . . . . .
8.9 Algumas Ferramentas Praticas de Programac~ao . . . . . .
8.9.1 Operadores . . . . . . . . . . . . . . . . . . . . . .
8.9.2 Computac~oes Numericas . . . . . . . . . . . . . . .
8.9.3 Computac~oes com Listas . . . . . . . . . . . . . . .
8.10 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 Outras Apresenta
c~oes da Logica de Predicados
9.1 Deduc~ao Natural . . . . . . . . . . . . . . .
9.1.1 Logica Proposicional . . . . . . . . .
9.1.2 Logica de Predicados . . . . . . . . .
9.2 Calculo de Sequente de Gentzen . . . . . . .
9.2.1 Logica Proposicional . . . . . . . . .
9.2.2 Logica de Predicados . . . . . . . . .
9.3 Estilo Tableaux . . . . . . . . . . . . . . . .
9.3.1 Logica Proposicional . . . . . . . . .
9.3.2 Logica de Predicados . . . . . . . . .
9.4 Sistema Tableau com Unicac~ao . . . . . .
9.5 Correspond^encia entre Tableau e Resoluc~ao
9.6 Completude do Sistema . . . . . . . . . . .
9.7 Exerccios . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
173
176
177
181
181
182
183
184
184
185
186
186
186
187
190
191
195
196
198
202
205
207
211
213
214
221
223
227
229
231
CONTEUDO
iv
10 Teorias de Primeira ordem
10.1
10.2
10.3
10.4
Teorias de 1a Ordem . . . . . . . . . . . . . .
Teorias de 1a Ordem com Igualdade . . . . . .
Teorias de 1a Ordem: Uma denica~o sem^ntica
Teorias Factuais . . . . . . . . . . . . . . . . .
10.4.1 Exemplos de Teorias Factuais . . . . .
A Solu
c~oes de Exerccios Propostos
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
233
234
236
240
245
248
249
Dedicatoria do primeiro autor
Com todo o meu amor,
Dedico este livro
A minhas duas lindas lhas:
Berta Letcia e
Natalia Taina de Lima Bedregal.
vi
CONTEUDO
Captulo 1
Linguagens Formais
Em Portugu^es existem tr^es tipos de entidades diferentes: letras, palavras e sentencas.
Existe um certo paralelismo entre elas, no sentido de que grupos de letras constituem
uma palavra, e grupos de palavras uma sentenca. Mas, nem toda concatenac~ao de letras
forma uma palavra, nem toda sequ^encia de palavras uma sentenca. A analogia pode se
extendida para paragrafos, historias, e assim por diante. A situac~ao, se da, tambem,
para linguagens de programac~ao, na qual certos agrupamentos de palavras chaves s~ao um
comando e algumas sequ^encias de comandos s~ao programas.
Para construir uma teoria geral que unique todos estes casos, sera necessario adotar
uma denic~ao para a estrutura de linguagens mais universal, isto e, uma estrutura na
qual a decis~ao de quando uma cadeia de unidades constitui uma unidade maior valida
seja baseada na aplicac~ao de regras explicitamente denidas.
Em linguagens tipo Portugu^es, Ingl^es, alguns dialetos tipo Guarany, Aymara, etc.
n~ao podemos dar regras que nos permitam descrever todas as frases coerentes da linguagens. Isto porque s~ao linguagens ditas naturais, na qual depende de nossa habilidade
para interpretar metaforas poeticas de sentencas mal escritas. Isto ja n~ao acontece com
linguagens de programac~ao, pois elas s~ao \formais", e o compilador de uma linguagem de
programac~ao e um procedimento que analiza a corretude de uma sequ^encia de smbolos e
determina se ela constitui um programa valido ou n~ao.
Neste captulo estudaremos alguns aspectos basicos do que se conhece como \teoria
de linguagens formais". A palavra \formal" diz respeito a que todas as regras para a
linguagem s~ao explicitamente declaradas em termos das cadeias de smbolos que podem
ocorrer nela. Nenhuma liberdade e tolerada e nenhum \entendimento profundo" e preciso.
Sentencas ser~ao consideradas como meros smbolos e n~ao como express~oes de ideias na
mente humana. Neste modelo basico, Linguagens (formais) n~ao e uma comunicaca~o entre
intelectos, mas um jogo de smbolos com regras formais. O termo \formal" aqui usado
enfatiza que e a forma da cadeia de smbolos que nos interessa e n~ao seu signicado.
1
CAPITULO 1. LINGUAGENS FORMAIS
2
1.1 Linguagens Formais
Toda linguagem e constituda de dois elementos basicos, um alfabeto que especica um
conjunto contavel de smbolos usados na linguagem e uma gramatica que caracteriza
sua sintaxe, isto e, que especica como estes smbolos podem ser agrupado formando as
express~oes admissveis da linguagem. O que diferencia uma linguagem formal de uma
linguagem natural e que na linguagem formal a gramatica e especicada precisamente,
enquanto na linguagem natural quase sempre isso n~ao e possvel.
Seja um conjunto contavel, isto e, que esteja em correspond^encia biunvoca com
um subconjunto dos numeros naturais. Denotaremos por o conjunto de todas as
cadeias nitas em , incluindo a cadeia vazia. Por exemplo, se = fa bg ent~ao =
f a b aa ab bb ba aaa aab : : : g, onde simboliza a cadeia vazia.
Deniremos como uma linguagem L, sobre , qualquer subconjunto de . Observe
que, segundo essa denic~ao, o proprio e o conjunto vazio s~ao linguagens sobre . Em
geral, estaremos interessados em obter L de forma algortmica. Por isso, de ora em diante
daremos, tambem, a seguinte denic~ao de linguagem formal.
Deni
c~ao 1.1.1 Uma Linguagem formal e um par L = h Gi, onde e um conjunto
contavel, denominado alfabeto, e G e um conjunto nito de regras de derivac~ao, denominado gramatica,cujo m e dizer como os smbolos do alfabeto podem ser agrupados de
modo a formar as express~oes admissveis da linguagem.
Descreveremos as regras de derivac~ao em G por
x1 : : : xn n 2 N x
onde, os objetos do numerador e do denominador podem conter metavariaveis, que podem ser instanciadas por qualquer termo da linguagem. Se entende que os objetos do
numerador d~ao origem ao do denominador. No caso em que n = 0 estaremos gerando
um elemento x a partir do conjunto vazio, o qual denotaremos por ;x . Chamaremos
a estes x's de axiomas da linguagem formal L. As variaveis, x1 : : : xn usadas nas
regras de derivac~ao representam qualquer cadeia em e x e uma expres~ao constituda
das variaveis xi's com elementos de .
Exemplo 1.1.2 Seja o alfabeto = fa bg e o conjunto de regras G = fg1 g2 g3g
denidas a seguir:
g1 :
;
a
g2 :
t
at
g3 :
t
bt
onde at e a cadeia resultante de concatenar o smbolo a com a cadeia t. Isto e, se t = bba
ent~ao at = abba.
1.1. LINGUAGENS FORMAIS
3
Uma cadeia w 2 e gerada por uma linguagem formal L = h Gi, se existem
cadeias w1 : : : wn geradas por L e uma regra de derivac~ao
g: x1 : :x: xn n 2 N tal que g 2 G e substituindo cada ocorr^encia xi por wi em x obtemos w. Observe que para
esta recurs~ao na denic~ao de cadeias geradas por uma linguagem formal parar, devemos
ter pelo menos uma regra de derivac~ao sem numerador (n = 0). Assim, toda linguagem
formal L = h Gi especica uma linguagem que consiste em todas as cadeias geradas
pela linguagem formal L. Especicar uma linguagem L atraves de uma linguagem
formal, signica fornecer um algoritmo para obter L. E claro que nem sempre e possvel
dar um algoritmo para descrever uma linguagem, nesse caso dizemos que a linguagem e
uma linguagem natural.
Exemplo 1.1.3 No caso da linguagem formal do exemplo ?? a cadeia baa pode ser
gerada, pois ela e obtida aplicando a regra g3 a cadeia ba a qual, por sua vez tambem e
gerada pela linguagem formal cg , pois ela pode ser obtida aplicando a regra g2 a cadeia
a, a qual por sua vez tambe faz parte da linguagem, pois ela pode ser obtida diretamente
aplicando a regra g1 . Podemos ver o conjunto de todas as possveis cadeias que podem ser
gerada pela linguagem formal cg, denotado aqui por L, como a linguagem associada ou
gerada por G . Neste caso:
L = fa aa ba aaa baa aba bba aaaa baaa abaa bbaa aaba baba abba bbba : : : g
ou intencionalmente o conjunto
L = fw 2 = w = va para algum v 2 g
ou seja a linguagem composta de todas as cadeias no alfabeto fa bg cujo ultimo smbolo
seja a.
Exemplo 1.1.4 Considere a linguagem formal L = h Gi, onde = fzero suc soma ( )g
e a gramatica G e constituida das seguintes regras de derivac~ao:
g1 :
;
g2 :
t
suc(t)
g3 :
t1 t2
t1 soma t2
zero
Nas regras g1 e g2 , t t1 e t2 s~ao variaveis as quais podem tomar como valor qualquer elemento ja conhecido da linguagem. Assim, L = h Gi, onde G = fg1 g2 g3 g especica uma
linguagem L que contem os seguintes elementos: zero, suc(zero), zero soma zero,
suc(zero) soma zero, zero soma suc(zero), zero soma zero soma zero : : :
CAPITULO 1. LINGUAGENS FORMAIS
4
Podemos ver as regras de derivac~ao de G como um calculo ou algoritmo para gerar
os elementos da linguagem L. No exemplo 1.1.4 o calculo G = fg1 g2 g3g gera o conjunto
L, a partir da constante zero. Essas observac~oes motivam a seguinte denica~o.
Deni
c~ao 1.1.5 Seja L = h Gi uma linguagem formal. Um elemento x 2 e gerado
por L se existe uma sequ^encia nita de elementos de , x1 x2 : : : xn tal que xn = x
e cada xk , 1 k n, e o resultado da aplicac~ao de uma regra de derivac~ao de G aos
elementos xi, i < k. A sequ^encia x1 : : : xn, anterior, e chamada uma prova ou deduc~ao
de x em L e x e chamado de formula bem formada (b) de LL.
Usaremos a notac~ao L̀ x, ou simplesmente ` x, se o contexto tornar claro o calculo,
para indicar que x foi derivado, usando uma prova.
No exemplo 1.1.4, acima, temos L̀ zero soma suc(suc(zero)), cuja prova e a seguinte
(1)
(2)
(3)
(4)
zero
suc(zero)
suc(suc(zero))
zero soma suc(suc(zero))
(g1)
(1 g2)
(2 g2)
(1 3 g3)
Diremos, tambem, que esta prova e uma constru
c~ao do elemento
zero soma suc(suc(zero)):
Assim, a linguagem gerada ou especicada por uma linguagem formal L =
h Gi, denotado por Ling (L), e denida pelo seguinte conjunto de cadeias:
Ling(L) = fx 2 =
L̀
xg
Naturalmente, duas linguagens formais s~ao equivalentes se elas ger~ao a mesma linguagem. Por exemplo, se a linguagem formal do exemplo 1.1.4 adicionarmos a regra
regrag4tt somat
n~ao vai ser gerada nenhuma cadeia nova, uma vez que ela pode ser obtida aplicando a
regra g3 ao mesmo termo, isto e, fazendo t1 = t2 = t. Assim, a linguagem gerada por
esta \nova" linguagem formal vai ser exatamente a mesma que a gerada pela linguagem
formal do exemplo 1.1.4. Ent~ao, generalizando, duas linguagens formais L1 = h1 G1 i e
L2 = h2 G2 i s~ao equivalentes, se elas possuem o mesmo alfabeto, isto e 1 = 2 e cada
regra de q 2 G1 pode ser derivada em L2 e vice-versa, cada regra g 2 G2 pode ser derivada
em L1.
1.2. -ALGEBRAS
5
1.2 -algebras
Seja L um conjunto n~ao vazio. Diremos que (L O1 O2 : : : On) e uma algebra se
O1 O2 : : : On s~ao operac~oes sobre L. Lembre que O e uma operaca~o sobre L, de aridade
k, cuja notac~ao sera arid(O) = k, se O e uma funca~o de Lk 1 em L O : Lk ;! L. As
constantes de L s~ao consideradas operaco~es de aridade zero.
Uma linguagem L especicada por h Gi pode ser vista como uma algebra, onde cada
regra de derivac~ao
x1 : : : xn x
e interpretada como uma operac~ao O : Ln ;! L. Na realidade, podemos estudar as
linguagens formais de uma perspectiva exclusivamente algebrica como sem^antica ou interpreta
c~ao da abordagem deductiva. Na ci^encia da computaca~o a abordagem algebrica
de linguagens de programac~ao e conhecida como sem^antica denotacional e a abordagem
deductiva como sem^antica operacional. Como neste trabalho abordaremos, tambem, os
aspectos de interpretac~ao, a seguir desenvolveremos os princpios de -algebras necessarios
nas discuss~oes de sem^antica denotacional.
Uma assinatura e um conjunto contavel, , de smbolos de funco~es. Por exemplo,
os tr^es smbolos de func~ao, = fzero suc plusg, seria uma assinatura apropriada para
os numeros naturais. Cada smbolo de func~ao tem associado uma aridade que fornece o
numero de argumentos que a func~ao recebe. No caso a aridade de zero e 0, de succ e 1 e
de plus e 2. zero e uma constante, vista como uma funca~o de aridade 0.
Deni
c~ao 1.2.1 Uma assinatura e uma par h aridi, onde e um conjunto contavel
de smbolos e arid e uma func~ao, chamada aridade, arid : ;! N , tal que a cada
smbolo s 2 , associa sua aridade arid(s) 2 N .
Quando f^or claro do contexto omitiremos a func~ao arid, designando uma assinatura
simplesmente por .
Deni
c~ao 1.2.2 Seja uma assinatura. Uma -algebra e um par hA Ai onde:
1. A e um conjunto n~ao vazio, chamado conjunto basico.
2. A e um conjunto de operac~oes sobre A, ffA = f 2 g tal que se arid(f ) = n, ent~ao
fA e uma operac~ao de An ;! A.
1
A notac~ao Lk denota k-vezes o produto cartesiano de L com ele mesmo, isto e,
Lk = L| :{z: : L}
.
k;vezes
CAPITULO 1. LINGUAGENS FORMAIS
6
Exemplo 1.2.3 Considere a assinatura = fzero suc somag. Ent~ao, hN N i e uma
-algebra, onde:
1.
N
e o conjunto dos numeros naturais f0 1 2 : : : g.
2. N e dada por:
(a) zeroN e o numero 0.
(b) sucN : N ;! N e denida por suc(n) = n + 1
(c) somaN : N 2 ;! N e denida por somaN (m n) = m + n
Aqui \+" denota a adic~ao da aritmetica usual.
As unicas restrico~es para denir -algebras, e que as operac~oes que interpret~ao os
smbolos de operaca~o tenh~ao a mesma aridade. Desse modo, o simbolo de operac~ao soma
e um mero nome, e portanto, pode ser interpretado de diversas maneiras, desde que
sua interpretaca~o seja uma operaca~o binaria. Assim, uma outra -algebra para esta
assinatura, pode ser hN zeroN sucN multN i, onde N , zeroN e sucN s~ao como antes, mas
multN : N 2 ;! N e denido por multN (x y) = x y. Aqui, denota a multiplicac~ao da
aritmetica.
hN N i representa uma interpretac~ao \natural" dos smbolos de func~ao de , sobre
os numeros naturais. Por isso podemos dizer que uma -algebra e simplesmente uma
interpretac~ao de uma assinatura . Ela consiste de um conjunto A e uma interpretac~ao
sobre A, dos smbolos de func~ao em . Uma -algebra pode ser vista como um conjunto
com estrutura. O conjunto A tem uma estrutura imposta pelas func~oes em A, no sentido
de que os elementos de A so podem ser manipulados usando essas func~oes.
1.3 Relac~ao entre Linguagens Formais e -algebras
Dada uma assinatura h aridi, se acresentarmos a os smbolos de par^enteses e pontuac~ao, teremos, automaticamente, uma linguagem Ling(L) especicada pelo algoritmo
L = h Gi, onde a gramatica G seria obtida, simplesmente, considerando as aridades dos
smbolos de , em h aridi. Por exemplo, se s 2 e tal que arid(s) = 2, ent~ao
t1 t2
s(t1 t2)
seria uma regra de derivac~ao de G . Em muitos casos poderamos agir no sentido contrario,
isto e, dado o alfabeto , despoja-lo dos smbolos de par^enteses e pontuac~ao, obtendo
assim, uma assinatura , onde a funca~o aridade seria obtida, simplesmente, observando
as regras de derivac~ao. Por exemplo, a uma regra como
~ ENTRE LINGUAGENS FORMAIS E -ALGEBRAS
1.3. RELACAO
7
t1 : : : tn
t
lhe seria associada a aridade n. Portanto, existe uma relac~ao estreita entre linguagens
formais, isto e, linguagens obtidas pela especicaca~o do algoritmo h Gi e assinaturas, no
sentido de que sempre que uma linguagem e obtida deductivamente e possvel, usando as
regras de derivac~ao, obt^e-la algebricamente, isto e como uma -algebra. Nesse sentido,
podemos considerar a linguagem gerada por h Gi como o conjunto basico da -algebra
que tem como operac~oes os proprios smbolos funcionais. A -algebra assim obtida, sera
chamada -algebra dos termos e sera denotada por hT T i. Assim, T seria a
propria linguagem gerada pela linguagem formal associada a assinatura . Formalmente,
podemos denir a -algebras dos termos indutivamente, como segue
1. Se a 2 e arid(a) = 0 ent~ao a 2 T
2. Se f 2 , arid(f ) = n e t1 : : : tn 2 T ent~ao f (t1 : : : tn) 2 T
Por outro lado, se f 2 tem aridade n ent~ao fT : Tn ;! T e denido por
fT (t1 : : : tn) = f (t1 : : : tn):
Esta -algebra e particularmente importante no estudo da sintaxe abstrata de linguagens.
Exemplo 1.3.1 Seja a assinatura do exemplo 1.2.3. O conjunto dos termos dessa algebra e dado pelo seguinte conjunto:
T = fzero suc(zero) zero soma zero suc(suc(zero)) zero soma suc(zero) : : : g
e as operaco~es sobre T s~ao as seguintes:
zeroT = zero
sucT : T ;! T denida por sucT (t) = suc(t).
somaT : T T ;! T e denida por somaT (t1 t2 ) = t1 soma t2 .
Observe, que T e igual a linguagem gerada pela linguagem formal do exemplo 1.1.4.
CAPITULO 1. LINGUAGENS FORMAIS
8
As observaco~es acima esclarecem a relac~ao entre as perspectivas formal e algebrica
de uma linguagem. No caso de linguagens de programac~ao a sua sintaxe, geralmente, e
especicada por uma gramatica livre de contexto. Mas, muitas linguagens de programac~ao
podem ser construdas de tal modo que a sua sintaxe e a -algebra dos termos, para
algum . Denir uma sem^antica denotacional para uma linguagem L = h Gi consiste
em construir uma -algebra particular satisfazendo certas exig^encias.
No sentido de explicar o signicado matematico da -algebra dos termos introduziremos o conceito de -homomorsmo, que s~ao, simplesmente, funco~es entre os conjuntos
basicos das -algebras que preservam as operac~oes.
Deni
c~ao 1.3.2 Sejam hA Ai e hB B i -algebras. Uma func~ao h : A ;! B diz-se
um -homomorsmo se para todo f 2 , de aridade n,
h(fA (a1 : : : an)) = fB (h(a1 ) : : : h(an))
(1.1)
Claramente, na denic~ao acima, se n = 0, isto e, se aplicamos o -homomorsmo a
uma constante aA, se deve satisfazer
h(aA) = aB
Exemplo 1.3.3
1. Seja = fzero suc somag, como anteriormente. Ent~ao hZ Zi, onde Z e o conjunto dos numeros inteiros e as func~oes de Z s~ao denidas como no exemplo 1.2.3,
e uma -algebra. A funca~o em : N ;! Z tal que em(n) = n, e um -homomorsmo
entre as -algebras hN N i e hZ Zi.
2. Seja como acima e seja P = f0 2 4 6 : : : g. Dena P por:
(a) zeroP = 0
(b) sucP : P ;! P e denida por sucP(n) = n + 2
(c) somaP : P2 ;! P e denida por somaP(m n) = m + n
Ent~ao hP Pi e uma -algebra.
Seja dobro : N ;! P a funca~o bijetiva dobro(n) = 2n, para todo n 2 N . Ent~ao
dobro e um -homomorsmo. Para mostrar isto precisamos mostrar que ( 1.1) se
verica com \dobro" no lugar de h para toda func~ao f 2 .
~ ENTRE LINGUAGENS FORMAIS E -ALGEBRAS
1.3. RELACAO
(a)
(b)
(c)
9
dobro(zeroN ) = dobro(0)
=20
=0
= zeroP
dobro(sucN (n)) = dobro(n + 1)
= 2(n + 1)
= 2n + 2
= dobro(n) + 2
= sucP(dobro(n))
dobro(somaN (m n)) = dobro(m + n)
= 2(m + n)
= 2m + 2n
= dobro(m) + in(n)
= somaP(dobro(m) dobro(n))
3. Seja = fzero somag com aridade 0 e 2, respectivamente e sejam h}fin (N ) f
gi
e hN f0 +gi duas -algebras tais que
(a) }fin (N ) = fX N = X e um conjunto nitog
(b) : }fin (N ) }fin (N ) ;! }fin (N ) e denido por
(X Y ) = fx + y = x 2 X e y 2 Y g X Y
(c) 0 e + tem a interpretac~ao usual.
Mostraremos que max : }fin (N ) ;! N denido por \max(X ) e o maior elemento
do conjunto X f0g" e um -homomorsmo.
(a) max(
) = 0
(b) max((X Y )) = max(fx + y = x 2 X e y 2 Y g X Y )
= max(X ) + max(Y )
Proposi
c~ao 1.3.4 Sejam hA Ai, hB B i e hC C i -algebras.
1. Se h1 : A ;! B e h2 : B ;! C s~ao -homomorsmo, ent~ao h2 h1 : A ;! C e
um -homomorsmo.
2. i : A ;! A tal que i(x) = x para todo x 2 A e um -homomorsmo.
CAPITULO 1. LINGUAGENS FORMAIS
10
Demonstraca~o: (exerccio).
A mais importante propriedade da -algebra dos termos hT T i e expressa no
seguinte teorema.
Teorema 1.3.5 Para toda -algebra hA Ai existe um unico -homomorsmo
iA : T ;! A.
Quando existe um unico -homomorsmo de uma -algebra A a qualquer -algebra
de uma determinada classe C de -algebras, dizemos que a -algebra A e inicial na classe
C.
A denic~ao de T e indutiva. T e o menor conjunto de express~oes em que contem
os smbolos de constantes e e fechado com relaca~o as operaco~es de . A natureza indutiva
de T prov^e um metodo de prova para derivar propriedades da linguagem especicada pela
assinatura . Para mostrar que uma propriedade P se verica para todos os elementos
em T e suciente estabelecer:
1. P se verica para todos os smbolos de constantes de .
2. Assumindo que P se verica para a1 : : : an 2 T, prove que P tambem se verica
para f (a1 : : : an), para todo f 2 , arid(f ) = n.
Isso e chamado induc~ao estrutural, pois a induc~ao e sobre a estrutura dos elementos
de T. E possvel, tembem, usar induca~o estrutural para se denir relaco~es ou funco~es
sobre T . Por exemplo, para denir uma funca~o g sobre T e suciente:
1. Denir o resultado da aplicac~ao de g aos smbolos de constante.
2. Denir o resultado da aplicac~ao de g a f (a1 : : : an) em termos de g(a1) : : : g(an),
para todo f 2 , de aridade n.
De fato, ambas as condic~oes ser~ao resumidas em uma unica:
Assumindo o resultado da aplicac~ao de g aos elementos a1 : : : an, dena o resultado
da aplicac~ao de g a f (a1 : : : an), para f 2 T , de aridade n 0.
Demonstraca~o: (teorema 1.3.5) Devemos mostrar que o -homormorsmo existe e
que ele e unico.
1. Deniremos iA por induc~ao estrutural sobre T. Todo objeto em T e da forma
f (a1 : : : an) para algum f 2 de aridade n. Assumiremos, por induca~o, que
iA(a1 ) : : : iA(an) est~ao denidos. Ent~ao denamos iA (f (a1 : : : an)) como sendo
fA(iA(a1 ) : : : iA(an)). Desse modo, denimos iA para todo elemento em T. Direto,
da denic~ao de iA, iA e um -homomorsmo.
~ ENTRE LINGUAGENS FORMAIS E -ALGEBRAS
1.3. RELACAO
11
2. Para provarmos que iA e unico provemos que ele coincide com todo -homomorsmo
de T em A. Seja h um qualquer de tais -homomorsmos. Mostremos, por induc~ao
estrutural, que iA (a) = h(a) para todo a 2 T. Um elemento tpico de T e da forma
f (a1 : : : an), onde f 2 tem aridade n. A hipoteses indutiva e que iA (ai) = h(ai),
para todo i = 1 : : : n. Ent~ao
iA (f (a1 : : : an)) = fA(iA(a1 ) : : : iA(an))
= fA(h(a1) : : : h(an))
= h(fT (a1 : : : an))
= h(f (a1 : : : an))
por denic~ao de iA
por induc~ao estrutural
pois h e um -homomorsmo
por denic~ao de fT
Como todo elemento de T e da forma f (a1 : : : an), para algum smbolo de func~ao
f , segue que iA coincide com h.
Vendo T como a sintaxe de uma linguagem e a -algebra hA Ai como um domnio
sem^antico ou interpretac~ao, este teorema nos diz que todo objeto da linguagem tem um
unico signicado em hA Ai, isto e, so existe uma maneira de interpretar a linguagem no
domnio sem^antico.
Um -homomorsmo f : A ;! B diz-se um -isomorsmo se, e somente se, ele
e uma bijec~ao. Neste caso dizemos que as -algebras hA Ai e hB B i s~ao isomorfas.
Ou seja, s~ao essencialmente as mesmas, no sentido de que elas n~ao podem ser diferenciadas usando . Embora, elas possam ser intrnsecamente diferentes, no sentido que a
natureza dos elementos de A e de B podem ser completamente diferentes, do ponto de
vista estrutural elas s~ao as mesmas.
Teorema 1.3.6 Sejam hA Ai e hB B i duas -agebras isomorfas. Ent~ao existem dois
-homomorsmos, h1 : A ;! B e h2 : B ;! A tais que
1. h2 h1 = idA2
2. h1 h2 = idB .
Demonstraca~o: 1) Suponha que h2 : B ;! A e um -isomorsmo. Dena a func~ao
h1 : A ;! B por h1 = h;1
e a func~ao inversa de h2 . Esto e possvel, uma vez que
2 , isto h2 e uma func~ao bijetiva. Portanto, h2 h1 = idA. Assim, so devemos mostrar que h1 e
um -isomorsmo. Seja um f 2 arbitrario de aridade k, e a1 : : : ak 2 A. Ent~ao
idA e ua func~ao identidade no conjunto A. Formalmente. idA : A ;! A e de
nida por idA (a) = a
para todo a 2 A.
2
CAPITULO 1. LINGUAGENS FORMAIS
12
h1 (fA(a1 : : : ak )) = h1(fA (idA(a1 ) : : : idA(ak )))
= h1(fA (h2 h1 (a1) : : : h2 h1 (ak )))
= h1(fA (h2(h1 (a1)) : : : h2 (h1(ak ))))
= h1(h2 (fB (h1(a1 ) : : : h1(ak ))))
= h1 h2(fB (h1(a1 ) : : : h1 (ak )))
= idB (fB (h1 (a1) : : : h1(ak )))
= fB (h1(a1 ) : : : h1(ak ))
Portanto, h1 tambem e um -homorsmo bijetivo, isto e, um -homomorsmo.
A outra parte desta proposic~ao e analoga a primeira.
Como um corolario imediato deste teorema de caracterizaca~o temos que as algebras
iniciais s~ao unicas a menos de isomorsmo.
Corolario 1.3.7 Sejam hA Ai e hB B i duas -algebras iniciais. Ent~ao elas s~ao isomorfas.
Demonstraca~o: (Exerccio).
Seja X um conjunto de variaveis. Usaremos as letras x y z x1 x2 : : : para designar
qualquer elemento de X . A s variaveis assim introduzidas, quando interpretadas numa
-algebra, lhe s~ao atribuidos valores no conjunto base dessa -algebra.
Deni
c~ao 1.3.8 Seja hA Ai uma -algebra e X um conjunto de variaveis. Uma Aatribui
c~ao de valores para X e uma aplicac~ao A : X ;! A tal que associa a cada
variavel x 2 X um elemento A(x) 2 A.
Seja (X ) = X . Podemos constroir um tipo de -algebra dos termos, hT(X ) (X )T (X ) i,
que considere estas variaveis, da seguinte forma:
1. T(X ) e o menor subconjunto de (X ) satisfazendo as propriedades
(a) x 2 T(X ) para cada x 2 X .
(b) Se a 2 e arid(a) = 0 ent~ao a 2 T(X ) .
(c) Se f 2 , arid(f ) = n e t1 : : : tn 2 T(X ) ent~ao f (t1 : : : tn) 2 T(X ) .
2. Para cada smbolo de func~ao f 2 , se f tem aridade n, dena a funca~o fT(X) :
T(n X ) ;! T(X ) por
fT(X) (t1 : : : tn) = f (t1 : : : tn)
Assim, T(X) = ffT(X) = f 2 g.
1.4. CLASSES EQUACIONAIS
13
Esta -algebra e diferente da -algebra dos termos, pois ela contem novos elementos
(aqueles que contem variaveis). No entanto, ela e \inicial" em algum sentido.
Proposi
c~ao 1.3.9 Se hA Ai e uma -algebra e A e uma A-atribuic~ao para X ent~ao
existe um unico -homomorsmo hA : T(X ) ;! A, tal que hA(x) = A(x) para todo
x 2 X.
Demonstraca~o: Dena hA por induc~ao estrutural sobre T(X ) . Se t 2 X , ent~ao seja
hA(t) = A (t). Caso contrario t tem a forma f (t1 : : : tn), para algum f 2 . Neste
caso, seja hA(f (t1 : : : tn)) = fA (hA(t1) : : : hA(tn )). Assim, hA e denida para todo
f 2 T(X) .
A prova de que hA e um -homomorsmo e analoga a prova de que iA e um homomorsmo, no teorema 1.3.5.
Seja h0 : T(X ) ;! A um outro -homomorsmo que coincide com A em X . Mostremos
por induc~ao estrutural sobre t 2 T(X ) que h(t) = h0(t), para todo t.
1. Se t e uma variavel. Ent~ao ambas h(t) e h0 (t) coincidem com A(t).
2. Se t tem a forma f (t1 : : : tn) para algum f 2 . Ent~ao
h(f (t1 : : : tn)) = fA(h(t1 ) : : : h(tn)) pois h e um -homomorsmo
= fA(h0 (t1) : : : h0(tn)) por induc~ao estrutural
= h0 (f (t1 : : : tn))
pois h0 e um -homomorsmo:
Portanto h e unico.
Observe que esta proposic~ao pode ser vista como uma generalizac~ao do teorema 1.3.5.
Fazendo X = , nesta proposic~ao, obtemos o teorema 1.3.5. O que importa, na proposic~ao
acima, e que todo objeto com variavel em T(X ) pode ser interpretado de modo unico numa
-algebra hA Ai, uma vez que as variaveis de X sejam associadas a elementos de A.
1.4 Classes Equacionais
Muitas vezes, e desejavel obrigar que as interpretac~oes de certos smbolos de func~ao satisfazam determinadas propriedades. Isto e, queremos obrigar que as -algebras possuam
certas caractersticas. Podemos descartar coleco~es de -algebras usando equac~oes. Por exemplo, se na assinatura = fzero suc somag do exemplo 1.2.3 obrigamos as -algebras
satisfazer a equac~ao
CAPITULO 1. LINGUAGENS FORMAIS
14
soma(x zero) = x
A -algebra hN zeroN sucN somaN i, do exemplo 1.2.3, sobre o conjunto dos numeros
naturais satisfaz essa equac~ao . Mas a -algebra hN zeroN sucN multN i n~ao.
Uma equa
c~ao e determinada por dois termos os quais podem conter variaveis. A
avaliac~ao desses termos numa -algebra e com respeito a uma atribuic~ao de valores a
essas variaveis.
Deni
c~ao 1.4.1 Uma -algebra satisfaz uma equa
c~ao se para cada possvel atribuic~ao
de valores as variaveis no conjunto base, a evaluac~ao destes dois termos coincide.
Para determinar a classe de -algebras que satisfazem um sistema de equaco~es devemos introduzir um tipo de relac~ao de equival^encia, chamada de -congru^encia, entre os
membros basicos das -algebras de tal modo que a relaca~o de equival^encia preserve a estrutura. Posteriormente veremos como um sistema de equaco~es gera estas -congru^encias.
Relac~oes de equival^encias s~ao extendidas de modo natural para -algebras. Uma congru^encia e uma relac~ao de equival^encia que preserva a estrutura induzida por .
Deni
c~ao 1.4.2 Seja hA Ai uma -algebra. Uma relac~ao de equival^encia3 C sobre A
e uma -congru^encia se para cada f 2 de aridade k e a = (a1 : : : ak ) 2 Ak e
b = (b1 : : : bk ) 2 Ak , temos que
se (ai bi) 2 C para cada i = 1 : : : k ent~ao, (fA (a) fA (b)) 2 C:
Para qualquer -algebra A existem duas -congru^encias can^onicas, ditas triviais,
estas s~ao a igualdade ((x y) 2 C se, e somente se, x = y) e aquela onde todos os elementos
s~ao equivalentes ((x y) 2 C para todo x y 2 A).
Seja A uma -algebra e C uma relac~ao de congru^encia. Ent~ao, para cada a 2 A,
existe o conjunto, a]C , dos elementos de A que s~ao equivalentes a a, isto e,
a]C = fb 2 A = (a b) 2 C g:
Chamaremos este conjunto de classe de equival^encia de a.
Exemplo 1.4.3 Seja hN zeroN sucN somaN i a -algebra do exemplo 1.2.3. A relaca~o
C N N denida denida por
(x y) 2 C se, e somente se, x tem a mesma paridade de y
e trivialmente uma relac~ao de equival^encia sobre N . Para demonstrar que e uma congru^encia devemos mostrar que preserva as operac~oes.
Uma relac~ao de equival^encia sobre um conjunto qualquer e uma relac~ao binaria que e reexiva,
simetrica e transitiva.
3
1.4. CLASSES EQUACIONAIS
15
1. Se x e y tem a mesma paridade, digamos \mpar", ent~ao x +1 e y +1 tem a mesma
paridade, neste caso \par". Assim,
se (x y) 2 C ent~ao (sucN (x) sucN (y)) 2 C:
2. Se x1 tem a mesma paridade de y1 e x2 tem a mesma paridade de y2 , ent~ao, trivialmente, x1 + x2 tem a mesma paridade de y1 + y2. Assim,
se (x1 y1 ) (x2 y2 ) 2 C ent~ao (x1 somaN x2 y1 somaN y2) 2 C:
Teriamos as seguintes classes de equival^encias:
0]C = f0 2 4 6 : : : g = f2x = x 2 N g
1]C = f1 3 5 7 : : : g = f2x + 1 = x 2 N g
2]C = f0 2 4 6 : : : g = f2x = x 2 N g
3]C = f1 3 5 7 : : : g = f2x + 1 = x 2 N g
..
.
Observe que neste caso, 0]C = 2]C = 4]C = : : : e 1]C = 3]C = 5]C = : : : . Assim, podemos dizer que a relaca~o de congru^encia C determina, basicamente, duas classes
de equival^encia: a dos numeros pares e a dos numeros impares. Portanto, tanto faz
representar a classe dos pares, por exemplo, por 0]C ou por 2]C , pois 0 e 2 s~ao meros
representantes da classe dos numeros pares.
Exemplo 1.4.4 Seja a -algebra h}fin (N ) i do exemplo 1.3.3. Podemos denir a
seguinte -congru^encia C :
(X Y ) 2 C se, e somente se, max(X f0g) = max(Y f0g):
Teriamos as seguintes classes de equival^encia:
f0g]C = f
f0gg
f1g]C = ff1g f0 1gg
f2g]C = ff2g f2 1g f2 0g f2 1 0gg
...
CAPITULO 1. LINGUAGENS FORMAIS
16
Para demonstrar que a relac~ao de equival^encia C e realmente uma -congru^encia,
devemos mostrar que preserva as operac~oes. Se (X1 X2) 2 C e (Y1 Y2) 2 C ent~ao
max((X1 Y1)) = max(X1 ) + max(Y1 )
= max(X2 ) + max(Y2 )
= max((X2 Y2))
Denotaremos por A=C o conjunto de classes de equival^encias em A inducidas por
C , isto e
A=C = fa]C = a 2 Ag:
Analogamente, para cada f 2 de aridade k, podemos denir a func~ao fA=C de
aridade k sobre A=C por
fA=C (a1 ]C : : : ak ]C ) = fA(a1 : : : ak )]C :
Denotaremos por A=C ao conjunto das func~oes fA=C , isto e
A=C = ffA=C = f 2 g:
Lema 1.4.5 Seja hA Ai uma -algebra.
1. hA=C A=C i e uma -algebra
2. em : A ;! A=C denido por em(a) = a]C e um -homomorsmo.
Demonstraca~o:
1. Como A=C e um conjunto e A=C tem uma \funca~o " fA=C para cada f 2 com
a mesma aridade, poderiamos concluir que hA=C A=C i e uma -algebra. Porem,
para isto devemos estar certos que cada fA=C e realmente uma func~ao bem denida.
Logo, devemos mostrar que o resultado de fA=C (a1 ]C : : : an]C ) n~ao depende do
representante escolhido nos ai ]C . Seja a0i em ai ]C , com 1 i n. Portanto,
(ai a0i) 2 C para cada 1 i n. Como C e uma -congru^encia, segue que
(fA(a1 : : : an) fA(a01 : : : a0n)) 2 C e portanto fA (a01 : : : a0n) 2 fA(a1 : : : an)]C .
Logo,
fA=C (a1]C : : : ak ]C ) = fA(a1 : : : ak )]C = fA(a01 : : : a0k )]C :
2. A prova de que em : A ;! A=C e um -homomorsmo segue imediatamente da
denic~ao de fA=C .
1.4. CLASSES EQUACIONAIS
17
-congru^encias s~ao denidas sobre uma -algebra especca e n~ao sobre uma classe de
-algebras, o qual va encontra a ideia de caracterizar uma subclasse das -algebras. No
entanto, se denirmos a -congru^encia sobre a -algebra dos termos, hT T i, podemos,
usando a inicialidade da -algebra dos termos, estender a -congru^encia para outras algebras.
Deni
c~ao 1.4.6 Seja C uma -congru^encia sobre T. Dizemos que uma -algebra A
satisfaz C se iA(t) = iA (s) quando (t s) 2 C .
Teorema 1.4.7 Seja C uma -congru^encia sobre T e seja C (C ) a classe de todas as
-algebras satisfazendo C . hT=C T=C i e inicial em C (C ).
Demonstraca~o: Primeiro devemos mostrar que T =C esta de fato em C (C ), depois de-
vemos descrever um -homomorsmo hA de T=C em qualquer -algebra A satisfazendo
C . Finalmente devemos mostrar que hA e unico.
1. A injec~ao natural de T em T=C e um -homomorsmo e como hT T i e inicial
na classe de todas as -algebras este deve coincidir com iT =C . Logo, seja (t t0 ) 2 C ,
ent~ao
iT =C (t) = t]C
= t0]C
= iT =C (t0 ):
Logo, hT=C T=C i satisfaz C e portanto hT=C T=C i 2 C (C ):
2. Seja hA Ai 2 C (C ). Dena hA : T=C ;! A por
hA(t]C ) = iA(t):
Esta func~ao esta bem denida, pois se t0 2 t]C , ent~ao (t t0 ) 2 C e como A satisfaz
C , iA(t) = iA(t0 ). Por outro lado, para todo f 2 de aridade k e t 2 Tk temos que
hA(fT =C (t]C )) = hA (f (t)]C )
= iA (f (t))
= fA (iA(t))
= fA (hA(t]C )):
Assim, hA e um -homomorsmo.
CAPITULO 1. LINGUAGENS FORMAIS
18
3. Seja h0A um outro -homomorsmo de T=C em A. Dena i0A : T ;! A por
i0A(t) = h0A (t]C ). Ent~ao,
i0A(fT (t)) = h0A(f (t)]C )
= h0A(fT =C (t]C ))
= fA(h0A(t]C ))
= fA(i0A(t)):
Logo, i0A e um -homomorsmo. Como, T e inicial na classe das -algebras, i0A e
iA coincidem. Portanto,
h0A(t]C ) = i0A (t)
= iA (t)
= hA (t]C ):
Logo, hA e h0A s~ao os mesmos -homomorsmos e portanto hA e unico.
Observe que temos duas -algebras iniciais diferentes, uma, hT T i, e inicial com
respeito a classe de todas as -algebras e a outra, hT=C T=C i e inicial com respeito a
um subconjunto delas, a classe de todas as -algebras satisfazendo a -congru^encia C .
Estamos interessados num tipo especial de -congru^encia, aquelas obtidas a partir
de um conjunto ou sistema de equaco~es. Para denir formalmente como equac~oes geram
-congru^encias, necessitamos introduzir variaveis a assinatura como no nal da sec~ao 1.3.
Uma -equa
c~ao e uma par (t s) 2 T(X ) T(X ) . Usualmente escritas por t = s.
Deni
c~ao 1.4.8 Seja hA Ai uma -algebra e E um conjunto de -equac~oes com variaveis
em X . A -algebra hA Ai satisfaz E se, para cada -equac~ao (t s) em E e cada Aatribuica~o A, hA(t) = hA(s), onde hA e o unico -homomorsmo de T(X ) em A tal que
hA(x) = A(x) para todo x 2 X (proposic~ao 1.3.9).
Teorema 1.4.9 Seja E um conjunto de -equac~oes e C (E ) a classe de -algebras satisfazendo E . C (E ) tem uma -algebra inicial.
Demonstraca~o: Aqui so daremos o esboco da demonstrac~ao. A -algebra inicial de
C (E ) e T =C , onde C e a -congru^encia denida por
(t s) 2 C se e somente se para alguma -equaca~o (t0 s0) 2 E existe uma T(X ) atribuic~ao talque hT (t0) = t e hT (s0 ) = s, onde hT : T(X ) ;! T e o unico homomorsmo tal que hT (x) = T(x) para cada x 2 X .
1.5. -DOMINIOS
19
1.5 -Domnios
Podemos estender a noc~ao de assinatura por considerar alem de smbolos funcionais,
smbolos relacionais, isto e, smbolos cujas interpretac~oes sejam relaco~es sobre o conjunto
base.
Deni
c~ao 1.5.1 Uma assinatura relacional e uma tripla hF R aridi, tal que F
e R s~ao conjuntos contaveis de smbolos funcionais e de predicados, respectivamente e
arid e uma funca~o de aridade, arid : F R ;! N , tal que a cada smbolo s 2 F R
associa sua aridade.
Deni
c~ao 1.5.2 Um -domnio e um par hD D i, onde
D e um conjunto n~ao vazio, chamado conjunto base.
D = ff1D f2D : : : R1D R2D : : : g e um conjunto de func~oes e relac~oes que interpretam os smbolos correspondentes em F e R , respectivamente, de tal modo que se
arid(fi) = n, em F , ent~ao fiD : Dn ;! D e uma func~ao de Dn em D, ou seja,
e uma operac~ao n-aria em D (as func~oes de aridade zero s~ao as constantes). Se
arid(Ri) = n, em R , ent~ao RiD e uma relac~ao n-aria em D, isto e RiD Dn, que
interpreta Ri .
Exemplo 1.5.3 Considere a seguinte assinatura relacional d = fzero um plus div igualg.
Seja =N a igualdade usual sobre os numeros naturais, N e 0N , 1N , +N e =N , o numero
zero, o numero um, a soma e a divis~ao sobre os numeros naturais, respectivamente.
Ent~ao, hN +N 0N 1N =N =N i e um d -domnio que interpreta d em N .
A teoria dos -domnios pode ser desenvolvida do mesmo modo que a teoria das algebras, com as modicac~oes obvias, que consistem em considerar, os smbolos de relac~ao
na assinatura , os quais s~ao interpretados, em D, como relac~oes. Por exemplo, um domnio homomorsmo e um -homomorsmo que preserva a estrutura extra de relac~oes.
Sejam hD1 1 i e hD2 2i -domnios. Uma func~ao h : D1 ;! D2 e um -domnio
homomorsmo se:
1. Para cada f 2 , h(fD1 (d1 : : : dn)) = fD2 (h(d1 ) : : : h(dn)), onde d1 : : : dn 2 D1
e arid(f ) = n.
2. Se (d1 : : : dn) 2 RiD1 , ent~ao (h(d1) : : : h(dn)) 2 RiD2 , onde arid(Ri) = n e
RiD1 RiD2 denotam relac~oes n-arias sobre D1 e D2, respectivamente.
CAPITULO 1. LINGUAGENS FORMAIS
20
Um -domnio homomorsmo h : D1 ;! D2 diz-se um isomorsmo, mais precisamente um -isomorsmo, se h, alem de ser um -domnio homomorsmo, for bijetiva.
Neste caso dizemos que D1 e D2 s~ao isomorfos.
Analogamente a -algebras, tambem temos um -domnio dos termos com variaveis
em X , hT(X ) T(X) i. Como as relac~oes tomam, quando interpretadas num -domnio,
valores verdade e n~ao elementos do domnio basico, elas n~ao constituem um termo. Assim,
termos de uma assinatura d s~ao compostos de variaveis em X e funco~es em F . Logo,
T(X ) e denido da seguinte maneira:
1. se x 2 X ent~ao x 2 T(X ) .
2. se f 2 F , arid(f ) = n e t1 : : : tn 2 T(X ) ent~ao f (t1 : : : tn) 2 T(X ) .
Por outro lado, T(X) e denido da seguinte maneira:
1. se f 2 F , arid(f ) = n e t1 : : : tn 2 T(X ) ent~ao fT(X) : T(n X ) ;! T(X ) e denida
por:
fT(X) (t1 : : : tn) = f (t1 : : : tn)
2. se R 2 R e arid(R) = n ent~ao RT (X ) = T(n X ) .
Proposi
c~ao 1.5.4 Seja hD D i um -domnio e D uma D-atribuic~ao para X , em .
Ent~ao existe um unico -domnio homomorsmo hD : T(X ) ;! D tal que hD (x) =
D (x), para todo x 2 X .
Demonstraca~o: A prova e virtualmente id^entica aquela do teorema 1.3.5. Seja hD co-
mo denido naquele teorema. Neste teorema foi mostrado que hD e um -homomorsmo.
Com a unica relac~ao sobre T(X ) e a relac~ao trivial, isto e, a igualdade sintatica, onde dois
termos s~ao iguais se e somente se s~ao id^enticos, hD , trivialmente, preserva essa relac~ao
sobre D. Seja h0D um outro -domnio homomorsmo de T(X ) em D, que coincide com
D sobre X . Ent~ao h0D e, tambem, um -domnio homomorsmo da -algebra T(X ) em
D. Logo pelo teorema 1.3.5 h0D coincide com hD .
O -domnio homomorsmo hD , nesta proposica~o coincide com aquele do teorema
1.3.5, quando o -domnio hD D i e apenas uma -algebra. Se X = , existe um unico
-domnio homomorsmo de T em D. Caso X 6= , existe uma innidade de tais domnio homorsmos, um para cada D : X ;! D.
1.6. EXERCICIOS
21
1.6 Exerccios
1. Dena uma linguagem formal h Gi para os numero binarios. Considere somente
aquelas cadeias de 1's e 0's que comecem com 1.
2. Dena uma linguagem formal h Gi que gere a linguagem de todas express~oes sobre
o alfabeto = f( )g que estejam corretas com a convenca~o do uso de par^enteses.
3. D^e uma prova de que (()())(()(())) faz parte da linguagem do exemplo anterior.
4. Dena uma linguagem formal h Gi para a linguagem de todas as express~oes aritmeticas, construdas a partir do smbolo E , os operadores binarios +,-,* e /. Considere o uso de todos os par^enteses.
5. D^e uma prova de que ((E + (E + E )) ((E + E ) E )) faz parte da linguagem do
exemplo anterior.
6. Descreva as linguagens dos exerccios 2 e 4 como assinaturas e d^e duas -algebras
para cada uma delas.
7. D^e uma outra -algebra que tenha como conjunto base o conjunto dos numeros
naturais e operac~oes usuais sobre ele.
8. D^e um -homomorsmo entre as duas -algebras do exerccio 6.
9. Sejam h}fin(N ) f
gi e hN f0 +gi as duas -algebras do exemplo 1.3.3.3.
Mostre que z : }fin(N ) ;! N denido por z(x) = 0 e um -homomorsmo. A
func~ao Som : }fin(N ) ;! N denida por
Som(X ) =
0
se X = x + Som(Y ) se X = fxg Y
e um -homomorsmo?
10. Sejam hP Pi, hZ Zi e hN N i as -algebras do exemplo 1.3.3. Demonstre que:
(a) a func~ao p1 : P ;! N denida por p1(x) = x2 e um -homomorsmo.
(b) a func~ao p2 : Z ;! N , denidas por
x<0
p2(x) = 22xj x j ;1 ,, se
se x 0
n~ao e um -homomorsmo.
11. Que poderia ser mudado na -algebra hN N i para que p2 , do exerccio anterior,
seja um -homomorsmo.
CAPITULO 1. LINGUAGENS FORMAIS
22
12. D^e um exemplo de duas -algebras para as quais exista mais de um -homomorsmo.
13. D^e a -algebra dos termos da seguinte assinatura (descreva pelo menos 10 termos
de T).
= fzero suc pred plus prodg
arid(zero) = 0, arid(suc) = 1, arid(pred) = 1, arid(soma) = 2 e
arid(prod) = 2
14. Seja hZ Zi onde
zeroZ = 0
sucZ : Z ;! Z e denida por sucZ(x) = x + 1
predZ : Z ;! Z e denida por predZ(x) = x ; 1
somaZ : Z Z ;! Z e denida por somaZ(x y) = x + y
prodZ : Z Z ;! Z e denida por prodZ(x y) = xy:
D^e o unico -homomorsmo de hT T i em hZ Zi.
15. Demonstre que hT T i e hZ Zi do exerccio anterior s~ao isomorfas.
16. Seja hN fzeroN sucN somaN gi a -algebra do exemplo 1.2.3. Mostre que a relac~ao
Mod5 N N denida por
(x y) 2 Mod5 se, e somente se, x mod 5 = y mod 5
onde x mod 5 e o resto da divis~ao de x por 5, e uma relac~ao de congru^encia.
17. Seja h}fin (N ) i a -algebra do exemplo 1.3.3. Mostre que a relaca~o
(X Y ) 2 C se, e somente se, Card(X ) = Card(Y )
onde Card(X ) e a cardinalidade do conjunto X , e uma relac~ao de equival^encia,
porem n~ao e uma -congru^encia.
18. Dena uma -congru^encia n~ao trivial para a -algebra anterior.
19. Seja = f+ 1 0g com aridades 2, 2, 0 e 0 respectivamente. Dena um conjunto
de -equac~oes E de tal modo que as -algebras satisfazendo E sejam a classe de
todos os aneis.
20. Seja E o conjunto de -equac~oes do exerc$ii cio anterior. Descreva duas -algebras
em C (E ) e mostre um -homomorsmo entre elas. Alguma delas e inicial em C (E )?
1.6. EXERCICIOS
23
21. Seja a assinatura relacional = f0 1 + g, onde 0 e 1 s~ao constantes, +, e s~ao smbolos de func~ao de aridade 2, e e um smbolo de relac~ao binario. Sejam
eguintes -domnios:
(a) -domnio dos pares ordenados onde o primeiro elemento e menor ou igual ao
segundo
i. Conjunto base: I(R) = f(a b) = a b 2 R e a R bg, onde R e o conjunto
dos numeros reais e R e a ordem usual sobre esse conjunto.
ii. 0I(R) = (0 0),
iii. 1I(R) = (1 1),
iv. (a b) +I(R) (c d) = (a +R c b +R d),
v. (a b) I(R) (c d) = (min(ac ad bc bd) max(ac ad bc bd)) e
vi. (a b) I(R) (c d) se, e somente se, c R a e b R d.
(b) 2o -domnio dos intervalos reais fechados. Um intervalo real fechado e um
conjunto a b] = fx 2 R = a R x R bg
i. Conjunto base: IR = fX R = X = a b] para algum intervalo real
fechado a b]g,
ii. 0IR = 0 0] = f0g,
iii. 1IR = 1 1] = f1g,
iv. a b] +IR c d] = fx + y = x 2 a b] e y 2 c d]g,
v. a b] IR c d] = fx y = x 2 a b] e y 2 c d]g, e
vi. a b] IR c d] se, e somente se, a b] c d]
Mostre que estes dois -domnios s~ao isomorfos.
24
CAPITULO 1. LINGUAGENS FORMAIS
Captulo 2
Logica Proposicional: Linguagem e
Sem^antica
As linguagens s~ao express~oes simbolicas de entidades signicativas de um \fragmento da
realidade" a qual suas express~oes representam ou denotam. Desse modo, as linguagens s~ao
constitudas de dimens~oes sintaticas e sem^anticas. Existe, ainda, uma terceira dimens~ao
nos sistemas lingusticos, qual seja, a dimens~ao pragmatica, que trata da quest~ao do
uso das linguagens por uma comunidade de indivduos. Do ponto de vista matematico as
duas primeiras dimens~oes est~ao relativamente avancadas, enquanto a dimens~ao pragmatica
ainda se encontra num estagio primitivo de seu desenvolvimento. Ultimamente, com o
advento da ci^encia da computac~ao esta dimens~ao tem-se tornado uma area de intensa
pesquisa. Neste trabalho somente abordaremos os nveis sintaticos e sem^anticos das linguagens. Mais precisamente, usaremos essas duas dimens~oes para formalizar a teoria da
logica proposicional. Portanto, no captulo que segue, a realidade para nos e constituda
de proposic~oes, isto e armac~oes que podem ser verdadeiras ou falsas.
Quando argumentamos, isto e, quando fazemos uma prova, o fazemos numa linguagem.
Se a linguagem esta formalizada os argumentos podem, tambem, ser formalizados, resultando, assim, uma logica formal em contrapartida a uma logica especulativa ou informal.
O argumento, objeto de estudo da logica classica, e uma entidade composta de entidades
mais simples chamadas proposic~oes. Para entender o que e uma proposic~ao considere a
frase \1 mais 1 e igual a 10", ou simbolicamente, \1+1 = 10". Esta frase e uma proposic~ao
no sentido de que ela e uma asserc~ao declarativa, ou seja, arma ou nega um fato, e tem
um valor verdade, que pode ser verdadeiro ou falso. Observe que o valor verdade de uma
proposic~ao n~ao e um conceito absoluto, mas depende de um contexto interpretativo. Por
exemplo, num sistema de numerac~ao de base 2 a proposic~ao anterior seria verdadeira,
enquanto que no sistema decimal seria falsa. De ora em diante so consideraremos frases que s~ao proposic~oes, isto e, frases que s~ao declarativas e conotam um valor verdade,
verdadeiro ou falso. Portanto n~ao consideraremos como proposic~oes frases interrogativas,
exclamativas, etc.
A logica estuda como raciocinar, como deduzir das hipoteses certas conclus~oes. As25
26
^
CAPITULO 2. LOGICA
PROPOSICIONAL: LINGUAGEM E SEMANTICA
sim, s~ao fundamentais as noc~oes de proposica~o, verdade e prova. A logica proposicional
classica e o exemplo mais simples de logica formal. Esta logica leva em conta, somente,
os valores verdades e a forma das proposic~oes. O estudo detalhado dessa logica, e importante porque ela contem quase todos os conceitos importantes necessarios para o estudo
de logicas mais complexas.
2.1 A Linguagem da Logica Proposicional
Uma proposic~ao e um sentenca declarativa sobre objetos a qual pode assumir valores
verdade Verdadeiro (1) ou Falso (0), dependendo da interpretac~ao. Assim, por exemplo,
as sentencas:
1. \Maria gosta de Jo~ao e de Pedro"
2. \Todos os seres humanos t^em uma m~ae"
3. \Cinco e maior que quatro"
s~ao, dependendo da interpretac~ao (quem e Maria?, quem e Jo~ao?, que signica gosta?,
etc.), verdadeiras ou falsas.
Os objetos aos quais aludem uma proposica~o (Maria, Jo~ao, seres humanos, m~ae, cinco,
um lme, etc.) s~ao chamados de termos.
Conectivos
E possvel juntar ou conectar algumas proposico~es formando proposic~oes mais complexas:
Por exemplo, a proposic~ao \Maria gosta de Jo~ao e e irm~a de Pedro" e a junc~ao, mediante
o conectivo \e", das proposic~oes \Maria gosta de Jo~ao" e \Maria e irm~ao de Pedro".
Em logica proposicional distinguimos 5 conectivos ou juntores:
Nega
c~ao
Em portugu^es, a palavra \N~ao", indica que algo (ao que se refer o \n~ao") n~ao ocorre ou
n~ao e verdade. Por exemplo, a proposic~ao \Maria n~ao gosta de Jo~ao" esta dizendo que n~ao
e verdade que \Maria gosta de Jo~ao". Assim, a negac~ao de um proposica~o e verdadeira se
a proposic~ao que esta sendo negada e falsa. Em logica proposicional, usaremos o smbolo
\:" para indicar este conectivo logico.
2.1. A LINGUAGEM DA LOGICA
PROPOSICIONAL
27
Conjun
c~ao
A partir de duas proposic~oes, p1 e p2, podemos obter uma terceira proposica~o, p1 ^ p2, a
qual vai ser verdadeira se, e somente se, as duas proposic~oes (p1 e p2) s~ao em conjunto
ambas verdadeiras. Em portugu^es isto corresponde ao conectivo \e". Por exemplo, a
conjunc~ao das proposic~oes \Maria gosta de Jo~ao" e \Jo~ao gosta de Maria" e a proposic~ao
\Maria gosta de Jo~ao e Jo~ao gosta de Maria". Em logica proposicional, usaremos o
smbolo ^" para indicar a conjunc~ao de proposico~es.
Disjun
c~ao
A partir de duas proposic~oes, p1 e p2, podemos obter uma terceira proposica~o, p1 _ p2, a
qual vai ser verdadeira se, e somente se, ao menos uma das duas proposic~oes p1 ou p2 ) for
verdadeira. Em portugu^es isto e representado se usando o conectivo \ou". Este conectivo
e chamado de disjunc~ao. Por exemplo, a disjunc~ao das proposico~es \Maria gosta de Jo~ao"
e \Jo~ao gosta de Maria" e a proposica~o \Maria gosta de Jo~ao e Jo~ao gosta de Maria".
Em logica proposicional, usaremos o smbolo _" para indicar a disjunc~ao de proposic~oes.
Condicional ou implica
c~ao
A partir de duas proposic~oes, p1 e p2, podemos obter uma terceira proposica~o, p1 ! p2, a
qual vai ser verdadeira se, e somente se, a proposic~ao p1 e falsa ou p2 e verdadeira. Ela e
chamada de condicional, pois para ela tomar o valor verdade verdadeiro, o valor verdade
verdadeiro de p2 debe estar condicionado ao valor verdade verdadeiro de p1 . Ou seja, toda
vez que a proposic~ao p1 for verdadeira a proposica~o p2 tambem debe ser verdadeira, ja
quando p1 for falsa, p2 pode tomar qualquer valor verdade. Em portugu^es esse conectivo
e representado pela express~ao \se ... ent~ao ...." ou pela palavra \implica". Este tipo de
conectivo e chamado de disjunc~ao. Por exemplo, a disjunc~ao das proposico~es \Maria gosta
de Jo~ao" e \Jo~ao gosta de Maria" e a proposic~ao \Se Maria gosta de Jo~ao ent~ao Jo~ao gosta
de Maria". Outro exemplo, de implicac~ao de duas proposic~oes e a proposica~o \cachorro
que late, n~ao morde" a qual pode ser re escrita de tal modo a salientar o conectivo usado
como \Se o cachorro late, ent~ao ele n~ao morde". Em logica proposicional, usaremos o
smbolo !" para indicar a implicac~ao de proposic~oes.
A proposic~ao a esquerda do conectivo ! e denominada de premissa ou antecendente
, e a proposic~ao a direita do conectivo ! e denominada de conclus~ao ou consequente .
Bi-condicional ou bi-implica
c~ao
A partir de duas proposic~oes, p1 e p2 , podemos obter uma terceira proposic~ao, p1 $ p2,
a qual vai ser verdadeira se, e somente se, ambas proposico~es (p1 e p2) tiverem o mesmo
valor verdade. Ela e chamada de bi-implicac~ao pois ela e equivalente a implicac~ao de
p1 com p2 e de p2 com p1. Em portugu^es, este conectivo e representado pela express~ao
28
^
CAPITULO 2. LOGICA
PROPOSICIONAL: LINGUAGEM E SEMANTICA
\se, e somente se,". Por exemplo, a frase \Josue vai se formar se, e somente se, defender
sua monograa" pode ser encarada como a bi-implicac~ao de \Josue vai se formar" com
\Josue vai defender sua monograa". Em logica proposicional, usaremos o smbolo $"
para indicar a bi-implicac~ao de proposic~oes.
Proposic~oes at^omicas
Proposic~oes at^omicas s~ao proposic~oes, como a palavra diz, indivisveis, isto e, proposic~oes
que n~ao podem ser quebradas em proposic~oes mais simples. Portanto, uma proposica~o e
at^omica se ela n~ao possue nenhum conectivo logico. Por exemplo, as proposic~oes \Rosa
gosta de estudar logica", \todos os corvos s~ao pretos" e \Ronaldo gosta de jogar bola" s~ao
proposic~oes at^omicas, ja as proposic~oes \Rosa gosta de estudar logica e teoria da computac~ao ", \Maria gosta de Jo~ao ou de Pedro", \Ele n~ao gosta de fumar", \Se Roberto n~ao
estuda para a prova de logica, tirara uma nota baixa", etc. s~ao proposic~oes n~ao at^omicas
ou proposic~oes compostas, pois elas envolvem algum conectivo logico sobre proposic~oes
menores.
Uma maneira semi-formal de escrever proposic~oes at^omicas e colocar verbo da proposic~ao,
seguido de uma lista de sujeito entre par^enteses. Por exemplo, as proposico~es \Jo~ao e pai
de Ana" e \Ana, maria e Rosa s~ao irm~as" podem ser colocadas como: Pai(Jo~ao,Ana)
e Irm~as(Ana,Maria,Rosa), respectivamente. Usando esta convec~ao , podemos descrever
armac~oes do dia a dia numa nomenclatura mais facilmente entendvel. Por exemplo a
armac~ao \Se Jo~ao e Gabriela s~ao os pais de Ana e Ana e irm~a de Maria, ent~ao Jo~ao e pai
de Maria ou Gabriela e m~ae de Maria", pode ser re-escrita numa linguagem mais logica
da seguinte forma:
(Pais(Jo~ao,Gabriela,Ana)^Irm~ao(Ana,Maria))!
(Pai(Jo~ao,Maria)_M~ae(Gabriela,Maria)),
ou ainda
(Pai(Jo~ao,Ana)^M~ae(Gabriela,Ana)^Irm~ao(Ana,Maria))!
(Pai(Jo~ao,Maria)_M~ae(Gabriela,Maria)),
Esta forma de escrever armac~oes e a base para usar logica como uma forma de representar o conhecimento em sistemas inteligentes, para especicar sistemas, para escrever
programas baseados no paradigma de programaca~o em logica que veremos sucintamente
no captulo 8 deste texto, etc. No entanto, como por enquanto estamos preocupados
em lidar com as caractersticas e propriedades da linguagem proposicional independente
de como s~ao interpretadas as sentencas, daremos a seguir a linguagem logica desde uma
perspectiva formal.
2.2. A LINGUAGEM FORMAL DA LOGICA
PROPOSICIONAL
29
2.2 A Linguagem Formal da Logica Proposicional
De ora em diante usaremos as letras minusculas indexadas, p1 p2 : : : , para representar
proposic~oes at^omicas e usaremos letras gregas minusculas, talvez indexadas, tais como
, , 1, etc., como meta-variaveis proposicionais, isto e s~ao usadas para representar
qualquer proposic~ao (at^omica ou composta).
O alfabeto da linguagem da logica proposicional e constituido de tr^es conjuntos disjuntos.
1. O conjunto enumeravel V das variaveis proposicionais, V = fp1 : : : pn : : : g:
2. O conjunto C dos conectivos proposicionais, C = f: ^ _ ! $g.
3. O conjunto P dos par^enteses P = f( )g.
Portanto = V C P , o qual denotaremos, simplesmente, por
= fp1 : : : pn : : : : ^ _ ! $ ( )g:
A linguagem proposicional, LP , e a linguagem gerada pela linguagem formal LP =
h Gi, onde e o alfabeto proposicional acima e G e a gramatica constituda pelas
seguintes regras.
g1 : : p;i pi 2 V
g2 : : (:)
g3 : : (^ )
g4 : : (_ )
g5 : : (! )
g6 : : ($ )
Observa
c~oes:
1. LP = Ling(LP ).
2. As variaveis proposicionais s~ao chamadas formulas at^omicas, pois elas denotam
proposic~oes at^omicas.
3. Os elementos da linguagem proposicional s~ao chamados de proposic~oes , formulas
ou formulas bem formadas.
4. E usual, nos textos classicos de logica, denominar-se de linguagem proposicional ao
conjunto das formulas bem formadas (fbf) do calculo proposicional.
^
CAPITULO 2. LOGICA
PROPOSICIONAL: LINGUAGEM E SEMANTICA
30
Exemplo 2.2.1 \def
= " e usado com o sentido \e denido por". 1 , 2 e 3, abaixo, s~ao
exemplos de proposico~es em LP .
1 def
= pi 2 def
= ((p1 _ p2 ) ! p3 ) 3 def
= ((p1 ^ p2) $ (p1 ! p2 ))
pois, elas podem ser geradas pela linguagem formal da logica proposicional. No caso de 3
temos a seguinte prova (junto com o argumento a cada passo da prova) de que 3 2 LP :
w1 def
=
def
w2 =
w3 =
w4 def
=
def
w5 = 3 =
p1
p2
(p1 ^ p2)
(p1 ! p2)
((p1 ^ p2) $ (p1 ! p2 )) Aplicando g6 a w3 e w4
Direto da regra g1
Direto da regra g1
Aplicando g3 a w1 e w2
Aplicando g5 a w1 e w2
O conceito de subformula e intuitivo e natural. Basicamente, uma formula e uma
subformula de uma formula se ela ocorre em , no sentido que ela foi usada como
premisa de uma das regras gramaticais na gerac~ao de . Mas, para tornar este conceito
mais precisso, daremos uma denic~ao indutiva.
Deni
c~ao 2.2.2 Uma formula e uma subformula de uma formula se
1. e o proprio ,
2. e (:
) e e uma subformula de , ou
3. e (1 2 ) para algum 2 f_ ^ ! $g e e uma subformula de 1 ou de 2.
Exemplo 2.2.3 Seja 3 a formula descrita no exemplo 2.2.1. Ent~ao, 3 tem as seguintes
subformulas:
1. p1
2. p2
3. (p1 ^ p2 )
4. (p1 ! p2 )
5. ((p1 ^ p2 ) $ (p1 ! p2 ))
2.2. A LINGUAGEM FORMAL DA LOGICA
PROPOSICIONAL
31
O escopo de um conectivo de C e a proposica~o ou proposico~es as quais o conectivo
se aplica quando visto como uma operaca~o sobre LP . Aqui o conectivo : e uma operac~ao
unaria, isto e, pede apenas um argumento, enquanto os demais s~ao binarios, requerem,
portanto, dois argumentos.
Para que as express~oes complicadas se tornem mais legveis, adotaremos algumas convens~oes para eliminac~ao de par^enteses. Primeiro omitiremos os pares de par^enteses mais
externos. Assim, ( ! ) pode ser escrito como ! e (:) como :.
Segundo, quando uma formula contem repetidas aplicaco~es de um conectivo binario, os
par^enteses ser~ao omitidos usando associac~ao a esquerda. Por exemplo, a formula ((( !
( ^ )) ! ) ! ) se torna ! ( ^ ) ! ! Por ultimo, os conectivos s~ao ordenados do maior ao menor escopo, ou da mais baixa
preced^encia para a mais alta como segue:
$ ! _ ^ :
Par^enteses s~ao, assim, eliminados segundo a regra de que $ tem o maior escopo e
: tem o menor, ou dito de outro modo, : tem a mais alta preced^encia e $ a menor.
Ou seja, : se aplica a menor proposica~o que a segue, em seguida ^, e assim ate $. Por
exemplo, a formula
(((:) _ (:( _ ))) $ ( ! ( _ ((:) ^ )))):
pode ser simplicada, eliminando par^enteses de acordo com a convenc~ao acima adotada,
resultando na formula
: _ :( _ ) $ _ : ^ Claramente, quando eliminamos par^enteses de uma formula n~ao at^omica, o resultado
n~ao sera uma formula bem formada. Porem, devemos encarar estas formulas sem todos
os par^entese, como abreviac~oes ou simplicaco~es, das repectivas formula com todos seus
par^enteses. De aqui para frente, as fbf's ser~ao escritas sem considerar, provavelmente,
todos seus par^enteses. No entanto, com o intuito de preservar o entendimento da formula
n~ao usaremos, necessariamente, a convenc~ao para tirar par^entese de modo exaustivo.
Uma linguagem L, sobre um alfabeto , e decidvel se existe um algoritmo tal que
tendo como entrada uma express~ao 2 ele fornece como sada \sim" se 2 L e \n~ao"
se 2=L. Embora n~ao entraremos em detalhes, observaremos que a linguagem LP , das
proposic~oes sobre o alfabeto , acima especicada, e decidvel.
Considere o conjunto B = f0 1g, no qual 0 sera pensado como o valor verdade \falso" e
1 como o valor verdade \verdadeiro". Dena sobre B as seguintes operaco~es: + )
e ,, especicadas pelas seguintes tabelas, denominadas tabelas verdade:
^
CAPITULO 2. LOGICA
PROPOSICIONAL: LINGUAGEM E SEMANTICA
32
1 0
0 1
1
1
0
0
1
1
0
0
+
1
1
0
1
1
1
0
0
1
1
0
0
1 1
0 0
1 0
0 0
)
1
1
0
0
1
1
0
1
1
1
0
0
,
1
1
0
0
1
0
0
1
E facil ver que, de fato, + ) e , s~ao operac~oes sobre B , com uma operac~ao
unaria e as demais binarias. Alem disso, B munido das operac~oes + e satisfaz o
seguinte conjunto de equac~oes
1.
2.
3.
4.
5.
6.
Comutatividade: + = + e = Associatividade: + ( + ) = ( + ) + e ( ) = ( ) Elemento neutro: + 0 = e 1 = Distribuitividade: ( + ) = + e + ( ) = ( + ) ( + )
Complemento: = 0 e + = 1
Absorc~ao : _ ( ^ ) = e ^ ( _ ) = Seja A um conjunto n~ao vazio. Uma estrutura algebrica, hA + 0 1i, onde +
e s~ao operac~oes binarias, uma operaca~o unaria e 0 e 1 constantes, satisfazendo as
equac~oes acima, e conhecida na literatura, como algebra booleana, em homenagem
ao matematico George Boole (1815-1864) que introduz esta estrutura para estudar a
teoria dos conjuntos e logica proposicional. Observe que para qualquer conjunto X 6= ,
h}(X ) \ X i e uma algebra booleana. Claramente, se pensarmos em termo de
-algebras, a algebra booleana B e inicial na classe de todas -algebras satisfazendo as
-equac~oes anteriores.
De posse da algebra booleana B e possvel denir uma interpretaca~o para a linguagem
proposicional LP . Antes porem, daremos a seguinte denic~ao.
2.2. A LINGUAGEM FORMAL DA LOGICA
PROPOSICIONAL
33
Deni
c~ao 2.2.4 Seja V o subconjunto das variaveis proposicionais do alfabeto da linguagem proposicional LP . Uma atribui
c~ao de valores verdade e uma func~ao :
V ;! B .
Como LP e denida indutivamente a partir de V , usando a proposic~ao 1.3.9, e possvel
estender a atribuic~ao de valores verdade para uma func~ao V : LP ;! B . Esta func~ao e
chamada fun
c~ao de valora
c~ao associada a atribuic~ao , ou simplesmente, valoraca~o. V,
tambem, e conhecida como fun
c~ao sem^antica. Observe que e possvel denir innitas
atribuic~oes de valores verdade de V em B , e cada valorac~ao V depende da atribuic~ao
. Assim, V e denida recursivamente tendo como base da recurs~ao a func~ao , como
mostrado abaixo:
1. V(p) = (p) para todo p 2 V
2. V(:) = V()
3. V( _ ) = V () + V ( )
4. V( ^ ) = V () V( )
5. V( ! ) = V() ) V ( )
6. V( $ ) = V() , V ( )
Um caso particularmente interessante de atribuic~ao se da no seguinte caso. Seja a
proposic~ao def
= (p1 _ p2) ! p3. Neste caso dizemos que e constituda das proposico~es
at^omicas p1 p2 e p3 . Em geral, se e uma proposic~ao cujo conjunto de proposico~es
at^omicas e fp1 : : : png, ent~ao para determinar o valor verdade de os valores que tomem
as variaveis proposicionais pi , com i > n, e absolutamente irrelevante. Assim, podemos
dizer que uma atribuic~ao de valores verdade para e uma func~ao : fp1 : : : png ;! B .
Analogamente, V e uma valorac~ao para , isto e, V associa o valor 0 ou 1 a dependendo
da atribuic~ao .
Exemplo 2.2.5 Seja def
= (p1 _ p2 ) ! p3. Achar V () para o seguinte : (p1 ) = 0,
(p2 ) = 1 e (p3 ) = 0. Ent~ao,
V ((p1 _ p2 ) ! p3 ) = V (p1 _ p2 ) ) V (p3 )
= (V(p1 ) + V(p2)) ) V (p3)
= ((p1 ) + (p2)) ) (p3 )
= (0 + 1) ) 0
=1)0
= 0:
34
^
CAPITULO 2. LOGICA
PROPOSICIONAL: LINGUAGEM E SEMANTICA
Em alguns casos e desejavel se saver o comportamento da formula em todas as possveis
interpretac~oes , isto e considerar cada possvel funca~o de atribuic~ao de valores verdade
para as variaveis proposicionais.
Exemplo 2.2.6 Seja a mesma formula do exemplo anterior, isto e def
= (p1 _ p2) ! p3 .
As possveis func~oes de atribuic~ao de valores verdade para as variaveis proposicionais
p1 p2 e p3 s~ao:
1. 1 (p1) = 1, 1(p2 ) = 1 e 1 (p3 ) = 1
2. 2 (p1) = 1, 2(p2 ) = 1 e 2 (p3 ) = 0
3. 3 (p1) = 1, 3(p2 ) = 0 e 3 (p3 ) = 1
4. 4 (p1) = 1, 4(p2 ) = 0 e 4 (p3 ) = 0
5. 5 (p1) = 0, 5(p2 ) = 1 e 5 (p3 ) = 1
6. 6 (p1) = 0, 6(p2 ) = 1 e 6 (p3 ) = 0
7. 7 (p1) = 0, 7(p2 ) = 0 e 7 (p3 ) = 1
8. 8 (p1) = 0, 8(p2 ) = 0 e 8 (p3 ) = 0
Para cada funca~o de atribuica~o i temos uma func~ao sem^antica que da o valor verdade
que toma a ormula para a atribuic~ao i . Esta func~ao sem^antica se comporta da seguinte
maneira:
Vi ((p1 _ p2 ) ! p3 ) = Vi (p1 _ p2 ) ) Vi (p3 )
= (Vi (p1) + V(p2 )) ) Vi (p3 )
= (i(p1 ) + i(p2 )) ) i (p3)
Por tanto, as possveis interpretac~oes de s~ao:
2.2. A LINGUAGEM FORMAL DA LOGICA
PROPOSICIONAL
35
1: V1 ((p1 _ p2) ! p3 ) = (1 (p1) + 1 (p2)) ) 1 (p3)
= (1 + 1) ) 1
=1)1
=1
2: V2 ((p1 _ p2) ! p3 ) = (2 (p1) + 2 (p2)) ) 2 (p3)
= (1 + 1) ) 0
=1)0
=0
3: V3 ((p1 _ p2) ! p3 ) = (3 (p1) + 3 (p2)) ) 3 (p3)
= (1 + 0) ) 1
=1)1
=1
4: V4 ((p1 _ p2) ! p3 ) = (4 (p1) + 4 (p2)) ) 4 (p3)
= (1 + 0) ) 0
=1)0
=0
5: V5 ((p1 _ p2) ! p3 ) = (5 (p1) + 5 (p2)) ) 5 (p3)
= (0 + 1) ) 1
=1)1
=1
6: V6 ((p1 _ p2) ! p3 ) = (6 (p1) + 6 (p2)) ) 6 (p3)
= (0 + 1) ) 0
=1)0
=0
7: V7 ((p1 _ p2) ! p3 ) = (7 (p1) + 7 (p2)) ) 7 (p3)
= (0 + 0) ) 1
=0)1
=1
8: V8 ((p1 _ p2) ! p3 ) = (8 (p1) + 8 (p2)) ) 8 (p3)
= (0 + 0) ) 0
=0)0
=1
E usual nos livros textos de calculo proposicional apresentar os calculos acima atraves
da seguinte tabela verdade.
36
^
CAPITULO 2. LOGICA
PROPOSICIONAL: LINGUAGEM E SEMANTICA
p1
1
1
1
1
0
0
0
0
p2
1
1
0
0
1
1
0
0
p3 p1 _ p2 p1 _ p2 ! p3
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
Desse modo, embora , +, , ) e , sejam interpretaco~es de :, _, ^, ! e $,
respectivamente, e comum usar em ambos os casos os mesmos smbolos para a dimens~ao
sintatica e sem^antica. Por isso, de ora em diante usaremos :, _, ^, ! e $ em ambas
dimens~oes, e a distinc~ao sera inferida do contexto.
Exemplo 2.2.7 A tabela verdade da proposic~ao p1 ! (p2 ^ :(p3 ! p1)) e dada abaixo:
p1 p2 p3 p3 ! p1 :(p3 ! p1) p2 ^ :(p3 ! p1) p1 ! (p2 ^ :(p3 ! p1))
1 1 1
1
0
0
0
1 1 0
1
0
0
0
1 0 1
1
0
0
0
1 0 0
1
0
0
0
0 1 1
0
1
1
1
0 1 0
1
0
0
1
0 0 1
0
1
0
1
0 0 0
1
0
0
1
Tabelas verdades de proposic~oes complexas s~ao muito longas, pois devemos ir escrevendo os resultados parciais de cada subformula ate chegar a formula toda. Uma maneira
de fazer isto ocupando menos espaco e ir colocando os resultados parciais abaixo de cada
conectivo logico. Para visualizar melhor resultado nal da tabela, usaremos barras duplas
para a coluna do conectivo principal da formula.
Exemplo 2.2.8 A tabela verdade compactada da proposic~ao p1 ! (p2 ^ :(p3 ! p1 )) e
dada abaixo:
p1 ! (p2 ^ :(p3 ! p1))
1 0 1 0 0 1 1 1
1 0 1 0 0 0 1 1
1 0 0 0 0 1 1 1
1 0 0 0 0 0 1 1
0 1 1 1 1 1 0 0
0 1 1 0 0 0 1 0
0 1 0 0 1 1 0 0
0 1 0 0 0 0 1 0
2.3. LOGICA
PROPOSICIONAL
37
Em algumas formulas usaremos meta-variaveis proposicionais (, , etc.) em vez de
variaveis proposicionais (p1, p2, etc.). Nestes casos chamaremos estas formulas de metaproposic~oes . A ideia que uma meta proposica~o representa um conjunto de proposic~oes
, pois as meta-variaveis proposicionais podem ser substitudas por qualquer proposic~ao .
Por exemplo as proposic~oes p1 ^ p2 , (p1 ! p1 ) ^:(p1 _ p3 ) e (p1 ^ p2 ) ^ p3 s~ao inst^ancias da
meta-proposic~ao ^ . Tabelas verdades de meta-proposic~oes s~a feitas de modo similar
as tabelas verdades das proposic~oes , isto e, como n~ao se sabe qual a possvel inst^ancia de
uma meta-variavel proposicional, se considera todas as possveis combinaco~es de valores
verdade que possam ter as meta-variaveis.
Exemplo 2.2.9 A tabela verdade (compactada) para a meta-proposic~ao ! ( ! :
)
e dada a seguir:
! ( ^ :
)
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
2.3 Logica Proposicional
Nesta sec~ao a partir da linguagem proposicional, LP , destacaremos um subconjunto
proprio dela o qual chamaremos logica proposicional. Observaremos em seguida que,
de fato, a logica proposicional n~ao se reduz a toda a linguagem LP .
Deni
c~ao 2.3.1 Seja uma proposic~ao de LP . diz-se uma tautologia se qualquer
que seja a atribuica~o de valores verdade para as proposic~oes at^omicas que constituem
, o valor verdade de e sempre 1. Em outras palavras, se para cada atribuic~ao de
valores verdade : fp1 : : : png ;! B , onde p1 : : : pn s~ao as proposic~oes at^omicas que
constituem , V () = 1.
Assim, tautologias s~ao formulas que tom~ao o valor verdade verdadeiro independente
do valor que atribuamos as proposic~oes at^omicas que a comp~oem. Isto e, numa tautologia
o importante e a forma e n~ao sua interpretac~ao. Por exemplo, a conhecida frase de Shakespeare em Hamlet, \ser ou n~ao ser", e uma tautologia, pois ela e verdadeira independente
^
CAPITULO 2. LOGICA
PROPOSICIONAL: LINGUAGEM E SEMANTICA
38
do que se queira dizer com \ser" (ser homem, ser alto1, ser vtima, etc.), o importante nela
e a forma da frase, p1 _ :p1 . Assim, tautologias s~ao formulas que sempre s~ao verdadeiras,
independente da interpretac~ao.
Exemplo 2.3.2 As seguintes proposic~oes e meta-proposic~oes s~ao tautologias.
1. p1 ! (p2 ! p1)
2. (p1 ! (p2 ! p3 )) ! ((p1 ! p2) ! (p1 ! p3))
3. (:p2 ! :p1 ) ! ((:p2 ! p1) ! p2 )
4. (:p2 ! :p1 ) ! (p1 ! p2)
5. ^ ! 6. ^ ! 7. ! ::
8. :: ! 9. ! _ 10. ^ : ! Para vericar que estas formulas proposicionais s~ao realmente tautologias basta fazer
sua tabela verdade (compactada).
p1 ! (p2 ! p1)
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
Neste tipo de conjuntos, a propriedade que satisfazem seus elementos n~ao e bem de
nida, por exemplo para alguem uma pessoa alta poderia ser qualquer pessoa que mede acima de um metro e oitenta
centmetros, mas nesta vis~ao uma pessoa que mede um metro e setenta nove centmetros e 9 milmetros
n~ao seria considerada alta enquanto que uma que mede um milimetro a mais sim seria. Uma logica que
consegue modelar melhor este tipo de proposic~oes e a logica fuzzy Zad65, BB95, Kas96, Ngu99], onde
um proposic~ao n~ao e simplesmente verdadeira ou falsa, mas possui um grau de verdade que varia entre
falso (0) e verdadeiro (1).
1
2.3. LOGICA
PROPOSICIONAL
39
(p1 ! (p2 ! p3 )) ! ((p1 ! p2) ! (p1 ! p3 ))
1 1 1 1 1 1 1 1 1 1 1 1 1
1 0 1 0 0 1 1 1 1 0 1 0 0
1 1 0 1 1 1 1 0 0 1 1 1 1
1 1 0 1 0 1 1 0 0 1 1 0 0
0 1 1 1 1 1 0 1 1 1 0 1 1
0 1 1 0 0 1 0 1 1 1 0 1 0
0 1 0 1 1 1 0 1 0 1 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0
0
1
0
1
(:p2 ! :p1 ) ! ((:p2 ! p1 ) ! p2)
1 1 0 1 1 0 1 1 1 1
0 0 0 1 1 1 0 1 1 0
1 1 1 0 1 0 1 1 0 1
0 1 1 0 1 1 0 0 0 1
(:p2 ! :p1 ) ! (p1 ! p2)
0 1 1 0 1 1 1 1 1
1 0 0 0 1 1 1 0 0
0 1 1 1 0 1 0 1 1
1 0 1 1 0 1 0 1 0
1
1
0
0
1
1
0
0
^ !
1
0
0
0
1
0
1
0
1
1
1
1
^ !
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
! ::
1 1 1 0 1
0 1 0 1 0
:: ! 1 0 1 1 1
0 1 0 1 0
1
0
1
0
40
^
CAPITULO 2. LOGICA
PROPOSICIONAL: LINGUAGEM E SEMANTICA
1
1
0
0
1
1
0
0
!_
1
1
1
1
1
1
0
0
1
1
1
0
^ : ! 0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
Uma proposic~ao de LP e um contradi
c~ao se V() = 0 para toda atribuic~ao de
valores verdades para as proposico~es at^omicas de . Um exemplo de contradic~ao e
def
= p ^ :p. Portanto, e uma tautologia se, e somente se, : e uma contradic~ao
e, inversamente, e uma contradica~o se, e somente se, : e uma tautologia. As fbf's
que n~ao s~ao nem tautologias nem contradico~es , por exemplo p1 ! p2 , s~ao chamadas
de contingentes, pois o seu valor verdade varia de acordo com a interpretaca~o de seus
smbolos proposicionais, ou seja, e falsa em alguma interpretac~ao e verdadeira em outra.
Observe que a proposica~o p1 ! (p2 ^:(p3 ! p1 )) do exemplo 2.2.8 e uma inst^ancia da
meta-proposic~ao ! ( ! :
) do exemplo 2.2.9. Observe tambem que as respectivas
tabelas verdades s~ao diferentes. Isto acontece porque a meta-proposica~o e contingente.
Se fosse uma tautologia ou contradica~o , ent~ao qualquer inst^ancia dela continuaria sendo
uma tautologia ou contradic~ao . De hora em diante, chamaremos meta-proposic~oes de
prosic~oes .
Proposi
c~ao 2.3.3 Seja Taut(LP ) o conjunto de todas as tautologias na linguagem proposi-
cional LP . Ent~ao, Taut(LP ) e um subconjunto proprio de LP .
Demonstraca~o: Basta exibir uma proposic~ao de LP que n~ao e uma tautologia. Isto
e, uma proposic~ao e uma atribuic~ao de valores verdade para as proposico~es at^omicas
que constituem tal que V() = 0.
Seja, portanto, def
= p1 ! p2 e tome (p1) = 1 e (p2) = 0. ent~ao
V (p1 ! p2 ) = V (p1 ) ) V (p2 ) = 1 ) 0 = 0:
Deni
c~ao 2.3.4 Chamaremos logica proposicional sobre a linguagem LP ao conjunto
Taut(LP ), de todas as tautologias em LP .
Deni
c~ao 2.3.5 Como Taut(LP ) 6= LP dizemos que a logica proposicional e consistente. Ou seja, em geral dizemos, que uma logica sobre uma linguagem L e consistente
se ela n~ao se reduz a linguagem.
2.3. LOGICA
PROPOSICIONAL
41
A primeira vista a nossa denic~ao de logica proposicional como o conjunto de tautologias Taut(LP ) n~ao corresponde a nossa intuic~ao de que \logica e um instrumento
para descobrir que uma proposic~ao, a qual chamamos de tese, decorre de um conjunto
de proposic~oes, chamadas hipoteses". Em outras palavras, que \logica e usada como um
aparato dedutivo". Entretanto, veremos que e possvel construir esse \aparato dedutivo"
a partir de Taut(LP ).
Seja P (LP ) o conjunto das partes de LP e j= P (LP ) LP uma relaca~o sobre LP
que associa a um subconjunto ; LP uma proposic~ao de LP . Usaremos as letras gregas
maiusculas, talvez indexadas, para denotar conjuntos de proposico~es.
Deni
c~ao 2.3.6 Seja 2 LP e ; LP . Dizemos que e uma consequ^encia sem^antica
ou consequ^encia logica de ;, denotado por ; j= , se para toda atribuic~ao de valores
verdade tal que V( ) = 1 para toda proposic~ao 2 ;, ent~ao V() = 1.
Exemplo 2.3.7 Considere a seguinte armac~ao :
\Suponha que Socrates esta em tal situac~ao que ele estaria disposto a visitar Plat~ao,
so se Plat~ao estivesse dispoto a visita-lo e que Plat~ao esta em tal situac~ao que ele n~ao
estaria disposto a visitar Socrates, se Socrates estivesse disposto a vista-lo, mas estaria
disposto a visitar Socrates, se Socrates n~ao estivesse disposto a vista-lo".
Agora respondamos a seguinte pergunta: \Socrates esta disposto visitar Plat~ao?"
Esta pergunta tera como resposta \sim", somente se a armac~ao \Socrates esta disposto visitar Plat~ao" for consequ^encia logica da armac~ao . Mas para v^er isso teremos
que descrever a^mbas armac~oes na linguagem proposicional. Para isso, primeiro devemos
distinguir quais as proposic~oes at^omicas. Distinguimos duas:
p =\Socrates esta disposto a visitar Plat~ao"
q =\Plat~ao esta disposto a visitar Socrates"
Assim, a postura de Socrates e Plat~ao podem ser re-escritas na linguagem proposicional
como:
Socrates: q ! p
Plat~ao: (p ! :q ) ^ (:p ! q )
Assim, para responder a pergunta devemos determinar se
q ! p (p ! :q) ^ (:p ! q) j= p
ou n~ao. Vejamos isto usando tabelas verdades:
42
^
CAPITULO 2. LOGICA
PROPOSICIONAL: LINGUAGEM E SEMANTICA
p
1
1
0
0
q q ! p p ! :q :p ! q (p ! :q) ^ (:p ! q)
1 1
0
1
0
0 1
1
1
1
1 0
1
1
1
0 1
1
0
0
Assim, colocando lado a lado os valores de cada formula
q ! p (p ! :q) ^ (:p ! q)
1
0
1
1
0
1
1
0
p
1
1
0
0
e identicando as situaco~es em que as posturas de Socrates e de Plat~ao s~ao verdadeiras,
temos que a unica situaca~o em que isso ocorre e na segunda linha, mas nesse caso o valor
de p e 1. Logo, podemos concluir que q ! p (p ! :q) ^ (:p ! q) j= p, e portanto a
resposta a pergunta e \Sim".
Na denic~ao 2.3.6 se ; = , a primeira parte da denic~ao e satisfeita, isto e, como
n~ao existe proposic~ao em ;, ent~ao para todo 2 ;, V ( ) = 1. Portanto, para ser
um modelo do conjunto vazio, isto e j= ou simplesmente j= , deve-se satisfazer a
seguinte condic~ao: o valor verdade de e sempre 1 independente dos valores verdade
das proposic~oes at^omicas que comp~oem . Ou seja, e uma tautologia. Assim, a logica
proposicional Taut(LP ) pode, ent~ao, ser re-denida como segue.
Taut(LP ) = f 2 LP = j= g:
Exemplo 2.3.8
1. f ! g j= De fato, V ( ! ) = 0 se, e somente se, V () = 1 e V ( ) = 0. Portanto, para
V ( ! ) = 1 e V () = 1, necessariamente V ( ) = 1.
Nota
c~ao: Quando o conjunto ; e nito, isto e, ; = f1 : : : ng, usaremos a
notac~ao mais usual, 1 : : : n j= em vez de f1 : : : ng j= .
2. ! ! : j= :
Um modo simples de mostrar isso e usar a tabela verdade
2.3. LOGICA
PROPOSICIONAL
43
: ! ! : :
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
Observando a tabela constatamos que sempre que as premissas ! e ! :
s~ao verdadeiras (isto e, tem valor 1) a conclus~ao : tambem e verdadeira.
Podemos concluir dos exemplos acima que a tabela verdade e um algoritmo para provar
que ; j= , no caso de ; ser nito. Em particular tabelas verdade tambem nos permitem
decidir se uma proposic~ao e uma tautologia ou n~ao. Isto signica que o conjunto Taut(LP )
e decidvel.
Se ; for innito ainda assim a tabela verdade e um algoritmo para decidir se ; j= ou n~ao. Mas para isso usaremos o conhecido teorema da compacidade da logica
proposicional cujo enunciado e o seguinte.
Teorema 2.3.9 (Compacidade) Se ; j= , ent~ao existe um subconjunto nito ;0 ;
tal que ;0 j= .
Demonstraca~o: (Veja End72] pagina 60).
A seguir enunciaremos um dos teoremas fundamentais da logica classica, conhecido
como o teorema da deduc~ao.
Teorema 2.3.10 (Dedu
c~ao) Sejam e proposic~oes em LP . Ent~ao
j= se, e somente se, j= ! Demonstraca~o: Basta observar a tabela verdade abaixo e a denic~ao de consequ^encia
logica.
1
1
0
0
!
1
1
0
0
1
1
0
1
44
^
CAPITULO 2. LOGICA
PROPOSICIONAL: LINGUAGEM E SEMANTICA
Pois, se j= ent~ao, necessariamente, o segundo caso (V () = 1 e V( ) = 0) n~ao
pode ocorrer. Logo, V ( ! ) sempre sera 1, e portanto ! e uma tautologia.
Inversamente, se ! e uma tautologia, ent~ao, necessariamente, o segundo caso e n~ao
pode ocorrer. Logo, quando V () = 1, necessariamente, V ( ) = 1 (primeiro caso).
Portanto, j= .
Corolario 2.3.11 Sejam 1 : : : n proposic~oes. Ent~ao
1 : : : n j= se, e somente se, 1 : : : n;1 j= n ! :
Demonstraca~o: Usaremos o mesmo argumento da prova do teorema da deduc~ao : a
tabela verdade da implicac~ao .
Suponha que 1 : : : n j= . Logo por denica~o de consequ^encia logica, para cada
interpretac~ao dos smbolos propocionais que facam com que todos os i, com 1 i n, tomem o valor verdade verdadeiro, tambem tomara o valor verdade verdadeiro.
Consideremos, agora, o conjunto de interpretac~oes nas quais todos os i, com 1 i < n,
sejam verdadeiro, ent~ao se numa dessas interpretaco~es n toma o valor verdade verdadeiro,
tambem tomara o valor verdade verdadeiro, pois por hipotese 1 : : : n j= . Por outro
lado se numa dessas interpretac~oes n toma o valor verdade falso, ent~ao ,1 : : : n;1 j=
n ! , pois pela tabela verdade da implicac~ao n ! e verdadeiro cada vez que n e
falso. A reversa desta prova, sai imediatamente usando o raciocnio inverso.
Vinculando o conceito de tautologia com a noc~ao de consequ^encia logica, e possvel
justicar a denic~ao de logica proposicional como o conjunto de todas as tautologias, sem
perder, no entanto, a noc~ao de aparato dedutivo. Para isso, debemos observar que se
; j= , isto e, se e uma fbf que resulta como consequ^encia de um conjunto de fbf's ;
(noc~ao de aparato dedutivo), ent~ao usando o teorema da compacidade podemos obter um
subconjunto nito ;0 = f1 : : : ng ;, tal que
1 : : : n j= :
Usando, o teorema da deduc~ao repetidamente, podemos concluir que,
j= 1 ! (2 ! (: : : (n ! ) : : : )
E portanto 1 ! (2 ! ( (n ! ) ) e uma tautologia. Ou seja, demonstrar
que e possvel deduzir uma formula a partir de um conjunto de formulas ;, se reduz a
provar que uma certa formula e uma tautologia.
Esclarecido a relaca~o entre tautologia e consequ^encia logica poderemos denir quando
duas proposic~oes s~ao logicamente equivalentes.
2.3. LOGICA
PROPOSICIONAL
45
Deni
c~ao 2.3.12 Sejam e proposic~oes. Dizemos que e s~ao logicamente equivalentes ou simplesmente equivalentes, cuja notac~ao e , se j= e j= ou,
equivalentemente, pelo teorema da deduc~ao, se j= ! e j= ! ou ainda, se
j= $ .
Proposi
c~ao 2.3.13 A relac~ao de equival^encia logica sobre LP e uma relac~ao de equival^encia sobre LP .
Demonstraca~o:
1. para todo 2 LP , isto e, j= ! . Basta observar a tabela verdade.
2. Suponha que . Ent~ao, trivialmente pela denica~o de equival^encia logica,
.
3. Suponha que e . Mostraremos que . Por hipotese j= $ e j= $ . Observando a tabela verdade do conectivo logico $, verica-se que
j= $ , isto e, .
Exemplo 2.3.14
1. ! : _ 2. ! :( ^ : )
3. $ ( ! ) ^ ( ! )
4. Se e s~ao tautologias ent~ao .
O exemplo acima mostra que os conectivos ! e $ podem ser escritos em termos de
:, ^ e _. Neste sentido para estudar a logica proposicional basta considerar :, ^ e _
como conectivos primitivos e obter os dois outros como denica~o.
Sejam as seguintes operac~oes :, Z e Y sobre LP :
1. : : LP ;! LP e denida por :() = :
2. Z : LP LP ;! LP e denida por Z( ) = ^ 3. Y : LP LP ;! LP e denida por Y( ) = _ e as constantes: p _ :p e p ^ :p. E facil ver que hLP : Y Z p _ :p p ^ :pi constitui
uma algebra booleana, onde as equac~oes s~ao caracterizadas pela \igualdade" . Mais
ainda, essa algebra booleana e isomorfa a algebra booleana hB + 0 1i. Isto justica
interpretar : como , _ como + e ^ como .
46
^
CAPITULO 2. LOGICA
PROPOSICIONAL: LINGUAGEM E SEMANTICA
Observa
c~ao: Tendo em vista que ^ :(: _ : ) e _ :(: ^ : ) e
possvel usar f: _g ou f: ^g como conectivos basicos, tendo os demais como conectivos
derivados.
2.4 Exerccios
1. Mostre que a lista seleccionada de proposic~oes a seguir s~ao tautologias. Pense no
smbolo como $.
(a) Leis Distributivas:
i. _ ( ^ ) ( _ ) ^ ( _ )
ii. ^ ( _ ) ( ^ ) _ ( ^ )
(b) Leis da Negac~ao:
i. :(:) ii. :( ! ) ^ :
iii. :( $ ) ( ^ : ) _ (: ^ )
(c) Leis de Morgan:
i. _ _ ii. ^ ^ iii. _ ( _ ) ( _ ) _ iv. ^ ( ^ ) ( ^ ) ^ v. :( ^ ) (:) _ (: )
vi. :( _ ) (:) ^ (: )
vii. ( _ ) ^ viii. ( ^ ) _ (d) Outras:
i. Lei do terceiro excludo: _ :
ii. Lei da Contradic~ao: :( ^ :)
iii. Lei da Contraposic~ao: ( ! ) ((: ) ! (:))
iv. Lei da Exportac~ao: (( ^ ) ! ) ( ! ( ! ))
2. Mostre que ( ! ) ! e consequ^encia logica de :(: _ ).
3. Mostre que ( ! ) ! n~ao e consequ^encia logica de : _ : .
4. Mostre que nenhuma das duas proposic~oes abaixo e consequ^encia logica da outra.
$ ( $ )
2.4. EXERCICIOS
47
( ^ ( ^ )) _ ((:) ^ ((: ) ^ (:
)))
5. Mostre que toda tautologia e consequ^encia logica de qualquer formula.
6. Mostre que toda formula e consequ^encia logica de uma contradica~o.
7. Mostre que uma contradic~ao so e consequ^encia logica de uma contradica~o.
8. Quais das seguintes proposic~oes s~ao tautologias? Justique sua resposta.
(a)
(b)
(c)
(d)
(e)
(f)
(( ! ) ! ) ! ! ( ! )
! ( ! )
( ! ( ! )) ! (( ! ) ! ( ! ))
( ! ) ! ((: ) ! (:)) ! :( ! )
9. Mostre que
(a)
(b)
(c)
(d)
Se ; & e ; j= ent~ao & j= .
Se ; j= ent~ao ; j= .
j= e j= se, e somente se, j= $ .
Se ; j= para cada 2 & e & j= ent~ao ; j= .
10. Prove ou refute cada uma das seguintes asserc~oes
(a)
(b)
(c)
(d)
Se ou ; j= ou ; j= , ent~ao ; j= _ .
Se ; j= ( _ ), ent~ao ou ; j= ou ; j= .
Se ; j= e ; j= , ent~ao ; j= ^ .
Se ; j= ( ^ ), ent~ao ; j= e ; j= .
11. Uma proposica~o diz-se satisfatvel se ela e verdadeira para alguma interpretaca~o.
Isto e, existe uma atribuic~ao de valores verdade para as proposic~oes at^omicas de tal que V () = 1. Caso contrario diz-se insastifatvel. Verique se as seguintes
proposic~oes s~ao satisfatveis ou insatisfatveis:
(a)
(b)
(c)
(d)
:(( ! ) ! )
( ! ( ! )) $ ( ^ ( ^ ))
(( _ : ) ^ ( _ ) ^ (: _ )) ! :((( ! ) ! ) ! )
48
^
CAPITULO 2. LOGICA
PROPOSICIONAL: LINGUAGEM E SEMANTICA
(e) ( ! ( ! )) $ (( ^ ) ! )
(f) ( $ ) ! (( ^ ) _ ( _ ))
12. Dar uma interpretac~ao que satisfaca cada um dos seguintes conjuntos de proposic~oes.
Em outras palavras, d^e uma atribuica~o de valores verdade que tornem todas as
proposic~oes do conjunto verdadeira.
(a) ;1 = f ! : ^ :
_ g
(b) ;2 = f _ ( ! ) ^ : ! :( ! (
^ ))g
(c) ;3 = f ^ ( _ :) ! : :(
^ ) _ (: _ )g
13. Mostre que a proposic~ao ( ^ ) ! n~ao e uma consequ^encia logica do conjunto
; = f ! ! ! g.
14. Mostre que a proposic~ao( _ ) ! e uma consequ^encia logica do conjunto ; =
f ! ! ! g.
Captulo 3
A Teoria Formal da Logica
Proposicional
Nos captulos anteriores caracterizamos a logica proposicional como o conjunto das tautologias sobre a linguagem proposicional. Em seguida desenvolvemos um aparato logico
introduzindo o conceito de consequ^encia logica. A denica~o de consequ^encia logica pressup~oe o conceito de tautologia, o qual, por sua vez e denida a partir da noca~o de interpretac~ao, um conceito extrnseco a linguagem. A pesar da import^ancia do conceito sem^antico
de interpretac~ao, principalmente como base para contraexemplos de argumentos n~ao \corretos", ele n~ao prov^e uma ferramenta muito eciente para achar consequ^encias logicas de
premissas ou provar que uma dada proposic~ao e uma consequ^encia (logica) de um conjunto de premissas. Por conseguinte, usualmente, e mais conveniente construir provas
(ou derivac~oes) da propria logica proposicional (tambem conhecida por calculo proposicional ou calculo sentencial). A investigaca~o geral de tais provas e o campo de interesse
da teoria da prova da logica proposicional, em contrapartida a sua teoria sem^antica,
atraves da func~ao de interpretac~ao. A teoria da prova de uma linguagem formal comeca
com a caracterizac~ao da forma geral de uma prova e as regras (e as vezes axiomas) para
construir provas (tambem chamadas derivac~oes).
3.1 Teorias Formais
Tabelas verdade nos fornecem algoritmos para responder quest~oes relativa aos conectivos
vistos como func~oes booleanas, tais como se uma dada proposic~ao e uma tautologia,
contradic~ao ou contingente (proposic~ao cujo valor verdade depende dos valores verdade
das proposic~oes at^omicas que a constitui), se uma proposica~o e uma consequ^encia logica de
uma outra ou se e equivalente a uma outra. A parte mais complexa da logica que veremos
a seguir n~ao pode ser manuseada com tabelas verdade, a abordagem sera atraves de uma
teoria formal, ou metodo formal. Embora as tabelas verdade d^e conta inteiramente da
teoria matematica da logica proposicional, este metodo n~ao se aplica a outras logicas,
como por exemplo, a logica de predicados vista mais adiante. Por conseguinte o metodo
49
50
CAPITULO 3. A TEORIA FORMAL DA LOGICA
PROPOSICIONAL
formal e, de fato, aquele possvel para estudar teorias formais. Na teoria formal da logica
proposicional ja e possvel perceber a utilidade e abrang^encia desse metodo. No entanto,
para a logica proposicional a teoria e bastante simples.
Uma Teoria formal T e denida quando:
1. E especicada uma linguagem formal L = h Gi para T , denominada a linguagem
de T.
2. Da linguagem Ling(L) (a linguagem especicada por L) e destacada um conjunto
' de elementos, chamados axiomas de T .
3. E especicado um conjunto < de regras, chamadas regras de infer^encia, da forma
x1 : : : xn x
tal que x e obtida de x1 : : : xn. Por isso dizemos que x e uma consequ^encia
direta de x1 : : : xn.
Observe que um axioma, tambem pode ser entendido como uma regra de infer^encia sem
antecedente. Por exemplo se x e um axioma, ent~ao ele representa a regra de infer^encia ;x .
Portanto poderiamos perfeitamente excluir da noca~o de teoria formal esta componente.
No entanto, como axiomas tem um papel fundamental na teoria de provas em logica,
optamos por destacar-os.
Deni
c~ao 3.1.1 Uma prova de 2 Ling(L) em T = hL ' <i, e uma sequ^encia
1 : : : n de elementos de Ling(L) tal que n = e para cada 1 i n, i ou e
um axioma de T , isto e, i 2 ', ou e obtida como consequ^encia direta de alguns elementos anteriores na sequ^encia usando uma das regras de infer^encia.
Deni
c~ao 3.1.2 Um teorema de uma teoria formal T = hL ' <i e um elemento 2
Ling(L) tal que existe uma prova de em T.
O conjunto de teoremas de uma teoria formal T, denotado por T (T ), e denominado
logica apresentada pela teoria formal T . Denominamos este tipo de apresentac~ao
de uma logica de apresentac~ao axiomatica . No captulo 9 veremos outras maneiras de
apresentar uma logica.
Duas teorias formais s~ao ditas equivalente se a linguagem e a logica apresentada por
ambas s~ao a mesma.
Deni
c~ao 3.1.3 Sejam as teorias formais T1 = hL1 '1 <1i e T2 = hL2 '2 <2i. T1
e equivalente a T2 , denotado por T1 = T1, se, e somente se, Ling(L1) = Ling(L2) e
T (T1 ) = T (T2 ).
3.1. TEORIAS FORMAIS
51
Uma maneira de demonstrar que duas teorias s~ao equivalentes e mostrar que L1 e L2
ger~ao a mesma linguagem, que cada axioma de '1 e cada regra de infer^encia de <1 podem
ser provados em L2 e, analogamente, que cada axioma de '2 e cada regra de infer^encia
de <2 podem ser provados em L1.
Deni
c~ao 3.1.4 Um elemento 2 Ling(L) diz-se uma consequ^encia na teoria formal
T = hL ' <i, de um conjunto ; de elementos de Ling(L), denotado por ; ` , se existe
uma sequ^encia 1 : : : n tal que n = e cada i , 1 i < n, ou e um axioma de
T , ou i 2 ;, ou e uma consequ^encia direta de j anteriores, usando uma das regras
de infer^encia. Neste caso a sequ^encia 1 : : : n e dita uma prova de a partir das
premissas ;.
Observa
c~oes:
1. Se ; ` dizemos, tambem, que existe, na teoria T , uma prova de a partir
do conjunto de premissas, ou hipoteses, ;. e tambem chamado de tese ou
conclus~ao.
2. Se 1 : : : n e uma prova de a partir das premissas em ;, ent~ao, neste texto,
diremos simplesmente que 1 : : : n e uma prova de ; ` .
3. Se ; e nito, isto e, ; = f1 2 : : : ng escrevemos 1 : : : n ` , em vez de
f1 : : : ng ` .
4. Segundo esta denic~ao, um teorema, , de T e uma consequ^encia logica de um
conjunto vazio de premissas. Por isso um teorema em T sera denotado por ` ,
ou simplesmente, ` .
5. Observe que a rigor a notac~ao deveria ser ; T̀ , para destacar a teoria formal a qual
estamos nos referindo. Como n~ao vamos fazer um estudo de teorias formais, mas,
apenas, desenvolver algumas dessas teorias, n~ao explicitaremos o T na notaca~o, pois
^ele estara, sempre, claro do contexto.
6. Da denic~ao de consequ^encia sai diretamente as seguintes propriedades: Sejam ; &
subconjuntos de Ling(L).
(a) Monotonicidade: Se ; & e ; ` , ent~ao & ` .
(b) Compacidade: ; ` se, e somente se, existe um subconjunto nito ;0 de ;
tal que ;0 ` .
(c) Lei do corte: Se & ` e para cada 2 &, ; ` , ent~ao ; ` .
CAPITULO 3. A TEORIA FORMAL DA LOGICA
PROPOSICIONAL
52
3.2 Teoria Formal da Logica Proposicional
Estamos em condic~oes, agora, de especicar uma teoria formal para a logica proposicional.
Seguindo a metodologia acima, de especicaca~o de uma teoria formal, denimos a
teoria formal para a logica proposicional como TP = hLP! '! <!i, onde:
1. LP! : A linguagem proposicional, e a linguagem formal obtida de LP , especicada
anteriormente (sec~ao 2.2.), usando como conectivos logicos somente ! e :. Isto
e, LP ! = Ling(LP! ), onde LP! = h! G!i, para ! = V f! :g e G! =
fg1 g2 g5 g.
2. '!: Destacaremos o seguinte conjunto de axiomas, ou regras de infer^encia sem
antecedentes.
A1 ) ! ( ! )
A2) ( ! ( ! )) ! (( ! ) ! ( ! ))
A3) (: ! :) ! ((: ! ) ! )
3. <!: A unica regra de infer^encia e o modus ponem, denotado por MP, qual seja,
MP :
! Observa
c~oes:
1. Cada , e usada na especicaca~o da teoria formal da logica proposicional e uma
variavel proposicional, isto e, ela pode ser substituida por qualquer proposica~o em
LP ! = Ling(LP! ). Assim, cada \axioma" acima descreve um conjunto innito de
axiomas, por isso e comum na literatura de chamarlos de esquemas de axiomas.
Por exemplo, as formulas p1 ! (p2 ! p1) e (p1 ! p2) ! (p3 ! (p1 ! p2 )) s~ao
inst^ancias do esquema de axioma A1 . No restante deste texto usaremos o nome
de axiomas tanto para esquemas de axiomas como para inst^ancias de esquemas de
axiomas.
2. A rigor e possvel especicar a linguagem da logica proposicional usando apenas os
conectivos : e !, e denindo os demais como segue:
^ def
= :( ! : )
def
_ = : ! $ def
= ( ! ) ^ ( ! )
Assim, o fato de usar a linguagem formal LP! em vez de LP n~ao prejudica a generalidade da teoria formal da logica proposicional aqui proposta.
~
3.3. TEOREMA DA DEDUCAO
53
Proposi
c~ao 3.2.1 Para toda formula 2 LP !, ` ! . Ou seja, ! e um teorema
da teoria formal da logica proposicional TP .
Demonstraca~o: Para demonstrar esta proposic~ao, deveremos exibir uma prova na
teoria formal TP da logica proposicional. A sequ^encia 1 : : : n, onde
1. 1 e a inst^ancia de A2 ( ! (( ! ) ! )) ! (( ! ( ! )) ! ( ! )).
Para v^er isto, basta substituir por ! e por em A2 .
2. 2 e a inst^ancia de A1 ! (( ! ) ! ). Para v^er isto basta substituir por
! em A1.
3. 3 e (( ! ( ! )) ! ( ! ), a qual resulta da aplicaca~o da regra de infer^encia
modus ponens (MP) a 1 e 2.
4. 4 e a inst^ancia de A1 ! ( ! ), a qual resulta de substituir por em A1 .
5. 5 e ! , a qual resulta da aplicac~ao da regra de infer^encia modus ponens (MP)
a 3 e 4 .
e uma prova de ! .
3.3 Teorema da Deduc~ao
Apesar de ser simples e intuitivo que a proposic~ao ! e um teorema de TP , a sua
demonstrac~ao, isto e, a exibic~ao de uma prova em TP , n~ao foi t~ao simples assim. E
de se prever que na medida em que as proposico~es em LP ! se tornem mais complexas,
demonstrar que elas s~ao teoremas de TP que cada vez mais difcil. Por isso, a seguir
demonstraremos um teorema na nossa metateoria (a matematica usada para desenvolver
a teoria formal TP ) que facilitara a exibica~o de provas na teoria TP . Queremos alertar o
leitor que estaremos usando o nome teorema tanto para um resultado da teoria objeto, no
caso a teoria formal TP , como para um resultado da matematica (metateoria) que estamos
usando para fundamentar essa teoria formal. Esperamos que o leitor n~ao confunda uma
linguagem com uma metalinguagem.
Proposi
c~ao 3.3.1 (Teorema da Dedu
c~ao) Sejam 2 LP ! e ; LP !. Se ; `
, ent~ao ; ` ! . Em particular, para ; = , se ` , ent~ao ` ! .
Demonstraca~o: Suponha que ; ` . Isto e, suponha que existe uma prova 1 : : : n
de a partir do conjunto de premissas ; fg. Ent~ao = n. Usaremos induca~o sobre
i para mostrar que se f^or o caso de ; ` i , ent~ao ; ` ! i , para todo i, 1 i n.
Caso base: i = 1. Ent~ao 1 deve ser ou um axioma ou uma premissa.
54
CAPITULO 3. A TEORIA FORMAL DA LOGICA
PROPOSICIONAL
Se 1 e um axioma:
1. 1 . Por denic~ao
2. 1 ! ( ! 1). Uma inst^ancia de A1, substituindo por 1 e por .
3. ! 1 . De 1) e 2) por MP.
Logo, 1, 1 ! ( ! 1), ! 1 e uma prova de ! 1 a partir de ;, isto e,
; ` ! 1.
Se 1 e uma premissa:
a) Se 1 2 ;:
1. 1. Por denic~ao de prova
2. 1 ! ( ! 1). Uma inst^ancia de A1
3. ! 1. De 1) e 2) por MP.
Logo, 1, 1 ! ( ! 1), ! 1 e uma prova de ! 1 a partir de ;, isto
e, ; ` ! 1 .
b) Se 1 e :
1. ! 1. Pela proposica~o 3.2.1.
Logo, ! 1 e uma prova de ! 1 a partir de ;, isto e, ; ` ! 1.
Etapa indutiva: Suponha que o teorema e verdadeiro para i < k. Ent~ao, por denic~ao de
prova.
k e um axioma, ou
k e uma premissa
a) k 2 ;, ou
b) k e , ou
k segue por MP de i e j , onde i j < k, e j e i ! k .
Os dois primeiros casos s~ao tratados exatamente como no caso base acima.
Consideremos o terceiro caso.
1. ! (i ! k ). Hipotese da induca~o
2. ! i. Hipotese da induc~ao
3. ( ! (i ! k )) ! (( ! i) ! ( ! k )) inst^ancia de A2 .
~
3.3. TEOREMA DA DEDUCAO
55
4. ( ! i ) ! ( ! k ). De 1) e 3) por MP.
5. ! k . De 2) e 4) por MP.
Logo, ! (i ! k ), ! i, ( ! (i ! k )) ! (( ! i) ! ( ! k )),
( ! i) ! ( ! k ), ! k e uma prova de ! k a partir de ;, isto e ; ` ! k .
Portanto, segue o teorema.
Para mostrar o poder de simplicaca~o do teorema da deduca~o mostraremos, usando
esse teorema, a proposica~o 3.2.1, ou seja mostraremos que:
Lema 3.3.2 ` ! , para cada 2 LP !.
Demonstraca~o:
1. . Hipoteses
Logo, e uma prova de , isto e, ` . O teorema da deduca~o nos garante que existe
uma prova de ` ! .
Proposi
c~ao 3.3.3
i) ! ! ` ! ii) ! ( ! ) ` ! Demonstraca~o:
i)
ii)
1) ! hipotese
2) ! hipotese
3) hipotese
4) 1) e 3) por MP.
5) 2) e 4) por MP.
Mostramos, ent~ao que ! ! ` . Usando o teorema da deduc~ao, temos
! ! ` ! , como queramos demonstrar.
1) ! ( ! ) hipotese
2) hipotese
3) hipotese
4) ! 1) e 3) por MP.
5) 2) e 4) por MP.
Assim, mostramos que ! ( ! ) ` . Logo, aplicando o teorema da
deduc~ao temos ! ( ! ) ` ! .
56
CAPITULO 3. A TEORIA FORMAL DA LOGICA
PROPOSICIONAL
Proposi
c~ao 3.3.4 Para todo 2 LP ! os seguintes s~ao teoremas de TP .
a)
b)
c)
d)
:: ! ! ::
: ! ( ! )
(: ! :) ! ( ! )
Demonstraca~o:
e) ( ! : ) ! ( ! :)
f ) ! (: ! :( ! ))
g) ( ! ) ! ((: ! ) ! )
h) ( ! ) ! (: ! :)
a) ` :: ! 1) (: ! ::) ! ((: ! :) ! ) inst^ancia de A3
2) : ! :
proposic~ao 3.2.1
3) (: ! ::) ! proposic~ao 3.3.3.ii 1,2
4) :: ! (: ! ::)
inst^ancia de A1
5) :: ! proposic~ao 3.3.3.i 3,4
b) ` ! ::
1) (::: ! :) ! ((::: ! ) ! ::) inst^ancia de A3
2) ::: ! :
item a)
3) (::: ! ) ! ::
MP 1,2
4) ! (::: ! )
inst^ancia de A1
5) ! ::
proposica~o 3.3.3.i 3,4
c) ` : ! ( ! )
1) :
hipotese
2) hipotese
3) ! (: ! )
inst^ancia de A1
4) : ! (: ! :)
inst^ancia A1
5) : ! MP 2,3
6) : ! :
MP 1,4
7) (: ! :) ! ((: ! ) ! ) inst^ancia de A3
8) (: ! ) ! MP 6,7
9) MP 5,8
Assim, : ` . Portanto, aplicando o teorema da deduc~ao duas vezes obtemos
` : ! ( ! ).
d) ` (: ! :) ! ( ! )
1) : ! :
hipotese
2) (: ! :) ! ((: ! ) ! ) inst^ancia A3
3) ! (: ! )
inst^ancia de A1
4) (: ! ) ! MP 1,2
5) ! Proposica~o 3.3.3.i 3,4
Assim, : ! : ` ! . Portanto, aplicando o teorema da deduca~o obtemos
` (: ! :) ! ( ! )
~
3.3. TEOREMA DA DEDUCAO
57
e) ` ( ! ) ! (: ! :)
1) ! hipotese
2) :: ! item a)
3) :: ! 3.3.3.i 1,2
4) ! ::
item b)
5) :: ! ::
3.3.3.i 3,4
6) (:: ! :: ) ! (: ! :) item d)
7) : ! :
MP 5,6
Assim, ( ! ) ` : ! : e pelo teorema da deduc~ao segue e).
f) ` ( ! : ) ! ( ! :)
1) ! :
hipotese
2) :: ! item a)
3) :: ! :
3.3.3.i 1,2
4) (:: ! : ) ! ( ! :) item d)
5) ! :
MP 3,4
Assim, ( ! : ) ` ! : e pelo teorema da deduc~ao segue f).
g) ` ( ! ) ! ((: ! ) ! )
1) ! hipotese
2) : ! hipotese
3) ( ! ) ! (: ! :)
item e)
4) : ! :
MP 1,3
5) (: ! ) ! (: ! ::)
item e)
6) : ! ::
MP 2,5
7) (: ! ::) ! ((: ! :) ! ) inst^ancia A3
8) (: ! :) ! MP 6,7
9) MP 4,8
Assim, ! : ! ` . Duas aplicaco~es do teorema da deduc~ao levam a g).
h) ` ! (: ! :( ! ))
Claramente, por MP, ! ` . Assim, usando duas vezes o teorema da
deduc~ao, temos ` ! (( ! ) ! ). Pelo item e), temos ` (( ! ) ! ) !
(: ! :( ! )). Portanto, usando a proposic~ao 3.3.3.i, obtemos
` ! (: ! :( ! ))
Pode-se dizer que a logica classica e a ci^encia do argumento.
Exemplo 3.3.5 Os sostas, na Grecia antigua, eram uma especie de professores, que
ensinavam a arte de argumentar a favor ou em contra qualquer armac~ao , mesmo n~ao
58
CAPITULO 3. A TEORIA FORMAL DA LOGICA
PROPOSICIONAL
sendo necessariamente correta, da que hoje em dia se usa o termo \sosmo" de uma
forma pejorativa. Essa arte que os sostas ensinavam era de suma import^ancia na epoca,
pois se alguem fosse acusado de algum delito, ele mesmo deveria apresentar sua defessa
perante um tribunal, mesmo que outra pessoa zesse essa defessa. Considerando que os
juizes eram pessoas leigas escolhidos aleatoriamente, eram facilmente inuenciaveis por
argumentos bem construdos, a arte do sosmo era vital.
O mais famoso dos sostas era Protagoras, quem nasceu em Abdera ao redor do ano
420 AC e morreu aproximadamente no ano 480 AC. Um dos discipulos mais brilhante
de Protagoras nesta arte foi Euathlus. Conta a historia que Protagoras fez o seguinte
trato com Euathlus: ele lhe ensinaria a arte do sosmo por uma certa quantia, metada
da qual seria paga no inicio e a outra metade quando Euathlus ganhasse seu primeiro
caso. No entanto, Euathlus demorou a pagar a segunda metade a Protagoras, motivo
pelo qual Protagoras processou seu discipulo. Protagoras fez perante o tribunal o seguinte
argumento:
\Se Euathlus ganhasse o caso, ganharia ent~ao seu primeiro caso, logo deveria paga-lo.
Mas, se Euathlus perdesse o caso, tambem deveria paga-lo, pois era esse o motivo do
processo"
Vejamos se o argumento de Protagoras esta correto. Primeiro vejamos quais as armac~oes (proposico~es ) at^omicas:
p = \Euathlus ganha o caso"
q = \Euathlus ganha seu primeiro caso"
r = \Euathlus deve pagar a Protagoras"
E o argumento de Protagoras propriamente foi o seguinte
p!q
q!r
:p ! r
r
que pode ser entendido como: se p ! q e q ! r e :p ! r ent~ao r.
Assim, se o argumento de Protagoras esta correto ent~ao e possvel provar que
p ! q q ! r :p ! r ` r
Uma tal prova e a seguinte:
~
3.3. TEOREMA DA DEDUCAO
59
1) p ! q
hipoteses
2) q ! r
hipoteses
3) :p ! r
hipoteses
4) p ! r
proposic~ao 3.3.3.i 1,2
5) (p ! r) ! ((:p ! r) ! r) proposic~ao 3.3.4.g)
6) (:p ! r) ! r
MP 4,5
7) r
MP 3,6
Portanto o argumento de Protagoras esta correto, mesmo correto Euathlus consiguiou
tambem dar um argumento correto. Euathlus deu o seguinte argumento:
\Se ele ganhesse o caso, n~ao deveria pagar, pois Protagoras perderia a causa. Mas
se ele perdesse o caso, ent~ao ainda n~ao teria ganho o seu primeiro caso e, portanto, n~ao
deveria pagar a Protagoras".
Numa linguagem logica usando as proposic~oes at^omicas acima, seria :
p ! :r
:p ! :q
:q ! :r
:r
Se o argumento de Euathlus esta correto ent~ao e possvel provar que
p ! :r :p ! :q :p ! :r ` :r
Uma prova disto e a seguinte:
1) p ! :r
hipoteses
2) :p ! :q
hipoteses
3) :q ! :r
hipoteses
4) :p ! :r
proposic~ao 3.3.3.i 2,3
5) (p ! :r) ! ((:p ! :r) ! :r) proposic~ao 3.3.4.g)
6) (:p ! :r) ! :r
MP 1,5
7) r
MP 4,6
Assim, o argumento de Euathlus tambem esta correto. Logo, a logica proposicional e
inconclussiva e a pergunta sobre quem deveria ter ganho o caso permanece t~ao em suspenso
quanto naquela epoca.
Uma possvel maneira de sair deste impasse seria que Protagora se deixasse ganhar
para depois entrar novamente contra Euathlus, esta vez argumentando que Euathlus ja
tinha ganho um caso.
60
CAPITULO 3. A TEORIA FORMAL DA LOGICA
PROPOSICIONAL
3.4 Outras Teorias Formais para a Logica Proposicional
A teoria formal proposicional TP , vista anteriormente, e so uma entre muitas possveis
teorias formais para a logica proposicional. A seguir destacaremos outras teorias formais
para LP .
3.4.1 Teoria Formal 1
Nesta teoria formal, denotada por TPT , a linguagem proposicional e a mesma (baseada
nos conectivos : e !), os axiomas os mesmos (A1 , A2 e A3) e a regra de infer^encia e o
modus tollens denotado por MT, qual seja,
! :
:
A justicativa desta regra e o seguinte raciocnio: Se conhecemos que quando e
verdadeiro tambem e verdeiro e se savemos, tambem que e falso, ent~ao n~ao pode ser
verdadeiro, e portanto podemos concluir que e falso. Observe que a regra modus tollens
pode ser obtida a partir do proprio modus ponens e do teorema ( ! ) ! (: ! :)
(proposic~ao 3.3.4.e).
MT :
3.4.2 Teoria Formal 2
Meridith em 1953 Mer53], usou uma teoria formal alternativa para a teoria formal estudada aqui. Esta teoria formal tem a mesma linguagem formal (baseada somente nos
conectivos primitivos : e !) e a mesma regra de infer^encia (modus ponem), mas somente
um unico esquema de axiomas:
AU ) ( ! ! (:
! :)) ! ! ! ( ! ! ( ! ))
3.4.3 Teoria Formal 3
No livro HA50], Hilbert e Ackermann desenvolveram a teoria formal TP _ a qual usa como
conectivos primitivos os conectivos logicos _ e :. Assim, a linguagem formal, esquemas
de axiomas e regras de infer^encias da teoria formal TP _ s~ao:
1. Linguagem Proposicional: Ling(h_ G_i) LP onde _ = V f_ :g P e
G_ = fg1 g2 g4 g.
3.4. OUTRAS TEORIAS FORMAIS PARA A LOGICA
PROPOSICIONAL
61
2. Axiomas:
A_1 ) :( _ ) _ A_2 ) : _ ( _ )
A_3 ) :( _ ) _ ( _ )
A_4 ) :(: _ ) _ (:( _ ) _ ( _ ))
3. Regras de Infer^encia: A unica regra de infer^encia e um tipo de Modus Ponem,
denotado por MP_, qual seja,
MP_ :
: _ Observe que usando a ! como uma abreviac~ao de : _ os esquemas de axiomas
podem ser re-escritos como _ ! , ! _ , _ ! _ , ( ! ) ! ( _ !
_ ), respectivamente, e a regra de infer^encia MP_ seria o proprio modus ponem.
3.4.4 Teoria Formal 4
No livro Ros53], Rosser introduz uma teoria formal, TP ^, para a logica proposicional
tendo como conectivos primitivos os conectivos logicos ^ e :. A linguagem formal, o
conjunto de esquemas de axiomas e o conjunto de regras de infer^encia da teoria formal
TP ^ e a seguinte :
1. Linguagem Proposicional: Ling(h^ G^i) LP onde ^ = V f^ :g P e
G^ = fg1 g2 g3 g.
2. Axiomas:
A^1 ) :( ^ :( ^ ))
A^2 ) :(( ^ ) ^ :)
A^3 ) :(:( ^ : ) ^ :(:(:( ^ ) ^ ::(
^ ))))
3. Regras de Infer^encia: A unica regra de infer^encia e um tipo de Modus Ponem,
denotado por MP^, qual seja,
MP^ :
:( ^ : )
Observe que usando a ! como uma abreviaca~o de :( ^ : ) os esquemas de
axiomas podem ser re-escritos como ! ^ , ^ ! , ( ! ) ! (:( ^ ) !
:(
^ )), respectivamente, e a regra de infer^encia MP^ seria o proprio modus ponem.
CAPITULO 3. A TEORIA FORMAL DA LOGICA
PROPOSICIONAL
62
3.4.5 Teoria Formal 5
Em Kle52], Kleene, baseado nas teorias formais T , TP _ e TP ^, discute uma teoria formal,
TcP , para a logica de predicados que considera todos os conectivos como primitivos. A
linguagem formal, os esquemas de axiomas e o conjunto de regras de infer^encias da teoria
formal TcP s~ao:
1. Linguagem Proposicional: LP
2. Axiomas:
Ab1) ! ( ! )
Ab2) ( ! ( ! )) ! (( ! ) ! ( ! ))
Ab3) (: ! :) ! ((: ! ) ! )
Ab4) ^ ! Ab5) ! ( ! ( ^ ))
Ab6) ! ( _ )
Ab7) ! ( _ )
Ab8) ( ! ) ! (( ! ) ! ( _ ! ))
Ab9) ( ! ) ! (( ! : ) ! :)
Ab10) :: ! Ab11) ( $ ) ! (( ! ) ^ ( ! ))
Ab12) (( ! ) ^ ( ! )) ! ( $ )
3. Regras de Infer^encia: Modus ponem
3.5 Exerccios
1. Provar os seguintes resultados na teoria formal TP .
(a)
(b)
(c)
(d)
(e)
` ! (: ! )
` ( ! ) ! ((: ! ) ! )
` :( ! : ) (isto e, ` ^ )
:( ! : ) ` (isto e, ^ ` )
:( ! : ) ` (isto e, ^ ` )
2. Mostre que:
3.5. EXERCICIOS
63
(a) Se ` , ent~ao :( ! : ) ` (isto e, ^ ` )
(b) ` ::( ! : ) ! : (isto e, ` :( ^ ) ! : )
(c) Se ` ! e ` ! , ent~ao ` ! :( ! :
) (isto e, ` ! ( ^ ))
(d) Se ; ` ent~ao ; ` : ! (isto e, ; ` :: _ )
(e) ; ` e & ` ! ent~ao ; & ` .
(f) Se ; ` ! e ; ` : ! ent~ao ; ` ou ; ` (g) Se ; ` ou ; ` ent~ao ; ` : ! 3. Enuncie e demonstre os respectivos teoremas da deduc~ao para as teorias formais
alternativas TPT , TP _ e TP ^.
4. Prove os seguintes resultados na teoria formal TP _:
(a) ! `TP _ _ ! _ (b) `TP _ ( ! ) ! ((
! ) ! (
! ))
(c) ! ! `TP _ ! (d) `TP _ ! ou equivalentemente `TP _ : _ (e) `TP _ _ :
(f) `TP _ ! ::
(g) `TP _ : ! ( ! )
(h) `TP _ _ ( _ ) ! ( _ ( _ )) _ (i) `TP _ ( _ ( _ )) _ ! _ ( _ )
(j) `TP _ _ ( _ ) ! _ ( _ )
Observa
c~ao: Considere ! como uma abreviaca~o da formula : _ . As-
sim, pode usar os axiomas da teoria TP _ na sua vers~ao original ou na sua vers~ao
modicada por esta abreviac~ao.
5. Prove os seguintes resultados na teoria formal TP ^:
(a) ! ! `TP ^ ! (b) `TP ^ :(: ^ )
(c) `TP ^ :: ! (d) `TP ^ :( ^ ) ! ( ! :)
(e) `TP ^ ! ::
(f) `TP ^ ! ! (: ! :)
(g) : ! : `TP ^ ! (h) ! `TP ^ ^ ! ^ (i) `TP ^ ^ ! ^ CAPITULO 3. A TEORIA FORMAL DA LOGICA
PROPOSICIONAL
64
Observa
c~ao: Considere ! como uma abreviac~ao da formula :( ^ : ).
Assim, pode usar os axiomas da teoria TP ^ na sua vers~ao original ou na sua vers~ao
modicada por esta abreviac~ao.
6. Prove os seguintes resultados na teoria formal TPT :
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
(i)
(j)
`TPT ! ! ! `TPT ! ! ( ! ) `TPT ! `TPT :: ! `TPT ! ::
`TPT : ! ( ! )
`TPT (: ! :) ! ( ! )
`TPT ( ! ) ! (: ! :)
`TPT ! (: ! :( ! ))
`TPT ( ! ) ! ((: ! ) ! )
7. Demonstre que a teoria formal TP e equivalente as cinco teorias alternativas dadas
na sec~ao 3.4. Assuma que o teorema da deduc~ao vale para todas elas.
8. Demonstre que o axioma A3 da teoria formal TP pode ser substitudo pelo axioma:
A03) (: ! : ) ! ( ! )
sem alterar a classe de teoremas. Observe que o teorema da deduc~ao nesta nova
teoria formal, teria de ser provado para poder ser utilizado na demonstrac~ao.
9. Considere a teoria formal TP ! alternativa para a logica proposicional consistindo
da linguagem LP !, da regra de infer^encia modus ponem e dos seguintes axiomas:
(a) (: ! ) ! (b) ! (: ! )
(c) ( ! ) ! (( ! ) ! ( ! ))
Demonstre que TP e TP ! s~ao teorias equivalentes, no sentido que descrevem o mesmo
conjunto de teoremas. Observe que o teorema da deduca~o n~ao esta disponvel em
TP ! ate que seja demonstrado.
Captulo 4
Computac~ao na Logica Proposicional
Tendo visto os conceitos de verdade e dedutibilidade (provabilidade), precisamos saber
como computar na logica proposicional. E claro que as tabelas de verdade poderiam ser
usadas como um algoritmo para provar se uma determinada sentenca da logica proposicional e verdadeira ou n~ao. No entanto, tabelas de verdade s~ao computacionalmente
intrataveis, isto e, para sentencas compostas de n smbolos proposicionais, elas requerem
2n vericac~oes. Assim, o algoritmo tabelas de verdade tem uma complexidade computacional n~ao polinomial, o qual e muito dispendioso para n relativamente grande. Alem
disso, tabelas de verdade e um metodo pouco geral em logica, isto e, na maioria das
logicas computacionalmente interessantes tabelas de verdade n~ao s~ao aplicaveis.
Na seguinte sec~ao desenvolveremos um metodo computacional, o metodo de eliminac~ao
de literais complementares, o qual nos permitira decidir se uma determinada sentenca e
ou n~ao um teorema, de uma maneira mais eciente que tabelas de verdade. Usaremos
o conceito de computac~ao, desenvolvidosaqui, para relacionar as noc~oes de verdade e
provabilidade.
4.1 Metodo de Eliminac~ao de Literais Complementares
Para desenvolver computac~ao na logica proposicional nos basearemos no metodo da Elimina
c~ao Literal Complementar, ELC para simplicar, tambem conhecido como resolu
c~ao basica. Para desenvolver essas noco~es introduziremos dois novos smbolos, e 2 (lido como \a clusula vazia" ou \caixa"). A intens~ao ao usarmos ^esses smbolos e
representar armac~oes que s~ao sempre verdadeiras (tautologias) ou falsas (contradic~oes),
respectivamente. Portanto, para relacionar nossos smbolos com verdade e dedutibilidade,
como visto anteriormente, podemos considerar e 2 como abreviac~ao de _: e ^:,
respectivamente.
Deni
c~ao 4.1.1 Uma proposic~ao 2 LP , esta na forma normal conjuntiva, fnc,
para simplicar, se as seguintes condic~oes s~ao satisfeitas:
65
66
~ NA LOGICA
CAPITULO 4. COMPUTACAO
PROPOSICIONAL
1. n~ao possui qualquer ocorr^encia dos conectivos ! e $.
2. Nenhuma subformula de cujo conectivo principal seja : contem uma outra ocorr^encia
de :, ou uma ocorr^encia de _, ^, ou 2. Por exemplo, :(: ), :( _ ), :( ^ ),
: e :2 n~ao est~ao na fnc.
3. Nehuma subformula de cujo principal conectivo seja _ contem ^, ou 2. Ou
seja, nem ^, ou 2 ocorrem dentro do escopo de qualquer _.
4. Nem nem 2 ocorre dentro do escopo de qualquer ^.
A seguir daremos um exemplo de uma tpica formula na fnc.
(p1 _ :p2 _ :p1 ) ^ (:p3 _ :p2 ) ^ (p3 _ :p1 _ p3 _ p2)
Intuitivamente, podemos dizer que uma formula esta na fnc se ela e uma conjunc~ao
de subformulas tais que cada uma das subformulas e uma disjunc~ao de literais, onde um
literal e uma proposic~ao at^omica ou a negaca~o de uma proposica~o at^omica, isto e tem a
forma pi ou :pi .
Deni
c~ao 4.1.2 Uma formula 2 LP esta na forma normal conjuntiva reduzida,
fncr, para simplicar, se alem de esta na fnc, satisfaz, ainda, a condic~ao abaixo
5. Nenhum literal aparece mais de uma vez no escopo de qualquer _.
Exemplo 4.1.3 Uma fncr equivalente a fnc anterior e (:p3 _ :p2 ) ^ (p3 _ :p1 _ p2 ).
Proposi
c~ao 4.1.4 Qualquer proposic~ao, 2 LP , pode ser reduzida a uma formula equivalente 2 LP que esta na fncr.
se reduz a . De
fato, estamos usando !! se, e somente se, . A ideia que esta por traz a
noc~ao de reduc~ao e transformar formulas em formulas equivalentes, mas que estejam mais
\proximas" da sua fncr.
A seguir exibiremos um algoritmo para reduzir uma proposica~o na sua fncr equivalente. Se 1 e uma subformula de e 1 !! 2, por alguma das seguintes reduc~oes,
ent~ao substitua em as ocorr^encias de 1 por 2. O algoritmo parara quando n~ao se
puder aplicar mais nenhuma das reduco~es, descritas abaixo, a qualquer subformula de .
Demonstraca~o: Usaremos a notaca~o !! , para dizer que 1. Elimine na formula os conectivos ! e $.
(a) ! !! : _ ~ DE LITERAIS COMPLEMENTARES
4.1. METODO DE ELIMINACAO
67
(b) $ !! (: _ ) ^ (: _ )
2. Reduc~oes para obter uma formula satisfazendo o criterio 1. da denic~ao de fncr,
isto e, negac~oes tendo como escopo somente proposic~oes at^omicas.
(a)
(b)
(c)
(d)
(e)
:: !! :( _ ) !! : ^ :
:( ^ ) !! : _ :
: !! 2
:2 !! 3. As seguintes regras eliminam ocorr^encias de ^, ou 2 no escopo de qualquer _.
(a)
(b)
(c)
(d)
(e)
(f)
_ ( ^ ) !! ( _ ) ^ ( _ )
( ^ ) _ !! ( _ ) ^ (
_ )
_ !! _ !! _ 2 !! 2 _ !! 4. Garante nenhuma ocorr^encia de ou 2 no escopo de qualquer ^ por:
(a)
(b)
(c)
(d)
^ !! ^ !! ^ 2 !! 2
2 ^ !! 2
Como cada reduc~ao acima transforma uma formula numa outra equivalente, ent~ao
usando-as de modo exaustivo (isto e, ate n~ao se puder aplicar mais nenhuma) e independente da ordem, necessariamente devemos obter uma formula na forma normal
conjuntiva equivalente a original,
5. Para reduzir uma formula na fnc a uma equivalente na fncr devemos eliminar
repetic~oes dos mesmos smbolos proposicionais no escopo de qualquer _ como segue:
Suponha que esta na fnc. Seja 1 _ 2 _ : : : _ n, onde cada i e um literal, uma
subformula de .
(a) Se 1 = n ent~ao 1 _ 2 _ : : : _ n !! 2 _ : : : _ n
(b) Se 1 = :n ou n = :1 ent~ao 1 _ 2 _ : : : _ n !! 68
~ NA LOGICA
CAPITULO 4. COMPUTACAO
PROPOSICIONAL
Apos isto devemos observar se n~ao foram geradas subformulas do tipo _ , _ ,
^ ou ^ . Se isso acontecer, ent~ao devemos novamente aplicar as reduc~oes do
item 3 e/ou 4, dependendo do caso.
Exemplo 4.1.5 Reduzir :(p1 ! (p2 ! p3 )) ! ((p1 ! p2) ! (p1 ! p3)) na sua
fncr.
Primeiro eliminamos as implicac~oes, atraves da reduc~ao 1.a.
!! :(:(p1 ! (p2 ! p3))) _ ((p1 ! p2 ) ! (p1 ! p3))
!! :(:(:p1 _ (p2 ! p3 ))) _ (:(p1 ! p2 ) _ (p1 ! p3 ))
!! :(:(:p1 _ (:p2 _ p3 ))) _ (:(:p1 _ p2 ) _ (:p1 _ p3 ))
Agora colocamos a negac~ao dentro do par^enteses atraves da reduc~ao 2.b.
!! :(::p1 ^ :(:p2 _ p3 )) _ ((::p1 ^ :p2 ) _ (:p1 _ p3 ))
!! :(::p1 ^ (::p2 ^ :p3 )) _ ((::p1 ^ :p2 ) _ (:p1 _ p3 ))
!! (:::p1 _ :(::p2 ^ :p3 )) _ ((::p1 ^ :p2 ) _ (:p1 _ p3 ))
!! (:::p1 _ (:::p2 _ ::p3 )) _ ((::p1 ^ :p2 ) _ (:p1 _ p3 ))
Eliminamos a dupla negac~ao via a reduc~ao 2.a.
!! (:p1 _ (:p2 _ p3 )) _ ((p1 ^ :p2 ) _ (:p1 _ p3 ))
Realizamos distribuitividade do _ sobre o ^ (reduc~ao 3.a com comutatividade implcita).
!! (:p1 _ (:p2 _ p3 )) _ ((p1 _ (:p1 _ p3 )) ^ (:p2 _ (:p1 _ p3 )))
!! ((:p1 _ (:p2 _ p3 )) _ (p1 _ (:p1 _ p3 ))) ^ ((:p1 _ (:p2 _ p3 )) _ (:p2 _ (:p1 _ p3 )))
Assim, obtivemos uma fnc equivalente a formula . Para reduzir esta nova formula
a
uma na fncr devemos usar associatividade e comutatividade de modo a rearranjar a
formula e deixar as ocorr^encias dos mesmos pi's juntas. Desse modo, reduzimos a formula
anterior a seguinte formula:
!! ((:p1 _ (p1 _ :p1 )) _ :p2 _ (p3 _ p3 )) ^ ((:p1 _ :p1 ) _ (:p2 _ :p2 ) _ (p3 _ p3 ))
Agora, eliminamos as ocorr^encias dos mesmos pi`s aplicando as reduc~oes em 5, acima,
obtemos
!! (((:p1 _ ) _ :p2 ) _ p3 ) ^ ((:p1 _ :p2 ) _ p3 )
Agora eliminamos , aplicandos as reduc~oes em 3 e 4.
!! (( _ :p2 ) _ p3 ) ^ ((:p1 _ :p2 ) _ p3 )
!! ( _ p3 ) ^ ((:p1 _ :p2 ) _ p3 )
!! ( ) ^ (:p1 _ :p2 _ p3 )
!! ((:p1 _ :p2 ) _ p3 )
~ DE LITERAIS COMPLEMENTARES
4.1. METODO DE ELIMINACAO
69
As reduc~oes apresentadas na demonstraca~o da proposica~o 4.1.4 s~ao sucientes para
transformar qualquer formula de LP numa fncr equivalente. No entanto, as vezes, a
formula resultante deste processo e extensa, mas poderia ser simplicada usando outras
reduc~oes auxiliares. Por exemplo, vejamos o caso simples da formula (p1 ^ p2) _ (p1 ^ p3).
Usando somente as reduc~oes da proposic~ao 4.1.4, teriamos que
(p1 ^ p2 ) _ (p1 ^ P3 ) !! ((p1 ^ p2) _ p1) ^ ((p1 ^ p2) _ p3)
!! (p1 _ p1 ) ^ (p2 _ p1 ) ^ (p1 _ p3 ) ^ (p2 _ p3 )
!! p1 ^ (p2 _ p1 ) ^ (p1 _ p3 ) ^ (p2 _ p3 )
Mas, observe que (p1 ^ p2) _ (p1 ^ P3 ) p1 ^ (p2 _ p3 ) e p1 ^ (p2 _ p3 ) esta na fncr.
Logo, poderiamos usar esta formula como reduc~ao .
Ja na formula (p1 ^ p2) _ (p1 ^ p2). Usando somente as reduco~es da proposica~o 4.1.4,
teriamos que
(p1 ^ p2 ) _ (p1 ^ P2 ) !! ((p1 ^ p2) _ p1) ^ ((p1 ^ p2) _ p2)
!! (p1 _ p1 ) ^ (p2 _ p1 ) ^ (p1 _ p2 ) ^ (p2 _ p2 )
!! p1 ^ (p2 _ p1 ) ^ (p1 _ p2 ) ^ p2
Mas, trivialmente, (p1 ^ p2 ) _ (p1 ^ P2) p1 ^ p2. Assim poderiamos denir uma
reduc~ao que nos permita atingir esta formula diretamente.
Redu
co~es Auxiliares:
1.
2.
3.
4.
5.
_ !! _ ^ !! ^ ( ^ ) _ ( ^ ) !! ^ ( _ )
_ !! ^ !! Para descrever o processo de eliminac~ao de literais complementares ELC sobre formulas
na forma normal conjuntiva reduzida (fncr) deniremos mais alguns termos. O nosso estilo
de especicac~ao da sintaxe e chamado gramatica livre de contexto. Cada linha representa uma regra para transformar um smbolo n~ao terminal (smbolos auxiliares que n~ao
gurar~ao na cadeia resultado) numa cadeia de smbolos. Para isso usaremos as seguintes
convenc~oes:
Um smbolo terminal sera colocado entre aspas duplas.
O smbolo \::=" sera lido como \e um".
~ NA LOGICA
CAPITULO 4. COMPUTACAO
PROPOSICIONAL
70
O smbolo \j" sera lido como \ou" (representando uma alternativa).
Justaposic~ao de x com y sera denotado por xy .
Exemplo 4.1.6
1. proposic~ao -at^omica := \p001 j : : : j \p00n j : : :
2. literal :=+literal j -literal
sera lido como \um literal e um literal positivo ou um literal negativo".
3. +literal :=proposica~o-at^omica.
4. -literal :=\ :" proposic~ao-at^omica.
5. clausula-basica :=\2" jliteral j literal \ _" clausula-basica
6. proposic~ao-basica :=clausula-basica j clausula-basica \ ^" proposic~ao-basica
A clausula vazia e 2. Uma formula na fncr e uma proposic~ao-basica. O adjetivo
\basico" se refere ao fato de que a clausula ou proposic~ao que ela procede n~ao contem
variaveis. Como n~ao existe variavel na linguagem proposicional, todas as clausulas e
proposic~oes s~ao basicas. Essa distinc~ao somente sera apreciada quando estudarmos logica
de predicados.
A s vezes e conveniente pensar uma proposica~o basica como um conjunto de clausulas
basicas, e uma clausula basica como um conjunto de literais. Isto n~ao causara confus~ao
uma vez que sabemos que uma proposic~ao basica e sempre uma conjunc~ao (^) de seus
elementos, e uma clausula basica e sempre uma disjunca~o (_) de seus elementos (literais).
Nessas convenc~oes podemos dar as seguintes denico~es na forma de gramatica livre de
contexto.
clausula-basica :=\2" j literal j literal clausula-basica.
proposic~ao-basica :=clausula-basica j clausula-basica proposic~ao-basica.
O smbolo \" indica uni~ao.
Apos essas convenc~oes podemos denir a elimina
c~ao de literais complementares
(ELC) de uma formula na fncr.
Deni
c~ao 4.1.7 Se e s~ao claususlas-basicas, e pk 2 e :pk 2 , ent~ao o resolvente
basico de e com respeito a pk e :pk , e ( ; fpk g) ( ; f:pk g)1. O qual e ilustrado
pela gura 4.1.
Dessa denic~ao podemos dizer que o resolvente basico e a uni~ao das clausulas originais
com excess~ao dos literais complementares, que foram eliminados. Na convenc~ao de que 2
e a clausula vazia, o resolvente basico de pk e :pk e 2.
1 ; indica o conjunto diferen
ca de e , isto e, ; = fx = x 2 e x 2= g.
~ DE LITERAIS COMPLEMENTARES
4.1. METODO DE ELIMINACAO
^
71
@@
;
;
@@;;
( ; fpk g) ( ; f:pk g)
Figura 4.1: Resolvente basico de duas clausulas
Observa
c~ao: A resoluc~ao basica ou ELC, pode ser considerada como uma variante do
modus ponens (MP), que estabelece que de e ! , podemos deduzir . Isto poderia
ser escrito por \de e : _ podemos deduzir ". Assim, quando e uma formula
at^omica e um literal, podemos deduzir eliminando e :, como mostrado na gura
4.2.
^ (: _ )
@@
;
;
@@;;
Figura 4.2: ELC como uma variante do modus ponem
Exemplo 4.1.8 A seguir veremos algumas deduc~oes usando ELC.
1. O resolvente basico de p1 _ p2 e p3 _ :p1 e p2 _ p3 como ilustrado na gura 4.3.
(p1 _ p2) ^ (p3 _ :p1 )
@@
;
;
@@;;
(p2 _ p3)
Figura 4.3: Resolvente basico de p1 _ p2 e p3 _ :p1
2. Uma resolvente basico de p1 _ p2 e :p1 _ :p2 e :p1 _ p1, como ilustrado na gura
4.4.
~ NA LOGICA
CAPITULO 4. COMPUTACAO
PROPOSICIONAL
72
(p1 _ p2 ) ^ (:p1 _ :p2)
@@
;
;
@@;;
(:p1 _ p1 )
Figura 4.4: Um resolvente basico de p1 _ p2 e :p1 _ :p2
(p1 _ p2 ) ^ (:p1 _ :p2)
@@
;
;
@@;;
(:p2 _ p2 )
Figura 4.5: Outro resolvente basico de p1 _ p2 e :p1 _ :p2
3. O resolvente basico de p1 _ p2 e :p1 _ :p2 e a formula :p2 _ p2, como ilustrado na
gura 4.9.
Observa
c~ao: Os itens 2. e 3. do exemplo 4.1.8 s~ao ambos legtimos. No entanto n~ao
seria possvel eliminar ambos os pares de literais complementares de uma vez.
Uma deduca~o de :p1 a partir de :p1 _ p2 _ :p3 , p3 e :p2 usando o metodo de ELC, pode
ser vista na gura 4.6.
Observa
c~ao: E claro que poderamos ter optado por eliminar primeiro p2 e :p2 . O
importante e que o resultado sera sempre o mesmo, independente da ordem de eliminac~ao
de literais.
Neste ultimo exemplo realizamos duas resoluc~oes basicas consecutivas para deduzir
:p1 . Esta ideia pode ser generalizada e formalizada.
Deni
c~ao 4.1.9 Uma dedu
c~ao por resolu
c~ao de uma clausula a partir de um con
junto de clausulas ;, denotado por ; ;!
, e uma sequ^encia nita de clausulas 1 : : : n
tal que
1. n e ~ DE LITERAIS COMPLEMENTARES
4.1. METODO DE ELIMINACAO
(:p1 _ p2 _ :p3) ^
73
p3
@@
;
;
@@;;
(:p1 _ p2 ) ^
:p2
@@
;
;
@@;;
:p1
Figura 4.6: Deduca~o de :p1 a partir de :p1 _ p2 _ :p3 p3 e :p2 usando ELC
2. para cada i, 1 i n, ou i
(a) e um elemento de ;, ou
(b) p :p 2 i para algum smbolo proposicional p, ou
(c) e um resolvente basico de j e k , onde j k < i.
Note que a sequ^encia nita de clausulas 1 : : : n de uma deduc~ao por resoluca~o,
pode ser disposta na forma de uma arvore invertida, como na gura 4.6 que ilustra a
sequ^encia:
:p1 _ p2 _ :p3 p3 :p1 _ p2 :p2 :p1 :
Exemplo 4.1.10 Do exemplo 4.1.8, podemos concluir que:
1. p1 _ p2 p3 _ :p1 ;!
p2 _ p3,
2. p1 _ p2 :p1 _ :p2 ;!
:p1 _ p1 ,
3. p1 _ p2 :p1 _ :p2 ;!
:p2 _ p2 ,
4. :p1 _ p2 _ :p3 p3 :p2 ;!
:p1 ,
Proposi
c~ao 4.1.11 Seja ; um conjunto de clausulas basicas e e clausulas basicas,
e p um literal e pop o literal oposto de p. Ou seja se p = p ent~ao pop = :p e se p = :p
ent~ao pop = p.
1. Monotonicidade a esquerda: Se ; ;!
e ; & ent~ao & ;!
~ NA LOGICA
CAPITULO 4. COMPUTACAO
PROPOSICIONAL
74
2. Monotonicidade a direita: Se e ; ;!
ent~ao ; ;!
3. Contrac~ao: Se ; _ p ;!
ent~ao ; p ;!
4. Compacidade: Se ; ;!
ent~ao existe um conjunto nito ;0 ; tal que ;0 ;!
5. Teorema da deduc~ao simples: ; p ;!
se, e somente se, ; ;!
pop _ Demonstraca~o: Monotonicidade a esquerda e compacidade s~ao resultado direto da
denic~ao de deduca~o por resoluc~ao.
Monotonicidade a direita: Se ; ;!
, ent~ao existe uma deduc~ao por resoluc~ao
1 : : : n de a partir de ;. Assim, n = . Se 6= 2 ent~ao existe um literal 2 .
Ent~ao, neste caso, 1 : : : n _ :
_ ( ; ) e uma deduca~o por resoluc~ao de a
partir de ;. Se = 2 ent~ao n;2 e n;1 s~ao literais complementares. Logo, a sequ^encia
1 : : : n;2 n;1 _ n;2 _ n;2 _ n;1 e uma deduc~ao por resoluc~ao de a partir
de ;
Contra
c~ao: Se ; _ p ;!
ent~ao existe uma deduca~o por resoluca~o 1 : : : n de
a partir de ; _ p. Substituindo cada i = _ p por i1 = i _ p _ pop, i2 = p e
i3 = i _ p, teremos uma deduc~ao por resoluc~ao de a partir de ; p.
Teorema da dedu
c~ao simples: Se ; p ;!
, ent~ao existe uma deduc~ao por resoluc~ao
1 : : : n de a partir de ; p. Se p n~ao foi usada na deduc~ao (isto e, p 2=f1 : : : ng)
ent~ao, 1 : : : n e uma deduc~ao por resoluc~ao de a partir de ;, e portanto ; ;!
.
op
Logo, por monotonicidade a direita teriamos que ; ;! p _ . Por outro lado se
p 2 f1 : : : ng, ent~ao p = i para algum (considere o menor dos i's) 1 i n. Assim,
a sequ^encia 1 : : : i;1 fpopg i+1 : : : n fpopg e uma deduca~o por resoluc~ao de pop _ a partir de ;.
Por outro lado, se ; ;!
pop _ , ent~ao, por monotonicidade a direita, ; p ;!
pop _ .
op
Seja 1p : : : np uma deduc~ao por resoluca~o de p _ a partir de ; p. Trivialmente, a
sequ^encia 1p : : : np = pop _ p e uma deduc~ao por resoluc~ao de a partir de ; p.
Logo, ; p ;!
.
Teorema
4.1.12
(Teorema da Dedu
c~ao ) ; p1 _ : : : _ pk ;!
se, somente se, ; ;!
op
op
p1
_ : : : _ pk _ Demonstraca~o: Se ; p1 _ : : : _ pk ;!
ent~ao pela propriedade da contrac~ao (na
proposic~ao 4.1.11) temos que ; p1 : : : pk ;!
. Logo, aplicando o teorema da deduc~ao
op
simples (tambem na proposic~ao 4.1.11), temos que ; ;!
pop
1 _ : : : _ pk _ .
~ DE LITERAIS COMPLEMENTARES
4.1. METODO DE ELIMINACAO
75
Corolario 4.1.13 Se ; : ;!
2 ent~ao ; ;!
Demonstraca~o: Se = p1 _ : : : _ pk ent~ao
: = :(p1 _ : : : _ pk )
= :p1 ^ : : : ^ :pk
op
= pop
1 ^ : : : ^ pk
op Assim, se ; : ;!
2
ent~ao ; pop
c~ao
1 : : : pk ;! 2. Logo, pelo teorema da dedu
op ;!
op )op _ 2. Isto e, ; pop : : : pop ;!
4.1.12, ; pop
:
:
:
p
(
p
p
.
Assim,
aplicando
k
1
1
k;1
k
k;1
k ; 1 vezes o teorema da deduc~ao teremos que
; ;!
p1 _ : : : _ pk
Ou seja, ; ;!
.
Numa deduc~ao por resoluc~ao de ; ;!
, podemos usar as premisas de ; tantas vezes
quanto for necessario, inclussive nenhuma.
Exemplo 4.1.14 Seja ; o seguinte conjunto de clausulas: f:p3 p1 _ :p2 p1 _ p3 :p1 _
p2 _ p3g. Uma deduca~o por resoluc~ao de ; ;!
p2 e ilustrado na gura 4.7.
p1 _ p3
:p3
@@
;
;
@@;;
p1
:p1 _ p2 _ p3
@@
;
;
@@;;
p2 _@p3
:p3
@@ ;;;
@;
p2
Figura 4.7: Deduc~ao por resoluc~ao de f:p3 p1 _ :p2 p1 _ p3 :p1 _ p2 _ p3g ;!
p2
Nesta deduca~o a clausula :p3 e usada duas vezes, enquanto a clausula p1 _ :p2 nenhuma.
Deni
c~ao 4.1.15 Uma deduca~o por resoluc~ao de 2 a partir de um conjunto de clausulas
basicas ;, denotado por ; ;!
2, e chamada uma refuta
c~ao de resolu
c~ao ou simplesmente uma refuta
c~ao, de ;.
76
~ NA LOGICA
CAPITULO 4. COMPUTACAO
PROPOSICIONAL
Exemplo 4.1.16 Uma refutac~ao de ; = f(p1 _ p2 ) (:p2 _ p3 ) (:p1 _ p3 ) :p3g e ilustrada
na gura 4.8
( _ )
(: _ )
@@
;
;
@@;;
(p1 _ p3 )
(:p1 _ p3)
@@
;
;
@@;;
p3
:p3
@@
;
;
@@;;
2
Figura 4.8: p1 _ p2 :p2 _ p3 :p1 _ p3 :p3 ;!
2
Nosso metodo de computac~ao, o qual estamos chamando de ELC ou resolu
c~ao
basica, foi descrita como um meio de produzir refuta
c~oes de conjuntos de clausulas.
O objetivo, aqui, em usando essa terminologia, e, ao refutar um conjunto de clausulas,
mostrar que a conjunc~ao dessas clausulas e contraditoria ou impossvel de satisfazer.
Assim, quando relacionamos esse metodo de computac~ao com nosso entendimento de verdade e prova, estamos tentando refutar a nega
c~ao do que sabemos ser verdadeiro e/ou
provavel. Se uma formula e sempre verdadeira, ent~ao sua negaca~o e sempre falsa e portanto esperamos exibir sua refutac~ao. Igualmente, se podemos refutar a negac~ao de uma
formula , ent~ao esperamos poder provar em nossa teoria formal.
Exemplo 4.1.17 Para mostrar que a formula (p1 ^ (p1 ! :(p1 _ p2 ))) ! (:p1 ^:p2 )
e uma tautologia usando o metodo ELC, primeiro negamos a formula, depois reduzimos
a formula na sua fncr e, nalmente, mostramos uma refutac~ao da formula na fncr. Isto
e, realizamos os seguintes passos.
Passo 1: Negaca~o da formula . : :((p1 ^ (p1 ! :(p1 _ p2 ))) ! (:p1 ^ :p2 ))
Passo 2: Transformaca~o a fncr de :.
~ DE LITERAIS COMPLEMENTARES
4.1. METODO DE ELIMINACAO
77
: !! :((p1 ^ (:p1 _ :(p1 _ p2 ))) ! (:p1 ^ :p2 ))
!! :(:(p1 ^ (:p1 _ :(p1 _ p2 ))) _ (:p1 ^ :p2 ))
!! ::(p1 ^ (:p1 _ (:p1 ^ :p2 ))) ^ :(:p1 ^ :p2 )
!! (p1 ^ (:p1 _ (:p1 ^ :p2 ))) ^ (::p1 _ ::p2 )
!! (p1 ^ (:p1 _ (:p1 ^ :p2 ))) ^ (p1 _ p2 )
!! (p1 ^ ((:p1 _ :p1 ) ^ (:p1 _ :p2 ))) ^ (p1 _ p2 )
!! p1 ^ :p1 ^ (:p1 _ :p2 ) ^ (p1 _ p2 )
Passo 3: Aplicar metodo ELC as clausulas p1 , :p1 , :p1 _ :p2 e p1 _ p2 . O qual se
simplica ao resolvente basico das clausulas p1 e :p1 , como ilustrado na gura 4.9.
p1
^
:p1
@@
;
;
@@;;
2
Figura 4.9: Resolvente basico de p1 e :p1
Assim, p1 :p1 :p1 _ :p2 p1 _ p2 ;!
2
E claro que o metodo de resoluc~ao, a cada passo, pode ter muitos caminhos possveis a
serem seguidos. Uma maneira de automatizar o processo e considerar todos os caminhos
possveis. Ou seja, em cada etapa gerar todos os possveis resolventes do conjunto de
clausulas correntes.
Deni
c~ao 4.1.18 Dado um conjunto de clausulas ;, denimos R(;) como sendo a uni~ao
de ; com o conjunto de todos os possveis resolventes basicos de clausulas em ;. Denimos
Rn como segue
R0 (;) = ;
Rn+1 (;) = R(Rn (;))
Proposi
c~ao 4.1.19 Seja ; um conjunto de clausulas. 2 Rn(;) para algum n se, e
somente se, ; ;!
.
Demonstraca~o: Mostraremos, por induc~ao em n que se 2 Rn (;) ent~ao ; ;!
.
Caso base: Se n = 1 ent~ao Rn (;) = R(;), ou seja a uni~ao de ; com todos seus resolventes
basicos. Se 2 R; ent~ao ou 2 Gamma, em cujo caso, a sequ^encia e uma deduc~ao
por resoluc~ao de a partir de ;, isto e, ; ;!
. Se e um resolvente basico de de
78
~ NA LOGICA
CAPITULO 4. COMPUTACAO
PROPOSICIONAL
clausulas em ;, digamos i e j , ent~ao a sequ^encia, i j e uma deduc~ao por resoluc~ao
de a partir de ;, isto e, ; ;!
.
Etapa indutiva: Assuma que para cada 0 2 Rk (;) temos que ; ;!
0. Se 2 Rk+1 (;)
ent~ao 2 R(Rk (;)). Logo, por denic~ao de R, ou 2 Rk (;) ou e resolvente basico de
algum i j 2 Rk (;). Em ambos os casos procedemos como no caso base.
Por outro lado, se ; ;!
, ent~ao existe uma deduc~ao por resoluca~o, 1 : : : m, de a partir de ;. Mostraremos por induc~ao em i, com 1 i m, que cada i 2 Rn(;) para
algum n.
Caso base: Se i = 1, ent~ao necessariamente i 2 ;. Logo, trivialmente, i 2 R0 ;.
Etapa indutiva: Assuma que para cada i k < m, i 2 Rn (;) para algum n. Como
k+1 ou pertence a ; ou e o resolvente basico de j e l , com j l k. No primeiro
caso, trivialmente, k+1 2 R0 (;). No segundo caso, pela hipotese indutiva temos que
j 2 Rn1 (;) e l 2 Rn2 (;). Como, por denica~o de Rn, Rp(;) Rq (;) sempre que p q,
ent~ao Rn1(;) Rmax(n1n2) (;) e Rn2 (;) Rmax(n1n2) (;). Logo, j l 2 Rmax(n1n2) (;).
Portanto, k+1 2 R(Rmax(n1n2) (;)), ou seja k+1 2 Rmax(n1n2)+1 (;).
Corolario 4.1.20 Seja ; um conjunto de clausulas. 2 2 Rn (;) para algum n se, e
somente se, ; ;!
2.
Demonstraca~o: Direto do teorema anterior fazendo a clausula vazia (2).
Por denic~ao, ; R(;) R2 (;) . Alem disso, cada Rn(;) ;, o conjunto de
todas as possveis clausulas usando literais contidos em ;, pois nenhum literal novo pode
ser gerado numa resoluc~ao basica. Assim, como ; e nito, ent~ao para algum inteiro m,
Rm (;) = Rk (;) para todo k > m. Assim, a operac~ao de tomar resolventes encerra depois
de alguma quantidade nita de passos. Se 2 2 Rm (;), ent~ao existe uma refutac~ao de ;
(corolario 4.1.20), caso contrario nenhuma refutaca~o de ; existe. Assim, dado qualquer
conjunto ; de clausulas, quando ou n~ao ; ;!
2 e decidvel.
4.2 Resultados de Completude
Nesta sec~ao investigaremos as relac~oes entre as tr^es maneiras de abordar a logica proposicional vistas ate o momento: consequ^encia logica, representado pelo smbolo j= provabilidade, representado por ` e refutabilidade atraves do metodo ELC, representado
pelo smbolo ;!
. O primeiro e o metodo matematico ou sem^antico, o segundo e
o metodo formal ou dedutivo e o terceiro e o metodo computacional. Primeiramente,
mostraremos que todo teorema de TP e logicamente valido, isto e, uma tautologia.
Para isso mostraremos, preliminarmente, o seguinte lema.
4.2. RESULTADOS DE COMPLETUDE
79
Lema 4.2.1 Se e um axioma de TP , ent~ao e uma tautologia.
Demonstraca~o: Para mostrar isto usaremos as tabelas verdade.
1. O axioma A1 , isto e:
1 ! (2 ! 1)
e uma tautologia, pois basta observar a sua tabela verdade
1
1
1
0
0
2 2 ! 1 1 ! (2 ! 1 )
1
1
1
0
1
1
1
0
1
0
1
1
2. O axioma A2 , isto e,
(1 ! (2 ! 3)) ! ((1 ! 2 ) ! (1 ! 3 ))
e uma tautologia, pois basta observar a sua tabela verdade.
1
1
1
1
1
0
0
0
0
2
1
1
0
0
1
1
0
0
3 2 ! 3 1 ! 2 1 ! 3 1 ! (2 ! 3) (1 ! 2 ) ! (1 ! 3 )
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
3. O axioma A3 , isto e,
(:2 ! :1 ) ! ((:2 ! 1 ) ! 2)
e uma tautologia, pois basta observar a sua tabela verdade.
1
1
1
0
0
2 :1 :2 :2 ! :1 :2 ! 1 (:2 ! 1 ) ! 2
1 0 0
1
1
1
0 0 1
0
1
0
1 1 0
1
1
1
0 1 1
1
0
1
A3
1
1
1
1
A2
1
1
1
1
1
1
1
1
~ NA LOGICA
CAPITULO 4. COMPUTACAO
PROPOSICIONAL
80
Teorema 4.2.2 (TP e segura) Se ` ent~ao j= . Isto e, se e provavel, ent~ao e
uma tautologia.
Demonstraca~o: Se ` , ent~ao existe uma derivac~ao ou prova de , digamos 1 2 : : : n,
onde n = e tal que para todo i, 1 i n, i e um axioma ou segue por MP de j e
k , onde k = j ! i e j k < i.
Mostraremos, por induc~ao sobre i, que cada i na derivaca~o e uma tautologia.
Caso base: i = 1. Por denic~ao de prova, 1 deve ser um axioma, e portanto pelo lema
4.2.1, uma tautologia.
Etapa indutiva: Suponha que i e uma tautologia para todo i, 1 i < k. Devemos
mostrar que k e uma tautologia.
1. Se k e um axioma, pelo lema 4.2.1, e uma tautologia.
2. Se k segue por modus ponens de i e j , onde i j < k e j = i ! k ent~ao, como
i e j s~ao tautologias, pela hipotese indutiva, k e uma tautologia pela denic~ao
de !.
Portanto, i e uma tautologia para todo i, 1 i n. Como = n, segue que e
uma tautologia.
Corolario 4.2.3 Se ; ` ent~ao ; j= .
Demonstraca~o: Se ; ` ent~ao pela observaca~o 6.c do captulo 3 (teorema da com-
pacidade) temos que ;0 ` para algum ;0 ;, nito. Suponha que ;0 = f1 : : : ng,
ent~ao, pelo teorema da deduc~ao, temos que ` 1 ! (2 ! (: : : (n ! ) : : : ). Logo, pelo
teorema seguro temos que j= 1 ! (2 ! (: : : (n ! ) : : : ). Aplicando o teorema da
deduc~ao (repetidas vezes) temos que ;0 j= . Como ;0 ;, ent~ao pelo exerccio 9.a do
captulo 2, temos que ; j= .
Assim, dedutibilidade implica verdade, signicando que a teoria formal TP e segura e
o corolario nos diz que a noc~ao de consequ^encia na teoria formal TP se corresponde com
a noc~ao de consequ^encia sem^antica ou logica. Vejamos, agora, verdade e computac~ao.
Pretendemos mostrar que se e uma tautologia, ent~ao podemos achar uma refutac~ao
para :. Se e uma tautologia, ent~ao : e insatisfatvel. Queremos mostrar que se :
e insatisfatvel, ent~ao : ;!
2.
Assumiremos que a formula : esta na forma normal conjuntiva reduzida. Portanto,
: e um conjunto de clausulas, o qual entendemos como a conjunc~ao dessas clausulas.
Deni
c~ao 4.2.4 Se ; e um conjunto de clausulas, a frase \; com subtitudo por
" denota o conjunto (; ; fg) f g.
4.2. RESULTADOS DE COMPLETUDE
81
Ou seja, a clausula e removida do conjunto de clausulas ; e ent~ao a clausula e
adicionada ao resultado.
Lema 4.2.5 Se ; e um conjunto insatisfatvel de clausulas basicas com 2 ;, 2 e
6= , ent~ao ;, com substitudo por , e insatisfatvel.
Demonstraca~o: Por denic~ao de clausula, e uma disjunc~ao de literais. Como ,
e uma disjunca~o de literais. Se ;, com substitudo por , e satisfatvel, ent~ao existe
uma interpretaca~o sob a qual ; com substitudo por e verdadeira. Como ; e uma
conjunc~ao de clausulas, sabemos que deve ser verdadeira sob esta interpretaca~o. Logo,
como e uma disjunc~ao de literais, ela e verdadeira, somente se um dos literais em e verdadeiro. Como , a mesma interpretaca~o torna verdadeira e portanto ; e
satisfatvel, contradizendo nossa suposic~ao inicial. Portanto, ; com substitudo por e insatisfatvel.
Este lema nos assegura que um conjunto de clausulas insatisfatvel n~ao pode ser satisfatvel eliminando alguns literais em suas clausulas. E eliminando a clausula toda? Como
uma clausula e uma disjunc~ao, eliminando elementos (literais) torna-a mais distante de
ser satisfatvel. Mas, como uma formula e uma conjunca~o de clausulas, eliminar alguma
de suas clausulas, torna-a mais provavel de ser satisfatvel. Por este motivo que colocamos
a restric~ao no lema anterior, de ser diferente de vazio.
Deni
c~ao 4.2.6 Um conjunto ; de clausulas e um conjunto minimal insatisfatvel
se ; e insatisfativel, mas qualquer subconjunto proprio de ; n~ao e insatisfatvel.
Observa
c~ao: Pelo teorema da compacidade o conjunto minimal insatisfatvel e nito.
Todo conjunto insatisfatvel contem um subconjunto minimal insatisfatvel. Mas, esse
conjunto n~ao e necessariamente unico.
Exemplo 4.2.7 fp1 p2 :p1 :p2 g tem dois subconjuntos minimal insatisfatvel, quais sejam fp1 :p1 g e fp2 :p2g.
No sentido de simplicar a prova do proximo lema, introduziremos as noc~oes de
clausula unitaria, multiunitaria e n~ao unitaria, assim como o conceito de excesso
de literais.
Deni
c~ao 4.2.8 Uma clausula que contem exatamente um literal e uma clausula unitaria.
Uma clausula multiunitaria e aquela que contem dois ou mais literais. Uma clausula
n~ao unitaria e ou a clausula vazia ou uma clausula multiunitaria.
2
Lembre-se que e uma clausula e portanto pode ser visto como um conjunto.
~ NA LOGICA
CAPITULO 4. COMPUTACAO
PROPOSICIONAL
82
Deni
c~ao 4.2.9 Seja ; um conjunto nito de clausulas. Denote por #; o numero de
clausulas no conjunto ;, e ##; o numero de ocorr^encia de literais em ;. O numero
de excesso de literais em ; e ##; ; #;, que e n~ao negativo se 2 62 ;.
Exemplo 4.2.10
; = fp1 _ p2 :p1 _ p3 :p2 _ p3 :p3 g
#; = 4 (o numero de clausulas em ;)
##; = 7 (o numero de literais em ;)
##; ; #; = 3 (o numero de excesso de literais em ;)
2 e a unica clausula sem literais. Logo se 2 62 ;, ; tem no mnimo um literal em cada
clausula, tornando ##; #; e o numero de excesso de literais n~ao negativo.
Lema 4.2.11 Se ; e um conjunto, n~ao vazio, minimal insatisfatvel de clasulas basicas,
ent~ao ; ;!
2.
Demonstraca~o: Se 2 2 ;, ent~ao ; = f2g uma vez que ; e minimal, e f2g ;!
2.
Suponha, agora, que 2 62 ; e seja n o numero de excesso de literais em ;, isto e, n =
##; ; #;. Mostraremos, por induc~ao sobre n, que ; ;!
2.
Caso base: n = 0. Se o numero n de excesso de literais e 0, ent~ao, necessariamente, todas
as clausulas em ; s~ao n~ao unitarias. Logo, ; e da forma fpi1 :pi1 pi2 :pi2 : : : pik :pik g
onde cada pij , com 1 j k, e uma proposica~o at^omica. Neste caso, a resoluc~ao basica
sobre duas clausulas unitarias complementares, pi1 e :pi1 por exemplo, gera 2.
Etapa indutiva: Suponha que ; ;!
2 para todo conjunto minimal insatisfatvel de
clausulas basicas ; com k excessos de literais, para todo 0 < k < n. Devemos mostrar
que ; ;!
2, onde ; e um conjunto minimal insatisfatvel de clausulas basicas, com n
excessos de literais.
Como n > 0, existe uma clausula multiunitaria , em ;. Seja 1 2 e ;1 igual a ; com
substitudo por ; f1 g. Pelo lema 4.2.5, ;1 e insatisfatvel. Seja ;0 um subconjunto
minimal insatisfatvel de ;1. Agora ;1 (e portanto ;0) tem menos que n excessos de literais.
Pela hipotese indutiva, ;0 ;!
2 por alguma refutaca~o de soluc~ao 1 2 : : : k;1 k = 2.
Algun i e ; fig, caso contrario ; n~ao seria minimal. Tomamos 1 : : : k numa
deduc~ao de ; substituindo por ; fig, para gerar , e adicionando subsequentes
resolventes para incluir , se necessario. Seja 10 : : : k0 , denotando a deduc~ao de ;,
assim obtida. Se k0 = 2 ent~ao tudo bem. Caso contrario, k = fg, e devemos obter
uma refutac~ao de A fg para algum subconjunto A de ; e juntar ele com 10 : : : k0
para obter uma refutac~ao de ;.
4.2. RESULTADOS DE COMPLETUDE
83
Seja ;2 igual a ; com substitudo por f1g. ;2 e insatisfatvel novamente pelo lema
4.2.5. Seja ;02 um subconjunto minimal de ;2 . Agora, ;02 e & ; f1 g para algum & ;,
desde que f1g deve estar em ;02 (Caso contrario ;02 seria um subconjunto proprio de ;,
contradizendo a hipotese de que ; e um subconjunto minimal insatisfatvel).
f1g tem menos elementos que n excessos de literais, portanto pela hipotese de
induc~ao existe uma refutac~ao 1 : : : r de & f1 g. Ent~ao 10 : : : k0 1 : : : r e a
pretendida refutac~ao de ;.
Teorema 4.2.12 j= implica : ;!
2. Ou seja, se e uma tautologia (logicamente
valida), ent~ao existe uma refutac~ao de :.
Demonstraca~o: j= se e somente se : e insatisfatvel. Se : e insatisfatvel ent~ao
existe um subconjunto minimal insatisfatvel ; de :. Pelo lema 4.2.11, ; ;!
2.
Portanto, pela mesma refutac~ao, : ;! 2.
Corolario 4.2.13 Se ; e um conjunto insatisfatvel de clausulas basicas, ent~ao ; ;!
2.
Demonstraca~o: Se ; e um conjunto insatisfatvel de clausulas basicas, ent~ao sua ne-
gac~ao , isto e :;, e uma tautologia, isto e j= :;. Logo, pelo teorema anterior, temos que
:; ;!
2.
Assim, se uma formula e uma tautologia (valida) podemos computar uma refutac~ao
de :. Isto signica que nosso esquema de computaca~o e completo. Agora generalizemos
este resultado, ligando a noc~ao de consequ^encia logica com deduc~ao por resoluc~ao.
Proposi
c~ao 4.2.14 Seja ; uma conjunto de clausulas e uma clausula. Se ; j= ent~ao ; ;!
. Ou seja, se e consequ^encia logica de ;, ent~ao existe uma deduc~ao por
resoluc~ao de a partir de ;.
Demonstraca~o: Se ; j= ent~ao, pelo teorema da compacidade, existe ;0 ; nito
tal que ;0 j= . Seja ;0 = f1 : : : ng. Pelo teorema da deduc~ao temos que: j=
1 ! (: : : (n ! ) : : : ), isto e, j= :1 _ : : : _ :n _ . Logo, pelo teorema 4.2.12,
:(:1 _ : : : _ :n _ ) ;!
2. Suponha ainda que a clausula e p1 _ : : : _ pk . Assim,
op
op
1 : : : n p1 : : : pk ;! 2. Aplicando o teorema da deduc~ao k-vezes, temos que
1 : : : n ;!
p1 _ : : : _ pk , ou seja, ;0 ;!
. Aplicando o teorema da compacidade
(proposic~ao ??), temos que ; ;! .
Note que o fato desta proposic~ao requere que em ; j= , todos sejam somente clausulas,
n~ao tira a generalidade do mesmo, pois se ; e um conjunto de formula quaisquer, ent~ao
cada uma das formulas em ; pode ser transformada numa fncr equivalente, e portanto
geraria um conjunto de clausulas. Unindo todos esses conjuntos de clausulas teriamos um
conjunto de clausulas ;0 equivalente ao conjunto de formulas ;. Analogamente, se for
84
~ NA LOGICA
CAPITULO 4. COMPUTACAO
PROPOSICIONAL
uma formula qualquer ela pode ser transformada a fncr, suponha que a fncr de seja
10 ^ : : : ^ m0 . Ent~ao em vez de ; j= teriamos ;0 j= 10 e : : : e ;0 j= m0 , satisfazendo a
condic~ao da proposic~ao acima.
Ate aqui sabemos que dedutibilidade implica verdade, e verdade implica computaca~o.
Comparemos, agora, computac~ao e deduca~o.
Comecaremos estabelecendo que se e um resolvente basico de clausulas num conjunto
de clausulas , podemos provar que ` ! . A partir daqui generalizamos, considerando
o caso no qual existe uma deduc~ao por resoluc~ao de a partir de (possivelmente
envolvendo varias etapas de ELC).
Lema 4.2.15 Seja uma formula na fncr. Se e um resolvente basico de duas clausulas
em , ent~ao ` ! . Isto e, se ;!
usando uma unica resoluc~ao basica, ent~ao
` ! .
Demonstraca~o: Se ;!
usando uma unica resoluc~ao basica, ent~ao e da forma
(1 _ p) ^ (:p _ 2 ) ^ 3 onde p e uma proposic~ao at^omica, 1 e 2 clausulas, 3 e uma
conjunc~ao de clausulas, e = 1 _ 2. Pretendemos mostrar que
(1 _ p) ^ (:p _ 2) ^ 3 ` o qual, por denic~ao de _ como uma abreviaca~o, podemos tambem escrever
(:1 ! p) ^ (::p ! 2 ) ^ 3 ` (:1 ! 2)
1: :1 ! p
hipotese
2: p ! ::p
proposica~o 3.3.4.b
3: :1 ! ::p
1,2, proposica~o 3.3.3.a
4: ::p ! 2
hipotese
5: :1 ! 2
3,4, proposica~o 3.3.3.a
Assim, temos que :1 ! p ::p ! 2 ` :1 ! 2 . Logo,
6: (:1 ! p) ^ (::p ! 2) ` :1 ! 2
Exerccio 5 do captulo 3
7: (:1 ! p) ^ (::p ! 2) 3 ` :1 ! 2 propriedade 1 de dedutibilidade
8: (:1 ! p) ^ (::p ! 2) ^ 3 ` :1 ! 2
isto e, ` , e pelo teorema da deduc~ao para TP temos ` ! .
Lema 4.2.16 ; ;!
implica ; ` .
Demonstraca~o: ; ;!
implica que uma deduc~ao por resoluca~o de a partir de ;
existe. (Isto e, existe uma sequ^encia, 1 : : : n tal que n = e para todo i, 1 i n,
i ou e uma clausula de ; ou e um resolvente basico de dois i's previos na sequ^encia).
Mostremos, por induc~ao sobre i, que para todo i, ; ` i .
4.2. RESULTADOS DE COMPLETUDE
85
Caso base: i = 1. 1 e uma clausula de ;. Ent~ao, trivialmente, a sequ^encia 1 e uma
prova de ; ` 1.
Etapa indutiva: Assuma que ; ` i , para cada i < k. Devemos mostrar que ; ` k .
1. Se k e uma clausula de ;, ent~ao, como no caso para i = 1, temos que trivialmente,
; ` k .
2. Se k e um resolvente basico de duas clausulas anteriores na sequ^encia, suponha
que de i e j , onde i j < k, ent~ao k = (i ; p) (j ; pop) para algum literal p3.
Pela hipoteses indutiva temos que ; ` i e ; ` j . Observe que p _ pop ! .
Assim, i pop ! (i ; p) e j p ! (j ; pop). Portanto ; ` pop ! (i ; p)
e ; ` p ! (j ; pop). Pelo exerccio 2.f. e 2.g. do captulo 3, temos que ; `
:(i ; p) ! (j ; pop ). Ou seja ; ` (i ; p) (j ; pop ). Portanto, ; ` k .
Para i = n, temos ; ` n. Como n = , ent~ao ; ` . Portanto, ; ;!
implica
; ` .
Corolario 4.2.17 Se : ;!
ent~ao ` : ! .
Demonstraca~o: Se : ;!
, ent~ao pelo lema acima, fazendo ; = f:g, temos que
: ` . Aplicando o teorema da deduc~ao temos que ` : ! .
Teorema 4.2.18 Se existe uma refutac~ao de : (por ELC), ent~ao podemos provar em TP . Isto e, : ;!
2 implica ` .
Demonstraca~o: Se : ;!
2, ent~ao existe uma deduc~ao por resoluc~ao 1 : : : n = 2
a partir de :.
1. Se 2 2 : ent~ao : = f2g, uma vez que : esta na forma normal conjuntiva
reduzida. Mas, ent~ao = :(:) = :2 = . Lembre-se que e uma abreviac~ao
para _ :, o qual, por denic~ao, e equivalente a : : ! :. Portanto, implica
: ! :, o qual e provavel pelo lema 3.3.2.
2. 2 deve ser resolvente basico de i e j , i j < n. Lembre-se que 2 e uma abreviac~ao
para ^ :. Logo pelo corolario 4.2.17, temos ` : ! (1 ^ :1 ).
1: ` : ! :(1 ! ::1 )
denic~ao de ^
2: ` ! ::
proposica~o 3.3.4.b
3: ` (: ! :(1 ! ::1 )) ! ((1 ! ::1 ) ! ) proposica~o 3.3.4.d
4: ` (1 ! ::1 ) ! MP 1,3
5: ` MP 2,4.
3 Se p e a formula at^omica p ent~ao pop e a formula :p. Se p e a formula :p ent~ao pop e a formula
at^omica :p.
~ NA LOGICA
CAPITULO 4. COMPUTACAO
PROPOSICIONAL
86
Teorema 4.2.19 (Teorema da Completude) Na logica proposicional
` se e somente se j= se e somente se : ;!
2
Demonstraca~o:
`
implica j= teorema 4.2.2
j= implica : ;! 2 teorema 4.2.12
: ;!
2 implica ` teorema 4.2.18.
Consequentemente, na logica proposicional uma assertiva e provavel se e somente se
ela e logicamente valida (isto e, e uma tautologia) se e somente se sua negaca~o se reduz
a clausula vazia pela resoluc~ao basica (ELC).
Corolario 4.2.20 (Teorema da Completude Forte) Na logica proposicional
; ` se e somente se ; j= se e somente se ; ;!
Demonstraca~o: Direto do corolario 4.2.3, da proposic~ao 4.2.14 e do lema
??.
Observe que, entre outras coisas, o teorema da completude nos permite substituir a
tediosa e difcil tarefa de provar que uma formula e um teorema na teoria formal TP ,
por simplesmente, mostrar que a formula e uma tautologia, a qual e uma tarefa menos
tediosa e principalmente autom^atica, ou melhor ainda, por simplesmente mostrar que
existe uma refutac~ao de sua negac~ao, o qual pode tambem ser realizado automaticamente
e com um custo computacional menor que usando tabelas verdade. Assim, o teorema
da completude interliga as tr^es dimens~oes da logica proposicional vistas aqui, e desta
maneira podemos passar, por exemplo, resultados obtidos na dimens~ao sem^antica, para
a dimens~ao sint^atica ou computacional, isto e, todo o que pode ser demonstrado numa
dimens~ao, pode ser demonstrados nas outras. O corolario ?? extende este resultado para
ligar deduc~ao a partir de um conjunto de premisas com consequ^encia logica e com deduc~ao
por resoluc~ao de uma clausula a partir de um conjunto de clausulas.
Exerccios
1. Exibir uma refutac~ao da nega
c~ao de cada uma das seguintes proposic~oes. (Observe
que isto requer que cada formula seja negada e ent~ao convertida para fncr antes de
comecar a resoluc~ao).
a. p1 ! p1
b. p1 ! ::p1
4.2. RESULTADOS DE COMPLETUDE
c. ((p1 ! p2) ! p3) ! ((p1 ! p2) ! (p1 ! p3 ))
d. (:p1 ! p2) ! (:p2 ! p1)
e. (:p2 ! :p1 ) ! ((:p2 ! p1) ! p2)
f. (p1 ! ::p1 ) ^ (::p1 ! p1 )
g. :(p1 ! :p2) ! p2
h. p1 ^ p2 ! p2
i. :(p1 ! :p2 ) ! p1
j. p1 ^ p2 ! p1
k. p1 ! (::(p1 ! :p2 ) ! :p2 )
l. (p1 ! p2) ^ (p1 ! p3) ! (p1 ! p2 ^ p3)
m. (p1 ! p2) ! (p3 _ p1 ! p3 _ p2 )
n. (p1 ! p2) ! ((p3 ! p1 ) ! (p3 ! p2))
o. (p1 ! p2 ) ^ (p2 ! p3) ! (p1 ! p3 )
p. :p1 ! (p1 ! p2 )
q. p1 _ (p2 _ p3) ! (p2 _ (p1 _ p3)) _ p1
r. (p2 _ (p1 _ p3)) _ p1 ! p2 _ (p1 _ p3)
s. p1 _ (p2 _ p3) ! p2 _ (p1 _ p3 )
t. :(:p1 ^ p1)
u. :(p1 ^ p2) ! (p2 ! :p1 )
v. (p1 ! p2) ! (:p2 ! :p1 )
w. (:p1 ! :p2 ) ! (p2 ! p1 )
x. (p1 ! p2) ! (p3 ^ p1 ! p2 ^ p3)
y. p1 ^ p2 ! p2 ^ p1
z. (p1 ! (p2 ! p3)) ^ p2 ! (p1 ! p3)
aa. :p1 ! (p1 ! p2)
ab. (p1 ! p2 ) ! (:p2 ! :p1 )
ac. p1 ! (:p2 ! :(p1 ! p2))
ad. (p1 ! p2 ) ! ((:p1 ! p2 ) ! p2)
ae. (:p1 ! :p2 ) ! (p2 ! p1)
af. (:p1 ! p1 ) ! p1
ag. p1 ! (:p1 ! p2)
ah. (p1 ! p2 ) ! ((p2 ! p3) ! (p1 ! p3))
87
88
~ NA LOGICA
CAPITULO 4. COMPUTACAO
PROPOSICIONAL
2. Exibir uma refutac~ao por resoluca~o dos seguintes conjuntos de clausulas
(a) fp1 _ p2 _ p3 :p1 _ p2 :p3 _ p1 :p2 g
(b) f:p1 _ p2 :p2 _ p3 :p3 _ :p1 p1g
(c) fp1 _ p2 :p3 :p2 p2 _ p3 _ :p1 g
3. Mostre que ; ;!
,quando:
(a) ; = fp1 _ p2 _ p3 :p3 _ p4 :p1 :p2 _ p3 g e = p3 _ p4
(b) ; = f:p1 _ p2 :p2 _ p3 :p3 _ p1 _ p4 :p4g e = :p2 _ p3 _ p4
(c) ; = fp4 _ p3 p1 _ :p4 _ p3 :p3 _ p4g e = :p1 _ p4
4. Para os conjuntos de clausulas ; do exerccio anterior, determine ;, #; e ##;.
5. Demonstre que se ; ;!
, para cada 2 & e & ;!
ent~ao ; ;!
. (Lei do
corte)
Captulo 5
Logica de Predicados: Linguagem e
Sem^antica
A linguagem logica vista ate aqui n~ao e sucientemente expressiva para analizar asserc~oes
como \todo estudante gosta de tirar boas notas" ou \n~ao existem corvos azuis". Para
tal precisamos ter um mecanismo que nos permita percorrer o universo dos individuos
sobre os quais se esta armando alguma coisa (nas asserc~oes acima, o universo seria o
dos estudantes e o dos corvos, respectivamente). Considere agora a sentenca \o gato
e magro", ou em notac~ao logica, magro(gato). Esta sentenca e verdadeira ou falsa?
Antes de responder essa quest~ao precisamos denir a palavra gato de modo que saibamos
exatamente o que gato signica. Agora compare esta sentenca com \algo e magro".
\Algo" aqui e bastante diferente de \gato". Para testar a verdade dessa sentenca n~ao
precisamos conhecer de antem~ao exatamente o que \algo" e. Precisamos saber o conjunto
o qual \magro" percorre e ent~ao observar cada elemento desse conjunto para vericar se
pelo menos um e magro. Caso sejamos bem sucedido ent~ao \algo e magro" e verdadeira.
Por isso, em logica n~ao escrevemos magro(algo), mas 9x:magro(x). Isto pode ser lido
literalmente como \para algum x, x e magro", o qual e obviamente equivalente a \algo e
magro".
O signicado dessa sentenca e
existe um valor, o qual quando subtitudo por x em
magro(x), gera uma proposic~ao verdadeira.
Considere, por exemplo, a asserc~ao \o gato e magro e faminto", que na linguagem
logica pode ser escrito por magro(gato) ^ faminto(gato). Como o signicado de gato e
xo de antem~ao ambas as ocorr^encias de \o gato" se referem a mesma coisa. Por outro
lado, em \algo e magro" e \algo e faminto", que em linguagem logica e 9x:magro(x) ^
9y:faminto(y ), as duas coisas poderiam ser diferentes. E tambem possvel dizer \algo e
ambos magro e faminto", isto e, 9x:(magro(x) ^ faminto(x)). Neste caso, o que quer que
seja o que estamos nos referindo e magro e faminto.
89
90
^
CAPITULO 5. LOGICA
DE PREDICADOS: LINGUAGEM E SEMANTICA
Diferentemente de gato, que e uma constante, x tem o potencial para variar e portanto e chamado variavel. O x em 9x e uma variavel e aplica-se a toda a formula que
segue o ponto. Para formulas n~ao at^omicas o uso de par^enteses e necessario para delimitar
o escopo de x. Por exemplo, 9x:(P (x) _ Q(x)). A ocorr^encia de 9x liga as ocorr^encias de
x naquela formula.
Os smbolos 9 e 8 s~ao chamados de quanticadores , enquanto que 9x e 8x s~ao
chamados de quantica
c~oes . O quanticador 9 e chamado de quanticador existencial, pois pode ser lido como \existe um" ou \para algum". Ja o quanticador 8 e chamado
de quanticador universal, pois pode ser lido como \para todo" ou \para cada". Por
exemplo, em \Pedro gosta de todo mundo", n~ao escrevemos gosta(Pedro todomundo),
mas 8x:gosta(Pedro x). Para ver se esta sentenca e verdadeira (estamos usando o nome
senten
ca como sin^onimo de armac~ao, embora sejam noc~oes sutilmente diferentes) precisamos checar que Pedro gosta de todos os valores como especicados na abrang^encia.
O signicado dessa sentenca e
Para todo valor substitudo por x, gosta(Pedro x) e uma
asserc~ao verdadeira.
E importante ter conci^encia de que quando temos duas ocorr^encias da mesma variavel,
ligada pela mesma quanticac~ao elas devem denotar o mesmo valor. Por exemplo, os x's
em 9x:(magro(x) ^ faminto(x)) deve denotar o mesmo valor. Para tornar a sentenca
verdadeira devemos achar um valor para x que seja ambos magro e faminto. Por outro
lado em 9x:magro(x) ^9x:faminto(x) os dois x's s~ao ligados por diferentes quanticac~oes
e precisamos achar algo que e magro e algo que e faminto. O mesmo ou diferente, n~ao importa, para a sentenca ser verdadeira. No caso, 8x:gosta(x Pedro) _ 8x:gosta(x Maria)
e verdadeira se 8x:gosta(x Pedro) ou 8x:gosta(x Maria) e verdadeira. Aqui os dois x's
s~ao ligados por diferentes quanticac~oes. Elas s~ao realmente variaveis diferentes.
Na sentenca \algo gosta de todo mundo", o qual e 9x:8y:gosta(x y) as duas variaveis
dos quanticadores aninhados s~ao diferentes.
Quanticadores que s~ao da mesma especie podem ser colocados em qualquer ordem.
Por exemplo,
8x:8y:(m~ae(x y ) ! parente(x y ))
n~ao e diferente de
8y:8x:(m~ae(x y ) ! parente(x y ))
Eles signicam que, para quaisquer x e y, se x e m~ae de y ent~ao x e um parente de y.
Generalizando, 9x:9y: signica o mesmo que 9y:9x:.
~ DO PORTUGUE^S PARA A LOGICA
5.1. TRADUCAO
91
Para quanticadores de especies diferentes a ordem e importante. Por exemplo,
8y:9x:m~ae(x y )
n~ao signica o mesmo que
9x:8y:m~ae(x y )
O primeiro diz que todo mundo tem uma m~ae, literalmente, para todo y existe algum
x tal que x e m~ae de y. Sabemos que isso e verdadeiro quando x e y variam entre seres
humanos. O segundo diz que existe uma pessoa que e m~ae de todo mundo. Literalmente,
existe algum x tal que para todo y, x e m~ae de y. Isto n~ao e verdadeiro quando y e x
percorre o conjunto dos seres humanos.
5.1 Traduc~ao do Portugu^es para a Logica
Traduzir do Portugu^es para logica, no caso da logica proposicional, basta ligar as sentencas
at^omicas com os conectivos ^ (e), _ (ou), ! (se ... ent~ao), : (n~ao) e $ (se e somente
se). O mesmo princpio se aplica quando temos quanticadores e variaveis, mas existem
alguns problemas especcos que precisam ser considerados.
A seguir veremos algumas regras uteis para nos ajudar no processo de traduc~ao.
Pronomes: Pronomes, palavras tais como \ele", ou \nada" por si proprios n~ao se ref-
erem a qualquer coisa especca mas tem signicado a partir do contexto. Ja tivemos a
oportunidade de ver como \algo" e \todo mundo" s~ao traduzidos usando quanticadores.
\Nada" e similar. \Nada e magro" torna-se :9x:magro(x).
Palavras tais como \ele", \ela" s~ao usadas especicamente como refer^encia a alguem
ou algo que ja foi mencionado, portanto inevitavelmente correspondem a duas ou mais
refer^encias ao mesmo valor. Quando encontramos um pronome tal como este devemos
proceder como se estiv^essemos manuseando com o que ele se refere. Se ele e uma constante,
ent~ao substitu-lo pela constante. Por exemplo, \Jose gosta de Maria e ela o adora" tornase
gosta(Jose,Maria) ^ gosta(Maria,Jose)
Isso e facil, mas quando o pronome se refere a uma variavel devemos primeiro estabelecer uma quanticac~ao e assegurar que ele se aplica a ambos. Por exemplo, considere \algo
esta magro e ele esta faminto". N~ao e correto traduzir separadamente as duas frases \algo
esta magro" e \^ele esta faminto". N~ao e correto porque o \algo" e \ele" s~ao ligados pelo
conectivo \e". Neste caso devemos estabelecer uma variavel para lidar com esta ligaca~o.
92
^
CAPITULO 5. LOGICA
DE PREDICADOS: LINGUAGEM E SEMANTICA
9x:(x esta magro e x esta faminto)
e ent~ao lidar com o \e".
9x:(magro(x) ^ faminto(x))
Podemos estabelecer a seguinte regra: se pronomes est~ao ligados por um conectivo,
trate dos pronomes antes do conectivo.
5.2 Quanticadores e Tipos
Frequentemente uma frase deve ser traduzida a linguagem logica usando uma quanticac~ao universal sobre um certo tipo de coisas em vez de acerca de todas as coisas. Assim,
nesses casos, devemos qualicar o quanticador. No caso do quanticador universal isso e
feito usando uma implica
c~ao. Por exemplo, \todos os seres racionais odeiam viol^encia"
tem como traduc~ao
8 (racional) x:(x odeia viol^encia)
onde racional diz-se um qualicativo. Isto se traduz para
8x:(racional(x) ! odeia-viol^encia(x))
Se a quanticaca~o e existencial, ent~ao e usada uma conjun
c~ao para ligar a parte
principal com a parte qualicada. Por exemplo, \Maria gosta de alguem que gosta de
logica". Devemos escrever primeiro
9 (uma pessoa que gosta de logica)y:gosta(Maria y )
e ent~ao
9y:(pessoa(y ) ^ gosta(y logica) ^ gosta(Maria y ))
Regra: Torne a estrutura da sentenca correta antes de manipular o qualicativo.
Qualicativos podem ser traduzidos usando ! ou ^ apropriadamente. Por isso introduziremos uma notac~ao para facilitar os seus usos. Escreva 8x : nome ; do ; tipo: ]
ou 9x : nome ; do ; tipo: ] e chamemo-lhes quanticadores tipados.
A notac~ao e principalmente usada para qualicativos padr~ao, as vezes referidos como
\tipos". Sentencas usando tipos podem sempre ser reescritas com a propriedade do
5.2. QUANTIFICADORES E TIPOS
93
tipo explicitada. Qualicativos padr~ao incluem pessoas, numeros (inteiros, reais, etc.)
caracteres, tempo, lista, conjuntos enumerados, etc. Por exemplo,
8x : tempo:8y : tempo:(x y ! apos(x y ))
seria uma simplicac~ao para
8x:8y:(tempo(x) ^ tempo(y ) ^ x y ! apos(x y ))
Tipos padr~ao s~ao usados extensivamente quando se escreve especicac~ao de programas,
os quais correspondem as varias estruturas de dados, tais como lista, num, etc., usados
em programas.
Ja vimos que a sentenca 8x:(x) e verdadeira se e somente se cada sentenca t=x]
obtida de (x) ao substitiuirmos cada ocorr^encia de x por um valor t, e verdadeira.
Por exemplo, \todos os programas que funcionam terminam", cuja traduc~ao logica e
8x:(programa(x) ! (funciona(x) ! termina(x)))
e verdadeira se cada sentenca obtida substituindo um valor de x e verdadeira. Se o valor
t substitudo e um programa, ent~ao programa(t) e verdadeiro e a sentenca resultante
programa(t) ! (funciona(t) ! termina(t))
e verdadeira se funciona(t) ! termina(t) e verdadeira. Se o valor t torna programa(t)
falsa (isto e, t n~ao e um programa) ent~ao a sentenca resultante tambem e verdadeira.
Na pratica, avaliamos o valor de uma sentenca numa situaca~o na qual os valores que
substituem x s~ao xados de antem~ao. Por exemplo, eles poderiam ser ftodos os programas
escritos por nosg.
Quando s~ao usados quanticadores qualicados eles sugerem a abrang^encia dos valores
que devem substituir de modo que se possa testar a verdade da sentenca.
A sentenca \todos os programas que funcionam terminam" sera escrita
8x : programas:(funciona(x) ! termina(x)):
Nesse caso os unicos valores que devemos considerar para x s~ao aqueles que nomeiam
programas. Esses s~ao exatamente os valores que s~ao uteis para mostrar que a sentenca
e verdadeira. Analogamente, a sentenca \alguns programas que terminam funcionam", o
que em logica e
9x:(programa(x) ^ funciona(x) ^ termina(x))
94
^
CAPITULO 5. LOGICA
DE PREDICADOS: LINGUAGEM E SEMANTICA
e verdadeira se pelo menos uma das sentencas obtidas substituindo x por t for verdadeira.
N~ao e o caso de tentar valores de t que tornem programa(t) falsa pois eles n~ao tornam a
sentenca verdadeira. Isto e sugerido pela vers~ao do quanticador tipado
9x : programa:(funciona(x) ^ termina(x))
Podem aparecer diculdades como no exemplo: \Todo inteiro e menor que algum
numero natural", o qual em logica se torna
8x : inteiro:9u : natural:x < u
Agora existe uma innidade de sentencas para considerar, uma para cada inteiro.
Como podemos checar todas? claro que n~ao podemos checar todas individualmente. Em
vez disso poderemos considerar diferentes casos.
Por exemplo, podemos ter dois casos. x < 0 ou x 0. Assim, todos os inteiros
negativos s~ao considerados de uma vez, assim como todos os naturais. No primeiro caso
a sentenca e verdadeira tomando u = 0, pois 0 e um numero natural e maior do que
qualquer inteiro negativo. No segundo caso, x + 1 e um numero natural que pode ser
u. A s vezes temos de usar uma prova para justicar a verdade de uma sentenca, como
veremos mais adiante.
5.3 Quanticadores como Conjunc~oes e Disjunc~oes
Innitas
Agora, dado N , o conjunto dos numeros naturais, seja P (x) a assertiva \o numero natural
x tem a propriedade P ". Essa propriedade pode ser, por exemplo, \x > 0". Desse modo,
as proposic~oes P (0), P (1), P (2) e P (3) estabelecem que os numeros 0 1 2 e 3 tem a
propriedade descrita por P . No exemplo \x > 0", as proposico~es P (1), P (2) e P (3) s~ao
verdadeiras, enquanto P (0) e falsa. Elas tem a forma, respectivamente, 0 > 0, 1 > 0,
2 > 0 e 3 > 0. Se quisermos estabelecer numa unica proposic~ao que 1 > 0, 2 > 0 e 3 > 0
tem a propriedade P , devemos combinar essas tr^es proposic~oes com a conjunc~ao: P (1) e
P (2) e P (3). Usando esse procedimento, para estabelecer que \todo numero natural tem
a propriedade P ", teramos de escrever a conjunc~ao innita
P (0) e P (1) e P (2) e P (3) e Como n~ao e possvel representar uma conjunc~ao innita temos de apelar para uma
representac~ao nita. A sada e usar a proposic~ao \para todo x P (x)" ou simbolicamente
\8x:P (x)". A frase \para todo x " e chamado quanticador universal ligado a
variavel x. Assim,
5.4. LINGUAGEM DE 1A ORDEM
95
8x:P (x) P (0) e P (1) e P (2) e P (3) e Um argumento analogo nos leva a conclus~ao que o quanticador existencial, isto e,
a frase \existe um x " e uma disjunca~o innita. De fato, suponha que quisessemos
expressar a proposic~ao \existe um numero natural menor do que 5 que tem a propriedade
P ". Um modo de fazer isso e escrever \P (0) ou P (1) ou P (2) ou P (3) ou P (4)". De
modo similar se quissermos expressar que \existe um numero natural com a propriedade
P ", teramos de apelar para a disjunc~ao innita,
P (0) ou P (1) ou P (2) ou P (3) ou Portanto,
9x:P (x) P (0) ou P (1) ou P (2) ou P (3) ou Considere o -domnio hD f1 f2 fn R1 Rm i. Como age fi sobre D? Vejamos o exemplo N = hN + i.
A func~ao binaria + : N N ;! N recebe o par (3 5), por exemplo, e retorna 8 2 N ,
(3 5) 7! 8. Ou seja, se fi e uma func~ao n-aria em D, o efeito de fi e associar n individuos
de D a um indivduo de D. Podemos, ent~ao, dizer que a ac~ao de fi sobre D n~ao altera o
ambiente \D", isto e , o resultado da ac~ao de fi sobre D esta em D.
A relac~ao binaria \" do domnio acima, associa (3 5), por exemplo, a \3 5".
Entretanto, \3 5" e uma propriedade de indivduos de D, e como tal e verdadeira
ou falsa. Essa propriedade arma que \3 e menor ou igual que 5", que acontece ser
verdadeira. Assim, uma relac~ao n-aria sobre D e uma func~ao que associa n-indivduos de
D a um dos valores verdade, verdadeiro ou falso. Isto e, Ri : Dn ;! f0 1g. Portanto,
a ac~ao de uma relac~ao sobre D altera o ambiente de D, pois o resultado n~ao e mais um
individuo de D.
5.4 Linguagem de 1a Ordem
A linguagem de 1a ordem e mais complicada porque expressamos ideias mais complicadas.
Queremos ser capazes de considerar a verdade ou falsidade de sentencas compostas construdas a partir de sentencas at^omicas que podem, as vezes, ser verdadeiras e as vezes
falsas sob uma unica interpretac~ao. Por exemplo, a sentenca \se x e par ent~ao x + 1 e
impar", ou traduzido para a logica 8x:(par(x) ! impar(x + 1)), e uma implicac~ao das
sentencas at^omicas \par(x)" e \impar(x + 1)". Essa sentenca e verdadeira no conjunto
96
^
CAPITULO 5. LOGICA
DE PREDICADOS: LINGUAGEM E SEMANTICA
dos inteiros, mas como ja vimos anteriormente n~ao podemos dizer que \x e par" e verdadeiro, ou que e falsa. Ela depende do valor de x. Portanto, estamos acrescentando a
nossa linguagem uma habilidade para fazer asserc~oes parametricas. Essas asserc~oes s~ao
at^omicas, mas em vez de ser simplesmente verdadeiras ou falsas (como acontecia com
proposic~oes), elas estabelecem que alguma relac~ao se da entre seus argumentos. Essas
relac~oes s~ao expressas com predicados. aplicados a argumentos.
Isso nos leva a considerar teorias de 1a ordem. Teorias de 1a ordem se distinguem
de teorias de ordem mais baixas (tais como a teoria da logica proposicional) no fato de que
os argumentos de predicados s~ao termos construdos de constantes, variaveis e aplicac~oes
de func~oes. Somente s~ao permitidos quanticadores sobre variaveis. Em teoria de ordens
mais altas, func~oes e predicados podem tomar func~oes e predicados como argumentos.
Podemos tambem fazer assertivas sobre todas as func~oes e predicados quanticando sobre
smbolos de func~ao e de predicados.
As linguagens de 1a ordem ou linguagens de predicados s~ao extens~oes das linguagens proposicionais. Na linguagem proposicional o alfabeto n~ao contem variaveis. Os
unicos smbolos de funco~es que aparecem s~ao os smbolos logicos f: _ ^ ! $g. Por
isso uma interpretac~ao para essa linguagem e uma algebra de Boole. Nas linguagens de
1a ordem o alfabeto alem de conter variaveis, smbolos de func~ao, e operadores logicos,
contem, tambem, smbolos de predicados. Por isso as -estruturas correspondentes
(-domnios), podem ser estruturas com relaco~es que n~ao a igualdade, como por exemplo,
relac~ao de ordem. A logica correspondente a linguagem de predicado, e uma extens~ao da
logica proposicional, e conhecida como logica de predicados ou logica de 1a ordem.
Um tpico alfabeto de 1a ordem, , tem a seguinte constituic~ao:
= X C F R L P onde
1. X = fx y z x1 x2 : : : y1 y2 : : : z1 z2 : : : g e um conjunto contavel de variaveis
2. C = fa b c a1 a2 : : : b1 b2 : : : c1 c2 : : : g e um conjunto contavel de smbolos
constantes
3. F = ff1 f2 : : : g e um conjunto de smbolos de funco~es n~ao logicas
4. R = fR1 R2 : : : g e um conjunto de smbolos de relac~ao ou predicado
5. L = f: _ ^ ! $ 8 9g e o conjunto de smbolos logicos
6. P = f( ) : g e o conjunto de smbolos de pontuac~ao.
Embora toda constante pode ser vista como um func~ao sem argumentos, por quest~oes
didaticas decidimos separar os smbolos de func~ao que representam funco~es com pelo
menos um argumento dos que representam constantes.
5.4. LINGUAGEM DE 1A ORDEM
97
L e xo em todas as linguagens de 1a ordem, o que varia e caracteriza a linguagem,
como veremos nos exemplos mais adiante, e d = C F R .
O alfabeto d junto com uma funca~o arid : d ;! N que indica a aridade dos smbolos
de func~ao (incluindo constantes que t^em por denic~ao aridade zero) e de predicados e
uma assinatura relacional, pois consiste de smbolos funcionais e smbolos relacionais,
cuja interpretac~ao em vez de ser uma -algebra de Boole e um d -domnio.
Deniremos, agora, as linguagens de 1a ordem. Mas, como na linguagem de predicados, existem duas entidades de natureza diferente (os termos e as formulas, propriamente
ditas), a linguagem de primeira ordem ou de predicados para o alfabeto de primeira ordem
sera construda em duas fases. Na primeira construimos uma linguagem para os termos
sobre os quais se vai predicar, chamamos esta linguagem de linguagem dos termos de
primeira ordem. Depois usando estes termos como parte do alfabeto, construmos a
linguagem de primeira ordem ou linguagem de predicados, onde seus termos s~ao
predicados sobre termos de primeira ordem. Assim, n~ao devemos confundir os termos de
primeira ordem com os termos da linguagem de primeira ordem. No primeiro caso estamos nos referindo aos termos que denot~ao objetos de algum universo (jo~ao, cadeira, gato,
5, , etc.). ja no segundo estamos nos referindo a formulas bem formadas da linguagem,
isto e, formulas que denotam alguma armaca~o sobre objetos de algum universo (\Jo~ao e
alto", \todos os corvos s~ao pretos", etc.)
Deni
c~ao 5.4.1 Seja = X d L P um alfabeto de primeira ordem e arid :
d ;!
uma func~ao que indica a aridade dos smbolos de func~ao e de predicado. A
linguagem dos termos de primeira ordem e a linguagem gerada pela linguagem
formal LT = hX C F f( ) g G T i onde G T = fT1 T2 T3 g com:
T1 : ;
x x2X
T2 : ;a a 2 C
T3 : f (tt1 ::::::ttn ) arid(f ) = n.
N
n
1
A linguagem de primeira ordem e gerada pela linguagem formal de primeira
ordem LP = h Gi onde
1. = Ling (LT ) R L P
2. G = fF1 : : : F8 g onde
F1 : R(t1t : :: :: : tnt ) arid(R) = n e tj 2 Ling (LT ) para todo 1 j n
1
F2 : :
F3 : (^ )
F4 : (_ )
n
98
^
CAPITULO 5. LOGICA
DE PREDICADOS: LINGUAGEM E SEMANTICA
F5 : (! )
F6 : ($ )
x2X
F7 : 9x:
F8 : 8x:
x2X
observa
c~oes:
1. LP = Ling(LP ).
2. e s~ao metavariaveis, isto e podem ser substitudas, nas regras, por qualquer
formula em LP .
3. As formulas geradas por F1 s~ao chamadas de formulas at^omicas, pois elas n~ao
contem nenhum operador logico.
4. O conjunto LP e chamado de conjunto das formulas bem formadas (fbf), ou simplesmente formulas de LP .
5. De aqui em diante chamaremos de linguagem formal de 1a ordem as linguagens
formais que especicam uma linguagem de 1a ordem. Se n~ao houver confus~ao as
vezes omitiremos o termo \formal" em linguagens formais de 1a ordem.
Embora tendo colocado \9" e \8" entre os operadores logicos, n~ao e esse exatamente
o caso. Eles constituem excess~oes em relac~ao a esses operadores. De certo modo, como ja
vimos na introduc~ao deste captulo, esses dois operadores caracterizam a diferenca entre
linguagem proposicional e uma linguagem de predicados. No que segue analizaremos, com
um pouco mais de profundidade, esses dois quanticadores.
Consideremos, sobre N , a seguinte relac~ao ternaria R(x y z) = f(x y z) 2 N 3 = x+y =
zg, a qual indicamos por \x + y = z". Nesta relaca~o x y e z s~ao \variaveis livres". Isto
e, n~ao est~ao ligados por nenhum quanticador. Podemos dizer, tambem, que elas s~ao
livres de assumir quaisquer valores naturais, da o nome relac~ao ternaria. Apliquemos o
\operador" \9y" a relac~ao \x + y = z". O resultado sera a relaca~o R1 9y:(x + y = z).
Nesta relac~ao y n~ao e mais livre, ele esta ligado ao operador 9y. As variaveis x e z
continuam livres em R1 . E facil ver que R1 e a relac~ao x z sobre N . Em outras
palavras, o efeito do operador 9y foi transformar a relac~ao ternaria R \x + y = z00 na
relac~ao binaria R1 \x z00.
Apliquemos, agora, o operador \8z", sobre a relac~ao R1 . O resultado e a relac~ao unaria
R2 8z:9y:(x + y = z), ou simplesmente, R2 8z:(x z). Aqui z n~ao e mais livre, mas
ligada ao quanticador 8. x continua livre. A relaca~o R2 8z:x z e um subconjunto
de N , mais precisamente o subconjunto f0g, que por denica~o e uma relaca~o unaria sobre
5.4. LINGUAGEM DE 1A ORDEM
99
Finalmente, apliquemos o operador \9x" a relaca~o R2 . O resultado 9x:8z:(x z) e
uma \propriedade" dos elementos de N , qual seja \existe um natural menor que todos
os outros", que acontece ser verdadeira. Observe que 9x:8z:(x z) n~ao possui mais
variaveis livres, ela e uma asserc~ao ou proposica~o sobre numeros naturais e portanto e
verdadeira ou falsa.
Podemos tirar varias conclus~oes relativas a analise das quanticac~oes aplicadas sobre
as relac~oes acima. Primeiro, uma relaca~o sem variaveis livres e uma proposica~o sobre os
indivduos do universo de discurso. No caso acima o universo de discurso e o conjunto
dos numeros naturais. Segundo, os quanticadores \8" e \9" quando quanticados por
variaveis s~ao transformadores de relaco~es. Essas transformac~oes s~ao efetuadas do seguinte
modo. Se R(x1 xn) e uma relac~ao n-aria, ou seja, uma relac~ao com n variaveis livres,
a quanticac~ao \8xi " ou \9xi" tem como efeito transformar a relac~ao n-aria R(x1 xn )
na relac~ao (n ; 1)-aria R1 (x1 xi;1 xi+1 xn), onde agora xi n~ao e mais livre, mas
ligada ao quanticador correspondente. No caso particular de R(x) ser uma relac~ao unaria
o operador \9x" ou \8x" transforma R(x) na proposic~ao \9x:R(x)" ou \8x:R(x)", cuja
denotac~ao e verdadeiro ou falsa.
Observe que se x n~ao e livre em R, os operadores 8x e 9x n~ao produzem nenhum efeito
sobre R. Em outras palavras, os operadores \8" e \9", n~ao atuam sobre proposic~oes,
mas sobre formulas abertas (formulas com alguma variavel livre, a qual sera chamada,
simplesmente, de formula). Portanto, uma proposic~ao pode ser vista como uma formula
sem variaveis livres, conhecida, tambem, como uma formula fechada. Uma sentenca
ou proposica~o pode ser denida como uma formulas sem variaveis livres. Se as variaveis
x1 : : : xn s~ao livres na formula indicaremos isso por (x1 xn).
Embora de ja termos apelado para a intuica~o para entender o conceito de variavel livre
e ligada, devido a import^ancia desses conceitos daremos uma denica~o precisa. Porem,
primeiro estudaremos isoladamente cada ocorr^encia de uma variavel numa formula, e
determinaremos se essa ocorr^encia em particular e livre ou ligada.
N.
Deni
c~ao 5.4.2 Uma ocorr^encia de uma variavel x numa fbf e ligada se a ocorr^encia
de x e a variavel de uma quanticac~ao ou se esta dentro do escopo de uma quanticac~ao
cuja variavel que esta sendo quanticada e x. De outro modo a ocorr^encia da variavel
e dita livre na fbf.
Cada ocorr^encia de uma variavel ou e livre ou ligada, nunca ambas.
Exemplo 5.4.3 A formula 8x:(P (x f (a y))^9y:P (y x))_:9y:P (x y) tem quatro ocorr^encias
da variavel x e cinco da variavel y. A seguir veremos quais dessas ocorr^encias s~ao livres
e quais ligadas:
8 |{z}
x :(P (|{z}
x f (a |{z}
y )) ^ 9 |{z}
y :P (|{z}
y |{z}
x )) _ :9 |{z}
y :P (|{z}
x |{z}
y )
1
2
3
4
5
6
7
8
9
100
^
CAPITULO 5. LOGICA
DE PREDICADOS: LINGUAGEM E SEMANTICA
1. esta ocorr^encia da variavel x e ligada, pois e a variavel de uma quanticac~ao.
2. esta ocorr^encia da variavel x e ligada, pois esta dentro do escopo de uma quanticaca~o 1. cuja variavel que esta sendo quanticada e x.
3. esta ocorr^encia da variavel y e livre, pois n~ao e a variavel de uma quanticac~ao e
embora esteja dentro do escopo de uma quanticac~ao 1., a variavel que esta sendo
quanticada n~ao e y.
4. esta ocorr^encia da variavel y e ligada, pois e a variavel de uma quanticac~ao.
5. esta ocorr^encia da variavel y e ligada, pois esta dentro do escopo de duas quanticaco~es (1. e 4.) e, no caso da quanticac~ao 2., a variavel que esta sendo quanticada
e y .
6. esta ocorr^encia da variavel x e ligada, pois esta dentro do escopo de duas quanticaco~es (1. e 4.) e, no caso da quanticac~ao 1., a variavel que esta sendo quanticada
e x.
7. esta ocorr^encia da variavel y e ligada, pois e a variavel de uma quanticac~ao.
8. esta ocorr^encia da variavel x e livre, pois n~ao e a variavel de uma quanticac~ao e
embora esteja dentro do escopo de uma quanticac~ao 7., a variavel que esta sendo
quanticada n~ao e x.
9. esta ocorr^encia da variavel y e ligada, pois esta dentro do escopo de uma quanticac~ao 7. cuja variavel que esta sendo quanticada e y .
Deni
c~ao 5.4.4 x e uma variavel livre numa formula se existe em uma ocorr^encia
livre de x. Analogamente, x e uma variavel ligada numa formula se existe em uma
ocorr^encia ligada da variavel x.
No caso do exemplo anterior, tanto x como y t^em ocorr^encias livres e ligadas na formula
8x:(P (x f (a y )) ^ 9y:P (y x)) _ :9y:P (x y ), e portanto dizemos que essas variaveis s~ao
livres e ligadas ao mesmo tempo nessa formula. Assim, numa formula , qualquer, uma
variavel pode ser livre e ligada ao mesmo tempo. Observe que o conceito de variavel
ligada e um conceito relativo a uma quanticaca~o, pois uma variavel x e ligada a uma
formula se, e somente se, na formula existe uma quanticac~ao 8x ou 9x.
Se x e uma variavel livre numa formula , o nome x nas ocorr^encias livres da variavel
n~ao e importante. Em outras palavras, podemos troca-la na formula por uma nova
variavel, sem alterar o signicado da formula. Por exemplo, seja a formula def
= 9y:x +1 =
y ^ 8x:9y:x < y. Trocando as ocorr^encias livres da variavel x por z em , indicado por
z=x], a formula resultante z=x] def
= 9y:z + 1 = y ^ 8x:9y:x < y n~ao alterou seu signicado. Observe que x n~ao poderia ser trocado por y em , sem alterar seu signicado pois
a express~ao y=x] def
= 9y:y +1 = y ^8x:9y:x < y e falsa no domnio N = hN + < =i dos
5.4. LINGUAGEM DE 1A ORDEM
101
numeros naturais, enquanto na express~ao original, por ser uma formula n~ao fechada (com
variaveis livres), o seu valor verdade depende de uma interpretac~ao (e contingente). Ou
seja, y=x] e fechada, e portanto, so pode tomar um valor verdade numa interpretaca~o.
Isto ocorreu porque quando subtituimos as ocorr^encias livres de x por y, essas novas
ocorr^encias da variavel y tornaram-se ligada pela quanticac~ao 9y. Neste caso dizemos
que x n~ao e subtituvel por y ou o termo t def
= y n~ao e livre para x. Podemos generalizar
esta ideia e trocar todas as ocorr^encias livres de uma variavel por algum termo, o qual
quando substitudo n~ao ligue nenhuma das variaveis que comp~oem o termo.
Deni
c~ao 5.4.5 Seja uma fbf e t um termo. O termo t e dito livre para x em se
todas as ocorr^encias livre de x em n~ao est~ao dentro do escopo de qualquer quanticac~ao
8y ou 9y onde y e uma variavel em t. A substituic~ao de todas as ocorr^encias livres de x
pelo termo t em , e denotado por t=x].
Exemplo 5.4.6
1. O termo y e livre para x em R(x), mas n~ao e livre para x em 8y:R(x).
2. O termo x e livre para y em R(z ) e em 8y:R(y ).
3. f (g(a y)) e livre para x y z em 8x:R(f (x) y z ) ! :R(z x f (y)), mas ele e livre
para y , mas n~ao para x e z em 8z:R(x y z) ^ 8y:S (f (x) z y ) ^ P (z ).
4. Qualquer termo t que n~ao contem variaveis e livre para qualquer variavel em qualquer
formula. Isto e, g(f (a) c) e livre para qualquer variavel em qualquer formula.
5. Um termo t e livre para qualquer variavel em se nenhuma das variaveis em t
e ligada em . Por exemplo, h(a f (g (b y ))) e livre para qualquer variavel nas
formulas
(a) R(x y ) ! 8x:S (x)
(b) 8x:R(f (x) y z ) ! :R(z x f (y))
(c) 8z:R(x y z ) ^ 8x:S (f (x) z y ) ^ P (z )).
6. Qualquer variavel e livre para ela propria em qualquer formula.
7. Se a variavel x n~ao e livre em , ent~ao qualquer termo t e livre para x em . Por
exemplo, f (x y) e livre para z em 8x:P (x y ). Observe que se x n~ao ocorre em ,
ent~ao ela n~ao e livre em . Logo, se x n~ao ocorre em , ent~ao qualquer termo t e
livre para x em .
102
^
CAPITULO 5. LOGICA
DE PREDICADOS: LINGUAGEM E SEMANTICA
5.5 Verdade
Na linguagem proposicional toda proposic~ao era composta de proposic~oes at^omicas, usando os conectivos logicos :, ^, _, ! e $. Para fornecer uma interpretac~ao para uma
proposic~ao, tudo que precisavamos saber era se as proposic~oes at^omicas eram verdadeiras
ou falsas. Podamos listar todas as possveis interpretac~oes usando a tabela verdade.
Agora a situac~ao e mais complexa. Podemos expressar relaco~es que s~ao verdadeiras para
certos indivduos e n~ao para outros, em vez de simplesmente estabelecer que e verdadeira
ou falsa. Para determinar a veracidade ou falsidade de uma formula em uma interpretac~ao precisamos saber que valores as variaveis podem tomar, que elementos as constantes
interpretam, e que func~oes e relac~oes iram representar os smbolos de func~ao e de relaca~o,
respectivamente.
Deni
c~ao 5.5.1 Sejam = X d L P um alfabeto de 1a ordem e LP a linguagem
de 1a ordem associada a este alfabeto. Uma interpreta
c~ao para LP e um d -domnio.
Ou seja, uma interpretac~ao para LP e uma estrutura matematica, onde as variaveis e
constantes de tomam valores e onde s~ao interpretados os smbolos de func~oes e relac~oes.
Exemplo 5.5.2 Considere o alfabeto de 1a ordem
= fx y f R1 R2 : ^ _ ! $ 9 8 ( )g
onde arid(f ) = 1, arid(R1 ) = 2 e arid(R2 ) = 1. Observe que d = ff R1 R2 g. Seja LP
a linguagem de 1a ordem adjacente a este alfabeto e Z o conjunto dos numeros inteiros.
O d -domnio hZ fZ R1Z R2Zi, onde fZ : Z ;! Z tal que fZ(x) = x + 1, R1Z(x y) \x = y" e R2Z(x) \x > 1" e uma interpretac~ao de LP . Uma outra interpretac~ao
pode ser dada pelo d -domnio hZ f Z R1Z R2Zi, onde f Z : Z ;! Z tal que f Z(x) = x x,
R1Z(x y) \x y = 0" e R2Z(x) \x = 0".
Seja LP uma linguagem de 1a ordem, D = hD dD i uma interpretaca~o para LP e :
X ;! D uma atribuic~ao de valores para as variaveis na interpretac~ao D. Analogamente,
como na denic~ao da linguagem de predicado, para determinar o valor verdade que toma
qualquer formula em Ling(LP ) quando interpretada em D e as variaveis tomando os
valores atribuidos por , devemos fazer-lo por parte. Assim, primeiro determinamos os
valores que tomam os termos de primeira ordem e depois interpretamos as formulas. O
valor que tomam os termos de primeira ordem est~ao em estreita relac~ao com os valores
atribudos as variaveis, e portanto, cada atribuicao : X ;! D determina uma func~ao
de valorac~ao V : Ling(LT ) ;! D, a qual e denida recursivamente como segue
V(x) = (x) para cada x 2 X
V(a) = aD para cada a 2 C
V(f (t1 : : : tn)) = fD (V(t1 ) : : : V(tn)) para cada f 2 F tal que arid(f ) = n.
5.5. VERDADE
103
Exemplo 5.5.3 Seja a linguagem de 1a ordem do exemplo 5.5.2 e a primeira interpretac~ao dada nesse mesmo exemplo. Uma valorac~ao para os termos f (x) e f (f (y )), na
atribuic~ao : X ;! Z tal que (x) = 5 e (y) = 7 e
V(f (x)) = fZ(v(x))
= fZ((x))
= fZ(5)
=5+1
=6
V(f (f (y))) = fZ(V(f (y)))
= fZ(fZ(V(y)))
= fZ(fZ((y)))
= fZ(fZ(7))
= fZ(7 + 1)
= fZ(8)
=8+1
=9
Agora podemos extender esta valoraca~o para formulas qualquer na linguagem.
Deni
c~ao 5.5.4 Seja = X d L P um alfabeto de 1a ordem, arid : d ;! N
uma func~ao de aridade e LP a linguagem de 1a ordem adjacente a este alfabeto. Uma valorac~ao verdade das formulas em LP numa interpretac~ao D, com respecto a uma atribuic~ao
: X ;! D, e uma func~ao V : LP ;! f0 1g denida por
V (P (t1 : : : tn )) = PD (V (t1 ) : : : V (tn )) para cada P 2 R com arid(P ) = n e
t1 : : : tn 2 Ling(LT ).
V (:) = V ()
V ( ^ ) = V () V ( )
V ( ^ ) = V () V ( )
V ( _ ) = V () + V ( )
V ( ! ) = V () ) V ( )
V ( $ ) = V () , V ( )
8
< 1 , se para toda atribuic~ao 0 : X ;! D tal que
V (8x:) = : 0 (y ) = (y ) sempre que y 6= x, V0 () = 1
0 , sen~ao
8
< 1 , se para alguma atribuic~ao 0 : X ;! D tal que
V (9x:) = : 0 (y ) = (y ) sempre que y 6= x, V0 () = 1
0 , sen~ao
onde as operaco~es , +, , ) e , s~ao as mesmas denidas para algebras de Boole.
104
^
CAPITULO 5. LOGICA
DE PREDICADOS: LINGUAGEM E SEMANTICA
Exemplo 5.5.5 Considere as seguintes formulas na linguagem de primeira ordem:
1. 1 def
= P (x y) ! R(x c)
2. 2 def
= 8x:(R(x c) ! R(f (x) c))
3. 3 ) def
= 8x:9y:(P (x y) ! 9y:8x:(P (x y)))
Uma interpretac~ao para estas formulas pode ser a seguinte:
Conjunto base: N o conjunto dos numeros naturais
Interpretaca~o de f : fN : N ;! N denida por f (n) = 2n.
Interpretaca~o de c: cN : N 0 ;! N , ou seja cN e uma constante em N , denida por
cN = 2.
Interpretaca~o de P : PN N N denido por PN = f(n m) 2 N N = n e m t^em
a mesma paridadeg. Observe que PN (n m) denota que (n m) 2 PN .
Interpretaca~o de R: RN N N denido por RN = f(n m) 2 N N = n mg.
Observe que RN (n m) denota que (n m) 2 RN .
Uma atribuic~ao de valores para as variaveis da linguagem de primeira ordem nesta
interpretac~ao e uma funca~o : X ;! N tal que (x) = 5 e (y) = 7.
Nesta interpretac~ao e para esta atribuic~ao de valores verdade temos que:
1 :
V (P (x y ) ! R(x c)) = V (P (x y )) ) V (R(x c))
= PN (V(x) V(y)) ) RN (V(x) V(c))
= PN ((x) (y)) ) RN ((x) cN )
= PN (5 7) ) RN (5 2)
=1)1
=1
2 :
V (8x:(R(x c) ! R(f (x) c))) = V0 (R(x c) ! R(f (x) c))
= V0 (R(x c)) ) V0 (R(f (x) c))
= RN (V0 (x) V0 (c)) ) RN (V0 (f (x)) V0 (c))
= RN (0 (x) cN ) ) RN (fN (V0 (x)) cN )
= RN (0 (x) 2) ) RN (fN (0 (x)) 2)
= RN (0 (x) 2) ) RN (20(x) 2)
Quando 0 (x) < 2 ent~ao RN (0 (x) 2) sera falso, e portanto RN (0(x) 2) ) RN (20 (x) 2)
sera verdadeiro. Se 0 (x) 2 ent~ao 20 (x) 2, e portanto RN (0(x) 2) e RN (20 (x) 2)
ser~ao verdadeiros. Logo, RN (0 (x) 2) ) RN (20 (x) 2) sera verdadeiro.
5.5. VERDADE
105
Assim, como para V (8x:(R(x c) ! R(f (x) c))) ser verdadeiro, V0 (R(x c) ! R(f (x) c))
deve ser verdadeiro para toda atribuic~ao 0 : X ;! N que se diferencie de , eventualmente, no valor atribudo a x, podemos concluir que V (8x:(R(x c) ! R(f (x) c))) e
verdadeiro.
3 :
O uso de quanticadores torna mais dicil a demonstrac~ao de que uma formula e
verdadeira ou falsa, pois devemos considerar uma quantidade innita (pois o conjunto
base e innito) de func~oes de valorac~ao. Como 3 tem tr^es quanticadores, vericar que
ela e verdadeira, sera dicil usando o metodo anterior. Assim, neste caso, apelaremos
intuic~ao e conhecimento matematicos sobre o conjunto dos numeros naturais.
Primeiro, \traduziremos" a formula 3 nesta interpretac~ao:
8x 2 N :9y 2 N :(paridade(x) = paridade(y ) ! 9y 2 N :8x 2 N :paridade(x) = paridade(y ))
o qual informalmente seria \para todo numero natural existe um numero natural tal que,
se eles t^em a mesma paridade ent~ao existe um numero natural tal que para todo numero natural eles t^em a mesma paridade". o qual e verdadeiro, pois uma formula do tipo
8x:9y ( ! ) e verdadeira quando 8x:9y: for falsa. Neste caso em particular temos
que, para cada x existe um y que n~ao t^em a mesma paridade. Por exemplo, para x = 3
existe y = 4, talque \se 3 e 4 t^em a mesma paridade ent~ao ....", como 3 e 4 t^em paridade diferente, ent~ao esta armac~ao e verdadeira. Claramente para qualquer x podemos
encontrar um tal y, que faca que a sentenca \se x e y t^em a mesma paridade ent~ao ..."
seja verdadeira.
Deni
c~ao 5.5.6 Quando existe uma interpretac~ao D e uma atribuic~ao para as variaveis
livres de uma formula tal que V () = 1, dizemos que a formula e satisfativel. Neste
caso, a interpretac~ao D satisfaz para a atribuic~ao , e denotamos esto por D j= .
A seguinte proposic~ao permite vericar se uma determinada interpretaca~o satisfaz uma
formula para uma atribuic~ao de modo recursivo, porem sem apelar diretamente a func~ao
V .
Proposi
c~ao 5.5.7 Sejam LP uma linguagem de 1a ordem, D = hD D i uma interpretaca~o para LP e :;! D uma atribuic~ao.
1. D j=
e uma proposic~ao verdadeira, onde
R(t1 : : : tn ), se RD (V (t1 ) : : : V (tn )) RD e a interpretac~ao do smbolo de predicado R em D.
2. D j= : se e somente se n~ao e o caso D j= , ou noutras palavras, e falsa em D,
para .
106
^
CAPITULO 5. LOGICA
DE PREDICADOS: LINGUAGEM E SEMANTICA
3. D j= ^ se e somente se D j= e D j= .
4. D j= _ se e somente se D j= ou D j= .
5. D j= ! se e somente se, se D j= ent~ao D j= .
6. D j= $ se e somente se (D j= se e somente se D j= ).
7. D j= 8x: se e somente se para qualquer atribuic~ao 0 que difere, eventualmente, de
na atribuic~ao de x, D j=0 .
8. D j= 9x: se e somente se para alguma atribuic~ao 0 que difere de , eventualmente,
na atribuica~o de x, D j=0 .
Demonstraca~o: Direto da denica~o de D j= .
Deni
c~ao 5.5.8 Quando D j= dizemos que o par hD i e um modelo para . Um
modelo para um conjunto de formulas, ;, e um par hD i que e modelo para cada 2 ;.
Observe que so podemos caracterizar um modelo por um par hD i, pois pode muito
bem acontecer que hD i seja um modelo para uma formula e para uma outra atribuic~ao
0 , hD 0i n~ao ser. Por exemplo, considere a linguagem de 1a ordem com interpretac~ao
N = hN <i. Considere uma atribuic~ao (xi ) = i. Ent~ao a formula xi < xi+1 e verdadeira
em N para essa atribuic~ao, isto e, N j= xi < xi+1 , pois em N , i < i + 1 para i = 0 1 .
No entanto para a atribuic~ao 0 tal que 0 (xi) = 1 para todo i, N 6j=0 xi < xi+1 , ou seja,
hN 0i n~ao e um modelo de xi < xi+1 .
Deni
c~ao 5.5.9 Uma fbf e dita satisfatvel se ela tem modelo, isto e se D j= para algum modelo hD i. Caso contrario, e insatisfatvel. Uma fbf e verdadeira
numa dada interpreta
c~ao D, denotado por D j= , se para qualquer atribuic~ao ,
D j= . Uma fbf e falsa numa dada interpreta
c~ao D, se para qualquer atribuica~o
, n~ao e o caso que D j= . Uma formula e valida ou universalmente valida se ela e
verdadeira para toda interpretac~ao.
Deni
c~ao 5.5.10 Seja L = h Gi uma linguagem de 1a ordem e ; um conjunto de
formulas em Ling (L). Dizemos que e uma consequ^encia logica ou consequ^encia
sem^antica de ;, cuja notac~ao e, ; j= , se todo modelo de ; e um modelo de .
5.5. VERDADE
107
Observa
c~oes:
1. Quando uma formula e consequ^encia logica do vazio, isto e j= ou simplesmente
j= , ent~ao e universalmente valida.
2. Teorema da dedu
c~ao Se ; j= ent~ao ; j= ! 3. Teorema da Compacidade Se ; j= , ent~ao existe um subconjunto nito ;0 =
f1 n g ; tal que ;0 j= .
4. Se uma formula e insatisfatvel (ou contraditoria), ent~ao j= :.
5. Se ; j= e & j= ! , ent~ao ; & j= Os seguintes exemplos simples esclarecer~ao as diferencas entre cada uma desses conceitos.
Exemplo 5.5.11 Seja a seguinte interpretac~ao Z ou -domnio:
Conjunto base: o conjunto dos numeros inteiros Z
Interpretaca~o do smbolo de func~ao f : fZ : Z ;! Z denida por fZ(n) = n + 1.
Interpretac~ao do smbolo de func~ao (constante) c: cZ = 0
Interpretac~ao do smbolo de predicado P : PZ ZZ denido por PZ = f(x y ) = x yg. Assim, PZ(n m) se, e somente se, n m.
1. a formula P (x c) e satisfatvel, pois a atribuic~ao (x) = 1 torna ela verdadeira, isto
e Z j= P (x c).
2. a formula P (x f (x)) e falsa na interpretac~ao Z , pois independente do valor que
venha tomar x, nunca x x + 1.
3. a formula P (f (x) x) e verdadeira na interpretac~ao Z , isto e Z j= P (f (x) x), pois
independente do valor que venha ser atribuido a x, sempre sera verdeiro que x +1 x.
4. P (x c) 6j= 8x:P (x c), pois P (x c) e verdadeira na interpretac~ao Z e para a atribuica~o
(x) = 3 (pois 3 0) mas hZ i n~ao e um modelo de 8x:P (x c).
5. a formula P (x c) ! 8x:P (x c) e contingente na interpretac~ao Z , pois na atribuic~ao
(x) = 3 o antecedente da implicac~ao e verdadeiro e o consequente e falso, e portanto a formula como um todo e falsa e na atribuic~ao (x) = ;3 o antecedente da
implicaca~o e falso e portanto a formula como um todo e verdadeira.
108
^
CAPITULO 5. LOGICA
DE PREDICADOS: LINGUAGEM E SEMANTICA
Exemplo 5.5.12 A seguir veremos exemplos de conceitos que envolvem todas as interpretac~oes possveis.
1. A formula 8x:P (x) ! 9x:P (x) e universalmente valida. Pois em qualquer interpretac~ao D se D j= 8x:P (x), signica que para qualquer atribuic~ao , D j= P (x),
logo pelo menos para um , D j= P (x), e portanto D j= 9x:P (x). Informalmente
a formula 8x:P (x) ! 9x:P (x) declara que se uma propriedade e satisfeita por todo
objeto numa interpretac~ao, ent~ao essa propriedade e satisfeita por pelo menos um
objeto na interpretaca~o.
2. A formula P (x) ^ :P (x) e uma contradic~ao , pois independente de como interpretemos P e do valor tomado por x, nunca poderemos ter que esse valor satisfaz e n~ao
satisfaz ao mesmo temo a propriedade P .
3. Qualquer formula e consequ^encia logica da formula 8x:, isto e 8x: j= , pois
se o par hD i e um modelo de 8x:, ent~ao como a variavel x n~ao e livre, o valor
atribuido por a x e irrelevante. Portanto, sera verdeira para essa interpretac~ao
e qualquer um dos 0 s que seja igual a exceto, eventualmente, no valor atribuido
a x. Logo, o par hD i e um modelo para .
Deni
c~ao 5.5.13 Seja LP uma linguagem de 1a ordem. A logica de predicados
classica ou logica de 1a ordem associada a LP , denotada por LogLPP 1, e o subconjunto
de todas as formulas universalmente validas de LP . Isto e,
LogP = f 2 LP = j= g:
E claro que em todas as tautologia de LP , se substituirmos as variaveis proposicionais
por formulas de LP obteremos sempre uma formula universalmente valida. Chamamos
estas formulas de 1a ordem que podem ser obtidas a partir de uma tautologia de formulas
tautologicas ou inst^ancias de uma tautologia. No entanto, a reciproca e falsa, isto
e, existem, como veremos mais adiante, formulas universalmente validas que n~ao s~ao
tautologicas. Assim, o conceito de formula valida e uma extens~ao do conceito de tautologia
em logica proposicional, e portanto, podemos dizer que a logica de predicados associada
a uma linguagem de 1a ordem LP contem propriamente a logica proposicional.
Como os analogos teorema da deduca~o e o teorema da compacidade valem tambem
para a logica de predicados, ent~ao, analogamente a logica proposicional, a logica de predicados LogP pode ser vista como um \aparato dedutivo", ou seja um ambiente onde
possamos realizar deduc~oes logicas do tipo: \podemos deduzir a partir das hipoteses
;" que em notac~ao logica seria ; j= .
1 Quando a linguagem LP estiver claro do contexto omitiremos este su
xo, isto e, simplesmente usaremos a notac~ao LogP para a logica de predicados classicas sobre LP .
5.5. VERDADE
109
Como podemos demonstrar que 1 : : : n j= ? Mostrando que todos os modelos
de 1 : : : n, tambem s~ao modelos de . Isto e impossvel porque devemos analizar
innitos modelos. Uma alternativa, talvez, fosse demonstrar que 1 : : : n j= se e
somente se j= (1 ! (2 ! : : : n ! )) : : : ). Ou seja que certa formula (no caso
(1 ! (2 ! : : : n ! )) : : : )) e universalmente valida. Mas isso e tambem
impossvel, pois teramos de mostrar que e verdadeira para todas as interpretaco~es (as
quais s~ao innitas) e todas as atribuico~es. Isso signica que e impossvel determinar a
logica de predicados atraves de interpretaco~es ou modelos. A unica alternativa e atraves
de sistemas formais.
A seguir, algumas observac~oes sobre o conceito de universalmente valida as quais s~ao
obvias, mas algo dicultosas de demonstrar que s~ao corretas.
Observac~oes
1. Seja uma fbf cujas variaveis livres s~ao x1 : : : xn. Ent~ao:
(a) e universalmente valida se, e somente se, seu fecho universal 8x1 : : : : :8xn :
e universalmente valida. Onde fecho universal de e a fbf obtida de por
prexar com quanticadores universais ligando cada variavel livre de .
(b) e insatisfatvel se, e somente se, seu fecho existencial 9x1 : : : : :8xn : e insatisfatvel. Onde fecho existencial de e a fbf obtida de por prexar com
quanticadores existenciais ligando cada variavel livre de .
2. Se n~ao contem nenhuma ocorr^encia livre de x, ent~ao 8x:( ! ) ! ( ! 8x: )
e universalmente valida.
3. Se t e livre para x em , ent~ao 8x: ! t=x] e universalmente valida.
110
^
CAPITULO 5. LOGICA
DE PREDICADOS: LINGUAGEM E SEMANTICA
5.6 Exerccios
1. Determine se cada uma das variaveis x, y e z s~ao livres, ligadas ou ambas em cada
uma das formulas
(a)
(b)
(c)
(d)
8x:P (f (x) y z ) ! :P (z x y )
8z:P (g (z ) a y ) ^ 8y::Q(x y )
8x:P (x y z ) ^ 8y:(Q(x y ) ^ P (x a z ))
8y:(P (y a z ) ! 8z:(Q(x z ) ^ P (x a z )))
2. Determine se ou n~ao cada um dos termos: h(x y) e g(a f (y z)) e livre para cada
uma das variaveis x y z em cada uma das seguintes formulas:
(a) 8z:P (z y a) ^ 8x:Q(g(z x))
(b) 8x:P (f (x z) y) ! :P (f (x a) z)
(c) P (f (x z) x) ! 8z::P (f (y a) z)
3. Diga e justique para que variaveis o termo f (b g(y z)) e livre em
:(8x:(P (x y ) ! 9y:R(y z )) _ (P (z x) ! 9x1 :P (y x1)))
4. Determine se cada uma das seguintes formulas e verdadeira, falsa ou contingente na
interpretac~ao:
Domnio: Conjuntos dos numeros inteiros Z
Interpretac~ao de P : PZ Z Z onde PZ = f(x y ) 2 Z Z = x y g. Assim,
PZ(n m) se, e somente n m.
(a)
(b)
(c)
(d)
(e)
(f)
(g)
8x:9y:P (x y ) ! 9y:8x:P (x y )
8x:8y:P (x y ) ! 8y:8x:P (x y )
9x:8y:P (x y )
8y:9x:P (x y )
P (x y) ! 8x:8y:P (x y)
9y:8x:(P (x x) ! P (y x))
8x:9y:(P (x y ) ! P (y x))
5. Indique quais das seguintes noc~oes se aplica a cada uma das fbf's listadas abaixo.
(a) universalmente valida.
(b) verdadeira em alguma interpretac~ao, mas n~ao universalmente valida.
5.6. EXERCICIOS
111
(c) satisfatvel (verdadeira numa interpretac~ao e para uma atribuic~ao), porem n~ao
verdadeira em alguma (eventualmente outra) interpretac~ao.
(d) falsa em alguma interpretaca~o, mas n~ao insatisfatvel.
(e) insatisfatvel.
i. 8x:P (z x) _ Q(x y) ! (8x:P (z x) _ 8x:Q(x x))
ii. 8x:8y:P (x y) ! 8x:8y:P (y x)
iii. P (y x) ! P (x y)
iv. P (f (x)) ! P (x)
v. ^ :9x:
vi. 8x:(P (x) ! P (f (x)))
vii. 8x:9y:(P (x y) ^ P (y x))
viii. 8x:P (x) ^ :9y:P (y).
6.
7. De uma interpretac~ao que torne a seguinte formula falsa
:(8x:P (x y ) ^ 9y:P (y z ))
8. D^e exemplos de fbf's para cada conjunto de condic~oes relacionados a seguir. Justique sua resposta.
(a)
(b)
(c)
(d)
(e)
(f)
(g)
verdadeira em uma interpretaca~o, mas n~ao universalmente valida.
nem verdadeira nem falsa para uma dada interpretaca~o.
satisfatvel e n~ao universalmente valida.
verdadeira em alguma interpretac~ao e falsa em outra interpretac~ao .
falsa em uma interpretac~ao, mas n~ao contraditoria.
universalmente valida.
contraditoria.
9. Sejam 1, 2 e 3 as seguintes formulas:
1) 8x:(P (x y) _ :P (x a)
2) 8y:P (f (x) y)
3) P (f (a) a)
Diga e justique quais das seguintes alternativas e correta:
(a) 1 j= 2
112
^
CAPITULO 5. LOGICA
DE PREDICADOS: LINGUAGEM E SEMANTICA
(b)
(c)
(d)
(e)
(f)
(g)
(h)
(i)
(j)
(k)
(l)
(m)
(n)
1 j= 3
2 j= 3
2 j= 1
3 j= 1
3 j= 2
1 2 j= 3
1 3 j= 2
2 3 j= 1
1 j= 2 ! 3
1 _ 2 j= 3
1 ^ 2 6j= 3
3 6j= 1 ^ 2
:1 :2 6j= :3
10. Demonstre que
(a)
(b)
(c)
(d)
Se ; j= e ; &, ent~ao & j= Se ; j= e j= ent~ao ; j= Se para cada 2 &, ; j= e & j= ent~ao ; j= Se ; j= ent~ao ; 6j= :
Captulo 6
A Teoria Formal da Logica de
Predicados
Um dos interesses na apresentac~ao axiomatica de logicas elementares e a economia que
pode ser conseguida nas regras e axiomas, isto e, quais axiomas e regras s~ao usados para
descrever a teoria formal requerida. Isto, combinado com uma estrutura de provas muito
simples e direta do sistema, pode ser de consideravel ajuda na investigac~ao do que pode
e n~ao pode ser provado no sistema. Mas economia pode ir muito longe, e em alguns casos
pode ser muito difcil manipular tal sistema. Assim, teremos como compromiso procurar
por economia quando for relativamente simples, mas n~ao ao custo de perda da legibilidade.
Podemos economizar na linguagem, por considerar somente os smbolos logicos :, ! e 8.
6.1 Teoria Formal do Calculo de Predicados
Como toda tautologia e logicamente valida na logica de predicados, ent~ao e razoavel que
todos os teoremas do calculo proposicional (que pelo teorema da completude s~ao todas as
tautologias) sejam teoremas do calculo de predicados. Assim, todos os axiomas e regras
do calculo proposicional devem fazer parte dos axiomas e regras do calculo de predicados.
Mas, a estes axiomas e regras devemos adicionar alguns que re)itam as caractersticas
proprias do quanticador universal. Por exemplo, uma das mais obvias propriedades e
que se algo e valido para todo elemento de um domnio em discurso, ent~ao o mesmo e
valido para um elemento especco, o qual e re)etido pelo axioma
8x:(x) ! t=x], onde t e livre para x em .
Mas isto n~ao e suciente, devemos adicionar mais um axioma e uma regra de infer^encia.
Assim, o sistema de provas ou teoria formal para o calculo de predicados, T P =
hL ' <i, e dado por uma linguagem formal de 1a ordem e pelos seguintes conjuntos de
axiomas e regras de infer^encias.
113
114
CAPITULO 6. A TEORIA FORMAL DA LOGICA
DE PREDICADOS
6.1.1 Linguagem Formal:
Analogamente como zemos para o caso proposicional, a linguagem formal de 1a ordem considerada aqui, n~ao considerara todos os conectivos logicos nem todos os quanticadores. De fato so consideraremos o subconjunto f: ! 8g de l . Assim, a linguagem
formal da teoria formal de primeira ordem, e LP!8 = h ; f_ ^ $ 9g F1 F2 F5 F8 i,
onde e um alfabeto de 1a ordem como denido no captulo anterior. A linguagem
gerada por esta linguagem formal sera denotada por LP !8.
Axiomas:
(A1) ! ( ! )
(A2) ( ! ( ! )) ! (( ! ) ! ( ! ))
(A3) (: ! : ) ! ((: ! ) ! )
(A4) 8x:( ! ) ! ( ! 8x: ), onde x n~ao e livre em (A5) 8x: ! t=x], onde t e livre para x em .
Regras de Infer^encias:
Modus Ponens:
Generaliza
c~ao Universal:
MP :
! Gen :
8x:
Observa
c~oes:
1. As denic~oes de axiomas, prova, teorema e consequ^encia, denidas de modo geral
para qualquer teoria formal, assim como as observac~oes 1-6 da seca~o 3.1, valem para
a teoria formal de 1a ordem aqui descrita. Portanto, a notac~ao ; ` signica que
temos uma prova de nas hipotese de ;. No caso particular de ; = , ` , denota
que e um teorema da logica de predicados.
2. A logica apresentada pela teoria formal T P e denotada por T (T P ). Isto e, T (T P ) e
o conjunto de todos os teoremas da teoria formal T P :
T (T P ) = f 2 LP ! 8 = ` g
6.1. TEORIA FORMAL DO CALCULO
DE PREDICADOS
115
3. O axioma A5 e uma formalizac~ao de que se uma lei vale para todos, ent~ao, em
particular, vale para um indivduo escolhido aleatoriamente.
4. A regra Gen tem a seguinte explicac~ao: Suponha que armamos a formula cos2x +
sen2 x = 1, digamos para x 2 R . O que, de fato, estamos dizendo e: 8x:(cos2 x +
sen2 x = 1).
5. Teoremas envolvendo o quanticador existencial podem ser provadas usando a equival^encia:
9x: :8x:::
Por exemplo, para provar a formula universalmente valida 8x: ! 9x:, se deve
provar a formula 8x: ! :8x::.
Exemplo 6.1.1 Seja o argumento \Todos os homens s~ao mortais. Socrates e homem.
Logo Socrates e mortal". Podemos provar este argumento usando a teoria formal de
primeira ordem T P . O primeiro passo e p^or o argumento como uma sentenca da linguagem
de 1a ordem LP !8. Uma forma razoavel seri usar smbolos de predicados mnem^onicos,
como H e M para denotar \e homem" e \e mortal" respectivamente. Assim, com estas
considerac~oes , o argumento e descrito atraves da sentenca:
8x:(H (x) ! M (x)) H (s) ` M (s)
Uma prova para este argumento e a seguinte:
1)
2)
3)
4)
5)
8x:(H (x) ! M (x))
8x:(H (x) ! M (x)) ! (H (s) ! M (s))
H (s) ! M (s)
H (s)
M (s)
hipotese
inst^ancia de A5
MP 1,2
hipotese
MP 4,3
E de se esperar que adicionando dois novos axiomas e uma regra de infer^encia o numero
de teoremas em T P n~ao diminua com respeito aos teoremas de TP . De fato podemos provar
o seguinte resultado.
Proposi
c~ao 6.1.2 Toda formula 2 LP !8 que e uma inst^ancia de uma tautologia (tautologica) e um teorema de T P e pode ser provado usando-se somente os axiomas A1 ; A3
e a regra MP.
116
CAPITULO 6. A TEORIA FORMAL DA LOGICA
DE PREDICADOS
Demonstraca~o: Se resulta de uma tautologia por substituica~o dos smbolos proposi-
cionais em por formulas at^omicas em , ent~ao pelo teorema da completude da logica
proposicional, tem uma prova em TP . Seja 1 : : : n uma prova de em TP . Substituimos em cada i as variaveis proposicionais pelas formulas at^omicas em LP !8, da mesma
maneira como realizado para obter de . Todo smbolo proposicional na prova que n~ao
ocorre em e substituido por uma formula at^omica arbitraria de LP !8. A sequ^encia de
formulas resultantes e uma prova de a qual usa somente os axiomas A1 ; A3 e a regra
de infer^encia MP.
Portanto, tudo que pode ser provado em TP , tambem, pode ser provado em T P . No
que segue estabeleceremos que LP e consistente. Ou seja, T (T P ) e uma extens~ao de
T (TP ), mas n~ao sucientemente grande para conter uma formula e sua negaca~o, :.
Para provar esse resultado introduziremos uma funca~o que transforma uma formula de
LP numa proposic~ao.
Deni
c~ao 6.1.3 Seja L = h Gi uma linguagem formal de 1a ordem e L0 uma lin-
guagem proposicional cujos smbolos proposicionais s~ao R . Ent~ao a func~ao ' : Ling (L) ;!
Ling(L0) denida por
'(P (t1 : : : tn)) = P para cada P 2 R
'(:) = :'()
'( ^ ) = '() ^ '( )
'( _ ) = '() _ '( )
'( ! ) = '() ! '( )
'( $ ) = '() $
varphi( )
'(8x:) = '()
'(9x:) = '()
e denominada de fun
c~ao de transforma
c~ao de formulas em proposi
c~oes, pois
ela transforma uma formula numa proposic~ao, simplesmente extraindo de os quanticadores e termos.
Note que se 2 LP !8 ent~ao '() 2 LP !.
Exemplo 6.1.4 Seja a formula :8x:P (x y) ! R(z) e ' a func~ao de transformac~ao
de formulas em proposico~es. Ent~ao
'() = '(:8x:P (x y) ! R(z)) = :P ! R:
Assim '() e uma formula proposicional com os smbolos de predicados de como
smbolos proposicionais.
~
6.2. TEOREMA DA DEDUCAO
117
Proposi
c~ao 6.1.5 Se e um teorema em T P , ent~ao '() e uma tautologia.
Demonstraca~o: Para mostrar que '() e uma tautologia cada vez que e um teorema,
devemos mostrar que '() e uma tautologia para cada axioma , e que as regras de
infer^encia transformam formulas cujas imagens sob ' s~ao tautologias em formulas cujas
imagens sob ' s~ao tautologias.
Por denica~o, '(:) = :('()) e '( ! ) = '() ! '( ). Para cada axioma (A1 A5), '() e uma tautologia. Para A1 a A3 , isto e imediato, pois eles s~ao livres
de quanticadores e termos.
A4: Uma inst^ancia do axioma 8x:( ! ) ! ( ! 8x: ) sera transformada pelo ' na
tautologia ( ! ) ! ( ! ).
A5: Uma inst^ancia de 8x: ! t=x] sera transformada pelo ' na tautologia ! .
O passo seguinte e checar as regras de infer^encias. Se '() e '( ! ) (ou '() !
'( )) s~ao tautologias, ent~ao pela denic~ao de !, tambem e '( ) e se '() e uma tautologia, ent~ao '(8x:), que pela denica~o de ' e '(), tambem e uma tautologia.
Portanto '() e uma tautologia para qualquer teorema de T P .
Agora podemos provar o esperado resultado de consist^encia de T (T P ).
Teorema 6.1.6 O Calculo de Predicados e consistente.
Demonstraca~o: Se existe uma formula 2 LP !8 tal que ` e ` : em T P , ent~ao,
pela proposic~ao 6.1.5, ambos '() e '(:) (ou :'()) devem ser tautologias, o qual e
impossvel. Portanto T (T P ) e consistente.
6.2 Teorema da Deduc~ao
Na logica proposicional o teorema da deduc~ao foi uma ferramenta poderosa para auxiliar
na prova de teoremas. O teorema da deduc~ao para a logica de predicados e tambem de
muita utilidade, porem devemos tomar certos cuidados com alguns problemas sutis, tais
como:
Para qualquer formula , usando a regra de infer^encia Gen deduzimos 8x:, e portanto
provamos ` 8x:. O \teorema da deduca~o" nos permitiria concluir que ` ! 8x:,
mas esta formula, como mostra o ultimo item do exemplo 5.5.11, n~ao e universalmente
valida.
118
CAPITULO 6. A TEORIA FORMAL DA LOGICA
DE PREDICADOS
O problema resulta no uso do \teorema da deduc~ao" descartando uma hipotese para
inclu-la como antecedente de uma implicac~ao. So poderamos fazer isto se n~ao tivessemos
aplicado Gen a hipotese (que esta sendo incluida como antecendente da implicaca~o) ou a
qualquer outra formula que dependa dela e que seja relevante na deduc~ao da conclus~ao.
Para esclarecer esta condic~ao, precisamente, introduziremos o conceito \depende de".
Deni
c~ao 6.2.1 Seja uma fbf no conjunto ; de fbf's e seja 1 n uma deduca~o
de n a partir de ;, junto com uma justicativa para cada passo da deduc~ao. Dizemos
que i , com i = 1 : : : n, depende de nesta prova se:
1. i e e a justicativa de i na prova e que pertence a ;, ou
2. i e justicado como consequ^encia direta do MP ou Gen de algumas das fbf's anteriores, onde ao menos uma destas fbf's dependa de .
Exemplo 6.2.2 Seja a seguinte deduc~ao de 8x: ! ` 8x: .
1 :
2 :
3 :
4 :
5 :
8x:
8x: ! 8x:
hipotese
Gen 1
hipotese
MP 2 3
Gen 4
1 depende de .
2 depende de .
3 depende de 8x: ! .
4 depende de e de 8x: ! .
5 depende de e de 8x: ! O seguinte lema declara que se uma conclus~ao n~ao depende de uma hipotese, ent~ao
podemos realizar a prova sem precisar desta hipotese. Portanto, podemos omiti-la da
deduc~ao.
Lema 6.2.3 Se n~ao depende de numa deduc~ao de ; ` , ent~ao ; ` .
Demonstraca~o: Seja 1 n = uma prova de a partir de ; e , na qual n~ao
depende de . Provaremos por induca~o sobre n, o numero de passos na prova, que ; ` i,
para todo i, com 1 i n, que n~ao depende de . Assim, no caso de i = n, ; ` , pois
n~ao depende de .
~
6.2. TEOREMA DA DEDUCAO
119
Caso base: i = 1.
Se 1 n~ao depende de , ent~ao ou 1 e um axioma ou 1 2 ;. Logo, ; ` 1.
Etapa indutiva: Assuma que ; ` i, para cada 1 i < k tal que i n~ao depende de mostre que ; ` k se k n~ao depende de .
Se k pertence a ; ou e um axioma, ent~ao ; ` k . Se e consequ^encia direta de uma
ou duas fbf's anteriores, ent~ao, por k n~ao depender de , estas formulas tambem n~ao
dependem de . Logo, pela hipotese indutiva, estas fbf's s~ao dedutveis de ;. Portanto,
k tambem e dedutvel a partir de ;.
Teorema 6.2.4 (Teorema da Dedu
c~ao para T P ) Se existe uma prova de ; ` ,
tal que toda aplicac~ao de Gen a uma fbf que depende de tem como variavel quanticada
uma variavel n~ao livre de . Ent~ao existe uma prova de ; ` ! .
Demonstraca~o: Seja 1 n = uma prova de a partir de ; tal que satisfaz
a condic~ao do teorema. Mostraremos por induc~ao, sobre i, que ; ` ! i para cada
i n.
Caso base: i = 1.
1. 1 e um axioma ou pertence a ;.
1 : 1
algum dos axiomas ou uma hipoteses)
2 : 1 ! ( ! 1) A1
3 : ! 1
MP 1 2
Logo, 1 2 3 e uma prova de ; ` ! 1
2. 1 e .
1 : ! 1 proposic~ao 3:2:1
Logo, 1 e uma prova de ; ` ! 1
Etapa indutiva: Assuma que ; ` ! i para cada i < k mostre que ; ` ! k .
1. Se k e um axioma ou um elemento de ;, o resultado segue como no caso 1., acima.
2. Se k e , o resultado segue como no caso 2., acima.
3. Se k sai por MP de i e j = i ! k com i j < k, ent~ao pela hipoteses indutiva
; ` ! i e ; ` ! j . Sejam i1 : : : in e j1 : : : jn provas de ; ` ! i
e ; ` ! j , respectivamente. A sequ^encia
120
CAPITULO 6. A TEORIA FORMAL DA LOGICA
DE PREDICADOS
1 :
i1
...
...
n:
in
onde alphain = i
n+1 : j1
...
...
n+m : jm
onde jm = j
n+m+1 : ( ! (i ! k )) ! (( ! i) ! ( ! k )) A2
n+m+2 : ( ! i) ! ( ! k )
MP n+m n+m+1
n+m+3 : ! k
MP n n+m+2
e uma prova de ; ` ! k .
4. Se k sai por Gen de um i, i < k, ent~ao k = 8x:i . Pela hipotese indutiva
; ` ! i. Neste caso teremos duas possibilidades:
(a) Se i n~ao depende de , na deduca~o de a partir de ; e , ent~ao pelo lema
6.2.3 aplicado a hipoteses indutiva temos que ; ` i . Seja i1 : : : in uma
prova de ; ` i . Ent~ao a sequ^encia
1: i1
...
...
n: in
onde in = i
n+1: 8x:i
Gen( onde 8x:i = k )
n+2: k ! ( ! k ) A1
n+3: ! k
MP n+1 n+2
e uma prova de ; ` ! k .
(b) Se i n~ao depende de , na deduc~ao de a partir de ; e , ent~ao, pelas
condic~oes do enunciado deste teorema, x n~ao e livre em . Seja i1 : : : in
uma prova de ; ` ! i. Logo, a sequ^encia
1: i1
...
...
n: in
onde in = ! i
n+1: 8x:( ! i)
Genin
n+2: 8x:( ! i) ! ( ! 8x:i ) A5
n+3: ! 8x:i
MP n+1 n+2
e uma prova de ; ` ! k .
Assim, ; ` ! i para cada 1 i n. O teorema resulta do caso i = n.
As hipoteses (restric~oes) do teorema da deduc~ao para T P s~ao pouco claras. Os
seguintes corolarios tornam o teorema mais transparente, e portanto mais util.
Corolario 6.2.5 Se uma prova de ; ` n~ao envolve nenhuma aplicac~ao de Gen na
qual a variavel quanticada e livre em , ent~ao ; ` ! .
~
6.2. TEOREMA DA DEDUCAO
121
Corolario 6.2.6 Se e fechado, isto e n~ao contem variaveis livres, e ; ` , ent~ao
; ` ! .
A seguinte sequ^encia de perguntas podem ser respondidas ao momento de checar se
uma prova de uma deduc~ao ; ` satisfaz ou n~ao as restrico~es do teorema da deduc~ao.
1.
2.
3.
4.
tem alguma variavel livre?
Gen foi utilizado na prova?
Algumas das variaveis introduzidas pelo Gen e livre em ?
Algumas das fbf's na qual se aplicou Gen introduzindo variaveis livres de depende
de ?
As perguntas devem ser respondidas na mesma ordem em que aparecem (em particular
a quest~ao 4 pressup~oe que as perguntas 1 ate 3 foram respondidas armativamente). Se
algumas das perguntas receber uma resposta \n~ao", ent~ao podemos concluir que existe
uma prova de ; ` ! . Caso contrario, ou seja todas as perguntas tenham respostas
\sim", essa prova em particular n~ao nos autoriza a \aplicar" o teorema da deduca~o 1 e
portanto n~ao podemos armar que existe uma prova para ; ` ! .
Exemplo 6.2.7 Seja a seguinte prova de P (x z) :8y:R(y z) ! :8x:P (x y) ` R(a f (a))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
P (x z)
:8y:R(y z ) ! :8x:P (x y )
(:8y:R(y z) ! :8x:P (x y)) ! (8x:P (x y) ! 8y:R(y z))
8x:P (x y ) ! 8y:R(y z )
8z:P (x z )
8z:P (x z ) ! P (x y )
P (x y)
8x:P (x y )
8y:R(y z )
8y:R(y z ) ! R(a z )
R(a z)
8z:R(a z )
8z:R(a z ) ! R(a f (a))
R(a f (a))
Hip:
Hip:
prop:3:3:4:d
MP 2 3
Gen 1
A5
MP 5 6
Gen 7
MP 8 4
A5
MP 9 10
Gen 11
A5
MP 12 13
Observe que um (meta)teorema da forma \Se ent~ao " sempre se aplica, so que quando e falso,
n~ao podemos concluir nada de . Assim, a express~ao \n~ao e possvel aplicar o teorema da deduc~ao"
n~ao e correta, mas nos a usaremos com a interpretac~ao que as premissas do teorema da deduc~ao n~ao
s~ao satisfeitas. Analogamente, a express~ao \ e possvel aplicar o teorema da deduc~ao" sera usada para
indicar que as premissas do teorema da deduc~ao foram satisfeitas.
1
122
CAPITULO 6. A TEORIA FORMAL DA LOGICA
DE PREDICADOS
Como, tanto a hipoteses P (x z ) quanto :8y:R(y z ) ! :8x:P (x y) t^em variaveis
livres. Gen foi usado na prova. A variavel z introduzida pelo Gen em 7 e livre em ambas
hipotese. E como 7 depende de P (x z) e 12 (onde foi aplicado Gen introduzindo a
variavel z) depende de :8y:R(y z) ! :8x:P (x y), n~ao podemos garantir que exista uma
prova para
P (x z) ` ((:8y:R(y z) ! :8x:P (x y)) ! R(a f (a)))
nem para
(:8y:R(y z) ! :8x:P (x y)) ` P (x z) ! R(a f (a)):
Exemplo 6.2.8 Seja a seguinte prova de 8x:P (x z) ` (:8y:P (y a) ! :8x:P (x a)) !
P (a z)
1:
2:
3:
4:
5:
forallx:P (x z)
8x:P (x z ) ! ((:8y:P (y a) ! :8x:P (x a)) ! 8x:P (x z ))
(:8y:P (y a) ! :8x:P (x a)) ! 8x:P (x z)
8x:P (x z ) ! P (a z )
(:8y:P (y a) ! :8x:P (x a)) ! P (a z)
hip:
A1
MP 1 2
A5
proposic~ao 3.3.3.i 3 4
Como, Gen n~ao foi usado na prova ent~ao o teorema da deduc~ao garante a exist^encia
de uma prova para
` 8x:P (x z ) ! ((:8y:P (y a) ! :8x:P (x a)) ! P (a z ))
Observe que na prova do teorema da deduc~ao para T P , i depende de uma premissa de ; na prova original de ; ` i se, e somente se, ! i depende de na nova prova
de ; ` ! i . Esta observac~ao e util quando desejamos aplicar o teorema da deduc~ao
diversas vezes consecutivas (por exemplo, para obter ; ` ! ( ! ) de ; ` ).
Exemplo 6.2.9 Para provar que 8x:( ! ) ! (8x: ! 8x: ) e um teorema de T (T P ),
primeiro provamos que
8x:( ! ) 8x: ` 8x:
para depois argumentar que, pelo teorema de deduc~ao, existe uma prova de 8x:( ! ) !
(8x: ! 8x: ).
Seja a seguinte prova de 8x:( ! ) 8x: ` 8x: :
~
6.2. TEOREMA DA DEDUCAO
1:
2:
3:
4:
5:
6:
7:
8:
8x:
8x:( ! )
8x:( ! ) ! ( ! )
!
8x: ! 8x:
123
hip.
hip.
A5
MP 2 3
A5
MP 1 5
MP 6 4
Gen 7
Como a unica generalizaca~o realizada na prova introduz a variavel x, a qual n~ao e
livre em 8x:, podemos aplicar o teorema da deduc~ao e concluir que existe uma prova
para 8x:( ! ) ` 8x: ! 8x: .
Observe que o teorema da deduc~ao so garante que existe uma prova para 8x:( ! ) `
8x: ! 8x: , mas n~ao proporciona efetivamente essa prova. Logo pode car a seguinte
pergunta: Como saber se e possvel ou n~ao aplicar novamente o teorema da deduc~ao se
n~ao possuimos nenhuma prova concreta de 8x:( ! ) ` 8x: ! 8x: ?
Ou seja, n~ao temos nenhuma prova tangvel sob a qual possamos analizar e descobrir
se essa prova satisfaz ou n~ao as restric~oes impostas pelo teorema da deduc~ao para seu uso.
Mas, embora a resposta a pergunta seja aparentemente: \n~ao podemos saber", a resposta e que, baseados na demonstrac~ao do teorema da deduc~ao para a logica de 1a ordem
(teorema 6.2.4), sabemos que uma prova de 8x:( ! ) ` 8x: ! 8x: , pode ser obtida
substituindo cada i na prova de 8x:( ! ) 8x: ` 8x: por uma serie de formulas de
acordo com o tratamento indutivo da demonstrac~ao do teorema da deduc~ao. Assim, por
exemplo neste caso, obteriamos a seguinte prova de 8x:( ! ) ` 8x: ! 8x: :
124
1:a
2:a
2:b
2:c
3:a
3:b
3:c
4:a
4:b
4:c
5:a
5:b
5:c
6:a
6:b
6:c
7:a
7:b
7:c
8:a
8:b
8:c
CAPITULO 6. A TEORIA FORMAL DA LOGICA
DE PREDICADOS
8x: ! 8x:
8x:( ! )
8x:( ! ) ! (8x: ! 8x:( ! ))
8x: ! 8x:( ! )
8x:( ! ) ! ( ! )
(8x:( ! ) ! ( ! )) ! (8x: ! (8x:( ! ) ! ( ! )))
8x: ! (8x:( ! ) ! ( ! ))
(8x: ! (8x:( ! ) ! ( ! ))) ! ((8x: ! 8x:( ! )) ! (8x: ! ( ! )))
((8x: ! 8x:( ! )) ! (8x: ! ( ! )))
8x: ! ( ! )
8x: ! (8x: ! ) ! (8x: ! (8x: ! ))
8x: ! (8x: ! )
(8x: ! (8x: ! )) ! ((8x: ! 8x:) ! (8x: ! ))
(8x: ! 8x:) ! (8x: ! )
8x: ! (8x: ! ( ! )) ! ((8x: ! ) ! (8x: ! ))
(8x: ! ) ! (8x: ! )
8x: ! 8x:(8x: ! ) ! (8x: ! 8x: )
8x:(8x: ! )
8x: ! 8x:
prop.3.2.1.
hip.
A1
MP 2:a 2:b
A5
A1
MP 3:a 3:b
A2
sfMP 3:c 4:a
MP 2:c 4:b
A5
A1
MP 5:a 5:b
A2
MP 5:c 6:a
MP 1:a 6:b
A2
MP 4:c 7:a
MP 6:c 7:a
A5
Gen 7:c
MP 8:b 8:a
Logo, podemos analisar esta prova e vericar se realmente satisfaz as restric~oes do
teorema da deduc~ao. No entanto, ca evidente que seria um trabalho intrincado e tedioso
construir uma prova de este forma. Felizmente, se zermos uma analises mais minuciosa
da prova assim obtida, vericaremos que esta prova tem as mesmas propriedades que a
original: so foi usada uma generalizac~ao, a qual depende de uma formula 7.c, a formula
7.c depende das formulas 6.c e 7.a (este e um axioma), a 6.c depende da 1.a e 6.b. e 1.a
e a formula correspondente a hipotese 8x: (1) na prova original.
Assim, para saber se podemos aplicar o teorema da deduc~ao baseados na prova construida anteriormente, basta analisar a prova original. Logo, usando o mesmo criterio da
primeira analises, podemos armar que e possvel aplicar novamente o teorema da deduca~o
e concluir, desse modo, que a existe uma prova para ` 8x:( ! ) ! (8x: ! 8x: )
como desejado.
Generalizando o resultado do exemplo anterior, podemos dizer que se 1 : : : n e uma
prova de 1 : : : k ` tal que nos permite concluir, pelo teorema da deduc~ao, que existe
uma prova de 1 : : : k;1 ` k ! , ent~ao para saber se e possvel aplicar novamente
o teorema da deduc~ao e assim concluir a exist^encia de uma prova para 1 : : : k;2 `
k;1 ! (k ! ), basta analisar a prova 1 : : : n. Obviamente, se queremos vericar
se novamente podemos aplicar o teorema da deduca~o e concluir a exist^encia de uma prova
para 1 : : : k;3 ` k;2 ! (k;1 ! (k ! )) basta vericar na prova 1 : : : n. E
assim por diante. Portanto, se 1 : : : n e uma prova de 1 : : : k ` e queremos saber
se existe uma prova de ` 1 ! (2 ! : : : (k ! ) : : : ), ent~ao devemos somente vericar
~
6.2. TEOREMA DA DEDUCAO
125
se o teorema da deduca~o se aplica na prova 1 : : : n para 1, para 2 : : : para k ,
separadamente.
Vejamos alguns resultados que ser~ao uteis para provar teoremas em T P .
Proposi
c~ao 6.2.10 a) ` 8x:8y: ! 8y:8x:
b) ` 8x: ! :8x::
c) ` :8x::8y: ! 8y::8x::
d) ` 8x:: ! :8x:
Demonstraca~o:
a) ` 8x:8y: ! 8y:8x:
1 : 8x:8y:
hip:
2 : 8x:8y: ! 8y: A5
3 : 8y:
MP 1 2
4 : 8y: ! A5
5 : MP 3 4
6 : 8x:
Gen 5
7 : 8y:8x:
Gen 6
Logo, 1 : : : 7 e uma prova de 8x:8y: ` 8y:8x:. Fazendo as 4 perguntas temos
que a hipotese 8x:8y: pode ter variaveis livres, pois e uma meta variavel representando qualquer formula e uma dessas pode ser P (z) por exemplo. Generalizac~ao
foi usada na prova, mas as variaveis introudzidas por Gen (x e y) n~ao s~ao livres em
8x:8y: independente de quem seja . Logo, o teorema da deduc~ao, garante que
existe uma prova de ` 8x:8y: ! 8y:8x:.
b) ` 8x: ! :8x::
1 : 8x:
hip:
2 : (::8x:: ! :) ! ((::8x:: ! ) ! :8x::) A3
3 : ::8x:: ! 8x::
proposic~ao 3.3.4.a
4 : 8x:: ! :
A5
5 : ::8x:: ! :
proposic~ao 3.3.3.i 3 4
6 : (::8x:: ! ) ! :8x::
MP 5 2
7 : 8x: ! A5
8 : MP 1 7
9 : ! (::8x:: ! )
A1
10 : ::8x:: ! MP 8 9
11 : :8x::
MP 10 6
Logo, 1 : : : 11 e uma prova de 8x: ` :8x::. Como Gen n~ao foi usado na prova
ent~ao o teorema da deduc~ao nos garante que existe uma prova de ` 8x: ! :8x::.
CAPITULO 6. A TEORIA FORMAL DA LOGICA
DE PREDICADOS
126
c) ` :8x::8y: ! 8y::8x::
1 :
8y:8x:: ! 8x:8y::
esta proposica~o item a.
2 :
(8y:8x:: ! 8x:8y::) ! (:8x:8y:: ! :8y:8x::) proposica~o 3.3.4.e
3 :
:8x::8y: ! 8y::8x::
MP 1 2
d) ` 8x:: ! :8x:
1 : 8x: ! :8x::
esta proposica~o item b.
2 : (8x: ! :8x::) ! (8x:: ! :8x:) proposic~ao 3.3.4.f
3 : 8x:: ! :8x:
MP 1 2
Retornando ao teorema da deduc~ao, observe que o fato de termos uma prova que n~ao
satisfaca as premisas do teorema da deduc~ao, n~ao signica que n~ao possa ser achada uma
outra prova a qual sim as satisfaca.
Exemplo 6.2.11 Seja a seguinte prova de P (x) ` :8x::P (x)
1:
2:
3:
4:
P (x)
hip.
8x:P (x)
Gen 1
8x:P (x) ! :8x::P (x) proposic~ao 6.2.10.b
:8x::P (x)
MP 2 3
Como P (x) tem variaveis livres, Gen foi aplicado na prova (2 ), a variavel introduzida
em 2 (x) e livre em P (x) e 2 depende de P (x), ent~ao n~ao podemos aplicar o teorema
da deduc~ao.
Embora esta prova seja muito natural, ela n~ao e a unica. Seja a seguinte prova de
P (x) ` :8x::P (x)
1: 8x::P (x) ! :P (x)
A5
2: (8x::P (x) ! :P (x)) ! (P (x) ! :8x::P (x)) proposic~ao 3.3.4.e
3: P (x) ! :8x::P (x)
MP 1 2
4: P (x)
Hip.
5: :8x::P (x)
MP 4 3
Como Gen n~ao foi usado na prova, ent~ao e possvel aplicar o teorema da deduc~ao
e concluir que existe uma prova de ` P (x) ! :8x::P (x). Observe que poderiamos
ter provado este teorema diretamente, isto e, sem necessidade de apelar ao teorema da
deduc~ao. De fato 1 2 3, na prova acima, e uma prova de ` P (x) ! :8x::P (x).
6.3 Exerccios
1. Prove cada uma das seguintes fbf's na teoria formal T P :
(a) 8x:8y:8z: ! 8z:8y:8x:
6.3. EXERCICIOS
(b)
(c)
(d)
(e)
127
8x1 : 8xn : ! 8xn :8x1 : 8xn;1 :
:8x:8y:: ! :8y:8x::
8x:( ! ) ! (:8x:: ! :8x:: )
8x::( ! : ) ! :(8x: ! :8x: )
2. Prove as seguintes deduc~oes
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
(i)
(j)
(k)
` 8x:8y:P (x y ) ! 8x:8y:P (y x)
P (x) ` R(a) ! 8y:P (y)
P (x) ` (8x:P (x) ! 8y:P (y)) ! P (a)
P (x) ` (8x:P (x) ! 8y:R(y)) ! R(a)
8x:(P (x) ! R(x)) ` :8x::P (x) ! :8x::R(x)
R(a) ! 8x:P (x) ` 8x:(R(a) ! P (x))
8x:(P (x) ! R(a)) ` :8x::P (x) ! R(a)
:8x::P (x) ! R(a) ` 8x:(P (x) ! R(a))
:8x::8y:P (x y ) ` 8y::8x::P (x y )
:8x::(P (x) ! R(x)) ` 8x:P (x) ! :8x::R(x)
8x:P (x) ! :8x::R(x) ` :8x::(P (x) ! R(x))
3. Mostre que a inversa da proposic~ao 6.1.5 n~ao e verdadeira. Ou seja, se '() e uma
tautologia, ent~ao n~ao necessariamente e um teorema em LP.
4. Diga porqu^e n~ao podemos aplicar o teorema da deduca~o nas seguintes provas
(a)
(b)
(c)
1: 2: 8x:
3: 8x: ! ( ! 8x:)
4: ! 8x:
hip.
Gen 1
A1
MP 2 3
1: 8x:(P (y) ! Q(x y))
2: 8x:(P (y) ! Q(x y)) ! (P (y) ! 8x:Q(x y))
3: P (y) ! 8x:Q(x y)
4: 8y:(P (y) ! 8x:Q(x y))
5: 8y:(P (y) ! 8x:Q(x y)) ! (P (y) ! 8y:8x:Q(x y))
6: P (y) ! 8y:8x:Q(x y)
1: P (x)
2: 8x:P (x)
3: P (x) ! (Q(x) ! P (x))
4: Q(x) ! P (x)
hip.
Gen 1
A1
MP 1 3
hip.
A4
MP 1 2
Gen 3
A4
MP 4 5
CAPITULO 6. A TEORIA FORMAL DA LOGICA
DE PREDICADOS
128
Observa
c~ao: Esta ultima prova n~ao nos permite aplicar o teorema da de-
duc~ao, porem isto n~ao signica que o teorema da deduc~ao n~ao seja aplicavel
a P (x) ` Q(x) ! P (x). De fato se retiramos 2 :, da prova acima, podemos
aplicar o teorema da deduca~o.
5. Diga porqu^e podemos aplicar o teorema da deduca~o nas seguintes provas (use os 4
criterios usados nesta sec~ao ).
(a)
(b)
1: 2: 8x:( ! )
3: 8x:( ! ) ! ( ! )
4: ! 5: hip.
hip.
A5
MP 2 3
MP 1 4
1: P (x) ! 8y:Q(x y)
2: 8y:(P (x) ! 8y:Q(x y))
3: 8y:(P (x) ! 8y:Q(x y)) ! (P (x) ! 8y:8y:Q(x y))
4: P (x) ! 8y:8yQ(x y)
hip.
Gen 1
A4
MP 2 3
Captulo 7
Computac~ao na Logica de
Predicados
Neste captulo descreveremos o esquema de computac~ao para o calculo de predicados,
chamado resoluc~ao geral, este processo e essencialmente o mesmo que o descrito para o caso
proposicional, ou seja, para provar que uma formula e um teorema, primeiro negamos
a formula, em seguida transformamos : numa formula equivalente numa certa forma
normal, e depois aplicamos o princpio de eliminac~ao de literais complementares. So que,
no caso da logica de predicados, por ter uma linguagem mais complexa, a transformac~ao
a forma normal vai ser mais intrncada, pois antes de eliminar dois literais, as vezes,
teremos que unicar eles para tornar-los complementares. Por exemplo, os literais P (x)
e :P (a) n~ao poderiam ser eliminados diretamente, pois P (x) 6= P (a) e portanto n~ao s~ao
complementares. No entanto, como x pode tomar qualquer valor, inclussive o valor que
tome a constante a, podemos dizer que P (a) e uma inst^ancia de P (x). Agora sim, P (a)
e :P (a) s~ao complementares, e portanto podem ser eliminados. O processo de substituir
x por a para tornar complementares P (x) com :P (a) se chama de unicac~ao.
7.1 Resoluc~ao
Quando descrevemos o processo de computaca~o para o caso proposicional discutimos,
ent~ao, a resoluc~ao \basica". A qual era baseada em clausulas basicas mas n~ao dizemos
o porque do nome \basica" em essa denica~o de clausula. Uma express~ao ou clausula e
basica (ground em ingl^es) se ela n~ao contem variaveis.
Na logica proposicional so encontramos clausulas basicas, uma vez que a linguagem n~ao
contem variaveis. Resoluc~ao basica por si so n~ao e suciente para manusear a linguagem de
predicados, que e mais expressiva. Para LP usaremos uma forma mais geral de resoluc~ao,
que consiste de unicac~ao junto com eliminaca~o do literal complementar (ELC). Usaremos,
tambem, aqui, procedimentos de refutaca~o, que consiste em provar um teorema mostrando
que sua negac~ao e contraditoria.
129
130
~ NA LOGICA
CAPITULO 7. COMPUTACAO
DE PREDICADOS
Como introduziremos novos smbolos em LP, redeniremos algumas noco~es ja denidas
anteriormente, adicionando noc~oes novas.
1.
2.
3.
4.
5.
6.
termo :=constante j variavel j smbolo funcional\(" lista de termos \)"
lista de termos :=termoj termo\," lista de termos
formula at^omica :=smbolo de predicado\(" lista de termos\)"
literal :=formula at^omica j \:" formula at^omica
clausula :=\2" j literal j literal \_" clausula
sentenca :=fclausulag j clausula \^" sentenca
Deni
c~ao 7.1.1 Uma fbf de LP esta na forma clausal se ela e uma sentenca como
descrita na gramatica acima.
Da mesma forma que no caso proposicional, uma clausula sera vista desde duas oticas:
como uma disjunc~ao (\ou") de seus elementos (literais) e como um conjunto de literais. Analogamente, veremos uma sentenca como uma conjunc~ao (\e") de seus elementos
(clausulas) e como um conjunto de clausulas.
Observe a aus^encia de quanticadores na denica~o de forma clausal. Sabemos que
uma fbf de LP e provavel (isto e, existe uma prova para ela) se e somente se seu fecho
e provavel (pelo axioma A5 e por Gen). Vimos que uma fbf e universalmente valida se
e somente se seu fecho e universalmente valido. Assim, toda fbf na forma clausal esta
implicitamente fechada, pois consideraremos cada variavel como estando universalmente
quanticada sobre a clausula em que ela aparece.
Requeriremos que as fbf's que usaremos estejam na forma normal conjuntiva reduzida sem quanticadores. Mas antes de denir quando uma sentenca esta nesta
forma normal e como podemos transformar qualquer sentenca numa formula equivalente
na forma normal conjuntiva reduzida sem quanticadores, teremos que descrever alguns
passos intermediarios.
Uma fbf esta na forma normal prenex se cada variavel e quanticada, e todos os
quanticadores est~ao juntos precedendo uma sentenca livre de quanticadores.
Deni
c~ao 7.1.2 Uma formula esta na forma normal prenex se tem a seguinte forma
Q1x1 : Qnxn:
onde e uma formula livre de quanticadores, x1 : : : xn s~ao variaveis diferentes e para
cada 1 i n, Qi = 8 ou Qi = 9. Se todos os Qi s~ao quanticadores universais a
formula e chamada de universalmente fechada. Q1 x1 : Qn xn e chamado de prexo
da formula e de matriz.
~
7.1. RESOLUCAO
131
Toda fbf do calculo de predicado e equivalente a uma fbf na forma normal prenex
com as mesmas variaveis livres. Para p^or uma fbf na forma normal prenex, movemos
todos os quanticadores a esquerda dos conectivos logicos :, ^, _ e !. Se a formula
contiver algum conectivo $, ent~ao antes de proceder a este proceso, devemos eliminar
este concetivo da formula usando a reduca~o:
$ !! ( ! ) ^ ( ! )
Para mover cada quanticador a esquerda de cada tipo destes conectivos devemos usar
uma das reduc~oes descritas a seguir.
:9x:
:8x:
8x: ^ ^ 8x:
9x: ^ ^ 9x:
8x: _ _ 8x:
9x: _ _ 9x:
8x: ! ! 8x:
9x: ! ! 9x:
!!
!!
!!
!!
!!
!!
!!
!!
!!
!!
!!
!!
!!
!!
8x::
9x::
8y:(y=x] ^ )
8y:( ^ y=x])
9y:(y=x] ^ )
9y:( ^ y=x])
8y:(y=x] _ )
8y:( _ y=x])
9y:(y=x] _ )
9y:( _ y=x])
9y:(y=x] ! )
8y:( ! y=x])
8y:(y=x] ! )
9y:( ! y=x])
onde y e uma variavel nova.
Observe que a renomeac~ao de todas as variaveis e para se garantir que todas as variaveis
diferentes tenham distintos nomes. Se n~ao tivermos este cuidado, pode acontecer que a
formula resultante n~ao seja equivalente a original. Por exemplo, no caso da formula
8x:P (x) ^ R(a x), se aplicarmos a reduc~ao 8x: ^ !! 8y:(y=x] ^ ), obtemos a
formula 8y:(P (y) ^ R(a x)). Mas, sen~ao tivessemos realizado a renomeaca~o de variaveis,
teriamos obtido a formula 8x:(P (x) ^ R(a x)), onde a ocorr^encia da variavel x em R(a x),
que antes era livre, passaria a ser ligada, alterando completamente o sentido da formula
e portanto transformando a formula original numa formula n~ao equivalente.
Exemplo 7.1.3 Seja a formula :(:8x:8y:P (x y) _ 8y:8x:P (x y)). Uma sequ^encia de
reduc~oes para transformar esta formula numa formula na forma normal prenex equivalente
e a seguinte:
132
~ NA LOGICA
CAPITULO 7. COMPUTACAO
DE PREDICADOS
:(:8x:8y:P (x y ) _ 8y:8x:P (x y )) !! :(9x::8y:P (x y ) _ 8y:8x:P (x y ))
!! :(9x:9y::P (x y ) _ 8y:8x:P (x y ))
!! :9x1 :(9y::P (x1 y ) _ 8y:8x:P (x y ))
!! :9x1 :9y1 :(:P (x1 y1 ) _ 8y:8x:P (x y ))
!! :9x1 :9y1 :8y2 :(:P (x1 y1) _ 8x:P (x y2 ))
!! :9x1 :9y1 :8y2 :8x2 :(:P (x1 y1 ) _ P (x2 y2))
!! 8x1 ::9y1 :8y2 :8x2 :(:P (x1 y1 ) _ P (x2 y2))
!! 8x1 :8y1 ::8y2 :8x2 :(:P (x1 y1 ) _ P (x2 y2))
!! 8x1 :8y1 :9y2 ::8x2 :(:P (x1 y1 ) _ P (x2 y2))
!! 8x1 :8y1 :9y2 :9x2 ::(:P (x1 y1 ) _ P (x2 y2))
A forma normal prenex assim obtida n~ao e necessariamente unica, mas e possvel
garantir sua equival^encia com a formula original. Por exemplo, no caso da formula do
exemplo anterior, poderiamos tambem ter realizado a seguinte transformaca~o:
:(:8x:8y:P (x y ) _ 8y:8x:P (x y )) !! :(9x::8y:P (x y ) _ 8y:8x:P (x y ))
!! :(9x:9y::P (x y ) _ 8y:8x:P (x y ))
!! :8y1 :(9x:9y::P (x y ) _ 8x:P (x y1 ))
!! :8y1 :8x1 :(9x:9y::P (x y ) _ P (x1 y1 ))
!! :8y1 :8x1 :9x2 :(9y::P (x2 y ) _ P (x1 y1 ))
!! :8y1 :8x1 :9x2 :9y2 :(:P (x2 y2 ) _ P (x1 y1))
!! 9y1 ::8x1 :9x2 :9y2 :(:P (x2 y2 ) _ P (x1 y1))
!! 9y1 :9x1 ::9x2 :9y2 :(:P (x2 y2 ) _ P (x1 y1))
!! 9y1 :9x1 :8x2 ::9y2 :(:P (x2 y2 ) _ P (x1 y1))
!! 9y1 :9x1 :8x2 :8y2 ::(:P (x2 y2 ) _ P (x1 y1))
Mas ^ambas s~ao logicamente equivalentes a formula original. Generalizando:
Teorema 7.1.4 (Forma Normal Prenex) Qualquer formula na linguagem de predicados, tem uma formula na forma normal prenex logicamente equivalente a ela e com as
mesmas variaveis livres.
Demonstraca~o: Veja Men87].
Note que se em vez de x2 e y2 tivessemos deixado as variaveis originais x e y, respectivamente, as formulas resultante seri~ao equivalentes. Assim, de agora em diante so
renomearemos as variaveis quando necessario.
Como uma formula e insatisfatvel se, e somente se, seu fecho existencial e uma
formula insatisfatvel, ent~ao depois de colocar todos os quanticadores ao lado esquerdo
da formula, formamos o fecho existencial da fbf introduzindo, a esquerda, quanticadores
existenciais para cada variavel livre.
~
7.1. RESOLUCAO
133
Exemplo 7.1.5 Seja a formula
:8x:(P (x z ) ^ R(x y )) _ (9x:P (x z ) _ 8x:R(x y ))
Uma formula equivalente na forma normal Prenex, pode ser obtida da seguinte maneira:
Movendo 8 a esquerda de : e renomeando variaveis quando necessario obtemos
9x::(P (x z ) ^ R(x y )) _ 9x1 :8x2 :(P (x1 z ) _ R(x2 y )
Pondo os quanticadores na frente, temos
9x:9x1 :8x2 :(:(P (x z ) ^ R(x y )) _ (P (x1 z ) _ R(x2 y )))
e formando o fecho sobre os quanticadores temos
9z:9y:9x:9x1 :8x2 :(:(P (x z ) ^ R(x y )) _ (P (x1 z ) _ R(x2 y )))
A s vezes e mais facil de visualizar este processo quando mostrado gracamente.
Poderemos representar uma fbf por uma arvore cujas folhas s~ao formulas at^omicas e
cujos nos n~ao folhas cont^em ou um conetivo logico (:, ^, _) ou uma quanticac~ao (8x,
9x). Descendentes representar~ao as fbf's para as quais o conectivo ou quanticac~ao se
aplica. Considere a mesma formula do exemplo 7.1.5. Uma representac~ao graca do
processo de transformac~ao a forma normal prenex e mostrada na arvore da gura 7.1.
Primeiro movemos as quanticaco~es para a frente da fbf. Qualquer quanticaca~o que
esta mais acima na arvore (n~ao tem quanticaco~es no caminho dele ate o prexo da fbf
na raz) pode ser movida acima da arvore para abaixo do prexo. Se existe um numero
impar de :'s no caminho ao prexo, o quanticador e mudado (8 e transformado em
9 e vice versa), sen~ao permanece inalterado. A gura 7.2 mostra a transformac~ao de
um quanticador universal num existencial pela ac~ao da negac~ao. A posic~ao original da
quanticac~ao na arvore e tomada por seu no descendente.
Agora vamos deslocando sucessivamente para o topo da arvore as quanticaco~es, como
mostram as arvores das guras 7.3, 7.4 e 7.5, mas devemos ter cuidado com o perigo
de capturar variaveis livres. Se uma quanticaca~o e movida para uma posic~ao na qual
governa ocorr^encias de uma variavel que anteriormente era livre, estas ocorr^encias ser~ao
capturadas e portanto, para n~ao mudar o sentido da formula, deveremos renomear essas
ocorr^encias.
Note que a renomeac~ao de x por x1 n~ao e necessaria, mas como existem diversas
ocorr^encias da variavel x ligadas a distintos quanticadores, ent~ao se obtem uma melhor
visualizac~ao de qual x esta ligado a que quanticador anexando um subndice em cada
um deles.
134
~ NA LOGICA
CAPITULO 7. COMPUTACAO
DE PREDICADOS
:
8x
;
;;
P (x z)
^
_
QQ
QQ
Q
;
;
;
9x
@@
@
P (x z)
_
@@
@
8x
R(x y)
R(x y)
Figura 7.1: A rvore da formula :8x:(P (x z) ^ R(x y)) _ (9x:P (x z) _ 8x:R(x y))
Finalmente, realizando o fecho existencial da fbf, obtemos a arvore da gura 7.6.
Seja uma formula fechada na forma normal prenex. Podemos, agora, eliminar todas
as quanticaco~es em e assim obter uma formula livre de quanticadores. Cada variavel
quanticada existencialmente e substituida por uma func~ao de Skolem1 sob as variaveis
universalmente quanticadas que governam esta, ou seja as variaveis universalmente quanticadas que precedem o quanticador existencial no prexo da formula e para as quais
exista um subformula at^omica contendo elas. Uma funca~o 0-aria (sem argumentos) e
vista como uma constante. Assim, se uma variavel quanticada existencialmente n~ao e
governada por nenhuma variavel ent~ao ela debe ser substituda por uma constante. Este
processo de eliminac~ao de quanticadores existenciais em formulas fechadas na forma normal prenex e chamado de skolemizac~ao. Tanto os smbolos de func~ao como as constantes
introduzidas na skolemizac~ao devem ser novos na formula.
Exemplo 7.1.6 Seja a formula 8x:9y:(P (x) ! P (y)). Embora a quanticac~ao 8x preceda a quanticac~ao 9y, n~ao temos nenhum caso onde as variaveis y e x facam parte da
mesma formula at^omica. Logo, o y e substitudo por uma constante e n~ao por uma funca~o
em x (pois n~ao depende de x). Assim, a formula resultante da skolemizac~ao e:
8x:(P (x) ! P (a)
Se declaramos que para cada x existe um y tal que alguma propriedade e verdadeira, ent~ao estamos
a
rmando que podemos encontrar tal y, mas sua escolha pode depender do valor de x, e portanto a
escolha de y pode ser vista como uma func~ao sobre x. Uma func~ao de Skolem, e denominada assim
em homenagem ao logico T. Skolem, quem simplesmente atribuiu um smbolo de func~ao arbitrario para
representar esta escolha.
1
~
7.1. RESOLUCAO
135
9x
;
;;
P (x z)
QQ
QQ
Q
;
;
;
9x
:
^
_
@@
@
P (x z)
_
@@
@
8x
R(x y)
R(x y)
Figura 7.2: Deslocamento do quanticador universal para acima da negaca~o ,
transformando-o num quanticador existencial.
e n~ao 8x:(P (x) ! P (f (x)).
Ja a skolemizac~ao da formula 8y:9z:8x:(P (x y) ! (R(x z) _ R(z y))) e a seguinte:
8y:8x:(P (x y ) ! (R(x f (y )) _ R(f (y ) y ))):
Como resultado da skolemizac~ao de uma formula obteremos uma formula universalmente fechada que n~ao necessariamente e equivalente a original, mas que t^em estreita
relac~ao no seguinte sentido:
Proposi
c~ao 7.1.7 Para cada formula na forma normal prenex existe uma fechada uni-
versalmente (contendo geralmente novas constantes e smbolos de func~ao ) que e satisfatvel se, e somente se, a formula original tambem e satisfatvel.
Demonstraca~o: Veja Doe94].
Portanto se a formula na forma normal prenex original e universalmente valida o unico
que podemos armar da formula resultante apos o processo de skolemizaca~o e que ela e
satisfatvel (pode ser universalmente valida ou n~ao, mas nunca uma contradica~o). Porem
se a formula na forma normal prenex original e uma contradic~ao a formula resultante apos
o processo de skolemizac~ao necessariamente e uma contradica~o, pois ela e insatisfatvel.
Este resultado sera essencial para optarmos por um metodo de refutaca~o para provar teoremas, ou seja quando queremos mostrar que uma determinada formula e universalmente
valida, o mostramos provando que a negac~ao dela leva a um absurdo, nessa prova usamos
a formula resultante do processo de skolemizac~ao .
136
~ NA LOGICA
CAPITULO 7. COMPUTACAO
DE PREDICADOS
9x1
:
;
;;
^
P (x1 z)
@@
@
R(x1 y)
_
QQ
QQ
Q
;
;
;
_
9x
P (x z)
@@
@
8x
R(x y)
Figura 7.3: Deslocamento da quanticac~ao mais proximo da raiz para o topo da arvore.
Corolario 7.1.8 Para cada formula na forma normal prenex existe uma fechada universalmente (contendo geralmente novas constantes e smbolos de func~ao ) que e uma
contradic~ao se, e somente se, a formula original tambem e uma contradic~ao.
Demonstraca~o: Veja Doe94].
Os quanticadores universais s~ao eliminados sem alterar o resto da formula.
Exemplo 7.1.9 Considere a formula 9x1 :8x2 :8x3 :9x4 :R(x1 x2 x3 x4 )
Eliminando quanticadores existenciais em , obtemos a formula
1 = 8x2 :8x3 :R(a x2 x3 f (x2 x3))
e eleminando os quanticadores universais obtemos
2 = R(a x2 x3 f (x2 x3)):
Seja a formula 8x1 :9x2 :9x3 :8x4 :9x5 :(P (x1 f (x2 ) x3 ) ^ :P (x2 x4 x5 )). Como a
variavel x2 e existencialmente quanticada, e precedida pela quanticac~ao universal 8x1
e x1 e x2 fazem parte de um mesma subformula at^omica (P (x1 f (x2 ) x3 )) ent~ao no processo de skolemizaca~o x2 debe ser substituda pelo termo g1 (x1 ). Analogamente, com x3
~
7.1. RESOLUCAO
137
9x1
9x2
:
;
;;
P (x1 z)
^
@@
@
_
QQ
QQ
Q
;
;;
_
P (x2 z)
R(x1 y)
@@
@
8x
R(x y)
Figura 7.4: Dislocac~ao das quanticac~oes para o topo da arvore
a qual debe ser substituda pelo termo g2 (x1 ). No caso de x5 , podemos observar que 9x5
e precedido por dois quanticac~oes universais (8x1 e 8x4 ), mas somente a variavel x4 faz
parte junto com x5 de uma mesma subformula at^omica. Logo, x5 debe ser substituido pelo
termo g3 (x4 ). Assim, como resultado da skolemizac~ao obtemos a formula
8x1 :8x4 :(P (x1 f (g1 (x1 )) g2 (x1 )) ^ :P (g1(x1 ) x4 g3 (x4 )))
e eliminando os quanticadores existenciais temos a formula
P (x1 f (g1(x1 )) g2(x1 )) ^ :P (g1(x1 ) x4 g3(x4 ))
Uma formula livre de quanticadores e que esta na forma normal conjuntiva e chamada forma normal conjuntiva de 1a ordem. Qualquer formula de LP pode ser
transformada numa formula de LP na forma normal conjuntiva de 1a ordem tal que e satisfatvel se, e somente se, e satisfatvel. Para isto, debemos realizar os seguintes
passos:
1. transformar a formula a sua forma normal prenex
2. realizar o fecho da formula
3. eliminar quanticadores existenciais aplicando o processo de skolemizac~ao
138
~ NA LOGICA
CAPITULO 7. COMPUTACAO
DE PREDICADOS
9x1
9x2
8x3
:
;
;
;
P (x1 z)
^
_
@@
@
QQ
QQ
Q
;
;;
P (x2 z)
_
@@
@
R(x3 y)
R(x1 y)
Figura 7.5: A rvore para a forma normal prenex da formula :8x:(P (x z) ^ R(x y)) _
(9x:P (x z) _ 8x:R(x y)).
4. eliminar arbitrariamente todos os quanticadores universais
5. transformar a forma normal conjuntiva reduzida usando o algoritmo da proposic~ao
4.1.4
Exemplo 7.1.10 Seja a seguinte formula
:(9x1 :P (x1 x2 ) ! :8x3 :(P (x3 x4 ) ^ 9x5 :R(x5 ))):
Transformaremos numa formula na forma normal conjuntiva de 1a ordem seguindo
os 5 passos descritos acima.
Passo 1: Transformar a forma normal prenex
~
7.1. RESOLUCAO
139
8z
8y
9x1
9x2
8x3
:
;
P (x1 z)
^
@
_
QQ
Q
;
P (x2 z)
_
@
R(x3 y)
R(x1 y)
Figura 7.6: A rvore do fecho existencial da formula 9x:9x1 :8x2 :(:(P (x z) ^ R(x y)) _
(P (x1 z) _ R(x2 y))).
!! :(9x1 :P (x1 x2) ! 9x3 ::(P (x3 x4 ) ^ 9x5 :R(x5 )))
!! :(9x1 :P (x1 x2 ) ! 9x3 ::9x5 :(P (x3 x4 ) ^ R(x5 )))
!! :(9x1 :P (x1 x2 ) ! 9x3 :8x5 ::(P (x3 x4 ) ^ R(x5 )))
!! :8x1 :(P (x1 x2 ) ! 9x3 :8x5 ::(P (x3 x4 ) ^ R(x5 )))
!! :8x1 :9x3 :(P (x1 x2 ) ! 8x5 ::(P (x3 x4 ) ^ R(x5 )))
!! :8x1 :9x3 :8x5 :(P (x1 x2 ) ! :(P (x3 x4 ) ^ R(x5 )))
!! 9x1 ::9x3 :8x5 :(P (x1 x2 ) ! :(P (x3 x4 ) ^ R(x5 )))
!! 9x1 :8x3 ::8x5 :(P (x1 x2 ) ! :(P (x3 x4 ) ^ R(x5 )))
!! 9x1 :8x3 :9x5 ::(P (x1 x2 ) ! :(P (x3 x4 ) ^ R(x5 )))
Passo 2: realizar o fecho da formula
2 def
= 8x2 :8x4 :9x1 :8x3 :9x5 ::(P (x1 x2 ) ! :(P (x3 x4 ) ^ R(x5 )))
Passo 3: eliminar quanticadores existenciais aplicando o processo de skolemizac~ao
3 def
= 8x2 :8x4 :8x3 ::(P (f (x2) x2) ! :(P (x3 x4) ^ R(a)))
140
~ NA LOGICA
CAPITULO 7. COMPUTACAO
DE PREDICADOS
Passo 4: eliminar arbitrariamente todos os quanticadores universais
4 def
= :(P (f (x2) x2) ! :(P (x3 x4) ^ R(a)))
Passo 5: transformar a forma normal conjuntiva reduzida usando o algoritmo da proposica~o
4.1.4
4 !! :(:P (f (x2 ) x2 ) _ :(P (x3 x4) ^ R(a)))
!! (::P (f (x2 ) x2 ) ^ ::(P (x3 x4 ) ^ R(a)))
!! (P (f (x2 ) x2 ) ^ ::(P (x3 x4 ) ^ R(a)))
!! (P (f (x2 ) x2 ) ^ (P (x3 x4 ) ^ R(a)))
!! P (f (x2 ) x2 ) ^ P (x3 x4 ) ^ R(a)
Deni
c~ao 7.1.11 Seja uma fbf na forma normal conjuntiva de 1a ordem. O domnio
de Herbrand de e o conjunto de termos H obtido de usando as seguintes regras:
1. Se a e uma constante em ent~ao a 2 H . Se n~ao contem nenhuma constante,
ent~ao um smbolo de constante arbitrario a e incluido em H .
2. Se t1 : : : tn s~ao termos em H , e f e um smbolo de func~ao n-aria em ent~ao
f (t1 : : : tn) 2 H. Se nenhum smbolo de func~ao ocorre em ent~ao um smbolo
de funca~o f de aridade hum arbitrario e considerado.
A notac~ao T ((;)) denota o conjunto de inst^ancias obtidas ao aplicar no conjunto de
fbf's, ;, todas as possveis substituic~oes com termos pertecentes a um conjunto T de
termos.
Deni
c~ao 7.1.12 Seja uma fbf na forma normal de Skolem. A expans~ao de Herbrand de , denotado por H(()), e o conjunto de todas as inst^ancias de , obtidas ao
substituir cada variavel em por um termo de H .
Exemplo 7.1.13 Seja = R(a x2 f (x2 ) x4). O domnio de Herbrand para e dado
pelo seguinte conjunto
H = fa f (a) f (f (a)) f (f (f (a))) : : : g:
Portanto, a expans~ao de Herbrand de e descrita pela seguinte tabela
x2
a
a
f (a)
f (a)
a
...
x4
a
f (a)
a
f (a)
f (f (a))
...
R(a x2 f (x2) x4 )
R(a a f (a) a)
R(a a f (a) f (a))
R(a f (a) f (f (a)) a)
R(a f (a) f (f (a)) f (a))
R(a a f (a) f (f (a)))
...
~
7.1. RESOLUCAO
141
onde x2 e x4 s~ao substitudos em todas as combinac~oes possveis pelos termos em H , com
cada variavel sendo substituidas em todas suas ocorr^encias pelo mesmo termo.
Cada certo intervalo de tempo podemos testar a conjunc~ao de inst^ancias para vericar se geramos inconsist^encia. Se a conjunca~o e consistente, geramos novas inst^ancias e
testamos novamente esta conjunc~ao maior. Continuamos desta maneira ate um conjunto
inconsistente ser achado. Isto, como veremos a seguir, acontecera exatamente no caso de
ser insatisfatvel (e portanto, : seria universalmente valido).
Teorema 7.1.14 !Teorema de Herbrand] Seja uma conjunc~ao nita de clausulas, e H
seu domnio de Herbrand. e insatisfatvel se, e somente se, algum subconjunto nito de
H(()) e inconsistente.
Demonstraca~o: Veja Bun83].
A desvantagem com esta forma de mostrar que e insatisfatvel n~ao e o tempo gasto
para testar a incosist^encia de um subconjunto de H(()), e sim o fato de que se H(())
e gerado de acordo com a complexidade crescente de termos basicos nas inst^ancias, um
numero muito grande de inst^ancias devem ser gerados antes de obter uma conjunc~ao
inconsistente. No entanto, frequentemente, uma subconjunca~o inconsistente pequena pode
ser obtida. Portanto, o problema e descartar a gerac~ao das inst^ancias consistentes. Uma
maneira para conseguir isto e prev^er qual inst^ancia de duas clausulas contera literais
complementares. Usando esta informaca~o teremos como controlar a maneira na qual os
termos de Herbrand s~ao construdos.
Exemplo 7.1.15 Suponha que as clausulas de s~ao
1: P (x a y)
2: :P (f (z) w a) _ :P (z d w)
3: P (f (a) u a) _ :P (u a f (a))
Relembremos nossa convenc~ao de que letras do comeco do alfabeto, neste caso a b c e
d, s~ao smbolos constantes, e letras do nal do alfabeto (u v w x y e z) s~ao variaveis.
Qualquer inst^ancia de 1 casara com qualquer inst^ancia de 2 na qual x e substitudo
por f (z ), e w e y s~ao ambos substitudos por a. Assim, tais inst^ancias de 1 de 2 ter~ao
a forma
10 : P (f (z) a a)
20 : :P (f (z) a a) _ :P (z d a)
Assim, existira uma famlia de resolventes de inst^ancias de 10 e 20 da forma
~ NA LOGICA
CAPITULO 7. COMPUTACAO
DE PREDICADOS
142
4 : :P (z d a)
algumas destas colapsar~ao com inst^ancias de 3 , para isto substituimos z por f (a), u por
d, obtendo as seguintes inst^ancias de 3 e de 4
3:P (f (a) d a) _ :P (d a f (a))
4::P (f (a) d a)
os resolventes obtidos ter~ao a forma
5 : :P (d a f (a))
a qual colide com a famlia 1 se substituirmos x por d e y por f (a). Desta forma as
inst^ancias de 1 e 5 apos esta subsituic~ao tem a forma
100: P (d a f (a))
50 : :P (d a f (a))
as quais se contradizem.
Deste exemplo podemos observar que so um pequeno segmento de H(()) e contraditorio. No entanto, se H(()) fosse gerado pelo metodo de complexidade crescente de
termos, o primeiro segmento contraditorio conteria entre 36 a 156 clausulas!
A tecnica usada no exemplo 7.1.15 consiste em aplicar uma sucess~ao de substituic~oes
de termos (n~ao necessariamente basicos) por variaveis, cada substituic~ao sendo escolhida
de tal modo que o resultado de aplicar ela a duas clausulas e que alguns dos literais na primeira clausula colapsara com um : literal da segunda clausula. Para formalizar
esta noc~ao introduziremos o conceito de unicador mais geral, abreviado por umg. Antes
porem, veremos substituic~oes de variaveis por termos, pois o metodo de resoluc~ao depende
dessa operac~ao basica sobre fbf's. Uma substituica~o fornece uma atribuic~ao de termos as
variaveis. Neste caso, cada atribuic~ao e indicada por um par ordenado (termo, variavel).
Deni
c~ao 7.1.16 Uma substitui
c~ao e um conjunto de componentes de substituic~oes
independentes:
= (t1 v1) : : : (tn vn)]
O primeiro elemento de cada componente e um termo e o segundo elemento e uma
variavel, tal que
1. vi 6= vj se i 6= j
2. vi n~ao ocorre em tj para qualquer i e j .
~
7.1. RESOLUCAO
143
Deni
c~ao 7.1.17 Se uma variavel v e trocada em cada uma de suas ocorr^encias livres,
na fbf , pelo termo t, a formula resultante e chamada uma inst^ancia de substitui
c~ao de , e denotada por (t v)], cuja leitura e \ com t por v". Analogamente,
(t1 v1 ) : : : (tn vn)] denota o resultado de trocar simultaneamente todas as ocorr^encias
das diferentes variaveis v1 : : : vn , em , por t1 : : : tn, respectivamente.
A independ^encia das componentes de uma substituic~ao, que e assegurada pelas duas
condic~oes acima, garante que duas substituic~oes s~ao, conjuntistamente, equivalentes se, e
somente se, elas t^em o mesmo efeito sobre todas as express~oes. Portanto, aplicando uma
substituic~ao a uma express~ao, n~ao importa a ordem das componentes. , o resultado de
aplicar a substituic~ao a , e a inst^ancia de substituic~ao (t1 v1 ) : : : (tn vn)].
Exemplo 7.1.18 Seja
= P (x z y ) _ P (e f (u y ) f (a b))
= (e x) (f (u v ) z ) (f (a b) y )]
= (f (a b) v )].
Ent~ao
= P (e f (u v ) f (a b)) _ P (e f (u f (a b)) f (a b))
( ) = P (e f (u f (a b)) f (a b)) _ P (e f (u f (a b)) f (a b)).
Como vi n~ao ocorre em tj , sabemos que nenhuma nova ocorr^encia de qualquer variavel
afetada pela substituca~o pode ser introduzida atraves das componentes da substituic~ao.
Podemos combinar a componente de substituic~ao (t x) com a substituic~ao = (t1 v1) : : : (tn vn)],
desde que x 6= vi e vi n~ao ocorre em t, para todo i, 1 i n, como segue
(t x)] = (t1(t x)] v1 ) : : : tn(t x)] vn )]
Deni
c~ao 7.1.19 Seja = (t1 v1) : : : (tn vn)] e = (t01 u1) : : : (t0m um)] duas sub-
stituico~es , tais que ui 6= vj e vj n~ao ocorre em t0i , para cada i e j com 1 i m e
1 j n. A combinaca~o de com , e a substituic~ao :
= (t1 v1 : : : (tn vn)]
144
~ NA LOGICA
CAPITULO 7. COMPUTACAO
DE PREDICADOS
Exemplo 7.1.20 Sejam as substituic~oes e exemplo 7.1.18. Note que as variaveis
que s~ao substituidas em (x, z e y) s~ao diferentes das de (x) e que nenhuma variavel
de ocorre nos termos de (f (a b)). Logo, e possvel combianr ambas substituic~oes .
Assim, a combinac~ao das substuic~oes com resulta na substituic~ao :
= (e x) (f (u v) z) (f (a b) y)](f (a b) v)]
(e(f (a b) v)] x) (f (u v)(f (a b) v)] z) (f (a b)(f (a b) v)] y)]
(e x) (f (u f (a b)) z) (f (a b) y)]
Observe que se aplicarmos a substituic~ao a formula do exemplo 7.1.18 (P (x z y )_
P (e f (u y) f (a b))), obteremos a formula
= P (x z y) _ P (e f (u y) f (a b))(e x) (f (u f (a b)) z) (f (a b) y)]
= P (e f (u f (a b)) f (a b)) _ P (e f (u f (a b)) f (a b))
= ( ) :
Deni
c~ao 7.1.21 Seja ; = f1 : : : ng um conjunto de clausulas e uma substituic~ao.
; e unicado por se 1 = 2 = = n . Neste caso chamamos de unicador.
Exemplo 7.1.22 Seja o conjunto de clausulas ; = fP (f (a) x) _ :R(a y) P (z f (z)) _
:R(u f (u))g. Um unicador para ; pode ser a substituic~ao:
= (f (a) z) (f (f (a)) x) (a u) (f (a) y)]
pois
(P (f (a) x) _ :R(a y)) = P (f (a) f (f (a))) _ :R(a f (a))
e
(P (z f (z)) _ :R(u f (u))) = P (f (a) f (f (a))) _ :R(a f (a))
Seja o conjunto de clausulas ; = fP (x f (y)) P (a f (f (u))) P (z f (f (f (w))))g. Um
unicador para ; pode ser a substituic~ao:
= (a x) (a z) (f (w) u) (f (f (w)) y)g
pois
P (x f (y)) = P (a f (f (f (w)))
P (a f (f (u))) = P (a f (f (f (w))) e
P (z f (f (f (w)))) = P (a f (f (f (w)))
~
7.1. RESOLUCAO
145
Portanto um unicador e uma substituic~ao que torna as express~oes nas quais ele e
aplicado parecidas. E importante estar consciente de que as express~oes resultantes s~ao
as mesmas, apenas na apar^encia, n~ao em valor. Unicaca~o e um processo estritamente
sintatico. Assim x + 2 pode ser unicado com 3 + 2 amarrando x a 3, mas x + 2 n~ao pode
ser unicado com 5 ou 2 + 3.
Deni
c~ao 7.1.23 Uma substituic~ao e um unicador mais geral de um conjunto
de clausulas ;, se para qualquer outro unicador existe uma substituic~ao tal que
; = (; ).
Intuitivamente, entendemos que o unicador mais geral e aquele que faz a menor quantidade possvel de substituic~oes, no sentido que instanca variaveis, sempre que possvel,
para unicar um dado conjunto de express~oes. Em muitos casos n~ao existira um unicador
mais geral. Entretanto, se um conjunto de formulas at^omicas ; e unicavel, ent~ao existe
uma substituica~o mais geral unicando ; e, alem disso, podemos fornecer um algoritmo
para achar esta substituic~ao. Este procedimento, devido a Robinson Rob65], comeca
com o conjunto vazio de substituic~oes e constroi, etapa por etapa, um unicador mais
geral 0 para o conjunto ; de formulas at^omicas. Construiremos nossas componentes de
substituic~oes unicadoras componente a componente.
Se, na k-esima etapa, a substituic~ao ate ent~ao obtida e k , e as formulas at^omicas
1k : : : nk em ;k n~ao s~ao todoa iguais, ent~ao o procedimento troca k na base de
um conjunto de discord^ancia contendo a primeira express~ao bem-formada em cada ik
que precisa ser mudada.
Deni
c~ao 7.1.24 Seja ; = f1 : : : ng, onde cada i e uma formula at^omica. O
conjunto de discord^ancias de ; e o conjunto de todas as subexpress~oes das formulas
at^omicas em ; que comecam na posic~ao do primeiro smbolo no qual nem todas as formulas
at^omicas coincidem.
O conjunto de discord^ancias ou e o proprio ; (em cujo caso ; n~ao ser unicavel) ou
ele contem um termo ou subtermo de cada formula at^omica em ;
Exemplo 7.1.25 O conjunto de discord^ancias de
fP (x f (g (y )) v ) P (x f (z ) w) P (x f (f (a)) w) P (x f (z ) a)g
e fz g(y) f (a)g:
Antes de exibir o algoritmo que fornece o unicador mais geral (umg) precisamos impor
uma ordem em LP . Formulas bem formadas e sequ^encias de formulas bem formadas
podem estar ordenadas lexicogracamente como segue:
146
~ NA LOGICA
CAPITULO 7. COMPUTACAO
DE PREDICADOS
1. Os smbolos primitivos s~ao ordenados de acordo com o tipo (variaveis, constantes,
smbolos de func~oes, smbolos de predicados e conectivos). Dentro de cada tipo,
de acordo ao numero de seus argumentos ou aridade (para smbolos de func~oes e
predicados), depois por subndices e nalmente, alfabeticamente. Os conectivos s~ao
ordenados de acordo com seu escopo, isto e, :, ^, _, !, e $. Gracamente, os
smbolos s~ao ordenados como segue
variaveis
subndices
alfabeticamente
constantes
subndices
alfabeticamente
smbolos de func~oes
aridade
subndices
alfabeticamente
smbolos de predicado
aridade
subndices
alfabeticamente
2. Formulas bem formadas s~ao ordenadas pela quantidade de formulas at^omicas que a
comp~oem. Duas fbf's com a mesma quantidade de formulas at^omicas s~ao ordenadas
pela ordem dos smbolos na primeira posica~o na qual elas diferem.
Exemplo 7.1.26 Os literais P1 (x1 f (x2 ) a) P2(a f (a)) P2(x3 x2) P2(x2 f (x3)) P2(f (x1 ) a)
t^em a seguinte ordem lexicograca:
P2(x2 f (x3)) P2(x3 x2 ) P2(a f (a)) P2(f (x1 ) a) P1(x1 f (x2 ) a)
Procedimento de unicac~ao de Robinson
1. Faca 1 = ] (a substituic~ao vazia), faca k = 0, e va para a etapa 2.
2. Faca k k + 1. Se os elementos de ;k s~ao todos iguais, faca 0 = k e pare. Caso
contrario va para a etapa 3.
3. Sejam sk , tk os dois primeiros termos na ordem lexicograca do conjunto de discord^ancias de ;k . Se sk e uma variavel e n~ao ocorre em tk , faca k+1 = k (tk sk )]
e va para 2. Caso contrario pare (n~ao existe nenhum umg).
~
7.1. RESOLUCAO
147
Como ;k+1 contem uma variavel a menos que ;k , o procedimento deve parar em
no maximo m etapas, onde m e o numero de variaveis de ;. E claro, tambem, que se
o procedimento para na etapa 2, 0 e determinado unicamente e seus termos contem
somente smbolos de func~ao ocorrendo em ;. E tambem verdade que se ; e unicavel
ent~ao 0 esta denido e e um umg. Para uma prova desse fato v^er Lan64].
Finalmente, estamos em condic~oes de estender o conceito de um resolvente de duas
clausulas basicas (denic~ao 4.1.7) para o caso onde as clausulas n~ao s~ao necessariamente
clausulas basicas.
Deni
c~ao 7.1.27 Um resolvente de duas clausulas C1 e C2 e uma terceira clausula C3
obtida como segue:
1. Se v1 : : : vm s~ao variaveis de C2 e a maior variavel de C1, na ordem lexica, e uk ,
ent~ao dena = (uk+1 v1 ) : : : (uk+m vm )]. Portanto, nenhuma variavel em C2
ocorre em C1 . Isto e chamado separa
c~ao padr~ao das clausulas C1 e C2.
2. Se existe um par de conjuntos de literais ; e ', tal que ; = f1 : : : k g C1 e
' = f1 : : : l g C2 e o conjunto f1 : : : k :1 : : : :l g e unicavel, ent~ao
considere o unicador 0 , escolhido pelo procedimento de Robinson, o unicador
mais geral. Portanto ;0 e (' )0 s~ao literais complementares (de fato eles s~ao
conjuntos unitarios cujos elementos s~ao literais complementares). Logo, dena C3
como o seguinte conjunto de literais:
(C1 ; ;)0 ((C2 ; ') )0 :
Qualquer par de clausulas tem no maximo um numero nito de resolventes, pois
existem somente uma quantidade nita de pares de conjuntos de literais ' e ;, e para
cada par existe, no maximo, uma substituic~ao 0 . Os resolventes de um par de clausulas
basicas s~ao resolventes basicos. Uma deduca~o por resoluc~ao e denida como antes, com o
termo mais generico \resolvente no lugar de \resolvente basico".
Deni
c~ao 7.1.28 Uma dedu
c~ao por resolu
c~ao de uma clausula a partir de um
conjunto de clausulas ;, denotado por ; ;!
, e uma sequ^encia nita de clausulas
1 : : : n tal que
1. n e 2. para cada i, 1 i n, ou i
(a) e um elemento de ;, ou
(b) : 2 i para alguma formula at^omica , ou
(c) e um resolvente de j e k , onde j k < i.
148
~ NA LOGICA
CAPITULO 7. COMPUTACAO
DE PREDICADOS
Note que, analogamente ao caso proposicional, a sequ^encia de clausulas 1 : : : n de
uma deduc~ao por resoluc~ao, pode ser disposta na forma de uma arvore invertida.
Deni
c~ao 7.1.29 Uma deduc~ao por resoluc~ao de 2 a partir de um conjunto de clausulas
;, denotado por ; ;!
2, e chamada uma refuta
c~ao de resolu
c~ao ou simplesmente
uma refuta
c~ao, de ;.
Proposi
c~ao 7.1.30 Existe uma refuta
c~ao de um conjunto de clausulas ; (isto e, ; ;!
2) se e somente se 2 2 Rn(;) para algum n, onde Rn e denido como anteriormente,
omitindo o adjetivo \basico".
Exemplo 7.1.31 Suponha que desejamos mostrar que o seguinte conjunto de clausulas
e insatisfatvel.
1. P (y x)
2. :P (f (x) f (z)) _ :P (b x)
3. P (f (f (a)) x)
Analogamente ao caso proposicional, nosso objetivo e mostrar que as clausulas s~ao
inconsistentes exibindo uma refutac~ao por resoluc~ao delas. Temos, agora, um problema
mais complicado, uma vez que temos de fazer a unicac~ao das clausulas. No entanto a
estrategia geral e a mesma.
Uma maneira facil para a separac~ao padr~ao e indexar todas as variaveis da clausula
que pretendemos resolver, mesmo que as vezes n~ao seja necessaria renomear todas elas.
Crescendo os ndices cada vez que uma etapa na resoluc~ao e efetuado podemos tambem
indicar o comprimento da derivac~ao. No conjunto de clausulas, acima, resolveremos 1 e
2. Primeiro escrevemos uma nova vers~ao das clausulas 1 e 2:
10: P (y1 x1 )
20: :P (f (x2) f (z2)) _ :P (b x2 )
Unicando 10 com P (b x2 ) da clausula 20 , achamos o umg 1 (b y1 ) (x2 x1 )]. Aplicando 1 a 10 e 20 derivamos o resolvente 4, como ilustra a gura 7.7.
Renomeamos as variaveis em 3., obtendo a clausula
30: P (f (f (a)) x3)
para unicar com P (f (x2 ) f (z2 )). Um unicador para estas formulas at^omicas e 2 =
(f (a) x2) (f (z2) x3 )]. Aplicando este unicador as clausulas 30 e 4, derivamos 2, como
mostra a gura 7.8.
~
7.1. RESOLUCAO
149
10: P (b x2)
20: :P (f (x2 ) f (z2)) _ :P (b x2 )
@@
;
;
@@;;
4: :P (f (x2) f (z2))
Figura 7.7: Derivac~ao de um resolvente.
30: P (f (f (a)) x3) 5: :P (f (x2) f (z2))
@@
;
;
@@;;
2
Figura 7.8: A rvore para a refutaca~o de dois literais complementares.
E claro que nem todas as renomeaco~es de variaveis do exemplo anterior foram necessarias,
pois, por exemplo, a variavel z so ocorria na clausula 2. No entanto, n~ao existe nenhum
dano em faz^e-lo, somente trazendo lucro ao criar-se o habito de renome-las, prevenindo
os erros nos casos mais complicados.
Exemplo 7.1.32 Considere, agora, o seguinte conjunto de clausulas
1. P (x h(x y ))
2. :P (x z) _ P (x h(y z))
3. :P (c h(b h(a h(c b))))
Para assegurar que essas clausulas est~ao separadas na forma padr~ao geramos novas
inst^ancias de cada clausula, subescrevendo todas as variaveis com sub-ndices na medida
que vamos usando as clausulas na resoluc~ao. Denotaremos essa nova inst^ancia por uma
linha sobre o numero original. Cada etapa da deduc~ao por resoluc~ao de 2 das clausulas
1-3 procede como segue:
1. Listamos as clausulas que pretendemos resolver (separac~ao padr~ao)
2. Fornecemos um umg dos literais selecionados nas clausulas em 1.
3. Listamos as clausulas novamente, tendo aplicado o umg a cada uma.
150
~ NA LOGICA
CAPITULO 7. COMPUTACAO
DE PREDICADOS
4. Mostramos o resolvente derivado das clausulas.
Analogamente a tecnica usada para eliminac~ao de literais complementares em logica
proposicional, a refutac~ao pode ser ilustrada atraves de uma arvore, so que aqui precisamos
considerar as unicac~oes que ser~ao usadas em cada etapa. A arvore da gura 7.9 mostra
a refutac~ao, em forma de arvore, do conjunto de clausulas acima.
20: P (x1 h(y1 z1)) _ :P (x1 z1 )
3: P (c h(b h(a h(c b))))
1 = (c x1 ) (b y1) (h(a h(c b)) z1 )]
P (c h(b h(a h(c b)))) _ :P (c h(a h(c b)))
:P (c h(b h(a h(c b))))
!!
@@
!
!
!!
!
@@
!
!
@!!!
:P (c h(a h(c b)))
200: P (x2 h(y2 z2 )) _ :P (x2 z2)
2 = (c x2) (a y2) (h(c b) z2)]
:P (c h(a h(c b)))
P (c h(a h(c b))) _ :P (c h(c b))
!!
@@
!
!
!!
!
@@
!
!
@!!!
:P (c h(c b))
10: P (x3 h(x3 y3))
3 = (c3 x3) (b y3)]
:P (c h(c d))
P (c h(c d))
@@
;
;
@@ ;;
@;
2
Figura 7.9: A rvore para a refutaca~o de um conjunto de clausulas.
Este exemplo mostra que uma clausula pode ser usada mais de uma vez numa refutac~ao. Cada clausula contendo variaveis, encarna uma quantidade innita de inst^ancias.
~
7.1. RESOLUCAO
151
Como em ELC, n~ao eliminamos uma clausula ao usar-la, pois sempre podemos re-utilizarla, nem somos obrigados a usar todas as clausulas que nos s~ao dadas.
Em cada um dos exemplos acima o conjunto de literais ; e ' (da denic~ao de resolvente) foram unitarios. Usualmente escolhemos clausulas para resolv^e-las e xamos
nossa atenc~ao sobre um unico literal em cada clausula. No entanto, devemos estar atento
para tratar cada clausula como um conjunto de literais, de vez que varios literais podem
colapsar-se num unico literal apos a unicaca~o. Ignorando este fato podemos perder uma
refutac~ao mesmo ela existindo. Vejamos o seguinte exemplo de duas clausulas:
C1 : P (a) _ P (x)
C2 : :P (a) _ :P (y)
Olhando somente um unico literal de cada vez em cada clausula, e ignorando o colapso
de um conjunto a um unico apos a unicaca~o, poderamos gerar os seguintes resolventes.
1. Resolvendo o primeiro literal em cada clausula obtemos
P (x) _ :P (y)
2. Resolvendo o primeiro literal de C1 e o segundo de C2 , usando o unicador (a y)],
obtemos
P (x) _ :P (a)
3. Resolvendo o segundo literal de C1 e o primeiro literal de C2, usando o unicador
(a x)], obtemos
P (a) _ :P (y)
4. Resolvendo o segundo literal em cada clausula, usando (x y)], obtemos
P (a) _ :P (a)
Permitindo que clausulas, que e um conjunto de literais, contenham duas inst^ancias
do mesmo literal e eliminando somente uma quando derivamos um resolvente, forca-nos
a derivar somente clausulas de dois elementos, tornando impossvel derivar 2.
Olhando mais cuidadosamente as resoluco~es fornecidas acima, no segundo caso deveramos ter obtido somente P (x), o qual, quando usado apropriadamente com C2, permitiria derivar 2. No terceiro item, deveramos ter obtido :P (y), que poderia ser usado
com C1 para derivar 2.
Poderamos, tambem, ter escolhido considerar as clausulas inteiras C1 e C2 como
os conjuntos ; e ', respectivamente, da denica~o de resolvente. Ent~ao usando o umg
152
~ NA LOGICA
CAPITULO 7. COMPUTACAO
DE PREDICADOS
(a x) (a y)], derivariamos imediatamente 2. Note que isto n~ao e resolver os dois pares
de literais ao mesmo tempo, o que n~ao e permitido, como observamos anteriormente. A
raz~ao para eliminar dois literais de cada clausula e que antes da unicac~ao existem dois
literais em cada clausula, mas apos a unicac~ao existe somente um em cada clausula, e o
resultado de resolver sobre essas clausulas unitarias e 2.
Vimos que nossa computac~ao para LP e muito parecida com a usada para LP . Entretanto, n~ao podemos mais assegurar que o processo de tomar os resolventes parara, como
sabemos temos um numero innito de inst^ancias possveis de um literal toda vez que
nosso domnio de Herbrand contem uma constante e um smbolo de func~oes. O teorema
de Herbrand assegura, dado um conjunto inconsistente de clausulas ;, algum subconjunto
nito de H((;)) e inconsistente, portanto 2 2 Rn(;) para algum n. Mas n~ao podemos
colocar um limite sobre esse n. N~ao temos ideia quanto o programa deve executar para
estabelecer a inconsist^encia de ; embora sabemos que dado bastante tempo ele de fato o
fara. O problema e grave quando ; e consistente. Nosso processo de tomar os resolventes
pode parar ou car executando para sempre. Portanto n~ao temos um procedimento de
decis~ao para determinar se 2 2 Rn (;) ou n~ao para qualquer n, e um conjunto arbitrario
de clausulas ;.
Recapitulando, se queremos provar, usando resoluc~ao, que uma formula e um teorema, primeiro negamos a formula, convertemos-la a forma normal prenex, fechamos-la
existencialmente, eliminamos quanticadores existenciais aplicando o processo de skolemizac~ao, -la, eliminamos sumariamente quanticadores universais e a transformamos na
forma normal conjuntiva, para recem poder aplicar o metodo de eliminac~ao de literais
complementares.
Usamos o fecho existencial em vez do universal, pois queremos mostrar que : e uma
contradic~ao , e uma formula e uma contradica~o se, e somente se, seu fecho existencial
tambem e uma contradic~ao.
Exemplo 7.1.33 Seja a formula
P (x) ! 9x:P (x)
Vamos a mostrar que existe uma refutac~ao da negac~ao de esta formula.
Passo 1: Negar a formula
:(P (x) ! 9x:P (x))
Passo 2: Forma normal prenex
8y::(P (x) ! P (y )
~
7.1. RESOLUCAO
153
Passo 3: Fechar existencialmente a Formula
9x:8y::(P (x) ! P (y ))
Passo 4: Skolemizar
8y:(P (a) ! P (y ))
Passo 5: Eliminaca~o de quanticadores universais
P (a) ! P (y)
Passo 6: Forma normal conjuntiva
:(P (a) ! P (y )) !! :(:P (a) _ P (y ))
!! ::P (a) ^ :P (y )
!! P (a) ^ :P (y )
Passo 7: Notaca~o Clausal
1. P (a)
2. :P (y )
Passo 8: Resoluc~ao
A gura 7.10 ilustra a arvore que refutas as duas clausulas anteriores. Na mesma
arvore esta indicado o unicador mais geral para essas duas clausulas.
1: P (a)
2: :P (y)
0 = (a y)]
P (a)
:P (a)
@@
;
;
@@ ;;
@;
2
Figura 7.10: A rvore da refutaca~o das clausulas P (a) e :P (y).
Note que se nos tentasemos refutar a clausula P (x) ! 8P (x), a qual n~ao e universalmente valida, aconteceria:
~ NA LOGICA
CAPITULO 7. COMPUTACAO
DE PREDICADOS
154
Exemplo 7.1.34 Seja a formula
P (x) ! 8x:P (x)
Vamos a mostrar que existe uma refutac~ao da negac~ao de esta formula.
Passo 1: Negar a formula
:(P (x) ! 8x:P (x))
Passo 2: Forma normal prenex
9y::(P (x) ! P (y )
Passo 3: Fechar existencialmente a Formula
9x:9y::(P (x) ! P (y ))
Passo 4: Skolemizar
:(P (a) ! P (b))
Passo 5: Eliminac~ao de quanticadores universais: Como n~ao, ha quanticadores universais a formula ca a mesma.
Passo 6: Forma normal conjuntiva
:(P (a) ! P (b)) !! :(:P (a) _ P (b))
!! ::P (a) ^ :P (b)
!! P (a) ^ :P (b)
Passo 7: Notaca~o Clausal
1. P (a)
2. :P (b)
Passo 8: Resoluc~ao: Como P (a) e P (b) n~ao s~ao unicaveis, n~ao e possivel achar um
resolvente para estas clausulas. Portanto, n~ao s~ao refutaveis.
7.2. RESULTADOS DE COMPLETUDE
155
7.2 Resultados de Completude
Sabendo o que signica verdade, deduc~ao e completaca~o no calculo de predicados, pretendemos investigar as relac~oes entre essas noco~es . Primeiro veremos que T P e seguro.
Isto e que todo teorema de T P e uma formula universalmente valida. Segundo, estabeleceremos que se uma formula de LP e universalmente valida, ent~ao e possvel realizar
uma refutac~ao por resoluc~ao de sua negac~ao. Finalmente, mostraremos que se e possvel
realizar uma refutaca~o por resoluc~ao de sua negaca~o ent~ao pode-se provar que ele e um
teorema de T P .
Teorema 7.2.1 (T P e segura) Todo teorema de T P e uma formula universalmente valida.
Isto e,
se ` , ent~ao j= Demonstraca~o: Como posto no captulo 5 toda tautologia e universalmente valida,
portanto os axiomas A1 , A2 e A3 s~ao universalmente validos. Das observac~oes no nal do
captulo 5 temos que os axiomas A4 e A5 tambem s~ao universalmente validos. Finalmente,
das mesmas observac~oes temos que a regra de generalizaca~o e modus ponens preservar~ao
validade universal, isto e se e universalmente valida, ent~ao 8x: tambe e universalmente
valida. Analogamente, se e ! s~ao universalmente validas, ent~ao e universalmente
validas.
A seguir, mostraremos que a negaca~o de uma formula e universalmente valida, ent~ao
a formula e refutavel. Mas, antes precissaremos mostrar uma serie de resultados previos.
Lema 7.2.2 Seja H; o domnio de Herbrand de ; e T um conjunto de termos tal que
T H;, ent~ao R(T ((;))) T ((R(;))).
Demonstraca~o: Suponha que 2 T ((;)). Como ; R(;) e R(;) T ((R(;))),
ent~ao 2 T ((R(;))). Se e um resolvente, ent~ao = ( ; p) ( ; p ), onde
2 ;, 2 T ((;)) e p e p s~ao literais complementares. Sejam e as
seguintes sunstituic~oes = (s1 x1) : : : (sk xk )] e = (t1 y1) : : : (tm ym)], onde
x1 : : : xk s~ao todas as variaveis de e y1 : : : ym s~ao todas as variaveis de . Seja
= (xk+1 y1) : : : (xk+m ym)] a separac~ao padr~ao das varaveis de e . Dena, a
substituic~ao
= (s1 x1) : : : (sk xk ) (t1 xk+1) : : : (tm xk+m)]
Claramente, = , = , p = p e p = p . Logo, = ( ; p) ( ; p).
Como unica o conjunto p pop , existe um unicador mais geral 0 e um resolvente
0 de e , tal que
~ NA LOGICA
CAPITULO 7. COMPUTACAO
DE PREDICADOS
156
0 = ( ; p)0 ( ; p)0
Como 0 e um unicador mais geral e e um unicador de p pop , ent~ao existe
uma substituic~ao tal que (p pop ) = ((p pop )0 ) e portanto 0 = . Logo,
= 0 . Assim, 2 T ((R(;))), isto e e uma instancia de substituic~ao de um resolvente
de clausulas em ;.
Corolario 7.2.3 Rn(T ((;))) T ((Rn(;)))
Demonstraca~o: Provaremos este corolario por induc~ao em n.
Caso base: Se n = 1 ent~ao como R1 (T ((;))) = R1(T ((;))) e T ((R(;))) = T ((R1 (;))),
temos que pelo lema ??, Rn(T ((;))) T ((Rn(;))).
Etapa indutiva: Assuma que Rk (T ((;))) T ((Rk (;))). Mostraremos que
Rk+1 (T ((;))) T ((Rk+1 (;)))
Rk+1 (T ((;))) = R(Rk (T ((;))))
R(T ((Rk (;))))
T (R((Rk (;))))
T (Rk+1 (;)))
denic~ao de Rk+1
hipotese indutiva
lema ??
denic~ao de Rk+1
Teorema 7.2.4 Se ; e um subconjunto insatisfatvel de LP , ent~ao 2 2 Rn(;), para
algum n.
Demonstraca~o: Se ; e insatisfatvel, ent~ao, pelo teorema 7.1.14, algum conjunto nito
de H((;)) e incosistente. Suponha que este conjunto inconsistente e T ((;)). Como T ((;))
e um conjunto de clausulas basicas (sem variaveis) ent~ao pelo corolario 4.2.13, temos que
T ((;)) ;!
2. Assim, pelo corolario 4.1.20 temos que 2 2 Rn(T ((;))) para algum n.
Pelo corolario 7.2.3 temos que 2 2 T ((Rn(;))) para algum n. Como substituir termnos
variaveis numa clausula n~ao vazia n~ao pode gerar uma clausula vazia, ent~ao 2 2 Rn (;)
para algum n.
Corolario 7.2.5 Se j= ent~ao : ;!
2
Demonstraca~o: Se j= ent~ao : e insatisfatvel. Logo, pelo teorema anterior, 2 2
Rn (:), para algum n. Pelo corolario 4.1.20, temos que : ;!
2.
Lema 7.2.6 Se : ;!
ent~ao ` : ! .
7.2. RESULTADOS DE COMPLETUDE
157
Demonstraca~o: Se : ;!
ent~ao existe uma deduc~ao por resoluc~ao de a partir
de :. Seja 1 : : : n uma tal deduc~ao por resoluc~ao. Mostraremos por induca~o em
1 i n que ` : ! i.
Caso base: Se i = 1 ent~ao, por denic~ao de deduc~ao por resoluc~ao , i so pode ser uma
clausula de :. Ent~ao, trivialmente, 1 e uma prova de : ` 1 . Como n~ao se aplicou
Gen na prova, podemos aplicar o teorema da deduc~ao e armar que existe uma prova de
` : ! 1 .
Etapa indutiva: Assuma que ` : ! i para cada i k. Devemos mostrar que `
: ! k+1. Se k+1 e uma clausula de :, ent~ao de modo analogo ao caso base, temos
que ` : ! k+1. Se k+1 e um resolvente de i e j , com i j k, ent~ao pelo lema
??, ` (i ^ j ) ! k+1, isto e ` :(i ! :j ) ! k+1. Pela hipotese indutiva temos
que ` : ! i e ` : ! j . Logo, pelo exerccio 1.f. do captulo 3, temos que
` : ! (i ^ j ). Assim, pela proposica~o 3.3.3.i, temos que ` : ! k+1 .
Como, n = , ent~ao ` : ! . ne
Teorema 7.2.7 Se existe uma refutac~ao por resoluc~ao da negac~ao de , ent~ao e um
teorema. Isto e,
se : ;!
2, ent~ao ` .
Demonstraca~o: Se : ;!
2 ent~ao, pelo lema 7.2.6, ` : ! 2. Como 2 e uma
abreviac~ao da formula ^ : , ou equivalentemente da formula :( ! ) ent~ao ` : !
:( ! ). Assim,
1) : ! :( ! )
2) (: ! :( ! )) ! (( ! ) ! ) prop. 3.3.4.d
3) ( ! ) ! MP 1 2
4) ! prop. 3.2.1
5) Teorema 7.2.8 Para o calculo de predicado as tr^es assertivas seguintes s~ao equivalentes:
1. ` , e um teorema.
2. j= , e logicamente valida
3. : ;!
2, existe uma refutac~ao por resoluc~ao de :.
~ NA LOGICA
CAPITULO 7. COMPUTACAO
DE PREDICADOS
158
Demonstraca~o: Direto dos teoremas 7.2.1 7.2.7 e do corolario 7.2.5.
Assim logica de predicado e segura, completa e consistente. No entanto ela n~ao e
decidvel.
Observe que no caso proposicional temos um teorema da completude forte:
; j= se, e somente se, ; ` se, e somente se, ; ;!
mas no caso da logica de predicados isto n~ao e verdade, pois nos temos, por exemplo, que
P (x) ` 8x:P (x) mas 8x:P (x) n~ao e consequ^encia logica de P (x), isto e, P (x) 6j= 8x:P (x).
Isto se deve a que as exig^encias da relaca~o de consequ^encia logica s~ao muito fortes, mas
se enfraquecermos estas, conseguiremos ter uma noc~ao de consequ^encia sem^antica que
coincida com `.
Deni
c~ao 7.2.9 Seja ; LP e 2 LP . e consequ^encia logica forte de ;, denotado
por ;tj , se toda vez que todas as formulas de ; s~ao verdadeiras numa interpretac~ao, tambem e verdadeira na mesma interpretac~ao. Isto e,
;tj se, e somente se, para cada interpretac~ao D se D j= ; ent~ao D j= Proposi
c~ao 7.2.10 Se ; j= ent~ao ;tj Demonstraca~o: Se D j= ; para uma interpretaca~o D, ent~ao para cada atribuic~ao
: X ;! D, temos que D j= ;. Como ; j= , ent~ao D j= , para cada atribuic~ao
: X ;! D. Portanto, D j= .
Proposi
c~ao 7.2.11 Se ;tj ent~ao FU (;) j= , onde FU (;) e o fecho universal de todas
as formulas em ;.
Demonstraca~o: Note que uma formula e verdadeira numa interpretaca~o se, e somente
se, seu fecho universal tambem e verdadeira para essa interpretac~ao. Note tambem que
se uma formula fechada e verdadeira numa interpretac~ao , ent~ao a ela e verdeira nessa
interpretac~ao para qualquer atribuic~ao. Logo, se FU (;) e verdadeira para uma interpretac~ao D e uma atribuic~ao , ent~ao FU (;) e verdadeira na interpretaca~o D. Portanto,
; e verdadeira na interpretac~ao D. Logo, como ;tj , ent~ao e verdadeira para essa
interpretac~ao (e para a atribuic~ao ). Portanto, FU (;) j= .
Usaremos a notac~aotj em vez de tj .
Corolario 7.2.12 j= se, e somente se,tj 7.2. RESULTADOS DE COMPLETUDE
159
Demonstraca~o: Direto da proposica~o 7.2.10 temos que se j= ent~aotj . Por outro
lado, setj , ent~ao direto da denic~ao detj e de universalmente valida, temos que e
universalmente valida, isto e, j= .
Note que para a relac~ao de consequ^encia forte vale o teorema da compacidade, isto e, se
;tj ent~ao ;0tj para algum ;0 ; nito. Mas, n~ao vale o teorema da deduc~ao irrestrito,
pois trivialmente temos que P (x)tj 8x:P (x), mas n~ao temos quetj P (x) ! 8x:P (x). Assim,
deveriamos impor algumas condico~es, semelhantes ao caso do teorema da deduc~ao para
` ( 6.2.4), mas se tratando de interpretac~ao isto resulta dicil.
Proposi
c~ao 7.2.13 Se ; ` ent~ao ;tj Demonstraca~o: Seja 1 : : : n uma prova de ; ` junto com uma justicativa para
cada passo da deduca~o. Mostraremos por induc~ao que ;tj i para cada 1 i n.
Caso base: i = 1. 1 ou e uma formula de ; ou e um axioma. No primeiro caso,
trivialmente temos que j= , e usando o teorema da compacidade (observac~ao 3. do
captulo 5), temos que ; j= . Logo, pela proposica~o 7.2.10, temos que ;tj . No
segundo caso, temos que ` . Logo, aplicando o teorema seguro temos que j= . Assim,
novamente usando o teorema da compacidade e a proposica~o 7.2.10, temos que ;tj .
Etapa indutiva: Assuma que ;tj i, para i < k. Devemos mostrar que ;tj k .
1. Se k e um axioma ou um elemento de ;, o resultado segue como no caso base,
acima.
2. Se k sai por MP de i e j = i ! k com i j < k, ent~ao pela hipoteses indutiva
;tj i e ;tj i ! k . Isto e, para cada interpretac~ao D, tal que D j= ;, D j= i
and D j= !k . Seja : X ;! D uma atribuic~ao de valores as variaveis arbitraria.
Ent~ao, pela denica~o 5.5.9, V(i) = 1 e V (i ! k ) = 1. Pela denic~ao 5.5.4,
V (i ! k ) = 1 se, e somente se, V (i ) ) V (k ) = 1. Como V (i ) = 1, ent~ao
V (i ) ) V (k ) = 1 se, e somente se, 1 ) V (k ) = 1. Mas, pela denica~o do
operador booleano ), 1 ) V(k ) = 1 se, e somente se, V (k ) = 1. Logo, se
D j= ; ent~ao D j= k . Portanto, ;tj k .
3. Se k sai por Gen de i com i < k, ent~ao k = 8x:i para alguma variavel x. Seja
D uma interpretac~ao tal que D j= ;. Ent~ao, pela hipoteses indutiva (;tj i ), temos
que D j= i, isto e para qualquer atribuica~o de valores as variaveis : X ;! D,
V (i ) = 1. Como a atribuic~ao e arbitraria, ent~ao V0 (i ) = 1 para qualquer
atribuic~ao 0 : X ;! D a qual varia de , no maximo, na atribuc~ao dada a variavel
x. Logo, pela denic~ao 5.5.4, V (8x:i ) = 1. Portanto, ;tj 8x:i , isto e, ;tj k .
Portanto, ;tj i para cada 1 i n. Como n = , ent~ao ;tj .
160
~ NA LOGICA
CAPITULO 7. COMPUTACAO
DE PREDICADOS
Proposi
c~ao 7.2.14 Seja ; uma conjunto de clausulas e uma clausula. Se ;tj ent~ao
; ;!
. Ou seja, se e consequ^encia logica forte de ;, ent~ao existe uma deduc~ao por
resoluc~ao de a partir de ;.
Demonstraca~o: Se ;tj ent~ao FU (;) j= . Pelo teorema da compacidade existe
;0 FU (;) nito tal que ;0 j= . Seja ;0 = f1 : : : ng. Aplicando o teorema
da deduc~ao temos que j= 1 ! (: : : ! (n ! ) : : : ). Pelo teorema da completude,
:(1 ! (: : : ! (n ! ) : : : ) ;!
2. Como, :(1 ! (: : : ! (n ! ) : : : ) 1 ^ : : : n ^ :, ent~ao ;0 : ;! 2 (observe que cada i e uma clausula). Logo, pelo
corolario 4.1.13, temos que ;0 ;!
. Portanto, pela propriedade de monotonicidade a
esquerda (proposica~o 4.1.11), ; ;! .
Proposi
c~ao 7.2.15 ; ;!
implica ; ` .
Demonstraca~o: ; ;!
implica que uma deduc~ao por resoluc~ao de a partir de ;
existe.
Mostremos, por induc~ao que para todo i, ; ` i .
Caso base: i = 1. 1 e uma clausula de ;. Ent~ao, trivialmente, a sequ^encia 1 e uma
prova de ; ` 1.
Etapa indutiva: Assuma que ; ` i , para cada i < k. Devemos mostrar que ; ` k .
1. Se k e uma clausula de ;, ent~ao, como no caso para i = 1, temos que trivialmente,
; ` k .
2. Se k e um resolvente de duas clausulas anteriores na sequ^encia, suponha que de
i e j , onde i j < k, ent~ao k = (i ; p) (j ; pop) para algum literal p. Pela
hipoteses indutiva temos que ; ` i e ; ` j . Observe que p _ pop ! .
Assim, i pop ! (i ; p) e j p ! (j ; pop). Portanto ; ` pop ! (i ; p)
e ; ` p ! (j ; pop). Pelo exerccio 2.f. e 2.g. do captulo 3, temos que ; `
:(i ; p) ! (j ; pop ). Ou seja ; ` (i ; p) (j ; pop ). Portanto, ; ` k .
Para i = n, temos ; ` n. Como n = , ent~ao ; ` . Portanto, ; ;!
implica
; ` .
Teorema 7.2.16 (Teorema da Completude Forte) Na logica de predicados
; ` se, e somente se, ;tj se, e somente se, ; ;!
Demonstraca~o: Direto das proposic~oes 7.2.13, 7.2.14 e 7.2.15.
7.3. EXERCICIOS
161
7.3 Exerccios
1. Transforme as seguintes fbf's na forma normal Prenex, elimine os quanticadores e
transforme-as na forma normal conjuntiva reduzida.
(a) 8x:(:P (x y) ! 9y:P (y x))
(b) 8x:(P (z x) _ R(x y)) ! (9x:P (z x) _ 8x:R(x y))
(c) 9x:P (x y) ! 9y:(P (y x) ^ R(a f (x y)))
(d) 8x:9y:(P (x f (a y)) ^ 9x:R(x))
(e) :(8x:(P (x y) ! 9y:R(y z)) ^ 9z:P (z x))
2. Determine o unicador mais geral para cada um dos seguintes pares de termos. Se
estes n~ao s~ao unicaveis diga o porqu^e.
a:
b:
c:
d:
P (x f (a x))
P (x f (g(a y) z))
f (a f (b f (c x)))
f (x f (a f (y c)))
P (b y)
P (b f (g(a f (w c)) h(y x)))
f (a y)
f (z f (z f (f (a c) w)))
3. Exibir uma refutac~ao por resoluc~ao para cada uma dos seguintes conjuntos de
clausulas. Algumas dicas:
Estandartize a parte um par de clausulas antes de unicar.
Indique cada subtituic~ao unicadora claramente.
Realize a substituic~ao unicadora em ambas as clausulas.
N~ao existe limite para a quantidade de vezes que se usa uma clausula em
particular.
162
~ NA LOGICA
CAPITULO 7. COMPUTACAO
DE PREDICADOS
a: P (a x x)
P (f (y x) w f (x z)) _ :P (y w z)
:P (f (a f (b a)) f (c a) x)
b: Q(a b)
Q(f (y x) g(z)) _ :Q(y z)
:Q(f (x f (c f (d a))) w)
c: R(x a a)
R(x f (x y) z) _ :R(x y z)
R(x f (y z) f (y w)) _ :R(x z w)
:R(b f (b f (c f (b a))) x)
d: P (x e x)
:P (y z v ) _ :P (y v w) _ :P (e z w)
P (a f (u v) e)
:P (e f (f (b c) a) a)
e: P (c a f (x))
P (f (y) a f (z)) _ :P (y x z)
:P (f (f (y )) z f (f (f (z ))))
f: P (x f (x y) g(a))
:P (a x z ) _ P (g (y ) f (a x) z )
:P (g (z ) f (a f (a a)) z ) _ :P (a f (a z ) z )
4. Mostre que ; ;!
, quando:
(a) ; = f:P (x) _ R(x y) P (x)g e = R(x y).
(b) ; = fP (x x) :P (x z) _ P (x y) _ P (y z)g e = P (a a)
5. D^e uma refutac~ao da negac~ao da formula
8x:8y::(P (y x) ! 9z::(P (f (x) f (z )) ! 8x1 ::P (x1 x))) ! 8x2 ::P (f (f (x2 )) x))
Captulo 8
Programac~ao em Logica e Prolog
Os paradigmas funcional e imperativo de programac~ao se baseam na noca~o de que um
programa implementa um mapeamento ou funcao. Numa linguagem imperativa, o programa tipicamente e um comando que l^e entradas de arquivos e imprime sadas de arquivos.
As sadas s~ao funcionalmente dependentes das entradas, desse modo o programa pode
ser visto abstratamente como implementando um mapeamento de entradas em sadas.
Em linguagens funcionais, um programa e tipicamente uma func~ao, e portanto obviamente implementa uma aplicac~ao. Ja a programac~ao em logica se baseia na noca~o de que
um programa implementa uma relac~ao, em vez de um mapeamento. Como relac~oes s~ao
mais gerais que func~oes, programac~ao em logica e potencialmente de mais alto nvel que
programac~ao funcional e imperativa.
A logica, alem de ser um formalismo propcio para representar de manera declarativa o
conhecimento sobre alguma realidade, pode ser executada, no sentido que podemos escrever programas que representem o conhecimento usando o formalismo de um subconjunto
da logica de predicados (notac~ao clausal) como linguagem de representac~ao, podem-se
inferir novos fatos e conhecimentos usando deduco~es atraves de alguns metodos de prova
automatica de teoremas.
Quando se usa logica como formalismo de representaca~o, a resoluca~o de problemas
se encara como demonstrac~ao de teoremas. O principio de resoluc~ao e o algoritmo de
unicac~ao de Robinson, descrito no captulo anterior, fornecem a base para execuc~ao de
programas em logica. Um programa em logica e um modelo ou descric~ao de um problema
ou situac~ao atraves de um conjunto nito de sentencas logicas. Assim, ao contrario de
programas procedurais ou imperativos, por exemplo escritos em C++ ou Java, um programa em logica n~ao descreve um procedimento (uma sequ^encia de passos ou comandos
computacionais) para resolver um problema, mas o proprio problema. Este tipo de abordagem, conhecido como programac~ao declarativa, n~ao e exclussivo do paradigma logico
de programac~ao, pois o paradigma funcional descreve um problema em termos de denic~oes e avaliac~oes de func~oes , pelo que tambem pode ser considerado como programac~ao
declarativa.
Um programa em logica pode ser visto como uma base de dados mais complexa, onde
163
164
~ EM LOGICA
CAPITULO 8. PROGRAMACAO
E PROLOG
n~ao so se t^em dados do tipo: \Luiz paga a disciplina logica aplicada a computaca~o ", mas
tambem regras indicando como deduzir novos fatos, por exemplo \todo aluno que paga
logica aplicada a computac~ao ja pagou algebra universal". Claramente, de essa informac~ao
e dessa regra podemos deduzir que \Luiz ja pagou algebra universal", sem precissar incluir
explicitamente esta informac~ao no programa. A execuc~ao de um programa em logica e
realizada atraves de consultas ao programa, isto e, armaco~es exprimindo condico~es que
devem ser satisfeitas por um resposta correta, com respeito a informac~ao contida no
programa. A maioria dos sistemas desenvolvidos para programac~ao em logica encontr~ao
as respostas das consultas ao programa atraves de uma pesquisa de refutaco~es da negac~ao
da consulta.
Assim, o formalismo logico permite emular sistemas baseado em regras, com encadeamento para adelante ou para atras, e objetos estruturados. Pode-se tambem, com maior
diculdade, manipular valores por default e exepco~es, assim como quanticar existencial e
universalmente a express~oes. Fundamentalmente, um programa em logica pode ser visto
como uma teoria de verdade que da fundamento solido a todo o sistema. Sintetizando, programac~ao em logica e logica em ac~ao, onde as computac~oes s~ao realizadas como
deduc~oes.
Na atualidade existem diversas linguagens de programaca~o com esta losoa, chamada
paradigma da programac~ao em logica. As mais conhecidas s~ao Prolog, G+odel HL94] e
Isabelle Pau94, NP01].
Aqui descreveremos a linguagem de programaca~o Prolog, o qual e uma ferramenta
usada para escrever programas baseados no raciocnio logico (classico) que s~ao executaveis
pelo computador. Prolog e um acr^onimo de PROgramming in LOGic (programac~ao em
logica). Assim, Prolog, e uma linguagem de programaca~o baseada em logica formal.
Muitos programas de intelig^encia articial s~ao escritos em Prolog, pois esta linguagem
permite, de maneira natural, a representac~ao e deduca~o de conhecimento.
O Prolog foi implementado e projetado por Alain Colmerauer e seu Grupo de Intelig^encia Articial ?], na Franca em 1972, fruto dos trabalhos e ideias de Robert Kowalski e outros autores Kow72, Kow74]. Mas esta linguagem so comecou a cativar adeptos
a nvel mundial, quando Pereira, Pereira e Warren implementaram na Universidade de
Edinburgh PPW79] o primeiro compilador Prolog escrito em Prolog.
Prolog e uma linguagem de programac~ao interativa baseado em logica com facilidades
para a manipulac~ao smbolica e com um motor de infer^encia, que lhe permite responder
automaticamente quest~oes, n~ao so referentes ao conhecimento que contem explicitamente
cada programa, mas tambem ao que se pode deducir de ele.
Prolog utiliza um subconjunto da logica de predicados de primeira ordem, chamado
clausulas de Horn, que se caracteriza por que cada regra pode conter nenhum, hum ou
mais antecendentes unidos conjuntivamente, mais no maximo so pode ter um consequente.
As infer^encias se realizam mediante o principio da resoluca~o proposto por Robinson
em Rob65], utilizando o algoritmo da unicac~ao.
8.1. CONCEITOS BASICOS
165
Existem predicados predenidos que implementam funco~es extra-logicas. Estos predicados, embora fogem da proposta original de programaca~o declarativa, s~ao necessarios
para que Prolog seja uma linguagem de programac~ao de utilizaca~o pratica real.
Uma caracterstica desta linguagem, assim como de diversas linguagens funcionais,
e que programas nesta linguagem n~ao s~ao eci^entes quando rodados em um hardware
convencional, que foram projetados para linguagens procedurais, que s~ao mais orientadas
ao calculo numerico.
Muitos programas de intelig^encia articial s~ao escritos em Prolog, pois esta linguagem
permite, de maneira natural, a representac~ao e deduca~o de conhecimento.
Neste captulo daremos uma introduc~ao a esta linguagem, cobrindo as bases do Prolog,
de modo que, o estudante, com ajuda de um manual do usuario, seja capaz de escrever e
executar programas em algum dos tantos compiladores Prolog.
8.1 Conceitos Basicos
8.1.1 Clausulas de Horn
Vimos que toda fbf do calculo de predicado e equivalente a uma fbf na forma normal
prenex e a parte livre de quanticadores dela e equivalente a uma formula na forma normal
conjuntiva reduzida. A eliminac~ao de quanticadores n~ao gera uma formula equivalente,
mas a formula original e um teorema ou uma contradic~ao se, e somente se, a formula
resultante do processo de skolemizac~ao tambem e um teorema ou uma contradic~ao ,
respectivamente. Consideramos ent~ao, esta formula bem formada como um conjunto
(entendido, por convenc~ao, como sendo uma conjunc~ao) de clausulas, cada uma das quais
e um conjunto (entendido como uma disjunca~o) de literais.
Deni
c~ao 8.1.1 Uma clausula de Horn e uma clausula com no maximo um literal
positivo.
E conveniente, de um ponto de vista de programac~ao, escrever clausulas como implicac~oes em vez de disjunc~oes. Assim a clausula
:1 _ _ :n _ 1 _ _ k
seria escrita
(1 ^ ^ n) ! (1 _ _ k )
E uma clausula de Horn, como
166
~ EM LOGICA
CAPITULO 8. PROGRAMACAO
E PROLOG
:1 _ _ :n _ seria escrito
(1 ^ ^ n) ! Portanto, uma clausula de Horn e uma implicaca~o cujo antecendente e uma conjunc~ao
de formula at^omicas e cujo consequente consiste de no maximo uma formula at^omica.
Existem quatro tipos de clausulas de Horn
1. Aquelas com uma conclus~ao mas sem nenhuma condica~o
2. Aquelas com condic~oes e conclus~ao
3. Aquelas com condic~oes mas sem nenhuma conclus~ao
4. A clausula vazia, escrito 2, como anteriormente.
No que segue sobre programac~ao em logica, usaremos convenc~oes da sintaxe Prolog.
Isto nos permitira usar nomes para predicados, func~oes, constantes e variaveis mais signicativos (mnem^onicos).
Smbolos de predicados, de func~oes e constantes iniciar~ao com letras minusculas (numero
podem tambem ser usados como smbolos de constantes), variaveis comecar~ao com letras
maiusculas. Escreveremos, tambem, implicaco~es na clausula de Horn para tras (isto e, a
conclus~ao sera colocada primeiro, e usaremos :-, em vez de para separar a conclus~ao
das condic~oes das implicac~oes).
8.1.2 Caractersticas Basica do Prolog
Comparada com as linguagens algortmicas classicas, tais como Pascal, C e JAVA, que
s~ao antes de tudo projetadas para computac~oes numericas, escrever sistemas, etc., uma
linguagem para programac~ao em logica tem duas principais diferencas.
Ela e orientada para \computaca~o simbolica": os dados basicos s~ao \smbolos" os
quais somente representam eles proprios e n~ao s~ao interpretados na linguagem.
Ela n~ao especica o algoritmo diretamente para ser executado e produzir resultados,
mas especica objetos, propriedades dos objetos e relaco~es entre eles. Fala de fatos,
regras para derivar novos fatos, e consultas (queries em ingl^es) para constatar se um
fato foi estabelecido ou n~ao.
8.2. ESTRUTURA BASICA
DO PROLOG
167
8.2 Estrutura Basica do Prolog
As tr^es especies de assertivas: fatos, regras e quest~oes podem ser lidas como predicados
em logica e, neste caso, a linguagem e um subconjunto da logica formal. Ao mesmo
tempo, Prolog e uma linguagem de programaca~o: para obter a resposta a uma consulta
e executado um algoritmo numa ordem precisa. No que segue, apresentaremos esses dois
aspectos: o declarativo da logica formal e o procedural das linguagens de programac~ao.
Prolog e interessante por ser, de alguma maneira, logica em aca~o. Ela executa formulas
logicas. Considere, por exemplo, os dois axiomas
\0 e um numero natural"
\se n e um numero natural, ent~ao s(n) e um numero natural"
Um programa Prolog pode implementar esses axiomas da seguinte maneira
natural(0).
natural(s(n)) :- natural(n).
Este programa e capaz de gerar e reconhecer numeros naturais, dependendo da quest~ao:
?- natural(s(s(s(0)))).
;! sim
?- natural({).
;! sim
?- natural(Prolog).
;! n~ao
?- natural(X).
;! X=0
;! X=s(0)
;! X=s(s(0))
;! X=s(s(s(0)))
...
A primeira consulta e \s(s(s(0))) e um numero natural"?, a segunda e \existe um
numero natural"?, a terceira \Prolog e um numero natural? e a ultima e \O que e um
numero natural"?. Se quizermos que s(s(s(0))) seja escrito 3, temos de programa-lo para
tal.
Um programa realizando diferenciac~ao simbolica de polin^omios pode conter o fato
~ EM LOGICA
CAPITULO 8. PROGRAMACAO
E PROLOG
168
deriv(X,X,1)
para representar que a derivada de x com respeito a x e 1. Ele pode conter as regras:
deriv(U+V,X,A+B) :- deriv(U,X,A),deriv(V,X,B).
deriv(U-V,X,A-B) :- deriv(U,X,A),deriv(V,X,B).
A primeira dessas duas regras diz que \a derivada de U+V com respeito a X e A+B se
A e a derivada de U e B e a derivada de V". Tais assertivas denem o ponto de vista Prolog
da relac~ao ternaria \a derivada de com respeito a e ". Este e o aspecto logico da
linguagem, ou sua leitura declarativa. Ja no aspecto procedural de Prolog, se descrevem
computac~oes a serem executadas. Assim, a primeira regra diz que \para obter a derivada
de U+V, primeiro se deve computar a derivada de U e V, dando A e B respectivamente,
e ent~ao construir o termo A+B".
As raz~oes para essa dupla leitura e a seguinte: Um sistema Prolog e um provador de
teoremas explorando os aspectos logicos da linguagem. O sistema tem de mostrar uma
contradic~ao entre a negac~ao da quest~ao e o conjunto de fatos e regras. Esta refutac~ao,
quando bem sucedida, exibe contra-exemplos que s~ao as respostas a quest~ao. A estrategia
usada para achar e simples.
8.2.1 Termos e objetos
Em Prolog, assim como em logica, objetos num \universo de discurso" (que e o conjunto
dos objetos considerados) s~ao representados por termos. Como a linguagem n~ao interpreta
esses termos, podemos dizer, tambem, que os objetos tratados por Prolog s~ao termos, cada
termo sendo um objeto simbolico pertecente a uma das seguintes categorias:
constantes individuais ou atomos,
variaveis,
func~oes ou termos funcionais consistindo de um nome de func~ao e uma lista de
argumentos, que s~ao termos.
A sintaxe deve permitir classicarmos um termo na sua categoria, especialmente
variaveis como distintas de constantes. A sintaxe usada depende de cada implementac~ao
do Prolog. Aqui usaremos
Um atomo pode ser escrito de uma das tr^es maneiras:
{ como um identicador comecando com uma letra minuscula, podendo conter
subtracos:
8.2. ESTRUTURA BASICA
DO PROLOG
169
henrique iv.
pedro
{ como um numero
321
3.21
{ como uma sequ^encia de caracteres sob aspas simples
\quem e voce?"
\eu n~ao sei"
Uma variavel e um identicador comecando com uma letra maiuscula, podendo
conter sub-traco
X
Nome
Rei da Belgica
Uma func~ao e um nome de func~ao seguido por uma lista de termos entre par^enteses,
onde um nome de func~ao tem a forma de um atomo n~ao-numerico:
autor de(scott)
f(x,y,z)
\oi!"(pedro)
Um programa em Prolog e usualmente um modelo de alguma parte da realidade cujos termos s~ao usados para representar objetos reais. Por exemplo, para modelar uma
biblioteca, os atomos podem representar nomes de autores e ttulos de livros, termos
funcionais podem representar livros e edic~oes:
edic~ao(wiley,1987)
livro(davis,the undecidable,edic~ao(raven,1965))
Portanto, os atomos representam objetos que s~ao considerados indivduos elementares.
E pratica normal usar identicadores mnem^onicos, isto e, nomes que lembram os objetos
que eles representam, tais como wiley, davis, em vez de nomes an^onimos como x22 ou bbb. O
mesmo podemos dizer para termos funcionais: edic~ao(wiley,1987) e n~ao e(w,1987). E bom
observar que as func~oes de Prolog s~ao vistas como estruturas de dados compostas, similares
aos registros em Pascal, e consequentemente, elas podem ser construdas e analisadas. Elas
n~ao s~ao func~oes aplicadas a argumentos para denotar o resultado correspondente.
Termos em que n~ao ha variavel s~ao os dados constantes em Prolog. Em logica eles s~ao
os termos basicos ou termos constantes. A menos dos atomos numericos, os termos
n~ao s~ao interpretados por Prolog, isto e, eles n~ao representam os dados, eles s~ao os dados.
170
~ EM LOGICA
CAPITULO 8. PROGRAMACAO
E PROLOG
8.2.2 O Escopo dos Identicadores
A menos de atomos numericos, que podem ser interpretados como numeros nas computac~oes numericas, e tirando func~oes ou predicados construdos, que tem um signicado
pre-denido, os nomes em Prolog, para constantes, variaveis, func~oes e predicados, n~ao
tem nenhum signicado intrnseco e podem ser escolhidos livremente pelo programador.
No entanto, distinguimos variaveis de constantes em virtude da primeira letra (maiuscula
no caso de variavel e minuscula no caso de constante). Em geral duas notac~oes distintas denotar~ao, ou ser~ao, objetos distintos. Existem mais ou menos excess~oes obvias, por
exemplo, para numeros, onde 133.1 e 133.10 denotam o mesmo numero.
Com em qualquer linguagem de programaca~o, a cada nome tem de ser dado um escopo,
que e a parte do programa onde o nome pode ser escrito para signicar um objeto. Em
Prolog, as regras de escopo s~ao:
O escopo de um variavel e a assertiva (fato, regra, ou consulta) na qual aparece.
O escopo de qualquer outro nome (constante, nome de func~ao, ou nome de predicado) e todo o programa.
Isto signica que um nome de variavel pode ser usado e reusado a vontade no programa
para denotar variaveis diferentes, enquanto qualquer outra notaca~o representa, ou e, o
mesmo objeto para o programa todo.
No fragmento da base de dados de uma famlia reproduzida abaixo, as ocorr^encias de
m~ae s~ao o mesmo predicado (uma vez que existem dois argumentos nos quatro casos).
Por outro lado, tr^es variaveis aparecem duas vezes em cada regra, mas, como a intuic~ao
sugere, as variaveis de uma regra s~ao diferentes daquelas da outra.
m~ae(vera,lucia).
m~ae(lucia,alice).
av^o(X,Y) :- pai(X,Z),m~ae(Z,Y).
avo(X,Y) :- m~ae(X,Z),pai(Z,Y).
8.3 Fatos Elementares
Os predicados simples (ou formulas at^omicas) da logica denotam valores verdade. Por
exemplo, o predicado
autor de(pablo neruda,canto geral).
denota um valor verdade. Este, tambem, e o caso em Prolog, ao menos aproximadamente. Fatos e quest~oes sem variaveis podem ser vistos como signicando \verdade" ou
\falso". Aproximadamente, porque Prolog, sendo uma linguagem de programac~ao, tem
8.4. CONSULTAS
171
uma sem^antica operacional, na qual \verdade" e \falso" s~ao antes de tudo resultados de
programas executados.
Um predicado simples e escrito em Prolog como um termo funcional:
autor de(pablo neruda,canto geral).
deriv(X,X,1).
E o contexto que determina se uma formula at^omica e para ser tratada como um termo
funcional ou como um predicado. Predicados simples s~ao os blocos construtores usados
para escrever fatos e quest~oes.
O programa seguinte e uma lista de fatos
/* fatos */
/* \Em
tem(em
lialia,bicicleta).
tem uma bicicleta" */
lia,maria). /* \Em lia gosta de Maria" */
tem(jo~ao,bicicleta).
livro(davis,the undecidable,edic~ao(raven,1965)).
chove.
Os fatos s~ao predicados simples seguido por um ponto. O par /* */ encerra um
comentario, isto e, um texto que e ignorado quando o programa for executado.
Cada fato que aparece num programa estabelece um valor verdade, uma relac~ao entre
objetos estabelecida como verdadeira. Por exemplo, a relac~ao binaria (ou predicado)
chamada gosta e estabelecida entre emlia e maria, livro e uma relac~ao 3-aria, isto e, um
predicado com tr^es argumentos, e chove uma relac~ao 0-aria. Um conjunto de fatos pode
ser entendido como um banco de dados relacional. De fato, o conjunto de fatos e regras
que constituem um programa Prolog sera denominado, aqui, uma base de dados.
8.4 Consultas
Predicados simples tambem servem na construc~ao de consultas (ou quest~oes, perguntas
ou metas) tais como
?- tem(jo~ao,bicicleta).
Isto n~ao estabelece qualquer fato novo, mas e uma \pergunta ao sistema", indagando
se ou n~ao um fato foi estabelecido. Neste caso (uma quest~ao simples, nenhuma variavel,
nenhuma regra), o valor e verdade se o fato feito de um predicado da pergunta esta na
base de dados, caso contrario o valor e falso. Isto e o que intuitivamente se espera e o
sistema responde sim ou n~ao de acordo com a base de dados. Na pratica, a sequ^encia
pergunta-resposta da:
172
~ EM LOGICA
CAPITULO 8. PROGRAMACAO
E PROLOG
?- tem(jo~ao,bicicleta)
;! sim
Assim, na sua forma mais simples, um programa Prolog registra fatos elementares
e responde consultas simples sobre eles. A base de dados e a denic~ao extencional das
relac~oes que ele contem, aqui, tem(-,-), gosta(-,-), livro(-,-,-), e chove.
Consultas simples contendo somente termos basicos (as constantes da linguagem) s~ao
perguntas do tipo sim-n~ao, isto e, somente tem duas possveis respostas: sim se o fato
esta na base de dados e n~ao se o fato n~ao esta na base de dados.
E bom deixar claro que a sem^antica de uma consulta e denida com respeito a uma
dada base de dados, num dado momento: uma consulta simples indaga se um fato foi
estabelecido ou n~ao, que pode ser o seu signicado. Por exemplo, para a base de dados
fatos, obteramos a seguinte sequ^encia:
?- tem(jo~ao,bicicleta)
;! sim
?- tem(pedro,bicicleta)
;! n~ao
?- tem(jo~ao,biiccleta,)
;! n~ao
?- chove(agora)
;! n~ao
Como Prolog n~ao tem controle de declaraca~o nem de tipo, as ultimas duas perguntas
n~ao s~ao erros Prolog, mesmo que eles sejam provavelmente um erro de programac~ao. Um
nome faltando ou mudando uma ou varias letras e exatamente um outro atomo simbolico e
o mesmo atomo simbolico pode nomear relac~oes que diferem pelo numero de argumentos.
Portanto, para Prolog, simplesmente n~ao existem fatos na base de dados casando com as
tr^es ultimas perguntas.
8.4.1 Conjunc~oes
Formulas logicas s~ao escritas com predicados simples e conectivos. Este, tambem, e o caso
em Prolog, sendo que a construc~ao mais frequente e a conjunc~ao, denotada por vrgula:
?- tem(jo~ao,bicicleta), tem(emlia,bicicleta).
Essa conjunca~o usada, aqui, numa consulta, e mais ou menos equivalente a formula
logica
tem(jo~ao,bicicleta)^tem(emlia,bicicleta).
8.5. VARIAVEIS
173
Em logica, uma conjunc~ao e verdadeira se todas as suas componentes s~ao verdadeiras.
Isto, tambem, acontece em Prolog, com uma diferenca importante: a ordem na qual as
componentes s~ao consideradas, da esquerda para a direita, faz parte da sem^antica.
8.5 Variaveis
O uso das variaveis em Prolog e analogo, mas n~ao equivalente a seu uso em logica. As
consultas em Prolog vistas ate aqui contem somente termos basicos, isto e, n~ao contem
variaveis, e tem somente uma de duas possveis respostas: sim ou n~ao. Consultas mais
interessantes s~ao aquelas cujas respostas s~ao listas de objetos satisfazendo uma dada
relac~ao. Por exemplo, \quais as pessoas que possuem bicicleta?" e uma pergunta cuja
resposta e uma lista de objetos. Relativamente a base de dados \fatos", a resposta
completa para esta quest~ao seria a lista emlia,jo~ao]. Em Prolog, este tipo de consultas
s~ao expressas com a ajuda de variaveis. Um pronome como \quais" e expresso por uma
variavel como X, e a pergunta acima pode ser escrita
?- tem(X,bicicleta).
Intuitivamente, obteramos uma resposta substituindo a variavel X por uma constante
que torna o termo assim obtido igual a um fato da base de dados. Por exemplo, emlia e
uma tal constante.
?- tem(X,bicicleta).
;! X=emlia
O sistema responde com um valor para a variavel que transforma a consulta em um
predicado verdadeiro. Por que emlia e n~ao jo~ao ou emlia,jo~ao]?. Foi feita uma escolha
mais ou menos arbitraria: somente e produzida a primeira resposta, o signicado de
\primeira" depende do algoritmo que computa a resposta.
A base de dados n~ao e um conjunto, mas uma lista ordenada de assertivas (fatos e
regras). Para responder a uma consulta, o sistema pesquisara a base de dados nesta
ordem, usualmente a ordem textual na qual assertivas entraram, para achar a primeira
assertiva que satisfaz o predicado na pergunta. Este predicado, que aqui e tem(X,bicicleta),
e chamado o meta. O meta e bem sucedido se uma assertiva na base de dados satisfaz
seu predicado. Um fato que satisfaz um simples predicado como tem(X,bicicleta) deve ter
a forma tem({,bicicleta), isto e, deve ter
o mesmo nome de predicado
o mesmo numero de argumentos, dois,
as mesmas constantes nos mesmo lugares, bicicleta como primeiro argumento.
~ EM LOGICA
CAPITULO 8. PROGRAMACAO
E PROLOG
174
Quando essas tr^es condic~oes s~ao satisfeitas, dizemos que o fato e o predicado se casam.
Tal fato aqui, e
tem(emlia,bicicleta)
Ent~ao a variavel X da quest~ao, toma como valor (e instanciado por) o termo basico
que esta no lugar no fato. Este da o resultado esperado:
;! emlia.
Uma outra maneira de expressar a sem^antica desta pergunta e \pode uma atribuic~ao
a X ser encontrada tal que a formula resultante esta na base de dados?". A atribuic~ao
X=emlia
atende esse requisito.
Prolog produz somente, uma resposta, mesmo se varias s~ao possveis, e a escolha dela
e uma decis~ao arbitraria que dependera ao modo iterativo que nosso Prolog trabalha. O
usuario que quer mais tem de diz^e-lo, digitando um ponto e vrgula. Isto diz ao sistema
que uma outra resposta esta sendo esperada:
?- tem(X,bicicleta).
;! X=emlia
;! X=jo~ao
;! n~ao
A ultima resposta, n~ao, signica que n~ao existe mais casamento na base de dados.
Se considerarmos a pergunta
?- tem(X,bicicleta).
como uma chamada de procedimento que tem de produzir um resultado, ent~ao a constante
bicicleta e o argumento da chamada (o par^ametro de entrada) e a variavel X representa o
resultado (o par^ametro de sada). Este ponto de vista e do usuario e n~ao do Prolog. Na
assertiva na base de dados, n~ao existe diferenca entre os argumentos. Quais s~ao os valores
que devem aparecer na resposta e indicado somente pelas variaveis presentes na consulta.
Por exemplo:
?- tem(jo~ao,X).
;! X=bicicleta.
?- tem(X,Y).
;! X=emlia, Y=bicicleta
;! X=jo~ao, Y=bicicleta
;! n~ao
8.5. VARIAVEIS
175
Variaveis podem ser usadas, tambem, em fatos:
gosta(X,pera).
poderia ser uma traduc~ao em Prolog da sentenca \todos gostam de pera" e da formula
logica
8x:gosta(x pera):
Qualquer consulta da forma ?- gosta({,pera) sera satisfeita se a base de dados contem o
fato gosta(X,pera). Quando usado numa conjunca~o, uma variavel estabelece uma ligac~ao
entre os predicados na conjunc~ao (tomando os mesmos valores em todas suas ocorr^encias).
A pergunta \quem s~ao os proprietarios de bicicleta que gost~ao de Maria?" torna-se:
?- tem(X,bicicleta), gosta(X,maria).
A resposta a tal pergunta e computada satisfazendo as duas partes (submetas) da
conjunc~ao. A primeira submeta,
tem(X,bicicleta),
e bem sucedido para o fato
tem(emlia,bicicleta)
com X tomando o valor emlia (no caso de falha, a resposta a toda a quest~ao teria sido
\n~ao"). Ent~ao, um casamento para o segunda submeta e transformado em
gosta(emlia,maria)
Um casamento para a meta e achado e a primeira resposta e
;! X=emlia
Se o usuario digitar ponto e vrgula para perguntar por um outro valor para X, a
pesquisa comecara no lugar onde o ultimo casamento foi encontrado, a meta sendo o
mesmo, isto e,
gosta(emlia,maria),
que n~ao pode ser satisfeito uma segunda vez. O sistema ent~ao reverte para a submeta
imediatamente precedente que e
tem(X,bicicleta).
~ EM LOGICA
CAPITULO 8. PROGRAMACAO
E PROLOG
176
Isto e, backtracking. A submeta e bem sucedida uma segunda vez, por
tem(X,bicicleta),
dando a X o valor jo~ao. Agora, a segunda submeta torna-se
gosta(jo~ao,maria)
e isto falha. A proxima resposta e n~ao.
8.5.1 Variaveis An^onimas
Todas as variaveis usadas ate aqui tiveram um nome como X ou Y. Existem, tambem,
variaveis an^onimas, todas representadas por um subtraco.Se desejamos saber na base de
dados fatos se existem possuidores de bicicleta, a pergunta
?- tem(X,bicicleta).
vista anteriormente, produzira sucessivamente emlia e jo~ao como respostas, embora gostassemos de um simples sim ou n~ao. Isto pode ser obtido trocando X por uma variavel an^onima.
A pergunta
?- tem({,bicicleta).
produz a resposta
;! sim
Do ponto de vista de casar uma meta, uma variavel an^onima comporta-se como qualquer variavel e pode casar com qualquer termo. A diferenca e que o termo casado n~ao e
atribuido a ela. Uma primeira consequ^encia e que diversas ocorr^encias do smbolo { numa
consulta denotam diferentes variaveis an^onimas: eles podem casar diferentes termos. Uma
segunda consequ^encia e que nenhum valor para variaveis an^onimas aparecera na sada.
A seguinte pergunta produzira uma lista de possuidores de algum objeto
?- tem(-,X).
;! X=emlia
;! X=jo~ao
;! n~ao
8.6. REGRAS
177
8.6 Regras
A terceira e ultima especie de assertiva Prolog e a regra, que generaliza fatos e da pot^encia
a linguagem, tornando a base de dados dedutiva.
Por exemplo, para construir uma base de dados sobre famlias, podemos modelar
algumas relac~oes familiares por fatos, tais como:
m~ae(vera,lucia).
m~ae(lucia,alice).
pai(roberto,lucia).
pai(edmundo,alice).
para representar as relac~oes familiares \Vera e m~ae de Lucia", \Lucia e m~ae de Alice",
\Roberto e pai de Lucia" e \Edmundo e pai de Alice".
N~ao parece razoavel continuar e representar, por exemplo, os fatos
avo(vera,alice).
av^o(roberto,alice).
uma vez que tais relac~oes podem ser deduzidas da relac~ao de parentesco: \X e avo de Y
se existe Z cuja m~ae e X e que e m~ae ou pai de Y" e \X e av^o de Y se existe Z cuja pai e
X e que e m~ae ou pai de Y" Tal assertiva s~ao modeladas em Prolog pelas regras:
avo(X,Y) :- m~ae(X,Z),m~ae(Z,Y).
avo(X,Y) :- m~ae(X,Z),pai(Z,Y).
av^o(X,Y) :- pai(X,Z),m~ae(Z,Y).
av^o(X,Y) :- pai(X,Z),pai(Z,Y).
onde o smbolo :- pode ser lido com \se". E claro que embora tenhamos introduzidos
quatro regras para deduzir os dois fatos acima, estamos economizando memoria. Pois,
generalizando os parentescos \av^o" e \avo" em bases de fatos onde existam diversos fatos
envolvendo este parentesco, ainda so precissaremos destas quatro regras para deduzir
todos estes parentescos.
A forma geral para uma regra e
C :- P1 ,P2 , ,Pn .
onde C,P1 ,P2 , ,Pn s~ao predicados simples. Isto pode ser lido como \C se (P1 e P2 e
e Pn )". O predicado C e a cabeca ou conclus~ao da regra, enquanto a sequ^encia de
~ EM LOGICA
CAPITULO 8. PROGRAMACAO
E PROLOG
178
predicados P1,P2 , ,Pn e o corpo da regra ou conjunto de premisas. Tal regra re)ete uma
clausula de Horn.
Essas s~ao maneiras diferentes de escrever clausulas de Horn. Em termos de linguagem
de programac~ao, uma regra e analogo a declaraca~o de um procedimento. A cabeca de
uma regra e estabelecida como signicando o mesmo que o corpo das regra. Por exemplo,
nas regras para representar o parentesco \avo", o corpo
avo(X,Y),
signica
m~ae(X,Z),m~ae(Z,Y).
ou
m~ae(X,Z),pai(Z,Y).
Em outras palavras, regras como esta indicam que uma quest~ao tal como
?- avo(ana,julia).
e para ser transformada nas quest~oes
?- m~ae(ana,Z),m~ae(Z,julia).
?- m~ae(ana,Z),pai(Z,julia).
Numa base de dados, regras s~ao consideradas do mesmo modo que fatos: suas ocorr^encias
s~ao para estabelecer suas verdades, e s~ao usadas pelo sistema para deduc~ao. De um ponto
de vista logico, variaveis em regras s~ao vistas como quanticadas universalmente. Assim,
a regra
avo(X,Y) :- m~ae(X,Z),m~ae(Z,Y).
pode ser interpretada como a formula logica
8x8y 8z (ma~e(x z ) ^ ma~e(z y ) ;! av o(x y ))
Regras s~ao as assertivas mais gerais. Um fato pode ser considerado uma regra sem
o lado direito, enquanto uma consulta pode ser considerada uma regra sem um lado
esquerdo. Elas podem ser lidas, respectivamente, como C e verdadeira se P1 e P2 e e
Pn s~ao verdadeiras (regra com cabeca e corpo), F e verdadeira (fato ou regra sem corpo),
s~ao P1 e P2 e e Pn verdadeiras? (consulta ou regra sem cabeca).
Consideremos a seguinte base de dados:
8.6. REGRAS
179
/* Base de Dados Famlia */
~ae(X,Y) denota \X
ai(X,Y) denota \X
v^o(X,Y) denota \X
o(X,Y) denota/*e\Xav
nino(X) denota \X
ulino(X) denota \X
e m~ae de Y" */
e pai de Y" */
e av^o de Y" */
o de Y" */
e do sexo feminino" */
e do sexo masculino" */
m~ae(vera,lucia).
m~ae(lucia, alice).
m~ae(vera,julia).
pai(roberto,lucia).
pai(roberto,julia).
pai(andre,vera).
pai(andr e,jo~ao).
av^o(X,Y) :- pai(X,Z),m~ae(Z,Y).
av^o(X,Y) :- pai(X,Z),pai(Z,Y).
avo(X,Y) :- m~ae(X,Z),pai(Z,Y).
avo(X,Y) :- m~ae(X,Z),m~ae(Z,Y).
feminino(X) :- m~ae(X,{).
feminino(alice).
feminino(julia).
masculino(X) :- pai(X,{).
masculino(jo~ao).
Nesta base de dados, as relac~oes m~ae e pai s~ao denidas (em extens~ao) por fatos,
enquanto as relac~oes av^o e avo s~ao denidas (em intens~ao) por regras. Uma resposta a
pergunta
?- av^o(roberto,alice).
n~ao pode ser encontrada entre os fatos na base de dados, de vez que nenhum fato casa
com ele, mas e encontrada entre as regras onde algumas cabecas de regra casa com ela.
Uma pergunta pode ser casada pela cabeca de uma regra do mesmo modo que ela
casa com um fato: mesmo nome de predicado, mesmo numero de argumentos, mesmas
constantes nos mesmos lugares. Assim, o predicado
?- av^o(roberto,alice).
e casado com
~ EM LOGICA
CAPITULO 8. PROGRAMACAO
E PROLOG
180
av^o(X,Y).
Este casamento associa valores as variaveis na cabeca da regra:
Y=alice.
X=roberto,
Ent~ao o corpo da regra, na qual as variaveis tomaram novos valores, tornam-se a nova
meta a ser satisfeita, neste caso:
?- pai(roberto,Z),m~ae(Z,alice).
Este meta e uma conjunc~ao de predicados, a ser tratada como uma sequ^encia de
submetas. Eles s~ao satisfeitos pela atribuic~ao
Z=lucia
e a resposta a pergunta e sim.
O valor de uma variavel interna, isto e, uma variavel tal como X, Y e Z, que n~ao
aparecem na pergunta, nunca s~ao impressos. Aqui a pergunta pede uma resposta simn~ao, as variaveis internas servem somente para computar esta resposta.
Observe que no caso da pergunta
?- avo(vera,alice)
sera casado com
avo(X,Y).
na regra
avo(X,Y) :- m~ae(X,Z),pai(Z,Y).
Este casamento associara os seguintes valores as variaveis X e Y:
X=vera,
Y=alice.
em seguida o corpo da regra com os valores de X e Y ja instanciados sera a nova meta,
isto e
?-m~ae(vera,Z),pai(Z,alice).
como n~ao existe em famlia nenhum valor para Z satisfazendo esta pergunta, o Prolog
casara a meta original com a regra
~ E NEGACOES
~
8.7. DISJUNCOES
181
avo(X,Y) :- m~ae(X,Z),m~ae(Z,Y).
Assim, a ordem em que aparecem as regras e fatos num programa Prolog e importante
na execuc~ao do programa.
8.6.1 Regras Recursivas
Uma base de dados sobre relac~oes familiares deveria ser capaz de responder quest~oes sobre
ancestralidade. O predicado \X e ancestral de Y" tem, necessariamente, uma denic~ao
recursiva. Em Prolog ancestralidade pode ser denido pelas regras
ancestral(X,Y) :- m~ae(X,Y).
ancestral(X,Y) :- pai(X,Y).
ancestral(X,Y) :- m~ae(X,Z),ancestral(Z,Y).
ancestral(X,Y) :- pai(X,Z),ancestral(Z,Y).
Regras recursivas como estas devem ser permitidas, caso contrario a linguagem n~ao
seria util para muitas aplicac~oes.
Qualquer predicado denido por uma regra recursiva deve, e claro, ter no mnimo uma
denic~ao n~ao recursiva. Se isso n~ao acontecesse, a denica~o seria logicamente mal-formada
e o programa correspondente caria em crculo (laco innito). Para evitar isto e, alem
disso, necessario tomar cuidado com a ordem na qual casamentos s~ao procurados para
metas. Por exemplo se invertermos a ordem nas regras recursivas do predicado ancestral,
isto e
ancestral(X,Y) :- ancestral(Z,Y),m~ae(X,Z).
ancestral(X,Y) :- ancestral(Z,Y),pai(X,Z).
o programa fara um laco.
8.7 Disjunc~oes e Negac~oes
Usando somente conjunc~oes para compor consultas e regras (clausulas de Horn) nos da
uma especie de Prolog puro, que pode n~ao ser muito pratico. Em muitos casos, s~ao
fornecidas, tambem, disjunc~oes e negaco~es, com sem^anticas re)etindo a logica.
~ EM LOGICA
CAPITULO 8. PROGRAMACAO
E PROLOG
182
8.7.1 Disjunc~ao
A disjunc~ao em regras pode ser usada implicitamente em Prolog puro usando varias regras
com a mesma concluss~ao. Por exemplo para dizer que uma pessoa e lho de alguem se
esse alguem e o seu pai ou sua m~ae, pode ser expressado a traves das regras:
!lho(X,Y) :- pai(Y,X).
!lho(X,Y) :- mae(Y,X).
Ja em consultas uma disjunc~ao n~ao poderia ser desdobrada, pois consultas s~ao feitas
atraves de uma unica clausula sem consequente. Assim, para facilitar as consultas um
Prolog n~ao puro permite o uso de disjunca~o em consultas, e usa o ponto e vrgula para
representar disjunca~o. Por exemplo a consulta \Jo~ao e pai de Maria ou de Pedro" pode
ser feita da seguinte forma:
?- pai(jo~ao,maria) pai(jo~ao,pedro).
onde o ponto e vrgula representa disjunc~ao, e aproximadamente o mesmo que a formula
logica
pai(joa~o maria) _ pai(joa~o pedro)
Quando uma consulta e uma disjunca~o, o sistema primeiro tenta satisfazer a parte
esquerda e, se este n~ao foi bem sucedido, ele tenta ent~ao satisfazer a parte direita. E
claro, podemos sempre procurar todos os casamentos possveis. Com o exemplo fatos,
isto da:
?- tem(X,bicicleta) gosta(X,maria).
;! X=emlia
;! X=jo~ao
;! X=emlia
;! n~ao
Observe a ordem na qual as respostas s~ao produzidas para concluir que uma vez que a
disjunc~ao n~ao esta num predicado composto, as duas partes da disjunc~ao se comportam
como duas quest~oes sucessivas.
Embora, n~ao seja necessario incluir disjunc~oes em regras, para facilitar a programacao
Prolog permitiremos o uso desta (tambem atraves do ponto e vrgula) em regras. Porem
devemos ter quidados especiais quando uma disjunc~ao envolva conjunco~es. Nestes casos
assumiremos que a ordem de preced^encia e a usual em logica (conjunca~o e mais forte
que disjunc~ao ). Caso desejarmos quebrar esta preced^encia devemos usar par^enteses. Por
exemplo uma regra para expressar a relaca~o \X e av^o de Y" e a seguinte
~ E NEGACOES
~
8.7. DISJUNCOES
183
av^o(X,Y) :- pai(X,Z),(pai(Z,Y)mae(Z,Y)).
Se n~ao usarmos os par^enteses, isto e
av^o(X,Y) :- pai(X,Z),pai(Z,Y)mae(Z,Y).
qualquer pessoa (X) seria av^o de qualquer pessoa (Y), desde que esse alguem (Y) tenha
m~ae.
8.7.2 Negac~ao por Falha e Hipoteses do Mundo Fechado
Quando fazemos uma consulta a um programa Prolog, por exemplo
?- Pai(X,maria).
e ele da como resposta \N~ao", n~ao signica que Maria n~ao tenha pai, mas que o programa
n~ao tem informac~oes sobre o pai de Maria. Tal raciocnio e baseado na \hipoteses do
mundo fechado", segundo a qual o mundo e fechado, no sentido que \tudo o que existe
esta ou pode ser deduzido do programa". Assim, se alguma coisa n~ao esta nem explicitamente (fato) nem implicitamente (derivada a traves de regras) no programa, ent~ao n~ao
e verdadeira. Portanto devemos ter isto em considerac~ao ao momento de fazer consultas e fazer nosso programa Prolog. Uma maneira de aliviar isto seria usar um conectivo
de negac~ao para indicar que algo n~ao e verdadeiro, mas isto tornaria o programa muito
tedioso, pois deveriamos por todo o que um objeto n~ao e, por exemplo na base famlia
deveriamos p^or que Roberto n~ao e pai de Andre, Vera, Alice, e ate dele mesmo.
Nos usaremos um operador logico de negac~ao em Prolog, mas n~ao no sentido acima,
mas para auxiliar as consultas e regras (n~ao em fatos!!) e assumindo a hipoteses de mundo
fechado.
Negac~ao e escrita como um predicado chamado not cujo unico argumento e o predicado
a ser negado. Se P e um predicado, a meta not(P) e bem sucedida se a meta P falhar e
falha se o predicado P e bem sucedido. Nenhuma variavel e instanciada quando not(P)
e bem sucedida. De fato, instanciac~ao de variaveis pode acontecer somente se P e bem
sucedido.
?- not(tem(camilo,bicicleta)).
;! sim
?- not(tem(X,bicicleta)).
;! n~ao
A primeira resposta diz que Camilo n~ao tem uma bicicleta, ja a segunda diz que existe
alguem que tem uma bicicleta.
184
~ EM LOGICA
CAPITULO 8. PROGRAMACAO
E PROLOG
Este e somente uma explicac~ao procedural do predicado not: uma meta negada e bem
sucedida se seu complemento n~ao pode ser satisfeito com respeito a base de dados. Esta
vis~ao pragmatica n~ao e entretanto equivalente ao ponto de vista logico teorico. De um
ponto de vista logico, Prolog manipula a negac~ao de uma meta como uma falha de sua
prova.
Em regras podemos usar este operador somente nos antecedentes. Por exemplo uma
regra para descrever irm~aos somente por parte de pai na base famlia seria a seguinte:
irmaosP(X,Y) :- pai(Z,X),pai(Z,Y),mae(M,X),not(mae(M,Y)).
No caso de se ter uma consulta ou regra envolvendo negac~oes, conjunc~oes e disjunc~oes ,
o compilador Prolog usa a seguinte ordem de prioridade nos conectivos: primeiro negaca~o,
depois conjunc~ao e por ultimo disjunc~ao. Caso deseje alterar a ordem deve usar parenteses.
8.8 Operadores de Controle
Ate o momento nos conseguimos interferir no controle de execuc~ao de um programa Prolog atraves da reordenac~ao das clausulas ou dos antecendentes de uma regra. No entanto
este controle e muito limitado. Nesta sec~ao introduziremos dois operadores que interferiram no proprio processo de execuc~ao do programa abortando o processo de backtracking,
aumentando a eci^encia do programa.
8.8.1 Backtracking
Ao se fazer uma consulta a um programa Prolog, ela tera como respostas um simples
\Sim", um \N~ao" ou valores para as variaveis da consultas. Estas respostas dependem se
e possvel deduzir no programa a clausula em quest~ao. Por simplicidade assumamos que
o Prolog e puro. Assim uma consulta seria da forma: ? ; p1 : : : pn. Para o compilador
Prolog determinar a resposta a essa pergunta tenta unicar p1 a primeira regra ou fato
do programa possvel. Se for um fato ent~ao tenta agora responder p2 e assim por diante.
Se casar com o consequente de uma regra, digamos p01 : ;q1 : : : qk ent~ao o objetivo se
transforma em ? ; q1 : : : qk p2 : : : pn, onde e o unicador mais geral entre p1
e p01 . Quando um objetivo falha, isto e, n~ao conseguimos casar um dos subobjetivos,
ent~ao retornamos a ponto imediatamente anterior ao ultimo casamento e avancamos no
programa. Ao retornaqr pelo caminho ja percorrido todo o trabalho executado e desfeito.
A resposta so sera \N~ao" quando todos os caminhos falharem.
Vejamos um exemplo para esclarecer melhor o processo de backtracking.
Seja a base de dados famlia. fazamos a ela a seguinte consulta:
?- pai(roberto,X),mae(vera,X)
8.8. OPERADORES DE CONTROLE
185
O compilador Prolog tenta primeiro satisfazer o primeiro objetivo, isto e pai(roberto,X),
desencadeando a seguinte execuc~ao top-down.
1.
2.
3.
4.
5.
6.
7.
8.
Encontra que Roberto e pai de Lucia.
Instancia X com \lucia".
Tenta satisfazer o segundo objetivo com a variavel X ja instanciada, isto e mae(vera,lucia).
Como n~ao consegue satisfazer este objetivo, realiza um backtracking, isto e volta a consulta original ?- pai(roberto,X),mae(vera,X) a partir do ultimo fato casado
(pai(roberto,lucia).).
Encontra que Roberto e pai de Julia.
Instancia X com \julia".
Encontra que mae(vera,julia).
Foi bem sucedido, pelo que a resposta e: X=julia.
No caso de um Prolog n~ao puro, isto e considerando disjunc~oes e negac~oes, procede-se
da seguinte maneira: Um programa Prolog satisfaz uma consulta do tipo
?- (1 2 ) somente se ele satisfazer , 1 e ou caso isto n~ao seja possvel, se ele satisfazer , 2 e
. Analogamente, se a consulta for do tipo
?- not(1 ) ele tenta satisfazer e se for o caso, tenta satisfazer 1 e se n~ao for o caso de 1 ser
satisfeito ent~ao tenta satisfazer , se for satisfeito ent~ao o programa Prolog satisfaz a
consulta not(1) como um todo.
O backtracking autom^atico e uma ferramente muito poderosa, pelo que um programador Prolog deve conhece-la bem para assim poder explora-la melhor. Porem, as vezes,
ela pode tornar o processo de execuc~ao altamente ineciente em termos de memoria e
tempo de execuca~o.
8.8.2 Comando \Cut"
O comando \cut" permite indicar ao Prolog quais submetas ja satisfeitas n~ao necessita
considerar de novo ao realizar um backtracking. Isto e, ele aborta o processo de backtracking. Existem duas raz~oes de porqu^e isto pode ser importante:
186
~ EM LOGICA
CAPITULO 8. PROGRAMACAO
E PROLOG
1. Permite que seu programa possa rodar mais rapido, pois este comando pode evitar
desperdizar tempo tentando satisfazer submetas que a priori s~ao sabidas que n~ao
contribuem nunca para determinar a resposta da meta.
2. Permite que seu programa possa ocupar menos memoria, pois ao n~ao sera necessario
armazenar todas as submetas analisadas (pontos do backtracking).
Em alguns casos, o uso do comando \cut" pode evitar que um programa que em laco
innito para uma determinada consulta e retorne uma resposta.
O comando cut
8.8.3 Comando \Fail"
8.9 Algumas Ferramentas Praticas de Programac~ao
Nesta sec~ao introduziremos algumas ferramentas de programac~ao que s~ao uteis na pratica.
Assim, veremos como lidar com tipos de dados numericos e com algumas estruturas de
lista. Como ja foi observado, as denico~es Prolog apresentam operadores e func~oes como
predicados e seus predicados como termos.
8.9.1 Operadores
Para Prolog, um operador e, antes que tudo, o nome de uma func~ao que, no caso de ser
binaria, pode ser escrita entre seus argumentos e que no caso de ser unaria pode ser escrita
antes ou depois de seu argumento. Ja dissemos que um termo funcional e composto de um
nome de func~ao seguido por uma lista de argumentos entre par^enteses. Alem disso, um
atomo simbolico e, sempre que isso zer sentido, considerado como um termo funcional
com zero argumentos.
Cada termo pode, portanto, ser representado como uma arvore cuja raz e o nome da
func~ao e cujos ramos representam os argumentos. A representaca~o de f (x g(y z)) e a
arvore
Esta representac~ao e util pelo fato de que existem termos que podem ser escritos em
mais de uma maneira. A arvore e uma forma can^onica que n~ao depende da maneira como
os termos s~ao escritos. Por exemplo, no caso de termos com um ou dois argumentos,
a func~ao pode ser escrita como uma operac~ao com o nome da funca~o escrito como um
operador binario, ou como um prexo, ou como um suxo unario:
a op1 b
em vez de
op2 c
d op3
~
8.9. ALGUMAS FERRAMENTAS PRATICAS
DE PROGRAMACAO
187
f
;@@
;
@@
;;
x
g
;@@
;
@@
;;
y
op1(a b)
z
op2(c)
op3(d)
E suciente que os nomes de func~oes se tornem operadores com uma prioridade. Quando um nome de func~ao e um operador, ambas as notac~oes podem coexistir. Assim, por
exemplo, a op1 b e op1(a b) constituem o mesmo termo:
op1
;@@
;
@@
;;
a
b
Nomes de func~ao ou de predicado s~ao predenidos como operadores. Por exemplo,
a + b c e o mesmo termo que +(a (b c)), representado pela arvore:
Como usual, o operador + tem menor prioridade que o operador *. Mas precisamos
estar consciente que a + b c e um termo funcional em Prolog e n~ao representa uma
computac~ao numerica a ser executada para produzir um resultado.
8.9.2 Computac~oes Numericas
Em Prolog, como usual em linguagem de programac~ao, temos as operac~oes numericas
usuais sobre os tipos de dados inteiros e ponto )utuante. Os operadores aritmeticos e
unarios tem as mesmas prioridades usuais a qualquer linguagem de programaca~o. Assim,
por exemplo,
letcia*natalia, -ricardo, letcia*natalia+joana
188
~ EM LOGICA
CAPITULO 8. PROGRAMACAO
E PROLOG
+
;@@
;
@@
;;
a
;@@
;
@@
;;
b
c
s~ao termos Prolog equivalentes, respectivamente, a
*(letcia,natalia), -(ricardo), +(*(letcia,natalia),joana).
Embora estes termos n~ao tenham nada de computac~ao numerica, elas podem ser usadas para gerar um programa valido em Prolog. Por exemplo, a base de dados
+(letcia, joana).
letcia*natalia+joana.
9+16.
x+10*3.
log(4).
sin(2).
As seguintes perguntas e respostas a base de dados obedecem as regras Prolog e n~ao
as da aritmetica:
?- X+joana.
;! X = letcia
;! X = letcia*natalia.
?- 12+5.
;! n~ao
?- X+Y.
;! X=letcia , Y=joana
;! X=letcia*natalia , Y=joana
;! X=9 , Y=16
;! X=x , Y=10*3
;! n~ao
?- log(X).
;! X=3
~
8.9. ALGUMAS FERRAMENTAS PRATICAS
DE PROGRAMACAO
189
pois Prolog realiza computac~oes simbolicas. No entanto, para auxiliar as computac~oes
simbolicas assim como para Prolog poder realizar computac~oes usuais em outras paradigmas de programac~ao, precisamos de facilidades de computac~oes numericas. Embora, teoricamente, seja possvel, n~ao podemos usar o mecanismo de unicac~ao assim como devemos
incorporar operac~oes predenidas. Em Prolog, computac~oes numericas s~ao baseadas em
tr^es aspectos
1. Existem atomos numericos (numeros) os quais se diferenciam dos simbolicos pela
sua sintaxe.
2. Existe um conjunto de operadores e func~oes denidos como executaveis, no sentido
numerico, de tal modo que termos formados somente por estas func~oes , operadores,
numeros e variaveis cujos valores s~ao termos executaveis, s~ao tambem executaveis.
3. O operador binario predenido, is, transforma um termo executavel num atomo
numerico que representa o resultado da computac~ao e unica este resultado com
outros termos, normalmente uma variavel.
O termo
X is T
onde X e uma variavel e T um termo executavel, e uma atribuica~o de T a X. Assim, a
computac~ao numerica denida pelo termo T, interpretado como uma expres~ao aritmetica,
e realizada e o resultado, um atomo numerico, e unicado com X , se possvel.
A maioria das funco~es e operac~oes numericas disponveis nas linguagens de programac~ao tradicionais est~ao predenidas em Prolog. No entanto, n~ao podemos em Prolog
denir nossa propria biblioteca de operaco~es numericas, pois n~ao podemos criar novos
predicados executaveis.
Exemplo 8.9.1 O seguinte programa dene o fatorial.
fatorial(1,1).
fatorial(X,Y) :- integer(X), X2, X1 is X-1, fatorial(X1,Y1), Y is X*Y1.
Para unicar fatorial(X,Y) e necessario que X seja unicado com inteiro positivo e
que Y seja unicado com uma variavel ou com o numero o qual e o fatorial de X. Isto
da o rsultado esperado, porem fatorial jamais sera "executavel" e portanto esta func~ao
n~ao podera aparecer numa express~ao aritmetica. Assim, para obter o resultado de 5!*3,
devemos escrever
fatorial(5,Y), Z is 3*Y
o resultado esperado estara em Z.
~ EM LOGICA
CAPITULO 8. PROGRAMACAO
E PROLOG
190
8.9.3 Computac~oes com Listas
Em Prolog listas s~ao denidas a partir de um smbolo at^omico escrito por ], representando
a lista vazia, e de pares ordenados precedidos por um ponto. Formalmente,
Deni
c~ao 8.9.2 Uma lista e uma sequ^encia de termos, possivelmente vazia, separados
por vrgolas entre par^enteses quadrado, e ].
Exemplo 8.9.3 Os termos ], a,b,c] e 1,suc(X),a,b,c]] s~ao exemplos de listas, onde a
primeira representa a lista vazia.
As vezes e mais pratico distinguir, em listas n~ao vazias, o primeiro elemento da lista,
chamado cabe
ca, dos restantes, chamados de cauda. A cabeca e um termo da lista
enquanto que a cauda e uma lista. A seguinte notac~ao e usada em Prolog para este m:
CjT] para denotar a lista cuja cabeca e o termo C e cuja cauda e a lista T.
Exemplo 8.9.4 As duas listas, n~ao vazias, do exemplo 8.9.3 podem ser reescritas em
termos de cabeca e cauda, da seguinte maneira: ajbjc]] e 1jsuc(X)jajbjc]]]]].
Este tipo de notac~ao e mais utilizada quando queremos denir certas operac~oes ou regras sobre listas. As operac~oes s~ao denidas por predicados cujos argumentos representam
par^ametros tanto como resultados das operaco~es.
Exemplo 8.9.5 Uma operac~ao usual sobre listas e dado um elemento e uma lista, determinar se o elemento esta ou n~ao na lista. O seguinte par de regras descrevem esta
operac~ao atraves do predicado elem.
elem(X,Xj{]).
elem(X,{jY]) :- elem(XjY).
Este predicado sera bem sucedido se o segundo argumento e uma lista da qual o
primeiro argumento e um elemento.
Uma possvel sess~ao pergunta e resposta e
?- elem(X,a,b,c]).
;! X=a
;! X=b
;! X=c
?- elem(b,a,b,c]).
;! sim
?- elem(b,a,b],c]).
;! n~ao
8.10. EXERCICIOS
191
Exemplo 8.9.6 Uma outra operac~ao usual entre listas e a concatenac~ao de listas. O
seguinte par de regras denem esta operac~ao.
concat( ],X,X).
concat(XjY],Z,XjW]) :- concat(Y,Z,W).
Uma possvel sess~ao de perguntas e respostas e
?- concat(a,b],c,d],L).
;! L=a,b,c,d]
;! n~ao
?- concat(X,Y,a,b,c,d]).
;! X= ] , Y=a,b,c,d]
;! X=a] , Y=b,c,d]
;! X=a,b] , Y=c,d]
;! X=a,b,c] , Y=d]
;! X=a,b,c,d] , Y= ]
;! n~ao
8.10 Exerccios
1. Crie uma base de dados de livros em prolog, onde cada livro deve conter informaco~es
do autor principal, ttulo e ano de publicac~ao . Faca as seguintes perguntas:
(a)
(b)
(c)
(d)
Quais os livros de um determinado autor?
Existe um livro na sua base publicado este ano?
Quais os livros escritos nos anos 1997 e 1998?
Quais os livros escritos nos anos anteriores?
2. Dena regras e fatos no seu programa em logica Famlia que lhe permita inferir as
seguintes relac~oes
(a)
(b)
(c)
(d)
(e)
(f)
c^onjugues(X,Y) - X e um c^onjugue de y se tem algum lho em comum.
avos(X,Y) - X e um dos avos de Y.
irm~aos(X,Y) - X e Y s~ao irm~aos (tem ambos pais em comum).
irm~a(X,Y) - X e irm~a de Y.
tia(X,Y) - X e um tia de Y.
primo(X,Y) - X e um primo ou prima em primeiro grau de Y.
~ EM LOGICA
CAPITULO 8. PROGRAMACAO
E PROLOG
192
(g) parentes(X,Y) - X e Y s~ao parentes (s~ao da mesma famlia).
3. Escreva um programa PROLOG que descreva as seguintes situac~oes :
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
(i)
Marcos era um homem
Marcos nasceu em Pompeia
Todos os que nasceram em Pompeia s~ao romanos
Cesar era um soberano
Todos os romanos eram leais a Cesar ou ent~ao odiavam-no
Todo mundo e leal a alguem
As pessoas so tentam assassinar soberanos aos quais n~ao s~ao leais
Marcos tentou assassinar Cesar
Todos os homens s~ao pessoas.
Enseguida faca a seguinte pergunta ao seu programa: Marcos era leal ao Cesar?
qual seria a resposta de seu programa? Porque?
4. Escreva programas em logica que computem as seguintes func~oes numericas. Assuma o tipo de dados inteiro munido das operac~oes aritmeticas e as relac~oes de
igualdade e de ordem ( e <) como primitivo
(a)
(b)
(c)
(d)
(e)
(f)
valor absoluto.
raiz quadrada.
quadrado de um numero.
n = 1 + 2 + + n para cada n 0 e n = 0 caso n < 0..
f (x) d^e o x-esimo valor da serie de Fibonacci (1,1,2,3,5,8,13, ).
determinar se um numero e primo ou n~ao.
5. Escreva programas em logica para os seguintes procedimentos que manipulam com
estruturas de listas (de numeros naturais).
(a) insira1(X,L1,L2) - L2 e o resultado de insertar X no inicio da lista L1.
(b) insira2(X,L1,L2) - L2 e o resultado de insertar X (em qualquer parte) na lista
L1.
(c) mesma(L1,L2) - Diz se L1 e L2 tem os mesmos elementos, independente da
ordem em que est~ao dispostos.
(d) retira(X,L1,L2) - L2 e o resultado de retirar a primeira ocorr^encia (de esquerda
para direita) do elemento X da lista L1. Se X n~ao faz parte da lista L1, ent~ao
L2 e o proprio L1.
8.10. EXERCICIOS
193
(e) retira2(X,L1,L2) - L2 e o resultado de retirar todas as ocorr^encias do elemento
X da lista L1. Se X n~ao faz parte da lista L1, ent~ao L2 e o proprio L1.
(f) ordenada(L) - Diz se L esta ordenada (ascendentemente).
(g) ordena(L1,L2) - L2 e o resultado de ordenar L1 ascendentemente.
(h) apaga(X,L1,L2) - L2 e o resultado de apagar todas as ocorr^encias de X em L1.
(i) sublista(L1,L2) - L1 e uma sublista de L2, isto e, a lista L1 inteira esta (contiguamente) em L2. Assim, isto n~ao signica que cada elemento de L1 esta em
L2. Por exemplo
sublista(1,2],2,1,2,3]) e verdadeira
sublista(1,2],2,1,3]) e falsa
(j) resto(X,L1,L2) - L2 e a sublista de L1 que comeca na primeira ocorr^encia de X
em L1. Se X n~ao ocorre em L1 ent~ao L2= ].
(k) max(L,X) - X e o maximo valor da lista de numeros L. (Assuma que voc^e disp~oe
do relacionamento \maior ou igual que", denotado por ).
(l) inverte(L1,L2) - L2 e a lista L1 invertida, isto e, se L1=1,2,3] ent~ao L2=3,2,1].
194
~ EM LOGICA
CAPITULO 8. PROGRAMACAO
E PROLOG
Captulo 9
Outras Apresentaco~es da Logica de
Predicados
Tanto em logica proposicional quanto em logica de predicados vimos tr^es abordagens ou
estilos diferentes de se lidar com elas. Essas abordagems captam diferentes aspectos da
logica:
sem^antico: no qual o importante e o conceito de verdade e consequ^encia logica,
formal: no qual desenvolvemos uma teoria de provas (no caso do estilo axiomatico
isto comprende uma linguagem formal, um conjunto de axiomas e regras de infer^encias) para construir provas para os teoremas da logica,
operacional: no qual apresentamos um algoritmo para refutar a negac~ao de um
teorema (no caso usamos o metodo de eliminaca~o de literais complementares).
O primeiro e de maior interesse losoco e matematico no sentido classico (teoria dos
modelos), o segundo de maior interesse matematico construtivo e o terceiro computacional.
No entanto, estas tr^es abordagens da logica classica s~ao complementares, do ponto de
vista epistemologico, e s~ao essenciais para o bom entendimento da logica para ci^encias da
computac~ao. Observe que os dois ultimos estilos s~ao ambos de natureza sintatica, sendo
que o terceiro e mais operacional, pois e factvel de ser implementado computacionalmente,
por exemplo denindo uma linguagem de programac~ao baseada nos princpios logicos desse
estilo.
Neste captulo veremos mais tr^es maneiras de apresentar a logica proposicional e de
predicados classica. Sendo que as duas primeiras, deduc~ao natural e calculo de sequentes
de Gentzen, s~ao de natureza formal, isto e, descrevem um conjunto de regras formais
para construir provas dos teoremas e deduc~oes da logica proposicional e de predicados.
O terceiro estilo que veremos aqui, o estilo tableaux, e uma maneira alternativa de se
realizar provas por refutac~ao e, portanto, e mais um metodo computacional de se provar
teoremas.
195
~ DA LOGICA
196 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
9.1 Deduc~ao Natural
Provas axiomaticas s~ao difceis de construir alem de serem muito longas. Assim, na pratica
n~ao se constroi uma tal prova, mas mostra-se que existe uma prova. Uma maneira na
qual temos usados esta tecnica e quando, numa prova, consideramos qualquer teorema
que ja tenha sido provado anteriormente. Outra maneira, e quando usamos o teorema da
deduc~ao, o qual nos permite provar a partir de assunc~oes (hipoteses) e n~ao uma prova axiomatica como originalmente denida. Uma terceira maneira e introduzir novos smbolos
por denic~ao, e derivar novas regras para os novos smbolos as quais ser~ao, usualmente,
usadas em provas a partir de assunco~es. Assim, a partir de um certo momento, o desenvolvimento de um sistema axiomatico dicilmente sera um prova axiomatica real, mas
baseado sobre uma variedade de pequenas partes. Usando uma analogia computacional,
uma prova e baseada num conjunto de \macros" de provas.
A principal ideia do que chamamos \deduc~ao natural" e abandonar o ponto de partida
axiomatico e, em vez disso, comecar com o que chamamos acima de \pequenas partes".
O ponto fundamental em deduc~ao natural e considerar a noca~o de prova a partir de
assunc~oes como noc~ao basica, e trabalhar simplesmente com estas. Tais provas n~ao s~ao
pensadas como abreviando alguma outra, nem como um tipo mais basico de prova, mas
s~ao os objetos primarios de estudo. Logo, as regras basicas iniciais ser~ao regras para usar
em provas a partir de assunc~oes. Axiomas, como tradicionalmente entendidos, n~ao ter~ao
nenhum papel preponderante (inclussive nos sistemas de deduc~ao natural que veremos
aqui n~ao teremos a gura do \axioma"). Esta e a caracterstica crucial de todo sistema
de deduc~ao natural. Mas, existem diversas outras caractersticas que tambem s~ao hoje em
dia esperadas e desejadas. Por exemplo, o conectivo logico ! n~ao tem nenhum estatus
especial, com respeito aos demais conectivos, como era o caso no sistema axiomatico.
Desse modo no estilo de deduc~ao natural a logica e apresentada apenas por regras. Este
estilo e caracterizado por dois fatos basicos: primeiro, o uso, em certas regras, de assunc~oes
(hipoteses). Essas hipoteses s~ao internas a derivaca~o e n~ao devem ser confundidas com
premissas. Uma hipotese e somente para ser usada com o proposito de derivar um
resultado particular determinado pela regra que motivou sua introduca~o. Cada hipotese
tem um escopo que vai da linha na qual ela e introduzida ate a linha antes da regra na
qual e descartada. A hipotese n~ao deve ser usada fora do escopo. Por isso a denic~ao
linear de prova (como uma sequ^encia nita) deve ser ligeiramente modicada de modo
a permitir o acomodamento de hipoteses e de premissas. Uma segunda caracterstica do
estilo de deduc~ao natural consiste no fato de que as regras aparecem em pares. Uma regra
para introduzir o operador e outra para elimina-lo.
Assim, sistemas de deduc~ao natural constituem uma outra famlia de mecanismos de
prova, que tenta formalizar o tipo de raciocnio nos argumentos informais das pessoas.
Eles s~ao baseados nas ideias de provas subordinadas, nas quais derivamos conclus~oes a
partir das premissas, ent~ao descartamos estas premissas para produzir resultados livres
de assunc~oes.
~ NATURAL
9.1. DEDUCAO
197
Uma tpica regra de um sistema deduc~ao natural e: Se podemos derivar , assumindo
, ent~ao podemos descartar a assunc~ao e concluir que temos provado ! . Isto e
dado esquematicamente na gura 9.1.
...
!
Figura 9.1: Uma regra de deduca~o natural para a implicac~ao
Observe que, analogamente a provas em teorias formais, n~ao necessariamente usamos
a premissa para obter .
Um conjunto de regras devem satisfazer algumas propriedades para ser considerado
um \sistema de deduc~ao natural".
1. Para cada conectivo logico, um sistema de deduc~ao natural deve considerar somente
regras que concernem especicamente a esse conectivo e mais nenhum outro conectivo. Isto e mais um requerimento de eleg^ancia que uma condica~o que possa ser
considerada como \deduc~ao natural".
2. Para cada conectivo existem uma ou duas regras de introduc~ao as quais permitem
introduzir o conectivo, e uma ou duas regras de eliminac~ao que possibilitem eliminar
o conectivo.
3. Deve-se ter uma certa completude entre as regras de introduc~ao e eliminaca~o de
um conectivo logico, no sentido de levarem a um sistema completo para as formulas
contendo so este conectivo. Isto e, para cada fbf logicamente valida que contenha
somente esse conectivo se deve ter uma deduca~o natural para ela que use somente
as regras de introduc~ao e eliminac~ao do conectivo.
4. As regras para cada conectivo logico devem ser \naturais", no sentido que infer^encias
usando essas regras ilustrem argumentos e infer^encias de maneira \natural".
5. Se a formula a ser provada n~ao e \muito complexa", ent~ao deve haver uma prova
razoavelmente curta que use somente as regras inicialmente adotadas.
Existem diversas maneiras de ilustrar uma prova em deduc~ao natural. A que usaremos
aqui n~ao v^e uma prova como uma sequ^encia linear de formulas, mas como um vetor
bidimensional destas, arranjados numa estrutura de arvore. A estrutura tem uma formula
como sua raiz, a qual ca na parte inferior da arvore. A formula na raiz e a formula que e
provada e os ramos que se espalham para acima da raz representam a serie de raciocnio
que necessitamos para chegar ate a conclus~ao, e cada ramo tem como sua formula mais
~ DA LOGICA
198 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
acima uma assunc~ao da prova. Em uma prova de deduca~o natural existem dois tipos
de assunc~oes, uma na qual ela e considerada uma premissa da prova, semelhante a ,
num prova de ` e outra na qual a assunc~ao e usada temporariamente, em cujo caso
dizemos que ela e descartada na prova ao se usar uma determinada regra.
Devemos ter cuidado em n~ao usar, numa derivac~ao, uma assunca~o que ja tenha sido
descartada na prova. Por exemplo na regra da gura 9.1, a assunca~o deve ser descartada
apos usar essa regra. Indicaremos isto colocando um traco acima da assunc~ao e pondo no
lado um numero, sinalizando a derivac~ao na prova pela qual ela foi descartada (o mesmo
numero estara no lado direito da derivac~ao).
9.1.1 Logica Proposicional
Um sistema de deduc~ao natural para a logica proposicional e dado pelo seguinte conjunto
de regras.
Introdu
c~ao do ^:
^
I^ :
Elimina
c~ao do ^:
E^1 :
^
E^2 :
^
Exemplo 9.1.1 Uma deduca~o natural para mostrar que a conjunc~ao e associativa, isto
e que ^ ( ^ ) ` ( ^ ) ^ , e ilustrada pela seguinte arvore de derivac~ao:
^ ( ^ )
E^1 :
I^ :
E^2 :
^ ( ^ )
E^1 :
^
E^2 :
E^2 :
^
I^ :
( ^ ) ^ Introdu
c~ao do _:
I_1 :
_
I_2 :
^ ( ^ )
_
^
~ NATURAL
9.1. DEDUCAO
199
Elimina
c~ao _:
(n)
...
_ E_ :
(n)
...
(n)
Embora a regra de eliminac~ao do _, aparentemente, n~ao seja t~ao imediata como as
anteriores, ela e bastante natural. Para v^er isso pense da seguinte maneira: Suponha que
temos uma premissa _ , e queremos saber o que podemos deduzir dela, ent~ao vemos
o que podemos deduzir de e o que podemos deduzir de , se e dedutvel de ambas
ent~ao, independente de qual seja verdadeira ( ou ) poderemos sempre deduzir de
_ . Este processo implica que tivemos inicialmente que introduzir a assunc~ao e a
assunc~ao , pelo que devemos descartar essas assunc~oes quando derivamos .
Exemplo 9.1.2 Uma arvore de derivac~ao para a propriedade de comutatividade do conectivo _, isto e que _ ` _ , e mostrada a seguir:
E_ :
_
I_2 :
(1)
_
I_1 :
_
(1)
_
(1)
Note que neste deduc~ao natural de _ ` _ , e s~ao premissas, enquanto que
_ e uma hipotese.
Introdu
c~ao do !:
. (n)
..
I !:
! (n)
Elimina
c~ao do !:
E !:
!
~ DA LOGICA
200 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
Exemplo 9.1.3 Uma deduc~ao natural para o axioma ! ( ! ) e ilustrada pela
seguinte arvore:
I^ :
(1)
I !:
I !:
(2)
!
(1)
! ( ! )
(2)
Na literatura n~ao ha um consenso claro de quais as regras mais \naturais" para a
negac~ao. Aqui, consideramos uma que capte a ideia de que se na assunc~ao de derivamos
uma contradic~ao, ent~ao podemos derivar : e descartar a assunca~o .
Introdu
c~ao do ::
I: :
(n) (n)
...
...
:
(n)
:
Elimina
c~ao do ::
E: :
::
Exemplo 9.1.4 O unico axioma, dos sistema visto no captulo 3, que considera a negaca~o
e (: ! :) ! ((: ! ) ! ). Uma deduc~ao natural para esse axioma e dada pela
seguinte arvore.
E !:
: (1)
I: :
: ! (2)
E: :
I !:
I !:
E !:
: (1)
: ! : (3)
:
::
(: ! ) ! (1)
(2)
(: ! :) ! ((: ! ) ! )
(3)
~ NATURAL
9.1. DEDUCAO
201
Teorema 9.1.5 Se e um teorema de TP , ent~ao existe uma deduc~ao natural para .
Demonstraca~o: Se ` ent~ao existe uma prova 1 2 n de . Provaremos por
induc~ao no tamanho da prova que existe uma deduc~ao natural para .
Caso base: Se i = 1, ent~ao e um dos axiomas.
1. Uma deduc~ao natural para ! ( ! ) e mostrado no exemplo 9.1.3.
2. Uma deduc~ao natural para ( ! ( ! )) ! (( ! ) ! ( ! )) e dada pela
seguinte arvore:
E !:
(1) ! (2)
E !:
E !:
I !:
I !:
I !:
(1) ! ( ! ) (3)
!
!
(1)
( ! ) ! ( ! )
(2)
( ! ( ! )) ! (( ! ) ! ( ! ))
(3)
3. Uma deduc~ao natural para o axioma (: ! :) ! ((: ! ) ! ) e mostrado
no exemplo 9.1.4.
Etapa indutiva: Suponha que existe uma deduc~ao natural para cada i na prova tal que
i < k. Ent~ao por denic~ao de prova
k e um axioma, ou
k segue por MP de i e j , onde i j < k e j e i ! k .
O primeiro caso e exatamente como no caso base mostrado acima. No segundo caso,
pela etapa indutiva, existe uma deduca~o natural para i e outra para i ! k . Logo,
juntando ambas deduc~oes e aplicando a regra (E !) obteremos uma deduca~o natural para
k .
Portanto segue o teorema.
Em deduc~ao natural tambem podemos provar consequ^encias logicas.
~ DA LOGICA
202 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
Exemplo 9.1.6 Uma deduc~ao natural para : ! : ` ! e dada pela seguinte
arvore.
E !:
: (1) : ! :
I: :
:
assum(2)
E: :
I !:
::
!
(1)
(2)
9.1.2 Logica de Predicados
Analogamente ao estilo axiomatico, o sistema de deduca~o natural para a logica proposicional esta includo no correspondente da logica de predicados. Assim, so devemos incorporar as respectivas regras de introduc~ao e eliminac~ao dos quanticadores.
Introdu
c~ao do 8:
I8 :
8x:
Elimina
c~ao do 8:
E8 :
8x:
t=x] , onde t e um termo livre para x em Exemplo 9.1.7 Deduc~oes naturais para os axiomas 5 e 4, respectivamente, s~ao dadas
pelas arvores seguintes:
E8 :
I !:
8x: (1)
t=x]
8x: ! t=x]
(1)
~ NATURAL
9.1. DEDUCAO
E !:
203
(1)
8x:( ! ) (1)
E8 :
!
I8 :
I !:
I !:
8x:
! 8x:
(1)
8x:( ! ) ! ( ! 8x: )
(2)
Exemplo 9.1.8 Uma arvore de deduc~ao natural para 8x:8y:P (x y) ! 8x:P (x x) e a
seguinte:
8x:8y:P (x y ) (1)
E8 :
8y:P (x y )
E8 :
P (x x)
I8 :
I8 :
8x:P (x x)
8x:8y:P (x y ) ! 8x:P (x x)
Introdu
c~ao do 9:
I9 :
t=x] , onde t e um termo livre para x em 9x:
Elimina
c~ao do 9:
E9 :
9x:
a=x] , onde a e uma constante nova na prova de 9x:
Exemplo 9.1.9 Uma deduca~o de 9x:(P (a) ^ R(x)) ` P (a) ^9x:R(x) no estilo de deduc~ao
natural e ilustrada na seguinte arvore.
~ DA LOGICA
204 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
E9 :
E^1 :
9x:(P (a) ^ R(x))
P (a) ^ R(b)
P (a)
I^ :
E9 :
9x:(P (a) ^ R(x))
E^2 :
P (a) ^ R(b)
I9 :
R(b)
9x:R(x)
P (a) ^ 9x:R(x)
Exemplo 9.1.10 Uma deduc~ao de :8x: ` 9x:: no estilo de deduc~ao natural e ilustrada na seguinte arvore.
I8 :
I: :
(1)
8x:
I9 :
I !:
:8x: (2)
:
(1)
9x::
:8x: ! 9x::
No caso do estilo axiomatico, temos algumas restric~oes no uso do teorema da deduc~ao. Por outro lado, o uso da regra de introduca~o da implicaca~o, do jeito que esta,
incorporaria, implicitamente, na logica de predicados um teorema da deduca~o irrestrito.
Portanto, para ser coerente com a logica de predicado vista aqui, devemos introduzir estas
restric~oes. Para isto, devemos observar que a regra de infer^encia Gen, que era a que trazia
os problemas apontados no captulo 6, e exatamente igual a regra de introduc~ao do quanticador universal (I8). A incorporaca~o da generalizaca~o, tambem esta implcita no uso de
regra I9, pois para provar, na teoria formal de primeira ordem TP , que t=x] ` 9x: (ou
equivalentemente que t=x] ` :8x::) e necessario aplicar a regra Gen. Assim, a regra
I ! so podera ser aplicada, no sistema de deduca~o natural da logica de predicados, quando no ramo que deriva de , n~ao se aplicou nenhuma regra I8 ou I9 introduzindo uma
variavel x que e livre em . A maioria dos autores da apresentac~ao da logica classica no
estilo de deduc~ao natural Tho87, Cos92, RS92, Bos97] incorporam restrico~es no uso das
regras de introduc~ao e eliminac~ao dos quanticadores para tentar compensar a aus^encia
de restric~oes no uso da regra I !. Mas, estas restric~oes nas regras dos quanticadores s~ao
muito severas, impedindo provar consequ^encias logicas do tipo P (x) ` 8x:P (x).
Como vimos no teorema 9.1.5, para todo teorema da logica proposicional existe uma
deduc~ao natural (proposicional). Assim, e natural pensarmos num teorema equivalente
para a logica de predicados.
9.2. CALCULO
DE SEQUENTE DE GENTZEN
205
Teorema 9.1.11 Se e um teorema de TP ent~ao existe uma prova no estilo de deduca~o
natural para .
Demonstraca~o: A demonstrac~ao deste teorema e analoga a demonstrac~ao do teorema
9.1.5. Assim, so devemos acrescentar uma prova de que os axiomas A4 e A5, da teoria
formal de 1a ordem, s~ao dedutveis no estilo de deduca~o natural, o qual foi mostrado no
exemplo 9.1.7. Por outro lado como a regra de infer^encia Gen e exatamente a mesma
que a regra I8, podemos armar que para todo teorema de TP existe uma prova no estilo
de deduc~ao natural.
9.2 Calculo de Sequente de Gentzen
Pensemos, de modo geral, no que acontece numa prova de deduc~ao natural. Uma prova
e uma sequ^encia de formulas, as quais estabelecem algum sequente1 com o lado esquerdo sendo composto de todas as hipoteses que n~ao foram descartadas na prova e com o
lado direito sendo composto pela formula que foi provada ao nal da prova. Tambem,
consideraremos as regras de infer^encias como regras sobre sequentes. Uma prova sempre iniciara com uma assunc~ao, por exemplo , e se n~ao acrescentamos nenhuma outra,
ent~ao ela mesma e considerada como a prova do sequente ` . Assim, a regra que nos
permite comecar e uma regra a qual nos leva diretamente a que todos os sequentes deste
tipo sejam corretos. As outras regras s~ao todas condicionais, elas re)etem a ideia de que
se certos sequentes s~ao corretos, ent~ao os sequentes que podemos concluir deles tambem
s~ao corretos. Por exemplo, a regra Modus Ponens pode ser escrita em forma de sequentes
como segue
Se ; ` e ' ` ! ent~ao ; ' ` O que acontece numa prova e que comecamos com certos sequentes conhecidos como
corretos e ent~ao deduzimos que outros sequentes devem, portanto, tambem ser corretos.
A ideia de um calculo de sequente e manter um registro explcito de que sequente e
estabelecido em cada ponto da prova. Isto e possvel introduzindo um novo tipo de prova
na qual cada linha, por si mesmo, e um sequente provado ate esse ponto da prova. Logo,
analogamente as provas de deduc~ao natural, uma prova no calculo de sequentes n~ao e uma
sequ^encia linear ou outro vetor de formulas, mas uma combinac~ao de vetores de sequentes.
Podemos pensar nas listas que comp~oem um sequente como tacitamente fechadas por
par^enteses de chave, pelo que seu papel seria especicar um conjunto de formulas. Quando um conjunto e especicado por uma lista de seus membros, ent~ao a ordem na qual os
Um sequente e um par de ordenado de listas nitas de formulas, que pode ser interpretado como que
uma das formulas da segunda lista \segue" (pode ser deduzida) da primeira lista. Na pratica usamos a
notac~ao sugerida por Gentzen: O sequente h; i sera denotado por ; ` .
1
~ DA LOGICA
206 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
membros s~ao listados n~ao e relevante, e qualquer repetic~ao na lista pode automaticamente
ser desconsiderada. Isto e devido a que dois conjuntos s~ao iguais se, e somente se, tem os
mesmos membros e diferentes listas dos membros podem ainda listar os mesmos membros.
Mas se n~ao quizermos pensar em termos de conjuntos, e trabalharmos diretamente com
listas, ent~ao n~ao podemos prosseguir sem dizer que ordens e repetic~oes s~ao relevantes.
Para isso precisamos considerar duas novas regras de infer^encia que re)itam estas propriedades intrnsecas a conjuntos, a regra de interc^ambio (Int) e a regra de contrac~ao
(Con), respectivamente.
Analogamente a deduc~ao natural, podemos presentar o calculo de sequentes como um
sistema cujas provas tem a estrutura de uma arvore. Na posica~o superior sobre cada
ramo existira um sequente o qual, de acordo com as regras, pode ser descartado. Este
portanto sera uma inst^ancia de uma regra com assunc~oes. As outras posic~oes na prova
ser~ao ocupadas por um sequente o qual e deduzido de outros sequentes, os sequentes do
qual este e deduzido s~ao escritos imediatamente acima deste separando-os por uma linha
horizontal. Podemos, portanto, escrever nossas regras basicas de infer^encia da mesma
maneira. Diferentemente do estilo de deduc~ao natural, no estilo de sequentes de Gentzen
teremos dois tipos de regras: aquelas que dependem de um dos conectivo logicos (usadas
para introduzir este conecetivo ou no lado esquerdo ou direito do sequente) e que por isso
s~ao chamadas de regras logicas e aquelas que n~ao dependem dos conectivos logicos, mas
da disposic~ao ou estrutura do sequente, denominadas regras estruturais.
Temos cinco regras estruturais ,algumas das quais tem sua vers~ao para o lado direito
(que denotaremos por d) e outra para o lado esquerdo (denotado por e), as quais se
denominam: incluss~ao (Inc), emfraquecimento (Emf), corte (Cor), intercambio (Int) e
contrac~ao (Con).
Regras Estruturais
Inc : ; ` '
Cor : ; ` ; `;' ` '
Emfe : ;; ``''
Emfd : ;;``''
' ` &
Inte : ;; ' ` &
' &
Intd : ;; `` '
&
`'
Cone : ;; ` '
Cond : ;;``''
A regra Cor pode ser omitida, uma vez que existe uma maneira de obt^e-la a partir
das outras. Como esta demonstrac~ao e complexa n~ao a incluimos neste texto. Uma
demontrac~ao de que a eliminac~ao do corte e possvel pode ser encontrada em GLT89,
Fit96, Bos97].
9.2. CALCULO
DE SEQUENTE DE GENTZEN
207
9.2.1 Logica Proposicional
No calculo de sequentes, tambem existem regras para os operadores logicos, chamadas
regras logicas. Para cada um dos operadores logicos teremos uma regra para introduzir o
conectivo no lado esquerdo e outra para o lado direito.
Regras Logicas
^d : ; `;`' ^;`' '
^e : ;; ^``''
_d : ;;``_''
_e : ; ;` '_ ;` '` '
!d : ;;` `!''
!e : ; `;'! ;` '` '
:d : ;;` :`''
:e : ;; :``''
Exemplo 9.2.1 Uma deduc~ao no calculo de sequentes para ` :( ^ ) ! (: _ : ) e
dada pela seguinte arvore de deduc~ao.
~ DA LOGICA
208 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
Inc :
Emfe :
Inte :
^d :
`
` ` :d :
Intd :
:d :
Intd :
:e :
Intd :
_e :
!d :
Inc :
Emfe :
`
` ` ^ ` : ^ ` ^ :
` : ^ :
` ^ : :
:( ^ ) ` : :
:( ^ ) ` : :
:( ^ ) ` : _ :
` :( ^ ) ! (: _ : )
Teorema 9.2.2 Se 2 LP tem uma prova por deduc~ao natural ent~ao existe uma deduc~ao
no calculo de sequentes de Gentzen para .
Demonstraca~o: Primeiro expressaremos cada uma das regras da deduc~ao natural como
sequentes.
I^ : ; ;` ` ;^ ` I_1 : ; ;` ` _
E^1 : ; ;` ` ^
I_2 : ; ;` ` _
E^2 : ; ;` ` ^ E_ : ; ` _ ;; ` ` ; ` I !: ;;` `!
E !: ; ` ;;`` ! I: : ; ` ; ` ;: ` :
E: : ; :: ` A seguir mostraremos que para cada regra de deduc~ao natural existe uma deduca~o no
estilo Gentzen. Claramente as regras I^ e I ! s~ao casos particulares das regras ^d e !d,
9.2. CALCULO
DE SEQUENTE DE GENTZEN
209
respectivamente, onde ' = . Ja as outras regras (as regras de eliminac~ao e as regras I_2
e I:) devem ser obtidas de uma maneira indireta.
E^1 :
Inc :
; ` Emfe :
Cor :
;`^
; ` ^e :
; ^ ` ;`
I_1 :
Emfd :
_d :
;`
; ` ;`_
E_ :
Cor :
;`_
_e :
; ` ; ` ; _ ` ;`
E !:
Emfd :
Cor :
I: :
;`!
!e :
;`
; ` Inc :
; ` ; ! ` ;`
~ DA LOGICA
210 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
:d :
:e :
Cor :
; ` ; ` :
; ` :
:d :
; : ` :
; ` : :
; ` :
E: :
Inc :
:d :
:e :
; ` ; ` : ; :: ` As regras E^2 e I_2 s~ao obtidas de maneira analogas as regras E^1 e I_1, respectivamente.
Considerando a familiaridade das regras formuladas dessa maneira e a ideia basica de
que uma prova no calculo de sequente registra, a cada etapa, o sequente que foi provado
ate essa etapa, ca facil de ver como uma prova, originalmente escrita como uma prova
de deduc~ao natural, pode agora ser reescrita como uma prova no calculo de sequentes.
Portanto, para uma dada deduc~ao natural de um 2 LP , substituindo cada regra de deduc~ao natural usada na prova pela arvore de deduc~ao de Gentzen correspondente, sempre
poderemos construir uma deduc~ao no calculo de sequentes de Gentzen para ` .
Exemplo 9.2.3 Seja a prova do exemplo 9.1.2. Podemos escrever uma prova equivalente
para ela no calculo de sequentes, e dada pela seguinte arvore.
Inc :
Emfd :
_d :
Cor :
;`_
_e :
; ` ; ` ; ` _ Inc :
Emfd :
_d :
; ` ; ` ; ` _ ; _ ` _ ;`_
9.2. CALCULO
DE SEQUENTE DE GENTZEN
211
9.2.2 Logica de Predicados
Analogamente a deduc~ao natural, pelo fato da logica de predicados ser uma extens~ao
da logica proposicional, so incorporaremos as respectivas regras logicas para os quanticadores universal e existencial, assim como uma restrica~o ao uso da regra !d e a regra
:d , que e equivalente a aplicar o teorema da deduc~ao .
Regras Logicas
t=x] '
8d : ;;``8x:
'
t=x] ` '
8e : ;;8x:
`'
]`'
t=x] '
9e : ;; 9a=x
9d : ;;``9x:
'
x: ` '
Em todos os casos, t e um termo livre para x em . Em 9e, a constante a n~ao deve
ocorrer em ;, ' nem .
As restric~oes impostas ao uso do teorema da deduc~ao aqui tambem s~ao necessarias,
uma vez que a regra !d e uma vers~ao de sequentes de este teorema e a regra :d incorpora
implicitamente este teorema. Logo, devemos restringir o uso de esta regra: a regra !d so
podera ser aplicada, no calculo de sequentes de Gentzen da logica de predicados, quando
no ramo que deriva ; ` ' n~ao se aplicou nenhuma regra 8d ou 9e, introduzindo uma
variavel x que e livre em .
Exemplo 9.2.4 A seguir daremos uma prova do sequente 8x: ` 9x:
Inc :
8e :
9d :
`
8x: ` 8x: ` 9x:
Considerando que x e livre para x em , para qualquer variavel x e qualquer formula
, temos que x=x] e . Assim, as aplicac~oes das regras 8e e 9d nesta prova s~ao corretas.
Note que se desejarmos provar a reversa deste teorema, isto e a formula 9x: ! 8x:,
n~ao conseguiriamos. Uma tentativa de prova seria a seguinte
Inc :
9e :
8d :
a=x] ` a=x]
9x: ` a=x]
9x: ` 8x:
~ DA LOGICA
212 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
Mas ao aplicar a regra 9e nesta prova, estamos transgredindo a restrica~o de a n~ao
ocorrer em '.
Como visto no teorema 9.2.2, para cada deduc~ao natural de uma formula bem formada
de LP temos uma deduc~ao no calculo de sequentes de Gentzen. Assim, resulta natural
pensarmos que o mesmo e valido para deduc~oes naturais de formulas bem formadas de
LP .
Teorema 9.2.5 Seja 2 LP . Se existe uma deduc~ao natural para ent~ao existe uma
deduc~ao no calculo de sequente de Gentzen para .
Demonstraca~o: Como a logica predicados extende a logica proposicional e, como
demonstrado no teorema 9.2.2, se 2 LP tem uma deduc~ao natural, ent~ao tem uma
deduc~ao no calculo de sequentes de Gentzen, aqui so realizaremos a prova da parte n~ao
incluida na prova do teorema 9.2.2. Analogamente a demonstrac~ao do teorema 9.2.2,
primeiro expressaremos as regras de deduca~o natural para os quanticadores em termos
de sequentes.
I8 : ; ;` `8x:
E8 : ;;``8x:
t=x]
t=x] , onde t e livre para x em I9 : ;;``9x:
E9 : ;;``9x:
a=x] , onde a e uma constante nova na deduc~ao de ; ` 9x:
Claramente, as regras de introduc~ao s~ao inst^ancias das regras 8d e 9d , respectivamente.
Assim, so precisamos provar as regras E8 e E9.
E8 :
Inc :
Cor :
; ` 8x:
8e :
; t=x] ` t=x]
; 8x: ` t=x]
; ` t=x]
E9 :
Inc :
Cor :
; ` 9x:
9e :
; a=x] ` a=x]
; 9x: ` a=x]
; ` a=x]
9.3. ESTILO TABLEAUX
213
Como a restrica~o sobre o uso da regra I ! em deduc~ao natural e da regra !d no
calculo de sequente de Gentzen e a mesma, ent~ao podemos transformar cada deduc~ao
natural de uma formula 2 LP numa deduc~ao no calculo de sequentes de Gentzen para
.
9.3 Estilo Tableaux
O metodo de tableau para a logica classica, devido a Hintikka Hin55] e Beth Bet59],
e semelhante ao metodo de resoluc~ao, no sentido que uma prova tableau e uma prova
por reduc~ao ao absurdo. Comecamos com uma hipotese e se a partir dessa hipotese
derivamos uma consequ^encia impossvel, ent~ao podemos concluir que a hipotese original
e impossvel. Se a prova n~ao foi bem sucedida, e nenhuma consequ^encia impossvel e
vislumbrada, ent~ao em alguns casos podemos concluir que n~ao existe erro com a hipotese
aberta, isto e, a hipotese pode ser verdadeira para alguma interpretac~ao. Existem casos
nos quais podemos mostrar que a procura por uma consequ^encia impossvel foi exaustiva, e
poderamos ter encontrado uma consequ^encia impossvel se uma existisse. Mas nem todos
os casos s~ao assim. Algumas vezes tudo o que podemos dizer sobre a prova e que ainda
n~ao chegamos a nenhuma consequ^encia impossvel e que n~ao sabemos se isto ira acontecer
caso continuemos a prova. As assunc~oes que s~ao pesquisadas dessa maneira s~ao assunc~oes
de certas formulas com determinados valores verdades. O caso mais simples e quando
assumimos que todas as formulas em quest~ao s~ao verdadeiras. Se estas assunc~oes lev~ao a
uma consequ^encia impossvel, ent~ao temos mostrado que as formulas s~ao inconsistentes.
Porem, podemos tambem considerar a assunc~ao que todas as formulas s~ao falsas ou que
algumas s~ao falsas e outras verdadeiras.
Embora o metodo tableau para prova de teoremas em logica classica tenha se mostrado bastante satisfatorio no estudo de logica, acreditava-se que ele n~ao teria uma aplicac~ao
computacional satisfatoria devido a diculdade de se controlar as varias instanciac~oes de
uma variavel quanticada universalmente e pelo espaco de busca necessario para essas
instanciac~oes. Entretanto, a experi^encia mostrou o contrario, e inclussive podemos incorporar a ele o algoritmo da unicac~ao para se obter um provador automatico de teoremas
t~ao eciente quanto os considerados mais ecientes usando o metodo de resoluc~ao Cos92].
Notemos que as formulas do tipo ^: s~ao insatisfatveis para qualquer interpretac~ao
e uma formula da forma _ e insatisfatvel se e somente se ambas, e , s~ao insatisfatveis. Assim, para vericarmos se uma formula e insatisfatvel, podemos reescrever
na sua forma normal disjuntiva (para isto precisamos, previamente, transformar na
sua forma normal Prenex e eliminar quanticadores existenciais usando o processo de
skolemizac~ao) e observar se cada conjunc~ao contem um subconjunto insatisfatvel (isto e,
se contem uma subformula do tipo ^ :), ent~ao e insatisfatvel.
~ DA LOGICA
214 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
9.3.1 Logica Proposicional
O primeiro a se fazer para se provar uma formula usando o sistema tableau e colocar
na forma normal disjuntiva a formula :, dispondo-a numa estrutura de arvore, onde
cada conjunc~ao da formula ocupe um ramo da arvore. Depois procura-se subformulas
insatisfatveis em todos os ramos da arvore. Se todos os ramos da arvore s~ao insatisfatveis,
ent~ao : e insatisfatvel e, portanto, e logicamente valida.
O sistema tableau tem como base um conjunto de regras de expans~ao, as quais s~ao
divididas em duas categorias:
Regras de Expans~ao do tipo A
^
:( _ )
:
:
:( ! )
:
::
Regras de Expans~ao do tipo B
:( ^ )
_
!
j : j : j :
A ideia e p^or as duas subformulas imediatas de uma conjunc~ao no mesmo ramo, o que
e feito com a aplicac~ao de uma regra do tipo A. Analogamente, as subformulas imediatas
de uma disjunc~ao devem bifurcar o ramo original, o que e conseguido com a aplicac~ao de
uma regra do tipo B.
Exemplo 9.3.1 Vamos provar o teorema ! ( ! ) usando o metodo tableau.
1)
2)
3)
4)
5)
:( ! ( ! )) (o teorema negado)
(1, Regra A)
:( ! )
(1, Regra A)
(3, Regra A)
:
(3, Regra A)
Os numeros n~ao s~ao parte ocial tableau, mas tem sido acrescentados para melhor
falar sobre a prova. Em particular, podemos dizer que no unico ramo do tableau acima
encontramos duas formulas contraditorias (2 e 5). Assim, a negac~ao do teorema nos leva
a um absurdo e portanto provamos o teorema.
Agora deniremos a noc~ao de prova tableau formalmente.
Deni
c~ao 9.3.2 Seja uma formula.
9.3. ESTILO TABLEAUX
215
1. e um tableau.
2. Se T e um tableau e T resulta de T ao aplicar uma das regra de expans~ao tableau,
ent~ao T tambem e um tableau.
Deni
c~ao 9.3.3 Um ramo ' de um tableau T e um ramo fechado se ele contiver e
:, para alguma formula .
Deni
c~ao 9.3.4 Um tableau T e um tableau fechado se cada um de seus ramos for
fechado.
Deni
c~ao 9.3.5 Uma prova tableau de e um tableau fechado cuja raiz e :. e
um teorema do sistema tableau, se tem uma prova tableau.
Exemplo 9.3.6 Uma prova tableau (com rotulos adicionados para referenciar) de
( ! ( ! )) ! (( _ ) ! (( ! ) _ )) e dada abaixo.
1) :(( ! ( ! )) ! (( _ ) ! (( ! ) _ )))
2) ! ( ! )
3) :(( _ ) ! (( ! ) _ ))
4) _ 5) :(( ! ) _ )
6) :( ! )
7) :
;@@
;
@@
;;
8) :
;@@
;
@@
;;
10) teorema negado
1, regra A
1, regra A
3, regra A
3, regra A
5, regra A
5, regra A
2, regra B
9) ! 4, regra B
11) Nesta prova, 1. e a negac~ao da formula a ser provada 2. e 3. saem de 1. pela regra
do tipo A 4. e 5. saem de 3 pela regra do tipo A 6 e 7 s~ao obtidas de 5 pela aplicac~ao da
regra de tipo A, 8 e 9 de 2 pela aplicac~ao da regra de tipo B e, nalmente, 10. e 11. s~ao
obtidas de 4. pela regra de tipo B. Lendo da esquerda para direita, os ramos s~ao fechados
uma vez que 8. e 10., 7. e 11. e 6. e 9. s~ao contraditorias. Note que num dos ramos
fechados temos uma formula n~ao at^omica.
A seguir estenderemos o conceito de prova tableau para sequentes.
~ DA LOGICA
216 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
Deni
c~ao 9.3.7 Sejam ; = f1 : : : ng e ' = f1 : : : mg. Uma prova tableau
para o sequente ; ` e uma prova tableau de 1 ! (2 ! ( (n ! ) ). Uma
prova tableau para o sequente ; ` ' e uma prova tableau de ; ` i para algum 1 i m.
Exemplo 9.3.8 Uma prova tableau para ` :: e a seguinte prova tableau para
! ::.
1) :( ! ::) conclus~ao negada
2) :
1, regra A:
3) ::
1,regra A
Teorema 9.3.9 Se existe uma derivac~ao no estilo de Gentzen para 2 LP , ent~ao existe
uma prova tableau para .
Demonstraca~o: Para provar este teorema, e suciente mostrar que cada regra no
calculo de sequentes de Gentzen tem uma prova tableau, isto e, se a regra e da forma
;`'
;0 ` '0
supomos que contamos com uma prova tableau de ; ` ' e a partir dela construimos uma
prova tableau para ;0 ` '0 .
Por simplicidade consideraremos em cada uma das regras que ; = & = e ' = ou ' = (ou ainda igual a ), segundo seja o caso. Primeiro reescreveremos as regras
usando esta simplicac~ao e as considerac~oes na denica~o de prova tableau para sequentes
(denic~ao 9.3.7).
Regras Estruturais
Inc : ` ! Cor : ` `` ! Emfe : ` ` !
Emfd : ` ` _
! ( ! )
Inte : `` !
( ! ))
Intd : `` ! )
Cone : ` `! (!
Cond : ``
Regras Logicas
9.3. ESTILO TABLEAUX
217
^d : `` ^`
^e : ``(!^()!!
))
_d : ``_
`!
_e : ` ` !
( _ ) ! !d : `` !
!
!
!d : ``(
! ` )!
!
:d : `` :
:e : ` :` ! Inc :
1) :( ! ) teorema negado
2) 1, regra A
3) :
1, regra A
Cor : Seja ': uma prova tableau de . Por outro lado, uma prova tableau de
! tem a seguinte forma:
1) :( ! ) teorema negado
2) 1, regra A
3) :
1, regra A
'
Como ' precedido de n~ao pode ser uma prova de algum tal que = :
, pois
isso contradiz a hipotese de que temos uma prova para (':). Logo,
1) :
'
e uma prova tableau de .
Emfe : Se ': e uma prova tableau de ent~ao o seguinte tableau e uma prova de
! .
1) :( ! ) teorema negado
2) 1, regra A
':
Emfd : Se ': e uma prova tableau de ent~ao, pela denica~o 9.3.7, ela tambem e
uma prova tableau de ` .
Inte : Uma prova de ! ( ! ) deve ter a seguinte forma
1) :( ! ( ! )) teorema negado
2) 1, regra A
3) :( ! )
1, regra A
4) 3, regra A
5) :
3, regra A
'
~ DA LOGICA
218 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
Claramente, o tableau
1) :( ! ( ! )) teorema negado
2) 1, regra A
3) :( ! )
1, regra A
4) 3, regra A
5) :
3, regra A
'
e uma prova de ! ( ! ).
Intd : Direta da denic~ao 9.3.7.
Cone : Uma prova de ! ( ! ) deve ter a seguinte forma:
1) :( ! ( ! )) teorema negado
2) 1, regra A
3) :( ! )
1, regra A
4) 3, regra A
5) :
3, regra A
'
Logo, o seguinte tableau e uma prova de ! :
1) :( ! ) teorema negado
2) 1, regra A
3) :
1, regra A
'
Cond : Se ' e uma prova tableau de ` ent~ao, pela denica~o 9.3.7, ela e uma
prova de .
^d : Se ': e ': s~ao provas tableau de e , respectivamente, ent~ao o seguinte
tableau e uma prova tableau de ^ .
1) :( ^ )
teorema negado
;@@
;
@@
;;
':
':
^e : Uma prova tableau de ! ( ! ) deve ter a seguinte forma
1) :( ! ( ! )) teorema negado
2) 1, regra A
3) :( ! )
1, regra A
4) 3, regra A
5) :
3, regra A
'
9.3. ESTILO TABLEAUX
219
Logo, o seguinte tableau e uma prova para ( ^ ) ! .
1) :(( ^ ) ! ) teorema negado
2) ^ 1, regra A
3) :
1, regra A
4) 2, regra A
5) 2, regra A
'
_d : Se ' e uma prova de ` ent~ao pela denica~o 9.3.7, ' e uma prova de ou
de . Se ' e uma prova de ent~ao
1) :( _ ) teorema negado
2) :
1, regra A
'
e uma prova tableau de _ . Analogamente, se ' e uma prova tableau de , ent~ao
1) :( _ ) teorema negado
2) :
1, regra A
'
e uma prova tableau de _ .
_e : Uma prova tableau de ! tem a seguinte forma:
1) :( ! ) teorema negado
2) 1, regra A
3) :
1, regra A
'1
e uma prova tableau para ! deve ter a seguinte forma
1) :( ! ) teorema negado
2) 1, regra A
3) :
1, regra A
'2
Se
1) :
teorema negado
'i
para algum i = 1 2, ent~ao, trivialmente,
1) :(( _ ) ! ) teorema negado
2) _ 1, regra A
3) :
1,regra A
'i
e uma prova tableau de ( _ ) ! . Se n~ao, isto e, se
1) 1) '1
'2
~ DA LOGICA
220 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
s~ao tableau fechado, ent~ao o seguinte tableau e uma prova de ( _ ) ! 1) :(( _ ) ! ) teorema negado
2) _ 1, regra A
3) :
;@@
;
@@
;;
1, regra A
4) '1
5) '2
onde 4) e 5) sairam de 2 aplicando a regra do tipo B.
!d : Direta.
!e : Seja '1 uma prova tableau de ` . Uma prova tableau de ! tem a
seguinte forma.
1) :( ! ) teorema negado
2) 1, regra A
3) :
1, regra A
'2
Uma prova tableau de ( ! ) ! e
1) :(( ! ) ! ) teorema negado
2) ! 1, regra A
3) :
;@@
;
@@
;;
1, regra A
4) :
5) '1
'2
:d : Uma prova tableau de ! tem a seguinte forma,
1) :( ! ) teorema negado
2) 1, regra A
3) :
1, regra A
'
Logo,
1) :: teorema negado
2) 1, regra A
'
e uma prova de : ou
1) : teorema negado
'
9.3. ESTILO TABLEAUX
221
e uma prova tableau de . Portanto, uma das duas e uma prova tableau de ` : :e : Se ' e uma prova tableau de ou ent~ao o seguinte tableau e uma prova de
: ! .
1) :(: ! ) teorema negado
2) :
1, regra A
3) :
1, regra A
'
Assim, e facil ver que podemos transformar qualquer deduca~o no estilo de Gentzen de
um sequente numa prova tableau.
9.3.2 Logica de Predicados
Analogamente como zemos com o estilo de deduc~ao natural e com o calculo de sequentes
de Gentzen, para denir o sistema tableau para a logica de predicados so acrescentaremos
a regras especcas dos quanticadores, pois, a menos do teorema da deduca~o , tudo que
foi denido para a logica proposicional vale aqui.
Antes de darmos as regras de extens~ao para os quanticadores, e bom lembrar as
equival^encias
8x: :9x:: e 9x: :8x::
Regras de Expans~ao do tipo C
8x:
t=x]
:9x:
:t=x]
Regras de Expans~ao do tipo D
:8x:
9x:
a=x] :a=x] onde a e uma constante nova para o tableau
Exemplo 9.3.10 Uma prova tableau do teorema 8x:P (x) ! 9y:P (y) e dada a seguir:
1: :(8x:P (x) ! 9y:P (y)) teorema negado
2: 8x:P (x)
1, regra A
3: :9y:P (y)
1, regra A
4: P (b)
2, regra C
5: :P (b)
3, regra C
onde 1. e o teorema a provar 2. e 3. saem deste pela aplicac~ao da regra A 4. e obtida
de 2. pela aplicac~ao da regra C e 5. pela aplicac~ao da regra D a 3. Como 4. e 5. s~ao
~ DA LOGICA
222 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
contraditorio e temos um unico ramo na arvore, concluimos que o tableau acima e fechado
e portanto e uma prova do teorema desejado.
Como na denica~o de prova tableau para sequentes (denica~o 9.3.7) incorporam
indiscriminadamente o uso do teorema da deuc~ao. As restrico~es impostas por este uso
indiscriminado nos leva a introduzir uma denica~o mais forte de prova tableau.
Deni
c~ao 9.3.11 Seja T uma prova tableau para algum 2 LP . T e uma prova
tableau forte para se a primeira regra de expans~ao usada em T e do tipo B, C, D, ou
e a regra do tipo A
::
A denic~ao de prova tableau para sequentes continua a mesma. Assim, teremos uma
prova tableau para o sequente ` 8x: mas n~ao teremos uma prova tableau forte para
` ! 8x:.
Teorema 9.3.12 Se existe uma derivac~ao no estilo de Gentzen para 2 LP , ent~ao
existe uma prova tableau forte para .
Demonstraca~o: Para demonstrar este teorema, devemos considerar toda a prova do
teorema 9.3.9 e acrescentar um prova tableau para as regras de Gentzen dos quanticadores. Antes, porem, simplicamos estas regras usando os mesmos criterios adotados
na prova acima mencionada.
t=x]
8d : ` 8x:
t=x] ! 8e : ``8x:
!
]
9d : ``9a=x
x:
]!
9e : ``9a=x
x: ! 8d : Se ':a=x] e uma prova tableau de a=x] (como t e qualquer termo livre para
x em , consideramos o termo constante a) ent~ao o seguinte tableau e uma prova
de 8x:
1) :8x: teorema negado
':a=x]
8e : Uma prova tableau de ! tem a seguinte forma,
1) :( ! ) teorema negado
2) 1,regra A
3) :
1, regra A
'
~
9.4. SISTEMA TABLEAU COM UNIFICACAO
223
Logo, o seguinte tableau e uma prova para 8x: ! .
1) :(8x: ! ) teorema negado
2) 8x:
1, regra A
3) :
4) 2, regra C
'
9d : Se ':a=x] e uma prova de a=x] ent~ao o seguinte tableau e uma prova de
9x:.
1) :9x: teorema negado
':a=x]
9e : Uma prova tableau de a=x] ! tem a seguinte forma,
1) :(a=x] ! ) teorema negado
2) a=x]
1, regra A
3) :
1, regra A
'
Uma prova tableau para 9x: ! e a seguinte
1) :(9x: ! ) teorema negado
2) 9x:
1, regra A
3) :
1,regra A
4) a=x]
2, regra D
'
Assim, considerando estas provas tableau junto com as do teorema 9.3.9, podemos
transformar qualquer deduc~ao no estilo de sequentes de Gentzen numa prova tableau do
mesmo sequente.
9.4 Sistema Tableau com Unicac~ao
O procedimento de unicac~ao de Robinson, apresentado no captulo 7, pode ser adaptado
para ser usado pelo sistema de tableau para logica classica de 1a ordem, conforme mostrado por Bow82, Ree85]. Nesta sec~ao apresentamos o sistema tableau com unicac~ao para
a logica de 1a ordem e enunciamos sua equival^encia com o sistema tableau sem unicac~ao
.
De aqui em diante so consideraremos formulas na forma normal de Skolem. Assim,
toda vez que comecemos aplicar o sistema tableau, comecaremos com a forma normal
de Skolem da negac~ao da formula original. Em virtude desta restric~ao a Regra D n~ao
precissa ser mais considerada. Este sistema tableau e denominado com unicac~ao porque
usamos o procedimento de unicac~ao de Robinson na obtenca~o de pares de formulas
at^omicas complementares. Assim aqui acharemos tableau atomicamente fechados,
~ DA LOGICA
224 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
isto e tableau fechados onde cada ramo contem uma formula at^omica e sua negaca~o.
Smullyan Smu68] demonstrou que se uma formula e satisfatvel ent~ao existe um tableau
atomicamente fechado para a formula. A maneira como podemos achar esse tableau
atomicamente fechado e ilustrado no seguinte algoritmo:
Procedimento tableau com unica
c~ao :
1. Crie uma variavel booleana para cada formula. Esta variavel indicara se uma
formula foi usada ou n~ao (inicialmente todas as variaveis tem valor \falso").
2. A regra do tipo C e modicada para:
3.
4.
5.
6.
:9x:
8x:
y=x] :y=x]
onde a variavel y e nova para o tableau. Esta nova regra sera denominada de Regra
C0 .
A regra do tipo D e eliminada do sistema.
Comece o tableau escrevendo a negaca~o da formula original.
Encontre a forma normal de Skolem (FNS) para a formula (negac~ao da formula
original).
ENQUANTO o tableau n~ao for atomicamente fechado
tente unicar as formula at^omicas de cada ramo aberto
SE existir alguma formula n~ao -at^omica que n~ao foi usada
ENTA~ O f
faca a primeira formula n~ao-at^omica (de cima para baixo)
n~ao usada
PARA f cada ramo aberto & contendo aplique a regra apropriada
a em & g
marque como uma formula usada
g
FIM-ENQUANTO
7. Pare com \ Sucesso"
8. FIM
Para ilustrar este procedimento, vamos apresentar alguns exemplos.
~
9.4. SISTEMA TABLEAU COM UNIFICACAO
225
Exemplo 9.4.1 Vamos tentar provar a formula
8x:9y:P (x y ) ! 9z:8u:P (u z ) :
1: 8x:8z::(P (x f (x)) ! P (g(x z) z)) FNS da negac~ao
2: 8z::(P (v f (v)) ! P (g(v z) z))
1, Regra C0
3: :(P (v f (v)) ! P (g(v w) w))
2, Regra C0
4: P (v f (v))
3, Regra A
5: :P (g(v w) w)
3, Regra A
Claramente, as formulas at^omicas 4 e 5 n~ao podem ser unicadas. Portanto, a unica
regra que pode ser aplicada e a regra C em 1 ou em 2 obtendo-se uma copia da formula
2 ou 3, respectivamente (mudando so o nome da variavel) o qual so podera gerar novas
copias das formulas 4 e 5. Logo, o tableau nunca podera ser fechado.
Exemplo 9.4.2 Provaremos usando o sistema tableau que a formula
8x:(P (x z ) ^ R(x y )) ! (9x:P (x z ) _ 8x:R(x y ))
e um teorema.
1: 8x1 :8x2 :((P (x1 a) ^ R(x1 b)) ^ (:P (x2 a) ^ :R(f (x1 x2 ) b)))
2: 8x2 :((P (x a) ^ R(x b)) ^ (:P (x2 a) ^ :R(f (x x2 ) b)))
3: ((P (x a) ^ R(x b)) ^ (:P (y a) ^ :R(f (x y) b)))
4: P (x a) ^ R(x b)
5: :P (y a) ^ :R(f (x y) b)
6: P (x a)
7: :P (y a)
8: P (y a)
FNS da negac~ao
1, Regra C0
2, Regra C0
3, Regra A
3, Regra A
4, Regra A
5, Regra A
de 6 aplicando (y x)]
Como no caso do tableau tradicional (sem unicaca~o) n~ao temos a restric~ao de que
a variavel introduzida ao usar a regra C seja nova, poderiamos ter substitudo em 3,
ao aplicar a regra C, a variavel x2 por x. Assim, em 7, obteriamos :P (x a) em vez
de :P (y a), fechando assim com 6 o unico ramo do tableau. Assim, resulta natural
pensarmos que podemos sempre construir uma prova tableau forte tradicional a partir de
uma com unicac~ao. A reversa tambem e razoavel ser correta, isto e, sempre que tivermos
uma prova tableau forte tradicional (de uma formula na forma normal de Skolem) tambem
poderemos obter uma prova tableau com unicac~ao. Por exemplo seja a seguinte prova
tableau forte tradicional da formula
8x:(P (x z) ^ R(x y)) ! (9x:P (x z) _ 8x:R(x y))
negando e reescrevedo-o na sua forma normal de Skolem resulta na formula
~ DA LOGICA
226 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
8z:8y:8x1 :8x2 :(P (x1 z ) ^ R(x1 y ) ^ :(P (x2 z ) _ R(f (z y x1 x2 ) y )))
Prova tableau forte tradicional:
1:
2:
3:
4:
5:
6:
8z:8y:8x1:8x2 :((P (x1 z ) ^ R(x1 y)) ^ :(P (x2 z ) _ R(f (z y x1 x2 ) y)))
(P (a z ) ^ R(a y)) ^ :(P (a z ) _ R(f (z y a a) y))
P (a z ) ^ R(a y)
:(P (a z ) _ R(f (z y a a) y))
P (a z )
:P (a z )
FNS da negac~ao de 1, Regra C, aplicada 4 vezes
2, Regra A
2, Regra A
3, Regra A
4, Regra A
Claramente esta prova pode ser modicada para uma prova tableau com unicaca~o,
simplesmente alterando todas as aplicac~oes da regra C, na qual se substitua uma variavel
quanticada por um termo t por uma aplicaca~o da Regra C modicada, isto e na qual se
substitui a variavel quanticada por uma nova variavel. Assim, o tableau com unicac~ao
correspondente seria:
1: 8z:8y:8x1:8x2 :((P (x1 z ) ^ R(x1 y)) ^ :(P (x2 z ) _ R(f (z y x1 x2 ) y))) FNS da negac~ao de 2: (P (x5 x3 ) ^ R(x5 x4 )) ^ :(P (x6 x3 ) _ R(f (x3 x4 x5 x6 ) x4 ))
1, Regra C, aplicada 4 vezes
3: P (x5 x3 ) ^ R(x5 x4 )
2, Regra A
4: :(P (x6 x3 ) _ R(f (x3 x4 x5 x6 ) x4 ))
2, Regra A
5: P (x5 x3 )
3, Regra A
6: :P (x6 x3 )
4, Regra A
7: P (x6 x3 )
de 5 aplicando (x6 x5 )]
Teorema 9.4.3 Seja uma formula na forma normal de Skolem e T um tableau forte
para . Se T contem a formula t=x] obtida ao aplicar uma Regra C, ent~ao existe um
tableau com unicac~ao T 0 para que contem y=x], obtida ao aplicar a Regra C0 , e tal
que t e livre para y em .
Demonstraca~o: Para demonstrar este teorema usaremos induc~ao nas formulas do
tableau, T = 1 2 : : : n para construir um tableau (provavelmente n~ao fechado)
T1 = 1 : : : n :
Base da induc~ao: 1 e forma normal de Skolem da negaca~o do teorema a ser provado.
Logo, 1 = 1.
Etapa indutiva: Assuma que para i < n, ja temos construdo o tableau 1 : : : j , com
j < m. Se i+1 n~ao foi obtida pela aplicac~ao da Regra C, ent~ao j+1 = i+1. Sen~ao, isto
e, i+1 = t=x] obtido pela aplicac~ao da regra C, ent~ao faca j+1 = y x] como sendo
obtido pela aplicac~ao da regra C0 (y e uma variavel nova em 1 : : : j ).
Finalmente, para tornar este tableau atomicamente fechado, aplique o algoritmo da
unicac~ao para todos pares de formulas at^omicas em cada um dos ramos do tableau.
Dessa maneira todo o que pode ser provado usando tableau tradicional tambem pode
ser provado usando tableau com unicaca~o. Observe que a restric~ao no teorema da formula
ser a forma normal de Skolem da negaca~o da formula a ser provada e super)ua, uma
vez que uma formula e um teorema se e somente se sua forma normal de Skolem tambem
e.
~
9.5. CORRESPONDE^NCIA ENTRE TABLEAU E RESOLUCAO
227
9.5 Correspond^encia entre Tableau e Resoluc~ao
Robinson Rob79] utilizou o sistema tableau para explicar o princpio da resoluca~o. Por
outro lado, Gallier em Gal86] apresentou um algoritmo para transformar provas da logica
proposicional usando o estilo de sequentes de Gentzen em refutac~oes por resoluc~ao e viceversa. Nesta sec~ao apresentaremos uma adaptac~ao , realizada em Cos92], do metodo
apresentado por Gallier, para obter um algoritmo para transformar provas tableau com
unicac~ao em refutac~oes por resoluc~ao.
Teorema 9.5.1 Existe um algoritmo para transformar uma refutac~ao por tableau com
unicac~ao de um conjunto ; de clausulas da logica classica de 1a ordem em uma refutac~ao
por resoluca~o para ;.
Demonstraca~o: A demonstrac~ao sera por induca~o no numero de ramos do tableau.
Para vericar se o resultado esta correto, sera necessario vericar em cada etapa da
induc~ao se as seguintes condic~oes s~ao satisfeitas:
1. Existe uma refutac~ao por resoluc~ao para ; obtida a partir da prova tableau com
unicaca~o de ; e ambas provas tem o mesmo unicador.
2. O numero de resolventes e menor ou igual ao numero de ramos fechados no tableau.
3. O conjunto de pares de literais usados nas etapas da resoluc~ao e um subconjunto
do conjunto de pares de literais usados para se fechar o tableau.
Base da induc~ao: O tableau tem so um ramo. Portanto, ; contem clausulas at^omicas Ci
e Cj tais que existe um unicador mais geral 0 para Ci e o complemento de Cj . Ent~ao
a seguinte arvore e uma resoluc~ao para ;
Ci
Ci0
Cj
Cj 0
@@
;
;
@@;;
2
Assim, a^mbos tableau e resoluc~ao t^em o mesmo unicador 0 , a refutaca~o por resoluc~ao
tem um resolvente e o par de literais usados e o mesmo para usado para fecharmos o
tableau. Logo, esta etapa da induc~ao satisfaz as condic~oes exigidas.
Etapa indutiva: O tableau tem mais de um ramo. Assim o tableu que foi fechado com
um unicador digamos 0 , e da forma
~ DA LOGICA
228 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
C1
...
Ck
...
Cn
;@@
;
@@
;;
B1
B2
onde a clausula Ck e da forma Ci _ Cj , com i j < k, e os ramos B1 e B2 s~ao gerados por
aplicac~ao da regra B a Ck , de tal modo que Ci esta em B1 e Cj esta em B2 . Como o
tableau e fechado, cada um dos ramos deve tambem ser fechado. Suponha que os ramos
B1 e B2 sejam fechados e seus unicadores mais gerais sejam 1 e 2 , respectivamente.
Ent~ao, 0 = 1 2 .
Pela hipotese indutiva,
1. Existem refutac~oes por resoluc~ao D1 e D ; 2 derivadas de B1 e B2 com unicadores
mais gerais 1 e 2 , respectivamente.
2. O numero de resolventes de D1 e D2 s~ao menores ou iguais ao numero de ramos
para se fechar B1 e B2, respectivamente.
3. O conjunto de pares de literais usados nos passos de D1 e D2 s~ao subconjuntos dos
conjuntos de pares de literais usados para se fechar B1 e B2 , respectivamente.
Se cada clausula de entrada de D1 e um membro de ;, ent~ao
1. Pela hipotese indutiva, D1 e uma refutac~ao para ; com 1 como unicador mais
geral. Desde que o conjunto de pares de literais usados nos passos da resoluc~ao
de D1 e um subconjunto do conjunto de pares de literais usados para fechar B1 , o
unicador 0 para o tableau e tambem um unicador para D1. Agora, so e preciso
refazer D1 usando o unicador mais geral 0 ao inves de 1 .
2. O numero de resolventes e, pela hipotese indutiva, menor ou igual ao numero de
ramos para se fechar B1 .
3. O conjunto de pares de literais usados nos passos de D1 e subconjunto do conjunto
de pares de literais usados para se fechar B1 , e portanto e um subconjunto dos pares
de literais usados para se fechar o tableau inteiro.
9.6. COMPLETUDE DO SISTEMA
229
Se cada clausula de entrada de D2 e um membro de ;, ent~ao a situac~ao e analoga a
descrita acima para D1.
Caso contrario, substituimos D1 por D10 , onde D10 e similar a D1 , substituindo a
clausula Ci por Ci _ Ck e consequentemente, todos os resolventes obtidos recursivamente
a partir de Ci. Se no nal o resolvente for a clausula vazia, ent~ao a refutac~ao esta feita e o
resultado e vericado da mesma maneira que acima. Caso contrario, o 'ultimo resolvente
deve ser uma inst^ancia de Cj . Assim, construmos uma refutac~ao por resoluc~ao para
; concatenando D2 a D10 e usando o unicador mais geral 0. Note que o numero de
resolventes e igual a soma dos numeros de resolventes de D1 e D2 , o qual e menor ou
igual que a soma de ramos necessarios para fechar B1 e B2, ou seja o numero de ramos
necessarios para fechar o tableau inteiro.
9.6 Completude do Sistema
O teorema da completude (teorema 7.2.8) indica que cada uma das maneiras como abordamos a logica de 1a ordem s~ao potencialmente equivalentes. Portanto, para mostrar,
por exemplo, que uma fbf de 1a ordem e universalmente valida podemos mostrar que ela
e um teorema usando uma prova no estilo axiomatico ou uma refutaca~o por resoluc~ao da
negac~ao da formula. Assim, os conceitos de consequ^encia logica, provabilidade e refutabilidade se correspondem, embora eles sejam de natureza diferentes (sem^antico, sintatico e
computacional). Neste captulo, por outro lado, vimos uma serie de novas maneiras de
apresentar logica (proposicional e de 1a ordem). Assim, resulta natural que queriamos
que estes estilos de apresentar logica sejam equivalentes entre se. Mas os resultados que
os teoremas 9.1.11, 9.2.5, 9.3.12, 9.4.3 e 9.5.1 nos garantem e mostrar que toda prova
no estilo axiom^atico de um teorema pode ser transformada num deduca~o natural para
, e que toda deduc~ao natural de um pode ser transformada numa deduc~ao no estilo
de sequentes de Gentzen para , etc. A gura 9.2 mostra como se relacionam os diversos
modos de abordar logica vistos aqui, na gura o sentido da seta indica que e possivel
transformar uma prova no estilo descrito na origem da seta no estilo descrito no nal da
seta.
Claramente debido a circularidade dos estilos apresentados neste captulo com o estilo
axiomatico, e pelo teorema da completude 7.2.8, podemos estender este mesmo teorema
da completude, para um que englobe estes novos estilos.
Teorema 9.6.1 Para o calculo de predicado as seguintes assertivas s~ao equivalentes:
1. j= , isto e e universalmente valida.
2. ` , isto e e um teorema de TP .
3. : ;!
2, isto e existe uma refutac~ao por resoluc~ao de :.
~ DA LOGICA
230 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
deducao
natural
Prova no
calculo de
estilo
de sequente
axiomatico
de Gentzen
Universalmente
Valida
refutacao
prova
por
tableau
resolucao
forte
prova
tableau com
unificacao
Figura 9.2: Representac~ao esquematica de como se relacionam os diversos estilos de apresentar logica de 1a ordem.
9.7. EXERCICIOS
231
4. existe uma deduca~o natural para .
5. existe uma deduca~o no estilo de sequentes de Gentzen para .
6. existe uma prova tableau forte de .
7. existe uma prova tableau com unicac~ao de .
Demonstraca~o: Direto do teorema da completude 7.2.8 e dos teoremas 9.1.11, 9.2.5,
9.3.12, 9.4.3 e 9.5.1.
9.7 Exerccios
1. Prove as proposic~oes 3.3.3 e 3.3.4 e os exerccios do captulo 3 e captulo 6 no estilo
de deduc~ao natural
2. Prove os seguintes teoremas usando deduc~ao natural
(a)
(b)
(c)
(d)
(e)
:( ^ ) ! (: _ :)
_ ( _ ) ! ((: ! ( _ )) _ )
_ ( _ ) ! ( _ ( _ ))
8x:(:P (x) _ R(x)) ! :(9x:P (x) ^ :9x:R(x))
(8x:(P (x) ! (R(x) _ S (x))) ^ :8x:(P (x) ! R(x))) ! 9x:(P (x) ^ S (x))
3. Prove de maneira direta (analogo ao teorema ??) que todo teorema de LP pode
ser provado usando calculo de sequente de Gentzen.
4. Prove no estilo de Gentzen os seguintes sequentes:
(a)
(b)
(c)
(d)
(e)
(f)
! ! ` ! : _ ( ! ) ` :( ^ :
)
: _ : ! ` 8x:8y:P (x y ) ` 8y:9x:P (x y )
8x:8y:P (x y ) ` 8x:8y:P (y x)
8x:(P (x) ! (R(x) _ S (x))) ^ :8x:(P (x) ! R(x)) ` 9x:(P (x) ^ S (x))
5. De uma prova tableau para cada uma das formulas bem formadas dos exerccios do
captulo 4.
6. De uma prova tableau para
(a) :( _ ) ! (: ^ : )
~ DA LOGICA
232 CAPITULO 9. OUTRAS APRESENTACOES
DE PREDICADOS
(b)
(c)
(d)
(e)
(f)
! ( ! ( ^ ))
cada um dos axiomas de LP
9x:(P (x) ! 8y:P (y ))
8x:8y:P (x y ) ` 8y:9x:P (x y )
8x:8y:P (x y ) ` 8x:8y:P (y x)
Captulo 10
Teorias de Primeira ordem
Intuitivamente, pensamos de teorias como sendo um conjunto de armac~oes sobre um
determinado fen^omeno. na pratica as teorias contem muitos fatos para serem listados
explicitamente. dai precisamos apresenta-las como um subconjunto de fatos junto com
algumas leis das quais os demais fatos possam ser derivados.
Se for preciso apresentar alguma formalidade no modo de apresentar uma teoria, ent~ao
devemos ser capazes de achar um sistema formal adequado, no qual os fatos fundamentais
possam ser expressos como axiomas ou regras e as leis captadas dentro de um aparato
deductivo. E claro que nem todas as teorias s~ao formalizaveis, porem existem casos onde
a formalizac~ao e possvel e util.
Em ci^encia da computac~ao existem duas principais aplicac~oes de teorias formais: modelac~ao do mundo real e especicac~ao de artefactos construdos. Embora a diferenca entre
estes dois usos de teoria seja util, existem entre elas uma especie de simetria que poderia
ser expressa do seguinte modo. Enquanto uma teoria inconsistente da luz n~ao signica
que a luz n~ao exista, mas que a teoria n~ao e apropriada, uma teoria inconsistente atuando
como especicac~ao para um novo sistema de gerenciamento de banco de dados signica
que teremos consideravel diculdade para desenhar tal sistema.
Existe uma diferenca basica, entre o conceito de teoria como vimos nos captulos
anteriores e aquele que e usado em ci^encias de um modo geral e a ci^encia da computac~ao
de um modo particular. Enquanto as teorias matematicas se esgotam nos seus modelos,
os domnios matematicos, se referem a fatos reais. Dai chamarmos as teorias cientcas
de teorias factuais. Portanto em teorias factuais e relevante o conceito sem^amtico de
refer^encia. Isto leva a dois conceitos de modelos em teorias factuais. O modelo matematico
e o modelo factual. Enquanto o modelo matematico e um ferramenta util de entendimento
da teoria, o modelo factual e a propria raz~ao de ser da teoria.
Como se elaboram as teorias cientcas? Parte-se da realidade complexa, como um
sistema bancario, e constroi-se um domnio matematico mais ou menos simplicado dessa
realidade. A complexidade dessa estrutura matematica depende de que tracos da realidade
se pretende captar. Dizemos que essa estrutura e um modelo dessa realidade ou que a
233
234
CAPITULO 10. TEORIAS DE PRIMEIRA ORDEM
realidade foi modelada por esse domnio matematico. E claro que este conceito de modelo
e diferente daquele denido por nos no captulo 5. Assim, existem dois conceitos de
modelos: o modelo de uma teoria formal e o modelo de uma realidade.
Uma vez encontrado o modelo de uma realidade, isto e, o domnio matematico que
capta os fatos basicos dessa realidade, usa-se essa estrutura matematica como uma ferramenta para descobrir fatos novos dessa realidade. E nesse sentido que se usa, por exemplo,
o termo \teoria da relatividade".
O proximo passo seria elaborar uma teoria formal dessa realidade, ou seja, considerar
uma teoria formal tal que um dos modelos e essa estrutura matematica. Feito isso, fechase o ciclo da elaborac~ao de teorias formais de realidades. Portanto, e bom quando se lida
com realidade, se distinguir uma teoria matermatica (ou simplesmente teoria) de uma
teoria formal dessa realidade.
Cabe, no entanto, a seguinte pergunta: Por que a Engenharia de Software se preocupa
com os aspectos formais da realidade, enquanto as demais engenharias n~ao? Uma possvel
resposta seria que as engenharias convencionais se preocupam com a construc~ao de objetos
fsicos, enquanto a engenharia de software tem por meta especicar e conbstruir objetos
logicos, isto e, propriedades de objetos fsicos. Ao usarmos a palavra \teoria", de ora em
diante, deve car claro, pelo contexto, a qual dos dois conceitos de teoria estamos nos
referindo.
Neste captulo estudaremos teorias formais de 1a ordem, especicamente algumas
teorias com igualdade, para nalmente tendo em vista a import^ancia, para a ci^encia da
computac~ao , da componente factual das teorias cientcas, estudar teorias factuais.
10.1 Teorias de 1a Ordem
No captulo 3 vimos o conceito de teoria formal como sendo uma estrutura composta de
uma linguagem formal, um conjunto de axiomas e um conjunto de regras de infer^encias.
Uma teoria formal serve para apresentar uma logica, qual seja o conjunto de todos os
teoremas que podem ser provados na teoria formal. Por outro lado, o conceito de teoria,
como usado no cotidiano, e um conjunto de verdades de uma realidade ou fen^omeno. E
claro, que se eu posso derivar algum fato ou fen^omeno a partir dos preceptos de uma
determinada teoria, ent~ao esse fato ou fen^omeno tambem deve fazer parte dessa teoria.
Logo uma denic~ao adequada para teoria, desde um ponto de vista logico, e como um
conjunto de formulas de uma linguagem formal a qual e fechada com respeito a noc~ao de
consequ^encia sintatica.
Deni
c~ao 10.1.1 Seja T = hL ' Ri uma teoria formal e , Form(L). , e uma
teoria de T se , e fechada em relac~ao a `, isto e,
, = f 2 Form(L) : , ` g:
10.1. TEORIAS DE 1A ORDEM
235
Teorema 10.1.2 Seja T = hL ' Ri uma teoria formal. Ent~ao , = T (T ) e uma teoria,
isto e, o conjuntos de teoremas que podem ser provados em T e uma teoria de T .
Demonstraca~o: Trivialmente se 2 ,, isto e se e um teorema da teoria formal T ,
ent~ao , ` . Por outro lado, se , ` ent~ao existe uma prova 1 n de sobre as
premissas de ,. Provaremos por induc~ao que i 2 ,, para todo i = 1 n e portanto,
2 , como desejado.
Caso base: i = 1, ent~ao 1 ou e um axioma, em cujo caso ` 1 e portanto 1 2 , ou
1 2 ,.
Etapa Indutiva: Assuma que ele e verdadeiro para todo i < k. Ent~ao, por de denic~ao
de prova sobre um conjunto de premissas,
k e um axioma ou
k 2 , ou
k segue por uma regra de infer^encia de R de j 's anteriores.
Os dois primeiros casos s~ao tratados como no caso base. O terceiro caso: se k e
consequ^encia direta de j1 jm , com ji < k, ent~ao por hipotese indutiva, temos uma
prova em T para cada um dos ji , isto e ` ji . Juntando todas as provas mais k obtido
como aplicac~ao de uma regra de infer^encia em R aos ji , obteremos uma prova de k , e
portanto, ` k . Logo, k 2 ,.
Proposi
c~ao 10.1.3 Seja T uma teoria formal e , uma teoria de T . Ent~ao, T (T ) ,.
Demonstraca~o: Por denic~ao, se 2 T (T ), ent~ao ` . Logo, pela monotonicidade da
relac~ao de consequ^encia sintatica `, , ` . Portanto, 2 ,.
Considerando a denic~ao de prova numa teoria formal T = hL ' Ri, se ; ` ent~ao
existe um subconjunto nito ;0 ;, tal que ;0 ` . Se ; for uma teoria de T , cabe a
seguinte pergunta: Existe um ;0 ;, nito tal que ; = f 2 Form(L) : ;0 ` g?
Se tal ;0 existe dizemos que ele e uma apresenta
c~ao da teoria ; na teoria formal
T . Existe sempre uma menor teoria para uma dada teoria formal T , qual seja, a logica
apresentada pela teoria formal, isto e, T (T ). Neste caso ;0 = . Existe tambem a maior
teoria de uma teoria formal T , qual seja Form(L), que no caso de L possuir negaca~o seria
uma teoria inconsistente. E claro, que sempre que temos uma apresentaca~o ;0 de uma
teoria , numa teoria formal T = hL ' Ri, podemos extender a teoria formal T , para
uma teoria T 0 de tal modo que , seja a menor teoria de T 0, isto e, , = T (T 0), fazendo
T 0 = hL '0 Ri com '0 = ' ;0. Portanto, para qualquer teoria ,, para a qual existe
uma apresentac~ao, podemos denir uma teoria formal T tal que , = T (T ). Assim, como
236
CAPITULO 10. TEORIAS DE PRIMEIRA ORDEM
as teorias de nosso interesse s~ao as que possuim uma apresentac~ao, de aqui em diante
sempre usaremos a teoria formal (por exemplo, T ) para a qual a teoria em quest~ao (por
exemplo, ,) e a menor teoria, isto e, , = T (T ). A menor teoria de uma teoria formal T
sera chamada, simplesmente, como a menor teoria de T .
Dentre as teorias formais e suas teorias associadas, queremos destacar aquelas que s~ao
baseadas numa linguagem de 1a ordem.
Deni
c~ao 10.1.4 Seja T = hL ' Ri uma teoria formal. T e uma teoria formal de
1a ordem se L e uma linguagem de 1a ordem e o conjunto de axiomas ' e o conjunto
de regras de infer^encias R contem os axiomas e regras de infer^encias, respectivamente,
da teoria formal do calculo de predicados (sec~ao 6.1.).
Deni
c~ao 10.1.5 Seja T = hL ' Ri uma teoria formal de 1a ordem. A teoria de T e
denominada de teoria de 1a ordem.
Seja C (L) a classe de todas as teorias de 1a ordem sobre uma linguagem de 1a ordem
L. Ent~ao a menor teoria em C (L) e o conjunto das formulas universalmente validas, que
constitui a logica de predicados.
Portanto, se , Form(L) e a teoria de uma teoria formal de 1a ordem T e ,log
e a menor teoria de C (L), isto e Gammalog e a logica de prediacdos sobre a linguagem
L, ent~ao ,log ,. Portanto, , = ,log ,nlog , para algum conjunto ,nlog Form(L)
tal que ,log \ ,nlog = . Assim, ,nlog s~ao as formulas que n~ao fazem parte da logica de
predicados. Dizemos que ,nlog s~ao os objetos n~ao-logicos ou extra-logicos da teoria ,.
Seja T = hL ' Ri uma teoria formal de 1a ordem. O conjunto 'e = ' ; '0 , onde '0 e
o conjunto de axiomas da logica de predicados, e denominado de conjunto de axiomas
extra-logicos da teoria.
Quando uma linguagem formal L e suporte para uma teoria, ela contem smbolos
logicos e n~ao logicos. Como pretendemos desenvolver muitas teorias com a mesma logica
subjacente, as linguagens correspondentes devem ter um nucleo em comum, no mnimo
os smbolos logicos, e variar os smbolos n~ao logicos segundo a teoria em estudo.
Uma teoria de 1a ordem classica e aquela gerada por uma teoria formal de 1a ordem.
Logo para apresentar a teoria de 1a ordem basta listar os smbolos n~ao logicos (para
descrever a linguagem) e os correspondentes axiomas n~ao logicos.
10.2 Teorias de 1a Ordem com Igualdade
Suponha que N = hN + i e uma interpretac~ao para uma linguagem de 1a$ ordem LP .
Frequentemente precissamos dar varios nomes, dependendo do contexto, a um mesmo
elemento de N , por exemplo, o numero dois, pode ter os seguintes nomes: \2", \1+1", \o
menor numero par", \raiz quadrada de quatro", etc. Isto representa um problema para as
10.2. TEORIAS DE 1A ORDEM COM IGUALDADE
237
linguagens de 1a ordem, como apresentamos ate aqui. Gostariamos de poder nos referir a
elementos de N por um nome que pareca apropriado naquele momento e portanto devemos
raciocinar sobre sentencas de modo que reconhecamos os varios termos como sin^onimos.
A soluc~ao e prover , o alfabeto da linguagem, de um predicado que seja comum a todas as
linguagens, cujo objetivo seja substituir nomes equivalentes em sentencas sem trocar seu
valor verdade. Um modo de atingir este objetivo e extender a linguagem LP , fornecendo
uma construc~ao para denotar o fato de que dois nomes se referem ao mesmo individuo.
Poderiamos usar, por exemplo, um nome de predicado igual(x y), com a interpretac~ao
de que ambos, x e y, denotam o mesmo individuo. No entanto o predicado inxo \="
e uma notaca~o mais usual. Este smbolo n~ao pode ser usado para denotar equival^encia,
\", pois usaremos equival^encia como uma propriedade de formulas, enquanto igualdade
e um conceito associado a termos que e introduzido a linguagem para captar a ideia de
\mesmo nome". Em outras palavras, enquanto a igualde relaciona termos na linguagem
a equival^encia relaciona sentencas na metalinguagem.
Assim, enquanto a propriedade \ 00 nos diz que a formula tem o mesmo valor
verdade que a formula , a asserc~ao \x = y00 e uma formula de LP , isto e, uma formula
de Form(L) a qual pode ser verdadeira em algumas interpretaco~es e falsa em outras.
Portanto, e necessario, acrescentar as linguagens de 1a$ o simbolo de predicado \ =00. Por
ele ser um smbolo de predicados binario aplica-se a regra F1 que diz que se t1 tn s~ao
termos e R e um smbolo de predicado n-ario, ent~ao R(t1 tn) 2 Form(L). No caso
particular de \ =00 a regra toma a forma particular:
t1 t2 , onde t t 2 FormL
1 2
t1 = t 2
que pode ser pensada como uma regra de introduca~o da igualdade.
Adicionamos, tambem, mais um axioma
F9 :
(A6) t = t, onde t 2 T(X )
denominado axioma da identidade e uma regra de infer^encia
SI ::
t1 = t2 , onde t t 2 T (X ) e t e substituvel por t em 1 2
1
2
t2=t1 ]
denominada regra de substitui
c~ao por iguais (SI), ou seja \se e verdadeira e t1 = t2,
ent~ao a substituic~ao de algumas (possivelmente todas) as ocorr^encias de t2 por t1 em e
verdadeira".
Assim, uma teoria formal de 1a ordem com igualdade e uma teoria formal de
1a ordem cuja linguagem de 1a ordem tem o smbolo de predicados binario \ =00 e a
regra F9, o conjunto de axiomas tem adicionalmente o axioma A6 e o conjunto de regras
de infer^encia tem a regra de infer^encia extra SI .
CAPITULO 10. TEORIAS DE PRIMEIRA ORDEM
238
De ora em diante quando nos referirmos as linguagens e teorias de 1a ordem estamos
nos referindo as linguagens e teorias de 1a ordem com igualdade.
Exemplo 10.2.1
1. Uma prova de x = y ` y = x e a seguinte
1) x = y hip:
2) x = x A6
3) y = x SI 1 2
2. Uma prova de x = y ` (x = z) ! (y = z )
1) x = y hip:
2) x = z hip:
3) y = z SI 1 2
Dessa forma provamos que x = y x = z ` y = z. Portanto aplicando o teorema da
deduc~ao segue x = y ` (x = z) ! (y = z ).
Deni
c~ao 10.2.2 Seja T uma teoria formal de 1a ordem com igualdade. A logica de
1a ordem com igualdade subjacente a teoria formal T , denotada por LP=, e dada pelo
seguinte conjunto:
LP= = f 2 Form(L) ` g
onde a relac~ao de consequ^encia sintatica ` e a linguagem e relativa a teoria formal T .
Assim, para descrever teorias de 1a ordem, no sentido da sec~ao anterior, basta listar
os smbolos n~ao logicos e os correspondentes axiomas n~ao logicos.
Exemplo 10.2.3 Uma teoria de 1a ordem das ordens parciais tem adicionalmente um
smbolo n~ao logico, , e o conjunto ' = fOP1 OP2 OP3g de axiomas n~ao logicos descritos a seguir:
OP1 : x x
OP2 : x xy= yy x
OP3 : x xy yz z
Observe que uma regra como OP2 e OP3 podem ser vistas como os axiomas
(x y ^ y x) ! x = y e (x y ^ y z) ! x z
10.2. TEORIAS DE 1A ORDEM COM IGUALDADE
239
Portanto a teoria das ordens parciais, OP , e dada pelo seguinte conjunto de formulas
OP = f 2 Form(LOP ) : ' ` g
onde LOP e uma linguagem de 1a ordem (com igualdade) que tem o smbolo de predicados
.
Um modelo de uma teoria e um domnio matematico onde o conjunto de axiomas
n~ao logicos e satisfeito. Por exemplo, um modelo para a teoria das ordens parciais e o
seguinte domnio: Seja U um conjunto n~ao vazio e }(U ) o conjunto das partes de U .
h}(U ) =i, onde \ 00 e \ =00 s~ao as relaco~es de inclus~ao e igualdade entre conjuntos, e
um modelo para a teoria das ordens parciais. Outros modelos s~ao hN =i, hN =i e
hN Mod5i, onde e a relac~ao binaria
x y se, e somente se, x Mod 5 y Mod 5
e ! e a relac~ao de equival^encia sobre N denida por
x ! y se, e somente se, x Mod5 = y Mod 5:
Assim a teoria das ordens parciais OP , e o conjunto de todas as propriedades satisfeitas
ou verdadeiras em todos os modelos de OP .
Exemplo 10.2.4 A teoria da aritmetica de Peano tem como sii mbllos n~ao logicos um
smbolo de predicado \Nat00 e cinco smbolos funcionais (zero 0 + e exp), cujas
aridades s~ao:
1. arid(Nat) = 1
2. arid(zero) = 0
3. arid(0 ) = 1
4. arid(+) = 2
5. arid() = 2
6. arid(exp) = 1
Portanto o conjunto de smbolos n~ao logicos e f00 + exp Natg. Os axiomas extralogicos ' = fE1 E2 E10 g s~ao:
CAPITULO 10. TEORIAS DE PRIMEIRA ORDEM
240
E1 :
E2 :
E3 :
E4 :
E5 :
E6 :
E7 :
E8 :
E9 :
E10 :
Nat(zero)
Nat(x) ! Nat(x0 )
:(x0 = zero)
(zero) ^ (8x:((x) ! (x0))) ! 8x:(x)
x + zero = x
x + y0 = (x + y)0
x zero = zero
x y0 = x y + x
exp(x zero) = zero0
exp(x y0) = exp(x y) x
Portanto a teoria das ordens parciais, TAP , e dada pelo seguinte conjunto de formulas
TAP = f 2 Form(L) : ' ` g:
Um modelo para esta teoria e hN + Suc Expi, onde Suc : N ;! N denida por
Suc(x) = x + 1, Exp : N N ;! N e denida por Exp(x y) = xy , + e tem a
interpretaca~o usual de soma e multiplicac~ao, respectivamente.
10.3 Teorias de 1a Ordem: Uma denic~ao sem^ntica
Seja L uma linguagem de 1a ordem, ' Form(L) e 2 Form(L). Usando o resultado
anterior podemos dar uma denic~ao sem^antica da teoria que coincide com a denica~o
??. Podemos dizer que a teoria associada a um conjunto de axiomas n~ao logicos ' e o
conjunto de formulas que s~ao consequ^encia logica de ', isto e, o conjunto
Con(') = f 2 Form(L) : ' j= g:
Claramente, ' Con('). Dizemos que , e uma teoria de 1a ordem (com igualdade) se, e somente se, Con(,) = ,, isto e se , e um conjunto de sentencas semanticamente fechado.
Seja L uma linguagem de 1a ordem e ' Form(L). O conjunto de todos os modelos
de ' sera denotado por Mod('). Isto e,
Mod(') = fD : D j=a , para cada 2 ' e para qualquer atribuic~ao ag
Dada uma interpretac~ao D para L, denotaremos o conjunto de todas as sentencas
verdadeiras no domnio D por Teo(D). Isto e,
Teo(D) = f 2 Form(L) : D j=a , para qualquer atribuic~ao ag
~ SEMNTICA
^
10.3. TEORIAS DE 1A ORDEM: UMA DEFINICAO
241
Proposi
c~ao 10.3.1 Seja L uma linguagem de 1a ordem e D uma interpretac~ao de L.
Ent~ao , = Teo(D) e uma teoria.
Demonstraca~o: Seja 2 Con(,), temos de mostrar que 2 ,. De fato, se 2
Con(,), ent~ao para todo D0 2 Mod(,), D0 j= . Mas D 2 Mod(,), pois toda sentenca em , e verdadeira em D. Logo, D j= , e consequentemente 2 ,, isto e, , e
semanticamente fechado e portanto e uma teoria.
Proposi
c~ao 10.3.2 Seja L uma linguagem de 1a ordem e fDi : i 2 I g uma classe de
domnios que realizam L. Consideremos o conjunto
,=
\
i2I
Teo(D)
ou seja, , e o conjunto de todas as sentencas de L verdadeiras em todos os domnios Di,
com i 2 I . Ent~ao , e uma teoria.
Demonstraca~o: Mostraremos que Con(,) = ,. Como e obvio que , T Con(,), e
suciente mostrar que Con(,) ,. Para isso seja 2 Con(,). Como , =
segue que
2
\
i2I
i2I Teo(Di )
Con(Teo(Di))
e consequentemente 2 Teo(Di) para todo i 2 I . Portanto 2 ,. Logo, Con(,) ,.
Exemplo 10.3.3 Seja = f eg, onde e um smbolo funcional binario e e e um
smbolo de constante, o conjunto de smbolos especiais de uma linguagem de 1a ordem
L. A teoria elementar dos grupos e constituda pelas sentencas verdadeiras em todos os
domnios que realizam L e s~ao verdadeiras as seguintes sentencas:
G1 : 8x:8y:8z:(x y) z = x (y z)
G2 : 8x:x e = x
G3 : forallx:9y:x y = e
Assim, o smbolo funcional sera interpretado como o produto de um grupo e o smbolo
constante e como o elemento neutro multiplicativo.
A principal raz~ao pela que formulamos teorias em forma axiomatica, em lugar de
formula-las em forma intuitiva, principalmente para as teorias de 1a ordem, e que noc~oes
como consist^encia e completeza podem ser discutidos de um modo preciso e denitivo.
Isto e possvel devido a noc~ao de prova ser explcita.
Deni
c~ao 10.3.4 Seja , uma teoria. , e dita
CAPITULO 10. TEORIAS DE PRIMEIRA ORDEM
242
1. Simplesmente consistente se n~ao existe 2 Form(L) tal que , ` e , ` :.
2. Absolutamente consistente se existe 2 Form(L) tal que , 6` , onde 6`
signica que \n~ao e derivavel".
3. Maximalmente simplesmente consistente se
(a) , e simplesmente consistente e
(b) se para algum 2 Form(L), , ` implica que , fg n~ao e simplesmente
consistente.
4. completa se para todo 2 Form(L) ou , ` ou , ` :.
Proposi
c~ao 10.3.5 Seja , uma teoria. Se , e simplesmente completa, ent~ao , e absolutamente completa.
Demonstraca~o: Seja 2 Form(L) tal que , ` . Por hipotese, , 6` :. Logo, , e
absolutamente consistente.
A recproca desta proposic~ao e falsa, no mnimo porque o conceito de simplesmente
consistente pressup~oe a exist^encia do conectivo \:". No entanto, temos o seguinte resultado.
Proposi
c~ao 10.3.6 Se na linguagem de uma teoria , existe o conectivo \:" e e possvel
inferir : ` ent~ao absolutamente consistente implica em simplesmente consistente.
Demonstraca~o: Suponha que , n~ao seja simplesmente consistente, ent~ao existe 2
Form(L) tal que , ` e , ` :. Por transitividade e usando a hipotese temos, , ` ,
para um 2 Form(L) arbitrario. Portanto, , n~ao e absolutamente consistente.
Consequentemente uma teoria de 1a ordem e simplesmente consistente se, e somente
se, for absolutamente consistente, de vez que : ` e uma regra derivada da logica de
predicados classica. Da os dois conceitos so terem sentido em teorias n~ao classicas. Nas
teorias de 1a ordem, o conceito interessante e da teoria consistente.
A quest~ao e a seguinte: Como saber se uma teoria , de 1a ordem e consistente?
Prova-se em teoria dos modelos de 1a ordem que , e consistente se, e somente se, possui
um modelo. Mais precisamente, seja , e a teoria gerada por uma teoria formal de 1a
ordem T = hL ' Ri. , tem um modelo se, e somente se, o conjunto de axiomas extralogicos 'N ', tem um modelo. Este e um criterio muito simples e usual de reconhecer
um modelo de uma teoria de 1a ordem ,.
Proposi
c~ao 10.3.7 Seja , e a teoria gerada por uma teoria formal de 1a ordem T =
hL ' Ri. Suponha que a regra
~ SEMNTICA
^
10.3. TEORIAS DE 1A ORDEM: UMA DEFINICAO
243
; ` ; ` :
; ` :
e derivavel em T . Ent~ao, se , e maximalmente simplesmente consistente, ent~ao , e
completa.
Demonstraca~o: Suponha que , n~ao seja completa. Ent~ao existe 2 Form(L) tal que
6` (1) e 6` : (2).
Por outro lado, se , e maximalmente simplesmente consistente, ent~ao , e simplesmente consistente e ou ` , o qual contradiz (1), ou 6` e , fg n~ao e simplesmente
consistente. Se for assim, por , fg n~ao ser simplesmente consistente, existe um tal
que `
fg (ou equivalentemente ` ) e `
fg : (ou equivalenetmente ` : ).
Usando a regra I: descrita no enunciado desta proposic~ao , ` :, o qual contradiz (2).
Os absurdos resultaram de supor que , n~ao era completa.
Enquanto o chamado teorema da completude e teorema da compacidade podem representar algo altamente positivo nas teorias de 1a ordem classicas, eles tambem s~ao indicadores das limitac~oes das logicas de 1a ordem. Como por exemplo a proposic~ao a seguir
que e uma simples consequ^encia do teorema da compacidade.
I: :
Proposi
c~ao 10.3.8 (Teorema de Lowenheim-Skolem ascendente) Se uma teoria
de 1a ordem , tem um modelo innito (isto e, um cujo conjunto base e innito), ent~ao
ela tem modelos de cardinalidade arbitrariamente grande.
Demonstraca~o: Seja , a teoria gerada por uma teoria formal de 1a ordem T =
hL ' Ri, M e um modelo innito de , e N e um conjunto arbitrario. Pretendemos
construir um modelo M 0 de , cujo conjunto base tem no minimo a cardinalidade de
N . Para isso denamos uma nova teoria formal de 1a ordem T 0 = hL0 '0 R0i a partir
de T . A linguagem formal L0 e a linguagem formal L acrescentada dos novos smbolos
constantes ci , com i 2 N e as respectivas regras de formac~ao. '0 e o conjunto de axiomas
' mais os novos axiomas
:(ci = cj ) para cada i 6= j em N :
Agora qualquer subconjunto nito de ,0, a teoria gerada por T 0, tem um modelo desde
que ele mencione somente uma quantidade nita dos ci e possamos achar valores distintos
para eles em nosso modelo M de ,. Portanto, ,0 tem um modelo, mas qualquer que ele
seja e um modelo M 0 de junto com uma injeca~o N ;! M 0 .
Existe tambem um teorema de L+owenheim-Skolem \descendente", que enunciaremos
a seguir sem, no entanto, darmos a prova. A mesma pode ser encontrada em ].
Proposi
c~ao 10.3.9 Seja uma teoria de 1a ordem , que tem um modelo innito, ent~ao
ela tem um modelo innito contavel. Mais precisamente, se D e um modelo qualquer de
,, e A e um subconjunto contvel de D (o conjunto base de D), ent~ao existe um submodelo
contavel de D para , com A como conjunto base.
244
CAPITULO 10. TEORIAS DE PRIMEIRA ORDEM
N~ao denimos anteriormente o conceito de submodelo, ele se encaixa na ideia geral
de subestrutura. Por exemplo, um grupo. Para entender a ideia por tras da prova desta
proposic~ao, analisemos quando uma teoria de 1a ordem , e uma teoria dos grupos. Neste
caso, um subgrupo de um grupo G = hG ei gerado por um subconjunto contavel A de
G, e contavel. A prova em geral e analoga aquela que desenvolveriamos para provar isto.
Ou seja, iniciamos com o conjunto A e acrescentamos elemntos de M quando formos
forcados por , ate o processo terminar, e ent~ao se mostra que n~ao se sai de um conjunto
contavel.
Uma teoria diz-se categorica se ela tem somente um modelo, a menos de isomorsmo.
O teorema de L+owenheim-Skolem nos diz que uma teoria de 1a ordem com um modelo
innito n~ao pode ser categorica (embora existam categorias com modelos nitos: Por
exemplo, a teoria dos grupos simples de ordem 168). Estamos acostumados a encontrar,
em matematica, sistemas de axiomas que categorizam estruturas innitas, como e que
isso acontece?
Tomemos por exemplo o sistema de postulados de Peano para os numeros naturais
?].
Eles dizem aproximadamente o seguinte:
1.
2.
3.
4.
5.
0 e um numero natural
todo numero natural tem um sucessor
0 n~ao e sucessor de nemguem
numeros naturais distintos tem sucessores distintos
(o postulado da induc~ao) Se P e uma propriedade dos numeros naturais que e
verdadeira para 0, e que e verdadeira para todo sucessor de x quando e verdadeira
para x, ent~ao P e verdadeira para todos os naturais.
Expressos em terminologia moderna, os postulados 1) e 2) n~ao s~ao axiomas, pois
eles denem, simplesmente, a linguagem, dizendo que ela contem uma constante e uma
operac~ao unaria S . Os postulados 3) e 4) podem ser expressos como sentencas de 1a
ordem nessa linguagem:
3. 8x::(S (x) = 0)
4. 8x:8y:(S (x) = S (y)) ! (x = y)
O problema se da com o resultado 5., que fala (implicitamente) de todas as possveis
propriedades dos numeros naturais, isto e, de todos os subconjuntos possveis do modelo
pretendido N . Em logica de 1a ordem n~ao e permitido quanticar sobre subconjuntos,
mas somente sobre elementos. devemos portanto, tentar aproximar as intenco~es de Peano
introduzindo um esquema de axiomas da forma
10.4. TEORIAS FACTUAIS
245
5. (0=x] ^ 8x:( ! S (x)=x])) ! 8x:
Entretanto quando os logicos falam de \aritmetica de Peano", eles, em geral, est~ao
pensando numa extens~ao dessa teoria obtida acrescentando tr^es operac~oes binarias A, M
e E a linguagem, mais os seguintes axiomas:
P1 : 8x:A(x z) = z
P2 : 8x:8y:A(x S (y)) = S (A(x y))
P3 : 8x:M (x 0) = x
P4 : 8x:8y:M (x S (y)) = A(M (x y) x)
P5 : 8x:E (x 0) = S (0)
P6 : 8x:8y:E (x S (y)) = M (E (x y) x)
que expressam as denic~oes recursivas mais usuais da adic~ao, multiplicaca~o e exponenciac~ao. A aritmetica de Peano e uma teoria util e versatil. No entanto, n~ao capturamos
toda a forca dos cinco postulados de Peano, pois nossa linguagem e contavel e portanto
so existe uma quantidade contavel de axiomas da forma 8x1 :8x2 : :8xn (cada um dos
quais se interpretado numa estrutura contavel D, e uma asserc~ao sobre uma quantidade
contavel de subconjuntos de D, uma para cada atribuic~ao dos par^ametros x1 xn, o
postulado de Peano se aplica a cada um de uma quantidade incontavel de subconjuntos
de N .
Portanto, o fato de que a aritmetica de Peano tem modelos n~ao isomorfos a N n~ao e
do todo uma surpresa.
Uma observac~ao analoga se aplica a asserc~ao, familiar de um primeiro curso de analise
real, que os axiomas para um (Dedekind) corpo ordenado completo categoriza a reta real
R . O problema e que o axioma da completeza de Dedekind
8S R (S 6= e S tem um maiorante) ! S tem um supremo)
envolve a quanticac~ao sobre conjuntos de R . Novamente podemos trocalos por esquemas
de axiomas de 1a ordem nas linguagens dos aneis ordenados (isto e, a linguagem dos
aneis com um predicado adicional ), mas existe somente uma quantidade contavel de
tais axiomas e a teoria resultante tera um modelo contavel.
10.4 Teorias Factuais
Convencionamos chamar de construto, em um domnio mateatico, a um conceito (em
particular, a uma relac~ao), a um corpo de conceitos, a uma proposic~ao ou a um corpo
de proposic~oes, isto e, a uma teoria. Portanto, quando nos referimos a \construto" numa
linguagem formal estaremos nos referindo ao seu correspondente conceitual, no domnio
matematico. Por exemplo, todos os tr^es componentes do enunciado \3>2" s~ao conceitos
e o enunciado e uma proposic~ao. Todos s~ao construtos.
246
CAPITULO 10. TEORIAS DE PRIMEIRA ORDEM
Na nossa denic~ao de sistema de interpretac~ao, a func~ao Va tinha o papel de assoicar
um item lingustico a um conceito matematico. Em verdad, essa funca~o poderia associar
itens lingusticos a qualquer coisa: individuous, conjuntos, relac~oes concretas ou abstratas,
e possveis ou impossveis. Isto e, Va poderia associar um item lingustico a objetos no
sentido losoco geral da palavra. Admitimos essa noca~o geral de objeto como primitiva
ou n~ao denida. Mas admitiremos as seguintes divis~oes:
1. Cada objeto e um item factual (isto e, um acontecimento) ou um construto (isto
e, um conjunto). Nenhum objeto e ao mesmo tempo item factual e construto.
2. Cada objeto factual e lingustico ou extralingustico. Nenhum objeto pode ser
ambas coisas.
3. Cada objeto lingustico e ou um termo, ou uma formula, ou uma sentenca, ou um
conjunto especial de sentencas ou uma teoria formal.
Deni
c~ao 10.4.1 Seja L uma linguagem formal e D uma interpretac~ao para L. Dizemos
que um tem lingustico de L (isto e, uma fbf de L) designa ou denota um construto
de D, ou seja, a relac~ao de designac~ao ou denotac~ao vigente entre tens lingusticos e
seus denotados conceitos, proposic~oes , etc. Portanto, Va e a func~ao de denotac~ao ou de
designaca~o. De ora em diante, aos tens lingusticos chamaremos signos.
No caso das teorias cientcas, surge a composic~ao de duas relac~oes: designac~ao Va, de
signos para construtos, e a de refer^encia Dn;, de construtos para itens factuais. Assim,
alem das presunc~oes ordinarias e das \regras" de designaca~o, as teorias cientcas, incluem
tambem, correspond^encias construtos-fatos. Estas ultimas nos esclarece acerca daquilo a
que as teorias dizem respeito: ao que se referem seus construtos e o que representam.
Ao par hD Vai, onde D e um domnio matematico e Va e a funca~o de interpretac~ao,
chamaremos domnio conceptual. Assim, um conjunto pertence a um domnio conceptual.
Seja C uma classe de construtos e . o conjunto dos objetos como conceituados acima.
Portanto, C ., isto e, construtos s~ao objetos.
Deni
c~ao 10.4.2 Uma relac~ao de refer^encia < e um subconjunto de C ., ou seja, a
relac~ao de refer^encia associa construtos a objetos. Para c 2 C e o 2 ., se (c o) 2 < (ou
em notac~ao inxa c<o), dizemos que o construto \c" se refere ao objeto \o" atraves de
<. Denimos a classe de refer^encia de c 2 C , denotado por <(c), ao conjunto
<(c) = fo 2 . : <(c o)g:
A relac~ao de refer^encia < n~ao e re)exiva, nem simetrica, nem transitiva. De fato, n~ao
e re)exiva, porque, por exemplo, o conceito de um numero se refere antes a numeros de
que a si mesmo. Portanto, < n~ao e, obviamente, nem simetrica nem antisimetrica. < n~ao
e transitiva como se v^e no exemplo seguinte:
10.4. TEORIAS FACTUAIS
247
r \o enunciado abaixo e falso"
s, onde s se refere a um terceiro enunciado t.
E claro que r<s e s<t, mas tambem e claro que n~ao se da que r<t.
Pergunta, qual e a classe de refer^encia de uma sentenca em **LPC*?
Itens factuais, como coisas e eventos, s~ao convenientemente caracterizadas como n~aoconceituais.
Deni
c~ao 10.4.3 A totalidade F de objetos factuais e o subconjunto de . formado
por elementos n~ao-conceituais e tais que F se torna disjunto em relac~ao a C , isto e,
F = fx 2 . : :(x 2 C )g:
Se um conceito, enunciado ou teoria, se refere a um ou mais objetos factuais dir-se-a
que ele e factual. Assim a subrelac~ao <(F ) , de refer^encia factual, coloca em pares construtos objetos factuais, ou seja sua extens~ao se contem no conjunto dos pares ordenados
construto-fato, isto e, <(F ) C F .
Consideremos a seguinte tabela, onde / ou 0 e a relaca~o de designac~ao:
objeto lingustico ! / ou 0 ! construto
!<!
objeto
nome proprio
! designa ! conceito individual ! refer^encia ! individuo
letra predicado
predicado
propriedade
sentenca
proposic~ao
conjunto de fatos
A func~ao de valorac~ao Va e a relac~ao de refer^encia <, podem ser combinadas para produzir uma relac~ao, que, associa em pares, signos a objetos. Essa relaca~o que designaremos
por ', sera concebida como o produto relacional de Va por <.
Deni
c~ao 10.4.4 Seja obj (L) o conjunto de objetos de uma linguagem L. A relac~ao ,
', com domnio obj (L) e co-domnio abrangendo o conjunto }(.), de classes de objetos,
denida por ' = Va \ < e denominada de rela
c~ao de denota
c~ao .
Quando a denotac~ao de um signo e conceitual, ' coincide com Va. Dessa forma '3'
designa \3" ou equivalentemente `3' denota \3". Em outras palavras, no campo da ci^encia
formal n~ao existe diferenca entre designac~ao e denotac~ao. Contudo quando um construto
se refre a algum objeto extra conceitual a diferenca se torna clara.
CAPITULO 10. TEORIAS DE PRIMEIRA ORDEM
248
10.4.1 Exemplos de Teorias Factuais
Tendo decidido a logica subjacente a nossa teoria precisamos restringir a linguagem formal
de modo a incluir somente aqueles termos e nomes de predicados que ter~ao interpretaca~o.
No que segue daremos exemplos de modo a ilustrar essas observac~oes.
Existem tr^es masculinos na famlia de Ferreira: Jo~ao, bento e Henrique. Henrique e
pai de Jo~ao, e Jo~ao e pai de Bento.
Alfabeto n~ao logico = fx y Henrique Joao Bento pai avog.
Regras n~ao Logicas
= f Joao Henrique Bento pai() fracavo() = Henrique Joao Bentog
Axiomas n~ao Logicos:
E1: pai(Joao) = Henrique
E2: pai(Bento) = Joao
E3: 8x: pai(pai(x)) = avo(x)
O sistema formal e
Ap^endice A
Soluc~oes de Exerccios Propostos
Captulo 1
Captulo 2
Captulo 3
1) Provaremos que ` :( ! : )
1)
2)
3)
4)
5)
6)
7)
! ::
::
! (:: ! :( ! : ))
:: ! :( ! : )
:( ! : )
Hipotese
Hipotese
proposic~ao 3:3:4:b
M:P:2 3
proposica~o 3:3:4:f
M:P:1 5
M:P:4 6
3) Provaremos que :( ! : ) ` 1)
2)
3)
4)
5)
6)
7)
:( ! : )
(: ! ( ! : )) ! (:( ! : ) ! :: )
: ! ( ! : )
:( ! : ) ! ::
::
:: ! 4) Provaremos que :( ! : ) ` 249
Hipotese
proposic~ao 3:3:4:e
AxiomaA1
M:P:3 2
M:P:1 4
proposic~ao 3:3:4:a
M:P:5 6
Ap^endice A. Soluco~es de Exerccios Propostos
250
1)
2)
3)
4)
5)
6)
7)
:( ! : )
(: ! ( ! : )) ! (:( ! : ) ! ::)
: ! ( ! : )
:( ! : ) ! ::
::
:( ! : ) ! Hipotese
proposica~o 3:3:4:e
proposica~o 3:3:4:c
M:P:3 2
proposica~o 3:3:4:a
proposic~ao 3:3:3:i 4 5
M:P:1 6
5) Provaremos que se ` ent~ao :( ! : ) ` .
1)
2)
3)
4)
` :( ! : ) ` :( ! : ) ` :( ! : ) ` Hipotese
Exerccio 3
Exerccio 4
Lei do Corte
6) Provaremos que ` ::( ! : ) ! : .
1)
2)
3)
4)
5)
6)
7)
::( ! : )
::( ! : ) ! ( ! : )
! :
:
::( ! ) ` :
` ::( ! : ) ! :
Hipotese
Hipotese
proposic~ao 3:3:4:a
M:P:2 3
M:P:1 4
o provado de 1-5
teorema da deduc~ao
7) Provaremos que se ` ! e ` ! ent~ao ` ! :( ! :
), isto e,sera provado
que ! ! ` ! :( ! :
)
1)
2)
3)
4)
5)
6)
7)
8)
!
!
:( ! :
)
! ! ` :( ! :
)
! ! ` ! :( ! :
)
Hipotese
Hipotese
Hipotese
M:P:3 1
M:P:3 2
exerccio 2
o provado de 1-6
teorema da deduca~o
Ap^endice A. Soluco~es de Exerccios Propostos
251
Captulo 4
Captulo 5
Captulo 6
1.c.) Primeiro provamos que 8x:8y:P (x y) ` 8x:8y:P (y x). Seja a seguinte prova:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
8x:8y:P (x y ) hip.
8x:8y:P (x y ) ! 8y:P (z y ) A5.
8y:P (z y ) MP 1,2
8y:P (z y ) ! P (z x) A5.
P (z x) MP 3,4
8z:P (z x) Gen.
8z:P (z x) ! P (y x) A5.
P (y x) MP 6,7
8y:P (y x) Gen.
8x:8y:P (y x) Gen.
Logo, como a hipoteses 8x:8y:P (x y) n~ao tem variaveis livres, podemos usar o teorema da deduc~ao e inferir que existe uma prova de ` 8x:8y:P (x y) ! 8x:8y:P (y x)
2.b.) Uma prova de R(a) ! 8x:P (x) ` 8x:(R(a) ! P (x)) e a seguinte:
1.
2.
3.
4.
R(a) ! 8x:P (x) hip
8x:P (x) ! P (x) A5
R(a) ! P (x) prop. 3.3.3.i
8x:(R(a) ! P (x)) Gen.
Captulo 7
22.b) S ;! aSB j aB j abc
B ;! bC
Cb ;! bC
CC ;! cc
cC ;! cc
Ap^endice A. Soluco~es de Exerccios Propostos
252
24) A soluc~ao-CP e dada pelas sequ^encias 4-2-5-5-3-1. Isto e, da sequ^encia A obtemos
baab baba ab ab abaa aba
e da sequ^encia B obtemos
baa bbab a a baba baaaba
A cadeia resultante e baabbabaabababaaaba.
Captulo 8
4.d) retira(X,],]).
retira(X,X|L1],L1).
retira(X,Y|L1],L2):- retira(X,L1,L3), insira1(Y,L3,L2).
4.d) retira2(X,],]).
retira(X,X|L1],L2):- retira(X,L1,L2).
retira(X,Y|L1],L2):- retira(X,L1,L3), insira1(Y,L3,L2).
Bibliograa
Acy98] Benedito Melo Acioly. Programac~ao como Matematica ou Logica Construtiva.
Anais do I Workshop em Logica, Banco de Dados e Intelig^encia Computacional,
Natal-RN, 9 e 10 de novembro de 1998. Paginas 13 a 22.
AB99] Benedito Melo Acioly e Benjamn Rene Callejas Bedregal. Teoria da Computac~ao
: Hierarquia de Linguagens Formais e Computabilidade. Notas de Aula, DIMApUFRN, 1999.
BB95] Bojadziev, G. & Bojadziev, M. Fuzzy Sets, Fuzzy Logic, Applications. World
Scientic Publishing, Singapore, 1995.
Bet59] E. W. Beth. The Foundations of Mathematics. North Holland, 1959.
Bos97] David Bostock. Intermediate Logic. Clarendon Press - Oxford, 1997.
Bow82] K.A. Bowen. Programming with full rst order logic. Em J.E. Hayes et al., editores, Machine Intelligence 10. Elis Horwood, Chichester, 1982.
Bun83] A. Bundy. The Computer Modelling of Mathematical Reasoning. Academic Press,
London, 1983.
Cos92] Marcos Mota do Carmo Costa. Introduc~ao a Logica Modal Aplicada a Computac~ao . VIII Escola de Computaca~o, 3 a 12 de agosto de 1992, Gramado/RS.
CHRP73 CHRP73 A. Colmerauer, H. Hanoui, P. Roussel e R. Pasero. Un Systeme de
Communication Homme-Machine en Francais. Groupe d'Intelligence Articielle,
Universite d'Aix-Marseille, 1973.
CL73 CL73 Chin-Liang Chang e Richard Char-Tung Lee. Symbolic Logic and Mechanical Theorem Proving. Academic Press, New York, 1973.
Dav89] Ruth E. Davis. Truth, Deduction, and Computation: Logic and semantic for
computer science. Computer Science Press, 1989.
Doe94] Kees Doets.From Logic to Logic Programming. The MIT Press, Cambridge, Massachusetts, 1994.
Dum77] M. Dummett. Elements of Intuitionism. Oxford U.P., 1977.
253
254
BIBLIOGRAFIA
End72] H. B. Enderton. A Mathematical Introduction to Logic. Academic Press Inc., New
York, 1972.
Fit96] Melvin Fitting. First-Order Logic and Automated Theorem Proving. Second Edition, Springer-Verlag, 1996.
Gal86] J. H. Gallier. Logic for Computer Science. Harper and Row, New York, 1986.
G+89] Paul Gochet et al. From Standard Logic to Logic Programming: Introducing a
Logic Based Approach to Articial Intelligence. Andre Thayse ed.. John Wiley &
sons, 1989.
GH75] Hubert Brian Gri3ths e Peter John Hilton. Matematica Classica: Uma interpretac~ao contempor^anea. Traduzida por Elza F. Gomide. S~ao Paulo, Edgars Bl+ucher,
Ed. da Universidade de S~ao Paulo, 1975.
Gog97] Joseph A. Goguen. Theorem Proving and Algebra (Draft). University of California
at San Diego, Department of Computer Science and Engineering, 1997.
GLT89] Jean-Yves Girard, Yves Lafont e Paul Taylor. Proof and Types. Cambridge
Tracts in Theoretical Computer Science, Vol. 7. Cambridge University Press,
1989.
GTW77] J.A. Goguen, J.W. Thatcher and E.G. Wagner. An Initial Algebra Approach
to the Specication, Correctness, and Implementation of Abstract Data Type. RC
6487, IBM Thomas J. Watson Research Center, New York, 1976.
HA50] D. Hilbert e W. Ackermann. Principles of Mathematical Logic. Chelsea, 1950.
Har79] David Harel. First Order Dynamic Logic. Lecture Notes in Computer Science,
LNCS, Vol. 68, 1979.
Hen88] Matthew Hennessy. Algebraic Theory of Processes. The MIT Press, 1988.
Hey56] A. Heyting. Intuitionism: An Introduction. North Holland, 1956.
Hin55] J.Hintikka. Form and Content in Quantication Theory. Acta Philosophica Fennica, 8, 1955.
HL94] Patricia Hill e John Lloyd. Godel Programming Languages (Logic Programming).
MIT Press, may 1994.
Hod92] Joshua S. Hodas. Lolli: An Extension of Prolog with Linear Logic Context
Management. Proceeding of the 1992 Workshop on the Prolog Programming
Languages. Philadelphia, summer 1992.
Hod95] Joshua S. Hodas. Lolli: A Linear Logic Programming Language. In
http://www.cs.hmc.edu/ hodas/research/lolli/, ultima atualizaca~o em
26/07/1995. Acessado em 17/01/2002.
BIBLIOGRAFIA
255
HMM83] J. Halpern, Z. Manna and B. Moszwkowski. A Hardware Semantics Based Upon
Temporal Intervals. In: Procedding of 19th International Colloquium on Automata, Language and Programming. Lecture Notes in Computer Science, LNCS, Vol.
154:278-292, 1983.
Kas96] Kasabov, N. K. Foundations of Neural Networks, Fuzzy Systems, and Knowledge
Engineering. Ed. The MIT Press, Massachusetts Institute of Technology, 1996.
Kle52] S.C. Kleene. Introduction to Metamathematics. Van Nostrand, 1952.
Kow72] Robert Kowalski. The Predicate Calculus as a Programming Languages. Anais
do International Symposium and Summer School on Mathematical Foundations
of Computer Science, Jablona near Warsaw, Poland, 1972.
Kow74] Robert Kowalski. Predicate Logic as a programming language. Proceedings
IFIP'74, North-Holland 1974, paginas, 569-574.
Lan64] P. J. Landim. The Mechanical Evaluation of Expressions. Computer Journal,
6:308-320,1964.
Mak92] J. A. Makowsky. Model Theory and Computer Science: An Appetizer. In Handbook of Logic in Computer Science Vol. 1. S. Abramsky, Dov. M. Gabbay and
T.S.E. Maimbaum (eds). Clarendon Press - Oxford, 1992.
Men87] Elliott Mendelson. Introduction to Mathematical Logic. Third Edition.
Wadsworth & Brooks/Cole Advanced Books & Software, Pacic Grove, California. A division of Wadsworth, Inc. 1987.
Mer53] C.A. Meredith. Single axioms for the systems (C,N), (C,O) and (A,N) of the two
valued propositional calculus. IN J. Comp. Syst. (3):155-164, 1953.
MP79] Z. Manna and A. Pneuli. The Modal Logic of Programs. In Proceeding of 6th International Colloquium on Automata, Language and Programming. Lecture Notes
in Computer Science, LNCS, Vol. 71:385-411, Springer-Verlag, 1979.
Ngu99] Nguyen, Hung T. and Walker, Elbert A. A First Course in Fuzzy Logic. Chapman
and Hall, 1999.
NP01] Tobias Nipkow and Lawrence C. Paulson. Isabelle HOL: Then Tutorial. SpringerVerlag, 2001.
OUS01] OUSIA Site. Estudos em Aristoteles. In http://www.ifcs.ufrj.br/ fsantoro/ousia/frames.htm. Accesado em 27/11/2001.
Pal97] Luiz A.M. Palazzo. Introduc~ao a Programac~ao PROLOG. Pelotas: Editora da
Universidade Catolica de Pelotas, EDUCAT, 1997.
256
BIBLIOGRAFIA
Pau94] Lawrence C. Paulson. Isabelle: A Generic Theorem Prover. LNCS 828, SpringerVerlag, 1994.
PPW79] L.M. Pereira, F.C.N. Pereira e D.H.D. Warren. User's Guide to DECsystem-10
Prolog (Provisional Version), Department of Articial Intelligence, University of
Edinburgh, Edinburgh, Scotland, 1979.
Ree85] S.V. Reeves. Theorem-Proving by Semantic Tableaux. PhD. Thesis, University of
Birmingham, 1985.
Rob65] J.A. Robinson. A Machine-Oriented Based on the Resolution Principie. Journal
of ACM, New York, V.12, n.1., p.23-41, Jan. 1965.
Rob79] J.A. Robinson. Logic: Form and Function. North Holland, New York, 1979.
Ros53] J.B. Rosser. Logic for Mathematicians. McGraw Hill, 1953 (second edition, 1978,
Chelsea).
RS92] Mark Ryan e Martin Sadler. Valuation Systems and Consequence Relations. In
Handbook of Logic in Computer Science Vol. 1. S. Abramsky, Dov. M. Gabbay
and T.S.E. Maimbaum (eds). Clarendon Press - Oxford, 1992.
Smu68] R. M. Smullyan. First-Order Logic. Springer-Verlag, Berlim, 1968.
TB01] Naoyuki Tamura and Mutsonori Bonbara. LLP: A Linear Logic Programming
Languages and its Compiler System. http://bach.cs.kobe-u.ac.jp/llp/, ultima atualizac~ao em 16/10/2001. Acessado em 17/01/2002.
Tho87] Simon Thompson. An Introduction to Type Theory and Constructive Mathematics (Draft). University of Kent at Canterbury, Computing Laboratory, 1987.
xre01] xrefer site. Logic, history of. In http://www.xrefer.com/entry/552643. Accesado
em 06/11/2001.
Zad65] Zadeh, L. Fuzzy Sets. Information Control 8, (1965).
Zem73] J.J. Zeman. Modal Logic. Oxford, 1973.
Indice
-algebras, 4
-algebra
inicial, 9
-congru^encia, 14
-domnio, 18
dos termos com variaveis, 19
homomorsmo, 19
-equac~ao , 18
-isomorsmo, 11
-homomorsmo, 7
TP , 99
algebra, 4
algebra booleana, 30
T(TP), 100
backtracking, 153
base de dados, 147
basica, 59
multiunitaria, 67
n~ao unitaria, 67
unitaria, 67
vazia, 55, 59, 142
clausulas
de Horn, 141
classe de equival^encia, 14
Classes equacionais, 13
computaco~es numericas, 159
computaca~o simbolica, 142
Con, 178
conjunto
base, 18
conjunto de discord^ancias, 126
conjunto minimal insatisfatvel, 67
consequ^encia, 42
logica, 33
sem^antica, 33
consequ^encia direta, 42
consequ^encia logica, 92
consequ^encia sem^antica, 92
consequente, 25
consist^encia, 103
consistente, 33
construto, 217
consultas, 147
contingentes, 32
contradic~ao, 32
Cor, 178
calculo de sequente de Gentzen, 177
calculo proposicional, 31
caixa, 55
clausula, 59
b'asica, 111
deduc~ao
natural, 168
deduc~ao por resoluc~ao , 61
depende de, 103
domminio de Herbrand, 122
A-atribuic~ao, 12
alfabeto, 2
de 1a ordem, 82
antecedente, 25
aritmetica de Peano, 217
assinatura, 5
relacional, 18
assunc~ao, 168
atribuic~ao de valores verdade, 30
axiomas, 42
extra-logicos, 208
axiomas da linguagem formal, 2
257
258
domnio conceptual, 218
ELC, 55, 59
eliminac~ao de literais complementares, 59
Emf, 178
equac~ao , 13
escopo, 28
hipotese, 168
formula
at^omica, 84
universalmente fechada, 112
formula bem formada, 4
formula fechada, 85
formula valida, 92
formulas
at^omicas, 27
bem formadas, 27
tautologicas, 94
falsa numa interpretac~ao , 92
fatos, 146
fbf, 4, 27
fnc, 56
fncr, 56
forma clausal, 112
forma normal
conjuntiva, 56
de 1a ordem, 120
reduzida, 56
prenex, 112
func~ao
de valoraca~o , 30
sem^antica, 30
func~ao de Skolem, 116
generalizac~ao universal, 100
gramatica, 2
identicadores, 145
Inc, 178
insatisfatvel, 92
inst^ancia de substituica~o , 124
Int, 178
interpretac~ao , 88
INDICE
Logica
proposicional, 33
logica
de 1a ordem, 94
de predicados classica, 94
leis de Morgan, 37
Linguagem, 2
especicada, 4
Formal, 2
gerada, 4
Natural, 3
Proposicional, 26
linguagem, 2
1a ordem, 81
de predicados, 82
decidvel, 29
dos termos de primeira ordem, 83
linguagem formal
de primeira ordem, 83
lista
vazia, 162
listas, 162
literal, 56
logica
1a ordem
com igualdade, 210
logicamente equivalentes, 36
matriz, 112
metas, 147
modelo, 92
modus ponem, 44
modus ponens, 100
modus tollens, 52
objeto, 218
factual, 218
lingustico, 218
objetos, 144
ocorr^encia ligada, 85
ocorr^encia livre, 85
operadores, 158
oredm lexicograca, 127
paradigma funcional, 139
INDICE
paradigma logico, 139
perguntas, 147
prexo, 112
premissa, 168
procedimento de unicac~ao de Robinson,
128
programa em logica, 139
programac~ao declarativa, 139
programas procedurais, 139
Prolog, 140
proposic~ao, 24
proposic~ao
at^omica, 26
composta, 26
prova, 42
Linguagem formais, 4
subordinada, 168
tableau
para o sequente, 188
prova tableau, 187
forte, 194
quet~oes, 147
ramo fechado, 187
reduzir formulas, 56
refutac~ao , 62, 129
regra
contrac~ao , 178
de corte, 178
de emfraquecimento, 178
de incluss~ao, 178
interc^amcio, 178
regra de derivac~ao , 2
regra de expans~ao tipo C, 193
regra de expans~ao tipo D, 193
regra de infer^encia
substituic~ao por iguais, 209
regras, 154
estruturais, 178
logicas, 178
recursivas, 157
regras de expans~ao, 186
tipo A, 186
259
tipo B, 186
regras de infer^encia, 42
relaca~o de equival^encia, 14
representac~ao do conhecimento, 140
resolvente, 128
basico, 60, 128
satisfatvel, 91, 92
sem^antica, 5
denotacional, 5
operacional, 5
separaca~o padr~ao, 128
sequente, 177
sistema de equac~oes , 13
skolemizaca~o, 117
subformula, 27
substituica~o , 124
tabelas verdade, 29
tableau, 187
fechado, 187
tautologia, 31
teorema, 42
de L+owenheim-Sholem ascendente, 215
da compacidade, 34, 92
da completude, 71
da deduca~o, 34
da deduca~o , 45, 92, 104
de Herbrand, 123
seguro, 66
Teoria
1a$ Ordem
com Igualdade, 208
teoria, 206
1a ordem, 82
da aritmetica de Peano, 211
absolutamente consistente, 214
categorica, 216
completa, 214
da aritmetica de Peano, 212
das ordens parciais, 211
de 1a ordem, 208
factual, 217
formal
260
de 1a ordem, 208
maximalmente simplesmente consistente, 214
simplesmente consistente, 214
teoria formal, 42
calculo de predicados, 99
da logica proposicional, 43
termo livre para x, 87
termos, 24, 144
basicos, 145
constantes, 145
umg, 124
unicador, 125
unicador mais geral, 126
universalmente valida, 92
valores verdade, 29
variaveis
an^onimas, 153
variavel ligada, 86
variavel livre, 84, 86
verdadeira numa interpretac~ao , 92
INDICE