Você está na página 1de 153

Logica Computacional

Nelma Moreira
Departamento de Ciencia de Computadores
Faculdade de Ciencias, Universidade do Porto
email: nam@ncc.up.pt
2004-2005
Agradecimentos Estas notas baseam-se parcialmente nos Apontamentos de L ogica Com-
putacional de Sabine Broda [Bro00].
Conte udo
1 Logica proposicional 5
1.1 Linguagens da logica proposicional . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Sem antica da logica proposicional . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.1 Satisfazibilidade, validade e consequencia . . . . . . . . . . . . . . . . 9
1.2.2 Fun coes de verdade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.3 Uso de conjuntos completos de conectivas . . . . . . . . . . . . . . . . 12
1.3 Formas normais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.1 Forma normal negativa . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.2 Forma normal disjuntiva . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.3 Forma normal conjuntiva . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.4 Formulas de Horn e Satisfazibilidade . . . . . . . . . . . . . . . . . . . 16
1.3.5 Satisfazibilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4 Sistemas dedutivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.4.1 Metodos de dedu cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.4.2 Sistemas de dedu cao axiomaticos . . . . . . . . . . . . . . . . . . . . . 23
1.4.3 Sistema de dedu cao natural, DN . . . . . . . . . . . . . . . . . . . . . 24
1.5 Integridade e completude de um sistema dedutivo . . . . . . . . . . . . . . . . 38
1.5.1 Integridade do sistema de dedu cao natural DN . . . . . . . . . . . . . 38
1.5.2 Completude do sistema de dedu cao natural DN . . . . . . . . . . . . 42
1.6 Decidibilidade da logica proposicional . . . . . . . . . . . . . . . . . . . . . . 45
1.7 Outros sistemas dedutivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
1.7.1 Sistemas dedutivos de Hilbert, H . . . . . . . . . . . . . . . . . . . . . 45
1.7.2 Sistemas dedutivos analticos . . . . . . . . . . . . . . . . . . . . . . . 46
1.7.3 Tableaux sem anticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
1.7.4 Resolu cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Departamento de Ciencia de Computadores F.C.U.P.
CONTE

UDO 3
2 Logica de primeira ordem 51
2.1 Linguagens da logica de primeira ordem . . . . . . . . . . . . . . . . . . . . . 52
2.2 Sem antica da logica de 1
a

ordem . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.2.1 Satisfazibilidade, validade e consequencia . . . . . . . . . . . . . . . . 60
2.2.2 Equivalencia sem antica . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.2.3 Substitui cao de vari aveis . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.2.4 Forma normal prenexa . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.3 Sistema de dedu cao natural para a logica de 1
a

ordem . . . . . . . . . . . . . 72
2.3.1 Regras de inferencia DN:igualdade . . . . . . . . . . . . . . . . . . . . 73
2.3.2 Regras de inferencia DN:quanticador universal . . . . . . . . . . . . 73
2.3.3 Regras de inferencia DN:quanticador existencial . . . . . . . . . . . 74
2.4 Equivalencia dedutiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
2.5 Integridade e completude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
2.5.1 Integridade do sistema dedutivo DN . . . . . . . . . . . . . . . . . . . 84
2.5.2 Conjuntos consistentes e inconsistentes . . . . . . . . . . . . . . . . . . 86
2.5.3 Completude do sistema dedutivo DN . . . . . . . . . . . . . . . . . . 87
2.5.4 Consequencias da completude e integridade . . . . . . . . . . . . . . . 91
2.6 Axiomatiza coes e teorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.6.1 Teoria ingenua dos conjuntos . . . . . . . . . . . . . . . . . . . . . . . 97
2.6.2 Teoria de conjuntos de Zermelo-Frankel . . . . . . . . . . . . . . . . . 98
2.6.3 Axiomas para a teoria dos n umeros (aritmetica) . . . . . . . . . . . . 99
2.6.4 Teorias da logica de 1
a

ordem . . . . . . . . . . . . . . . . . . . . . . 101
2.7 Outros sistemas dedutivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
2.7.1 Sistemas dedutivos de Hilbert, H . . . . . . . . . . . . . . . . . . . . . 101
2.7.2 Tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3 Indecidibilidade e Incompletude 105
3.1 Programa de David Hilbert . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.2 Indecidibilidade da L ogica de 1
a

ordem . . . . . . . . . . . . . . . . . . . . . 106
3.2.1 Revis oes de Decidibilidade e Maquinas de Turing . . . . . . . . . . . . 106
3.2.2 Linguagem L

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.3 Subconjuntos decidveis de L

. . . . . . . . . . . . . . . . . . . . . . . . . . 116
3.4 Incompletude dos axiomas de Peano (PA) . . . . . . . . . . . . . . . . . . . . 117
4 Programa cao em Logica 122
4.1 Cl ausulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
4.1.1 Convers ao em forma clausal . . . . . . . . . . . . . . . . . . . . . . . . 123
Departamento de Ciencia de Computadores F.C.U.P.
CONTE

UDO 4
4.1.2 Satisfazibilidade de Cl ausulas . . . . . . . . . . . . . . . . . . . . . . . 127
4.2 Unica cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
4.2.1 Algoritmo da Unica cao (de Robinson) . . . . . . . . . . . . . . . . . 134
4.3 O operador T
P
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
4.4 Resposta correcta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
4.5 Resolu cao-SLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
4.5.1 Integridade da resolu cao SLD . . . . . . . . . . . . . . . . . . . . . . . 142
4.5.2 Completude da resolu cao-SLD . . . . . . . . . . . . . . . . . . . . . . 144
A Sistema de dedu cao natural para a logica proposicional 146
Bibliograa 148
Departamento de Ciencia de Computadores F.C.U.P.
Captulo 1
Logica proposicional
A logica proposicional remonta a Aristoteles, e teve como objectivo modelizar o raciocnio
humano. Partindo de frases declarativas (proposi c oes), que podem ser verdadeiras (V) ou
falsas (F) estuda-se o processo de constru cao e a veracidade de outras proposi coes usando
conectivas como ou ( ), e ( ), n ao (), se. . . ent ao. . . (). Se p e q s ao proposi coes, p q
e uma proposi cao verdadeira se p e q o forem, e e uma proposi cao falsa, caso contr ario; p q
e uma proposi cao verdadeira se p ou q o forem, e falsa, caso contr ario;p e uma proposi cao
verdadeira se p for falsa, e falsa se p for verdadeira.
Considera as seguintes frases declarativas (com o respectivo valor de verdade):
Os gorilas s ao mamferos V
O Porto e uma cidade V
2 + 3 = 6 F
3 N V
3 > 7 F
Um quadrado tem 6 lados F
Entao, podemos concluir que:
Os gorilas s ao mamferos e O Porto e uma cidade V
porque e uma conjun cao de proposi coes V
2 + 3 = 6 ou 3 N V
porque e uma disjun cao de proposi coes das quais uma e V
n ao 3 > 7 V
porque e uma nega cao de uma proposi cao F
Departamento de Ciencia de Computadores F.C.U.P.
1.1. LINGUAGENS DA L

OGICA PROPOSICIONAL 6
Se 7 > 3 entao 3 + 3 = 6 V
porque uma implica cao e V sse o consequente e V sempre que o antecedente e V
Se 3 > 7 entao 2 + 3 = 6 V
porque e uma implica cao cujo antecedente e F.
Cada proposi cao vai ser representada por uma vari avel proposicional (p, q, s, t, p
1
, . . . ) e as
conectivas logicas por smbolos n- arios. Em particular temos:
Conectiva Smbolos Aridade Outros smbolos equivalentes
Conjun cao 2 &, &&,
Disjun cao 2 |, +
Nega cao 1 , , !
Implica cao 2 ,
1.1 Linguagens da logica proposicional
Uma linguagem da l ogica proposicional e formada a partir dos seguintes conjuntos de smbolos
primitivos:
um conjunto numeravel de vari aveis proposicionais
V
Prop
= {p, q, r, . . . , p
1
, . . .}
conectivas logicas , , e
os parentesis ( e )
Deni cao 1.1. Uma f ormula bem-formada (,,,. . . ) e denida indutivamente pelas se-
guintes regras:
i) uma vari avel proposicional p e uma f ormula
ii) se e uma f ormula ent ao () e uma f ormula
iii) se e s ao f ormulas ent ao ( ), ( ) e ( ) s ao f ormulas
Exemplos de formulas s ao:
((p (p)) (p (q r)))
(((p) q) (p (q (r))))
Departamento de Ciencia de Computadores F.C.U.P.
1.1. LINGUAGENS DA L

OGICA PROPOSICIONAL 7
O conjunto das formulas da logica proposicional pode tambem ser descrito pqela seguinte
gram atica independente de contexto, em nota cao BNF:
:= p | () | ( ) | ( ) | ( )
uma gram atica independente de contexto que gere a linguagem das formulas da logica pro-
porcional, onde p V
Prop
. Usando a gram atica podemos associar a cada formula uma arvore
sintactica.
Exemplo 1.1. Omitindo os parentesis, temos a seguinte arvore pra a f ormula ((p (p))
(p (q r))):

r q
p

p
p
Para legibilidade das formulas, os parentesis podem-se omitir, considerando as seguintes re-
gras:
os parentesis exteriores s ao omitidos
tem precedencia sobre
tem precedencia sobre
tem precedencia sobre
e s ao associativas `a esquerda
e associativa `a direita
Por exemplo, e uma abreviatura de (( ) ) e corresponde a
(( ) )
Deni cao 1.2. Uma sub-f ormula imediata e denida indutivamente pelas seguintes regras:
1. uma vari avel proposicional n ao tem sub-f ormulas imediatas;
2. () tem como sub-f ormula imediata;
Departamento de Ciencia de Computadores F.C.U.P.
1.2. SEM

ANTICA DA L

OGICA PROPOSICIONAL 8
3. as f ormulas ( ), ( ) e ( ) tem e como sub-f ormulas imediatas.
Deni cao 1.3. Uma f ormula e uma sub-f ormula duma f ormula se e s o se:
1. e uma sub-f ormula imediata de
2. existe uma f ormula tal que e uma sub-f ormula de e e uma sub-f ormula de
Dada uma arvore sintactica duma formula, cada n o dene uma sua sub formula.
Exemplo 1.2. Para o exemplo 1.1 as sub-f ormulas s ao:p, q, p, r, p p, q r, p (q
r)e(p (q r)).
Exerccio 1.1. Constr oi a arvore sint actica (omitindo parentisis) e determina quais as sub-
f ormulas e quais as sub-f ormulas imediatas de:
((p q) (p (q r)))

1.2 Semantica da logica proposicional


Os valores de verdade s ao Ve F, onde V representa o valor logico verdadeiro e F, falso.
Deni cao 1.4. Uma atribui cao de valores de verdade (ou valoriza c ao) e uma func ao v :
V
Prop
{V, F} que atribu um valor de verdade a cada vari avel proposicional. Uma valo-
rizac ao v pode ser estendida ao conjunto das f ormulas:
i. para p V
Prop
v(p) j a est a denido
ii.
v() = V se v() = F
v() = F se v() = V
iii.
v( ) = V se v() = V e v() = V
v( ) = F caso contr ario
iv.
v( ) = V se v() = V ou v() = V
v( ) = F caso contr ario
Departamento de Ciencia de Computadores F.C.U.P.
1.2. SEM

ANTICA DA L

OGICA PROPOSICIONAL 9
v.
v( ) = F se v() = V e v() = F
v( ) = V caso contr ario
Podemos resumir usando as seguintes tabelas de verdade:

F V
V F

F F F
F V F
V F F
V V V

F F F
F V V
V F V
V V V

F F V
F V V
V F F
V V V
Dada uma formula , o valor de v() pode assim ser recursivamente calculdado a partir dos
valores atribudos `as vari aveis da formula .
Por exemplo se v(p) = V, v(q) = F e v(r) = V, podemos calcular o valor de v((p q) r):
p q r ( p q ) r
V F V F F F
Uma formula com n vari aveis proposicionais tem 2
n
valoriza coes. Porque?
Podemos construir uma tabela em que cada linha corresponde a uma delas. Seja a formula
(p q) r, temos as seguintes valoriza coes:
p q r ( p q ) r
V V V V V F
V V F V V V
V F V F F F
V F F F V V
F V V F F F
F V F F V V
F F V F F F
F F F F V V
1.2.1 Satisfazibilidade, validade e consequencia
Deni cao 1.5. Uma f ormula e
satisfazvel se existe uma valoriza c ao v tal que v() = V. Escreve-se |=
v
e diz-se que v
satisfaz
uma tautologia se para todas as valoriza c oes v, v() = V e escreve-se |= . Tambem se
diz que e valida. Ex: |= p p (Terceiro excludo)
Departamento de Ciencia de Computadores F.C.U.P.
1.2. SEM

ANTICA DA L

OGICA PROPOSICIONAL 10
uma contradi cao se para todas as valoriza c oes v, v() = F. Escreve-se |= . Ex: |=
p p.
Proposi cao 1.1. Uma f ormula e uma tautologia se e s o se e uma contradic ao. Uma
f ormula e satisfazvel se e s o se n ao e uma tautologia. Uma f ormula e n ao-satisfazvel
se e s o se e uma contradi c ao.
Demonstra c ao. Seja v uma atribui c ao de valores de verdade. Por deni cao, v() = V se e s o
se v() = F. Se e verdade para todas as valoriza coes entao e falsa para todas elas. Do
mesmo modo se concluem a segunda e terceira arma cao.
Deni cao 1.6. Seja um conjunto de f ormulas. Uma valoriza c ao v satisfaz se e s o se v
satisfaz toda a f ormula . O conjunto e satisfazvel se existe uma valoriza c ao que o
satisfaz. Uma f ormula e uma consequencia sem antica de , se para toda a valoriza c ao v
que satisfaz , se tem v() = V; e escreve-se |= .
Se = , entao |= e equivalente a |= . Nota que |= se e s o se e uma tautologia. Se
= {} e |= entao diz-s que e consequencia sem antica de (e escreve-se |= ).
Todos estes conceitos podem ser avaliados usando tabelas de verdade. Uma formula e
satisfazvel, se houver uma linha da tabela para a qual o seu valor e V; uma tautologia se
para todas as linhas o seu valor e V; uma contradic ao se para nenhuma linha o seu valor e
V. A formula e consequencia sem antica de um conjunto nito de formulas {
1
, . . . ,
n
} se
para todas as linhas que todos os
i
s ao V, entao tambem e V.
Se |= e |= entao e s ao sem anticamente equivalentes(i.e as suas tabelas de verdade
s ao iguais), e escreve-se .
Alguns exemplos de formulas sem anticamente equivalentes:
(comutatividade)
(comutatividade)
( ) ( ) (Lei de de DeMorgan)
( ) ( ) (Lei de DeMorgan)
( ) ( ) (associatividade)
( ) ( ) (associatividade)
( ) (idempotencia)
( ) (idempotencia)
( ) ( ) ( ) (distributividade)
( ) ( ) ( ) (distributividade)
(Dupla nega cao)

Departamento de Ciencia de Computadores F.C.U.P.
1.2. SEM

ANTICA DA L

OGICA PROPOSICIONAL 11
Exerccio 1.2. Verica as equivalencias anteriores.
1.2.2 Funcoes de verdade
A tabela de verdade duma formula , com n > 0 vari aveis proposicionais p
1
, . . . p
n
, dene
uma fun cao de verdade
F

: {V, F}
n
{V, F}
tal que F

(x
1
, . . . , x
n
) = v
X
(), onde v
X
e uma valoriza cao tal que v
X
(p
i
) = x
i
para i
{1 . . . n} e x
i
{V, F}.
Qualquer fun cao de f : {V, F}
n
{V, F}, com n > 0 diz-se uma func ao de verdade ou
fun cao booleana.
Exerccio 1.3. Existem 4 func oes de verdade e aridade 1 e 16 func oes de verdade de aridade
2. Constr oi as tabelas de verdade correspondentes. E quantas func oes existem de aridade n,
para n > 0?
Deni cao 1.7. Um conjunto de conectivas C diz-se completo se para qualquer func ao de
verdade f, existe uma f ormula com n vari aveis proposicionais e contendo apenas conectivas
de C, tal que F

= f.
Proposi cao 1.2. O conjunto de conectivas { , , } e completo.
Demonstra c ao. Mostramos por indu cao sobre n.
Base. Para n = 1 existem 4 fun coes de verdade:
x
1
f
1
V F
F F
x
1
f
2
V F
F V
x
1
f
3
V V
F F
x
1
f
4
V V
F V
Sendo
1
= p p,
2
= p,
3
= p,
4
= p p, tem-se que F

i
= f
i
para 1 i 4.
Indu c ao. Supondo que a hip otese e valida para n, seja f : {V, F}
n+1
{V, F}. Cons-
trumos duas fun coes n-arias f
1
e f
2
tal que:
f
1
(x
1
, . . . , x
n
) = f(x
1
, . . . , x
n
, V)
f
2
(x
1
, . . . , x
n
) = f(x
1
, . . . , x
n
, F).
Por hip otese de indu cao existem
i
, com vari aveis p
1
, . . . , p
n
, tal que F

i
= f
i
para
i = 1, 2. Tome-se = (p
n+1

1
) (p
n+1

2
), entao F

= f.
Proposi cao 1.3. O conjunto de conectivas {, } e completo.
Departamento de Ciencia de Computadores F.C.U.P.
1.2. SEM

ANTICA DA L

OGICA PROPOSICIONAL 12
Demonstra c ao. Basta ver que ( ) e ( ).
Exerccio 1.4. Mostra que o conjunto de conectivas {, } e completo.
1.2.3 Uso de conjuntos completos de conectivas
Podemos restringuir-nos s o a conjuntos completos de conectivas. Em particular, podiamos
ter considerado na deni cao da linguagem da logica proposicional, apenas ou:
as conectivas , e
as conectivas e
. . .
E considerar as restantes abreviaturas.
Uma das vantagens de ter um n umero menor de tipos de formulas e o de facilitar as demons-
tra coes... Mas tambem podemos denir outras conectivas. Por exemplo uma para cada uma
das fun coes de verdade un arias ou bin arias... As mais usuais s ao:
Designa cao Conectiva Formula semanticamente equivalente
Falso F
Verdade V
Implica cao
Equivalencia ( ) ( )
Ou Exclusivo

( ) ( )
Nao-e

( )
Nao-ou

( )
Exerccio 1.5. Constr oi as tabelas de verdade associadas a cada uma das conectivas.
Exerccio 1.6. Mostra que
a) ( ) ( )
b) (contrapositivo)
c) |= se e s o se |=
d) |= se e s o se

Departamento de Ciencia de Computadores F.C.U.P.


1.3. FORMAS NORMAIS 13
Leituras suplementares [BE00] (Cap. 1, 3, 7) [HR00] (Cap. 1.3, 1.4.1)
1.3 Formas normais
Vamos ver que podemos transformar formulas em formulas sem anticamente equivalentes, de
modo a obter formulas de formas especiais e que nos permitam decidir mais facilmente sobre
a satisfabilidade ou validade das formulas originais. Algumas dessas formas normais existem
para qualquer formula, outras apenas para certas classes de formulas.
1.3.1 Forma normal negativa
Um literal e uma vari avel proposicional (p) ou a sua nega cao (p). Uma formula diz-se em
forma normal negativa se a ocorrencia de for s o em literais.
Proposi cao 1.4. Qualquer f ormula contendo apenas as conectivas , e e semantica-
mente equivalente a uma f ormula em forma normal negativa.
Demonstra c ao. Basta usar as Leis de DeMorgan e eliminar as duplas nega coes.
Exemplo 1.3. Determinar a forma normal negativa de ((p q) p).
((p q) p)
(p q) p (DeMorgan)
(p q) p (DeMorgan)
(p q) p (Dupla Negac ao)
Exerccio 1.7. Determina a forma normal negativa de
(p q) r) (p (q r))

1.3.2 Forma normal disjuntiva


Uma formula diz-se em forma normal disjuntiva se for da forma:
(
11
. . .
1k
1
) . . . (
n1
. . .
nkn
)
onde cada
ij
e um literal.
Lema 1.1. Para qualquer func ao de verdade f : {V, F}
n
{V, F}, existe uma f ormula
com n vari aveis proposicionais e em forma normal disjuntiva, tal que F

= f.
Departamento de Ciencia de Computadores F.C.U.P.
1.3. FORMAS NORMAIS 14
Demonstra c ao. Se f = F, para todos os valores dos argumentos, entao = p
1
p
1
. Sen ao,
para cada valoriza cao v (correspondente a uma linha da tabela de verdade de f) seja:

v
= l
v
1
. . . l
v
n
onde
l
v
i
=
_
p
i
se v(p
i
) = V
p
i
se v(p
i
) = F
Nota que v(
v
) = V. Entao, basta considerar
=

f(v(p
1
),...,v(pn))=V

v
Para a seguinte fun cao de verdade:
x
1
x
2
x
3
f(x
1
, x
2
, x
3
)
V V V V
V V F V
V F V V
V F F F
F V V V
F V F F
F F V F
F F F F
uma formula em forma normal disjuntiva e:
(p
1
p
2
p
3
) (p
1
p
2
p
3
) (p
1
p
2
p
3
) (p
1
p
2
p
3
)
Corolario 1.1. Qualquer f ormula e semanticamente equivalente a uma f ormula em forma
normal disjuntiva.
Exerccio 1.8. Demonstra o Corol ario 1.1.
Resolu cao 1.3.1. Dada uma f ormula, e possvel transform a-la numa semanticamente equi-
valente em forma normal disjuntiva, considerando os seguintes passos:
1. obter uma f ormula apenas com as conectivas , e
2. obter uma f ormula em forma normal negativa
Departamento de Ciencia de Computadores F.C.U.P.
1.3. FORMAS NORMAIS 15
3. aplicar a distributividade: ( ) ( ) ( )
( ) ( ) ( )
Exerccio 1.9. Determina uma forma normal disjuntiva para
(p r) (q p)

Resolu cao 1.3.2 (1.9).


(p r) (q p) ((p r) (q p)) ((q p) (p r))
((p r) (q p)) ((q p) (p r))
((p r) (q p)) ((q p) p r)
(((p r) (q p)) (q p)) (((p r)
(q p)) (p r))
(p r (q p)) (q p (q p))
(p r (p r)) (q p (p r))
(p r q) (p r p) (q p q) (q p p)
(p r p) (p r r) (q p p) (q p r)
(p r q) (q p r)
No ultimo passo eliminamos conjunc oes que n ao eram satisfazveis.
Lema 1.2. Uma conjun c ao de literais l
1
. . . l
n
e satisfazvel se e s o se para todo o
1 i, j n, l
i
n ao e l
j
.
Corolario 1.2. Uma f ormula em forma normal disjuntiva e satisfazvel se e s o se alguma
das suas conjun c oes de literais o for.
Obtemos assim um metodo de determinar se uma formula e satisfazvel. Em particular, se a
formula ja estiver em forma normal disjuntiva o metodo e linear no seu tamanho.
Exerccio 1.10. Explicita este metodo.
1.3.3 Forma normal conjuntiva
Uma formula diz-se em forma normal conjuntiva se for da forma:
(
11
. . .
1k
1
) . . . (
n1
. . .
nkn
)
onde cada
ij
e um literal.
Por dualidade, temos
Departamento de Ciencia de Computadores F.C.U.P.
1.3. FORMAS NORMAIS 16
Lema 1.3. Uma disjunc ao de literais l
1
. . . l
n
e uma tautologia se e s o se para algum
1 i, j n, l
i
e l
j
.
Entao, e facil determinar se uma formula em forma normal conjuntiva e uma tautologia: basta
vericar se todas as disjun coes s ao tautologias, pelo metodo dado no Lema 1.3.
Mas como obter uma formula em forma normal conjuntiva?
1. se tivermos a tabela de verdade, por um metodo dual ao da forma normal disjuntiva:
isto e, escolher as linhas que correspondem a F, considerar para cada uma disjun cao de
literais tal que se x
i
= V coloca-se p
i
e se x
i
= F coloca-se p
i
; e nalmente tomar a
conjun cao dessas disjun coes (Verica a corre cao!).
2. se tivermos uma formula, adaptar o metodo dado para a forma normal disjuntiva, usando
a distributividade para a conjun cao...
Exerccio 1.11. Obtem uma f ormula em forma normal conjuntiva correspondente ` a tabela
de verdade dada anteriormente.
Resolu cao 1.3.3. Uma f ormula e:
(p
1
p
2
p
3
) (p
1
p
2
p
3
) (p
1
p
2
p
3
) (p
1
p
2
p
3
)
Exerccio 1.12. Determina uma forma normal conjuntiva equivalente ` a f ormula
(p r) (q p)

1.3.4 Formulas de Horn e Satisfazibilidade


Uma f ormula de Horn da logica proposicional e uma formula em forma normal conjuntiva em
que em cada disjun cao existe no m aximo um literal positivo. Exemplos de formulas de Horn
s ao:
p q (q p)
(p q s p) (q r p) (p s s)
(p q s) (q r p) s
Numa formula de Horn, as disjun coes p
1
. . . p
n
p tambem se podem escrever como
(p
1
. . . p
n
) p
ou se p n ao existe (ou e F):
(p
1
. . . p
n
) F
Departamento de Ciencia de Computadores F.C.U.P.
1.3. FORMAS NORMAIS 17
ou se os p
i
n ao existem)
F p
Nota que nem todas as formulas tem uma formula de Horn equivalente...basta que as suas
formas normais conjuntivas tenham mais que um literal positivo que n ao possa ser simpli-
cado...
Para determinar se uma formula de Horn da logica proposicional e satisfazvel podemos
usar um algoritmo (mais eciente que a constru cao da tabela de verdade correspondente e a
verica cao se para alguma linha a formula tem o valor V).
Vamos ilustrar o algoritmo com a formula p q (q p):
come car por colocar numa linha as vari aveis proposicionais que ocorrem na formula e
colocar a formula. Ex:
p q p q (q p)
se alguma das vari aveis proposicionais e um dos elementos da conjun cao atribuir o valor
V a essa vari avel (porque?). Ex:
p q p q (q p)
V
Com a informa cao dessas vari aveis preencher a tabela como se tivesse a construir a
tabela de verdade (para essa linha), analisando cada disjun cao para determinar se, para
ela ser verdadeira, se pode determinar mais valores para as vari aveis proposicionais:
p q p q (q p)
V F
Neste caso, q tem de ser V e entao isso pode ser acrescentado:
p q p q (q p)
V V F
E voltando a repetir este passo, obtem-se:
p q p q (q p)
V V F F
Continuar ate mais nada poder ser acrescentado.
Departamento de Ciencia de Computadores F.C.U.P.
1.3. FORMAS NORMAIS 18
se no passo anterior se atribuir F a um dos elementos da conjun cao, a formula tambem
ca com o valor F e n ao e satisfazvel. Caso contr ario podemos atribuir ` a formula o valor
V se atribuirmos F `as restantes vari aveis proposicionais. Nota que assim no m aximo
um literal por disjun cao e F (e as disjun coes n ao s ao unit arias).
No exemplo que estamos a considerar, a formula tem o valor F e portanto n ao e satis-
fazvel.
Exerccio 1.13. 1. Justica a corre c ao do algoritmo, isto e, que atribui o valor verdade
se e s o se a f ormula de Horn e satisfazvel.
2. Aplica o algoritmo ` as seguintes f ormulas:
(p q) (q r) q
p (p q) (q p)
p (p q) q
p (p q) r

1.3.5 Satisfazibilidade
O problema de determinar se uma formula da logica proposicional e satisfazvel e um pro-
blema com muitas aplica coes em Ciencia de Computadores uma vez que muitos problemas
de combinat oria e optimiza cao se podem reduzir a ele (p.e. resolu cao de puzzles, como o
sudoku, etc). J a vimos que este problema se pode resolver atraves da constru cao de tabelas
de verdade, mas no pior caso isso pode ser exponencial no n umero de vari aveis. Na realidade,
n ao se conhece nenhum algoritmo mais eciente para resolver este problema para qualquer
tipo de formulas. Contudo, existem classes de formulas para as quais o problema e polinomial
(linear): por exemplo se a formula estiver em forma normal disjuntiva ou for uma formula de
Horn. Por outro lado, no caso geral existem diversos algoritmos que na pr atica se comportam
muito melhor que o da constru cao de tabelas de verdade. Estes algoritmos podem ser apli-
cados a formulas genericas (com qualquer tipo de conectiva) mas s ao especialmente simples
se as formulas estiverem em forma normal conjuntiva (FNC). Este tipo de formulas pode ser
representado de forma compacta usando a no cao de cl ausula.
1.3.5.1 Clausulas
Deni cao 1.8. Uma clausula e uma disjunc ao de literais l
1
l
2
. . . l
n
, n 0. Uma
cl ausula pode-se representar por um conjunto de literais. Se n = 0 dizemos que a cl ausula e
vazia e corresponde a F. Se n = 1 dizemos que a cl ausula e unit aria.
Departamento de Ciencia de Computadores F.C.U.P.
1.3. FORMAS NORMAIS 19
Por exemplo p q p s e uma clausula e pode representar-se por um conjunto
{p, q, p, s}.
Qualquer formula da logica proposicional em FNC pode-se representar por um conjunto de
clausulas. Por exemplo,
p (q r q) (r s) (p s) (q s)
pode ser vista como um conjunto de clausulas:
{{p}, {q, r}, {r, s}, {p, s}, {q, s}}
E como qualquer formula e equivalente a uma em FNC, se tivermos um metodo para de-
terminar a satisfazibilidade de clausulas, temos um metodo que se pode aplicar a qualquer
formula.
Deni cao 1.9. Dado um literal l designamos por literal complementar o literal

l denido
por:

l =
_
l, se l e uma vari avel (positivo)
p, se l e da forma p (negativo)
Como vimos no Lema 1.3, uma cl ausula e uma tautologia se contem um par de literais
complementares p e p. Estas clausulas podem ser retiradas do conjunto sem alterar a
satisfazibilidade.
1.3.5.2 O algoritmo de Davis-Putnam
O algoritmo que vamos apresentar e uma variante do original de 1960 [DP60, DLL62] e
que continua a ser a base de muitos dos algoritmos que actualmente s ao mais competitivos
(estando as diferen cas nas estruturas de dados e nas diversas heursticas que usam).
A ideia base do algoritmo e considerar para cada vari avel os possveis valores de verdade e
simplicar a formula de acordo com essas atribui coes ate se poder concluir que ela e ou n ao
satisfazvel. As simplica coes incluem um caso especial para as clausulas unit arias. Por uma
questao de legibilidade vamos continuar a representa cao de cada clausula usando disjun coes
(em vez de um conjunto de literais).
Deni cao 1.10. Seja S um conjunto de cl ausulas. Um conjunto S

e obtido de S por pro-


paga cao unit aria se S

se obtem de S por repetic ao da seguinte transforma c ao: se S contem


uma cl ausula unit aria (i.e. com um unico literal l), ent ao:
1. remover de S todas as cl ausulas da forma l C

2. substituir em S cada cl ausula da forma



l C

pela cl ausula C

.
Departamento de Ciencia de Computadores F.C.U.P.
1.3. FORMAS NORMAIS 20
Exemplo 1.4. Considera o seguinte conjunto de cl ausulas:
{p
1
, p
1
p
2
, p
3
p
2
, p
7
p
2
,p
3
p
4
, p
3
p
5
, p
4
p q,
p
5
p
6
r, p q p
6
, p p
7
, r p
7
}
(1.1)
Aplicando a propagac ao a p
1
resulta em:
{p
2
, p
3
p
2
, p
7
p
2
,p
3
p
4
, p
3
p
5
, p
4
p q,
p
5
p
6
r, p q p
6
, p p
7
, r p
7
}
(1.2)
Aplicando a propagac ao a p
2
resulta em:
{p
3
, p
7
, p
3
p
4
, p
3
p
5
,p
4
p q,
p
5
p
6
r, p q p
6
, p p
7
, r p
7
}
(1.3)
Depois de aplicar a propagac ao a p
3
e p
7
, temos:
{p
4
, p
5
, p
4
p q, p
5
p
6
r, p q p
6
, p, r} (1.4)
Propagando para p
4
, p
5
,r e p vem:
{q, p
6
, q p
6
} (1.5)
E nalmente propagando para q e p
6
:
{F} (1.6)
o que determina que o conjunto inicial de cl ausulas e n ao satisfazvel (e neste caso usando s o
propagac ao unit aria).
O algoritmo b asico de Davis-Putnam e o seguinte:

1 DLL(S) {
2 input: conjunto de clausulas S
3 output: satisfazivel ou nao satisfazivel
4 S := propaga(S)
5 if S vazio then return satisfazivel
6 if S contem F then return nao satisfazivel
7 l := selecciona_literal(S)
8 if DLL(S {l}) = satisfazivel
9 then return satisfazivel
10 else return DLL(S {

l})
11 }

Departamento de Ciencia de Computadores F.C.U.P.
1.3. FORMAS NORMAIS 21
A fun cao propaga implementa a propaga cao unit aria. A fun cao seleciona_literal retorna
um literal da clausula. Esta fun cao poder a ser considerada um par ametro do algoritmo, pois
uma escolha adequada do literal pode tornar o algoritmo mais eciente. Possveis criterios
s ao: escolher uma vari avel que ocorre mais vezes; que o produto das ocorrencias de l e

