UNIVERSIDADE FEDERAL DO RIO DE JANEIRO

Propaganda
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO
Instituto de Matemática
Lógica
Profa Sheila Regina Murgel Veloso
EMENTA
Conjuntos Indutivos e Teorema da Recursão
Cálculo Proposicional
- Sistema dedutivo (Dedução natural)
- Satisfatibilidade
- Teorema da Completude
- Aplicações: circuitos
quebra-cabeças
Cálculo de predicados
- Um sistema dedutivo: dedução natural
- Semântica
Outros sistemas dedutivos: resolução
tableaux
BIBLIOGRAFIA INDICADA
Rubin, J. Mathematical Logic: Applications and Theory, Saunders College
Publishing, 1990
Mota, M. Introdução a lógica Escola de Computação, 1994
Suppes, P., Introduction to Logic, D. Van Nostrand Co, 1957
Enderton, H., Mathematical Logic, Academic Press. N.Y. 1972
Casanova, M. A., Giorno, F. A. C., Furtado, A. L.- Programação em Lógica
e a Linguagm PROLOG Ed. Blücher LTDA, 1987
Parte 1: Conceitos básicos
INDUÇÃO
Existe um tipo de construção muito usado em lógica e em outros
ramos da matemática que é o seguinte:
Pretendemos construir um subconjunto de um conjunto conhecido U,
começando com um certo conjunto inicial e vamos construir o conjunto
desejado pela aplicação repetida de certas operações sobre os elementos do
conjunto inicial. O conjunto desejado é o menor subconjunto de U que
contem o conjunto inicial e é fechado sob tais operações, isto é, os elementos
do conjunto desejado são aqueles que podem ser construídos a partir do
conjunto inicial pela aplicação de um número finito de vezes das operações.
Por exemplo, dado U = R, desejamos construir os números naturais a partir
do conjunto inicial {0} pela aplicação repetida da função f(x) = x + 1.
N é o menor subconjunto dos reais que contém {0} e é fechado sob f. Em
lógica esta construção pode ser usada para obtermos a linguagem da lógica:
o conjunto construído é o conjunto das fórmulas bem formadas da lógica.
Para simplificar, vamos considerar um conjunto inicial B  U e um conjunto
de funções F = {f, g}, com f binária ( f: U x U  U ) e g unária (g: U  U).
Se, por exemplo, B contem os pontos a e b, então o conjunto a ser
construído, C, vai conter os pontos: f(a, a), f(a, b), f(b, b), g(a), g(b), g(g(a)),
g(f(a, a)), etc.
Existem duas maneiras de construir o conjunto C:
1) De cima para baixo:
 Dizemos que um conjunto S  U é fechado sob f e g se e só se: se x e
y são elementos de S, então f(x, y)  S e g(x)  S.
 Dizemos que S é indutivo (com respeito a B e F) se e só se: B  S e S
é fechado sob f e g.
 Defina C como a interseção de todos os subconjuntos indutivos de U,
i.e. C é subconjunto de qualquer subconjunto indutivo de U. (Ou seja,
se x  C, então x  S para qualquer subconjunto indutivo S  U.)
 C é o conjunto C procurado.
É fácil ver que C é indutivo.
2) De baixo para cima:
Vamos construir um conjunto C consistindo de todos os elementos de U
que possam ser obtidos a partir de B pela aplicação de um número finito
de vezes de f e/ou g.
 Primeiramente, defina uma seqüência de construção, como sendo uma
seqüência finita <x0, ..., xn> de elementos de U, tal que para cada i <
n:
 xi  B ou
 xi = f(xj, xk) para algum j, k < i ou
 xi = g(sj) para algum j < i
 Defina, para cada n > 1, Cn = {x | existe uma seqüência de construção
de tamanho = n cujo último elemento é x}. Assim, C1 = B e Ci  Ci+1.
 Defina C =  Cn.
