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