l e
m aximo; que ocorre mais vezes em clausulas de tamanho minimal, etc.
Para vericar a satisfazibilidade de um conjunto de formulas ser a necessario primeiro converte-
lo para um conjunto de clausulas.
Exemplo 1.5. Vamos aplicar o algoritmo DLL ao seguinte conjunto de cl ausulas:
S = {p q, p q, p q, p q} (1.7)
Como n ao tem cl ausulas unit arias n ao podemos aplicar a propagac ao. Temos que seleccionar
um literal, por exemplo, p. Consideremos, primeiro, o conjunto S aumentado com p.
Podemos nesta caso aplicar a propagac ao () sucessivamente:
{p q, p q, p q, p q, p}
{q, q} {F}
(1.8)
Como S {p} e n ao satisfazvel, pelo algoritmo temos que considerar ainda S {p}. Neste
caso a propagac ao e:
{p q, p q, p q, p q, p}
{q, q} {F}
(1.9)
E o algoritmo retorna nao satisfazivel.
Pode-se demonstrar que:
Proposi cao 1.5. O algoritmo DLL e correcto e completo para a satisfazibilidade de um con-
junto de cl ausulas S, i.e. o algoritmo retorna satisfazivel se S e satisfazvel e retorna
nao satisfazivel se S e n ao satisfazvel.
Podemos considerar ainda algumas optimiza coes a este algoritmo. A primeira e a elimina c ao
de tautologias que pode ser feita apenas uma vez quando se converte uma formula (ou conjunto
de formulas) para um conjunto de clausulas (e usando o Lema 1.3), dado que o algoritmo
n ao introduz tautologias. Outra optimiza cao pode ser feita quando uma vari avel p s o aparece
positivamente ou s o negativamente (p) num conjunto de clausulas.
Deni cao 1.11. Um literal l e puro num conjunto de cl ausulas S, se S n ao contem cl ausulas
da forma

l C. A elimina cao de literais puros remove do conjunto de cl ausulas todas as
cl ausulas que contem um literal puro.
Departamento de Ciencia de Computadores F.C.U.P.
1.3. FORMAS NORMAIS 22
Exemplo 1.6. Considera a f ormula ((p q) (p q r) (p r)). Uma FNC
equivalente em forma clausal e:
{p q, p q r, p, r} (1.10)
O literal p e puro neste conjunto, portanto todas as cl ausulas em que ele ocorre podem ser
eliminadas. Fic amos apenas com {r}. Como tambem e puro, podemos eliminar e concluir
que o conjunto e satisfazvel.
Para implementar esta elimina cao, basta termos um contador com o n umero de ocorrencias
de cada literal l. Quando esse contador for 0, o literal

l e puro.
Exerccio 1.14. Aplica o algoritmo DLL ao seguinte conjunto de cl ausulas:
{p q r, p q r, p q rp q r,
p q, p r, p q r}
(1.11)

Exerccio 1.15. O seguinte conjunto de cl ausulas formaliza o princpio de Dirichlet (ou


pigeonhole) para 3 pombos e 2 poleiros: e impossvel colocar 3 pombos em 2 poleiros de
modo que cada poleiro s o comtem um pombo! Considera o seguinte conjunto de vari avies
proposicionais {p
ij
| i = 1..3, j = 1, 2} em que p
ij
denota que pombo i foi colocado no poleiro
j. As cl ausulas seguintes indicam que cada pombo e colocado nalgum poleiro:
p
11
p
12
, p
21
p
22
, p
31
p
32
Agora e necess ario formalizar que cada poleiro tem no m aximo um pombo: para cada par de
pombos i
1
e i
2
e qualquer poleiro j tem-se que ambos n ao podem estar em j, i.e. (p
i
1
j
p
i
2
j
)
ou equivalentemente p
i
1
j
p
i
2
j
. Temos ent ao 6 cl ausulas:
p
11
p
21
, p
11
p
31
, p
21
p
31
,
p
12
p
22
, p
12
p
32
, p
22
p
32
.
Mostra a n ao satisfazibilidade o conjunto de 9 cl ausulas usando o algoritmo DLL.
Leituras suplementares [BE00] (Cap. 3, 4, 7) [HR00] (Cap 1.5) [GLM97] (Cap 2.2, 4.3)
Departamento de Ciencia de Computadores F.C.U.P.
1.4. SISTEMAS DEDUTIVOS 23
1.4 Sistemas dedutivos
Considera os raciocnios seguintes:
1 Todos os homens s ao mortais
2 S ocrates e um homem
3 S ocrates e mortal
e
1 Todos os actores ricos s ao bons actores
2 Brad Pitt e um actor rico
3 Brad Pitt e bom actor
Informalmente, um raciocnio e uma sequencia de arma coes das quais uma a conclusao
deve ser consequencia das restantes as premissas. A conclusao e uma consequencia logica
das premissas, se for verdadeira sempre que as premissas forem verdadeiras. Neste caso temos
uma raciocnio v alido. Num raciocnio valido se as premissas forem verdadeiras, o raciocnio
e integro. Nos exemplos anteriores, o primeiro raciocnio e ntegro, mas o segundo n ao: a
primeira premissa e falsa!
1.4.1 Metodos de deducao
Como podemos mostrar que uma conclusao e uma consequencia l ogica das premissas?
Construindo uma sucess ao de passos em que em cada um a conclusao e inequivocamente
consequencia das conclusoes e premissas anteriores. Formalmente iremos considerar sistemas
de deduc ao.
Por outro lado, para mostrar que uma conclusao n ao e consequencia l ogica das premissas,
temos que mostrar que existe uma situa cao em que as premissas podem ser verdadeiras e a
conclusao falsa. Essa situa cao e designada de contra-exemplo.
1.4.2 Sistemas de deducao axiomaticos
Um sistema de dedu cao axiomatico D e um metodo sintactico, constitudo por:
axiomas (logicos): formulas base, que caracterizam as propriedades das conectivas
regras de inferencia: modos de obter formulas a partir de outras
Deni cao 1.12. Uma sucess ao nita de f ormulas
1
, . . .
n
e uma dedu cao de
n
em D a
partir de um conjunto de f ormulas se para cada 1 i n se verica:
Departamento de Ciencia de Computadores F.C.U.P.
1.4. SISTEMAS DEDUTIVOS 24

i


i
e um axioma

i
resulta de
1
. . .
i1
por aplica c ao duma regra de inferencia
Neste caso diz-se tambem que
n
pode ser deduzido a partir de e escreve-se
D

n
.
A f ormula
n
e um teorema (de D) se = e escreve-se
D

n
. Neste caso, a deduc ao

1
, . . .
n
diz-se uma demonstra cao de
n
. Se = {
1
, . . . ,
n
} e nito, em vez de
D

escreve-se

1
, . . . ,
n

D

e D ser a omitido se for explcito no contexto.
1.4.3 Sistema de deducao natural, DN
Sistema inventado por G. Gentzen (1935) (e tambem por S. Jaskowski), e cujas regras pre-
tendem reectir as formas de raciocnio usadas nas demonstra coes matem aticas. Nao tem
axiomas, s o regras de inferencia. Uma das suas originalidades, em rela cao a outros sistemas
axiomaticos, e possibilidade de introduzir hip oteses no meio da dedu cao, mas que ter ao se
ser eliminadas antes da dedu cao perminar. Outra caracterstica e a dualidade das regras.
Para cada conectiva logica existem dois tipos de regras: de introduc ao (da conectiva) e de
elimina c ao (da conectiva).
Consideremos um exemplo. Suponhamos que queremos concluir que
(p (q r)) ((p q) (p r))
e uma tautologia (e valida).
Para tal, supomos que (p (q r)) se verica e tentamos concluir ((p q) (p r)).
Como temos uma disjun cao no antecedente, temos que supor separadamente que p se verica
ou que (q r) se verica (elimina c ao de ). Suponhamos p, entao p q tambem se verica
(pois numa disjun cao basta que um se verique) (introduc ao de ), e tambem temos p r
(introduc ao de ). Mas entao, tambem se verica a sua conjun cao ((p q) (p r))
(introduc ao de ). Agora se (q r) se verica, entao q e r vericam-se (elimina c ao de ).
Entao (p q) e (p r), tambem se verica, assim como a sua conjun cao. Temos a seguinte
arvore de demonstra c ao:
Departamento de Ciencia de Computadores F.C.U.P.
1.4. SISTEMAS DEDUTIVOS 25
p
p q
p r
((p q) (p r))
q r
q
r
p q
p r
((p q) (p r))
Como supondo (p (q r)) se deduz ((p q) (p r)), podemos concluir que
(p (q r)) ((p q) (p r)) (introduc ao de ).
Vamos agora formalizar as regras de inferencia DN.
Uma regra de inferencia e da forma:
de
1
. . .
k
infere-se
n
e pode ser representada gracamente (em arvore) por:

1
, . . . ,
k

n
1.4.3.1 Regras DN para a conjun cao
Introdu cao de


I
Se ja deduzimos e entao podemos deduzir
Elimina cao de

E
1

E
2
Se deduzimos podemos deduzir ; e podemos tambem deduzir .
Exemplo 1.7. Mostrar que p q, r q r.
Resolu cao 1.7.1. Podemos construir a deduc ao numa arvore:
p q
q
E
2
r
q r
I
em que as folhas s ao as premissas. Mas estas arvores podem car muito grandes, portanto va-
mos considerar uma representac ao linear para as deduc oes: numeram-se os passos, separam-
se as premissas e, para cada passo, indica-se qual a regra a aplicar e quais as f ormulas que
Departamento de Ciencia de Computadores F.C.U.P.
1.4. SISTEMAS DEDUTIVOS 26
intervem. Para a deduc ao anterior, temos
1 p q
2 r
3 q E, 1
4 q r I, 3, 2
Esta nota cao para a representa cao de dedu coes naturais denomina-se nota cao de Fitch.
Exemplo 1.8. Mostrar que (p q) r r q
Resolu cao 1.8.1.
1 (p q) r
2 p q E, 1
3 r E, 1
4 q E, 2
5 r q I, 3, 4
1.4.3.2 Regras DN para a disjun cao
Introdu cao de


I
1


I
2
Se ja deduzimos podemos deduzir qualquer disjun cao que contenha .
Elimina cao de

[] []
.
.
.
.
.
.

E
se ja deduzimos a disjun cao
se supusermos deduzirmos (numa sub-dedu cao)
e se supusermos deduzirmos (numa sub-dedu cao)
entao podemos deduzir
Departamento de Ciencia de Computadores F.C.U.P.
1.4. SISTEMAS DEDUTIVOS 27
Nestas regras, express oes [] indicam que estamos iniciar uma sub-dedu cao com premissa ,
que s o deve ser considerada nessa sub-dedu cao. As sub-dedu coes tem de terminar pela ordem
em que foram iniciadas. Neste caso as sub-dedu coes terminam quando for deduzido. Na
nota cao de Fitch, cada sub-dedu cao e iniciada com uma indenta cao.
Exemplo 1.9. Mostrar que (p q) (q r) q.
Resolu cao 1.9.1.
1 (p q) (q r)
2 p q
3 q E, 2
4 q r
5 q E, 4
6 q E, 1, 23, 45
1.4.3.3 Regra DN de Repeti cao
Numa dedu cao podemos sempre repetir uma conclusao ja obtida. A essa regra chamaremos
repeti cao:

R
Exemplo 1.10. Mostrar que (p q) q q
Resolu cao 1.10.1.
1 (p q) q
2 p q
3 q E, 2
4 q
5 q R, 4
6 q E, 1, 23, 45
1.4.3.4 Utiliza cao de sub-dedu c oes
Como ja foi referido, uma dedu cao pode ser composta por sub-dedu coes que introduzem novas
premissas. Mas nem essa premissa, nem as formulas delas deduzidas podem ser usadas depois
da sub-dedu cao em que ocorrem terminar. Considera a seguinte deduc ao:
Departamento de Ciencia de Computadores F.C.U.P.
1.4. SISTEMAS DEDUTIVOS 28
1 (p q) (q r)
2 p q
3 p E, 2
4 q E, 2
5 q r
6 q E, 5
7 q E, 1, 24, 56
8 q p I, 7, 3
Esta dedu cao est a ERRADA! No passo 8 e usado um passo que ocorre numa sub-dedu cao que
ja terminou. Uma sub-dedu cao e iniciada com a introdu cao de novas hip oteses (premissas) e
as dedu coes a feitas dependem delas. Quando termina a sub-dedu cao, essas hip oteses deixam
ser assumidas e portanto n ao se podem utilizar!
1.4.3.5 Regras DN para a Nega cao
Elimina cao de
Corresponde a uma das partes do princpio da dupla nega cao.

E
Introdu cao de
Esta regra corresponde a demonstra coes por contradi cao. Representamos por F uma con-
tradi cao (p.e., ).
[]
.
.
.
F

I
Se supondo podemos deduzir uma contradi cao, entao podemos deduzir das premissas
originais.
1.4.3.6 Regras DN para F
Se n ao considerarmos F como uma abreviatura de , temos de ter uma regra para o
introduzir
1
:
1
caso contrario podemos ignorar...
Departamento de Ciencia de Computadores F.C.U.P.
1.4. SISTEMAS DEDUTIVOS 29
Introdu cao de F

.
.
.

F
FI
Se deduzimos e entao temos uma contradi cao.
Exemplo 1.11. Mostrar que .
Resolu cao 1.11.1.
1
2
3 F FI, 1, 2
4 I, 23
Elimina cao de F
F

FE
Se deduzimos uma contradi cao, entao podemos deduzir qualquer formula.
Deni cao 1.13. Um conjunto de f ormulas diz-se inconsistente se F.
1.4.3.7 Metodos de demonstra cao
Vamos ilustrar algumas aplica coes das regras anteriores, em demonstra coes em matem atica.
Demonstra cao por casos A regra da elimina cao da disjun cao corresponde ao metodo
de demonstra cao por casos. Consideremos o seguinte problema:
Mostrar que existem irracionais b e c tal que b
c
e racional
Demonstra c ao. Demonstra cao por casos: Seja

2
. Este n umero e racional ou irracional.
Se

2
e racional entao basta tomar b = c =

2
Se

2
e irracional, entao seja b =

2
e c =

2. Vem b
c
=

2.

2
=

2
2
= 2,
que e racional.

E de referir que a demonstra cao anterior n ao e construtiva, uma vez que n ao foi determinado
se

2
e ou n ao racional.
Departamento de Ciencia de Computadores F.C.U.P.
1.4. SISTEMAS DEDUTIVOS 30
Demonstra cao por contradi cao A regra da introdu cao da nega cao, e usada nas de-
monstra coes por contradi cao, isto e, supoe-se a nega cao do que se quer provar e chega-se a
um absurdo. Suponhamos o seguinte problema:
Mostrar que

2 n ao e racional.
Demonstra c ao. Suponhamos que

2 e racional. Entao existem p e q tal que

2 = p/q, com
um deles mpar (porque?). Entao
p
2
q
2
= 2. E p
2
= 2q
2
. Entao p
2
e par e p tambem (verica!).
E 4 | p
2
e 4 | 2q
2
. Mas entao q
2
tambem e par! Temos entao uma contradi cao.
Exemplo 1.12. Mostrar usando o sistema DN:
a) p q (p q)
b) (p p)
c) (p q) p
Resolu cao 1.12.1. a) p q (p q)
1 p q
2 p
3 p q
4 p E, 3
5 F FI, 2, 4
6 (p q) I, 35
7 q
8 p q
9 q E, 8
10 F FI, 7, 9
11 (p q) I, 810
12 (p q) E, 1, 211
b) (p p)
1 p p
2 p E, 1
3 p E, 1
4 F FI, 2, 3
5 (p p) I, 14
Departamento de Ciencia de Computadores F.C.U.P.
1.4. SISTEMAS DEDUTIVOS 31
c) (p q) p
1 (p q)
2 p
3 p q I, 2
4 F FI, 1, 3
5 p I, 24
6 p E, 24
Leituras suplementares [BE00] (Cap. 2,5,6)
1.4.3.8 Regras DN para a implica cao
Elimina cao de (modus ponens)
Esta regra e habitualmente conhecida por modus ponens (em latim, modo que arma) e
corresponde a raciocnios condicionais:

E
Se ja deduzimos e , entao podemos deduzir .
Exemplo 1.13. Mostrar que p, p q, p (q r) r.
Resolu cao 1.13.1.
1 p (q r)
2 p q
3 p
4 q r E, 1, 3
5 q E, 2, 3
6 r E, 4, 5
Introdu cao de (regra da dedu c ao)
A regra para introduzir uma implica cao necessita duma sub-dedu cao: supondo tentamos
deduzir . Se tal acontecer, terminamos a sub-dedu cao (retirando a suposi cao) e conclumos
:
[]
.
.
.


I
Departamento de Ciencia de Computadores F.C.U.P.
1.4. SISTEMAS DEDUTIVOS 32
Exemplo 1.14. Mostrar que (p q) r p r.
Resolu cao 1.14.1.
1 (p q) r
2 p
3 p q I, 2
4 r E, 1, 3
5 p r I, 24
1.4.3.9 Dedu c oes sem premissas
Com a introdu cao da implica cao (regra da dedu cao) podemos converter qualquer dedu cao
com premissas numa dedu cao sem premissas:
Exemplo 1.15. Mostrar que .
Resolu cao 1.15.1.
1
2
3 F FI, 1, 2
4 I, 23
5 I, 14
Em geral temos:
Lema 1.4. (da dedu c ao) {} se e s o se .
Demonstra c ao. : Se {} , obtemos , supondo , usando a dedu cao
anterior ate obter e aplicando a regra I.
: Se , para obter {} , usamos apenas dedu cao de supondo .
1.4.3.10 Algumas regras derivadas de DN
A partir das regras base podemos obter regras derivadas que correspondem a teoremas no
sistema DN (eventualmente usando o lema da dedu cao).
Modus Tollens (em latim, modo que nega)

MT
Exemplo 1.16. Mostrar que , .
Departamento de Ciencia de Computadores F.C.U.P.
1.4. SISTEMAS DEDUTIVOS 33
Resolu cao 1.16.1.
1
2
3
4 E, 1, 3
5 F FI, 2, 4
6 I, 35
Introdu c ao da dupla nega c ao

I
Redu c ao ao absurdo
[]
.
.
.
F

RA
Se tivermos uma dedu cao de F supondo podemos ter uma dedu cao de F. Entao
basta mostrar F :
1 F
2
3 F E, 1, 2
4 I, 23
5 E, 4
Terceiro excludo

TE
Departamento de Ciencia de Computadores F.C.U.P.
1.4. SISTEMAS DEDUTIVOS 34
1 ( )
2
3 I, 2
4 F FI, 1, 3
5 I, 24
6 I, 5
7 F FI, 1, 5
8 RA, 17
Exemplo 1.17. Mostrar q p p q.
Resolu cao 1.17.1.
1 q p
2 p
3 p I, 2
4 q MT, 1, 3
5 p q I, 24
1.4.3.11 Equivalencia dedutiva
Dadas dumas formulas e , dizemos que e s ao dedutivamente equivalentes se e s o se
e . E denotamos por .
Exerccio 1.16. Mostra que se e s o se ( ) ( ).
Proposi cao 1.6 (Contraposi cao).

Demonstra c ao. Vamos mostrar s o :
1
2
3 MT, 1, 2
4 I, 23
Departamento de Ciencia de Computadores F.C.U.P.
1.4. SISTEMAS DEDUTIVOS 35
1.4.3.12 Ilustra cao da aplica cao das regras
Demonstra cao duma arma cao condicional Como ja vimos, a regra da introdu cao
da implica cao corresponde `a demonstra cao de uma condicional. Suponhamos que queremos
mostrar que:
Se n
2
e par ent ao n e par
Demonstra c ao. Suponhamos que n
2
e par. Vamos provar que n e par, por contradi cao.
Suponhamos que n e mpar, entao n = 2m+ 1, para algum m. Entao:
n
2
= (2m + 1)
2
= 4m
2
+ 4m + 1 = 2(2m
2
+ 2m) + 1
que e mpar! Entao n e par. E temos demonstrada a implica cao.
Demonstra cao por contraposi cao De igual modo temos as demonstra coes por contra-
posi cao. Suponhamos que queremos mostrar que:
Se n n ao e par ent ao n
2
n ao e par
Demonstra c ao. Suponhamos que n n ao e par, i.e e da forma n = 2m + 1, para algum m.
Entao:
n
2
= (2m + 1)
2
= 4m
2
+ 4m + 1 = 2(2m
2
+ 2m) + 1
o que mostra que n
2
e mpar, e portanto n ao e par. Entao temos demonstrada a implica cao.
Neste caso evita-se a redu cao ao absurdo...
Exemplo 1.18. Mostra que:
a) p (p q)
b) ( )
c) (p q) p q
d)
e) ( )
f ) ( ( )) (( ) ( ))
g) ( ) (( ) )
Departamento de Ciencia de Computadores F.C.U.P.
1.4. SISTEMAS DEDUTIVOS 36
Resolu cao 1.18.1. a) p (p q)
Supondo a regra do terceiro excludo (TE)
1 (p q) (p q) TE
2 p q
3 p E, 2
4 p (p q) I, 3
5 (p q)
6 p (p q) I, 5
7 p (p q) E, 1, 24, 56
b) ( )
1 ( )
2 ( )
3
4 I, 3
5 F FI, 2, 4
6 I, 35
7 E, 6
8
9 I, 3
10 F FI, 2, 9
11 I, 810
12 E, 11
13 I, 7, 12
14 F FI, 1, 13
15 ( ) I, 2, 14
16 E, 15
c) (p q) p q
Usar a regra do terceiro excludo com (p q) (p q) e ver a resolu c ao do exerccio
anterior
Departamento de Ciencia de Computadores F.C.U.P.
1.4. SISTEMAS DEDUTIVOS 37
d)
1
2 ( )
3
4 I, 3
5 F FI, 2, 4
6 I, 35
7 E, 6
8 E, 1, 7
9 I, 8
10 F FI, 2, 9
11 ( ) I, 210
12 E, 11
e) ( )
1
2
3 R, 1
4 I, 23
5 ( ) I, 14
f ) ( ( )) (( ) ( ))
1 ( )
2 ( )
3
4 E, 2, 3
5 E, 1, 3
6 E, 4, 5
7 I, 36
8 ( ) ( ) I, 27
9 ( ) ( ) ( ) I, 18
Departamento de Ciencia de Computadores F.C.U.P.
1.5. INTEGRIDADE E COMPLETUDE DE UM SISTEMA DEDUTIVO 38
g) ( ) (( ) )
1
2
3
4 E, 2, 3
5 E, 1, 2
6 F FI, 4, 5
7 I, 36
8 E, 7
9 ( ) I, 28
10 ( ) ( ) I, 19
Leituras suplementares [BE00] (Cap. 8.1-2)
1.5 Integridade e completude de um sistema dedutivo
Um sistema dedutivo e um conjunto de regras, puramente sintacticas. Para que possa ser
usado para obter a validade ou consequencia logica de formulas e necessario (desejavel) que
seja ntegro e completo. Isto e: que o que se deduza seja consequencia sem antica das
premissas, e se uma formula for consequencia sem antica das premissas entao existe uma
dedu cao para ela.
Deni cao 1.14 (Integridade). Um sistema dedutivo e ntegro, se dado um conjunto de
premissas e uma conclus ao , se existe uma deduc ao de com premissas , i.e
D
, ent ao
a conclus ao e consequencia sem antica de , i.e |= . Em particular, se
D
ent ao e
uma tautologia (|= ) .
Deni cao 1.15 (Completude). Um sistema dedutivo e completo, se dado um conjunto de
premissas e uma conclus ao , se e consequencia sem antica de , i.e |= , ent ao existe
uma deduc ao de com premissas , i.e
D
. Em particular, se e uma tautologia (|= )
ent ao
D
.
1.5.1 Integridade do sistema de deducao natural DN
Proposi cao 1.7. Se ent ao |= .
Departamento de Ciencia de Computadores F.C.U.P.
1.5. INTEGRIDADE E COMPLETUDE DE UM SISTEMA DEDUTIVO 39
Demonstra c ao. Suponhamos que temos uma dedu cao de ,
1
, . . . ,
n
= . Vamos mostrar
que em cada passo a formula que a ocorre e consequencia sem antica das premissas (ou
hip oteses) que a s ao assumidas.
Provamos por redu cao ao absurdo: Suponhamos que existe um passo p que contem uma
formula que n ao e consequencia sem antica das premissas assumidas em p. E seja p o primeiro
desses passos . Vamos ver que qualquer que seja a regra de DN aplicada em p, temos uma
contradi cao. O que permite concluir que n ao existe tal passo p. Fazemos a demonstra cao
por casos, considerando cada uma das regras. Basicamente temos dois tipos de casos: os que
correspondem a regras com sub-dedu coes e os a regras sem sub-dedu coes.
Suponhamos que a regra a aplicar e a elimina cao da implica cao:
E

: Seja a formula deduzida no passo p por aplica cao de E


a e . E sejam
1
, . . . ,
k
as premissas assumidas
em , e, por hip otese, n ao e consequencia sem antica delas.
Mas as premissas para e est ao entre os
1
, . . . ,
k
e
ambos s ao consequencia sem anticas delas:
1
1
.
.
.
.
.
.
n
.
.
.
.
.
.

2
.
.
.
.
.
.
l
.
.
.
.
.
.

3
.
.
.
.
.
.
p
.
.
.
.
.
.
Considera a tabela de verdade para as formulas
1
, . . . ,
k
,, e . Por hip otese, existe
uma valoriza cao v tal que v(
i
) = V, 1 i k e v() = F. Mas tambem tem-se que
v() = v( ) = V. Mas isto contradiz a tabela de verdade para a implica cao. Portanto
conclumos que esta regra n ao pode ser aplicada no passo p (se existir).
Vejamos agora o caso da regra da introdu cao da implica cao:
Departamento de Ciencia de Computadores F.C.U.P.
1.5. INTEGRIDADE E COMPLETUDE DE UM SISTEMA DEDUTIVO 40
I
[]
.
.
.

: Suponhamos que o passo p deduz por aplica cao da


regra I a uma sub-dedu cao com premissa e conclusao
. Sejam
1
, . . . ,
k
as premissas assumidas em . Em
as premissas s ao algumas das
1
, . . . ,
k
e . E e con-
sequencia sem antica dessas premissas.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
Seja a tabela de verdade para
1
, . . . ,
k
, , e . Por hip otese, existe uma valoriza cao
v tal que v(
i
) = V, 1 i k e v( ) = F. Entao temos tambem que v() = V e
v() = F. Mas isto contradiz o facto de ser consequencia sem antica de
1
, . . . ,
k
e . Logo
esta regra tambem n ao pode ser aplica no passo p.
Suponhamos que a regra a aplicar e a elimina cao da disjun cao:
E

[] []
.
.
.
.
.
.

: Suponhamos que o passo p deduz por aplica cao da regra


E a e duas sub-dedu coes uma com premissa
outra com premissa e ambas com conclusao . Sejam

1
, . . . ,
k
as premissas assumidas em (no passo p) e por,
hip otese, n ao e consequencia sem antica delas. Mas
e consequencia sem antica de algumas delas.
Departamento de Ciencia de Computadores F.C.U.P.
1.5. INTEGRIDADE E COMPLETUDE DE UM SISTEMA DEDUTIVO 41
.
.
.
.
.
.
n
.
.
.
.
.
.

.
.
.
.
.
.
l
.
.
.
.
.
.

.
.
.
.
.
.
m
p
.
.
.
.
.
.
Seja a tabela de verdade para
1
, . . . ,
k
, , e . Por hip otese, existe uma valoriza cao v
tal que v(
i
) = V, 1 i k, v( ) = V e v() = F. Entao tambem, ou v() = V ou
v() = V. Ambos os casos obrigavam a v() = V, no passo l ou no passo m respectivamente,
uma vez que nesses passos e consequencia sem antica de
1
, . . . ,
k
, e ou . Mas isto
contradiz a hip otese de se ter v() = F.
Vamos apenas considerar mais um caso. Suponhamos que se aplica a regra da elimina cao de
F:
FE
F

: Suponhamos que no passo p se deduz de F. Sejam


1
, . . . ,
k
as
premissas assumidas em , que s ao as premissas assumidas em F (e das
quais F e consequencia sem antica). Mas isto s o pode ser se
1
, . . . ,
k
forem todas contradi coes. E portanto e (vacuosamente) consequencia
sem antica de
1
, . . . ,
k
.
Depois de analisados os restantes casos e em todos obtermos uma contradi cao, podemos
concluir que uma dedu cao no sistema DN n ao pode ter passos que n ao sejam consequencia
sem antica das premissas.
Corolario 1.3. Se ent ao |= .
A integridade da dedu cao natural permite-nos determinar se n ao existe uma dedu cao de uma
formula a partir de premissas
1
, . . . ,
n
(i.e
1
, . . . ,
n
): basta encontrar uma valo-
riza cao v tal que v(
i
) = V, 1 i n e v() = F (i.e que
1
, . . . ,
n
|= ). Nota, contudo,
Departamento de Ciencia de Computadores F.C.U.P.
1.5. INTEGRIDADE E COMPLETUDE DE UM SISTEMA DEDUTIVO 42
que a integridade n ao permite concluir que se e consequencia sem antica de
1
, . . . ,
n
entao
existe uma dedu cao...isso e a completude.
Exerccio 1.17. Mostra que p (q p) p q.
Exerccio 1.18. Termina a demonstra c ao da proposi c ao 1.7.
1.5.2 Completude do sistema de deducao natural DN
Vamos ver que a dedu cao natural DN e completa para a logica proposicional: qualquer
consequencia sem antica pode ser deduzida em DN; em particular todas as tautologias s ao
teoremas de DN.
Seja v uma atribui cao de valores `as vari aveis. Para cada formula , dene-se

