DEFINIÇÕES RECURSIVAS E PROVAS
INDUTIVAS
POR MARCELINO PEQUENO
NOTA DE AULA 5
Fortaleza, 03 de junho de 2006
1.
Definições Recursivas de Conjunto
Podemos definir recursivamente um conjunto ℂ se damos os elementos iniciais do conjunto
(a base) e damos leis de formação para gerar novos elementos a partir de elementos já
pertencentes ao conjunto.
Base: Elementos x1, ..., xi, ... pertencentes a ℂ, dizemos que B = {x1, ..., xi, ...} é a base do
conjunto ℂ.
Recorência: Se x1, ..., xk ∈ ℂ então f(x1, ...,xk) ∈ ℂ; onde f é uma operação a ser definida
para o conjunto que se está definindo.
Pode se ter várias recorrências (leis de formação) para o mesmo conjunto.
Exemplo 1. O conjunto dos números Naturais pode ser definido recursivamente.
Base:
0 é um número natural.
Recorrência:
Se n é um número natural então n+ 1 também é número natural.
Exemplo 2. O conjunto das fórmulas proposicionais da lógica.
Base:
As letras proposicionais (P, Q, R, ... com ou sem índices) são fórmulas, chamadas de
fórmulas atômicas.
Recorrência:
Se e são fórmulas então ( ), ( ), ( ) e () são fórmulas.
Exemplo 3. A relação binária Ancestral(x, y) representando que x é ancestral de y, pode ser
definida como:
Base:
Se x é pai de y então x é ancestral de y.
Recorrência:
Se x é pai de z e z é ancestral de y então x é ancestral de y.
1
Exemplo 4. Seja A um alfabeto de símbolos e seja A* o conjunto de todos os strings
(cadeias) de símbolos do alfabeto A. Defina recursivamente o subconjunto dos palíndromos
de A*, i.e., o conjunto dos strings que são iguais se lidas de frente para trás ou de trás para
frente.
Base:
O string unitário α (α ∈ A) e o string vazio são palíndromos.
Recorrência:
Se x é um palíndromo então αxα é um palíndromo, onde α é um símbolo do alfabeto A.
2.
Provas Indutivas
O grande benefício em se definir um conjunto recursivamente é que agora se pode fazer
provas indutivas sobre o conjunto, isto é, se quisermos provar que todos elementos do
conjunto possuem uma propriedade P, basta mostrar que os elementos da base possuem a
propriedade e assumindo que os elementos da recorrência possuem a propriedade (Hip.
Indutiva) mostrar que os elementos gerados também têm a propriedade.
Indução Estruturada em um conjunto ℂ definido recursivamente.
Para provar x∈ℂ P(x), onde P é uma propriedade qualquer, basta provar:
1. Base: Se x ∈ B então P(x).
2. Passo Indutivo:
H.I: Assuma que os elementos x1, ..., xk possuam a propriedade P, i.e., P(x1), ..., P(xk);
TESE: Prove que f(x1, ...,xk) possui a propriedade, i.e., P(f(x1, ...,xk))
Exemplo 5. Prove que em toda fórmula da lógica proposicional, o número de parênteses
abrindo é igual ao número de conectivos.
Base:
Se é uma fórmula atômica, então tem zero parêntese abrindo e zero conectivo.
Recorrência:
H.I: Suponha que e têm o mesmo número de conectivos e parênteses abrindo.
TESE: Mostre que ( ), ( ), ( ) e () têm o mesmo número de conectivos
e parênteses abrindo.
Como são todas análogas vamos mostrar para ( ) e ().
O número de conectivos de ( ) é a soma do número de conectivos de e de mais
um. Enquanto o número de parênteses abrindo também é a soma dos parênteses abrindo de
e mais um. Como estas quantidades em e são iguais (pela hipótese indutiva), então
elas permanecem iguais em ( ).
Para (), observamos que o número de conectivos é o de mais um, enquanto o número
de parênteses abrindo também é o número de parênteses abrindo de mais um. Como
2
estas quantidades eram iguais em (pela hipótese indutiva), então continuam iguais em
().
Veja mais exemplos de definições recursivas e provas indutivas, no extrato do capítulo 1 do
Livro Introdução à teoria de autômatos, linguagens e computação, de John Hopcroft,
Jeffrey Ullman e Rajeev Motwani, que foi disponibilizado para xerox.
3.
Aplicação: Sistema Dedutivo para a Lógica Proposicional
Vamos definir a noção de teorema e de prova da lógica proposicional recursivamente e
então, a título de aplicação, provar o importante teorema da dedução.
O que queremos definir é o seguinte: Quando dizemos que uma certa afirmação é
provada a partir de um conjunto de proposições ?
Primeira coisa a observar é que definiremos tudo formalmente e portanto nossas afirmações
e proposições estarão representadas na forma de fórmulas da lógica proposicional conforme
definido no exemplo 1 da seção 1 acima. Assim vamos definir quando uma fórmula é
provada a partir de um conjunto de fórmulas , neste caso dizemos que é um teorema de
.
As provas serão feitas de acordo com as leis da lógica. É uma questão filosófica muito
interessante se as leis da lógica que empregaremos em nossa formalização realmente
correspondem ao raciocínio humano, ou pelo menos à parte dele. Mas certamente as leis
que apresentaremos serão suficientes para formalizar boa parte da matemática e
caracterizarão o que chamamos de lógica de 1ª. ordem.1
As leis da lógica são formalizadas no que chamamos um sistema dedutivo. Um sistema
dedutivo compreende um conjunto de axiomas e um conjunto de regras de inferência.
Axiomas são simplesmente algumas fórmulas que são escolhidas para exercerem esta
...
função dentro de um sistema dedutivo.2 Regras de Inferência são da forma: 1 k , onde
α1, ..., α k, α são fórmulas; α 1, ..., α k, são chamadas de premissas e α é a conclusão.
Portanto dado um Sistema Dedutivo SD, podemos definir, quais são os teoremas de um
conjunto de acordo com aquele sistema dedutivo SD.
1
A lógica de 1ª ordem inclui além do cálculo proposicional fórmulas e regras envolvendo quantificadores
conforme vimos na primeira parte de nosso curso e que será objeto da disciplina de lógica matemática no
terceiro semestre. Aqui nesta breve digressão, nos restringiremos à lógica proposicional.
2
A princípio qualquer fórmula poderia ser um axioma de um sistema dedutivo, mas queremos construir
sistemas dedutivos que sejam corretos e completos, ou seja, sistemas dedutivos em que o que é provado
corresponda com o que é verdadeiro. Estudo aprofundado sobre verdade, corretude e completude será feito na
disciplina de lógica. Por enquanto saibamos apenas que todo axioma de um sistema dedutivo correto tem que
ser uma tautologia, uma fórmula que é sempre verdadeira, por exemplo ‘A A’ e ‘((A B) A) A’
são tautologias. Tente falsificá-las!
3
Vamos definir recursivamente o conjunto dos teoremas de no sistema dedutivo SD
representado por ThSD().
Base:
1. Se é um axioma de SD ou uma premissa de ( ∈ ) então é um teorema de no
sistema SD.
Recorrência:
...
2. Se 1 k é uma regra de inferência de SD e α1, ..., αk, são teoremas de no sistema
SD, então é teorema de no sistema SD.
Definimos agora o que é uma prova a partir do conjunto de premissas em um sistema
dedutivo SD.
Definição 1.
Base:
1. Uma única linha na forma: <1. fórmula > é uma prova desde que seja um axioma de
SD ou uma premissa de ( ∈ ).
Recorrência:
2. Se π é uma prova então π é uma prova, desde que seja um axioma de SD, uma
...
premissa de ou exista uma regra de inferência 1 k em SD onde seja a conclusão e
as fórmulas αi, i=1,...,k, todas pertençam à prova π.
Definição 2.
Uma prova é uma seqüência finita de fórmulas <1, ..., n> tal que para toda i, i=1,...,n; i
é um axioma de SD, ou uma premissa de (i ∈ ) ou existe uma regra de inferência
1 ... k
em SD onde i seja a conclusão e todas as fórmulas αi, i=1,...,k; ocorram
i
anteriormente na sequência.
Não é difícil para o aluno vê que as duas definições são realmente equivalentes e portanto
nós utilizaremos qualquer uma delas como a definição de prova em um sistema dedutivo
SD.
Dizemos que é provado a partir de no sistema dedutivo SD sse é a última linha de
uma prova a partir de em SD. Neste caso representaremos como ⊢SD .
Provaremos por indução que é um teorema de em um sistema SD sse existe uma prova
a partir de no sistema SD, estabelecemos assim, a equivalência entre ser teorema e ser
provado. Em símbolos:
4
∈ ThSD() sse ⊢SD
Prova ():
Vamos provar por indução no conjunto dos teoremas que todo teorema de é provado a
partir de .
Base:
é um axioma de SD ou uma premissa de , então <1. > é uma prova de .
Passo Indutivo:
...
é obtido por uma regra de inferência 1 k . Assumimos (Hip. Indutiva) que
⊢SD α1,..., ⊢SD αk. Chame estas provas de π1,...,πk, respectivamente.
Para provar que ⊢SD , apenas observe que a concatenação das provas π1,...,πk com a
fórmula é uma prova de a partir de no sistema SD.
QED
Prova ():
Vamos provar por indução no conjunto das provas que toda linha de uma prova é teorema
de . Logo, se ⊢SD (isto é, é a última linha de uma prova) então é teorema de .
Base:
π é uma prova com uma única linha na forma <1. >, então é um axioma de SD ou uma
premissa de , portanto é teorema de .
Passo Indutivo:
Assuma (Hip. Indutiva) que toda linha de uma prova π é teorema de . Prove que toda
linha da prova <π> é teorema de . Bem, só falta mostrar que é teorema de . Mas
...
ou é um axioma, ou uma premissa de ou é obtido por uma regra de inferência 1 k ,
onde α1, .., αk pertencem à prova π. Nos dois primeiros casos é teorema de , no último,
uma vez que α1, .., αk pertencem a π, pela Hip. Indutiva, α1, .., αk são teoremas de , logo,
por definição de teorema, também é teorema de .
QED
Tendo estabelecido a equivalência entre os conceitos de teorema de e de prova a partir de
, leremos a notação: ⊢SD , tanto como é provado a partir de no sistema SD quanto
é teorema de no sistema SD. Podemos então escrever:
ThSD() = { | ⊢SD }
5
Mais ainda, quando é vazio ou provamos sem utilizar nenhuma premissa (só axiomas e
regras de inferência de SD) dizemos que é um teorema lógico e denotamos por ⊢SD .
Observe ainda que a noção de teorema é monotônica: Se 1 ⊆ 2 e 1 ⊢SD então
2 ⊢SD . Assim um teorema lógico é teorema de qualquer conjunto de premissas !
Quando for claro qual o sistema dedutivo SD que estamos usando não escreveremos o
subscrito, e denotaremos: ⊢ e ⊢ para teorema e teorema lógico, respectivamente.
4.
O Sistema Dedutivo do Mendelson
O livro do Mendelson3 traz um sistema dedutivo para a lógica proposicional
compreendendo três axiomas e uma única regra de inferência (a modus ponens). Este
sistema inclui apenas os conectivos ‘’ e ‘’, e é correto e completo para este segmento da
lógica (prova deste resultado apenas na disciplina de lógica do terceiro semestre). Esta
restrição não é tão severa uma vez que toda proposição da lógica proposicional pode ser
escrita utilizando apenas estes dois conectivos (a leitura não será a mais simples, mas é
possível). O esquema para escrita dos outros conectivos é o seguinte:
( ) ≝ ( )
( ) ≝ ≝ ( )
(Tanto faz qual das duas formas.)
( ≝ ( ) ( )
(Aplique a conversão da conjunção
para obter a fórmula exata.)
De qualquer forma o Mendelson propõe um segundo sistema com 10 axiomas e a mesma
regra de inferência incluindo os quatro conectivos principais: ‘’, ‘’, ‘’ e ‘’.
Veremos agora estes sistemas dedutivos do Mendelson, faremos algumas provas,
proporemos alguns exercícios e terminaremos a nota de aula com a prova do importante
teorema da dedução.
Sistema 1: Três Axiomas; Conectivos ‘’ e ‘’
5.
Axiomas:
1.
2.
3.
A (B A)
(A (B C)) ((A B) (A C))
(B A) ((B A) B)
3
Dado em aula e colocado extrato para xerox. A referência é Introduction to Mathematical Logic, por Elliott
Mendelson, Van Nostrand Company, 1964. O extrato retirado faz parte do capítulo 1, pgs. 29 a 44. O livro
está disponível na biblioteca da Matemática.
6
Regra de Inferência:
6.
1.
1.
2.
3.
4.
5.
A
A B
B
Modus Ponens
Exemplos de provas
⊢AA
(A ((A A) A)) ((A (A A)) (A A))
(A ((A A) A))
((A (A A)) (A A))
((A (A A))
(A A)
2.
⊢ (A A) A
1. (A A) ((A A) A)
2. (A A)
3. ((A A) A)
Ax.2
Ax.1
MP 2 e 1
Ax.1
MP 4 e 3
Ax.3
Lema 1
MP 1 e 2
OBS.: Tudo que já foi anteriormente provado pode ser usado em uma prova como Lema.
Observe a linha 2 da prova acima.
3.
1.
2.
3.
4.
5.
6.
7.
A B, B C ⊢ A C
AB
BC
(A (B C)) ((A B) (A C))
(B C) (A (B C))
(A (B C))
((A B) (A C))
(A C)
PREM
PREM
Ax.2
Ax.1
MP 2 E 4
MP 5 E 3
MP 1 E 6
4.
1.
2.
3.
4.
5.
A (B C) ⊢ B (A C)
A (B C)
(A (B C)) ((A B) (A C))
((A B) (A C))
B (A B)
(A C)
PREM
Ax.2
MP 1 E 2
Ax.1
LEMA 3; 4 E 3
5.
1.
2.
3.
4.
⊢ (B A) (A B)
(B A) ((B A) B)
(B A) ((B A) B)
A (B A)
A ((B A) B)
Ax.3
LEMA 4; 1
Ax.1
LEMA 3; 3 E 2
7
5. (B A) (A B)
LEMA 4; 4
6.
1.
2.
3.
4.
5.
(B A) ⊢ (A B)
(B A)
(B A) ((B A) B)
((B A) B)
A (B A)
(A B)
PREM
Ax.3
MP 1 E 2
Ax.1
LEMA 3; 4 E 3
7.
1.
2.
3.
4.
5.
6.
7.
(B A), A ⊢ B
(B A)
A
(B A) ((B A) B)
((B A) B)
A (B A)
B A
B
PREM
PREM
Ax.3
MP 1 E 3
Ax.1
MP 2 E 5
MP 6 E 4
8.
1.
2.
3.
4.
5.
6.
7.
A (B C), B⊢ (A C)
A (B C)
B
(A (B C)) ((A B) (A C))
((A B) (A C))
B (A B)
AB
(A C)
PREM
PREM
Ax.2
MP 1 E 3
Ax.1
MP 2 E 5
MP 6 E 4
7.
Exercício: Prove os seguintes resultados4:
9.
⊢ B B
10.
⊢ B B
11.
A B ⊢ (B C) (A C)
12.
⊢ A (A B)
13.
⊢ (B A) (A B)
14.
⊢ (A B) (B A)
15.
⊢ A (B (A B))
4
São semelhantes ao Lema .10 do Mendelson, p. 33, mas não exatamente iguais. O desafio é apresentar as
provas sem utilizar o teorema da dedução.
8
16.
⊢ (A B) ((A B) B)
17.
⊢ (B A) ((B A) B)
Soluções5
8.
9)
⊢ B B
10)
⊢ B B
11)
A B ⊢ (B C) (A C)
17)
⊢ (B A) ((B A) B)
Prova do 10 usando 17. ⊢ B B
Sistema Completo: 10 Axiomas: Conectivos ‘’, ‘’, ‘’ e ‘’
9.
Axiomas:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
A (B A)
(A (B C)) ((A B) (A C))
ABA
ABB
A (B (A B))
AAB
BAB
(A C) ((B C) ((A B) C)))
(B A) ((B A) B)
A A
Regra de Inferência:
10.
A
Modus Ponens
Exercícios: Prove utilizando o sistema completo
18.
⊢ ((A B) A) A
19.
(A B) ⊢ A B
5
A B
B
As provas estão em texto oculto do Word.
9
20.
(A B) ⊢ A B
21.
⊢ A A
22.
(A B) ⊢ A B
23.
A B ⊢ (A B)
24.
A B ⊢ A B
25.
A B ⊢ A B
26.
⊢ (B A) ((B A) B)
27.
A B, A ⊢ B
11.
Prova do Teorema da Dedução
Finalmente chegamos ao ponto em que provaremos o teorema da dedução, teorema este que
tem a grande utilidade de facilitar as provas envolvendo o conectivo da implicação e que
formaliza a prova condicional: “Para provar que se A então B, assuma A e prove B”.
Vamos provar que o teorema da dedução é válido para ambos os sistemas do Mendelson (3
e 10 axiomas) pois na prova utilizaremos apenas os axiomas 1 e 2, que fazem parte de
ambos os sistemas.
Teorema da Dedução:
Se , A ⊢SD B então ⊢SD A B6
Como já provamos a equivalência entre as noções de ser teorema e de ser provado,
qualquer uma das provas é suficiente. Entretanto, a título de ilustração, vamos apresentar as
duas provas.
Prova 1:
O enunciado do teorema fica: Se B é teorema de ∪ {A} em SD então A B é teorema de
em SD.
Vamos provar por indução no conjunto de teoremas de ∪ {A}.
Base:
B é um axioma ou uma premissa, neste caso (de ser premissa) B ∈ ou B = A.
CASO 1: B é um axioma.
Observe que A B é derivado por modus ponens a partir de B e B (A B). Neste caso,
por serem axiomas, ambos são teoremas em SD, logo A B também é.
CASO 2: B ∈ .
6
A volta do teorema da dedução também vale e sua prova é trivial.
10
Novamente observe que A B é derivado por modus ponens a partir de B e B (A B).
Neste caso, por serem ambos teoremas de em SD (B é premissa de e B (A B) é o
axioma 1), logo A B também é teorema de em SD.
CASO 3: B = A.
Neste caso, A B fica A A e já provamos que A A é um teorema lógico de SD, logo,
A A é teorema de qualquer conjunto em SD, portanto A A é teorema de em SD.
Passo Indutivo:
B foi obtido por modus ponens a partir das fórmulas α e α B. Logo, pela Hip. Indutiva,
assumimos que A α e A (α B) são ambos teoremas de em SD. Como
A (α B) ((A α) (A B)) é o axioma 2 e A (α B) é teorema de , então,
aplicando-se modus ponens, ((A α) (A B)) também é teorema de . Novamente,
como A α é teorema de , por novo modus ponens, A B é teorema de em SD.
QED
Prova 2:
Vamos provar por indução no conjunto das provas, que para toda prova π a partir de
∪ {A}, se é uma linha da prova π, então A é provada a partir de . Neste caso,
teremos provado que se , A ⊢SD B (B é a última linha de uma prova) então ⊢SD A B.
Base:
π é a prova de uma linha <1. B>. Assim, B é um axioma ou uma premissa, neste caso (de
ser uma premissa) B ∈ ou B = A.
CASO 1: B é um axioma.
Podemos construir a seguinte prova para A B a partir de :
1. B
Ax.
2. B (A B)
Ax. 1
3. A B
MP 1 e 2
CASO 2: B é uma premissa, B ∈ .
Podemos construir a seguinte prova para A B a partir de :
1. B
Prem.
2. B (A B)
Ax. 1
3. A B
MP 1 e 2
CASO 3: B é uma premissa, B = A.
Neste caso, A B fica A A e já conhecemos uma prova para A A em SD, sem usar
nenhuma premissa, só axiomas e modus ponens. Portanto, A A é provado a partir de .
Passo Indutivo:
11
Temos a prova <πB> a partir de ∪ {A}. Assumimos (Hip. Indutiva) que para toda linha
de π, A é provada a partir de . Vamos provar que para toda linha de <π,B>,
A é provado a partir de . Bem, só falta a última linha B. Temos três opções para B, B
é axioma ou B é premissa, neste caso, B ∈ ou B = A, ou B é obtido por modus ponens a
partir de duas linhas de π, α e α B.
Os dois primeiros casos, axioma ou premissa já foram mostrados na base, resta o terceiro
caso. Pela hipótese indutiva, A α e A (α B) são provados a partir de , suponha as
provas <π1A α> e <π2A (α B)>, respectivamente. Vamos construir uma prova
para B a partir de . Comece concatenando as duas provas anteriores obtendo:
<π1A απ2A (α B)> e continue com as seguintes linhas:
k.
A (α B) ((A α) (A B)) Ax. 2
k+1.
MP linha k e última linha da prova π2.
((A α) (A B))
MP linha k+1 e última linha da prova π1
K+2. A B
Esta é uma prova de A B a partir de em SD.
QED
O extrato do livro do Mendelson apresenta uma prova do teorema da dedução usando a
definição de prova como uma seqüência finita de fórmulas. Compare-a com a prova acima.
12