NA 5 definicoes recursivas e provas indutivas marcel 03-06

Propaganda
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
⊢AA
(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
AB
BC
(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)
AB
(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))
ABA
ABB
A  (B  (A  B))
AAB
BAB
(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
Download