v
=
_
se v() = V
se v() = F
Lema 1.5. Seja uma f ormula cujas vari aveis proposicionais s ao q
1
, . . . , q
n
, e seja v uma
atribui c ao de valores ` as vari aveis. Ent ao
q
v
1
, . . . , q
v
n

v
Por exemplo, seja p q, v(p) = V e v(q) = F. Temos que p
v
= p, q
v
= q e (p q)
v
=
(p q). Entao pelo lema, vem que p, q (p q).
Demonstra c ao. Por indu cao estrutural na formula (= no n umero de conectivas que ocorrem
em ):
= q
1
Entao e claro que q
v
1
q
v
1
=
1
e tem-se que q
v
1
, . . . , q
v
n

v
1
por hip otese de indu cao. Se v() = V, entao v(
1
) = F,
donde
v
=
1
=
v
1
e portanto q
v
1
, . . . , q
v
n

v
. Caso contr ario, v() = F, entao
v(
1
) = V, entao
v
1
=
1
e
v
=
1
. Podemos estender a dedu cao de q
v
1
, . . . , q
v
n

1
usando a regra I e obtemos uma dedu cao q
v
1
, . . . , q
v
n

1
=
v
.
=
1

2
onde pode ser , ou . Sejam p
1
, . . . , p
l
e r
1
, . . . , r
k
, respectivamente
as vari aveis proposicionais que ocorrem em
1
e
2
, e {q
1
, . . . , q
n
} = {p
1
, . . . , p
l
}
{r
1
, . . . , r
k
}. De p
v
1
, . . . , p
v
l

v
1
e r
v
1
, . . . , r
v
k

v
2
podemos deduzir, usando a regra I:
q
v
1
, . . . , q
v
n

v
1

v
2
donde temos de deduzir
v
.
Departamento de Ciencia de Computadores F.C.U.P.
1.5. INTEGRIDADE E COMPLETUDE DE UM SISTEMA DEDUTIVO 43
=
1

2
Se v() = F, entao v(
1
) = V e v(
2
) = F. Entao
v
1
=
1
e
v
2
=
2
,
e q
v
1
, . . . , q
v
n

1

2
. Para ter q
v
1
, . . . , q
v
n
(
1

2
), basta que
1

2

(
1

2
) (mostra!).
Se v() = V, temos 3 casos:
v(
1
) = v(
2
) = F. Entao
v
1
=
1
e
v
2
=
2
, e q
v
1
, . . . , q
v
n

1

2
.
Para ter q
v
1
, . . . , q
v
n

1

2
, basta que
1

2

1

2
(mostra!).
v(
1
) = F ev(
2
) = V. Entao
v
1
=
1
e
v
2
=
2
, e q
v
1
, . . . , q
v
n

1

2
.
Para ter q
v
1
, . . . , q
v
n

1

2
, basta que
1

2

1

2
(mostra!)
v(
1
) = v(
2
) = V. Entao
v
1
=
1
e
v
2
=
2
, e q
v
1
, . . . , q
v
n

1

2
. Para
ter q
v
1
, . . . , q
v
n

1

2
, basta que
1

2

1

2
(mostra!)
=
1

2
Temos 4 casos:
v(
1
) = v(
2
) = V. Entao
v
1
=
1
e
v
2
=
2
, e q
v
1
, . . . , q
v
n

1

2
e entao
q
v
1
, . . . , q
v
n

1

2
=
v
v(
1
) = F ev(
2
) = V. Entao
v
1
=
1
e
v
2
=
2
, e q
v
1
, . . . , q
v
n

1

2
.
Para que q
v
1
, . . . , q
v
n
(
1

2
) =
v
basta que
1

2
(
1

2
)
(mostra!)
v(
1
) = V ev(
2
) = F. Entao
v
1
=
1
e
v
2
=
2
, e q
v
1
, . . . , q
v
n

1

2
.
Para que q
v
1
, . . . , q
v
n
(
1

2
) =
v
basta que
1

2
(
1

2
)
(mostra!)
v(
1
) = v(
2
) = F. Entao
v
1
=
1
e
v
2
=
2
, e q
v
1
, . . . , q
v
n

1

2
.
Para o q
v
1
, . . . , q
v
n
(
1

2
) =
v
basta que
1

2
(
1

2
)
(mostra!)
=
1

2
Temos 4 casos:
v(
1
) = v(
2
) = F. Entao
v
1
=
1
e
v
2
=
2
, e q
v
1
, . . . , q
v
n

1

2
.
Para que q
v
1
, . . . , q
v
n
(
1

2
) =
v
basta que
1

2
(
1

2
)
(mostra!)
v(
1
) = v(
2
) = V. Entao
v
1
=
1
e
v
2
=
2
, e q
v
1
, . . . , q
v
n

1

2
. Para
que q
v
1
, . . . , q
v
n

1

2
=
v
basta que
1

2

1

2
(mostra!)
v(
1
) = F e v(
2
) = V. Entao
v
1
=
1
e
v
2
=
2
, e q
v
1
, . . . , q
v
n

1

2
.
Para que q
v
1
, . . . , q
v
n

1

2
=
v
basta que
1

2

1

2
(mostra!)
v(
1
) = V e v(
2
) = F. Entao
v
1
=
1
e
v
2
=
2
, e q
v
1
, . . . , q
v
n

1

2
.
Para o q
v
1
, . . . , q
v
n

1

2
=
v
basta que
1

2

1

2
(mostra!)
Departamento de Ciencia de Computadores F.C.U.P.
1.5. INTEGRIDADE E COMPLETUDE DE UM SISTEMA DEDUTIVO 44
Proposi cao 1.8. Se |= ent ao , i.e, se e uma tautologia ent ao e um teorema.
Proposi cao 1.9. Se
1
, . . . ,
n
|= ent ao
1
, . . . ,
n
.
Demonstra c ao. Prop.1.8
Seja uma tautologia e p
1
, . . . , p
n
as vari aveis proposicionais que nela ocorrem. De |= e
pelo lema 1.5, v() = V e p
v
1
, . . . , p
v
n
, para toda a valoriza cao v. Tem-se entao que:
p
v
1
, . . . , p
v
n1
, p
n
e p
v
1
, . . . , p
v
n1
, p
n

para toda a valoriza cao v. Usando TE para p
n
p
n
e a regra E, podemos combinar as
duas dedu coes anteriores numa de:
p
v
1
, . . . , p
v
n1

Esquematicamente temos:
p
v
1
.
.
.
p
n
A

p
v
1
.
.
.
p
n
B

p
v
1
.
.
.
p
v
n1
p
n
p
n
TE
p
n
A

p
n
B

E
p
v
1
, . . . , p
v
n1
, p
n
p
v
1
, . . . , p
v
n1
, p
n
p
v
1
, . . . , p
v
n1

Repetindo o processo n 1 vezes para p
1
, . . . , p
n1
obtemos
Lema 1.6.
1
, . . . ,
n
|= se e s o se |= (
1
(
2
(. . . (
n
) . . .))).
Demonstra c ao. Por contradi cao. Para qualquer valoriza cao v((
1
(
2
(. . . (
n

) . . .)))) = F se v(
i
) = V para todos 1 i n e v() = F (mostra!). Mas isto con-
tradiz
1
, . . . ,
n
|= !
Demonstra c ao. (Prop. 1.9) Pelo lema 1.6, |= (
1
(
2
(. . . (
n
) . . .))). Pela
proposi cao 1.8, (
1
(
2
(. . . (
n
) . . .))). E pelo lema 1.4 (da dedu cao, p agina 32),

1
, . . . ,
n

Departamento de Ciencia de Computadores F.C.U.P.
1.6. DECIDIBILIDADE DA L

OGICA PROPOSICIONAL 45
O resultado anterior tambem se verica para o caso ser innito e portanto juntando a
integridade e a completude, temos para qualquer conjunto de formulas:
|= se e s o se
Leituras suplementares [BE00] (Cap. 8.3)
1.6 Decidibilidade da logica proposicional
Proposi cao 1.10. Dado um conjunto de f ormulas e uma f ormula e decidvel se ,
i.e, existe um algoritmo que determina se e dedutvel de .
Demonstra c ao. Pela completude e integridade, decidir equivale a decidir se |= . E
podemos supor = (usando a lema 1.4(da dedu cao)). Entao basta construir a tabela de
verdade para (que e nita) e vericar se e uma tautologia.
Corolario 1.4.

E decidvel se uma f ormula e um teorema (= e v alida).
Corolario 1.5.

E decidvel se uma f ormula e satisfazvel.
Demonstra c ao. A formula e satisfazvel se e s o se n ao e uma tautologia.
No entanto, utilizar o metodo das tabelas de verdade para determinar se uma formula e sa-
tisfazvel e um algoritmo pouco eciente que tem complexidade temporal exponencial. Mas,
embora, existam outros algoritmos, ate ao momento n ao se conhece nenhum com comple-
xidade temporal polinomial (este facto est a relacionado com a conjectura P = NP, como
poder ao ver em disciplinas de Complexidade).
1.7 Outros sistemas dedutivos
1.7.1 Sistemas dedutivos de Hilbert, H
Usados inicialmente nas tentativas de mecaniza cao das demonstra coes matem aticas (Sec. XIX
e incio de XX) (tambem usados por Peano, G. Frege e B. Russel)
Supondo apenas o conjunto completo de conectivas {, }, pode tomar a forma:
Axiomas
( )
( ( )) (( ) ( ))
Departamento de Ciencia de Computadores F.C.U.P.
1.7. OUTROS SISTEMAS DEDUTIVOS 46
( ) (( ) )
Regras de inferencia
Modus ponens: de e de , inferir
Proposi cao 1.11. (da deduc ao) Se {}
H
ent ao
H
.
Proposi cao 1.12.
ND
se e s o se
H

Demonstra c ao. (): Basta ver que os axiomas de H s ao teoremas de DN (ver exerccio 1.18).
A regra de inferencia corresponde `a regra da elimina cao de implica cao de DN ( E)
(): e possvel transformar uma dedu cao em DN, numa dedu cao em H. (Nao o faremos
neste curso...)
Corolario 1.6. O sistema de deduc ao H e integro e completo para a l ogica proposicional.
A diferen ca entre os dois sistemas e a impossibilidade de se fazer novas suposi coes (assumir
novas premissas) no sistema H: isso torna as dedu coes neste sistema mais difceis e menos
automatiz aveis...
1.7.2 Sistemas dedutivos analticos
Mesmo no sistema DN n ao e facil construir um algoritmo para determinar se uma formula
e um teorema, excepto se se usar a completude (e construir a dedu cao a partir da tabela de
verdade). Mas existem outros sistemas de dedu cao automatiz aveis e em que para determinar
se uma formula e um teorema n ao e necessaria a sem antica. Estes sistemas dizem-se
analticos (ou automatiz aveis). A propriedade essencial destes sistemas e que, partindo da
formula que se pretende deduzir (i.e considerando a dedu cao da conclusao para as premissas),
em cada passo duma dedu cao, as formulas s ao sub-f ormulas de alguma formula de um passo
anterior.

E facil ver que a regra de Modus ponens n ao verica esta propriedade.
Entre os sistemas analticos, destacamos:
Sequentes de Gentzen Variante do sistema de dedu cao natural.
Tableaux analticos (ou semanticos) Para deduzir , deduz-se que a formula e uma
contradi cao.
Resolu cao tambem por contradi cao, mas necessita de em forma normal conjuntiva.
Um sistema dedutivo diz-se de refutac ao se para deduzir de , se deduz F de {}.
A consequencia sem antica e preservada: se |= sse {} n ao e satisfazvel. Tanto os
tableaux como a resolu cao s ao sistemas de refuta cao.
Departamento de Ciencia de Computadores F.C.U.P.
1.7. OUTROS SISTEMAS DEDUTIVOS 47
1.7.3 Tableaux semanticos
Para deduzir uma formula , inicia-se com e produz-se uma contradi cao. Uma dedu cao
e uma arvore em que os n os s ao etiquetados por formulas, sendo a raz da arvore etique-
tada por . Em cada passo, expande-se uma folha da arvore de acordo com as regras de
expans ao dos Tableaux (Tabela 1.2). Nestas regras utiliza-se a notac ao uniforme (de R.M.
Smullyan [Smu95]), que permite agrupar as formulas da forma e ( ) em duas
categorias: as conjuntivas, , e as disjuntivas, . Para cada formula (ou ), associam-se
duas componentes que denotamos por
1
e
2
(
1
ou
2
). Na Tabela 1.1 apresenta-se os
valores destas componentes para { , , }.

1

2

1

2
( )
( )
( )
Tabela 1.1: Nota cao uniforme: formulas e

E facil ver que:


Proposi cao 1.13. Para toda a atribui c ao de valores ` as vari aveis v, e para todas as f ormulas
e :
v() = v(
1
) v(
2
)
v() = v(
1
) v(
2
).
As regras de expans ao de tableaux permitem transformar uma arvore T etiquetada por
formulas, noutra arvore T

. Suponhamos que num ramo r da arvore ocorre uma formula


n ao literal . Se e , podemos expandir a folha desse ramo com mais um n o etiquetado
por . Analogamente se e F, adiciona-se V ou se e V, adiciona-se F. Se e um ,
adicionam-se a r dois n os, um etiquetado com
1
e outro com
2
(lho de
1
). Se e um ,
adiciona-se `a folha de r dois lhos, um etiquetado por
1
outro por
2
.

F
V
V
F

1
|
2
Tabela 1.2: Regras de expans ao dos tableaux
Um tableau pode ser denido indutivamente por:
Departamento de Ciencia de Computadores F.C.U.P.
1.7. OUTROS SISTEMAS DEDUTIVOS 48
Deni cao 1.16. Seja {
1
, . . . ,
n
} um conjunto de f ormulas.
1. Um tableau para {
1
, . . . ,
n
} e uma arvore de um s o ramo:

2
.
.
.

n
2. Se T e um tableau para {
1
, . . . ,
n
} e T

resulta de T por aplica c ao duma regra de


expans ao de tableaux, ent ao T

e um tableau para {
1
, . . . ,
n
}.
Um tableau para o conjunto {p (q p)} e:
p (q p)
p
q p
q p
Deni cao 1.17. Um ramo r de um tableau diz-se fechado se existe uma f ormula tal que
e ocorrem em r. Um tableau diz-se fechado se todos os seus ramos est ao fechados.
O tableau do exemplo anterior tem, um ramo fechado mas n ao e fechado.
Deni cao 1.18. Uma deduc ao por tableau de e um tableau fechado para {}. A f ormula
e um teorema se tem uma deduc ao por tableau.
Deni cao 1.19. Um ramo r de um tableau e satisfazvel se o conjunto de f ormulas que
etiquetam os seus n os e satisfazvel. Um tableau T e satisfazvel se pelo menos um dos seus
ramos e satisfazvel.
A proposi cao seguinte demonstra-se por an alise de casos e usando a Proposi cao 1.13.
Proposi cao 1.14. Pela aplica c ao de qualquer regra de expans ao de tableau a um tableau
satisfazvel, obtem-se um tableau satisfazvel.
Proposi cao 1.15. Se existe um tableau fechado para um conjunto de f ormulas , ent ao
n ao e satisfazvel.
Temos, entao, a integridade do sistema de tableaux:
Teorema 1.1. Se tem uma deduc ao por tableau, ent ao e uma tautologia.
Departamento de Ciencia de Computadores F.C.U.P.
1.7. OUTROS SISTEMAS DEDUTIVOS 49
Demonstra c ao. Uma dedu cao por tableau e um tableau fechado para {}. Entao, pela
Proposi cao 1.15, {} n ao e satisfazvel, logo e uma tautologia.
Apresentamos, sem demonstra cao, a completude do sistema de tableaux:
Teorema 1.2. Se e uma tautologia, tem uma deduc ao por tableau.
Exerccio 1.19. Constr oi deduc oes de tableaux para as seguintes f ormulas:
a) ((p q) (p q))
b) ((p q) (q r)) (r p)
c) (p q) ((p q) q)
d) ((p q) p) p

1.7.4 Resolucao
Recorda que um literal e uma formula atomica ou a sua nega cao: p, p. Uma cl ausula e uma
disjun cao de literais: p q p s e pode representar-se pelo conjunto {p, q, p, s}.
Entao uma formula da logica proposicional em FNC, p.e.
p (q r q) (r s) (p s) (q s)
pode ser vista como um conjunto de clausulas:
{{p}, {q, r}, {r, s}, {p, s}, {q, s}}
Seja um conjunto de clausulas e representamos por F a clausula vazia.
O sistema dedutivo por resolu c ao n ao tem axiomas e apenas uma regra de inferencia (de
resolu c ao):
C {p} C

{p}
C C

e a conclusao diz-se a resolvente das premissas.


A dedu cao de F a partir de um conjunto C de clausulas diz-se uma refuta cao C.
No caso anterior, tinha-se a seguinte dedu cao:
{p,s} {p}
{s}
{q,r} {r,s}
{q,s}
{q,s}
{s}
F
Departamento de Ciencia de Computadores F.C.U.P.
1.7. OUTROS SISTEMAS DEDUTIVOS 50
{p,s} {p}
{s}
{q,r} {r,s}
{q,s}
{q,s}
{s}
F
Uma dedu c ao por resolu c ao de uma formula e uma refuta cao de clausulas que correspondem
`a FNC de .
Teorema 1.3. (Integridade) Seja C = {C
1
, . . . , C
n
} um conjunto n ao vazio de cl ausulas da
l ogica proposicional.
i. Sejam C
i
e C
j
cl ausulas de C e R uma resolvente de C
i
e C
j
. Ent ao C |= R.
ii. Se C
R
F, isto e, existe uma deduc ao de F a partir de C usando apenas a regra da
Resolu c ao, ent ao C n ao e satisfazvel.
Exerccio 1.20. Mostra o teorema 1.3.
Teorema 1.4. (Completude) Se um conjunto de cl ausulas C e n ao satisfazvel ent ao existe
uma deduc ao C
R
F.
Exerccio 1.21. Considera a f ormula seguinte em forma normal conjuntiva (FNC):
(p q r) p (q r p) (p r)
i. Converte a f ormula para um conjunto de cl ausulas.
ii. A partir desse conjunto constr oi uma deduc ao de F,q usando apenas a regra da resolu c ao.

Exerccio 1.22. Encontra uma deduc ao de F (uma refutac ao) para:


{{p, q, r}, {p, r}, {q, r}, {r}}

Exerccio 1.23. Encontra uma deduc ao por resolu c ao de: ((p q) (q r)) (r p)

Exerccio 1.24. Constr oi deduc oes de tableau e por resolu c ao para as seguintes f ormulas:
a) ( ) (( ) )
b) ( ( ))
c) ( ( ))

Leituras suplementares [Bro00], [Fit90], [Smu95],[GLM97], [BA01].


Departamento de Ciencia de Computadores F.C.U.P.
Captulo 2
Logica de primeira ordem
Na logica proposicional n ao e possvel representar adequadamente frases como:
Todos os p assaros tem penas
Alguns p assaros cantam
Nem todos os p assaros voam
Todos os homens s ao mortais
Todas as crian cas s ao mais novas que os seus pais
Um inteiro ou e par ou mpar
Todos os p assaros s ao mais leves que algum mamfero
Por outro lado, proposi coes como as seguintes podem-se representar usando rela coes n-arias
entre objectos:
Proposi cao Representa cao
O Carlos e irm ao da Joana irmao(carlos,joana)
A Joana deu um livro ao Carlos dar(joana,livro,carlos)
2 e par par(2)
2 = 1 + 1 igual(2,soma(1,1))
Na logica de primeira ordem vai ser possvel representar:
Objectos: Termos que podem ser simples (constantes ou vari aveis) ou complexos. Ex:
joana, x, m~ae(joana), soma(1,1)
Departamento de Ciencia de Computadores F.C.U.P.
2.1. LINGUAGENS DA L

OGICA DE PRIMEIRA ORDEM 52


Propriedades ou rela c oes entre objectos: Formulas que podem ser predicados simples
ou complexos (usando conectivas). Ex: dar(joana,livro,carlos),par(2) par(3)
Propriedades ou rela c oes entre conjuntos de objectos Formulas quanticadas sobre
objectos. Os quanticadores permitem representar as palavras todos, alguns, etc:
(universal) e (existencial).
Ex:
x (passaro(x) penas(x))
x (passaro(x) canta(x))
x (passaro(x) voa(x))
x (passaro(x) (y(mamifero(y) mais leve(x, y))))
2.1 Linguagens da logica de primeira ordem
Uma linguagemL de logica de 1
a

ordem e caracterizada pelos seguintes conjuntos de smbolos:


Smbolos logicos que est ao presentes em qualquer linguagem:
um conjunto numeravel de vari aveis, V ar = {x, y, . . . , x
0
, y
0
, . . .};
as conectivas l ogicas , , e ;
os quanticadores (universal) e (existencial);
os parentesis ( e );
possivelmente o smbolo de igualdade, =.
Smbolos nao logicos que caracterizam a linguagem:
um conjunto, possivelmente vazio, de smbolos funcionais n-arios para cada n 0,
F
n
; os elementos de F
0
chamam-se constantes e representam-se por a, b, c,. . . . Os
restantes smbolos por f, g, h, . . . ;
um conjunto, possivelmente vazio, de smbolos de predicado (ou relacionais) n-arios
para cada n 0, R
n
. Os smbolos relacionais representam-se por P, R, Q, etc...
Deni cao 2.1 (Termos). Seja L uma linguagem de 1
a

ordem. Um termo, e uma sequencia


de smbolos de L, representado por t, s, . . . t
1
, s
1
, . . . e denido indutivamente por:
Uma vari avel x e um termo;
Uma constante a e um termo;
Departamento de Ciencia de Computadores F.C.U.P.
2.1. LINGUAGENS DA L

OGICA DE PRIMEIRA ORDEM 53


Se t
1
, . . . , t
n
s ao termos e f F
n
um smbolo funcional de aridade n > 0, ent ao
f(t
1
, . . . , t
n
) e um termo .
O conjunto dos termos T
L
tambem pode ser denido pela seguinte gram atica independente
de contexto, em nota cao BNF:
t ::= x | a | f(t, . . . , t)
onde x V ar, a F
0
e f F
n
.
Um termo diz-se fechado se n ao tiver ocorrencias de vari aveis e denotamos por T
O
o seu
conjunto. Ex: a, f(a, g(b, c)) e f(f(a, a)))
Exemplo 2.1. Supondo F
0
= {a, d}, F
2
= {f, h}, F
1
= F
3
= {g}, indica quais das seguintes
sequencias de smbolos s ao termos e quais s ao termos fechados:
f(a, g(x, g(a), a))
g(d, h(y, z), d, f(a)))
h(d, f(a, h(d)))
f(f(x, x), f(y, y))
x(d, g(y))
f(a, a(x))
Deni cao 2.2 (Formulas). O conjunto de formulas atomicas duma linguagem L e dado por:
se t
1
, . . . , t
n
s ao termos e R R
n
e um smbolo de predicado n- ario, ent ao R(t
1
, . . . , t
n
)
e uma formula atomica;
se L tiver a igualdade e se t
1
e t
2
s ao termos ent ao t
1
= t
2
e uma formula atomica;
O conjunto das formulas e denido indutivamente por:
uma f ormula at omica e uma formula;
se e uma f ormula e uma formula;
se e s ao f ormulas ent ao ( ), ( ) e ( ) s ao formulas
se e uma f ormula e x uma vari avel, ent ao x e x s ao formulas.
O conjunto das formulas pode tambem ser denido por uma gram atica, em nota cao BNF:
::= R(t
1
, . . . , t
n
) | t
1
= t
2
| | ( ) | ( ) | ( ) | x | x
onde R R
n
, t
i
T e x V ar.
Departamento de Ciencia de Computadores F.C.U.P.
2.1. LINGUAGENS DA L

OGICA DE PRIMEIRA ORDEM 54


Exemplo 2.2. Sendo F
0
= {m, d}, F
1
= {f}, F
2
= {g} e R
2
= {R, S}, determina quais das
seguintes express oes s ao f ormulas:
S(m, x)
f(m)
R(R(m, x))
(R(x, y) (z S(z, f(y))))
R(x, y) R(zR(z, z)))
x R(f(d), g(f(m), y))
xy(g(x, y) S(y, x))
Nas formulas da logica de 1
a

ordem, podem-se omitir os parentesis, supondo que as conven coes


para a logica proposicional e que os quanticadores tem maior precedencia que qualquer
operador logico. Por exemplo, as seguintes formulas s ao diferentes: xP(x) P(x) e
x(P(x) P(x)).
Exemplo 2.3 (Linguagem para a aritmetica). Pretende-se uma linguagem para exprimir
ir f ormulas sobre os n umeros naturais e as opera c oes de adic ao e multiplica c ao. Seja A a
linguagem com = caracterizada por:
F
0
= {0, 1}, F
2
= {+, } e R
2
= {<}
Os termos seguintes representam os naturais:
0, 1, +(1, 1), +(1, +(1, 1)), +(1, +(+(1, 1), 1)) . . .
Outros termos s ao: (((1, 0), 1), (+(0, +(0, 1))), . . .
E exemplos de f ormulas s ao:
< ((1, 1), +(1, 1))
x (+(0, x) = x)
xy(+(x, 1) = +(y, 1) x = y)
Podemos ainda adoptar a notac ao usual inxa para os smbolos funcionais e relacionais, e
escrever: (1 1) < (1 + 1), (0 +x), etc...
Exemplo 2.4 (Tradu cao de frases para formulas). Na tabela seguinte apresentam-se algumas
frases em linguagem natural e a sua representac ao como f ormulas da l ogica de 1
a

ordem.
Frases do tipo Representac ao
Todos os Ps s ao Qs x(P(x) Q(x))
Alguns Ps s ao Qs x(P(x) Q(x))
Nenhum P e Q x(P(x) Q(x))
Nem todos os Ps s ao Qs x(P(x) Q(x))
Departamento de Ciencia de Computadores F.C.U.P.
2.2. SEM

ANTICA DA L

OGICA DE 1
A

ORDEM 55
Considerando predicados adicionais, exprime na linguagem da aritmetica:
Todo o n umero par e primo
Nem todos os n umeros primos s ao pares
Alguns primos n ao s ao pares
Nenhum primo e par
Todo o primo e n ao par ou igual a 2
Deni cao 2.3 (Vari aveis livres e ligadas). Uma vari avel x tem uma ocorrencia n ao livre (ou
ligada) numa f ormula se tem uma sub-f ormula da forma x ou x e x ocorre em .
Caso contr ario, diz-se que x ocorre livre em .
Uma vari avel pode ocorrer livre e ligada numa mesma formula. Em
x((P(x) Q(x))) (P(x) Q(y))
x tem duas ocorrencias ligadas e uma ocorrencia livre e y tem apenas uma ocorrencia livre.
Deni cao 2.4 (Proposi cao). Uma f ormula sem vari aveis livres diz-se uma proposi cao.
Por exemplo, R(a, f(a, b)) x(R(x, x) yP(y) P(x)) e uma proposi cao.
Exemplo 2.5. Indica quais as ocorrencias livres e ligadas de cada uma das vari aveis das
f ormulas seguintes. Indica quais as f ormulas que s ao proposi c oes.
x(P(y, z) y(Q(x, y) P(y, z)));
(xyP(x, y, z) zP(x, y, z));
x((P(x) C(x)) yL(x, y));
P(a, f(a, b));
x(P(x) Q(x)).
2.2 Semantica da logica de 1
a

ordem
Na logica proposicional a sem antica duma formula complexa e determinada a partir da
sem antica dos seus constituintes b asicos, i.e, as proposi coes p, q . . . cujo valor pode ser V
ou F. Por exemplo, se o valor de p for V e o de q, F, entao a formula seguinte tem o valor V
(verica!):
(p q) (q p)
Departamento de Ciencia de Computadores F.C.U.P.
2.2. SEM

ANTICA DA L

OGICA DE 1
A

ORDEM 56
Como avaliar uma formula de primeira ordem? Por exemplo, como avaliar:
xy(P(x) Q(y)) (Q(x) P(y))
Temos que determinar qual o signicado
das vari aveis (livres e ligadas)
dos quanticadores
dos smbolos funcionais
dos smbolos relacionais
num dado universo ou domnio de discurso, por exemplo: os n umeros inteiros, n umeros reais,
conjuntos, grafos, objectos geometricos, etc,etc.
Informalmente para os quanticadores e para um dado universo:
xP(x) ser a verdadeira se e s o se P(x) satisfaz todos os objectos do universo
xP(x) ser a verdadeira se e s o se P(x) satisfaz algum objecto do universo
Exemplo 2.6 (Mundo dos Blocos). Pretende-se descrever um conjunto de blocos com dife-
rentes formas geometricas e tamanhos, colocados num tabuleiro de xadrez...
Departamento de Ciencia de Computadores F.C.U.P.
2.2. SEM

ANTICA DA L

OGICA DE 1
A

ORDEM 57
Uma linguagem para denir este conjunto pode ser a seguinte:
F
1
= {maisafrente, maisaesquerda, maisadireita}
R
1
= {Cubo, Tetra, Dodec, Pequeno, Medio, Grande}
R
2
= {Menor, Maior, Esquerda, Direita, MesmoT,
MesmaF, MesmaL, MesmaC}
R
3
= {Entre}
Algumas f ormulas:
y (Cubo(y) Medio(y))
x (Cubo(x) y(Cubo(y) Maior(x, y)))
y maisaesquerda(y) = y
x (Pequeno(x) maisafrente(x) = x)
x (maisaesquerda(x) = x Cubo(maisaesquerda(x)))
Cubo(x)
MesmoT(z, y) MesmaF(z, y)
Um domnio (conjunto de objectos) ir a permitir determinar quais as f ormulas que s ao satis-
feitas nesse mundo(estrutura). Para alem do domnio e necess ario indicar tambem qual o
signicado de cada smbolo funcional e cada smbolo relacional.
No mundo (estrutura) A apresentado na gura:
o domnio tem 8 objectos {o
1
, . . . o
8
} (ordenados de cima para baixo e da esquerda pra
a direita...)
` as constantes n ao associamos nenhum objecto
a maisafrente associamos uma func ao maisafrente
A
que para cada objecto indica qual
o objecto mais ` a frente na mesma coluna: maisafrente
A
(o
1
) = o
6
,maisafrente
A
(o
4
) =
o
7
, e para os restantes maisafrente
A
(o) = o. Analogamente associa-se a maisaesquerda
e maisadireita, a func ao que para cada objecto indica qual o objecto mais ` a esquerda,
respectivamente, mais ` a direita.
a Cubo associamos uma rela c ao un aria que corresponde aos objectos do domnio que
s ao cubos: Cubo
A
= {o
4
, o
5
}. Analogamente,
Departamento de Ciencia de Computadores F.C.U.P.
2.2. SEM

ANTICA DA L

OGICA DE 1
A

ORDEM 58
Tetra
A
= {o
1
, o
2
, o
3
}
Dodec
A
= {o
6
, o
7
, o
8
}.
Pequeno
A
= {o
6
, o
7
, o
8
}
Grande
A
= {o
2
} e para os restantes o Medio
A
Esquerda
A
= {(o
1
, o
2
), (o
4
, o
5
), (o
6
, o
7
), (o
7
, o
8
)}
MesmaL
A
= (Esquerda
A
)

(fecho de reexivo e transitivo)


e de modo an alogo se denem as restantes rela c oes bin arias.
Entre
A
= {(o
7
, o
6
, o
8
)}
Como determinar se uma f ormula e satisfazvel nesta estrutura?
y(Cubo(y) Medio(y)) e satisfazvel em A pois o
4
Cubo
A
e o
4
Medio
A
x(Dodec(x) Pequeno(x)) e satisfazvel em A pois para todo o Dodec
A
, o Pequeno
A
Mas, x(Medio(x) Cubo(x)) n ao e satisfazvel em A porque o
2
Medio
A
e o
2
/ Cubo
A
E, x (Pequeno(x) maisafrente(x) = x) e satisfazvel em A. Porque?
E para as f ormulas como Cubo(x) ou MesmoT(z, y) MesmaF(z, y)?
Neste caso temos ainda de ter primeiro uma interpreta cao s para as vari aveis livres...
Para s(x) = o
4
, s(y) = o
7
e s(z) = o
6
, as duas f ormulas s ao satisfazveis, pois o
4
Cubo
A
e
o
7
, o
6
MesmoT
A
MesmaF
A
Deni cao 2.5 (Estrutura duma linguagem). Uma estrutura duma uma linguagem de pri-
meira ordem L e: um par A = (A,
A
) onde A e um conjunto n ao vazio, e que se diz o domnio
(ou o universo) A e .
A
uma func ao tal que:
associa a cada constante c um elemento c
A
A
associa a cada smbolo funcional f F
n
, n > 0 uma func ao n- aria f
A
de A
n
em A
associa a cada smbolo relacional n- ario R R
n
, uma rela c ao R
A
A
n
Deni cao 2.6 (Interpreta cao de vari aveis). Dada uma linguagem L e uma estrutura A =
(A,
A
) de L.
Uma interpreta cao das vari aveis e uma func ao s : V ar A.
Podemos estender uma interpretac ao s ao conjunto dos termos de L, s : T A:
para x V ar o valor de s(x) j a est a denido
para c F
0
, s(c) = c
A
se t
1
, . . . , t
n
s ao termos e f F
n
, n 1,
Departamento de Ciencia de Computadores F.C.U.P.
2.2. SEM

ANTICA DA L

OGICA DE 1
A

ORDEM 59
s(f(t
1
, . . . , t
n
)) = f
A
(s(t
1
) . . . , s(t
n
))
Se t T
O
entao s(t) n ao depende de s e escrevemos t
A
.
Deni cao 2.7 (Rela cao de satisfazibilidade). Dada uma linguagem L, uma estrutura A =
(A,
A
) de L e uma interpretac ao s : V ar A. A rela c ao A satisfaz uma f ormula para
a interpretac ao s, denota-se por A |=
s
e denida por induc ao na estrutura de :
1. A |=
s
t
1
= t
2
se s(t
1
) = s(t
2
)
2. A |=
s
R(t
1
, . . . , t
n
) se (s(t
1
), . . . , s(t
n
)) R
A
3. A |=
s
se A |=
s
(i.e n ao e verdade que A |=
s
)
4. A |=
s
se A |=
s
e A |=
s

5. A |=
s
se A |=
s
ou A |=
s

6. A |=
s
se A |=
s
ou A |=
s

7. A |=
s
x se para todo o a A se tem A |=
s[a/x]
onde:
s[a/x](y) =
_
s(y) se y = x
a se y = x
8. A |=
s
x se existe um a A tal que tem A |=
s[a/x]

Exemplo 2.7. Seja L
N
a linguagem de 1
a

ordem com igualdade para os n umeros naturais


j a dada: F
0
= {0, 1}, F
2
= {+, } e R
2
= {<}
Seja N = (N,
N
) uma estrutura de L
N
, onde
N
e denido por:
0
N
= 0, 1
N
= 1
+
N
(n, m) = n +m,
N
(n, m) = n m
<
N
= {(n, m) N
2
| n < m}
a) Vericar que, para qualquer interpretac ao s : V ar N:
N |=
s
x < (x, +(x, 1))
Por 7 da Deni c ao 2.7, temos que ver se para todo o n N se tem
N |=
s[n/x]
< (x, +(x, 1))
Por 2 temos:
(s[n/x](x), s[n/x](+(x, 1)) <
N
Departamento de Ciencia de Computadores F.C.U.P.
2.2. SEM

ANTICA DA L

OGICA DE 1
A

ORDEM 60
e usando a denic ao de interpretac ao (2.6) vem,
(n, n + 1) <
N
i.e, n < n + 1, o que realmente e verdade para todo o n N.
b) Se s(x) = 2, vericar que N |=
s
x = +(1, 1).
Neste caso, por 1 da Deni c ao 2.7, temos que ver se
s(x) = s(+(1, 1))
Isto e:
2 = +
N
(s(1), s(1))
ou seja, 2 = 1 + 1 o que e verdade em N.
2.2.1 Satisfazibilidade, validade e consequencia
Uma formula duma linguagem de 1
a

ordem e:
satisfazvel: se existir uma estrutura A e uma interpreta cao s, tal que A |=
s

valida: se para toda a estrutura A e toda a interpreta cao s, se tem A |=
s
. E escreve-se
|=
Deni cao 2.8. Uma estrutura A satisfaz um conjunto de f ormulas para uma interpretac ao
s, se satiszer todas as f ormulas de , e escreve-se A |=
s
.
Uma f ormula e consequencia sem antica de se para toda a estrutura A de L e toda a
interpretac ao s tal que A |=
s
, se tem A |=
s
. E escreve-se |= .
Para que uma estrutura satisfa ca uma formula para uma interpreta cao s, apenas interessa
o valor que s atribui `as vari aveis que ocorrem livres em . Em particular, temos a seguinte
proposi cao:
Proposi cao 2.1. Seja uma f ormula duma linguagem L e A = (A,
A
) uma estrutura de
L. Sejam duas interpretac oes s
1
e s
2
tal que s
1
(x) = s
2
(x) se x ocorre livre em . Ent ao
A |=
s
1
se e s o se A |=
s
2

Demonstra c ao. Ideia: mostrar por indu cao na estrutura dos termos que entao s
1
(t) = s
2
(t)
se t e um termo de e em t s o ocorrem vari aveis livres de . Mostrar o resultado por indu cao
na estrutura de .
Departamento de Ciencia de Computadores F.C.U.P.
2.2. SEM