isto é, C é o conjunto de todos os pontos x de U, tais que existe uma
seqüência de construção cujo último elemento é x.
Exemplo 1
Se a e b  B, então g(f(a, f(b, b)))  C5, já que existe uma seqüência
de comprimento 5 cujo último elemento é g(f(a, f(b, b))), a saber: <a, b, f(b,
b), f(a, f(b, b)), g(f(a, f(b, b)))>.
Outra forma de verificar isto é pela árvore abaixo:
g(f(a, f(b, b)))
f(a, f(b, b))
a
.
f(b, b)
b
b
Exemplo 2
Sejam U = R, B ={0}, F = {S}, onde S é a operação S(x) = x + 1.
Então, C= {0,1,2, ...} = N.
Observe que cada elemento de C só pode ser obtido de uma única maneira,
por exemplo, 2=SS(0) e não há outra forma de obter 2 pela aplicação
sucessiva de S.
Exemplo 3
Sejam U = R, B ={0}, F = {S, P}, onde S e P são as operações
S(x) = x + 1 e P(x) = x – 1.
Então, C = {..., -2, -1, 0, 1, 2 ...} = Z.
Notar que existe mais de uma maneira de obtermos o número 2:
S(S(0)) e S(P(S(S(0))))
NOTA: Pode-se verificar que C = C, o que é um bom exercício para o
leitor.
Exercício
Sejam C e C os conjuntos obtidos pelas construções de cima para baixo e
de baixo para cima, respectivamente.
Mostre que C = C
[ Dica mostre que:
1) C  C, mostrando que C é indutivo
2) C  C, tomando um elemento x  C e uma seqüência <x0, ..., xn>,
onde xn = x e mostrando, por indução em n, que x  C ]
Já que C = C, vamos denotar C e C por C e dizemos que C é o
conjunto gerado de B pelas funções em F.
Princípio da indução
Seja C o conjunto gerado de B pelas funções de F. Se S é um
subconjunto de C tal que B  S e S é fechado sob as funções de F, estão S =
C.
Prova
Por hipótese e pela definição de indutivo, S é indutivo, logo C  S. Como S
 C, então, S = C.
Um conjunto indutivo C é livremente gerado de B pelas funções em F sse C
é gerado de B pelas funções de F e :
 B Im(f)= 
 B Im(g)= 
 Im(g) Im(f)= 
 f e g são injetivas.
Teorema da recursão
Seja C o conjunto livremente gerado de B U por F (supor, por
simplicidade que F = {f, g}, onde f é binário e g, unário).
Dados h: B  V; G: V  V e F: V x V  V, existe uma única função h’: C
 V estendendo h (h’(x) = h(x) para x  B ) tal que:
- h’(f (x, y)) = F(h’(x), h’(y))
- h’(g(x)) = G (h’(x))
(i.e. basta definir como a função h’ se comporta em B e dizer como ela se
comporta em relação aos geradores f e g (através das funções F e G))
Exercícios
Prove usando indução matemática
(a) 1 + 2 + 4 + ... + 2n-1 = 2n -1 ;
(b) 1 x 1 + 2 x 2 + 3 x 4 + 4 x 8 + ... + n x 2n-1 = ((n - 1) x 2n ) + 1 ;
(c) Se n  10, então 2n > n3 .
(d) a expressão de Nicomachus (100 D.C.) para calcular o cubo de um
número : 13 = 1 ; 23 = 3 + 5 ; 33 = 7 + 9 + 11 ; 43 = 13 + 15 + 17 + 19; ...
(e) a identidade : 13 + 23 + 33 + ... + n3 = (1 + 2 + ... + n)2
Nota: defina SC e use o principio da indução.
RELAÇÕES E FUNÇÕES
Seja C um conjunto não vazio.
para n1,
- R  Cn é chamada uma propriedade ou uma relação n-ária em C
(binária, se n=2)
- uma relação R  Cn é uma função (n-1)-ária, de Cn-1 em C, se (a1, a2, ...,
an-1, a)  R e (a1, a2, ..., an-1, b)  R implica que a = b .
Usamos a notação R: Cn-1 C e R(a1, a2, ..., an-1)= a, para (a1, a2, ..., an-1, b)
 R quando R  Cn é uma função.
C0 é um conjunto unitário. Vamos definir C0= {0}. Assim, um elemento de
aC pode ser visto como uma função 0-ária F: {0}  C tal que F(0)=a.
Uma função F: Cn-1 A é injetiva se e só se: F(a1, a2, ..., an-1) = a e F(a1, a2,
..., an-1) = b implica que a=b.
Uma função F: Cn-1  A é bijetiva se e só se: para todo aA, F(a1, a2, ..., an1)= a, para algum (a1, a2, ..., an-1)
Download