ANTICA DA L

OGICA DE 1
A

ORDEM 61
2.2.1.1 Proposi c oes e modelos
A satisfazibilidade duma proposi cao numa estrutura n ao depende das interpreta coes.
Proposi cao 2.2. Se e uma proposi c ao de L e A uma estrutura de L ent ao verica-se uma
das seguintes condi c oes:
1. A |=
s
para toda a interpretac ao s
2. A |=
s
para toda a interpretac ao s
Demonstra c ao. Consequencia imediata da proposi cao 2.1.
Se A |= diz-se que e verdadeira em A ou A e um modelo de . Se A |= diz-se que e
falsa em A.
Se for um conjunto de proposi coes e A |= para todo entao A e um modelo de e
escreve-se A |= .
Corolario 2.1. Seja {} um conjunto de proposi c oes. |= se e s o se todo o modelo
de for um modelo de .
Exerccio 2.1. Verica o corol ario anterior.
Exerccio 2.2. Seja L uma linguagem de 1
a

ordem com igualdade e tal que F


0
= {a, b},
F
1
= {g}, F
2
= {f, h}, R
1
= {R, S} e R
2
= {P, Q}.
i. Para cada uma das seguintes proposi c oes diz, justicando se e verdadeira ou falsa em
A
a) xy f(x, y) = a
b) xy f(x, y) = a
c) xy f(x, y) = a yxf(x, y) = a
d) xR(x) xR(x)
ii. Considera as seguintes interpretac oes s
i
: V ar N para i = 1, 2, 3 e onde:
s
1
(x) = 2, para todo x V ar;
s
2
(x) = 0, para todo x V ar.
s
3
(x) = 3, s
3
(y) = 1 e s
3
(z) = 5.
Para cada uma das f ormulas seguintes e cada uma das interpretac oes s
i
, diz se A |=
s
i
,
para i = 1, 2, 3:
Departamento de Ciencia de Computadores F.C.U.P.
2.2. SEM

ANTICA DA L

OGICA DE 1
A

ORDEM 62
a) xy f(x, y) = z
b) z f(x, y) = z y (S(y) R(y))

Resolu c ao 2.2.i
a) Pretende-se que para qualquer interpreta cao s : V ar N,
A |=
s
xy f(x, y) = a (2.1)
Iremos usar indutivamente a deni cao de |=
s
.
Por (vii), (2.1) e verdade, se para todo o n N se tem
A |=
s[n/x]
y f(x, y) = a (2.2)
Por (viii), (2.2) e verdade, se existe um m N tal que
A |=
s[n/x][m/y]
f(x, y) = a (2.3)
Por (i), (2.3) e verdade, se
s[n/x][m/y](f(x, y)) = s[n/x][m/y](a) (2.4)
Mas, pela deni cao de interpreta cao estendida a termos e de s[a/x] para a pertencente ao
domnio de A,
s[n/x][m/y](f(x, y)) = f
A
(s[n/x][m/y](x), s[n/x][m/y](y)) = f
A
(n, m) = n +m
e s[n/x][m/y](a) = a
A
= 1
Em resumo, (2.1) e verdade se
Para todo o n N, existe um m N tal que n +m = 1.
o que e Falso. Por exemplo, para n = 3 ter-se-ia m = 2 N.
b) Analogamente se obteria, para qualquer interpreta cao s
A |=
s
xy f(x, y) = a (2.5)
se e s o se
Existe um n N e existe um m N tal que n +m = 1.
Departamento de Ciencia de Computadores F.C.U.P.
2.2. SEM

ANTICA DA L

OGICA DE 1
A

ORDEM 63
o que e Verdade, por exemplo para n = 0 e m = 1.
c) Pretende-se que, para qualquer interpreta cao s
A |=
s
xy f(x, y) = a yxf(x, y) = a (2.6)
Por (vi) da deni cao de |=
s
, (2.6) e verdade se
A |=
s
xy f(x, y) = a ou A |=
s
yxf(x, y) = a
Pela alnea (a), vimos que n ao e verdade que A |=
s
xy f(x, y) = a, logo A |=
s
xy f(x, y) = a e verdade. E tambem (2.6).
d) Pretende-se que, para qualquer interpreta cao s
A |=
s
xR(x) xR(x) (2.7)
Por (vi) da deni cao de |=
s
, (2.7) e verdade se
A |=
s
xR(x) ou A |=
s
xR(x)
Vamos determinar se A |=
s
xR(x). Isto e verdade, se existe n N tal que
A |=
s[n/x]
R(x) (2.8)
Por (ii), (2.8) e verdade se
s[n/x](x) R
A
(2.9)
Como s[n/x](x) = n , vem que (2.8) e verdade se
Existe um n N tal que n e mpar
o que e Verdade. Entao A |=
s
xR(x) e Falso.
Temos que analisar a veracidade de A |=
s
xR(x). Analogamente obtemos que e verdade
se
Para todo o n N, n e mpar
o que tambem e Falso. Donde (2.7) e Falsa.
Resolu cao 2.2i.ii
Departamento de Ciencia de Computadores F.C.U.P.
2.2. SEM

ANTICA DA L

OGICA DE 1
A

ORDEM 64
a) Sendo s
1
uma interpreta cao que atribu o valor 2 a qualquer vari avel, pretende-se que
A |=
s
1
xy f(x, y) = z (2.10)
Isto e verdade se, existe um n N e existe um m N tal que
A |=
s
1
[n/x][m/y]
f(x, y) = z (2.11)
Isto e se,
s
1
[n/x][m/y](f(x, y) = s
1
[n/x][m/y](z) (2.12)
Mas s
1
[n/x][m/y](f(x, y) = f
A
(n, m) = n +m e s
1
[n/x][m/y](z) = s
1
(z) = 2
Entao (2.10) e verdade se
Existe um n N e existe um m N tal que m+n = 2
o que e Verdade. Basta tomar n = m = 1.
b) Sendo s
1
uma interpreta cao que atribu o valor 2 a qualquer vari avel, pretende-se que
A |=
s
1
z f(x, y) = z y (S(y) R(y)) (2.13)
Mais uma vez isto e verdade se A |=
s
1
z f(x, y) = z ou se A |=
s
1
y (S(y) R(y))
Temos que:
A |=
s
1
z f(x, y) = z (2.14)
se existe n N tal que
A |=
s
1
[n/z]
f(x, y) = z (2.15)
Isto e se,
s
1
[n/z](f(x, y)) = s
1
[n/z](z) (2.16)
e s
1
[n/z](f(x, y)) = f
A
(s
1
[n/z](x), s
1
[n/z](y)) = f
A
(s
1
(x), s
1
(y)) = 2+2 e s
1
[n/z](z) = n
Entao (2.14) e verdade se
Existe um n N tal que 2 + 2 = n
o que e Verdade. Tomar n = 4.
Mas entao A |=
s
1
z f(x, y) = z e Falso.
Temos que
A |=
s
1
y (S(y) R(y)) (2.17)
Departamento de Ciencia de Computadores F.C.U.P.
2.2. SEM

ANTICA DA L

OGICA DE 1
A

ORDEM 65
se, para todo o n N
A |=
s
1
[n/y]
(S(y) R(y)) (2.18)
Por (v) da deni cao de |=
s
, (2.18) e verdade se A |=
s
1
[n/y]
S(y) ou A |=
s
1
[n/y]
R(y)
A |=
s
1
[n/y]
S(y) (2.19)
se
s
1
[n/y](y) S
A
(2.20)
isto e se n e par.
Analogamente A |=
s
1
[n/y]
R(y), se n e mpar. Entao, (2.17) e verdade se
Para todo o n N, n e par ou n e mpar
o que e Verdade. Nota que e importante a disjun cao estar no ambito do quanticador e
n ao o contr ario: e falso que para todo n N, n e par ou para todo n N, n e mpar.
Finalmente, temos que (2.13) e Verdade.
Exerccio 2.3. Seja L uma linguagem de primeira ordem com igualdade e tal que F
0
= {a},
F
1
= {g}, R
1
= {R} e R
2
= {P, Q}. Seja A a estrutura de L denida por:
o universo de A e o conjunto de n umeros naturais N = {0, 1, . . .};
a
A
= 2;
g
A
(n) = n + 1, para n N;
R
A
= {n N| n e par};
P
A
= {(n, m) N
2
| n m};
Q
A
= .
Para cada uma das proposi c ao indica se e verdadeira ou falsa em A.
1. xg(x) = a xg(x) = x
2. xyQ(x, y)
3. R(a) xy Q(x, y)
4. x(R(x) xR(g(g(x))) )
5. xyP(x, y)
6. yxP(x, y)
7. yxP(y, x)
Departamento de Ciencia de Computadores F.C.U.P.
2.2. SEM

ANTICA DA L

OGICA DE 1
A

ORDEM 66
8. x(R(x) y(y = g(x) R(y))

Exerccio 2.4. Seja L a mesma linguagem do exerccio 2.3. Para cada uma das proposi c ao
seguintes indique uma estrutura de L onde ela e verdadeira e outra onde ela e falsa. Pode
concluir que nenhuma das proposi c ao e tambem nenhuma negac ao de uma das proposi c ao e
uma f ormula v alida?
1. xy x = y
2. xyP(x, y) yxP(x, y)
3. xx = a
4. xy(R(x) R(y))
5. z(g(z) = a) z(g(z) = a)
6. xQ(x, g(x)) xP(a, x)
7. y(x(R(x) P(x, x)) (R(y) xP(x, x)))

Uma proposi cao pode ser vista como uma caracteriza cao de um conjunto de modelos (que a
satisfazem).
Estruturas para a teoria dos grafos Vamos ilustrar isso considerando que as estruturas
s ao grafos dirigidos e considerar proposi coes que caracterizam propriedades desses grafos.
Seja L
G
uma linguagem de 1
a

ordem com igualdade, sem smbolos funcionais e apenas com


um smbolo relacional bin ario R
2
= {G}. Algumas formulas s ao: G(x, x), xy G(y, x),
xy(G(x, y) G(y, x))
Qualquer estrutura G para L
G
e um grafo (dirigido)!
Seja
1
a formula xyG(x, y) xyz((G(x, y) G(x, z)) y = z)
Considera a seguinte estrutura G
1
:

//

@A GFED

//

OO

oo

OO
Tem-se que G
1
|=
1
. E que outros grafos satisfazem
1
? Os que cada n o tem exactamente
grau de partida 1 (isto e representam fun coes).
Departamento de Ciencia de Computadores F.C.U.P.
2.2. SEM

ANTICA DA L

OGICA DE 1
A

ORDEM 67
Exerccio 2.5. Descreve os grafos que s ao os modelos de cada uma das seguintes f ormulas:
1. xy(G(x, y) G(y, x)))
2. xyz((G(x, z) G(z, y)) G(x, y))

Inversamente, dado um grafo G podemos estar interessados em saber se ele tem uma dada
propriedade. Se essa propriedade for expressa por uma formula de L
G
(n ao necessariamente
uma proposi cao) entao o que queremos e saber se G |= .
Exerccio 2.6. Mostra que dado de L
G
e G de domnio nito, existe um algoritmo que
determina se G |= .
Resolu cao 2.6
Por indu cao na estrutura de .
Estruturas para automatos nitos Seja L
A
uma linguagem de 1
a

ordem com igual-


dade e R
1
= {I, F}, R
2
= {R
a
, R
b
}. Uma estrutura A para L
A
e um aut omato nito n ao
determinstico sobre {a, b} se e s o se |I
A
| = 1.
Exemplo 2.8. a) Dene uma proposi c ao de L
A
tal que uma estrutura A de L
A
e um
modelo de se e s o se A e um aut omato nito determinstico.
Basta considerar a f ormula:
xyy
1
(((R
a
(x, y) R
a
(x, y
1
)) y = y
1
) ((R
b
(x, y) R
b
(x, y
1
)) y = y
1
))
b) Indica, justicando, duas estruturas de L
A
, A
1
e A
2
tal que A
1
|= e A
2
|= .
Seja a estrutura A
1
de L
A
:
o universo e Q = {q
0
, q
1
}
I
A
1
= {q
0
}
F
A
1
= {q
1
}
R
A
1
a
= {(q
0
, q
0
)}
R
A
1
b
= {(q
0
, q
1
), (q
1
, q
1
)}
Verica que A
1
|= .
Considera agora A
2
de L
A
igual a A
1
, excepto que R
A
1
a
= {(q
0
, q
0
), (q
0
, q
1
)}.
Verica que A
2
|= .
Departamento de Ciencia de Computadores F.C.U.P.
2.2. SEM

ANTICA DA L

OGICA DE 1
A

ORDEM 68
Exerccio 2.7. a) Dene uma proposi c ao de L
A
tal que uma estrutura A de L
A
e um
modelo de se e s o se A e um aut omato nito que reconhece alguma palavra de = {a, b}
de comprimento 2.
b) Indica, justicando, duas estruturas de L
A
, A
1
e A
2
tal que A
1
|= e A
2
|=

2.2.1.2 Validade e satisfazibilidade


Proposi cao 2.3. Seja uma f ormula duma linguagem de 1
a

ordem L.
1. e v alida se e s o se n ao e satisfazvel
2. e satisfazvel se e s o se n ao e v alida
3. e v alida se e s o se x e v alida
4. e satisfazvel se e s o se x e satisfazvel
Demonstra c ao. Consequencia directa das deni coes.
Seja uma formula duma linguagem de 1
a

ordem L. Uma formula de L e valida se a


correspondente forma booleana e uma tautologia.
Deni cao 2.9. Dada uma f ormula o conjunto das suas sub-f ormulas principais, SP() e
denido indutivamente na estrutura de por:
se e uma f ormula at omica, SP() = {}
se e x, SP() = {}
se e x, SP() = {x}
se e , SP() = SP()
se e
1

2
, onde pode ser , ou , SP() = SP(
1
) SP(
2
)
Sendo a formula xP(x, y) xP(x, y) (P(z, x) xP(x, y))
SP() = {xP(x, y), xP(x, y), P(z, x)}
Deni cao 2.10. Associando a cada sub-f ormula principal duma f ormula , uma vari avel
proposicional diferente e negando a f ormula correspondente a um quanticador existencial,
obtemos a forma booleana de .
Para o exemplo anterior,
Departamento de Ciencia de Computadores F.C.U.P.
2.2. SEM

ANTICA DA L

OGICA DE 1
A

ORDEM 69
p
1
p
2
(p
3
p
1
)
onde p
1
= xP(x, y), p
2
= xP(x, y) e p
3
= P(z, x)
Proposi cao 2.4. Se a forma booleana duma f ormula e uma tautologia, ent ao e v alida.
Demonstra c ao. Seja A uma estrutura de L e s uma interpreta cao . Para cada SP(), se
A |=
s
atribui-se `a correspondente vari avel proposicional o valor V, se A |=
s
, atribui-se
o valor F. Como a forma booleana e satisfeita para essa valoriza cao, tambem se tem que
A |=
s
.
2.2.2 Equivalencia semantica
Deni cao 2.11. Sejam e duas f ormulas duma linguagem de 1
a

ordem L. Se |= e
|= ent ao e s ao semanticamente equivalentes e escreve-se .
As Leis de DeMorgan para quanticadores s ao formulas semanticamente equivalentes s ao as
Proposi cao 2.5. (Leis de DeMorgan)
x x
x x
Demonstra c ao. Suponhamos que para toda a estrutura A, e interpreta cao s se tem A |=
s
x. Isto equivale a dizer que A |=
s
x, isto e, n ao se verica que para todo o a A,
A |=
s[a/x]
. Isto e, existe pelo menos um a A tal que A |=
s[a/x]
, i.e, A |=
s[a/x]
, que
e a deni cao de A |=
s
x. O que prova a primeira equivalencia (dado termos usado s o as
deni coes). Analogamente se prova a segunda lei de DeMorgan.
Temos tambem:
Proposi cao 2.6.
x( ) x x (mas n ao com )
x x x( ) (mas n ao com )
xy yx
xy yx
Se x n ao ocorre livre em
Departamento de Ciencia de Computadores F.C.U.P.
2.2. SEM

ANTICA DA L

OGICA DE 1
A

ORDEM 70
x( ) x
x( ) x
x( ) x
x( ) x
x( ) x
x( ) x
x( ) x
x( ) x
Exerccio 2.8. Mostra as equivalencias anteriores.
2.2.3 Substituicao de variaveis
Seja uma formula duma linguagem de 1
a

ordem L, t um termo de L e x V ar uma


vari avel. Denota-se por [t/x] (ou
t
x
) a formula que se obtem de substituindo todas as
ocorrencias livres de x em por t.
Seja a formula x(P(x) Q(x)) (P(x) Q(y)).
[f(x, y)/x] e a formula x(P(x) Q(x)) (P(f(x, y)) Q(y))
E se for y(P(x) Q(y)), qual a formula [f(x, y)/x]? Fica
y(P(f(x, y)) Q(y))
mas aqui a vari avel y do termo f(x, y) passou a estar ligada!
Para evitar isto, dene-se que:
Deni cao 2.12 (Vari avel substituvel). Uma vari avel x e substituvel por t em se nenhuma
ocorrencia livre de x em for numa sub-f ormula y ou y, para qualquer vari avel y que
ocorra em t. Tambem se pode dizer que t e livre para x em .
Exerccio 2.9. Seja a f ormula x(P(y, z) y(Q(x, y) P(y, z)))
Determina:
1. [w/x], [w/y], [f(x)/y] e [g(y, z)/z]
2. Para quais dos termos w, f(x) e g(y, z) e x substituvel em ? e y?

Proposi cao 2.7. 1. Se x e substituvel por t em , s ao v alidas as f ormulas:


Departamento de Ciencia de Computadores F.C.U.P.
2.2. SEM

ANTICA DA L

OGICA DE 1
A

ORDEM 71
a) x [t/x]
b) [t/x] x
2. Se y n ao ocorre em , ent ao x y[y/x]
Demonstra c ao. Vamos apenas considerar 2.71a. Seja A uma estrutura e s uma interpreta cao.
Temos que mostrar que se A |=
s
x entao A |= [t/x]. Para todo o a A, temos A |=
s[a/x]
.
Seja a

= s(t), e como t e livre para x em sabemos que esse ser a o valor da interpreta cao
de todas as ocorrencias de t em [t/x]. Mas entao temos tambem A |=
s
[t/x].
Exerccio 2.10. Termina a demonstra a Proposi c ao 2.7.
2.2.4 Forma normal prenexa
Uma formula duma linguagem de 1
a

ordem L est a em forma normal prenexa se ou:


n ao contem quanticadores
e da forma
Q
1
x
1
Q
2
x
2
. . . Q
n
x
n

onde cada Q
i
e ou ou , 1 i n, e e uma formula sem quanticadores.
Por exemplo,
xyz((P(x, x) (P(x, y) P(z, z))) P(w, 0))
Proposi cao 2.8. Qualquer f ormula duma linguagem de 1
a

ordem e semanticamente equi-


valente a uma f ormula em forma normal prenexa.
Demonstra c ao. Ideia:
Transformar de modo a que:
s o ocorram as conectivas , e
nenhuma vari avel ocorra livre e ligada
uma mesma vari avel s o aparece quanticada no m aximo uma vez.
Seja
1
a formula resultante, que e semanticamente equivalente a (mostra!). Aplicar `as
sub-f ormulas de
1
, as seguintes transforma coes, ate que nenhuma se aplique (onde e
ou ):
x x
x x
x x( )
x x( )
x x( )
x x( )
Departamento de Ciencia de Computadores F.C.U.P.
2.3. SISTEMA DE DEDUC

AO NATURAL PARA A L

OGICA DE 1
A

ORDEM 72
Por indu cao no n umero de quanticadores que est ao no ambito de conectivas
1
mostra-se
que a formula resultante est a em forma normal prenexa e e semanticamente equivalente a
.
Exerccio 2.11. Obtem uma forma normal prenexa para
x(P(x, x) (yP(x, y) yP(y, y))) G(w, 0)

Resolu cao 2.11


1. Substituir as vari aveis ligadas por vari aveis novas (Prop.2.7:2)
x(P(x, x) (yP(x, y) zP(z, z))) G(w, 0)
2. Mover x para fora:
x((P(x, x) (yP(x, y) zP(z, z))) G(w, 0))
3. Mover y para fora:
xy((P(x, x) (P(x, y) zP(z, z))) G(w, 0))
4. Mover z para fora:
xyz((P(x, x) (P(x, y) P(z, z))) G(w, 0))
Leituras suplementares [BE00] (Cap. 10,11)
2.3 Sistema de dedu cao natural para a logica de 1
a

ordem
As regras para as conectivas s ao as mesmas que para a logica proposicional.
Haver a novas regras de introdu cao e elimina cao para:
a igualdade (=)
para os quanticadores a introdu cao correspondera a uma generaliza cao e a elimina cao
uma instancia cao:
(-E) de xP(x) deduzir P(t)
(-I) pode-se deduzir xP(x) se para qualquer y se deduzir P(y)
(-I) de P(t) deduzir xP(x)
(-E) se se deduziu xP(x) podemos supor P(t)
Departamento de Ciencia de Computadores F.C.U.P.
2.3. SISTEMA DE DEDUC

AO NATURAL PARA A L

OGICA DE 1
A

ORDEM 73
2.3.1 Regras de inferencia DN:igualdade
Introdu cao de =
t = t
=I
Podemos deduzir sempre que um termo t e igual a si pr oprio...a igualdade e reexiva
Elimina cao de =
t
1
= t
2
[t
1
/x]
[t
2
/x]
=E e x e substituvel por t
1
e por t
2
em
Se t
1
e igual a t
2
podemos substituir em , t
1
por t
2
.
Exerccio 2.12. Mostra que t
1
= t
2
t
2
= t
1
e t
1
= t
2
, t
2
= t
3
t
1
= t
3
, i.e. , que s ao
deduzveis as propriedades de simetria e transitividade de =.
Resolu cao 2.12
1 t
1
= t
2
2 t
1
= t
1
=I
3 t
2
= t
1
=E ( e x = t
1
), 1, 2
1 t
1
= t
2
2 t
2
= t
3
3 t
1
= t
3
=E ( e t
1
= x), 2, 2
2.3.2 Regras de inferencia DN:quanticador universal
Elimina cao de
x
[t/x]
E onde x e substituvel por t em
Se se deduziu x podemos substituir x em por qualquer termo t (instanciar o x com
qualquer valor).
Introdu cao de
[v]
.
.
.
[v/x]
x
I onde v e uma variavel nova (nao ocorre antes)
Departamento de Ciencia de Computadores F.C.U.P.
2.3. SISTEMA DE DEDUC

AO NATURAL PARA A L

OGICA DE 1
A

ORDEM 74
Se supondo uma vari avel nova y podemos deduzir [y/x], entao podemos deduzir com
qualquer valor (generaliza cao). Para supor y temos de come car uma nova sub-dedu cao mas
sem novas premissas. Na nota cao de Fitch isso e indicando com uma nova identa cao. Esta
sub-dedu cao termina quando conclumos a regra.
Exerccio 2.13. Mostrar que
x(P(x) Q(x)), xP(x) xQ(x)

Resolu cao 2.13


1 x(P(x) Q(x))
2 xP(x)
3 v P(v) Q(v) E, 1
4 P(v) E, 2
5 Q(v) E, 3, 4
6 xQ(x) I, 35
Exerccio 2.14. Mostrar que
P(t), x(P(x) Q(x)) Q(t)

Resolu cao 2.14


1 P(t)
2 x(P(x) Q(x))
3 P(t) Q(t) E, 2
4 Q(t) E, 3, 1
2.3.3 Regras de inferencia DN:quanticador existencial
Introdu cao de
[t/x]
x
I onde x e substituvel por t em
Podemos deduzir x se ja tivermos deduzido [t/x] para algum termo t.
Departamento de Ciencia de Computadores F.C.U.P.
2.3. SISTEMA DE DEDUC

AO NATURAL PARA A L

OGICA DE 1
A

ORDEM 75
Elimina cao de
x
[v [v/x]]
.
.
.

E
onde v e uma variavel nova que n ao ocorre antes nem
em
Se deduzimos x, entao existe um valor em que se verica. Assim, supondo que v repre-
senta esse valor e se supondo [v/x] se deduzir onde v n ao ocorra, podemos deduzir (para
um valor generico). Neste caso temos entao uma nova sub-dedu cao em que e considerada uma
nova vari avel (v) e onde existe uma premissa nova ([v/x]).
Exerccio 2.15. Mostrar que:
a) x x
x (P(x) Q(x)), x P(x) x Q(x)

Resolu cao 2.15


a)
1 x
2 [t/x] E, 1
3 x I, 2
b)
1 x (P(x) Q(x))
2 x P(x)
3 v P(v)
4 P(v) Q(v) E, 1
5 Q(v) E, 4, 3
6 x Q(x) I, 5
7 x Q(x) E, 36
Como no caso das regras de introdu cao e elimina cao de conectivas, tambem aqui se tem de ter
em conta o ambito das sub-dedu coes e em especial as vari aveis (livres) s o podem ser usadas
nas sub-dedu coes em que s ao supostas ou ocorrem em premissas dadas.
Por exemplo, a seguinte e uma dedu cao est a errada:
Departamento de Ciencia de Computadores F.C.U.P.
2.3. SISTEMA DE DEDUC

AO NATURAL PARA A L

OGICA DE 1
A

ORDEM 76
1 x (P(x) Q(x))
2 x P(x)
3 v P(v)
4 P(v) Q(v) E, 1
5 Q(v) E, 4, 3
6 Q(v) I, 35
7 x Q(x) E, 6
Na formula da linha 6, ocorre uma vari avel que s o devia ocorrer na sub-dedu cao iniciada na
linha 3!
Exerccio 2.16. Mostrar que
x(Q(x) R(x)), x (P(x) Q(x)) x(P(x) R(x))

Resolu cao 2.16


1 x(Q(x) R(x))
2 (P(x) Q(x))
3 v P(v) Q(v)
4 Q(v) R(v) E, 1
5 Q(v) E, 3
6 R(v) E, 4
7 P(v) E, 3
8 P(v) R(v) I, 7, 6
9 x (P(x) R(x)) I, 8
10 x (P(x) R(x)) E, 2, 39
Exerccio 2.17. Mostrar que
x P(x), xy (P(x) Q(y)) y Q(y)

Resolu cao 2.17


Departamento de Ciencia de Computadores F.C.U.P.
2.4. EQUIVAL

ENCIA DEDUTIVA 77
1 x P(x)
2 xy (P(x) Q(y))
3 v u P(u)
4 y (P(u) Q(y) E, 2
5 (P(u) Q(v) E, 4
6 Q(v) E, 5, 3
7 Q(v) E, 1, 36
8 y Q(y) I, 37
Todas as regras do sistema DN para a logica de primeira ordem encontram-se na Figura 2.1
2.4 Equivalencia dedutiva
Dadas duas formulas e dizemos que s ao dedutivamente equivalentes se e s o se e
. E denotamos por .
Proposi cao 2.9. Sejam e dumas f ormulas duma linguagem da l ogica de 1
a

ordem.
Ent ao:
1. x x
2. x x
3. x x x( )
4. x x x( )
5. Se x n ao ocorre livre em , e e ou :
(a) x x( )
(b) x x( )
Departamento de Ciencia de Computadores F.C.U.P.
2.4. EQUIVAL

ENCIA DEDUTIVA 78
Introdu cao Elimina cao

E
1

E
2



I
1


I
2

[] []
.
.
.
.
.
.

[]
.
.
.
F

E
F

.
.
.

F
FI()
F

FE

[]
.
.
.

E
=
t=t
=I
t
1
=t
2
[t
1
/x]
[t
2
/x]
=E
e x e substituvel
por t
1
e por t
2
em

[v]
.
.
.
[v/x]
x
I
onde v e uma
variavel nova (nao
ocorre antes)
x
[t/x]
E
onde x e subs-
tituvel por t em

[t/x]
x
I
onde x e subs-
tituvel por t em

x
[v [v/x]]
.
.
.

E
onde v e uma
variavel nova que
n ao ocorre antes,
nem em
R

R
Figura 2.1: As regras do sistema DN para a logica de primeira ordem
Departamento de Ciencia de Computadores F.C.U.P.
2.4. EQUIVAL

ENCIA DEDUTIVA 79
Demonstra c ao. x x Por redu cao ao absurdo:
1 x
2 x
3 u [u/x]
4 x I, 3
5 F FI, 4, 2
6 [u/x] RA, 35
7 x I, 36
8 F FI, 7, 1
9 x RA, 28
x x
1 x
2 x
3 u [u/x]
4 [u/x] E, 2
5 F FI, 3, 4
6 F E, 1, 25
7 x I, 26
x x( ) e x n ao ocorre livre em
1 x
2 x E, 1
3 E, 1
4 v [v/x] E, 2
5 [v/x] I, 3, 4
6 ( )[v/x] R, 5
7 x( ) I, 46
Departamento de Ciencia de Computadores F.C.U.P.
2.4. EQUIVAL

ENCIA DEDUTIVA 80
x( ) x e x n ao ocorre livre em
1 x( )
2 v ( )[v/x] E, 1
3 [v/x] R, 2
4 E, 3
5 [v/x] E, 3
6 x I, 25
7 (x) I, 4, 6
(x) (x) x( )
1 (x) (x)
2 x
3 v [v/x]
4 [v/x] [v/x] I, 3
5 ( )[v/x] identico, 4
6 x( ) I, 5
7 x( ) E, 2, 35
8 x
9 v [v/x]
10 [v/x] [v/x] I, 9
11 ( )[v/x] identico, 10
12 x( ) I, 11
13 x( ) E, 8, 912
14 x( ) E, 1, 27, 813
Departamento de Ciencia de Computadores F.C.U.P.
2.4. EQUIVAL

ENCIA DEDUTIVA 81
1 x( )
2 v ( )[v/x]
3 [v/x] [v/x] identico, 2
4 [v/x]
5 x I, 4
6 x x I, 5
7 [v/x]
8 x I, 7
9 x x I, 8
10 x x E, 3, 46, 79
11 x x E, 1, 210
Exerccio 2.18. Mostra que:
a) x( ) (x x)
b) x( ) (x x)
c) xP(x), xy(P(x) P(y)) x = y) !xP(x)
onde !xP(x) representa x(P(x) y(P(y) y = x)) e diz-se existe um unico x tal
que P(x)
d) xyx = y f(x) = f(y)
e) x = f(y) (zP(x, z) P(f(y), z))

Resolu cao 2.18


a) x( ) (x x)
Departamento de Ciencia de Computadores F.C.U.P.
2.4. EQUIVAL

ENCIA DEDUTIVA 82
1 x( )
2 x
3 u [u/x]
4 ( )[u/x] E, 1
5 [u/x] [u/x] R, 4
6 [u/x] E, 3, 5
7 x I, 6
8 x E, 2, 37
9 x x I, 28
b) x( ) (x x)
1 x( )
2 x
3 u [u/x] E, 2
4 ( )[u/x] E, 1
5 [u/x] [u/x] R, 4
6 [u/x] E, 3, 5
7 x I, 46
8 x x I, 28
c) xP(x), xy(P(x) P(y) x = y) x(P(x) y(P(y) y = x))
Departamento de Ciencia de Computadores F.C.U.P.
2.4. EQUIVAL

ENCIA DEDUTIVA 83
1 xP(x)
2 xy(P(x) P(y) x = y)
3 u P(u)
4 v P(v)
5 P(v) P(u) I, 3, 4
6 y((P(v) P(y) v = y) E, 2
7 (P(v) P(u)) v = u) E, 6
8 v = u E, 5, 7
9 P(v) v = u I, 48
10 y(P(y) y = u) I, 48
11 P(u) y(P(y) y = u) I, 3, 10
12 x(P(x) y(P(y) y = x)) I, 11
13 x(P(x) y(P(y) y = x)) E, 1, 212
d) xy x = y f(x) = f(y)
1 u v u = v
2 f(u) = f(u) =I
3 f(u) = f(v) =E ( e f(u) = f(x)), 1, 3
4 u = v f(u) = f(v) I, 1, 3
5 y u = y f(u) = f(y) E, 14
6 xy x = y f(x) = f(y) E, 15
e) x = f(y) (zP(x, z) P(f(y), z))
1 x = f(y)
2 u P(x, u)
3 P(f(y), u) =E, 1, 2
4 P(x, u) P(f(y), u) I, 23
5 z(P(x, z) P(f(y), z)) I, 24
6 x = f(y) z(P(x, z) P(f(y), z)) I, 15
Leituras suplementares [BE00] (Cap. 2.3,12,13)
Departamento de Ciencia de Computadores F.C.U.P.
2.5. INTEGRIDADE E COMPLETUDE 84
2.5 Integridade e completude
Vamos ver que o sistema dedutivo DN para a logica de 1
a

ordem e integro e completo,


i.e:
Dado um conjunto de formulas (premissas) e uma formula (conclusao):
Integridade se existe uma dedu cao de com premissas , , entao e consequencia
sem antica de , |= . Em particular se (teorema), entao e valida, |= .
Completude Se e consequencia sem antica de , |= , entao existe uma dedu cao de
com premissas , . Em particular se |= entao e um teorema, .
2.5.1 Integridade do sistema dedutivo DN
Proposi cao 2.10. Se ent ao |=
Demonstra c ao. Dada uma dedu cao de com premissas de (onde, podem n ao ser usadas
todas as formulas), vamos mostrar que em cada passo p a formula que a ocorre e consequencia
sem antica das premissas (ou hip oteses) que a s ao assumidas. Entao em particular, sendo
o ultimo passo, ser a consequencia sem antica das suas premissas (ou seja ). Provamos por
indu cao no n umero de passos da dedu cao:
Base. Se s o houver um passo de dedu cao entao e uma das premissas ou uma formula
da forma t = t. Em ambos os casos e facil ver que s ao consequencias semanticas das
premissas (mostra!)
Indu c ao. Suponhamos que estamos no passo n e que todos os anteriores vericam a condi cao.
Fazemos uma demonstra cao por casos considerando cada uma das regras. Suponhamos
que a regra a aplicar e a elimina cao da implica cao:
E

: Seja a formula deduzida no passo n por aplica cao de E a e .


E sejam
1
, . . . ,
k
as premissas assumidas em . Mas as premissas para
e est ao entre os
1
, . . . ,
k
e ambos s ao consequencia sem anticas
delas:
Departamento de Ciencia de Computadores F.C.U.P.
2.5. INTEGRIDADE E COMPLETUDE 85
1
1
.
.
.
.
.
.
i
.
.
.
.
.
.

2
.
.
.
.
.
.
l
.
.
.
.
.
.

3
.
.
.
.
.
.
n
.
.
.
.
.
.
Vamos ver que e consequencia sem antica de
1
, . . . ,
k
. Seja A uma estrutura e s uma
interpreta cao tal que A |=
s

i
, 1 i k. Entao, tambem A |=
s
e A |=
s
. Mas
entao, pela deni cao (vi) de |=
s
, tem-se que A |=
s
. E entao {
1
, . . . ,
k
} |= .
Vejamos agora o caso da regra da elimina cao do quanticador existencial:
x
[v [v/x]]
.
.
.

E:
Seja a formula deduzida no passo n por aplica cao de E a x e a uma
sub-dedu cao que contem . E sejam
1
, . . . ,
k
as premissas assumidas
no passo n, em . Por hip otese de indu cao no passo i, x e consequencia
sem antica de premissas que s ao um subconjunto de
1
, . . . ,
k
e no passo
m, e consequencia sem antica de premissas que s ao um subconjunto de

1
, . . . ,
k
, mais a premissa [v/x].
Departamento de Ciencia de Computadores F.C.U.P.
2.5. INTEGRIDADE E COMPLETUDE 86
.
.
.
.
.
.
i x
.
.
.
.
.
.
v [v/x]
.
.
.
.
.
.
m
.
.
.
.
.
.
.
.
.
.
.
.
n
Vamos ver que e consequencia sem antica de
1
, . . . ,
k
. Seja A uma estrutura e s uma
interpreta cao tal que A |=
s

i
, 1 i k. E tambem A |=
s
x. Isto e, existe um b A
tal que A |=
s[b/x]
. Nota, ainda, que v n ao pode ocorrer em
1
, . . . ,
k
, x e . Seja
s

= s[b/v] e, claramente, A |=
s[b/v]
[v/x]. Mas tambem A |=
s

i
, 1 i k e, entao,
A |=
s
(porque?). E como v n ao ocorre em , entao A |=
s
.
O caso I e semelhante e os restantes mais simples.
Leituras suplementares [BE00] (Cap. 13,18.3)
2.5.2 Conjuntos consistentes e inconsistentes
Deni cao 2.13. Um conjunto de f ormulas diz-se consistente se e s o se n ao existe nenhuma
deduc ao de F, caso contr ario diz-se inconsistente.
Nota que se e inconsistente, para qualquer formula .
Exerccio 2.19. Mostra que um conjunto e inconsistente se e s o se existe uma f ormula
tal que e .
Lema 2.1. Se {} e inconsistente se e s o se .
Demonstra c ao. () Por aplica cao da regra RA e () pela aplica cao da regra FI.
Lema 2.2. (da dedu c ao) {} se e s o se .
Demonstra c ao. Igual ao da logica proposicional.
Departamento de Ciencia de Computadores F.C.U.P.
2.5. INTEGRIDADE E COMPLETUDE 87
2.5.3 Completude do sistema dedutivo DN
Vamos considerar apenas o caso de L ser uma linguagem numeravel, isto e, em que o seu
alfabeto (de vari aveis, smbolos funcionais e de predicado) e numeravel (n ao necessariamente
nito).
Teorema 2.1. (Teorema da completude de G odel) Se |= ent ao , ou, equivalente-
mente, qualquer conjunto consistente de f ormulas e satisfazvel.
Come camos por mostrar a equivalencia entre essas duas arma coes:
(1 2) Se |= entao {} n ao e satisfazvel. Por 2, {} e inconsistente, logo
.
(1 2) Se {} e n ao satisfazvel, entao |= . Por 1, e entao {} e
inconsistente, mas entao tambem o e {}.
Iremos mostrar a segunda arma cao...
Temos que encontrar uma estrutura e interpreta cao que satisfa ca um qualquer conjunto con-
sistente..o que n ao parece tarefa facil. A demonstra cao a apresentar e baseada na de L. Henkin
(e n ao na de G odel...).
A ideia e construir uma estrutura cujo domnio seja o conjunto dos termos da linguagem L.
Mas a presen ca de quanticadores traz diculdades acrescidas. Por exemplo,
= {xP(x)} {P(t) : t e um termo deL}
e consistente mas n ao e possvel satisfaze-lo com um domnio s o com termos de L. E tambem
e necessario relacionar a satisfazibilidade de P(t) e a de xP(x) (o que n ao e possvel, p.e, s o
com a validade booleana das formulas...)
Assim iremos introduzir novas constantes em L, que ir ao servir para construir testemunhas
(de uma formula existencial) p.e.:
x P(x) P(c
P
)
E iremos alargar qualquer conjunto consistente de modo a conter todas as testemunhas ne-
cess arias e a continuar consistente...
Dizemos que um conjunto consistente de formulas de uma linguagem L e maximal se
para toda a formula de L se tem ou ou .
Lema 2.3. Para qualquer conjunto consistente de f ormulas existe um conjunto , da
linguagem alargada L

= L {c
0
, c
1
, . . .} onde c
i
s ao constantes novas e
1. e consistente e maximal em L

Departamento de Ciencia de Computadores F.C.U.P.


2.5. INTEGRIDADE E COMPLETUDE 88
2. Para qualquer f ormula de L

e qualquer vari avel x V ar existe uma constante c tal


x [c/x]
Demonstra c ao. (do lema 2.3)
e consistente em L

Suponhamos, por contradi cao que F (ou alternativamente uma


qualquer formula da forma ). Mas nessa dedu cao s o pode ocorrer um n umero
nito de constantes novas, c
1
, . . . c
k
. Entao podemos substituir cada uma dessas cons-
tantes por uma variavel nova, sejam y
1
, . . . , y
k
. A dedu cao resultante e uma dedu cao
de F a partir de em L. Absurdo! Porque e consistente em L.
Vamos construir tal que satisfaz 2 Como L

e numeravel, entao tambem o s ao


V ar e o conjunto das suas formulas. Podemos entao enumerar <
1
, x
1
>, <
2
, x
2
>,. . .
Seja
1
a formula x
1

1

1
[c
1
/x
1
], onde c
1
e uma constante nova que n ao ocorre em

1
. Para n > 1,
n
e x
n

n

n
[c
n
/x
n
], onde c
n
e uma constante nova que n ao ocorre
nem
n
nem em
1
. . .
n1
. Seja
= {
1
,
2
, . . .}
e consistente Suponhamos que n ao, entao existe m 0 tal que {
1
, . . . ,
m+1
}
e inconsistente e {
1
, . . . ,
m
} consistente. Mas, entao
{
1
, . . . ,
m
}
m+1
Como
m+1
e da forma x [c/x], entao tambem (mostra!)
{
1
, . . . ,
m
} x
{
1
, . . . ,
m
} [c/x]
mas como c n ao ocorre em {
1
, . . . ,
m
}, podemos substitu-lo por uma vari avel nova
e usando a regra I, conclumos tambem que
{
1
, . . . ,
m
} x
mas como x x, vem
{
1
, . . . ,
m
} x
Absurdo! porque {
1
, . . . ,
m
} e consistente.
Estendemos a um conjunto consistente maximal Seja
1
,
2
, . . . uma enu-
mera cao das formulas de L

e denimos
Departamento de Ciencia de Computadores F.C.U.P.
2.5. INTEGRIDADE E COMPLETUDE 89
=

n

n
onde

0
=

n+1
=
_

n
{
n+1
} se este conjunto e consistente

n
{
n+1
} caso contr ario
Mostra-se por indu cao sobre n que os
n
s ao consistentes (mostrar!). Logo tambem
e consistente e maximal.
Exerccio 2.20. Se e um conjunto consistente maximal e ent ao
Para um conjunto de formulas do lema anterior, vamos construir uma estrutura A

=
(A,
A

) e uma interpreta cao s

tal que
A

|=
s

, para todo
Considere-se o conjunto de termos T e seja a rela cao bin aria dada por
t
1
t
2
se e s o se t
1
= t
2

Pela deni cao de o fecho reexivo de e uma rela cao de equivalencia em T , que designamos
por

A estrutura A

e:
o domnio e o conjunto das classes de equivalencia de

para cada smbolo relacional R R


n
, n > 1:
R
A

= {([t
1
], . . . , [t
n
]) | R(t
1
, . . . , t
n
) }
para cada smbolo funcional f F
n
, n > 0 tem-se:
f
A

([t
1
], . . . , [t
n
]) = [f(t
1
, . . . , t
n
)]
para cada constante c:
c
A

= [c]
Para cada x V ar, s

(x) = [x]
Departamento de Ciencia de Computadores F.C.U.P.
2.5. INTEGRIDADE E COMPLETUDE 90
Lema 2.4. Para qualquer termo t T , tem-se que s

(t) = [t]
Demonstra c ao. Por indu cao sobre t.
Base. Para as vari aveis e constantes por deni cao de s

.
Indu c ao. Se f F
n
e t
1
, . . . , t
n
T ,
s

(f(t
1
, . . . , t
n
)) = f
A

(s

(t
1
), . . . , s

(t
n
))
= f
A

([t
1
], . . . , [t
n
])
= [f(t
1
, . . . , t
n
)]
Lema 2.5. Seja um conjunto de f ormulas nas condi c oes do lema 2.3. Ent ao
A

|=
s

se e s o se
Demonstra c ao. Por indu cao sobre .
Base. e atomica. Se e t
1
= t
2
, entao A

|=
s

t
1
= t
2
sse s

(t
1
) = s

(t
2
) sse
[t
1
] = [t
2
] , i.e, t
1
= t
2
. Se e R(t
1
, . . . , t
n
) entao A

|=
s

R(t
1
, . . . , t
n
) sse
(s

(t
1
), . . . , s

(t
n
)) R
A

i.e ([t
1
], . . . , [t
n
]) R
A

ou R(t
1
, . . . , t
n
) .
Indu c ao. Se e e , entao A

|=
s

sse A

|=
s

, e por hip otese de indu cao / ,


logo por ser consistente maximal, . Se e
1

2
entao,A

|=
s


1

2
sse A

|=
s


i
pelo menos para um i, e por hip otese de indu cao
i
, mas entao por
ser consistente maximal,
1

2
. Analogamente para e
1

2
. Se e
entao, A

|=
s

sse A

|=
s

ou A

|=
s

, e por hip otese de indu cao


ou / ou ,mas entao por ser consistente maximal, . Se e x,
tem-se que x [c/x] , para algum c. Logo
x / sse x
sse [c/x]
sse [c/x] /
sse A

|=
s

[c/x]
donde A

|=
s

x
Departamento de Ciencia de Computadores F.C.U.P.
2.5. INTEGRIDADE E COMPLETUDE 91
Reciprocamente, se A

|=
s

x, existe t tal que A

|=
s

[[t]/x]
. Existe equivalente
a e onde x e substituvel por t em , logo A

|=
s

[[t]/x]
e A

|=
s

[t/x]. Por
hip otese de indu cao, [t/x] / e portanto x / . E como e s ao equivalentes e
maximal, x / . Analogamente se e x.
Demonstra c ao. (Teorema da completude 2.1) Mostrar que dado um conjunto consistente
ele e satisfazvel. Estendemos nas condi coes do lema 2.3 para L

e sejam A

e s

a estrutura e a interpreta cao que satisfazem em L

, pelo lema 2.5. A restri cao A

de A

a L satisfaz .
2.5.4 Consequencias da completude e integridade
Corolario 2.2. (Teorema da compacidade)
1. |= se e s o se existe um subconjunto nito
0
tal que
0
|= .
2. Um conjunto de f ormulas duma linguagem de 1
a

ordem e satisfazvel se e s o se todo o


seu subconjunto nito o for.
Demonstra c ao. As duas arma coes s ao equivalentes (verica!), portanto basta demonstrar a
primeira. Se |= entao . Como qualquer dedu cao s o utiliza um n umero nito de
premissas (hip oteses), existe
0
nito tal que
0
ou seja
0
|= .
Vamos ver uma aplica cao deste teorema que mostra as limita coes da expressividade da logica
de primeira ordem. Em particular, que n ao existe um conjunto de formulas que caracterize
na estrutura dos n umeros naturais.
Exemplo 2.9. Modelos n ao standard para a aritmetica
Seja L
N
a linguagem de 1
a

ordem com igualdade para os n umeros naturais j a dada: F


0
=
{0, 1}, F
2
= {+, } e R
2
= {<}
Seja N = (N,
N
) uma estrutura de L
N
, onde
N
e denido por:
0
N
= 0, 1
N
= 1
+
N
(n, m) = n +m,
N
(n, m) = n m
<
N
= {(n, m) N
2
| n < m}
Podemos provar, por exemplo que, N |= x x < x + 1 (verica!)
A estrutura N e designada a estrutura standard de L
N
, pois L
N
foi construda para se poder
falar das propriedades dos n umeros naturais. Mas podemos escolher outras estruturas para
L
N
:
Departamento de Ciencia de Computadores F.C.U.P.
2.5. INTEGRIDADE E COMPLETUDE 92
Por exemplo, para p > 1, N
p
= ({0, . . . , p 1},
N
p
) com
0
Np
= 0, 1
Np
= 1
+
Np
(n, m) = (n +m) mod p

Np
= (n m) mod p
E, neste caso N
p
|= x x < x + 1(verica!)
Isto e, existe uma f ormula da l ogica de 1
a

ordem que permite distinguir a estrutura N da


N
p
. No entanto, usando o teorema da compacidade podemos demonstrar que nem sempre e
possvel distinguir por uma f ormula duas estruturas para a mesma linguagem.
Seja N

= (N {n + i | n N},
N

) a estrutura de L
N
, onde i =

1 e, por exemplo, para


o smbolo funcional + temos:
+
Np
(n, m) = (n +m)
+
Np
(n +i, m +i) = (n +m) +i
Vamos ver que N

n ao pode ser distinguido de N por uma proposi c ao de L


N
(ou doutra
linguagem de 1
a

ordem).
Corolario 2.3. Se e um conjunto de proposi c oes tal que N |= ent ao existe um modelo
N

tal que N

|= e o domnio de N e um subconjunto pr oprio de N

.
Demonstra c ao. Considera as proposi coes
n
dadas por
x((x = 0) (x = 1) . . . (x = n))
Entao o conjunto {
n
| n 0} e consistente. Porque se n ao o fosse, teria um subconjunto
nito que era inconsistente. Esse conjunto nito conteria um n umero nito dos
n
. Mas
obviamente N satisfaz e qualquer conjunto nito de
n
. Absurdo!
Portanto o conjunto {
n
| n 0} e consistente, logo e satisfazvel. Isto e, tem de existir
uma estrutura cujo domnio seja um superconjunto do de N e que seja um modelo desse
conjunto, p.e, N

.
Corolario 2.4. (Teorema de L owenheim-Skolem I) Se um conjunto de f ormulas e
satisfazvel por uma estrutura, ent ao e satisfazvel por uma estrutura com um domnio
numer avel.
Demonstra c ao. Porque o domnio da estrutura construda na demonstra c ao do teorema da
completude e numeravel.
Departamento de Ciencia de Computadores F.C.U.P.
2.5. INTEGRIDADE E COMPLETUDE 93
Sendo um modelo numeravel ele pode ser nito ou innito. Mas ser a que todas as proposi coes
tem um modelo numeravel innito?
Sejam, por exemplo, xyx = y ou xyz(z = x z = y).
Estas proposi coes n ao tem modelos innitos! A primeira n ao aceita modelos com domnios
de cardinalidade maior que 1, e a segunda maior que 2.
Corolario 2.5. (Teorema de L owenheim-Skolem II) Se uma proposi c ao tem um modelo
nito de cardinalidade arbitrariamente grande, ent ao tem um modelo innito.
Demonstra c ao. Seja a proposi cao
k
, para k > 1
x
1
. . . x
k
_
1ijk
x
i
= x
j

k
indica que existem pelo menos k objectos diferentes no domnio; n ao pode ser satisfeita
por uma estrutura com menos de k elementos e todas as estruturas com mais elementos a
satisfazem. Suponhamos, por contradi cao, que existe uma proposi cao que tem modelos
arbitrariamente grandes, mas nenhum modelo innito. Seja o conjunto
= {} {
k
| k N\ {0, 1}}
Se tem um modelo M, entao M n ao pode ser nito (seja k, entao
k+1
n ao era satisfeita),
e n ao pode ser innito (satisfaria ). Entao, n ao tem modelo.
Pela compacidade, existe um conjunto nito D que n ao tem modelo. D tem de conter
(sen ao haveria um modelo sucientemente grande que continha todos os
k
de D). Seja k o
maior inteiro tal que
k
D. Por hip otese, tem um modelo nito de cardinalidade maior
que k. Entao esse modelo satisfaz todas as proposi coes de D. Absurdo!
Este teorema permite ilustrar mais limita coes da expressividade da logica de 1
a

ordem. Em
particular, temos:
Corolario 2.6. N ao existe nenhuma f ormula (com duas vari aveis livres) tal que saber se
existe uma estrutura G da linguagem L
G
, tal que G |= equivale a determinar se:
Dado um grafo dirigido (nito) G e dois n os x e y de G, existe um caminho
de x para y.
Demonstra c ao. Suponhamos que existe uma tal formula . Seja
0
a formula xy. A
formula
0
indica que G e fortemente conexo. Seja ainda
1
a formula ( que corresponde a
todos os n os tem grau de sada 1)
xyG(x, y) xyz((G(x, y) G(x, z)) y = z)
e
2
a formula (que corresponde a todos os n os tem grau de entrada 1)
Departamento de Ciencia de Computadores F.C.U.P.
2.5. INTEGRIDADE E COMPLETUDE 94
xyG(y, x) xyz((G(y, x) G(z, x)) y = z)
E seja a proposi cao
0

1

2
. Os grafos que satisfazem dizem-se ciclos.









@
@
@
@
@
@
@

__@
@
@
@
@
@
@

??







Obviamente, existem ciclos nitos com n umero arbitrario de n os. Pelo teorema de L owenheim-
Skolem, tem um modelo innito, seja G

. Mas ciclos innitos (i.e com um n umero innito


de n os) n ao existem!: seja n
0
um n o de G

e consideremos todos os n os atingveis de n


0
.
Como e fortemente conexo esse conjunto inclu todos os n os do grafo. Mas como o grau de
entrada de n
0
e 1, existe um n o, seja n
j
tal que (n
j
, n
0
) e um arco de G

. Mas entao o ciclo


e nito. Absurdo!
Do mesmo modo, se uma linguagem da logica de 1
a

ordem tivesse um smbolo de predi-


cado que pretendesse signicar e antepassado de, entao n ao haveria nenhum conjunto de
proposi coes que capturasse este conceito pois existiria sempre um modelo que permitiria
antepassados innitamente distantes....
Teorema 2.2. (da compacidade da l ogica proposicional) Um conjunto de f ormulas
da l ogica proposicional e satisfazvel se e s o se todo o seu subconjunto nito o for.
Demonstra c ao. Seja L
Prop
uma linguagem de 1
a

ordem sem igualdade e um smbolo de


predicado un ario P, como unico smbolo n ao-logico. Seja A = {P(x
i
) | i N} o conjunto de
formulas atomicas de L
Prop
e seja : A V
Prop
tal que (P(x
i
)) = p
i
, i N. Podemos
estender a uma fun cao bijectiva entre o conjunto das formulas de L
Prop
sem quanticadores
e as formulas proposicionais, obtendo a forma booleana das primeiras formulas. Em particular,
um conjunto de formulas de L
Prop
sem quanticadores e satisfazvel se e s o se o conjunto
() das respectivas formas booleanas o for.
() Seja um conjunto de formulas proposicionais, tal que todo o subconjunto nito
0

e satisfazvel. Entao, todo o subconjunto nito de
1
() e satisfazvel. Pela compacidade,

1
() e satisfazvel. Mas entao tambem (
1
()) = e satisfazvel
() Trivial.
Exerccio 2.21. (Aplica c ao do teorema da compacidade)
Seja L uma linguagem de 1
a

ordem com igualdade.


Departamento de Ciencia de Computadores F.C.U.P.
2.6. AXIOMATIZAC

OES E TEORIAS 95
1. Para cada n 1, construir uma proposi c ao
n
de L tal que A |=
n
se e s o se o domnio
de A tem pelo menos n elementos.
Resolu cao
Para cada i,
i
e a f ormula
x
1
. . . x
n

1ijn
x
i
= x
j
2. Seja =
i1
{
i
}. Quanto e que uma estrutura de L e um modelo de ?
Resolu cao
Quando o seu domnio e innito (pelo menos numeravel)
3. Suponhamos que e uma proposi c ao tal que A e um modelo de se e s o se o domnio
de A e innito. Mostra que |= .
Resolu cao
Se A = (A,
A
) satisfaz ent ao A e um conjunto innito. Mas ent ao satisfaz .
4. Justica que n ao pode existir.
Resolu cao
Pela compacidade, |= se e s o se existe
0
nito tal que
0
|= . Seja n
0
o maior valor tal que
n
0

0
, ent ao qualquer estrutura A = (A,
A
), com |A| = n
0
satisfaz
0
. Logo,, A satisfaz . Absurdo!

Leituras suplementares [BE00] (Cap. 19)


2.6 Axiomatizacoes e teorias
Normalmente, para alem de formulas validas, estamos interessados na satisfazibilidade de
formulas numa dada estrutura (ou na sua validade numa dada estrutura). Mas para que
possamos ter um sistema dedutivo associado, interessa ter um conjunto de f ormulas que
sejam validas nessa estrutura e a partir das quais se possam obter todas as consequencias
sem anticas. Essas formulas s ao premissas nos sistemas dedutivos e s ao designadas de axiomas
n ao-l ogicos.
Para alem de valido numa dada estrutura A (e portanto consistente), um conjunto de axiomas
deve ser completo: se uma formula for valida em A entao e consequencia sem antica de
Departamento de Ciencia de Computadores F.C.U.P.
2.6. AXIOMATIZAC

OES E TEORIAS 96
. Dada a completude e integridade, isso equivale a que para toda a formula , ou ou
seja dedutvel de .
Exemplo 2.10. No Mundo dos Blocos, onde h a objectos geometricos de tres formas possveis
(cubos, tetraedros e dodecaedros), uma axiomatizac ao da no c ao de forma e dada por:
1. x(Cubo(x) Tetra(x))
2. x(Cubo(x) Dodec(x))
3. x(Dodec(x) Tetra(x))
4. x(Cubo(x) Dodec(x) Tetra(x))
5. xy((Cubo(x) Cubo(y)) MesmaF(x, y))
6. xy((Tetra(x) Tetra(y)) MesmaF(x, y))
7. xy((Dodec(x) Dodec(y)) MesmaF(x, y))
8. xy((Cubo(x) MesmaF(x, y)) Cubo(y))
9. xy((Tetra(x) MesmaF(x, y)) Tetra(y))
10. xy((Dodec(x) MesmaF(x, y)) Dodec(y))
As primeiras 3 proposi c oes indicam que um objecto n ao pode ter duas formas; a quarta que
cada objecto tem uma forma; e as restantes indicam que dois objectos tem a mesma forma se
e s o se s ao os dois cubos, tetraedros ou dodecaedros.
Exemplo 2.11. Teoria dos grupos Considera uma linguagem de 1
a

ordem (com =), com


um smbolo funcional bin ario e uma constante 1. A no c ao de Grupo da teoria dos grupos e
axiomatizada completamente pelos seguintes axiomas n ao-l ogicos (dos quais se podem deduzir
todas as propriedades de um grupo):
1. xyz (x y) z = x (y z)
2. x (x 1) = x
3. xy (x y) = 1
Exemplos de outras axiomatiza coes:
Axiomas da Geometria de Euclides
Axiomas de Zermello-Frankel para a teoria dos conjuntos
Axiomas de Peano para a teoria dos n umeros naturais
Departamento de Ciencia de Computadores F.C.U.P.
2.6. AXIOMATIZAC

OES E TEORIAS 97
2.6.1 Teoria ingenua dos conjuntos
Um conjunto e uma colec cao de elementos. Seja uma linguagem de 1
a

ordem com igualdade


que tem um smbolo relacional bin ario . Para distinguir entre conjuntos e elementos, usare-
mos vari aveis a, b, c, . . . para conjuntos e x, y, z, . . . para elementos. Consideremos entao os
seguintes axiomas:
Axioma da extensionalidade a b (x (x a x b) a = b)
Um conjunto e completamente determinado pelos seus elementos; assim, conjuntos com
os mesmos elementos s ao iguais.
(Esquema de) Axioma da compreensao ax(x a (x))
Cada propriedade determina um conjunto, ie, cada formula determina um conjunto: o
dos elementos que tem essa propriedade. A quantica cao sem vari aveis corresponde a
quanticar universalmente todas as vari aveis que ocorram em .
A partir destes axiomas, podem-se tambem denir (e deduzir) formulas correspondentes `a
rela cao , `as opera coes e , conjunto potencia, . . . . Por exemplo,
Inclusao x(x a x b), (a b)
Uniao abz((z a b) (z a z b)), (a b)
Intersec cao abz((z a b) (z a z b)), (a b)
Conjunto potencia bcx(x c x b), (P(b)) (para qualquer conjunto existe um
unico conjunto cujos elementos s ao os subconjuntos desse conjunto)
e tambem se podem deduzir propriedades destas opera coes.
Proposi cao 2.11. Para qualquer b, e falso que P(b) b.
Demonstra c ao. Pretende-se provar que, para qualquer b, P(b) b, isto e, que existe um
subconjunto de b que n ao pertence a b. Seja
c = {x | x b x x}
Pelo axioma da compreensao c e um conjunto e c b, logo c P(b). Vamos ver que c b.
Suponhamos que c b. Entao ou c c ou c c. Mas facilmente se ve que ambas as hip oteses
n ao se podem vericar.
Proposi cao 2.12. Existe um conjunto c, tal que P(c) c.
Departamento de Ciencia de Computadores F.C.U.P.
2.6. AXIOMATIZAC

OES E TEORIAS 98
Demonstra c ao. Pelo axioma da compreensao existe um conjunto (universal) que contem tudo:
c = {x | x = x}
Mas entao qualquer subconjunto de c e um elemento de c, portanto P(c) c.
Acabamos de ver que se podem deduzir as formulas b(P(b) b) e bP(b) b
Donde os axiomas s ao inconsistentes! (Logo n ao satisfazveis...)
Esta contradi cao est a relacionada com o paradoxo de Russell:
Z = {x | x / x} e considerar Z Z
Podemos entao concluir que o Axioma da compreensao n ao e valido: a propriedade n ao
pertencer a si pr oprio n ao determina nenhum conjunto.
2.6.2 Teoria de conjuntos de Zermelo-Frankel
Para evitar a inconsistencia da teoria ingenua dos conjuntos, os axiomas usualmente adop-
tados para a teoria dos conjuntos s ao os de Zermelo-Frankel. Mantem-se o axioma da ex-
tensionalidade mas o axioma da compreensao e substitudo por varios outros, que evitam a
possibilidade de referencia a conjuntos t ao grandes como o conjunto de todos os conjuntos.
Axioma da extensionalidade a b (x (x a x b) a = b
Axioma da separa cao abx (x b (x a (x)) Esta e a vers ao mais fraca do
Axioma da compreensao. S o se podem formar subconjuntos de conjuntos ja existentes.
Mas este axioma, embora torne a teoria consistente, e muito restritivo. Nem sequer
permite deduzir que a reuniao de dois conjuntos e um conjunto. Assim foi necessario
acrescentar mais axiomas.
Axioma dos pares uvax(x a (x = u x = v)) (para cada dois elementos existe
um conjunto a que os dois pertencem)
Axioma da uniao abx(x b c(c a x c))
Axioma da potencia bcx(x c x b) (conjunto potencia)
Axioma da innitude Existe o conjunto de todos os n umeros naturais.
Axioma da substitui cao Se a(x(x a (!y(x, y))) bx(x b t (t
a (t, x))))
Departamento de Ciencia de Computadores F.C.U.P.
2.6. AXIOMATIZAC

OES E TEORIAS 99
Axioma da regularidade z(z = y(y z x(x z x / y))) (nenhum conjunto
tem uma intersec cao n ao vazia com cada um dos seus elementos)
Axioma da escolha Se f e uma fun cao com um domnio a n ao vazio e para x a, f(x) e
um conjunto n ao vazio entao existe uma fun cao g de domnio a tal que para cada x a,
g(x) f(x). (g escolhe elementos de cada f(x))
2.6.3 Axiomas para a teoria dos n umeros (aritmetica)
Seja uma linguagem de 1
a

ordem com igualdade, F


0
= {0, 1} e F
2
= {+, }. Podemos omitir
o operador relacional uma vez que essa no cao se pode denir a partir da igualdade:
x y e zx +z = y
x < y e z(x +z = y z = 0)
J a vimos que a esta linguagem permite denir formulas que caracterizam propriedades dos
n umeros naturais, i.e, da estrutura N = (N, .
A
) onde as interpreta coes dos smbolos n ao-
logicos correspodem `as opera coes aritmeticas usuais.
Alguns desses conceitos podem-se exprimir pelas seguintes formulas:
Divisao inteira: x = q y +r r < y =
def
INTDIV (x, y, q, r)
y divide x: qINTDIV (x, y, q, 0) =
def
DIV (y, x)
2 : 1 + 1 =
def
2
x e par: DIV (2, x) =
def
Par(x)
x e mpar: Par(x) =
def
Impar(x)
x e primo: x < 2 y(DIV (y, x) (y = 1 y = x)) =
def
Primo(x)
x e potencia de 2: y((DIV (y, x) Primo(x)) y = 2) =
def
P(2, x)
y e 2
k
e o k-esimo bit de x e 1: P(2, y) qr(INTDIV (x, y, q, r) Impar(q)) =
def
BIT(x, y)
Os axiomas de Peano (PA) s ao factos b asicos dos n umeros naturais:
1. x(x + 1 = 0) (0 n ao e o sucessor de nenhum natural)
2. xy(x + 1 = y + 1 x = y) (o sucessor e injectivo)
3. 0 + 1 = 1
4. x x + 0 = x (0 e identidade para +)
Departamento de Ciencia de Computadores F.C.U.P.
2.6. AXIOMATIZAC

OES E TEORIAS 100
5. xy x + (y + 1) = (x +y) + 1 (+ e associativo)
6. x x 0 = 0 (0 e absorvente de )
7. xy x (y + 1) = (x y) +x (distributividade)
8. (princpio da indu cao) (Q(0) (x(Q(x) Q(x + 1)) xQ(x)

E facil de vericar que os axiomas de Peano s ao validos em N. Assim, pela integridade da


dedu cao natural, todas as proposi coes tal que PA , s ao validas em N.
Exerccio 2.22. Mostrar que os axiomas de Peano s ao v alidos em N.
Exerccio 2.23. Mostrar que PA x(x + 1 = 1 +x).
Resolu c ao 2.23
1 x(x + 1 = 0)
2 xy(x + 1 = y + 1 x = y)
3 0 + 1 = 1
4 x x + 0 = x
5 xy x + (y + 1) = (x +y) + 1
6 x x 0 = 0
7 xy x (y + 1) = (x y) +x
8 (Q(0) (x(Q(x) Q(x + 1)))) xQ(x)
9 1 + 0 = 1 E, 4
10 0 + 1 = 1 + 0 =I, 3, 9
11 u u + 1 = 1 +u
12 y 1 + (y + 1) = (1 +y) + 1 E, 7
13 1 + (u + 1) = (1 +u) + 1 E, 7, 12
14 1 +u = u + 1 = simetria, 11
15 1 + (u + 1) = (u + 1) + 1 =E, 14, 13
16 (u + 1) + 1 = 1 + (u + 1) = simetria, 15
17 u + 1 = 1 +u (u + 1) + 1 = 1 + (u + 1) I, 1116
18 x(x + 1 = 1 +x (x + 1) + 1 = 1 + (x + 1)) I, 1117
19 0 + 1 = 1 x(x + 1 = 1 +x (x + 1) + 1 = 1 + (x + 1)) I, 10, 18
20 x(x + 1 = 1 +x) E, 8, 19
Departamento de Ciencia de Computadores F.C.U.P.
2.7. OUTROS SISTEMAS DEDUTIVOS 101
2.6.4 Teorias da logica de 1
a

ordem
Apresentamos em seguida uma formaliza cao das no coes de axiomatiza cao e teoria.
Deni cao 2.14. Uma teoria T e um conjunto de proposi c oes de uma linguagem L. Uma
teoria duma linguagem L diz-se (formalmente) completa se para qualquer proposi c ao de L
ou ou e deduzvel de T .
Deni cao 2.15. (Teoria duma estrutura) Dada uma estrutura A duma linguagem L, o
conjunto de todas as proposi c oes v alidas em A denomina-se teoria da estrutura e denota-se
por Th(A).
Deni cao 2.16. (Axiomatiza c ao) Uma axiomatiza cao de uma estrutura A e um conjunto
de proposi c oes v alido em A, i.e, tal que A |= . Uma axiomatizac ao de A e completa se
para todo Th(A), |= (e tambem ).
Para a aritmetica, p.e, pretendia-se uma axiomatiza cao completa, isto e, em que fosse possvel
deduzir todas e s o as proposi coes que eram verdadeiras em N, isto e, na estrutura N = (N, .
A
).
J a vimos que a axiomatiza cao de Peano e ntegra.
Leituras suplementares [BE00] (Cap. 15,16.4)
2.7 Outros sistemas dedutivos
2.7.1 Sistemas dedutivos de Hilbert, H
Supondo apenas o conjunto completo de conectivas {, } e uma linguagem com igualdade:
Axiomas
( )
( ( )) (( ) ( ))
( ) (( ) )
x [t/x], onde x e substituvel por t em
x( ) ( x), onde x n ao ocorre livre em
x = x
x = y ( [y/x]) e e atomica
Regras de inferencia
Modus ponens: de e de , inferir
Departamento de Ciencia de Computadores F.C.U.P.
2.7. OUTROS SISTEMAS DEDUTIVOS 102
generalizac ao: para x V ar, inferir x a partir de
Proposi cao 2.13.
ND
se e s o se
H

Demonstra c ao. (): Basta ver que os axiomas de H s ao teoremas de DN. A regra de
inferencia modus ponens corresponde `a regra da elimina cao de implica cao de DN ( E) e a
regra generaliza cao `a regra da introdu cao do quanticador universal de DN (I)
(): e possvel transformar uma dedu cao em DN, numa dedu cao em H. (Nao o faremos
neste curso...)
2.7.2 Tableaux
Recordemos que as regras proposicionais de expans ao de tableaux s ao:

F
V
V
F

1
|
2
onde

1

2

1

2
( )
( )
( )
Exemplo 2.12. Considerar o tableaux para a negac ao duma f ormula v alida:
(x(p(x) q(x)) (xp(x) xq(x))))
x(p(x) q(x))
xp(x)
xq(x)
q(a)
p(a)
p(a) q(a)
p(a) q(a)

obtemos um tableaux fechado, onde a e uma constante, que n ao aparece na f ormula.
Para cada quanticador existencial e necess ario usar uma constante nova. Por exemplo se
considerarmos a negac ao de:
x(p(x) q(x)) (xp(x) xq(x))
que e satisfazvel mas n ao v alida, se n ao tivermos esse cuidado obtemos um tableaux fechado.
Verica!
Departamento de Ciencia de Computadores F.C.U.P.
2.7. OUTROS SISTEMAS DEDUTIVOS 103
(x(p(x) q(x)) (xp(x) xq(x))
(x(p(x) q(x))
(xp(x) xq(x))
xp(x)
xq(x))
q(a)
p(b)
p(a) q(a)
p(b) q(b)
p(b) q(b)
q(a) p(a) p(a) q(a)

Notar que um ramo n ao fechado de um tableaux dene uma estrutura em que a formula e
valida...
Exemplo 2.13. Consideremos ainda um tableaux para igual a
1

2

3
onde:

1
= xyp(x, y))

2
= xp(x, x))

3
= xyz((p(x, y) p(y, z)) p(x, z))
Depois de aplicar as regras obtemos
xyp(x, y))
xp(x, x))
xyz((p(x, y) p(y, z)) p(x, z))
Agora n ao temos nenhuma constante (ou outro termo) para instanciar. Podemos escolher
qualquer elemento a
1
e obter yp(a
1
, y) a partir de
1
. E depois instanciar o com uma
constante nova, a
2
. E voltar a instanciar
1
com a
2
, cando yp(a
2
, y). E voltar a instanciar
este com uma nova constante a
3
....e deste modo temos um processo que n ao termina...
Pode-se mostrar que n ao tem nenhum modelo nito!: Suponhamos que existe A com
donnio nito mas n ao vazio. Por
1
existe uma sequencia de a
i
tal que A |=
s[x/a
i
][y/a
j
]
p(x, y),
para todos i e j = i + 1. Por
3
, j = i. Mas como o domnio e nito, existe k com a
k
= a
i
.
O que contradiz
2
que obrigaria a A |=
s[x/a
i
/]
[p(x, x).
E podemos concluir que os tableaux n ao s ao um processo de decis ao para a validade das
formulas de primeira ordem.
2.7.2.1 Regras de expansao para tableaux
A nota cao uniforme para as formulas pode ser extendida para os quanticadores ( universais
e existenciais):
Departamento de Ciencia de Computadores F.C.U.P.
2.7. OUTROS SISTEMAS DEDUTIVOS 104
(t) (t)
x [x/t] x [x/t]
x [x/t] x [x/t]
Nesta nota cao, as novas regras de expans ao dos tableaux s ao:

(t)

(p)
onde t e um termo fechado e p e uma constante nova.
Departamento de Ciencia de Computadores F.C.U.P.
Captulo 3
Indecidibilidade e Incompletude
3.1 Programa de David Hilbert
No incio do seculo XX, o m atem atico David Hilbert colocou diversas questoes sobre os fun-
damentos da matem atica:
1. A matem atica e completa no sentido que cada arma cao pode ser demonstrada ou
contraditada?
2. A matem atica e consistente no sentido em que para nenhuma arma cao pode ser de-
monstrado que ela e verdadeira e falsa
3. A matem atica e decidvel no sentido que existe um metodo preciso que determine a
verdade ou falsidade de qualquer arma cao matem atica?
Respostas negativas:
Godel 1931: incompletude da aritmetica
Church+Turing, 1936-7: Indecidibilidade da LPO
Para a aritmetica, p.e, pretendia-se uma axiomatiza cao (teoria) completa, isto e, em que fosse
possvel demonstrar (deduzir) todas e s o as proposi coes que eram verdadeiras em N.
Teorema 3.1. (Teorema da incompletude de G odel para PA) Os axiomas de Peano n ao
constituem uma teoria completa.
Teorema 3.2. (Teorema da incompletude de G odel) N ao existe nenhum conjunto recursiva-
mente enumer avel de axiomas , tal que para toda a f ormula se tem que se e s o se
N |= .
Departamento de Ciencia de Computadores F.C.U.P.
3.2. INDECIDIBILIDADE DA L

OGICA DE 1
A

ORDEM 106
David Hilbert formulou com problema fundamental da matem atica (Entscheidungsproblem)
o seguinte:
A matem atica e decidvel no sentido que existe um metodo preciso que deter-
mine a verdade ou falsidade de qualquer arma cao matem atica?
Usando a logica de primeira ordem para representar as teorias matem aticas, vem:
O problema fundamental da logica matem atica e:
Dada uma formula duma linguagem de primeira ordem L existe um processo
de computa cao que determine ( decida) se e valida (ou equivalentemente se e
um teorema dum sistema dedutivo)?
Resposta Nao
Alan Turing On computable numbers, with an application to the Entscheidungsproblem,
1937
Alonzo Church An unsolvable problem of elementary number theory,1936
3.2 Indecidibilidade da Logica de 1
a

ordem
3.2.1 Revisoes de Decidibilidade e Maquinas de Turing
Pela tese de Church-Turing, um problema e efectivamente comput avel, i.e. tem um metodo
algortmico para o resolver se e s o se existe uma m aquina de Turing que o resolve.
Maquinas de Turing Foi desenhada por Alan Turing para descrever o mnimos indis-
pens avel para se obter um metodo efectivo de computa cao.
Uma maquina de Turing (MT)
. . . a
1
. . . a
i
. . . a
n
. . .

controlo nito
e constituda por
um controlo nito (conjunto nito de estados)
uma ta innita dividida em celulas
uma cabe ca de leitura/escrita que actua de cada vez sobre uma celula da ta
Departamento de Ciencia de Computadores F.C.U.P.
3.2. INDECIDIBILIDADE DA L

OGICA DE 1
A

ORDEM 107
No incio os dados est ao escritos na ta, um smbolo em cada celula, e as restantes celulas
da ta contem um caracter especial da ta, designado por branco, neste caso, . A cabe ca
est a no smbolo mais `a esquerda dos dados.
Num passo de computa cao (movimento), dependendo do smbolo lido na ta pela cabe ca e
do estado do controlo nito, a m aquina
1. muda de estado
2. escreve um smbolo na celula que est a debaixo da cabe ca
3. move a cabe ca para a esquerda ou para a direita
Formalmente uma m aquina de Turing e
M = (S, A, , , s
0
, , F)
onde
S e um conjunto nito de estados
e o conjunto nito de smbolos da ta
A e um subconjunto de que n ao inclu , e o conjunto dos smbolos de entrada
e a func ao de transi c ao, fun cao parcial de S em S {, }
s
0
e o estado inicial
e um smbolo de , designado por branco
F S e o conjunto de estados nais
Exemplo 3.1. M = ({s
0
, s
1
, s
2
, s
3
}, {0, 1}, {0, 1, , X}, , s
0
, {s
4
})
(s
0
, 0) = (s
2
, X, ) (s
0
, 1) = (s
1
, X, ) (s
0
, X) = (s
0
, X, )
(s
0
, ) = (s
4
, , ) (s
2
, 0) = (s
2
, 0, ) (s
2
, 1) = (s
3
, X, )
(s
2
, X) = (s
2
, X, ) (s
1
, 1) = (s
1
, 1, ) (s
1
, 0) = (s
3
, X, )
(s
1
, X) = (s
1
, X, ) (s
3
, 0) = (s
3
, 0, ) (s
3
, 1) = (s
3
, 1, )
(s
3
, X) = (s
3
, X, ) (s
3
, ) = (s
0
, , ).
Que linguagem reconhece M?
L = {x {0, 1}

| x tem igual n umero de 1s e de 0s}


Uma congura cao duma MT representa o estado da ta, do controlo nito e da cabe ca
em cada instante. Embora a ta seja innita, ao m dum n umero nito de passos a cabe ca
s o visitou um n umero nito de celulas.
Podemos representar a congura cao ou a descri cao instantanea (ID) por
X
1
X
i1
sX
i
X
n
onde:
Departamento de Ciencia de Computadores F.C.U.P.
3.2. INDECIDIBILIDADE DA L

OGICA DE 1
A

ORDEM 108
1. s e o estado da MT
2. a cabe ca da ta est a a reconhecer o i-esimo smbolo a partir da esquerda
3. X
1
. . . X
n
e a sequencia de caracteres da ta desde ou o caracter n ao-branco mais `a
esquerda ou o smbolo que est a sobre a cabe ca, conforme o que for mais `a esquerda, e
analogamente para o seu extremo direito.
A rela cao , mudan ca de congura cao num passo e denida da seguinte forma. Seja
X
1
X
i1
sX
i
X
n
uma congura cao. Seja (s, X
i
) = (s

, Y, D). Suponhamos que D =


. Entao
X
1
X
i1
sX
i
X
n
X
1
X
i2
s

X
i1
Y X
i+1
X
n
Excepto se:
1. Se i = 1 entao sX
1
X
n
s

Y X
2
X
n
2. Se i = n e Y = entao X
1
X
n1
sX
n
X
1
X
n2
s

X
n1
Analogamente, se D = tem-se que
X
1
X
i1
sX
i
X
n
X
1
X
i1
Y s

X
i+1
X
n
Excepto se:
1. Se i = n entao X
1
X
n1
sX
n
X
1
X
n1
Y s

2. Se i = 1 e Y = entao sX
1
X
n
s

X
2
X
n1
Sejam as rela coes movimento em n passos
n
e o fecho transitivo e reexivo

.
Uma palavra x A

e aceite por uma m aquina de Turing M se com palavra x na ta e no


estado inicial s
0
, M usando a fun cao de transi cao , entra num estado nal. Nota: mal
a m aquina atinja um estado nal a computa cao p ara, independentemente de ter lido ou n ao
todos os smbolos de entrada.
A linguagem aceite por M, e
L(M) = {x | x A

e s
0
x

x
1
sx
2
para algum s F, e x
1
, x
2

}
Se x L(M) entao M p ara quando atinge um estado nal. Caso contr ario, M pode ou
n ao parar
parar num estado n ao nal.
Departamento de Ciencia de Computadores F.C.U.P.
3.2. INDECIDIBILIDADE DA L

OGICA DE 1
A

ORDEM 109
Linguagens recursivamente enumeraveis, recursivas e nao recursivas Uma lingua-
gem L diz-se recursivamente enumeravel (r.e) ou semi-decidvel se e aceite por uma
m aquina de Turing . Isto e existe uma MT M tal que L = L(M).
Uma linguagem e recursiva se existe uma m aquina de Turing que a aceita e que p ara para
todos os dados. Neste casos diz-se que as m aquinas reconhecem as lingugem
Uma linguagem e indecidvel ou nao recursiva se n ao existe nenhuma m aquina de Turing
que a reconhe ca.
Pode ser:
recursivamente enumeraveis (r.e): existe uma MT que p ara se os dados pertencerem `a
linguagem, mas pode n ao parar caso contr ario.
n ao serem r.e
Podemos dar uma outra caracteriza cao dos conjuntos recursivamente enumeraveis, e que
justica o seu nome...
Teorema 3.3. Uma linguagem L A

e r.e. se e s o se existe uma m aquina de Turing M


que enumera os seus elementos, isto e, L = E(M).
Demonstra c ao. () Suponhamos que L = E(M), para alguma MT M. Entao, L e aceite
por uma m aquina de Turing M

que com dados x simula M com a ta inicialmente vazia: se


durante a computa cao de M, x e enumerado, entao M

p ara e aceita x. Caso contr ario M

n ao termina.
() Suponhamos que L e r.e.. Entao, existe uma m aquina de Turing M que aceita L.
Pretende-se obter uma m aquina M

tal que L = E(M

), isto e, que enumere os elementos


de L. M

n ao pode simular directamente M para cada um dos x A

, porque se x L,
M n ao p ara. A tecnica que ser a usada denomina-se dovetailing
1
computa coes intercaladas.
M

com a ta inicialmente vazia opera da seguinte forma: os elementos de A

, x
0
, x
1
, . . .
s ao gerados por ordem lexicograca e para cada x
n
, M

simula M com dados x


n
, M(x
n
),
intercaladamente e para n = 0, 1, 2, . . . passos de computa cao: simula o 1
o

passo de com-
puta cao de M para x
0
; simula o 1
o

passo de computa cao de M para x


1
; simula 2
o

passo
de computa cao para x
0
; simula o 1
o

passo de computa cao de M para x


2
; . . . Pode-se ob-
ter a seguinte tabela em que os n umeros da tabela s ao a ordem das computa coes de M

:
1
A traducao literal de dove tail e cauda de andorinha
Departamento de Ciencia de Computadores F.C.U.P.
3.2. INDECIDIBILIDADE DA L

OGICA DE 1
A

ORDEM 110
1 2 3 4 . . . (computa coes em M)
M(x
0
) 1 3 6 10 . . .
M(x
1
) 2 5 9 . . .
M(x
2
) 4 8 . . .
M(x
3
) 7 . . .
.
.
.
Se M p ara para algum destes dados, por exemplo x
n
, entao M

escreve x
n
na ta (seguido
de um ) e continua a simula cao. Isto garante que M

s o enumera elementos em L. Se
x
n
L, entao M com dados x
n
p ara ao m de um n umero nito de computa coes, logo x
n
ser a enumerado por M

.
Linguagens e Complementos O estudo das linguagens complementares pode permitir
distinguir se uma linguagem e r.e mas n ao recursiva!
Teorema 3.4. Se L e recursiva, L e recursiva
Demonstra c ao. Suponhamos que L = L(M) para uma MT M que p ara sempre. Basta
construir uma MT M igual a M excepto em que
os estados nais de M passam a n ao o ser em M
tem um novo estado de nal r, sem transi coes dele.
para cada par (estado n ao nal de M,smbolo da ta) sem transi coes em M, acrescenta-
se uma transi cao para o estado r.
Aceita
Rejeita
Rejeita
Aceita
M
w
Teorema 3.5. Se L e L s ao r.e., ent ao L e recursiva (e portanto, tambem o e L)
Aceita
M1
Aceita
Aceita
w
M2
Rejeita
Departamento de Ciencia de Computadores F.C.U.P.
3.2. INDECIDIBILIDADE DA L

OGICA DE 1
A

ORDEM 111
Demonstra c ao. Seja L = L(M
1
) e L = L(M
2
). Construmos uma MT M que simula em
paralelo M
1
e M
2
, usando duas tas e estados cujas componentes s ao os de M
1
e M
2
. Se com
dados w, M
1
aceitar, M aceita. Sen ao w / L, mas w L. Entao, M
2
tem de aceitar w.
Nessa altura M p ara e rejeita. Portanto, com todos os dados M p ara e L(M) = L. Logo L e
recursiva.
As linguagens podem dividir-se em:
D recursivas
SD r.e
nao-SD n ao r.e
SD
D
naoSD
Ha apenas 4 maneiras de uma linguagem L e L se situarem no diagrama:
Ambas L e L s ao recursivas:est ao em D
Nem L nem L s ao r.e: est ao e, nao-SD
L e r.e mas n ao recursiva e L n ao r.e: L em SD\D e L em nao-SD
L e r.e mas n ao recursiva e L n ao r.e: L em SD\D e L em nao-SD
Uma linguagem nao recursiva Considere-se a linguagem constituda pelos pares (M, x)
tal que:
1. M e (a codica cao em bin ario de) uma m aquina de Turing cujo alfabeto de entrada e
{0, 1}
2. x {0, 1}

3. M aceita x
As m aquinas U que aceitam esta linguagem denominam-se Maquinas de Universais de Turing,
i.e,
L
u
= L(U) = {(M, x) | x L(M)}
Com dados (M, x), U simula M com dados x.
L
u
e recursivamente enumeravel mas n ao e recursiva.
Departamento de Ciencia de Computadores F.C.U.P.
3.2. INDECIDIBILIDADE DA L

OGICA DE 1
A

ORDEM 112
Redu cao entre linguagens Dadas L
1

e L
2

, uma redu cao de L


1
a L
2
e uma
fun cao total computavel (algoritmo) :

tal que para todo x

:
x L
1
(x) L
2
Para existe uma m aquina de Turing total (que p ara sempre) e que com dados x p ara com
(x) na ta.
Diz-se que L
1
e redutvel a L
2
, L
1

m
L
2
Teorema 3.6.
a) Se L
1

m
L
2
e L
2
e r.e ent ao L
1
e r.e. Equivalentemente, se L
1

m
L
2
e L
1
n ao e r.e
ent ao L
2
tambem n ao.
b) Se L
1

m
L
2
e L
2
e recursiva ent ao L
1
e recursiva. Equivalentemente, se L
1

m
L
2
e L
1
n ao e recursiva ent ao L
2
tambem n ao.
3.2.2 Linguagem L

Seja L

uma linguagem de 1
a

ordem cujo conjunto de smbolos n ao-logicos e innito nu-


mer avel: F
0
= {c
0
, c
1
, . . .}, e para cada n > 0, F
n
= {f
n
0
, f
n
1
, . . .} e R
n
= {R
n
0
, R
n
1
, . . .}.
Para representar esta linguagem como uma linguagem formal temos que considerar um alfa-
beto nito.
Podemos escrever os termos, as formulas e as dedu coes de L

como palavras de um alfabeto


apropriado. Por exemplo:
A

= {x, c, f, R, 0, 1, . . . , 9, 0, 1, . . . , 9, =, , , , , , , (, ), F}
onde os inteiros n ser ao usados para indenticar o smbolo funcional (ou relacional) e os
inteiros n a aridade do smbolo. Assim,
O termo f
2
33
(x
41
, f
1
5
(c
28
)) pode ser representado por
f233x41f15c28
A formula x
13
x
23
(R
1
14
(x
13
) R
2
12
(x
13
, x
23
)) pode ser representada por
x13x23(R114x13 R212x13x23)
Uma dedu cao no sistema de dedu cao natural e uma sequencia nita de formulas, onde cada
formula e precedida de uma sequencia de inteiros que indica qual o nvel e qual o n umero de
ordem da sub-dedu cao a que pertence (11 e a dedu cao de topo).
Nota que uma dedu cao pode entao ser vista como uma palavra de A

.
Departamento de Ciencia de Computadores F.C.U.P.
3.2. INDECIDIBILIDADE DA L

OGICA DE 1
A

ORDEM 113
Uma dedu cao num sistema dedutivo de Hilbert e a uma sequencia nita de formulas
1
, ,
k
,
logo tambem uma palavra de A

.
Para uma sequencia
1
, . . . ,
k
ser uma dedu cao de
k
e necessario ainda que cada
i
seja
um axioma ou um dos
j
, j < i, ou o resultado da aplica cao de uma regra.
Proposi cao 3.1. O conjunto dos termos de L

e decidvel.
Demonstra c ao. Pela tese de Church-Turing basta encontrar um algoritmo que verique se
A

corresponde a um termo:
se = c ou = x, tem de ser uma sequencia n ao nula de ns, com n = 0, 1, 2, . . .
se = f, e da forma n
k
. . . n
0
m
l
. . . m
0
, com n
0
, . . . , n
k
, m
0
, . . . , m
l
{0, . . . , 9},
n
k
= 0 se k = 0, m
l
= 0 se l = 0 e come ca com c, x ou f e pode-se decompor em
termos
1
, . . . ,
p
, com p =

k
i=0
n
i
10
i
. O processo termina pois || < ||.
Proposi cao 3.2. O conjunto das f ormulas at omicas de L

e decidvel.
Proposi cao 3.3. O conjunto das f ormulas de L

e decidvel.
Exerccio 3.1. Demonstra as proposi c oes 3.2 e 3.3.
Proposi cao 3.4. O conjunto das proposi c oes de L

e decidvel.
Demonstra c ao. Uma proposi cao e uma formula sem vari aveis livres. Convem come car por
determinar o conjunto das vari aveis livres de uma formula , V L(). Isso pode ser feito por
indu cao na estrutura da formula:
V L(t
1
= t
2
) = V ar(t
1
) V ar(t
2
)
V L(R
n
j
(t
1
, . . . , t
n
)) =
n
i=1
V ar(t
i
)
V L() = V L()
V L( ) = V L() V L() , ,
V L(x) = V L() \ {x}
V L(x) = V L() \ {x}
e V ar(t) e o conjunto de vari aveis que ocorrem em t (determina!).
Bastar a entao determinar se V L() = .
Come camos por ver que o conjunto das proposi coes validas e recursivamente enumeravel.
Departamento de Ciencia de Computadores F.C.U.P.
3.2. INDECIDIBILIDADE DA L

OGICA DE 1
A

ORDEM 114
Proposi cao 3.5. O conjunto das proposi c oes de L

que s ao teoremas e semi-decidvel (ou


recursivamente enumer avel (r.e)).
Demonstra c ao. Qualquer que seja o sistema dedutivo e possvel encontrar um algoritmo que
verica se uma palavra de A

e da forma
1
. . .
k
e tal que
1
. . .
k
e uma dedu cao de

k
. Tambem e possvel decidir se
k
e uma proposi cao. Entao e possvel construir uma MT
M que dada a representa cao de uma formula :
1. determina se e uma proposi cao
2. gera as palavras de A

, lexicogracamente
3. para cada uma verica se e uma dedu cao
1
, . . . ,
k
e se
k
e . Se for, M aceita .
Sen ao continua no passo 2.
Nota que n ao e garantido que a m aquina de Turing pare sempre: s o e garantido que pare se
for uma representa cao dum teorema.
Corolario 3.1. O conjunto das proposi c oes v alidas de L

e semi-decidvel (ou recursivamente


enumer avel (r.e)).
Demonstra c ao. Pelo teorema da completude basta mostrar que o conjunto de teoremas de
L

e recursivamente enumeravel, o que foi feito na proposi cao anterior.


Conclumos assim que o problema de determinar se uma proposi cao da logica de primeira
ordem e valida e pelo menos semi-decidvel.
Seja L
val
a linguagem das proposi coes validas de L

. Por redu cao de L


u
, vamos ver que L
val
n ao e recursiva!
Seja L
u
= {(M, x) | x L(M)}
Dado M e x vamos construir (com um algoritmo ) uma formula tal que:
(M, x) L
u
sse ((M, x)) = L
val
Isto e, e valida se e s o se M aceita x. Pela completude, e um teorema se e s o se M aceita
x.
E se houvesse um algoritmo para determinar se L
val
entao haveria um algoritmo para
determinar se (M, x) L
u
. Absurdo!
Vamos entao especicar a redu cao L
u

m
L
val
.
Suponhamos que uma m aquina de Turing M e dada por:
({s
1
, s
2
, . . . , s
k
}, {0, 1}, {X
1
, X
2
, . . . , X
m
}, , s
1
, , {s
2
})
Departamento de Ciencia de Computadores F.C.U.P.
3.2. INDECIDIBILIDADE DA L

OGICA DE 1
A

ORDEM 115
Vamos considerar alguns smbolos n ao logicos de L

, a que para legibilidade iremos dar nomes


sugestivos. Seja c

uma constante, f
X
i
um smbolo funcional un ario para cada smbolo da ta
X
i
de M e R
s
i
um smbolo de predicado bin ario para cada estado s
i
de M. As vari aveis de
L

ser ao v
1
, v
2
, . . ..
Sendo x = a
1
a
2
. . . a
n
com a
i
{0, 1}, podemos representa-lo pelo termo:
f
a
1
(f
a
2
. . . (f
a
n1
(f
an
(c

))) . . .)
Para simplicar iremos denotar por x este termo e analogamente os restantes termos que
denotam palavras de {X
1
, X
2
, . . . , X
m
}

.
Seja a estrutura A = (A,
A
) de L

tal que A = {X
1
, X
2
, . . . , X
m
}

, c
A

= , f
A
X
i
(w) = X
i
w
para 1 i m e w A e para cada estado s
i
,
R
A
s
i
= {(w, y) AA | s
1
x
M

ws
i
y}
isto e, est ao em R
A
s
i
os pares (w, y) tal que existe uma congura cao ws
i
y atingvel da inicial.
Em A a proposi cao
R
s
1
(c

, x)
e verdadeira , dado que a congura cao inicial (de M com dados x) e atingvel. E
v
1
v
2
R
s
2
(v
1
, v
2
)
e verdadeira em A se e s o se M aceita x.
Para (X
i
, s
k
) = (X
j
, s
l
, D
1
), a proposi cao seguinte e verdadeira em A:
v
1
v
2
(R
s
k
(v
1
, X
i
v
2
) R
s
l
(v
1
X
j
, v
2
))
Analogamente se (X
i
, s
k
) = (X
j
, s
l
, D
2
), a proposi cao seguinte e verdadeira em A:
v
1
v
2
(R
s
k
(v
1
X
m
, X
i
v
2
) R
s
l
(v
1
, X
m
X
j
v
2
))
Excepto nos casos especiais em que a cabe ca de M est a sob smbolos extremos da congura cao:
nesses casos, para D
1
(direita)
v
1
(R
s
k
(v
1
, X
i
) R
s
l
(v
1
X
j
, c

))
v
2
(R
s
k
(c

, X
i
v
2
) R
s
l
(c

, v
2
)), se X
j
=
e para D
2
(esquerda)
v
2
(R
s
k
(c

, X
i
v
2
) R
s
l
(c

, X
j
v
2
))
v
1
(R
s
k
(v
1
X
m
, X
i
) R
s
l
(v
1
, X
m
)), se X
j
=
Departamento de Ciencia de Computadores F.C.U.P.
3.3. SUBCONJUNTOS DECID

IVEIS DE L

116
Seja T a conjun cao de todas as formulas anteriores. Nota que s ao em n umero nito! E seja
a formula
(R
s
1
(c

, x) T) v
1
v
2
R
s
2
(v
1
, v
2
)
O processo descrito e um algoritmo (seja ) e ((M, x)) = .
Falta ver que (M, x) L
u
sse ((M, x)) = L
val
.
() Se M aceita x entao existe uma sequencia de congura coes ( computa cao valida) que
conduz da congura cao inicial a um estado nal. Cada passo corresponde a uma inst ancia
duma das formulas da conjun cao T. Podemos entao construir uma dedu cao para ( ):
Supor R
s
1
(, x) T
Aplicar E tantas vezes quantos os elementos de T
aplicar E para obter a inst ancia adequada para simular cada um dos passos a partir
de R
s
1
(, x) e E, para obter a congura c ao seguinte
Quando se deduzir a formula correspondente a ter-se atingido o estado nal, podemos
deduzir wyR
s
2
(w, y) aplicando duas vezes a regra I. E aplicando I deduzimos
.
Entao e um teorema, logo L
val
.
() Se for valida em todas as estruturas, entao e valida em A. O que implica que M tem
uma computa cao que leva ao estado nal, come cando com x na ta. Isto e (M, x) L
u
.
Temos entao demonstrado que:
Teorema 3.7. Determinar se uma f ormula duma linguagem de 1
a

ordem e v alida e um
problema indecidvel.
Corolario 3.2. Determinar se uma f ormula linguagem de 1
a

ordem e satisfazvel e um
problema indecidvel.
Exerccio 3.2. Demonstra o corol ario anterior.
Resolu cao 3.2
Uma formula e satisfazvel se e s o se e n ao valida. Mas o problema de determinar se
uma formula e n ao valida, e o problema complementar de determinar se e valida, logo tem
de ser indecidvel (porque?).
3.3 Subconjuntos decidveis de L

Se restringirmos o tipo de formulas podemos ter subconjuntos onde o problema de determinar


se uma formula e valida e decidvel. Por exemplo:
Departamento de Ciencia de Computadores F.C.U.P.
3.4. INCOMPLETUDE DOS AXIOMAS DE PEANO (PA) 117
A linguagem L
Prop
correspondente `a logica proposicional
A linguagem em que os smbolos de predicado s ao todos un arios
As formulas cuja forma prenexa e x
1
. . . x
n
y
1
. . . y
m
e n ao tem termos com
smbolos funcionais
. . .
3.4 Incompletude dos axiomas de Peano (PA)
Recordemos os axiomas da aritmetica de Peano:
Seja uma linguagem de 1
a

ordem com igualdade, F


0
= {0, 1} e F
2
= {+, }
Os axiomas s ao factos b asicos dos n umeros naturais:
1. x(x + 1 = 0)
2. xy(x + 1 = y + 1 x = y)
3. 0 + 1 = 1
4. x x + 0 = x
5. xy x + (y + 1) = (x +y) + 1
6. x x 0 = 0
7. xy x (y + 1) = (x y) +x
8. (princpio da indu c ao) (Q(0) (x(Q(x) Q(x + 1)) xQ(x)
Os axiomas de Peano s ao uma axiomatiza cao de N = (N,
N
) (onde as opera coes aritmeticas
tem o valor habitual). Entao se PA , N |= , isto e, o sistema e ntegro. Mas, temos que
Teorema 3.8. (Teorema da incompletude de G odel para PA) Os axiomas de Peano n ao
constituem uma teoria completa.
Teorema 3.9. (Teorema da incompletude de G odel) N ao existe nenhum conjunto recursiva-
mente enumer avel de axiomas , tal que para toda a f ormula se tem que se e s o se
N |= (i.e n ao e completo).
A demonstra cao feita por Kurt G odel e um pouco complexa: ele construiu uma formula G
de L
N
que armava que esta proposi c ao n ao e deduzvel dos axiomas de Peano (ou noutro
conjunto r.e de axiomas).
A proposi cao G e verdadeira!
Se G fosse falsa entao, G era deduzvel em PA, mas entao pela integridade seria verdadeira.
Departamento de Ciencia de Computadores F.C.U.P.
3.4. INCOMPLETUDE DOS AXIOMAS DE PEANO (PA) 118
Para a constru cao de G e necessario codicar as formulas como n umeros inteiros, assim como
as dedu coes. E tambem e necessario poder exprimir que x e uma deduc ao de y:
Ded(x, y)
Se se representar por o c odigo de , temos:
PA G xDed(x, G)
Mas os pormenores, para esta constru cao s ao ainda bastante complicados. Vamos ver outra
demonstra cao, proposta por Alan Turing.
Seja , PA ou outro conjunto (r.e.) de axiomas para N.
1. O conjunto de proposi coes { | } e recursivamente enumeravel
2. O conjunto Th(N) n ao e recursivamente enumeravel.
entao estes 2 conjuntos n ao podem ser iguais e portanto , se for ntegro, n ao pode ser
completo. Assim temos demonstrado o (Primeiro) Teorema da incompletude de G odel.
Exerccio 3.3. Mostra que PA e um conjunto recursivamente enumer avel.
Exerccio 3.4. Mostra que { | PA } e recursivamente enumer avel.
Proposi cao 3.6. Th(N) n ao e recursivamente enumer avel.
Demonstra c ao. Por uma redu cao de L
u

m
Th(N), onde
L
u
= {(M, x) | x L(M)}
Dado (M, x) constroi-se uma formula de L
N
, tal que
(M, x) L
u
Th(N)
Isto e, tem de exprimir que M n ao aceita x.
Usando formulas mais simples constroi-se uma formula V ALCOMP
M,x
(y) tal que y repre-
senta uma hist oria de computa c ao v alida de M com dados x.
Isto e, y representa uma sequencia de congura coes C
i
tal que:
C
0
e congura cao inicial de M com dados x: s
0
x
C
N
e uma congura cao de aceita cao
C
i+1
segue num passo de C
i
, i.e., C
i
C
i+1
, para 0 1 N 1
Departamento de Ciencia de Computadores F.C.U.P.
3.4. INCOMPLETUDE DOS AXIOMAS DE PEANO (PA) 119
Se M n ao aceita x, n ao existe hist oria de computa cao valida.
Entao e a formula yV ALCOMP
M,x
(y).
Nota que V ALCOMP
M,x
(y) tem de ser expressa s o usando opera coes aritmeticas e construda
por um algoritmo (a partir de M e x).
Suponhamos que as congura coes de M est ao codicadas num alfabeto de tamanho p, com
p primo (em bin ario seria mais complicado).
Sendo x = a
1
a
2
. . . a
n
, a congura cao inicial ser a codicada por k
0
k
1
k
2
. . . k
n
dgitos p-arios:
s0 a
1
a
2
. . . a
n
k
0
k
1
k
2
. . . k
n
Suponh amos ainda que o smbolo corresponde ao dgito k.
Duas congura coes consecutivas C
i
e C
i+1
s o podem diferir no m aximo nos dgitos que cor-
respondam `a mudan ca de congura cao (4 no m aximo). Por exemplo, se:
(s
1
, a) = (s
2
, b, )
entao podemos ter, p.e
a s
1
a b a b s
2
b
Dado ser nito s o h a um n umero nito destes uplos. Seja C o conjunto de todos os uplos
(a, b, c, d, e, f, g, h) tal que (a, b, c, d) ocorrem consecutivamente numa congura cao C
i
, e se
(e, f, g, h) ocorrem nas posi coes correspondentes em C
i+1
entao isso e consistente com as
transi coes de M. Agora temos que codicar tudo isto em formulas de PA. Notar que a
sequencia de congura coes (hist oria) vai ter de ser representada por um n umero v (e n ao
vai haver separadores entre elas). Se houver uma congura cao de aceita cao entao pode-se
calcular qual o espa co gasto no m aximo por cada congura cao. Existir a uma potencia de p
sucientemente grande (ser a designada por c) e que permita determinar quais os dgitos que
correspodem a cada congura cao.
Comecemos por recordar algumas formulas.
Divisao inteira: x = q y +r r < y =
def
INTDIV (x, y, q, r)
y divide x: qINTDIV (x, y, q, 0) =
def
DIV (x, y)
2 : 1 + 1 =
def
2
x e par: DIV (2, x) =
def
Par(x)
x e mpar: Par(x) =
def
Impar(x)
x e primo:
x < 2 y(DIV (y, x) (y = 1 y = x)) =
def
Primo(x)
Departamento de Ciencia de Computadores F.C.U.P.
3.4. INCOMPLETUDE DOS AXIOMAS DE PEANO (PA) 120
x e potencia de 2:
y((DIV (y, x) Primo(x)) y = 2) =
def
P(2, x)
y e 2
k
e o k-esimo bit de x e 1:
P(2, y) qr(INTDIV (x, y, q, r) Impar(q)) =
def
BIT(x, y)
Divide-se x por y em bin ario e o quociente tem de ter o ultimo bit 1. Assim podem-se
ver os n umeros como palavras e extrair bits.
Vamos denir mais algumas ( omitindo o sinal ):
o n umero y e uma potencia de p
z(DIV (z, y) Primo(z) z = p) =
def
Pot
p
(y)
O n umero d e uma potencia de p e d = |v|, v como palavra de Pot
p
(d) v d
=
def
Comp(v, d)
Vamos supor y e z potencias de p.
O dgito p-ario de v na posi cao y e b
ua(v = a + by + upy a < y b < p) =
def
DIGIT(v, y, b) (Dividindo por p o
quociente de v dividido por y, temos b como resto)
Os 4 dgitos p-arios de v naposi cao y sao b, c,d,e
ua(v = a +by +cpy +dppy +epppy +uppppy
a < y b < p c < p d < p e < p)
=
def
4DIGIT(v, y, b, c, d, e)
Os 4 dgitos de v na posi cao y e os na posi cao z correspondem

(a,b,c,d,e,f,g,h)C
(4DIGIT(v, y, a, b, c, d) 4DIGIT(v, z, e, f, g, h))
=
def
MATCH(v, y, z)
A palavra v representa as congura c oes consecutivas de M de tamanho entre c
e d
y((Pot
p
(y) yppc < d) MATCH(v, y, yc)
=
def
MOV E(v, c, d))
Departamento de Ciencia de Computadores F.C.U.P.
3.4. INCOMPLETUDE DOS AXIOMAS DE PEANO (PA) 121
Cada congura cao tem no m aximo tamanho c e duas congura coes consecutivas est ao
de acordo com o de M. c e d s ao potencias de p.
A palavra v come ca com a congura cao inicial de M com dados x, preenchida
com brancos ate ao comprimento c
n

i=0
DIGIT(v, p
i
, k
i
) p
n
< c
y((Pot
p
(y) p
n
< y < c) DIGIT(v, y, k))
=
def
Inicio(v, c)
c e uma potencia de p;n e p
i
, 0 i n representam constantes que dependem de x
A palavra v tem um estado nal algures
y(Pot
p
(y) y < d

wF
DIGIT(v, y, w)
=
def
Aceita(v, d)
onde F e o conjunto dos dgitos p-arios que representam os smbolos de que corres-
pondem a estados nais.
A palavra v e uma historia de computa cao valida de M com dados x
cd(Pot
p
(c) c < d Comp(v, d)
Inicio(v, c) Move(v, c, d) Aceita(v, d))
=
def
V ALCOMP
M,x
(v)
A maquina M nao aceita x
vV ALCOMP
M,x
(v)
Leituras suplementares [BE00] (Cap. 10.5,12.5,15,16.4,18.4) [Koz97] (Cap. 39 e 40)
[Pap94] (Cap. 6)
Departamento de Ciencia de Computadores F.C.U.P.
Captulo 4
Programa cao em Logica
Pretende-se que um programa seja um conjunto de formulas l ogicas e que a execu cao desse
programa corresponda a uma demonstra cao de que uma formula e um teorema. Os sistemas
que vamos ver baseiam-se em:
considerar formulas em forma prenexa e em que a matriz est a em normal conjuntiva
como sistema dedutivo usar variantes da resolu cao
o sistema dedutivo deve ser ntegro e completo, pelo menos para uma dada estrutura.
ser computacioanlemente universal, i.e, equivalente a m aquinas de Turing.
4.1 Clausulas
Seja L uma linguagem de 1
a

ordem com igualdade e pelo menos uma constante.


Deni cao 4.1. Um literal positivo (ou atomo) e uma f ormula at omica.
Um literal negativo e a negac ao de uma f ormula at omica.
Exemplo 4.1. P(x, y), f(x) = a s ao literais positivos. E, P(x, y) e um literal negativo.
Deni cao 4.2. Uma clausula e uma f ormula da forma:
x
1
. . . x
s
(
1
. . .
k

1
. . .
n
)
onde
i
,
i
s ao atomos e x
1
, . . . , x
s
s ao todas as vari aveis que ocorrem na f ormula.
Tambem se pode escrever como:
x
1
. . . x
s
((
1
. . .
n
) (
1
. . .
k
))
ou ainda iremos represent a-la pela nota cao clausal seguinte:

1
, . . . ,
k

1
, . . . ,
n
Departamento de Ciencia de Computadores F.C.U.P.
4.1. CL

AUSULAS 123
4.1.1 Conversao em forma clausal
Vamos ver que para qualquer formula da logica de primeira ordem e possvel encontrar uma
conjunto de clausulas que e satisfazvel se e s o se e satisfazvel.
A proposi cao seguinte vai permitir eliminar quanticadores existenciais.
Proposi cao 4.1. Seja y
1
. . . y
n
x uma proposi c ao de uma linguagem de 1
a

ordem L e
seja L

uma linguagem com os smbolos de L e com mais um smbolo n- ario f. Ent ao,
y
1
. . . y
n
x e satisfazvel em L se e s o se y
1
. . . y
n
[f(y
1
, . . . , y
n
)/x] e satisfazvel em L

.
Demonstra c ao. Temos que mostrar que existe A (estrutura de L) tal que A |= y
1
. . . y
n
x
sse existe A

(estrutura de L

) tal que A

|= y
1
. . . y
n
[f(y
1
, . . . , y
n
)/x]
() Para todos os a
1
, . . . a
n
A, existe b A tal que
A |=
s
[a
1
/y
1
] . . . [a
n
/y
n
][b/x]
Nota que b depende dos a
1
, . . . , a
n
.
Entao a estrutura A

pode ser igual a A (mesmo domnio e interpreta cao dos smbolos comuns)
e tal que o valor de f
A

seja dado pela seguinte fun cao:


a
1
, . . . , a
n
A, f
A

(a
1
, . . . , a
n
) = b
sendo b cada um dos denidos anteriormente.
()
Em A

, consideremos os valores de f
A

(a
1
, . . . , a
n
). Estes s ao os valores de cada um dos b.
Existe um algoritmo que converte uma proposi cao de uma linguagem de 1
a

ordem, numa
conjun cao (ou conjunto) de clausulas =
1
. . .
n
(duma linguagem alargada L

) tal
que:
cada
i
e da forma x
1
. . . x
n
(
1
. . .
n
), onde cada
i
e um literal
a formula e satisfazvel se e s o se e satisfazvel
Esse algoritmo denomina-se Skolemizac ao e consiste em:
1. Converter em forma normal prenexa Q
1
x
1
Q
2
x
2
. . . Q
n
x
n
onde cada Q
i
e ou ou
e n ao tem quanticadores (e denomina-se a matriz).:
2. Para 1 i n se Q
i
e um quanticador existencial e x
i
1
, . . . x
im
i
as vari aveis quanti-
cadas universalmente de ndice menor que i entao substitui-se:
x
i
por [f
i
(x
i
1
, . . . x
im
i
)/x
i
]
Departamento de Ciencia de Computadores F.C.U.P.
4.1. CL

AUSULAS 124
onde f
i
e um novo smbolo funcional de aridade m
i
.
3. Converter a matriz da formula resultante para forma normal conjuntiva aplicando su-
cessivamente as seguintes transforma coes:

( )
( )
( ) ( ) ( )
:
4. Aplicar a seguinte transforma cao: x( ) x x
Exerccio 4.1. Justica a corre c ao do algoritmo: isto e, que a f ormula resultante verica as
condi c oes indicadas.
Exerccio 4.2. Aplica o algoritmo ` a seguinte f ormula:
x(y(P(y) R(y, x)) Q(x))

Resolu cao 4.2


Para forma normal prenexa basta passar par fora os qaunticadores:
xy((P(y) R(y, x)) Q(x))
Como n ao tem quamticadores existenciais basta, converter a matriz para forma normal
conjuntiva:
xy((P(y) R(y, x)) Q(x)) (4.1)
xy((P(y) R(y, x)) Q(x)) (4.2)
xy((P(y) Q(x)) (R(y, x) Q(x))) (4.3)
xy((P(y) Q(x))) xy(R(y, x) Q(x)) (4.4)
Em nota cao clausal vem:
{P(y), Q(x) , Q(x) R(y, x)}
Deni cao 4.3 (Formulas de Horn). Uma cl ausula e uma formula de Horn (ou uma cl ausula
de Horn) se tem no m aximo um literal positivo. Uma f ormula de Horn e positiva se tem um
literal positivo:
x
1
. . . x
s
(
1

1
. . .
n
)
Departamento de Ciencia de Computadores F.C.U.P.
4.1. CL

AUSULAS 125
Ou em notac ao clausal:

1

1
, . . . ,
n
onde
1
e a diz-se a a cabe ca da cl ausula e
1
, . . . ,
n
o corpo da cl ausula. Se o corpo e vazio
a cl ausula diz-se unit aria (ou facto). Uma cl ausula de Horn e (objectivo) se n ao tem literal
positivo:
x
1
. . . x
s
(
1
. . .
n
)
que e equivalente a
x
1
. . . x
s
(
1
. . .
n
)
Ou em notac ao clausal:

1
, . . . ,
n
A cl ausula vazia representa-se por corresponde a uma contradic ao (F) e e uma cl ausula sem
cabe ca nem corpo.
Exemplo 4.2. Das seguintes f ormulas, indica quais s ao cl ausulas de Horn, positivas ou
negativas e escreve-as na notac ao clausal:
xyz(P(x, z) Q(x, y) Q(x, z)) N ao Horn
P(x, z), Q(x, y) Q(x, z)
xyz(P(x, z) Q(x, y) Q(x, z)) positiva
P(x, z) Q(x, y), Q(x, z)
xzP(x, z) unit aria P(x, z)
xyz(P(x, z) Q(x, y)) negativa P(x, z), Q(x, y)
Proposi cao 4.2. Seja A = (A,
A
) uma estrutura de L e a cl ausula
1
, . . . ,
k

1
, . . . ,
n
,
com vari aveis x
1
, . . . x
s
. A satisfaz , A |= , se e s o se para todos os a
1
, . . . , a
s
A existe
um literal {
1
, . . . ,
k
,
1
, . . . ,
n
} tal que A |=
s
para s(x
i
) = a
i
, 1 i s
Demonstra c ao. Resulta directamente da deni cao de clausula e da rela cao |=
s
.
Deni cao 4.4. Um programa denido e um conjunto nito de cl ausulas de Horn positivas.
Num programa o conjunto de cl ausulas com cabe cas com mesmo smbolo de predicado P,
chama-se a deni cao de P.
Exemplo 4.3. Considera a linguagem de 1
a

ordem L
ss
sem igualdade com F
0
= {0, nil},
F
1
= {s}, F
2
= {cons}, R
1
= {sorted}, R
2
= {slowsort, perm, less eq} e R
3
= {delete}. O
Departamento de Ciencia de Computadores F.C.U.P.
4.1. CL

AUSULAS 126
programa seguinte dada uma sequencia de inteiros permuta os seus elementos ate estarem
ordenados:
slowsort(x, y) sorted(y), perm(x, y)
sorted(nil)
sorted(cons(x, nil))
sorted(cons(x, cons(y, z))) less eq(x, y), sorted(cons(y, z))
perm(nil, nil)
perm(cons(x, y), cons(u, v)) delete(u, cons(x, y), z), perm(z, v)
delete(x, cons(x, y), y)
delete(x, cons(y, z), cons(y, w)) delete(x, z, w)
less eq(0, x)
less eq(s(x), s(y)) less eq(x, y)
onde:
um inteiro n e representado pelo termo s(s(...s(0))) com n smbolos funcionais s. Ex:
s(s(s(0))) representa 3
uma lista de inteiros e representada por termos cons(x, y) onde x e um inteiro e y e uma
lista. A lista vazia e representada por nil Ex: cons(s(s(0)), cons(s(0), cons(s(s(s(0))), nil)
representa a lista [2, 1, 3]
slowsort dada uma lista x, verica se est a ordenada (sorted), sen ao permuta (perm)...
Proposi cao 4.3. Seja P um programa,
1
, . . . ,
n
um objectivo e y
1
, . . . , y
r
as vari aveis
que ocorrem nos
i
, 1 i n. Ent ao
P |= y
1
. . . y
r

1
. . .
n
se e s o se P {
1
, . . . ,
n
} e n ao satisfazvel.
Demonstra c ao. Directamente das deni coes.
Exemplo 4.4. Verica que
P { slowsort(cons(s(s(0)), cons(s(0), cons(s(s(s(0))), nil), y)}
n ao e satisfazvel.Ou por outras palavras executa P com o objectivo
slowsort(cons(s(s(0)), cons(s(0), cons(s(s(s(0))), nil), y)
e obtem em y a resposta.
Departamento de Ciencia de Computadores F.C.U.P.
4.1. CL

AUSULAS 127
Exerccio 4.3. Considera o seguinte programa denido P:
Add(x, 0, x)
Add(x, s(y), s(z)) Add(x, y, z)
e o objectivo G:
Add(s(0), s(s(0)), x)
1. Escreve cada f ormula do programa e do objectivo sem ser na nota cao clausal (i.e com
os quanticadores e opera c oes l ogicas usuais).
2. Mostra que P {G} F usando o sistema de deduc ao natural (e a notac ao de Fitch) e
as f ormulas na forma obtida em 1.

Exemplo 4.5. Justica a validade ou a falsidade das seguintes armac oes, para uma lingua-
gem de 1
a

ordem:
1. todo o conjunto de f ormulas de Horn positivas e satisfazvel
2. todo o conjunto de f ormulas de Horn negativas e satisfazvel
3. todo o conjunto de f ormulas de Horn e satisfazvel
4.1.2 Satisfazibilidade de Clausulas
Para determinar que um conjunto de formulas n ao e satisfazvel e necessario que nenhuma
estrutura de L seja modelo de . Mas se as formulas forem clausulas basta mostrar que n ao
tem um modelo de um dado tipo: um modelo de Herbrand. Mais ainda se as cla usulas forem
de Horn, s ao satisfazveis se o forem no seu modelo mnimo de Herbrand. Dado um programa
denido P e um objectivo G, P G e n ao satisfazvel se e s o se G n ao e satisfazvel no modelo
mnimo de P.
Come camos por denir estrutura de Herbrand.
Deni cao 4.5. Uma estrutura A = (A,
A
) de L e estrutura de Herbrand se:
A = T
0
, o conjunto de termos fechados de L
c
A
= c, para c F
0
f
A
(t
1
, . . . , t
n
) = f(t
1
, . . . , t
n
), para f F
n
, n > 0 e t
1
, . . . , t
n
T
0
Departamento de Ciencia de Computadores F.C.U.P.
4.1. CL

AUSULAS 128
Todas as estruturas de Herbrand tem o mesmo domnio (ou universo) e coincidem no valor
dos smbolos funcionais: apenas diferem no valor dos smbolos de predicado.
Exemplo 4.6. Para a linguagem L
ss
(do slowsort) o domnio (ou universo) de qualquer
estrutura de Herbrand A e:
A = {0,nil,s(0),s(nil),cons(0,0),cons(0,nil),cons(nil,0),cons(nil,nil),. . . }
e 0
A
= 0, nil
A
= nil, s
A
(0) = s(0), etc
Exemplo 4.7. Seja a linguagem L tal que F
1
= {f, g}, R
1
= {p, r} e R
2
= {q}. Como L
n ao tem constantes adicionamos uma constante c a T
0
de L. O universo de Herbrand e:
A = {c,f(c),g(c),f(f(c)),f(g(c)),g(f(c)),g(g(c)),. . . }
e c
A
= c, f
A
(c) = f(c), f
A
(g(c)) = f(g(c)), etc
Teorema 4.1. Seja um conjunto de cl ausulas. Ent ao e satisfazvel se e s o se tiver um
modelo de Herbrand.
Demonstra c ao. ()

E obvio que se tiver um modelo de Herbrand e satisfazvel
() Seja A um modelo de .

E necessario mostrar que tem um modelo de Herbrand, A
H
:
associamos a cada smbolo relacional R a rela cao:
R
A
H
= {(t
1
, . . . , t
n
) T
n
0
| (t
A
1
, . . . , t
A
n
) R
A
}
Vejamos que A
H
e um modelo de : seja (
1
. . .
m
) .
A
H
|= (
1
. . .
m
)
sse para toda a interpreta cao das vari aveis s
H
em A
H
se tem
A
H
|=
s
H
(
1
. . .
m
)
Se s
H
(x) = t T
0
seja s(x) = t
A
em A. Como A |= (
1
. . .
m
), entao A |=
s
(
1
. . .
m
), isto e, existe pelo menos um k tal que A |=
s

k
. Mas, por constru cao de
A
H
e como cada
i
e um literal, A |=
s

i
sse A
H
|=
s
H

i
, 1 i m (verica!). Donde
A
H
|=
s
H
(
1
. . .
m
) sse A |=
s
(
1
. . .
m
)
.
Nota que se n ao fosse um conjunto de clausulas o teorema n ao se vericava.
Departamento de Ciencia de Computadores F.C.U.P.
4.1. CL

AUSULAS 129
Exemplo 4.8. O conjunto de proposi c oes {p(c), xp(x)} da linguagem com F
0
= {c} e
R
1
= {p} e satisfazvel mas n ao tem modelo de Herbrand: A = ({0, 1},
A
) com c
A
= 0 e
p
A
= {0} satisfaz o conjunto. Mas T
0
= {c} e as unicas estruturas de Herbrand s ao tais que
p
H
1
= e p
H
2
= {c}, e nenhuma satisfaz o conjunto.
Corolario 4.1. Um conjunto de cl ausulas de Horn e satisfazvel sse tiver um modelo de
Herbrand.
Deni cao 4.6. Dado um conjunto de cl ausulas de Horn o modelo mnimo de Herbrand
de e a estrutura de Herbrand A

tal que, para R R


n
:
R
A

= {(t
1
, . . . , t
n
) T
n
0
| R(t
1
, . . . , t
n
)}
O modelo da deni cao anterior e mnimo porque:
Teorema 4.2. Seja um conjunto satisfazvel de cl ausulas de Horn. Ent ao:
A

|=
se A
H
e um modelo de Herbrand de , ent ao para todo o smbolo relacional n- ario R,
R
A

R
A
H
Demonstra c ao. Para toda a formula atomica , com vari aveis x
1
, . . . , x
k
e para toda a inter-
preta cao de vari aveis s, se s(x
i
) = t
i
, 1 i k, entao, pela deni cao de A

, tem-se:
A

|=
s
sse [t
k
/x
k
] (4.5)
onde [t
k
/x
k
] e a formula que resulta de substituindo simultaneamente todas as ocorrencias
de x
1
, . . . , x
k
por t
1
, . . . , t
k
.
Seja x
1
. . . x
m
, e n ao tem quanticadores. Vamos mostrar que se tem A

|=
s

qualquer que seja a interpreta cao s.
Temos dois casos:
(
1
. . .
n
), com n 0 Temos que demonstrar que A

|=
s
(
1
. . .

n
) , para toda interpreta cao s. Se n = 0, entao e uma formula atomica e o
resultado segue de (4.5). Se n > 0, se A

|=
s

1
. . .
n
, entao A

|=
s

i
,
1 i n. Mas, de (4.5),
1
[t
m
/x
m
], . . . ,
m
[t
m
/x
m
]. E entao, [t
m
/x
m
],
porque ((
0
. . .
n
) )[t
m
/x
m
]. Temos entao que A

|=
s
.
(
0
. . .
n
) De x
1
. . . x
m
, vem que [t
m
/x
m
] (aplicando m vezes a
regra E). Logo, (
0
. . .
n
)[t
m
/x
m
]. Se A

|=
s
(
0
. . .
n
), entao
A

|=
s

0
, . . . A

|=
s

n
. Mas, por (4.5),
0
[t
m
/x
m
],. . . ,
n
[t
m
/x
m
], donde
(
0
. . .
n
)[t
m
/x
m
]. Absurdo! Entao, A

|=
s
.
Departamento de Ciencia de Computadores F.C.U.P.
4.1. CL

AUSULAS 130
Seja A
H
um modelo de Herbrand de e R um smbolo relacional. Se (t
1
, . . . , t
n
) R
A

,
entao R(t
1
, . . . , t
n
), e pela integridade, A
H
|= R(t
1
, . . . , t
n
), i.e, (t
1
, . . . , t
n
) R
A
H
O teorema seguinte garante que dado um programa denido P (conjunto de clausulas de Horn
positivas) e um objectivo G (uma clausula de Horn negativa) , P {G} e n ao satisfazvel se
e s o se G n ao e satisfeito em A
P
.
Teorema 4.3. Seja um conjunto de cl ausulas de Horn. Para qualquer f ormula fechada
da forma x
1
. . . x
n
(
0
. . .
l
), onde cada
i
e uma f ormula at omica, as seguintes
armac oes s ao equivalentes:
1. x
1
. . . x
n
(
0
. . .
l
)
2. A

|= x
1
. . . x
n
(
0
. . .
l
)
3. existem t
1
, . . . , t
n
T
0
, tal que (
0
. . .
l
)[t
n
/x
n
]
Demonstra c ao.
(1)(2) pela integridade da LPO.
(2)(3) Se A

|= x
1
. . . x
n
(
0
. . .
l
) existe uma interpreta cao das vari aveis s, com
s(x
i
) = t
i
, 1 i n, tal que A

|=
s
(
0
. . .
l
). Logo A

|=
s

0
, . . . ,A

|=
s

l
, e,
por (4.5),
0
[t
n
/x
n
], . . .
l
[t
n
/x
n
]. E aplicando a regra I l vezes, (
0
. . .

l
)[t
n
/x
n
].
(3) (1) Basta aplicar n vezes a regra I.
Exerccio 4.4. Seja L uma linguagem de 1
a

ordem sem igualdade e um conjunto de


proposi c oes.
1. Mostra que x n ao implica necessariamente que existe um termo t T tal que
[t/x]
2. Sup oe que e um conjunto de cl ausulas de Horn e da forma
0
. . .
l
onde
i
s ao f ormulas at omicas. Mostra que se x existe t T
0
tal que [t/x].

Resolu cao 4.4


1. Basta considerar R
1
= {R}, = {xR(x)} e a formula R(x).
2. Segue do teorema anterior.
Seja P um programa denido. Entao:
Departamento de Ciencia de Computadores F.C.U.P.
4.1. CL

AUSULAS 131
L
P
linguagem de primeira ordem constituda por todos os smbolos n ao logicos de P (even-
tualmente com mais uma constante c). Ex: Seja P
p(x) q(f(x), g(x))
r(x)
L
P
e dada por F
0
= {c}, F
1
= {f, g}, R
1
= {p, r} e R
2
= {q}
U
P
O universo de Herbrand de P, isto e, o conjunto dos termos fechados da linguagem L
P
.
Ex:
U
P
= {c,f(c),g(c),f(f(c)),f(g(c)),g(f(c)),g(g(c)),. . . }
B
P
A base de Herbrand de L
P
, e o conjunto de todas as formulas atomicas fechadas da
linguagem L
P
. Ex:
B
P
= {p(c), q(c, c), r(c), p(f(c)), p(g(c)), q(f(c), c), . . .}
I
A
Cada estrutura de Herbrand de L
P
ca identicada por um subconjunto de B
P
(dos
atomos que s ao verdadeiros nessa estrutura)...Isto e, dada uma estrutura de Herbrand
A, existe um e um s o I
A
B
P
tal que, para cada smbolo relacional n-ario R de L
P
e
para t
1
, . . . , t
n
U
P
:
R(t
1
, . . . , t
n
) I
A
sse (t
1
, . . . , t
n
) R
A
Ex: Seja A tal que p
A
= r
A
= {c, f(c), g(c)} e q
A
= . Entao,
I
A
= {p(c), p(f(c)), p(g(c)), r(c), r(f(c)), r(g(c))}
. Nota que A |= P (porque?).
M
P
M
P
= I
A
P
, onde A
P
e modelo mnimo de Herbrand. Ex: M
P
= {r(t) | t U
P
}
Corolario 4.2. Seja P um programa denido. Ent ao
M
P
= { B
P
| P |= }
Exerccio 4.5. Mostra o corol ario anterior.
Exerccio 4.6. Mostra que M
P
I
A
para qualquer modelo de Herbrand A de P.
Exerccio 4.7. Para cada um dos programas denidos P e objectivos G descritos abaixo
determina:
L
P
Departamento de Ciencia de Computadores F.C.U.P.
4.2. UNIFICAC

AO 132
cada f ormula do programa e do objectivo sem ser na nota cao clausal (i.e com os quan-
ticadores e opera c oes l ogicas , e )
um modelo de Herbrand A de P
U
P
B
P
I
A
para o modelo de Herbrand A que escolheste
para G =
1
, . . . ,
k
determina os termos fechados t
1
,. . . ,t
n
tais que P |= (
1
. . .

k
)[t
1
/x
1
, . . . , t
n
/x
n
], onde x
1
,. . . ,x
n
s ao as vari aveis que ocorrem em G ou mostra que
P {G} e satisfazvel.
a) P : Nesimo(s(0), cons(x, y), x)
Nesimo(s(w), cons(y, z), x) Nesimo(w, z, x)
G : Nesimo(x, cons(y, cons(z, nil)), z)
b) P : Delete(x, cons(x, y), y)
Delete(x, cons(y, z), cons(y, w)) Delete(x, z, w)
G : Delete(y, cons(x, cons(y, nil), z)
c) P : Max(x, y, x) Less eq(y, x)
Max(x, y, y) Less eq(x, y)
Less eq(0, x)
Less eq(s(x), s(y)) Less eq(x, y)
G : Max(s(0), x, s(s(0)))

4.2 Unicacao
Deni cao 4.7. Uma substitui cao e uma func ao : Var T tal que o conjunto dos
x
i
Var com (x
i
) = t
i
= x
i
e nito. E escreve-se
= [t
1
/x
1
, . . . , t
n
/x
n
]
A substitui cao identidade e a substituic ao tal que (x) = x, para todo o x Var.
Uma substituic ao [t
1
/x
1
, . . . , t
n
/x
n
] e fechada se todos os t
i
s ao termos fechados.
Departamento de Ciencia de Computadores F.C.U.P.
4.2. UNIFICAC

AO 133
Por exemplo [f(a)/x, b/y, g(b, b)/z] e uma substitui cao fechada, mas n ao [f(y)/x, x/y, a/z]
Deni cao 4.8. Seja uma express ao E um termo, um literal, uma conjunc ao ou uma dis-
junc ao de literais. Uma express ao simples e um termo ou um atomo.
Seja = [t
1
/x
1
, . . . , t
n
/x
n
] e E uma express ao, E (ou (E)), uma inst ancia de E e a
express ao que resulta de E substituindo simultaneamente todas as ocorrencias de x
1
, . . . , x
n
por t
1
, . . . , t
n
. E e uma inst ancia fechada se n ao contiver vari aveis.
Se S = {E
1
, . . . , E
m
}, e um conjunto nito de express oes E
i
, e uma substituic ao, ent ao
S = {E
1
, . . . , E
m
}
Exemplo 4.9. Seja
E = P(x, y, f(a)) e = [b/x, x/y], E e P(b, x, f(a)),
E = f(x, g(y, z), z) e = [g(y, z)/x, a/z, z/y, f(f(b))/u], E e f(g(y, z), g(z, a), a),
E = P(f(x), x) e = [a/y], E e P(f(x), x).
Deni cao 4.9. Sejam = [s
1
/x
1
, . . . , s
n
/x
n
] e = [t
1
/y
1
, . . . , t
n
/y
n
] duas substituic oes, a
substitui cao composta : Var T , (x) = ((x)) = (x) e obtida de
[s
1
/x
1
, . . . , s
n
/x
n
, t
1
/y
1
, . . . , t
n
/y
n
]
retirando os s
i
= x
i
e todos t
j
/y
j
tal que y
j
{x
1
, . . . , x
n
}.
Sendo = [f(z)/x, a/y, y/z] e = [a/x, z/y, b/z, d/u], a composta e
= [f(b)/x, a/y, d/u]
Sendo = [c/x, f(z)/y, u/v] e = [v/u, x/z], a composta e
= [c/x, f(x)/y, v/u, x/z]
Proposi cao 4.4. Sendo , e substituic oes e E uma express ao tem-se que:
a) = =
b) E() = (E)
c) () = ()
Exerccio 4.8. Mostra a proposi c ao anterior.
Deni cao 4.10. Uma substituic ao e idempotente se = .
Deni cao 4.11. Dada uma express ao E, seja V o conjunto das vari aveis que ocorrem em
E. Uma substitui c ao = [y
1
/x
1
, . . . , y
n
/x
n
] e uma renomea cao de vari aveis para E se
o conjunto {x
1
, . . . , x
n
} est a contido em V , todos y
i
s ao distintos e (V \ {x
1
, . . . , x
n
})
{y
1
, . . . , y
n
} = .
Departamento de Ciencia de Computadores F.C.U.P.
4.2. UNIFICAC

AO 134
Deni cao 4.12. Duas express oes E e F s ao variantes se existirem substituic oes e tais
que E = F e F = E.
Exemplo 4.10. P(f(x, y), g(z), a) e uma variante de P(f(y, x), g(u), a). P(x, x) n ao e uma
variante de P(x, y).
Proposi cao 4.5. Sejam E e F duas variantes. Ent ao existem substituic oes e tais que
E = F e F = E e e s ao renomea c oes de vari aveis, respectivamente para F e E.
Demonstra c ao. Sejam
1
e
1
substitui coes tais que E = F
1
e F = E
1
. Seja V o conjunto
das vari aveis que ocorrem em E e seja a obtida de
1
retirando os elementos t/x, tais
que x / V . Entao F = E e E = F
1
= E
1
. Logo, tem de ser uma renomea cao de
vari aveis.
Seja S um conjunto nito de express oes simples.
Deni cao 4.13. Um unicador de S e uma substituic ao tal que S tem exactamente um
elemento. E diz-se que S e unicavel. Um unicador de S e um unicador mais geral
( umg) de S, se para qualquer unicador de S existir uma substituic ao tal que = .
Exemplo 4.11. {P(f(x), z), P(y, a)} e unic avel: [f(a)/y, a/x, a/z] e um unicador e [f(x)/y, a/z]
e um unicador mais geral. E = [a/x].
{P(y, g(u, z)), P(x, x)} e unic avel: [g(u, z)/y, g(u, z)/x] e um unicador mais geral
{P(f(x), a), P(y, f(w))} n ao e unic avel: pois a e f(w) n ao s ao unic aveis.
Se e forem dois umgs de S os elementos de S e S s ao variantes (porque?). Entao, pela
Proposi cao 4.5, os umgs de S s ao unicos a menos de renomea cao de vari aveis.
Deni cao 4.14. O conjunto de diferen cas de um conjunto nito S de express oes simples, e
dado por: localizar a posi c ao mais ` a esquerda, na qual nem todas as express oes de S tem o
mesmo smbolo, e extrair de cada uma a subexpress ao que come ca nessa posi c ao.
Exemplo 4.12. Para {R(f(x), g(h(z)), a), R(f(x), g((f(u)), b), R(f(x), g((w), a)} o conjunto
de diferencas e {h(z), f(u), w}. Para {R(f(a), g(x)), R(y, y)} o conjunto de diferencas e
{f(a), y}.
4.2.1 Algoritmo da Unicacao (de Robinson)
Dado um conjunto nito S de express oes simples, vamos descrever um algoritmo que retorna
um umg de S, se e s o se, S for unicavel:
1. Seja k = 0 e
0
=
Departamento de Ciencia de Computadores F.C.U.P.
4.2. UNIFICAC

AO 135
2. Se S
k
contem exactamente um elemento, entao parar e retornar
k
como umg de S.
Caso contr ario, determinar o conjunto de diferen cas D
k
de S
k
3. Se existirem v e t em D
k
tais que v e uma vari avel que n ao ocorre em t, entao
k+1
=

k
[t/v], incrementar k e voltar para 2. Caso contr ario, parar e indicar que S n ao e
unicavel.
Exemplo 4.13. S = {R(f(x), g(h(z)), a), R(y, g(f(u)), b), R(f(x), g(w), a)}

0
=
D
0
= {f(x), y},
1
= [f(x)/y] e
S
1
= {R(f(x), g(h(z)), a), R(f(x), g(f(u)), b), R(f(x), g(w), a)}
D
1
= {h(z), f(u), w},
2
= [f(x)/y][h(z)/w] = [f(x)/y, h(z)/w] e
S
2
= {R(f(x), g(h(z)), a), R(f(x), g(f(u)), b)}
D
2
= {h(z), f(u)}.
Logo, S n ao e unic avel.
Exemplo 4.14. Seja S = {P(a, x, h(g(z))), P(z, h(y), h(y))}. Ent ao,

0
=
D
0
= {a, z},
1
= [a/z] e S
1
= {P(a, x, h(g(a))), P(a, h(y), h(y))}
D
1
= {x, h(y)},
2
= [a/z, h(y)/x] e
S
2
= {P(a, h(y), h(g(a))), P(a, h(y), h(y))}
D
2
= {y, g(a)},
3
= [a/z, h(y)/x, g(a)/y] e
S
2
= {P(a, h(g(a)), h(g(a)))}.
Logo, S e o unic avel e
3
um umg de S.
Exemplo 4.15. S = {P(x, x), P(y, f(y))}.

0
=
D
0
= {x, y},
1
= [y/x] e S
1
= {P(y, y), P(y, f(y))}
D
1
= {f(y), y}. Como y ocorre em f(y), S n ao e unic avel.
Teorema 4.4. (do algoritmo da unica c ao) Seja um conjunto nito S de express oes
simples. Se S e unic avel, ent ao o algoritmo da unica c ao termina e retorna um umg de S.
Se S n ao e unic avel ent ao o algoritmo da unica c ao termina e reporta esse facto.
Departamento de Ciencia de Computadores F.C.U.P.
4.2. UNIFICAC

AO 136
Demonstra c ao. O algoritmo termina sempre: S s o tem um n umero nito de vari aveis e no
passo 3 uma vari avel e eliminada. Se S n ao e unicavel, p ara no passo 3 e reporta o facto. Se
S e unicavel, seja um unicador de S. Entao o algoritmo tem de parar no passo 2. Basta
provar que se
k
e a substitui cao da k +1-esima itera cao, entao existe
k
tal que =
k

k
(e
quanto parar,
k
e um unicador de S). Por indu cao em k:
Base. Para k=0, basta
0
=
Indu c ao. Suponhamos que para k existe
k
tal que =
k

k
, e |S
k
| > 1. Seja D
k
o
conjunto de diferen cas de S
k
. Como =
k

k
e unica S,
k
unica D
k
. Podemos
concluir que D
k
tem pelo menos uma vari avel v

(sendo um conjunto de diferen cas,


n ao podia ter termos todos com o mesmo smbolo funcional, mas para unicar n ao
podem ser distintos, logo tem de haver uma vari avel). Seja t

outro termo de D
k
. Entao
v

k
= t

k
. Logo v

n ao ocorre em t

. Seja entao,
k+1
=
k
[t

/v

]. E denimos

k+1
=
k
\ [v

k
/v

]. Se v

k
/v


k
entao

k
= [v

k
/v

]
k+1
(4.6)
[t

k
/v

]
k+1
(4.7)
[t

k+1
/v

]
k+1
n ao ocorre em t

(4.8)
[t

/v

]
k+1
deni c ao de composta (4.9)
Sen ao,
k+1
=
k
, todos os elementos de D
k
s ao vari aveis e
k
= [t

/v

]
k+1
.
Entao, =
k

k
=
k
[t

/v

]
k+1
=
k+1

k+1
.
Exemplo 4.16. (Regra de Resolu c ao) A regra da resolu c ao para cl ausulas de primeira
ordem pode ser denida usando a no c ao de unica c ao.
Dado L = {l
1
, . . . , l
n
} um conjunto de literais, seja L = {l
1
, . . . , l
n
}. Sejam C
1
e C
2
duas
cla usulas sem vari aveis em comum. Seja L
1
C
1
e L
2
C
2
, tal que L
1
e L
2
unicam com
umg .
A resolvente C de C
1
e C
2
e:
(C
1
L
1
) (C
2
L
2
)
Sendo {p(f(x), g(y)), q(x, y)} e {p(f(f(a)), g(z)), q(f(a), g(z))}. Um umg de {p(f(x), g(y))}
e {p(f(f(a)), g(z))} e [f(a)/x, y/z]. Ent ao, uma resolvente e
{q(f(a), z), q(f(a), g(z))}
Departamento de Ciencia de Computadores F.C.U.P.
4.3. O OPERADOR T
P
137
4.3 O operador T
P
Deni cao 4.15. Dado um programa denido P e um conjunto f ormulas at omicas fechadas
I B
P
,
T
p
(I) = { B
P
|
1
, . . . ,
n
e uma inst ancia fechada
duma cl ausula de P e {
1
, . . . ,
n
} I}
Para n (N), denimos T
P
n indutivamente por:
T
P
0 =
T
P
n = T
P
(T
P
(n 1))
e ainda
T
P
=
nN
T
P
n
Nota que
T
P
1 = T
P
()
= { B
P
| e uma inst ancia fechada
duma clausula de P}
Exemplo 4.17. Seja P:
S(f(x)) P(x, y), Q(y)
P(a, g(a))
P(b, g(b))
P(g(x), x) Q(x)
Q(a)
Q(c)
e I = {P(a, b), Q(b)}
T
P
(I) = {P(g(b), b), S(f(a)), P(a, g(a)), P(b, g(b)), Q(a), Q(c)}
Departamento de Ciencia de Computadores F.C.U.P.
4.3. O OPERADOR T
P
138
Exemplo 4.18. Para P do exemplo 4.17:
T
P
0 =
T
P
1 = {Q(a), Q(c), P(a, g(a)), P(b, g(b))}
T
P
2 = {P(g(a), a), P(g(c), c), P(b, g(b)), P(a, g(a)), Q(a), Q(c)}
T
P
3 = {P(g(a), a), P(g(c), c), P(b, g(b)), P(a, g(a)), Q(a), Q(c),
S(f(g(a))), S(f(g(c)))}
T
P
4 = {P(g(a), a), P(g(c), c), P(b, g(b)), P(a, g(a)), Q(a), Q(c),
S(f(g(a))), S(f(g(c)))}
.
.
.
T
P
= {P(g(a), a), P(g(c), c), P(b, g(b)), P(a, g(a)), Q(a), Q(c),
S(f(g(a))), S(f(g(c)))}
Exemplo 4.19. Seja P
Double(0, 0)
Double(s(x), s(s(y))) Double(x, y)
T
P
0 =
T
P
1 = {Double(0, 0)}
T
P
2 = {Double(0, 0), Double(s(0), s(s(0)))}
T
P
3 = {Double(0, 0), Double(s(0), s(s(0))),
Double(s(s(0)), s(s(s(s(0)))))}
.
.
.
T
P
= {Double(s(. . . s
. .
n
(0) . . .), s(. . . s
. .
2n
(0)) . . .)) | n N}
Proposi cao 4.6.
1. T
P
k T
P
(k + 1), para k 0
2. T
P
(T
P
) = T
P
, isto e, = T
P
e um ponto xo de T
P
Exerccio 4.9. Mostra a Proposi c ao 4.6.
A proposi cao seguinte caracteriza os modelos de Herbrand de um programa denido P:
Proposi cao 4.7. Seja P uma programa denido e A uma estrutura de Herbrand de L
P
. A
e um modelo de P (i.e A |= P) se e s o se T
P
(I
A
) I
A
.
Departamento de Ciencia de Computadores F.C.U.P.
4.4. RESPOSTA CORRECTA 139
Demonstra c ao. A |= P sse para cada inst ancia fechada
1
, . . . ,
n
de qualquer clausula
de P, se A |=
1
, . . . , A |=
1
, entao A |= . Mas entao, por deni cao de I
A
, se
1
, . . .
n
I
A
entao I
A
. Isto e, se T
P
(I
A
) entao I
A
.
Em particular, para qualquer programa P, a estrutura de Herbrand A tal que I
A
= B
P
e um
modelo de P. (porque?)
Teorema 4.5. Seja P um programa denido, M
P
= T
P

Demonstra c ao. : A estrutura de Herbrand A tal que I
A
= T
P
e um modelo de P,
porque T
P
(T
P
) = T
P
. Entao M
P
T
P
.
: mostra-se por indu cao sobre n que se T
P
n entao P |= . (mostra!) Entao
T n M
P
, para todo n N, logo T M
P
.
Exemplo 4.20. Para o programa P do exemplo 4.19,
M
P
= {Double(s(. . . s
. .
n
(0) . . .), s(. . . s
. .
2n
(0)) . . .)) | n N}
Exerccio 4.10. Para os programas denidos do exerccio 4.7 determina o T (=M
P
).
4.4 Resposta correcta
Deni cao 4.16. Seja P um programa denido e G um objectivo. Uma resposta para P {G}
e uma substitui c ao para vari aveis que ocorrem em G.
Para P do exemplo 4.19, P { Double(x, s(y)}, [s(0)/x] e uma resposta.
Deni cao 4.17. Seja P um programa denido e G um objectivo
1
, . . . ,
k
, k 1 e
uma resposta para P {G}. e uma resposta correcta para P {G} sse
P |= x
1
. . . x
s
((
1
. . .
k
))
onde x
1
, . . . , x
s
s ao as vari aveis que ocorrem em (
1
. . .
k
).
Entao, e uma resposta correcta sse P {x
1
. . . x
s
((
1
. . .
k
))} e n ao satisfazvel.
Para o exemplo acima:
[s(0)/x, s(0)/y] e uma resposta correcta.
[s(z)/x, s(z)/y] n ao e uma resposta correcta.
Se P {G} n ao e satisfazvel entao P |= (
1
. . .
n
). Isto quer dizer que existe uma
substitui cao fechada tal que P |= (
1
. . .
n
). Suponhamos que podemos escrever
Departamento de Ciencia de Computadores F.C.U.P.
4.5. RESOLUC

AO-SLD 140
= tal que em que P |= (
1
. . .
n
) para qualquer substitui cao fechada . Entao
temos que P |= (
1
. . .
k
), i.e., e uma resposta correcta para G.
Podemos relacionar as respostas correctas com o modelo mnimo de Herbrand de um programa
denido:
Teorema 4.6. Seja P um programa denido, G um objectivo
1
, . . . ,
k
, k 1 e uma
resposta para P {G}, tal que (
1
. . .
k
) e fechada. Ent ao s ao equivalentes:
1. e uma resposta correcta
2. se A e um modelo de Herbrand para P, ent ao A |= (
1
. . .
k
)
3. A
P
|= (
1
. . .
k
)
Demonstra c ao. Obviamente 12 e 23. Basta ver que 31:
A
P
|= (
1
. . .
k
) A |= (
1
. . .
k
), para qualquer A modelo de
Herbrand para P
A |= (
1
. . .
k
), para qualquer A modelo de
Herbrand para P
P{(
1
. . .
k
)} n ao tem modelos de Herbrand
(e como (
1
. . .
k
) e uma clausula!)
P {(
1
. . .
k
)} n ao e satisfazvel.
4.5 Resolucao-SLD
Vamos denir um sistema dedutivo que permita determinar se P {G} n ao e satisfazvel e,
nesse caso, calcular uma resposta.
Deni cao 4.18. Seja G um objectivo
1
, . . . ,
m
, . . . ,
k
e
1
, . . . ,
q
, uma cl ausula
C. G

e derivado por resolu c ao de G e C, com unicador mais geral se:


1.
m
e o atomo seleccionado em G
2. e um umg de
m
e
3. G

e (
1
, . . . ,
1
, . . . ,
q
, . . . ,
k
)
Isto e,

1
, . . . ,
m
, . . . ,
k

1
, . . . ,
q
(
1
, . . . ,
1
, . . . ,
q
, . . . ,
k
)
G

diz-se a a resolvente de G e C.
Departamento de Ciencia de Computadores F.C.U.P.
4.5. RESOLUC

AO-SLD 141
Deni cao 4.19. Seja P um programa denido e G um objectivo. Uma deriva cao SLD de
P {G} e constituda por:
uma sequencia (nita ou innita) G
0
= G, G
1
, G
2
, . . . de objectivos
uma sequencia C
1
, C
2
, . . . de variantes de cl ausulas em P, de modo a que nenhuma
vari avel de C
i
tenha ocorrido antes na deriva c ao
uma sequencia de substituic oes
1
,
2
, . . . tal que cada G
i+1
foi derivado (por resolu c ao)
de G
i
e C
i
com umg
i+1
A sigla SLD signica Resolu cao Linear com fun cao de Sele cao para Cl ausulas Denidas.
G
0
= G C
1
,
1

G
1
C
2
,
2

G
2
.
.
.
G
n1
C
n
,
n

G
n

.
.
.
Deni cao 4.20. Uma refuta cao-SLD de P{G} e uma deriva c ao SLD nita de P{G} cujo
ultimo objectivo e a cl ausula vazia (). Se G
n
= dizemos que a refutac ao tem comprimento
n.
Exemplo 4.21. Seja P: Max(x, y, x) Less eq(y, x)
Max(x, y, y) Less eq(x, y)
Less eq(0, x)
Less eq(s(x), s(y)) Less eq(x, y)
e G : Max(s(0), x, s(s(0)))
Uma refuta c ao para P {G} de comprimento n = 3 e:
Max(s(0), x, s(s(0))) (Max(x
1
, y
1
, y
1
) Less eq(x
1
, y
1
)

1
= [s(0)/x
1
, s(s(0))/y
1
, s(s(0))/x])
Less eq(s(0), s(s(0))) (Less eq(s(x
2
), s(y
2
)) Less eq(x
2
, y
2
))

2
= [0/x
2
, s(0)/y
2
])
Less eq(0, s(0)) (Less eq(0, x
3
) ,
3
= [s(0)/x
3
])

Departamento de Ciencia de Computadores F.C.U.P.


4.5. RESOLUC

AO-SLD 142
Deni cao 4.21. Seja P um programa denido e G um objectivo. Se
1
,. . . ,
n
for a sequencia
de umgs usada numa refutac ao-SLD de P {G}, a resposta calculada para P {G} e a
restric ao da substitui c ao composta
1
. . .
n
` as vari aveis de G.
Exemplo 4.22. Para a refuta c ao do exemplo 4.21, a resposta calculada e a restric ao de

1
. . .
3
= [s(0)/x
1
, s(s(0))/y
1
, s(s(0))/x][0/x
2
, s(0)/y
2
][s(0)/x
3
]
= [s(0)/x
1
, s(s(0))/y
1
, s(s(0))/x, 0/x
2
, s(0)/y
2
, s(0)/x
3
]
` a vari avel x, i.e, = [s(s(0))/x]
Exerccio 4.11. Sendo G = Max(x, y, y), Max(y, s(0), s(0)), determina uma resposta cal-
culada para P {G}.
4.5.1 Integridade da resolucao SLD
Teorema 4.7. (Integridade da resolu c ao SLD) Seja P um programa denido e G um
objectivo. Toda a resposta calculada para P {G} e uma resposta correcta para P {G}.
Demonstra c ao. Seja G um objectivo
1
, . . . ,
k
e seja uma refuta cao de comprimento n
para P{G}, constituda por G
0
= G, G
1
, . . . , G
n
objectivos, C
1
, . . . , C
n
variantes de clausulas
de P e
1
, . . . ,
n
umgs. Mostramos por indu cao sobre n que P |= ((
1
. . .
k
)
1
. . .
n
):
Base. Para n=1, tem-se G =
1
, C = e
1

1
=
1
. E, como C e uma variante
duma clausula de P, P |= (
1

1
)
Indu c ao. Suponhamos que o resultado e valido para refuta coes de comprimento menor que
n. Seja C
1
=
1
, . . . ,
q
(q 0) e seja
m
o atomo seleccionado em G. Por hip otese
indu cao,
P |= ((
1
. . .
m1

1
. . .
q

m+1
. . .
k
)
1
. . .
n
)
Para q > 0, resulta em particular que P |= ((
1
. . .
q
)
1
. . .
n
).
Mas (
m

1
. . .
n
) e igual a (
1
. . .
n
), donde P |= (
m

1
. . .
n
), logo
P |= ((
1
. . .
k
)
1
. . .
n
)
.
Corolario 4.3. Seja P um programa denido e G um objectivo. Se existir uma refutac ao-SLD
de P {G}, ent ao P {G} n ao e satisfazvel.
Departamento de Ciencia de Computadores F.C.U.P.
4.5. RESOLUC

AO-SLD 143
Demonstra c ao. Seja G um objectivo
1
, . . . ,
k
e uma resposta calculada para P {G}.
Pelo teorema 4.7, e uma resposta correcta para P {G}, i.e, P |= (
1
. . .
k
), logo
P {G} n ao e satisfazvel.
Deni cao 4.22. Dado um programa denido P o conjunto sucesso de P e
Suc(P) = { B
P
| existe uma refutac ao de P { }}.
Podemos considerar Suc(P) uma vers ao sint actica de M
P
...na realidade:
Lema 4.1. Dado um programa denido P, Suc(P) M
P
.
Demonstra c ao. Se Suc(P), entao existe uma refuta cao SLD de P { }, donde pela
integridade, P |= . Logo, M
P
Vamos ver que tambem M
P
Suc(P).
Deni cao 4.23. Uma refutac ao-SLD n ao restringida e uma refutac ao-SLD em que se usam
substituic oes
1
,
2
, . . . que s ao unicadores, mas n ao necessariamente unicadores mais ge-
rais.
Vamos ver que se h a uma refuta cao-SLD n ao restringida entao tambem existe uma refuta cao-
SLD...
Lema 4.2. Seja P um programa denido e G um objectivo tal que existe uma refutac ao-SLD
n ao restringida de P {G} de comprimento n com unicadores
1
, . . . ,
n
. Ent ao existe uma
substituic ao e uma refutac ao-SLD de P {G} de comprimento n e com umgs

1
. . .

n
tal
que
1
. . .
n
=

1
. . .

Demonstra c ao. Por indu cao sobre n.


Base. Para n = 1. Tem-se que G
0
= , G
1
= , C
1
=
1
e
1

1
=
1
. Mas entao existe
um unicador mais geral

1
de {,
1
}, donde existe tal que
1
=

1
. E entao tem-se
uma refuta cao de comprimento 1 e umg

1
.
Indu c ao. Suponhamos que o resultado e valido para refuta coes de comprimento < n. Seja
G
0
= G, G
1
, G
2
, . . . , G
n
= uma refuta cao n ao restringida, com variantes de clausulas
C
1
, . . . , C
n
e unicadores
1
, . . . ,
n
. Entao existe um umg

1
para o atomo seleccionado
em G e a cabe ca de C
1
, tal que
1
=

1
para alguma substitui cao . Logo existe
uma refuta cao n ao restringida para P {G}, G
0
= G, G

1
, G
2
, . . . , G
n
= , com com
variantes de clausulas C
1
, . . . , C
n
e unicadores

1
,
2
, . . . ,
n
tal que G
1
= G

1
. Por
hip otese de indu cao existe para P {G

1
}, uma refuta cao-SLD G

1
, G
2
, . . . , G
n
= com
Departamento de Ciencia de Computadores F.C.U.P.
4.5. RESOLUC

AO-SLD 144
umgs

2
. . .

n
tal que
2
. . .
n
=

2
. . .

n
, para alguma substitui cao . Logo existe
P {G}, uma refuta cao-SLD G
0
= G, G

1
, G
2
, . . . , G
n
= com umgs

2
. . .

n
tal que

1
. . .
n
=

2
. . .
n
=

2
. . .

n
.
Lema 4.3. Seja P um programa denido, G um objectivo e uma substituic ao. Suponhamos
que existe uma refutac ao-SLD para P {G} de comprimento n e com umgs
1
, . . . ,
n
. Ent ao
existe uma substitui c ao e uma refutac ao-SLD para P {G} de comprimento n e com umgs

1
, . . . ,

n
tal que
1
. . .
n
=

1
. . .

n
.
Demonstra c ao. Suponhamos que, no primeiro passo, C
1
e uma variante duma clausula de
P tal que C
1
= C
1
. Entao
1
e um unicador da cabe ca de C
1
e do atomo em G que
corresponde ao atomo seleccionado em G. A resolvente de G e C
1
com unicador
1
e
precisamente G
1
. Entao obtemos uma refuta cao n ao restringida de P {G} que e identica `a
refuta cao original de P {G} a menos do primeiro passo, pois come ca com G e utiliza
1
.
Basta agora aplicar o lema 4.2.
Teorema 4.8. Seja P um programa denido, Suc(P) = M
P
.
Demonstra c ao. Suc(P) M
P
: pelo lema 4.1.
M
P
Suc(P): Seja M
P
. Entao T
P
. Logo, existe n N tal que T
P
n.
Mostramos por indu cao sobre n que existe uma refuta cao de P { },i.e, Suc(P).
Base. Para n = 0 e trivial.
Indu c ao. Suponhamos que o resultado se verica para T
P
i, i < n, e seja T
P
n.
Entao existe uma inst ancia fechada
1

1
, . . . ,
k
de uma clausula de P, tal que

1
, . . . ,
k
T
P
(n 1) e =
1
. Por hip otese de indu cao, existem refuta coes
de P {
j
}, para j = 1, . . . , k e como cada
j
e um atomo fechado e possvel
combinar essas refuta coes para uma refuta cao de P { (
1
, . . . ,
n
)}. Logo, existe
uma refuta cao-SLD n ao restringida para P { } e pelo lema 4.2 uma refuta cao-SLD.
4.5.2 Completude da resolucao-SLD
Teorema 4.9. Seja P um programa denido e G um objectivo tal que P {G} n ao e satis-
fazvel. Ent ao existe uma refuta c ao-SLD de P {G}.
Demonstra c ao. Seja G o objectivo
1
, . . . ,
k
. Como P {G} n ao e satisfazvel, entao
P (
1
. . .
k
). E tambem, existe P (
1
. . .
k
), e tal que
i
s ao
Departamento de Ciencia de Computadores F.C.U.P.
4.5. RESOLUC

AO-SLD 145
atomos fechados. Logo {
1
, . . . ,
k
} M
P
e pelo Teorema 4.8 existe uma refuta cao de
P {
i
}, para i = 1, . . . , k. Podemos entao obter uma refuta cao para P {G} e aplicar
o lema 4.3.
Lema 4.4. Seja P um programa denido e um atomo tal que P |= x
1
. . . x
s
, onde
x
1
, . . . , x
s
s ao as vari aveis em . Ent ao existe uma refutac ao-SLD de P { } cuja
resposta e uma substitui c ao identidade.
Demonstra c ao. Consideremos temporariamente, P como um conjunto de clausulas da lingua-
gem alargada L

= L
P
{a
1
, . . . , a
s
} onde a
i
s ao constantes novas e distintas. Entao, P |=
para = [a
1
/x
1
, . . . , a
s
/x
s
]. Mas e fechado, pelo Teorema 4.8, existe uma refuta cao para
P { }. Substituindo nessa refuta cao as ocorrencias de a
i
por x
i
, para i = 1, . . . , s,
obtemos uma refuta cao para P { } cuja resposta e uma substitui cao identidade.
Nao vamos ter exactamente inverso do teorema da integridade, dado que as respostas calcu-
ladas s ao todas com umgs.
Teorema 4.10. (Completude da resolu c ao SLD) Seja P um programa denido e G um
objectivo. Para toda a resposta correcta para P {G}, existe uma resposta calculada de
P {G} e uma substitui c ao , tal que =
Demonstra c ao. Seja G o objectivo
1
, . . . ,
k
. Como e uma resposta correcta para
P {G}, tem-se que P |= x
1
. . . x
s
(
1
. . .
k
)
Pelo lema 4.4, para i = 1, . . . , k existe uma refuta cao de P{
i
} que tem uma substitui cao
identidade, como resposta calculada. Combinando estas refuta coes e possvel obter uma
refuta cao de P {G}, cuja resposta calculada e a identidade.
Seja entao
1
, . . . ,
n
a sequencia de umgs utilizada na refuta cao de P {G}. Entao
G
1
. . .
n
= G. Aplicando o lema 4.3, existe uma refuta cao de P {G} com umgs

1
, . . . ,

n
tal que
1
. . .
n
=

1
. . .

, para algum

. Tomando as restri coes `as vari aveis de G, de

1
. . .

n
e de

, vem = .
Leituras suplementares [Llo87] [BA01] (Cap. 7,8)
Departamento de Ciencia de Computadores F.C.U.P.
Apendice A
Sistema de deducao natural para a
logica proposicional
Introdu cao Elimina cao

E
1

E
2



I
1


I
2

[] []
.
.
.
.
.
.

[]
.
.
.
F

E
F

.
.
.

F
FI()
F

FE

[]
.
.
.

E
Departamento de Ciencia de Computadores F.C.U.P.
147
Regra da Repeti cao

R
Algumas regras derivadas:

MT

I
[]
.
.
.
F

RA

TE
Departamento de Ciencia de Computadores F.C.U.P.
Bibliograa
[And86] Peter B. Andrews. An Introduction to Mathematical Logic and Type Theory:To
Truth Through Proof. Academic Press, Orlando, Florida, 1986.
[BA01] Mordechai Ben-Ari. Mathematical Logic for Computer Science. SV, 2nd edition,
2001.
[BE00] Jon Barwise and John Etchmendy. Language, Proof, and Logic. CSLI, 2000.
[Bro00] Sabine Broda. Apontamentos de logica computacional. Technical report, Departa-
mento de Ciencia de Computadores, FCUP, 2000.
[DLL62] Martin Davis, George Logemann, and Donald Loveland. A machine program for
theorem proving. Communications of the ACM, 5(7):394397, July 1962.
[DP60] Martin Davis and Hilary Putnam. A computing procedure for quantication theory.
Journal of the ACM, 7(3):201215, July 1960.
[Fit90] Melvin Fitting. First-Order Logic and Automated Theorem Proving. Springer-
Verlag, 1990.
[GLM97] Jean Goubault-Larrecq and Ian Mackie. Proof Theory and Automated Deduction.
Kluwer Academic Press, 1997.
[HR00] Michael Huth and Mark Ryan. Logic in Computer Science: Modelling and reasoning
about systems. CUP, 2000. 430 DCCBIB.
[Koz97] Dexter C. Kozen. Automata and Computability. Undergraduate texts in computer
science. Springer, 1997.
[Llo87] J.W. Lloyd. Foundations of Logic Programming. SV, 1987.
[Pap94] Christos H. Papadimitriou. Computational Complexity. Addison Wesley, 1994.
[Smu95] Raymond M. Smullyan. Fisrt-order Logic. Dover Publications, 1995.
Departamento de Ciencia de Computadores F.C.U.P.

Indice
B
P
base de Herbrand
programa denido, 114
I
A
programa denido, 114
L
P
linguagem
programa denido, 114
M
P
programa denido, 114
Suc(P)
conjunto sucesso, 126
T
P
programa denido, 120
U
P
Universo de Herbrand
programa denido, 114
atribui cao
de valores de verdade, 8
axiomas
n ao logicos, 86
axiomatiza cao, 91
completa, 91
cabe ca
clausula, 108
clausula
logica proposicional, 44
logica de primeira ordem, 106
completo
conjunto de conectivas, 11
completude
logica proposicional, 33
conjunto consistente
logica de primeira ordem, 77
conjunto de diferen cas, 117
consequencia sem antica, 55
logica proposicional, 9
contradi cao
logica proposicional, 24
logica proposicional, 9
contraposi cao
logica proposicional, 29
corpo
clausula, 108
dedu cao, 18
, 18
demonstra cao, 18
demonstra cao por casos
logica proposicional, 24
deriva cao
SLD, 123
dupla nega cao
logica proposicional, 28
elimina cao da disjun cao
logica proposicional, 21
F
logica proposicional, 24
elimina cao da conjun cao
Departamento de Ciencia de Computadores F.C.U.P.

INDICE 150
logica proposicional, 20
elimina cao da implica cao
logica proposicional, 26
elimina cao da nega cao
logica proposicional, 23
elimina cao de
logica de primeira ordem, 64
equivalencia sem antica
logica proposicional, 10
estrutura
linguagem de primeira ordem, 53
estrutura de Herbrand, 111
express ao, 116
formula
da logica proposicional, 6
formula de Horn
logica de primeira ordem, 108
formula de Horn
logica proposicional, 16
formulas
atomicas
linguagem primeira ordem, 48
linguagem primeira ordem, 48
, 60
falsa
proposi cao
logica primeira ordem, 56
forma booleana, 59
forma normal
conjuntiva, 15
disjuntiva, 13
negativa, 13
forma normal prenexa
lpo, 62
fun cao de verdade, 10
inconsistente
logica proposicional, 24
indecidibilidade
lpo, 100
inst ancia
de uma express ao, 116
fechada, 116
integridade
logica proposicional, 33
sistema dedutivo DN
logica de primeira ordem, 75
DN
logica proposicional, 33
interpreta cao
das vari aveis, 53
introdu cao da conjun cao
logica proposicional, 20
introdu cao da disjun cao
logica proposicional, 21
introdu cao da implica cao
logica proposicional, 26
introdu cao da nega cao
logica proposicional, 23
introdu cao de
logica de primeira ordem, 65
introdu cao de
logica de primeira ordem, 64
F
logica proposicional, 23
lema da dedu cao
logica de primeira ordem, 77
logica proposicional, 27
linguagem
logica de 1
a

ordem, 47
logica proposicional, 6
Departamento de Ciencia de Computadores F.C.U.P.

INDICE 151
literal
logica proposicional, 13
negativo, 106
positivo, 106
lpo
logica de primeira ordem, 46
modelo
duma proposi cao, 56
modus ponens
logica proposicional, 26
modus tollens
logica proposicional, 27
negativa, 108
nota cao uniforme
logica proposicional, 42
nota cao clausal, 106
objectivo, 108
omissao de parentesis
lpo, 49
paradoxo
de Russel, 89
programa denido, 109
proposi cao
logica de primeira ordem, 50
redu cao ao absurdo
logica proposicional, 28
refuta cao
SLD, 124
logica proposicional, 41
regra da dedu cao
logica proposicional, 26
renomea cao de vari aveis, 117
repeti cao
logica proposicional, 22
resolu cao
regra de inferencia
logica proposicional, 44
SLD, 123
resolvente, 123
logica proposicional, 44
resposta, 122
calculada, 124
correcta, 122
smbolo
de igualdade, 47
funcional, 47
logico, 47
n ao logico, 47
predicado, 47
satisfaz
logica primeira ordem, 55
satisfazvel
formula
linguagem primeira ordem, 55
formula proposicional, 9
|=, 54
sistema de dedu cao natural
logica de primeira ordem, 63
logica proposicional, 19
Skolemiza cao, 107
sub-f ormula, 7
imediata, 7
sub-f ormulas principais, 59
substitui cao, 116
composta, 116
fechada, 116
idempotente, 117
identidade, 116
Departamento de Ciencia de Computadores F.C.U.P.

INDICE 152
lpo, 61
tabelas de verdade, 8
tableau
dedu cao
logica proposicional, 43
fechado
logica proposicional, 43
logica proposicional, 43
satisfazvel
logica proposicional, 43
tautologia
logica proposicional, 9
teoria
completa, 91
duma estrutura, 91
ingenua dos conjuntos, 88
terceiro excludo
logica proposicional, 28
termo
linguagem de primeira ordem, 47
livre para uma vari avel, 61
termo fechado
linguagem de primeira ordem, 48
unicador
mais geral, 117
unicador, 117
unit aria
clausula, 108
valida
formula
linguagem primeira ordem, 55
vari avel
ocorrencia ligada, 50
ocorrencia livre, 50
ocorrencia n ao livre, 50
vari avel substituvel, 61
variante
express ao, 117
vazia
clausula, 108
verdadeira
proposi cao
logica primeira ordem, 56
Departamento de Ciencia de Computadores F.C.U.P.