Untitled - DIMAp
Transcrição
Untitled - DIMAp
1 2 3 Logica para a Ci^encia da Computac~ao Benjamn Rene Callejas Bedregal Laboratorio de Logica e Intelig^encia Computacional - LabLIC Departamento de Informatica e Matematica Aplicada - DIMAp Universidade Federal do Rio Grande do Norte - UFRN [email protected] Benedito Melo Acioly Departamento de Ci^encias Exatas - DCE Universidade Estadual do Sudoeste da Bahia - UESB [email protected] NATAL, Fevereiro de 2002 Conteudo 1 Linguagens Formais 1.1 1.2 1.3 1.4 1.5 1.6 Linguagens Formais . . . . . . . . . . . . . . . . -algebras . . . . . . . . . . . . . . . . . . . . . Relac~ao entre Linguagens Formais e -algebras Classes Equacionais . . . . . . . . . . . . . . . . -Domnios . . . . . . . . . . . . . . . . . . . . Exerccios . . . . . . . . . . . . . . . . . . . . . 2 Logica Proposicional: Linguagem e Sem^antica 2.1 2.2 2.3 2.4 A Linguagem da Logica Proposicional . . . . . A Linguagem Formal da Logica Proposicional Logica Proposicional . . . . . . . . . . . . . . Exerccios . . . . . . . . . . . . . . . . . . . . 3 A Teoria Formal da Logica Proposicional 3.1 3.2 3.3 3.4 . . . . . . . . . . . . . . . . . . . . . . . . Teorias Formais . . . . . . . . . . . . . . . . . . . . Teoria Formal da Logica Proposicional . . . . . . . Teorema da Deduc~ao . . . . . . . . . . . . . . . . . Outras Teorias Formais para a Logica Proposicional 3.4.1 Teoria Formal 1 . . . . . . . . . . . . . . . . 3.4.2 Teoria Formal 2 . . . . . . . . . . . . . . . . 3.4.3 Teoria Formal 3 . . . . . . . . . . . . . . . . 3.4.4 Teoria Formal 4 . . . . . . . . . . . . . . . . 3.4.5 Teoria Formal 5 . . . . . . . . . . . . . . . . 3.5 Exerccios . . . . . . . . . . . . . . . . . . . . . . . i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 2 . 5 . 6 . 13 . 19 . 21 . . . . . . . . . . . . . . 25 26 29 37 46 49 49 52 53 60 60 60 60 61 62 62 CONTEUDO ii 4 Computa c~ao na Logica Proposicional 65 5 Logica de Predicados: Linguagem e Sem^antica 89 4.1 Metodo de Eliminac~ao de Literais Complementares . . . . . . . . . . . . . 65 4.2 Resultados de Completude . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.1 5.2 5.3 5.4 5.5 5.6 Traduc~ao do Portugu^es para a Logica . . . . . . . . . . Quanticadores e Tipos . . . . . . . . . . . . . . . . . Quanticadores como Conjunco~es e Disjunco~es Innitas Linguagem de 1a Ordem . . . . . . . . . . . . . . . . . Verdade . . . . . . . . . . . . . . . . . . . . . . . . . . Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . 6 A Teoria Formal da Logica de Predicados 6.1 Teoria Formal do Calculo de Predicados 6.1.1 Linguagem Formal: . . . . . . . . 6.2 Teorema da Deduc~ao . . . . . . . . . . . 6.3 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 92 94 95 102 110 113 113 114 117 126 7 Computa c~ao na Logica de Predicados 129 8 Programa c~ao em Logica e Prolog 163 7.1 Resoluc~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 7.2 Resultados de Completude . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 7.3 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 8.1 Conceitos Basicos . . . . . . . . . . . . . 8.1.1 Clausulas de Horn . . . . . . . . 8.1.2 Caractersticas Basica do Prolog . 8.2 Estrutura Basica do Prolog . . . . . . . 8.2.1 Termos e objetos . . . . . . . . . 8.2.2 O Escopo dos Identicadores . . . 8.3 Fatos Elementares . . . . . . . . . . . . . 8.4 Consultas . . . . . . . . . . . . . . . . . 8.4.1 Conjunc~oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 165 166 167 168 170 170 171 172 CONTEUDO iii 8.5 Variaveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.5.1 Variaveis An^onimas . . . . . . . . . . . . . . . . . . 8.6 Regras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.6.1 Regras Recursivas . . . . . . . . . . . . . . . . . . . 8.7 Disjunc~oes e Negac~oes . . . . . . . . . . . . . . . . . . . . 8.7.1 Disjunca~o . . . . . . . . . . . . . . . . . . . . . . . 8.7.2 Negac~ao por Falha e Hipoteses do Mundo Fechado . 8.8 Operadores de Controle . . . . . . . . . . . . . . . . . . . 8.8.1 Backtracking . . . . . . . . . . . . . . . . . . . . . 8.8.2 Comando \Cut" . . . . . . . . . . . . . . . . . . . . 8.8.3 Comando \Fail" . . . . . . . . . . . . . . . . . . . . 8.9 Algumas Ferramentas Praticas de Programac~ao . . . . . . 8.9.1 Operadores . . . . . . . . . . . . . . . . . . . . . . 8.9.2 Computac~oes Numericas . . . . . . . . . . . . . . . 8.9.3 Computac~oes com Listas . . . . . . . . . . . . . . . 8.10 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Outras Apresenta c~oes da Logica de Predicados 9.1 Deduc~ao Natural . . . . . . . . . . . . . . . 9.1.1 Logica Proposicional . . . . . . . . . 9.1.2 Logica de Predicados . . . . . . . . . 9.2 Calculo de Sequente de Gentzen . . . . . . . 9.2.1 Logica Proposicional . . . . . . . . . 9.2.2 Logica de Predicados . . . . . . . . . 9.3 Estilo Tableaux . . . . . . . . . . . . . . . . 9.3.1 Logica Proposicional . . . . . . . . . 9.3.2 Logica de Predicados . . . . . . . . . 9.4 Sistema Tableau com Unicac~ao . . . . . . 9.5 Correspond^encia entre Tableau e Resoluc~ao 9.6 Completude do Sistema . . . . . . . . . . . 9.7 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 176 177 181 181 182 183 184 184 185 186 186 186 187 190 191 195 196 198 202 205 207 211 213 214 221 223 227 229 231 CONTEUDO iv 10 Teorias de Primeira ordem 10.1 10.2 10.3 10.4 Teorias de 1a Ordem . . . . . . . . . . . . . . Teorias de 1a Ordem com Igualdade . . . . . . Teorias de 1a Ordem: Uma denica~o sem^ntica Teorias Factuais . . . . . . . . . . . . . . . . . 10.4.1 Exemplos de Teorias Factuais . . . . . A Solu c~oes de Exerccios Propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 234 236 240 245 248 249 Dedicatoria do primeiro autor Com todo o meu amor, Dedico este livro A minhas duas lindas lhas: Berta Letcia e Natalia Taina de Lima Bedregal. vi CONTEUDO Captulo 1 Linguagens Formais Em Portugu^es existem tr^es tipos de entidades diferentes: letras, palavras e sentencas. Existe um certo paralelismo entre elas, no sentido de que grupos de letras constituem uma palavra, e grupos de palavras uma sentenca. Mas, nem toda concatenac~ao de letras forma uma palavra, nem toda sequ^encia de palavras uma sentenca. A analogia pode se extendida para paragrafos, historias, e assim por diante. A situac~ao, se da, tambem, para linguagens de programac~ao, na qual certos agrupamentos de palavras chaves s~ao um comando e algumas sequ^encias de comandos s~ao programas. Para construir uma teoria geral que unique todos estes casos, sera necessario adotar uma denic~ao para a estrutura de linguagens mais universal, isto e, uma estrutura na qual a decis~ao de quando uma cadeia de unidades constitui uma unidade maior valida seja baseada na aplicac~ao de regras explicitamente denidas. Em linguagens tipo Portugu^es, Ingl^es, alguns dialetos tipo Guarany, Aymara, etc. n~ao podemos dar regras que nos permitam descrever todas as frases coerentes da linguagens. Isto porque s~ao linguagens ditas naturais, na qual depende de nossa habilidade para interpretar metaforas poeticas de sentencas mal escritas. Isto ja n~ao acontece com linguagens de programac~ao, pois elas s~ao \formais", e o compilador de uma linguagem de programac~ao e um procedimento que analiza a corretude de uma sequ^encia de smbolos e determina se ela constitui um programa valido ou n~ao. Neste captulo estudaremos alguns aspectos basicos do que se conhece como \teoria de linguagens formais". A palavra \formal" diz respeito a que todas as regras para a linguagem s~ao explicitamente declaradas em termos das cadeias de smbolos que podem ocorrer nela. Nenhuma liberdade e tolerada e nenhum \entendimento profundo" e preciso. Sentencas ser~ao consideradas como meros smbolos e n~ao como express~oes de ideias na mente humana. Neste modelo basico, Linguagens (formais) n~ao e uma comunicaca~o entre intelectos, mas um jogo de smbolos com regras formais. O termo \formal" aqui usado enfatiza que e a forma da cadeia de smbolos que nos interessa e n~ao seu signicado. 1 CAPITULO 1. LINGUAGENS FORMAIS 2 1.1 Linguagens Formais Toda linguagem e constituda de dois elementos basicos, um alfabeto que especica um conjunto contavel de smbolos usados na linguagem e uma gramatica que caracteriza sua sintaxe, isto e, que especica como estes smbolos podem ser agrupado formando as express~oes admissveis da linguagem. O que diferencia uma linguagem formal de uma linguagem natural e que na linguagem formal a gramatica e especicada precisamente, enquanto na linguagem natural quase sempre isso n~ao e possvel. Seja um conjunto contavel, isto e, que esteja em correspond^encia biunvoca com um subconjunto dos numeros naturais. Denotaremos por o conjunto de todas as cadeias nitas em , incluindo a cadeia vazia. Por exemplo, se = fa bg ent~ao = f a b aa ab bb ba aaa aab : : : g, onde simboliza a cadeia vazia. Deniremos como uma linguagem L, sobre , qualquer subconjunto de . Observe que, segundo essa denic~ao, o proprio e o conjunto vazio s~ao linguagens sobre . Em geral, estaremos interessados em obter L de forma algortmica. Por isso, de ora em diante daremos, tambem, a seguinte denic~ao de linguagem formal. Deni c~ao 1.1.1 Uma Linguagem formal e um par L = h Gi, onde e um conjunto contavel, denominado alfabeto, e G e um conjunto nito de regras de derivac~ao, denominado gramatica,cujo m e dizer como os smbolos do alfabeto podem ser agrupados de modo a formar as express~oes admissveis da linguagem. Descreveremos as regras de derivac~ao em G por x1 : : : xn n 2 N x onde, os objetos do numerador e do denominador podem conter metavariaveis, que podem ser instanciadas por qualquer termo da linguagem. Se entende que os objetos do numerador d~ao origem ao do denominador. No caso em que n = 0 estaremos gerando um elemento x a partir do conjunto vazio, o qual denotaremos por ;x . Chamaremos a estes x's de axiomas da linguagem formal L. As variaveis, x1 : : : xn usadas nas regras de derivac~ao representam qualquer cadeia em e x e uma expres~ao constituda das variaveis xi's com elementos de . Exemplo 1.1.2 Seja o alfabeto = fa bg e o conjunto de regras G = fg1 g2 g3g denidas a seguir: g1 : ; a g2 : t at g3 : t bt onde at e a cadeia resultante de concatenar o smbolo a com a cadeia t. Isto e, se t = bba ent~ao at = abba. 1.1. LINGUAGENS FORMAIS 3 Uma cadeia w 2 e gerada por uma linguagem formal L = h Gi, se existem cadeias w1 : : : wn geradas por L e uma regra de derivac~ao g: x1 : :x: xn n 2 N tal que g 2 G e substituindo cada ocorr^encia xi por wi em x obtemos w. Observe que para esta recurs~ao na denic~ao de cadeias geradas por uma linguagem formal parar, devemos ter pelo menos uma regra de derivac~ao sem numerador (n = 0). Assim, toda linguagem formal L = h Gi especica uma linguagem que consiste em todas as cadeias geradas pela linguagem formal L. Especicar uma linguagem L atraves de uma linguagem formal, signica fornecer um algoritmo para obter L. E claro que nem sempre e possvel dar um algoritmo para descrever uma linguagem, nesse caso dizemos que a linguagem e uma linguagem natural. Exemplo 1.1.3 No caso da linguagem formal do exemplo ?? a cadeia baa pode ser gerada, pois ela e obtida aplicando a regra g3 a cadeia ba a qual, por sua vez tambem e gerada pela linguagem formal cg , pois ela pode ser obtida aplicando a regra g2 a cadeia a, a qual por sua vez tambe faz parte da linguagem, pois ela pode ser obtida diretamente aplicando a regra g1 . Podemos ver o conjunto de todas as possveis cadeias que podem ser gerada pela linguagem formal cg, denotado aqui por L, como a linguagem associada ou gerada por G . Neste caso: L = fa aa ba aaa baa aba bba aaaa baaa abaa bbaa aaba baba abba bbba : : : g ou intencionalmente o conjunto L = fw 2 = w = va para algum v 2 g ou seja a linguagem composta de todas as cadeias no alfabeto fa bg cujo ultimo smbolo seja a. Exemplo 1.1.4 Considere a linguagem formal L = h Gi, onde = fzero suc soma ( )g e a gramatica G e constituida das seguintes regras de derivac~ao: g1 : ; g2 : t suc(t) g3 : t1 t2 t1 soma t2 zero Nas regras g1 e g2 , t t1 e t2 s~ao variaveis as quais podem tomar como valor qualquer elemento ja conhecido da linguagem. Assim, L = h Gi, onde G = fg1 g2 g3 g especica uma linguagem L que contem os seguintes elementos: zero, suc(zero), zero soma zero, suc(zero) soma zero, zero soma suc(zero), zero soma zero soma zero : : : CAPITULO 1. LINGUAGENS FORMAIS 4 Podemos ver as regras de derivac~ao de G como um calculo ou algoritmo para gerar os elementos da linguagem L. No exemplo 1.1.4 o calculo G = fg1 g2 g3g gera o conjunto L, a partir da constante zero. Essas observac~oes motivam a seguinte denica~o. Deni c~ao 1.1.5 Seja L = h Gi uma linguagem formal. Um elemento x 2 e gerado por L se existe uma sequ^encia nita de elementos de , x1 x2 : : : xn tal que xn = x e cada xk , 1 k n, e o resultado da aplicac~ao de uma regra de derivac~ao de G aos elementos xi, i < k. A sequ^encia x1 : : : xn, anterior, e chamada uma prova ou deduc~ao de x em L e x e chamado de formula bem formada (b) de LL. Usaremos a notac~ao L̀ x, ou simplesmente ` x, se o contexto tornar claro o calculo, para indicar que x foi derivado, usando uma prova. No exemplo 1.1.4, acima, temos L̀ zero soma suc(suc(zero)), cuja prova e a seguinte (1) (2) (3) (4) zero suc(zero) suc(suc(zero)) zero soma suc(suc(zero)) (g1) (1 g2) (2 g2) (1 3 g3) Diremos, tambem, que esta prova e uma constru c~ao do elemento zero soma suc(suc(zero)): Assim, a linguagem gerada ou especicada por uma linguagem formal L = h Gi, denotado por Ling (L), e denida pelo seguinte conjunto de cadeias: Ling(L) = fx 2 = L̀ xg Naturalmente, duas linguagens formais s~ao equivalentes se elas ger~ao a mesma linguagem. Por exemplo, se a linguagem formal do exemplo 1.1.4 adicionarmos a regra regrag4tt somat n~ao vai ser gerada nenhuma cadeia nova, uma vez que ela pode ser obtida aplicando a regra g3 ao mesmo termo, isto e, fazendo t1 = t2 = t. Assim, a linguagem gerada por esta \nova" linguagem formal vai ser exatamente a mesma que a gerada pela linguagem formal do exemplo 1.1.4. Ent~ao, generalizando, duas linguagens formais L1 = h1 G1 i e L2 = h2 G2 i s~ao equivalentes, se elas possuem o mesmo alfabeto, isto e 1 = 2 e cada regra de q 2 G1 pode ser derivada em L2 e vice-versa, cada regra g 2 G2 pode ser derivada em L1. 1.2. -ALGEBRAS 5 1.2 -algebras Seja L um conjunto n~ao vazio. Diremos que (L O1 O2 : : : On) e uma algebra se O1 O2 : : : On s~ao operac~oes sobre L. Lembre que O e uma operaca~o sobre L, de aridade k, cuja notac~ao sera arid(O) = k, se O e uma funca~o de Lk 1 em L O : Lk ;! L. As constantes de L s~ao consideradas operaco~es de aridade zero. Uma linguagem L especicada por h Gi pode ser vista como uma algebra, onde cada regra de derivac~ao x1 : : : xn x e interpretada como uma operac~ao O : Ln ;! L. Na realidade, podemos estudar as linguagens formais de uma perspectiva exclusivamente algebrica como sem^antica ou interpreta c~ao da abordagem deductiva. Na ci^encia da computaca~o a abordagem algebrica de linguagens de programac~ao e conhecida como sem^antica denotacional e a abordagem deductiva como sem^antica operacional. Como neste trabalho abordaremos, tambem, os aspectos de interpretac~ao, a seguir desenvolveremos os princpios de -algebras necessarios nas discuss~oes de sem^antica denotacional. Uma assinatura e um conjunto contavel, , de smbolos de funco~es. Por exemplo, os tr^es smbolos de func~ao, = fzero suc plusg, seria uma assinatura apropriada para os numeros naturais. Cada smbolo de func~ao tem associado uma aridade que fornece o numero de argumentos que a func~ao recebe. No caso a aridade de zero e 0, de succ e 1 e de plus e 2. zero e uma constante, vista como uma funca~o de aridade 0. Deni c~ao 1.2.1 Uma assinatura e uma par h aridi, onde e um conjunto contavel de smbolos e arid e uma func~ao, chamada aridade, arid : ;! N , tal que a cada smbolo s 2 , associa sua aridade arid(s) 2 N . Quando f^or claro do contexto omitiremos a func~ao arid, designando uma assinatura simplesmente por . Deni c~ao 1.2.2 Seja uma assinatura. Uma -algebra e um par hA Ai onde: 1. A e um conjunto n~ao vazio, chamado conjunto basico. 2. A e um conjunto de operac~oes sobre A, ffA = f 2 g tal que se arid(f ) = n, ent~ao fA e uma operac~ao de An ;! A. 1 A notac~ao Lk denota k-vezes o produto cartesiano de L com ele mesmo, isto e, Lk = L| :{z: : L} . k;vezes CAPITULO 1. LINGUAGENS FORMAIS 6 Exemplo 1.2.3 Considere a assinatura = fzero suc somag. Ent~ao, hN N i e uma -algebra, onde: 1. N e o conjunto dos numeros naturais f0 1 2 : : : g. 2. N e dada por: (a) zeroN e o numero 0. (b) sucN : N ;! N e denida por suc(n) = n + 1 (c) somaN : N 2 ;! N e denida por somaN (m n) = m + n Aqui \+" denota a adic~ao da aritmetica usual. As unicas restrico~es para denir -algebras, e que as operac~oes que interpret~ao os smbolos de operaca~o tenh~ao a mesma aridade. Desse modo, o simbolo de operac~ao soma e um mero nome, e portanto, pode ser interpretado de diversas maneiras, desde que sua interpretaca~o seja uma operaca~o binaria. Assim, uma outra -algebra para esta assinatura, pode ser hN zeroN sucN multN i, onde N , zeroN e sucN s~ao como antes, mas multN : N 2 ;! N e denido por multN (x y) = x y. Aqui, denota a multiplicac~ao da aritmetica. hN N i representa uma interpretac~ao \natural" dos smbolos de func~ao de , sobre os numeros naturais. Por isso podemos dizer que uma -algebra e simplesmente uma interpretac~ao de uma assinatura . Ela consiste de um conjunto A e uma interpretac~ao sobre A, dos smbolos de func~ao em . Uma -algebra pode ser vista como um conjunto com estrutura. O conjunto A tem uma estrutura imposta pelas func~oes em A, no sentido de que os elementos de A so podem ser manipulados usando essas func~oes. 1.3 Relac~ao entre Linguagens Formais e -algebras Dada uma assinatura h aridi, se acresentarmos a os smbolos de par^enteses e pontuac~ao, teremos, automaticamente, uma linguagem Ling(L) especicada pelo algoritmo L = h Gi, onde a gramatica G seria obtida, simplesmente, considerando as aridades dos smbolos de , em h aridi. Por exemplo, se s 2 e tal que arid(s) = 2, ent~ao t1 t2 s(t1 t2) seria uma regra de derivac~ao de G . Em muitos casos poderamos agir no sentido contrario, isto e, dado o alfabeto , despoja-lo dos smbolos de par^enteses e pontuac~ao, obtendo assim, uma assinatura , onde a funca~o aridade seria obtida, simplesmente, observando as regras de derivac~ao. Por exemplo, a uma regra como ~ ENTRE LINGUAGENS FORMAIS E -ALGEBRAS 1.3. RELACAO 7 t1 : : : tn t lhe seria associada a aridade n. Portanto, existe uma relac~ao estreita entre linguagens formais, isto e, linguagens obtidas pela especicaca~o do algoritmo h Gi e assinaturas, no sentido de que sempre que uma linguagem e obtida deductivamente e possvel, usando as regras de derivac~ao, obt^e-la algebricamente, isto e como uma -algebra. Nesse sentido, podemos considerar a linguagem gerada por h Gi como o conjunto basico da -algebra que tem como operac~oes os proprios smbolos funcionais. A -algebra assim obtida, sera chamada -algebra dos termos e sera denotada por hT T i. Assim, T seria a propria linguagem gerada pela linguagem formal associada a assinatura . Formalmente, podemos denir a -algebras dos termos indutivamente, como segue 1. Se a 2 e arid(a) = 0 ent~ao a 2 T 2. Se f 2 , arid(f ) = n e t1 : : : tn 2 T ent~ao f (t1 : : : tn) 2 T Por outro lado, se f 2 tem aridade n ent~ao fT : Tn ;! T e denido por fT (t1 : : : tn) = f (t1 : : : tn): Esta -algebra e particularmente importante no estudo da sintaxe abstrata de linguagens. Exemplo 1.3.1 Seja a assinatura do exemplo 1.2.3. O conjunto dos termos dessa algebra e dado pelo seguinte conjunto: T = fzero suc(zero) zero soma zero suc(suc(zero)) zero soma suc(zero) : : : g e as operaco~es sobre T s~ao as seguintes: zeroT = zero sucT : T ;! T denida por sucT (t) = suc(t). somaT : T T ;! T e denida por somaT (t1 t2 ) = t1 soma t2 . Observe, que T e igual a linguagem gerada pela linguagem formal do exemplo 1.1.4. CAPITULO 1. LINGUAGENS FORMAIS 8 As observaco~es acima esclarecem a relac~ao entre as perspectivas formal e algebrica de uma linguagem. No caso de linguagens de programac~ao a sua sintaxe, geralmente, e especicada por uma gramatica livre de contexto. Mas, muitas linguagens de programac~ao podem ser construdas de tal modo que a sua sintaxe e a -algebra dos termos, para algum . Denir uma sem^antica denotacional para uma linguagem L = h Gi consiste em construir uma -algebra particular satisfazendo certas exig^encias. No sentido de explicar o signicado matematico da -algebra dos termos introduziremos o conceito de -homomorsmo, que s~ao, simplesmente, funco~es entre os conjuntos basicos das -algebras que preservam as operac~oes. Deni c~ao 1.3.2 Sejam hA Ai e hB B i -algebras. Uma func~ao h : A ;! B diz-se um -homomorsmo se para todo f 2 , de aridade n, h(fA (a1 : : : an)) = fB (h(a1 ) : : : h(an)) (1.1) Claramente, na denic~ao acima, se n = 0, isto e, se aplicamos o -homomorsmo a uma constante aA, se deve satisfazer h(aA) = aB Exemplo 1.3.3 1. Seja = fzero suc somag, como anteriormente. Ent~ao hZ Zi, onde Z e o conjunto dos numeros inteiros e as func~oes de Z s~ao denidas como no exemplo 1.2.3, e uma -algebra. A funca~o em : N ;! Z tal que em(n) = n, e um -homomorsmo entre as -algebras hN N i e hZ Zi. 2. Seja como acima e seja P = f0 2 4 6 : : : g. Dena P por: (a) zeroP = 0 (b) sucP : P ;! P e denida por sucP(n) = n + 2 (c) somaP : P2 ;! P e denida por somaP(m n) = m + n Ent~ao hP Pi e uma -algebra. Seja dobro : N ;! P a funca~o bijetiva dobro(n) = 2n, para todo n 2 N . Ent~ao dobro e um -homomorsmo. Para mostrar isto precisamos mostrar que ( 1.1) se verica com \dobro" no lugar de h para toda func~ao f 2 . ~ ENTRE LINGUAGENS FORMAIS E -ALGEBRAS 1.3. RELACAO (a) (b) (c) 9 dobro(zeroN ) = dobro(0) =20 =0 = zeroP dobro(sucN (n)) = dobro(n + 1) = 2(n + 1) = 2n + 2 = dobro(n) + 2 = sucP(dobro(n)) dobro(somaN (m n)) = dobro(m + n) = 2(m + n) = 2m + 2n = dobro(m) + in(n) = somaP(dobro(m) dobro(n)) 3. Seja = fzero somag com aridade 0 e 2, respectivamente e sejam h}fin (N ) f gi e hN f0 +gi duas -algebras tais que (a) }fin (N ) = fX N = X e um conjunto nitog (b) : }fin (N ) }fin (N ) ;! }fin (N ) e denido por (X Y ) = fx + y = x 2 X e y 2 Y g X Y (c) 0 e + tem a interpretac~ao usual. Mostraremos que max : }fin (N ) ;! N denido por \max(X ) e o maior elemento do conjunto X f0g" e um -homomorsmo. (a) max( ) = 0 (b) max((X Y )) = max(fx + y = x 2 X e y 2 Y g X Y ) = max(X ) + max(Y ) Proposi c~ao 1.3.4 Sejam hA Ai, hB B i e hC C i -algebras. 1. Se h1 : A ;! B e h2 : B ;! C s~ao -homomorsmo, ent~ao h2 h1 : A ;! C e um -homomorsmo. 2. i : A ;! A tal que i(x) = x para todo x 2 A e um -homomorsmo. CAPITULO 1. LINGUAGENS FORMAIS 10 Demonstraca~o: (exerccio). A mais importante propriedade da -algebra dos termos hT T i e expressa no seguinte teorema. Teorema 1.3.5 Para toda -algebra hA Ai existe um unico -homomorsmo iA : T ;! A. Quando existe um unico -homomorsmo de uma -algebra A a qualquer -algebra de uma determinada classe C de -algebras, dizemos que a -algebra A e inicial na classe C. A denic~ao de T e indutiva. T e o menor conjunto de express~oes em que contem os smbolos de constantes e e fechado com relaca~o as operaco~es de . A natureza indutiva de T prov^e um metodo de prova para derivar propriedades da linguagem especicada pela assinatura . Para mostrar que uma propriedade P se verica para todos os elementos em T e suciente estabelecer: 1. P se verica para todos os smbolos de constantes de . 2. Assumindo que P se verica para a1 : : : an 2 T, prove que P tambem se verica para f (a1 : : : an), para todo f 2 , arid(f ) = n. Isso e chamado induc~ao estrutural, pois a induc~ao e sobre a estrutura dos elementos de T. E possvel, tembem, usar induca~o estrutural para se denir relaco~es ou funco~es sobre T . Por exemplo, para denir uma funca~o g sobre T e suciente: 1. Denir o resultado da aplicac~ao de g aos smbolos de constante. 2. Denir o resultado da aplicac~ao de g a f (a1 : : : an) em termos de g(a1) : : : g(an), para todo f 2 , de aridade n. De fato, ambas as condic~oes ser~ao resumidas em uma unica: Assumindo o resultado da aplicac~ao de g aos elementos a1 : : : an, dena o resultado da aplicac~ao de g a f (a1 : : : an), para f 2 T , de aridade n 0. Demonstraca~o: (teorema 1.3.5) Devemos mostrar que o -homormorsmo existe e que ele e unico. 1. Deniremos iA por induc~ao estrutural sobre T. Todo objeto em T e da forma f (a1 : : : an) para algum f 2 de aridade n. Assumiremos, por induca~o, que iA(a1 ) : : : iA(an) est~ao denidos. Ent~ao denamos iA (f (a1 : : : an)) como sendo fA(iA(a1 ) : : : iA(an)). Desse modo, denimos iA para todo elemento em T. Direto, da denic~ao de iA, iA e um -homomorsmo. ~ ENTRE LINGUAGENS FORMAIS E -ALGEBRAS 1.3. RELACAO 11 2. Para provarmos que iA e unico provemos que ele coincide com todo -homomorsmo de T em A. Seja h um qualquer de tais -homomorsmos. Mostremos, por induc~ao estrutural, que iA (a) = h(a) para todo a 2 T. Um elemento tpico de T e da forma f (a1 : : : an), onde f 2 tem aridade n. A hipoteses indutiva e que iA (ai) = h(ai), para todo i = 1 : : : n. Ent~ao iA (f (a1 : : : an)) = fA(iA(a1 ) : : : iA(an)) = fA(h(a1) : : : h(an)) = h(fT (a1 : : : an)) = h(f (a1 : : : an)) por denic~ao de iA por induc~ao estrutural pois h e um -homomorsmo por denic~ao de fT Como todo elemento de T e da forma f (a1 : : : an), para algum smbolo de func~ao f , segue que iA coincide com h. Vendo T como a sintaxe de uma linguagem e a -algebra hA Ai como um domnio sem^antico ou interpretac~ao, este teorema nos diz que todo objeto da linguagem tem um unico signicado em hA Ai, isto e, so existe uma maneira de interpretar a linguagem no domnio sem^antico. Um -homomorsmo f : A ;! B diz-se um -isomorsmo se, e somente se, ele e uma bijec~ao. Neste caso dizemos que as -algebras hA Ai e hB B i s~ao isomorfas. Ou seja, s~ao essencialmente as mesmas, no sentido de que elas n~ao podem ser diferenciadas usando . Embora, elas possam ser intrnsecamente diferentes, no sentido que a natureza dos elementos de A e de B podem ser completamente diferentes, do ponto de vista estrutural elas s~ao as mesmas. Teorema 1.3.6 Sejam hA Ai e hB B i duas -agebras isomorfas. Ent~ao existem dois -homomorsmos, h1 : A ;! B e h2 : B ;! A tais que 1. h2 h1 = idA2 2. h1 h2 = idB . Demonstraca~o: 1) Suponha que h2 : B ;! A e um -isomorsmo. Dena a func~ao h1 : A ;! B por h1 = h;1 e a func~ao inversa de h2 . Esto e possvel, uma vez que 2 , isto h2 e uma func~ao bijetiva. Portanto, h2 h1 = idA. Assim, so devemos mostrar que h1 e um -isomorsmo. Seja um f 2 arbitrario de aridade k, e a1 : : : ak 2 A. Ent~ao idA e ua func~ao identidade no conjunto A. Formalmente. idA : A ;! A e de nida por idA (a) = a para todo a 2 A. 2 CAPITULO 1. LINGUAGENS FORMAIS 12 h1 (fA(a1 : : : ak )) = h1(fA (idA(a1 ) : : : idA(ak ))) = h1(fA (h2 h1 (a1) : : : h2 h1 (ak ))) = h1(fA (h2(h1 (a1)) : : : h2 (h1(ak )))) = h1(h2 (fB (h1(a1 ) : : : h1(ak )))) = h1 h2(fB (h1(a1 ) : : : h1 (ak ))) = idB (fB (h1 (a1) : : : h1(ak ))) = fB (h1(a1 ) : : : h1(ak )) Portanto, h1 tambem e um -homorsmo bijetivo, isto e, um -homomorsmo. A outra parte desta proposic~ao e analoga a primeira. Como um corolario imediato deste teorema de caracterizaca~o temos que as algebras iniciais s~ao unicas a menos de isomorsmo. Corolario 1.3.7 Sejam hA Ai e hB B i duas -algebras iniciais. Ent~ao elas s~ao isomorfas. Demonstraca~o: (Exerccio). Seja X um conjunto de variaveis. Usaremos as letras x y z x1 x2 : : : para designar qualquer elemento de X . A s variaveis assim introduzidas, quando interpretadas numa -algebra, lhe s~ao atribuidos valores no conjunto base dessa -algebra. Deni c~ao 1.3.8 Seja hA Ai uma -algebra e X um conjunto de variaveis. Uma Aatribui c~ao de valores para X e uma aplicac~ao A : X ;! A tal que associa a cada variavel x 2 X um elemento A(x) 2 A. Seja (X ) = X . Podemos constroir um tipo de -algebra dos termos, hT(X ) (X )T (X ) i, que considere estas variaveis, da seguinte forma: 1. T(X ) e o menor subconjunto de (X ) satisfazendo as propriedades (a) x 2 T(X ) para cada x 2 X . (b) Se a 2 e arid(a) = 0 ent~ao a 2 T(X ) . (c) Se f 2 , arid(f ) = n e t1 : : : tn 2 T(X ) ent~ao f (t1 : : : tn) 2 T(X ) . 2. Para cada smbolo de func~ao f 2 , se f tem aridade n, dena a funca~o fT(X) : T(n X ) ;! T(X ) por fT(X) (t1 : : : tn) = f (t1 : : : tn) Assim, T(X) = ffT(X) = f 2 g. 1.4. CLASSES EQUACIONAIS 13 Esta -algebra e diferente da -algebra dos termos, pois ela contem novos elementos (aqueles que contem variaveis). No entanto, ela e \inicial" em algum sentido. Proposi c~ao 1.3.9 Se hA Ai e uma -algebra e A e uma A-atribuic~ao para X ent~ao existe um unico -homomorsmo hA : T(X ) ;! A, tal que hA(x) = A(x) para todo x 2 X. Demonstraca~o: Dena hA por induc~ao estrutural sobre T(X ) . Se t 2 X , ent~ao seja hA(t) = A (t). Caso contrario t tem a forma f (t1 : : : tn), para algum f 2 . Neste caso, seja hA(f (t1 : : : tn)) = fA (hA(t1) : : : hA(tn )). Assim, hA e denida para todo f 2 T(X) . A prova de que hA e um -homomorsmo e analoga a prova de que iA e um homomorsmo, no teorema 1.3.5. Seja h0 : T(X ) ;! A um outro -homomorsmo que coincide com A em X . Mostremos por induc~ao estrutural sobre t 2 T(X ) que h(t) = h0(t), para todo t. 1. Se t e uma variavel. Ent~ao ambas h(t) e h0 (t) coincidem com A(t). 2. Se t tem a forma f (t1 : : : tn) para algum f 2 . Ent~ao h(f (t1 : : : tn)) = fA(h(t1 ) : : : h(tn)) pois h e um -homomorsmo = fA(h0 (t1) : : : h0(tn)) por induc~ao estrutural = h0 (f (t1 : : : tn)) pois h0 e um -homomorsmo: Portanto h e unico. Observe que esta proposic~ao pode ser vista como uma generalizac~ao do teorema 1.3.5. Fazendo X = , nesta proposic~ao, obtemos o teorema 1.3.5. O que importa, na proposic~ao acima, e que todo objeto com variavel em T(X ) pode ser interpretado de modo unico numa -algebra hA Ai, uma vez que as variaveis de X sejam associadas a elementos de A. 1.4 Classes Equacionais Muitas vezes, e desejavel obrigar que as interpretac~oes de certos smbolos de func~ao satisfazam determinadas propriedades. Isto e, queremos obrigar que as -algebras possuam certas caractersticas. Podemos descartar coleco~es de -algebras usando equac~oes. Por exemplo, se na assinatura = fzero suc somag do exemplo 1.2.3 obrigamos as -algebras satisfazer a equac~ao CAPITULO 1. LINGUAGENS FORMAIS 14 soma(x zero) = x A -algebra hN zeroN sucN somaN i, do exemplo 1.2.3, sobre o conjunto dos numeros naturais satisfaz essa equac~ao . Mas a -algebra hN zeroN sucN multN i n~ao. Uma equa c~ao e determinada por dois termos os quais podem conter variaveis. A avaliac~ao desses termos numa -algebra e com respeito a uma atribuic~ao de valores a essas variaveis. Deni c~ao 1.4.1 Uma -algebra satisfaz uma equa c~ao se para cada possvel atribuic~ao de valores as variaveis no conjunto base, a evaluac~ao destes dois termos coincide. Para determinar a classe de -algebras que satisfazem um sistema de equaco~es devemos introduzir um tipo de relac~ao de equival^encia, chamada de -congru^encia, entre os membros basicos das -algebras de tal modo que a relaca~o de equival^encia preserve a estrutura. Posteriormente veremos como um sistema de equaco~es gera estas -congru^encias. Relac~oes de equival^encias s~ao extendidas de modo natural para -algebras. Uma congru^encia e uma relac~ao de equival^encia que preserva a estrutura induzida por . Deni c~ao 1.4.2 Seja hA Ai uma -algebra. Uma relac~ao de equival^encia3 C sobre A e uma -congru^encia se para cada f 2 de aridade k e a = (a1 : : : ak ) 2 Ak e b = (b1 : : : bk ) 2 Ak , temos que se (ai bi) 2 C para cada i = 1 : : : k ent~ao, (fA (a) fA (b)) 2 C: Para qualquer -algebra A existem duas -congru^encias can^onicas, ditas triviais, estas s~ao a igualdade ((x y) 2 C se, e somente se, x = y) e aquela onde todos os elementos s~ao equivalentes ((x y) 2 C para todo x y 2 A). Seja A uma -algebra e C uma relac~ao de congru^encia. Ent~ao, para cada a 2 A, existe o conjunto, a]C , dos elementos de A que s~ao equivalentes a a, isto e, a]C = fb 2 A = (a b) 2 C g: Chamaremos este conjunto de classe de equival^encia de a. Exemplo 1.4.3 Seja hN zeroN sucN somaN i a -algebra do exemplo 1.2.3. A relaca~o C N N denida denida por (x y) 2 C se, e somente se, x tem a mesma paridade de y e trivialmente uma relac~ao de equival^encia sobre N . Para demonstrar que e uma congru^encia devemos mostrar que preserva as operac~oes. Uma relac~ao de equival^encia sobre um conjunto qualquer e uma relac~ao binaria que e reexiva, simetrica e transitiva. 3 1.4. CLASSES EQUACIONAIS 15 1. Se x e y tem a mesma paridade, digamos \mpar", ent~ao x +1 e y +1 tem a mesma paridade, neste caso \par". Assim, se (x y) 2 C ent~ao (sucN (x) sucN (y)) 2 C: 2. Se x1 tem a mesma paridade de y1 e x2 tem a mesma paridade de y2 , ent~ao, trivialmente, x1 + x2 tem a mesma paridade de y1 + y2. Assim, se (x1 y1 ) (x2 y2 ) 2 C ent~ao (x1 somaN x2 y1 somaN y2) 2 C: Teriamos as seguintes classes de equival^encias: 0]C = f0 2 4 6 : : : g = f2x = x 2 N g 1]C = f1 3 5 7 : : : g = f2x + 1 = x 2 N g 2]C = f0 2 4 6 : : : g = f2x = x 2 N g 3]C = f1 3 5 7 : : : g = f2x + 1 = x 2 N g .. . Observe que neste caso, 0]C = 2]C = 4]C = : : : e 1]C = 3]C = 5]C = : : : . Assim, podemos dizer que a relaca~o de congru^encia C determina, basicamente, duas classes de equival^encia: a dos numeros pares e a dos numeros impares. Portanto, tanto faz representar a classe dos pares, por exemplo, por 0]C ou por 2]C , pois 0 e 2 s~ao meros representantes da classe dos numeros pares. Exemplo 1.4.4 Seja a -algebra h}fin (N ) i do exemplo 1.3.3. Podemos denir a seguinte -congru^encia C : (X Y ) 2 C se, e somente se, max(X f0g) = max(Y f0g): Teriamos as seguintes classes de equival^encia: f0g]C = f f0gg f1g]C = ff1g f0 1gg f2g]C = ff2g f2 1g f2 0g f2 1 0gg ... CAPITULO 1. LINGUAGENS FORMAIS 16 Para demonstrar que a relac~ao de equival^encia C e realmente uma -congru^encia, devemos mostrar que preserva as operac~oes. Se (X1 X2) 2 C e (Y1 Y2) 2 C ent~ao max((X1 Y1)) = max(X1 ) + max(Y1 ) = max(X2 ) + max(Y2 ) = max((X2 Y2)) Denotaremos por A=C o conjunto de classes de equival^encias em A inducidas por C , isto e A=C = fa]C = a 2 Ag: Analogamente, para cada f 2 de aridade k, podemos denir a func~ao fA=C de aridade k sobre A=C por fA=C (a1 ]C : : : ak ]C ) = fA(a1 : : : ak )]C : Denotaremos por A=C ao conjunto das func~oes fA=C , isto e A=C = ffA=C = f 2 g: Lema 1.4.5 Seja hA Ai uma -algebra. 1. hA=C A=C i e uma -algebra 2. em : A ;! A=C denido por em(a) = a]C e um -homomorsmo. Demonstraca~o: 1. Como A=C e um conjunto e A=C tem uma \funca~o " fA=C para cada f 2 com a mesma aridade, poderiamos concluir que hA=C A=C i e uma -algebra. Porem, para isto devemos estar certos que cada fA=C e realmente uma func~ao bem denida. Logo, devemos mostrar que o resultado de fA=C (a1 ]C : : : an]C ) n~ao depende do representante escolhido nos ai ]C . Seja a0i em ai ]C , com 1 i n. Portanto, (ai a0i) 2 C para cada 1 i n. Como C e uma -congru^encia, segue que (fA(a1 : : : an) fA(a01 : : : a0n)) 2 C e portanto fA (a01 : : : a0n) 2 fA(a1 : : : an)]C . Logo, fA=C (a1]C : : : ak ]C ) = fA(a1 : : : ak )]C = fA(a01 : : : a0k )]C : 2. A prova de que em : A ;! A=C e um -homomorsmo segue imediatamente da denic~ao de fA=C . 1.4. CLASSES EQUACIONAIS 17 -congru^encias s~ao denidas sobre uma -algebra especca e n~ao sobre uma classe de -algebras, o qual va encontra a ideia de caracterizar uma subclasse das -algebras. No entanto, se denirmos a -congru^encia sobre a -algebra dos termos, hT T i, podemos, usando a inicialidade da -algebra dos termos, estender a -congru^encia para outras algebras. Deni c~ao 1.4.6 Seja C uma -congru^encia sobre T. Dizemos que uma -algebra A satisfaz C se iA(t) = iA (s) quando (t s) 2 C . Teorema 1.4.7 Seja C uma -congru^encia sobre T e seja C (C ) a classe de todas as -algebras satisfazendo C . hT=C T=C i e inicial em C (C ). Demonstraca~o: Primeiro devemos mostrar que T =C esta de fato em C (C ), depois de- vemos descrever um -homomorsmo hA de T=C em qualquer -algebra A satisfazendo C . Finalmente devemos mostrar que hA e unico. 1. A injec~ao natural de T em T=C e um -homomorsmo e como hT T i e inicial na classe de todas as -algebras este deve coincidir com iT =C . Logo, seja (t t0 ) 2 C , ent~ao iT =C (t) = t]C = t0]C = iT =C (t0 ): Logo, hT=C T=C i satisfaz C e portanto hT=C T=C i 2 C (C ): 2. Seja hA Ai 2 C (C ). Dena hA : T=C ;! A por hA(t]C ) = iA(t): Esta func~ao esta bem denida, pois se t0 2 t]C , ent~ao (t t0 ) 2 C e como A satisfaz C , iA(t) = iA(t0 ). Por outro lado, para todo f 2 de aridade k e t 2 Tk temos que hA(fT =C (t]C )) = hA (f (t)]C ) = iA (f (t)) = fA (iA(t)) = fA (hA(t]C )): Assim, hA e um -homomorsmo. CAPITULO 1. LINGUAGENS FORMAIS 18 3. Seja h0A um outro -homomorsmo de T=C em A. Dena i0A : T ;! A por i0A(t) = h0A (t]C ). Ent~ao, i0A(fT (t)) = h0A(f (t)]C ) = h0A(fT =C (t]C )) = fA(h0A(t]C )) = fA(i0A(t)): Logo, i0A e um -homomorsmo. Como, T e inicial na classe das -algebras, i0A e iA coincidem. Portanto, h0A(t]C ) = i0A (t) = iA (t) = hA (t]C ): Logo, hA e h0A s~ao os mesmos -homomorsmos e portanto hA e unico. Observe que temos duas -algebras iniciais diferentes, uma, hT T i, e inicial com respeito a classe de todas as -algebras e a outra, hT=C T=C i e inicial com respeito a um subconjunto delas, a classe de todas as -algebras satisfazendo a -congru^encia C . Estamos interessados num tipo especial de -congru^encia, aquelas obtidas a partir de um conjunto ou sistema de equaco~es. Para denir formalmente como equac~oes geram -congru^encias, necessitamos introduzir variaveis a assinatura como no nal da sec~ao 1.3. Uma -equa c~ao e uma par (t s) 2 T(X ) T(X ) . Usualmente escritas por t = s. Deni c~ao 1.4.8 Seja hA Ai uma -algebra e E um conjunto de -equac~oes com variaveis em X . A -algebra hA Ai satisfaz E se, para cada -equac~ao (t s) em E e cada Aatribuica~o A, hA(t) = hA(s), onde hA e o unico -homomorsmo de T(X ) em A tal que hA(x) = A(x) para todo x 2 X (proposic~ao 1.3.9). Teorema 1.4.9 Seja E um conjunto de -equac~oes e C (E ) a classe de -algebras satisfazendo E . C (E ) tem uma -algebra inicial. Demonstraca~o: Aqui so daremos o esboco da demonstrac~ao. A -algebra inicial de C (E ) e T =C , onde C e a -congru^encia denida por (t s) 2 C se e somente se para alguma -equaca~o (t0 s0) 2 E existe uma T(X ) atribuic~ao talque hT (t0) = t e hT (s0 ) = s, onde hT : T(X ) ;! T e o unico homomorsmo tal que hT (x) = T(x) para cada x 2 X . 1.5. -DOMINIOS 19 1.5 -Domnios Podemos estender a noc~ao de assinatura por considerar alem de smbolos funcionais, smbolos relacionais, isto e, smbolos cujas interpretac~oes sejam relaco~es sobre o conjunto base. Deni c~ao 1.5.1 Uma assinatura relacional e uma tripla hF R aridi, tal que F e R s~ao conjuntos contaveis de smbolos funcionais e de predicados, respectivamente e arid e uma funca~o de aridade, arid : F R ;! N , tal que a cada smbolo s 2 F R associa sua aridade. Deni c~ao 1.5.2 Um -domnio e um par hD D i, onde D e um conjunto n~ao vazio, chamado conjunto base. D = ff1D f2D : : : R1D R2D : : : g e um conjunto de func~oes e relac~oes que interpretam os smbolos correspondentes em F e R , respectivamente, de tal modo que se arid(fi) = n, em F , ent~ao fiD : Dn ;! D e uma func~ao de Dn em D, ou seja, e uma operac~ao n-aria em D (as func~oes de aridade zero s~ao as constantes). Se arid(Ri) = n, em R , ent~ao RiD e uma relac~ao n-aria em D, isto e RiD Dn, que interpreta Ri . Exemplo 1.5.3 Considere a seguinte assinatura relacional d = fzero um plus div igualg. Seja =N a igualdade usual sobre os numeros naturais, N e 0N , 1N , +N e =N , o numero zero, o numero um, a soma e a divis~ao sobre os numeros naturais, respectivamente. Ent~ao, hN +N 0N 1N =N =N i e um d -domnio que interpreta d em N . A teoria dos -domnios pode ser desenvolvida do mesmo modo que a teoria das algebras, com as modicac~oes obvias, que consistem em considerar, os smbolos de relac~ao na assinatura , os quais s~ao interpretados, em D, como relac~oes. Por exemplo, um domnio homomorsmo e um -homomorsmo que preserva a estrutura extra de relac~oes. Sejam hD1 1 i e hD2 2i -domnios. Uma func~ao h : D1 ;! D2 e um -domnio homomorsmo se: 1. Para cada f 2 , h(fD1 (d1 : : : dn)) = fD2 (h(d1 ) : : : h(dn)), onde d1 : : : dn 2 D1 e arid(f ) = n. 2. Se (d1 : : : dn) 2 RiD1 , ent~ao (h(d1) : : : h(dn)) 2 RiD2 , onde arid(Ri) = n e RiD1 RiD2 denotam relac~oes n-arias sobre D1 e D2, respectivamente. CAPITULO 1. LINGUAGENS FORMAIS 20 Um -domnio homomorsmo h : D1 ;! D2 diz-se um isomorsmo, mais precisamente um -isomorsmo, se h, alem de ser um -domnio homomorsmo, for bijetiva. Neste caso dizemos que D1 e D2 s~ao isomorfos. Analogamente a -algebras, tambem temos um -domnio dos termos com variaveis em X , hT(X ) T(X) i. Como as relac~oes tomam, quando interpretadas num -domnio, valores verdade e n~ao elementos do domnio basico, elas n~ao constituem um termo. Assim, termos de uma assinatura d s~ao compostos de variaveis em X e funco~es em F . Logo, T(X ) e denido da seguinte maneira: 1. se x 2 X ent~ao x 2 T(X ) . 2. se f 2 F , arid(f ) = n e t1 : : : tn 2 T(X ) ent~ao f (t1 : : : tn) 2 T(X ) . Por outro lado, T(X) e denido da seguinte maneira: 1. se f 2 F , arid(f ) = n e t1 : : : tn 2 T(X ) ent~ao fT(X) : T(n X ) ;! T(X ) e denida por: fT(X) (t1 : : : tn) = f (t1 : : : tn) 2. se R 2 R e arid(R) = n ent~ao RT (X ) = T(n X ) . Proposi c~ao 1.5.4 Seja hD D i um -domnio e D uma D-atribuic~ao para X , em . Ent~ao existe um unico -domnio homomorsmo hD : T(X ) ;! D tal que hD (x) = D (x), para todo x 2 X . Demonstraca~o: A prova e virtualmente id^entica aquela do teorema 1.3.5. Seja hD co- mo denido naquele teorema. Neste teorema foi mostrado que hD e um -homomorsmo. Com a unica relac~ao sobre T(X ) e a relac~ao trivial, isto e, a igualdade sintatica, onde dois termos s~ao iguais se e somente se s~ao id^enticos, hD , trivialmente, preserva essa relac~ao sobre D. Seja h0D um outro -domnio homomorsmo de T(X ) em D, que coincide com D sobre X . Ent~ao h0D e, tambem, um -domnio homomorsmo da -algebra T(X ) em D. Logo pelo teorema 1.3.5 h0D coincide com hD . O -domnio homomorsmo hD , nesta proposica~o coincide com aquele do teorema 1.3.5, quando o -domnio hD D i e apenas uma -algebra. Se X = , existe um unico -domnio homomorsmo de T em D. Caso X 6= , existe uma innidade de tais domnio homorsmos, um para cada D : X ;! D. 1.6. EXERCICIOS 21 1.6 Exerccios 1. Dena uma linguagem formal h Gi para os numero binarios. Considere somente aquelas cadeias de 1's e 0's que comecem com 1. 2. Dena uma linguagem formal h Gi que gere a linguagem de todas express~oes sobre o alfabeto = f( )g que estejam corretas com a convenca~o do uso de par^enteses. 3. D^e uma prova de que (()())(()(())) faz parte da linguagem do exemplo anterior. 4. Dena uma linguagem formal h Gi para a linguagem de todas as express~oes aritmeticas, construdas a partir do smbolo E , os operadores binarios +,-,* e /. Considere o uso de todos os par^enteses. 5. D^e uma prova de que ((E + (E + E )) ((E + E ) E )) faz parte da linguagem do exemplo anterior. 6. Descreva as linguagens dos exerccios 2 e 4 como assinaturas e d^e duas -algebras para cada uma delas. 7. D^e uma outra -algebra que tenha como conjunto base o conjunto dos numeros naturais e operac~oes usuais sobre ele. 8. D^e um -homomorsmo entre as duas -algebras do exerccio 6. 9. Sejam h}fin(N ) f gi e hN f0 +gi as duas -algebras do exemplo 1.3.3.3. Mostre que z : }fin(N ) ;! N denido por z(x) = 0 e um -homomorsmo. A func~ao Som : }fin(N ) ;! N denida por Som(X ) = 0 se X = x + Som(Y ) se X = fxg Y e um -homomorsmo? 10. Sejam hP Pi, hZ Zi e hN N i as -algebras do exemplo 1.3.3. Demonstre que: (a) a func~ao p1 : P ;! N denida por p1(x) = x2 e um -homomorsmo. (b) a func~ao p2 : Z ;! N , denidas por x<0 p2(x) = 22xj x j ;1 ,, se se x 0 n~ao e um -homomorsmo. 11. Que poderia ser mudado na -algebra hN N i para que p2 , do exerccio anterior, seja um -homomorsmo. CAPITULO 1. LINGUAGENS FORMAIS 22 12. D^e um exemplo de duas -algebras para as quais exista mais de um -homomorsmo. 13. D^e a -algebra dos termos da seguinte assinatura (descreva pelo menos 10 termos de T). = fzero suc pred plus prodg arid(zero) = 0, arid(suc) = 1, arid(pred) = 1, arid(soma) = 2 e arid(prod) = 2 14. Seja hZ Zi onde zeroZ = 0 sucZ : Z ;! Z e denida por sucZ(x) = x + 1 predZ : Z ;! Z e denida por predZ(x) = x ; 1 somaZ : Z Z ;! Z e denida por somaZ(x y) = x + y prodZ : Z Z ;! Z e denida por prodZ(x y) = xy: D^e o unico -homomorsmo de hT T i em hZ Zi. 15. Demonstre que hT T i e hZ Zi do exerccio anterior s~ao isomorfas. 16. Seja hN fzeroN sucN somaN gi a -algebra do exemplo 1.2.3. Mostre que a relac~ao Mod5 N N denida por (x y) 2 Mod5 se, e somente se, x mod 5 = y mod 5 onde x mod 5 e o resto da divis~ao de x por 5, e uma relac~ao de congru^encia. 17. Seja h}fin (N ) i a -algebra do exemplo 1.3.3. Mostre que a relaca~o (X Y ) 2 C se, e somente se, Card(X ) = Card(Y ) onde Card(X ) e a cardinalidade do conjunto X , e uma relac~ao de equival^encia, porem n~ao e uma -congru^encia. 18. Dena uma -congru^encia n~ao trivial para a -algebra anterior. 19. Seja = f+ 1 0g com aridades 2, 2, 0 e 0 respectivamente. Dena um conjunto de -equac~oes E de tal modo que as -algebras satisfazendo E sejam a classe de todos os aneis. 20. Seja E o conjunto de -equac~oes do exerc$ii cio anterior. Descreva duas -algebras em C (E ) e mostre um -homomorsmo entre elas. Alguma delas e inicial em C (E )? 1.6. EXERCICIOS 23 21. Seja a assinatura relacional = f0 1 + g, onde 0 e 1 s~ao constantes, +, e s~ao smbolos de func~ao de aridade 2, e e um smbolo de relac~ao binario. Sejam eguintes -domnios: (a) -domnio dos pares ordenados onde o primeiro elemento e menor ou igual ao segundo i. Conjunto base: I(R) = f(a b) = a b 2 R e a R bg, onde R e o conjunto dos numeros reais e R e a ordem usual sobre esse conjunto. ii. 0I(R) = (0 0), iii. 1I(R) = (1 1), iv. (a b) +I(R) (c d) = (a +R c b +R d), v. (a b) I(R) (c d) = (min(ac ad bc bd) max(ac ad bc bd)) e vi. (a b) I(R) (c d) se, e somente se, c R a e b R d. (b) 2o -domnio dos intervalos reais fechados. Um intervalo real fechado e um conjunto a b] = fx 2 R = a R x R bg i. Conjunto base: IR = fX R = X = a b] para algum intervalo real fechado a b]g, ii. 0IR = 0 0] = f0g, iii. 1IR = 1 1] = f1g, iv. a b] +IR c d] = fx + y = x 2 a b] e y 2 c d]g, v. a b] IR c d] = fx y = x 2 a b] e y 2 c d]g, e vi. a b] IR c d] se, e somente se, a b] c d] Mostre que estes dois -domnios s~ao isomorfos. 24 CAPITULO 1. LINGUAGENS FORMAIS Captulo 2 Logica Proposicional: Linguagem e Sem^antica As linguagens s~ao express~oes simbolicas de entidades signicativas de um \fragmento da realidade" a qual suas express~oes representam ou denotam. Desse modo, as linguagens s~ao constitudas de dimens~oes sintaticas e sem^anticas. Existe, ainda, uma terceira dimens~ao nos sistemas lingusticos, qual seja, a dimens~ao pragmatica, que trata da quest~ao do uso das linguagens por uma comunidade de indivduos. Do ponto de vista matematico as duas primeiras dimens~oes est~ao relativamente avancadas, enquanto a dimens~ao pragmatica ainda se encontra num estagio primitivo de seu desenvolvimento. Ultimamente, com o advento da ci^encia da computac~ao esta dimens~ao tem-se tornado uma area de intensa pesquisa. Neste trabalho somente abordaremos os nveis sintaticos e sem^anticos das linguagens. Mais precisamente, usaremos essas duas dimens~oes para formalizar a teoria da logica proposicional. Portanto, no captulo que segue, a realidade para nos e constituda de proposic~oes, isto e armac~oes que podem ser verdadeiras ou falsas. Quando argumentamos, isto e, quando fazemos uma prova, o fazemos numa linguagem. Se a linguagem esta formalizada os argumentos podem, tambem, ser formalizados, resultando, assim, uma logica formal em contrapartida a uma logica especulativa ou informal. O argumento, objeto de estudo da logica classica, e uma entidade composta de entidades mais simples chamadas proposic~oes. Para entender o que e uma proposic~ao considere a frase \1 mais 1 e igual a 10", ou simbolicamente, \1+1 = 10". Esta frase e uma proposic~ao no sentido de que ela e uma asserc~ao declarativa, ou seja, arma ou nega um fato, e tem um valor verdade, que pode ser verdadeiro ou falso. Observe que o valor verdade de uma proposic~ao n~ao e um conceito absoluto, mas depende de um contexto interpretativo. Por exemplo, num sistema de numerac~ao de base 2 a proposic~ao anterior seria verdadeira, enquanto que no sistema decimal seria falsa. De ora em diante so consideraremos frases que s~ao proposic~oes, isto e, frases que s~ao declarativas e conotam um valor verdade, verdadeiro ou falso. Portanto n~ao consideraremos como proposic~oes frases interrogativas, exclamativas, etc. A logica estuda como raciocinar, como deduzir das hipoteses certas conclus~oes. As25 26 ^ CAPITULO 2. LOGICA PROPOSICIONAL: LINGUAGEM E SEMANTICA sim, s~ao fundamentais as noc~oes de proposica~o, verdade e prova. A logica proposicional classica e o exemplo mais simples de logica formal. Esta logica leva em conta, somente, os valores verdades e a forma das proposic~oes. O estudo detalhado dessa logica, e importante porque ela contem quase todos os conceitos importantes necessarios para o estudo de logicas mais complexas. 2.1 A Linguagem da Logica Proposicional Uma proposic~ao e um sentenca declarativa sobre objetos a qual pode assumir valores verdade Verdadeiro (1) ou Falso (0), dependendo da interpretac~ao. Assim, por exemplo, as sentencas: 1. \Maria gosta de Jo~ao e de Pedro" 2. \Todos os seres humanos t^em uma m~ae" 3. \Cinco e maior que quatro" s~ao, dependendo da interpretac~ao (quem e Maria?, quem e Jo~ao?, que signica gosta?, etc.), verdadeiras ou falsas. Os objetos aos quais aludem uma proposica~o (Maria, Jo~ao, seres humanos, m~ae, cinco, um lme, etc.) s~ao chamados de termos. Conectivos E possvel juntar ou conectar algumas proposico~es formando proposic~oes mais complexas: Por exemplo, a proposic~ao \Maria gosta de Jo~ao e e irm~a de Pedro" e a junc~ao, mediante o conectivo \e", das proposic~oes \Maria gosta de Jo~ao" e \Maria e irm~ao de Pedro". Em logica proposicional distinguimos 5 conectivos ou juntores: Nega c~ao Em portugu^es, a palavra \N~ao", indica que algo (ao que se refer o \n~ao") n~ao ocorre ou n~ao e verdade. Por exemplo, a proposic~ao \Maria n~ao gosta de Jo~ao" esta dizendo que n~ao e verdade que \Maria gosta de Jo~ao". Assim, a negac~ao de um proposica~o e verdadeira se a proposic~ao que esta sendo negada e falsa. Em logica proposicional, usaremos o smbolo \:" para indicar este conectivo logico. 2.1. A LINGUAGEM DA LOGICA PROPOSICIONAL 27 Conjun c~ao A partir de duas proposic~oes, p1 e p2, podemos obter uma terceira proposica~o, p1 ^ p2, a qual vai ser verdadeira se, e somente se, as duas proposic~oes (p1 e p2) s~ao em conjunto ambas verdadeiras. Em portugu^es isto corresponde ao conectivo \e". Por exemplo, a conjunc~ao das proposic~oes \Maria gosta de Jo~ao" e \Jo~ao gosta de Maria" e a proposic~ao \Maria gosta de Jo~ao e Jo~ao gosta de Maria". Em logica proposicional, usaremos o smbolo ^" para indicar a conjunc~ao de proposico~es. Disjun c~ao A partir de duas proposic~oes, p1 e p2, podemos obter uma terceira proposica~o, p1 _ p2, a qual vai ser verdadeira se, e somente se, ao menos uma das duas proposic~oes p1 ou p2 ) for verdadeira. Em portugu^es isto e representado se usando o conectivo \ou". Este conectivo e chamado de disjunc~ao. Por exemplo, a disjunc~ao das proposico~es \Maria gosta de Jo~ao" e \Jo~ao gosta de Maria" e a proposica~o \Maria gosta de Jo~ao e Jo~ao gosta de Maria". Em logica proposicional, usaremos o smbolo _" para indicar a disjunc~ao de proposic~oes. Condicional ou implica c~ao A partir de duas proposic~oes, p1 e p2, podemos obter uma terceira proposica~o, p1 ! p2, a qual vai ser verdadeira se, e somente se, a proposic~ao p1 e falsa ou p2 e verdadeira. Ela e chamada de condicional, pois para ela tomar o valor verdade verdadeiro, o valor verdade verdadeiro de p2 debe estar condicionado ao valor verdade verdadeiro de p1 . Ou seja, toda vez que a proposic~ao p1 for verdadeira a proposica~o p2 tambem debe ser verdadeira, ja quando p1 for falsa, p2 pode tomar qualquer valor verdade. Em portugu^es esse conectivo e representado pela express~ao \se ... ent~ao ...." ou pela palavra \implica". Este tipo de conectivo e chamado de disjunc~ao. Por exemplo, a disjunc~ao das proposico~es \Maria gosta de Jo~ao" e \Jo~ao gosta de Maria" e a proposic~ao \Se Maria gosta de Jo~ao ent~ao Jo~ao gosta de Maria". Outro exemplo, de implicac~ao de duas proposic~oes e a proposica~o \cachorro que late, n~ao morde" a qual pode ser re escrita de tal modo a salientar o conectivo usado como \Se o cachorro late, ent~ao ele n~ao morde". Em logica proposicional, usaremos o smbolo !" para indicar a implicac~ao de proposic~oes. A proposic~ao a esquerda do conectivo ! e denominada de premissa ou antecendente , e a proposic~ao a direita do conectivo ! e denominada de conclus~ao ou consequente . Bi-condicional ou bi-implica c~ao A partir de duas proposic~oes, p1 e p2 , podemos obter uma terceira proposic~ao, p1 $ p2, a qual vai ser verdadeira se, e somente se, ambas proposico~es (p1 e p2) tiverem o mesmo valor verdade. Ela e chamada de bi-implicac~ao pois ela e equivalente a implicac~ao de p1 com p2 e de p2 com p1. Em portugu^es, este conectivo e representado pela express~ao 28 ^ CAPITULO 2. LOGICA PROPOSICIONAL: LINGUAGEM E SEMANTICA \se, e somente se,". Por exemplo, a frase \Josue vai se formar se, e somente se, defender sua monograa" pode ser encarada como a bi-implicac~ao de \Josue vai se formar" com \Josue vai defender sua monograa". Em logica proposicional, usaremos o smbolo $" para indicar a bi-implicac~ao de proposic~oes. Proposic~oes at^omicas Proposic~oes at^omicas s~ao proposic~oes, como a palavra diz, indivisveis, isto e, proposic~oes que n~ao podem ser quebradas em proposic~oes mais simples. Portanto, uma proposica~o e at^omica se ela n~ao possue nenhum conectivo logico. Por exemplo, as proposic~oes \Rosa gosta de estudar logica", \todos os corvos s~ao pretos" e \Ronaldo gosta de jogar bola" s~ao proposic~oes at^omicas, ja as proposic~oes \Rosa gosta de estudar logica e teoria da computac~ao ", \Maria gosta de Jo~ao ou de Pedro", \Ele n~ao gosta de fumar", \Se Roberto n~ao estuda para a prova de logica, tirara uma nota baixa", etc. s~ao proposic~oes n~ao at^omicas ou proposic~oes compostas, pois elas envolvem algum conectivo logico sobre proposic~oes menores. Uma maneira semi-formal de escrever proposic~oes at^omicas e colocar verbo da proposic~ao, seguido de uma lista de sujeito entre par^enteses. Por exemplo, as proposico~es \Jo~ao e pai de Ana" e \Ana, maria e Rosa s~ao irm~as" podem ser colocadas como: Pai(Jo~ao,Ana) e Irm~as(Ana,Maria,Rosa), respectivamente. Usando esta convec~ao , podemos descrever armac~oes do dia a dia numa nomenclatura mais facilmente entendvel. Por exemplo a armac~ao \Se Jo~ao e Gabriela s~ao os pais de Ana e Ana e irm~a de Maria, ent~ao Jo~ao e pai de Maria ou Gabriela e m~ae de Maria", pode ser re-escrita numa linguagem mais logica da seguinte forma: (Pais(Jo~ao,Gabriela,Ana)^Irm~ao(Ana,Maria))! (Pai(Jo~ao,Maria)_M~ae(Gabriela,Maria)), ou ainda (Pai(Jo~ao,Ana)^M~ae(Gabriela,Ana)^Irm~ao(Ana,Maria))! (Pai(Jo~ao,Maria)_M~ae(Gabriela,Maria)), Esta forma de escrever armac~oes e a base para usar logica como uma forma de representar o conhecimento em sistemas inteligentes, para especicar sistemas, para escrever programas baseados no paradigma de programaca~o em logica que veremos sucintamente no captulo 8 deste texto, etc. No entanto, como por enquanto estamos preocupados em lidar com as caractersticas e propriedades da linguagem proposicional independente de como s~ao interpretadas as sentencas, daremos a seguir a linguagem logica desde uma perspectiva formal. 2.2. A LINGUAGEM FORMAL DA LOGICA PROPOSICIONAL 29 2.2 A Linguagem Formal da Logica Proposicional De ora em diante usaremos as letras minusculas indexadas, p1 p2 : : : , para representar proposic~oes at^omicas e usaremos letras gregas minusculas, talvez indexadas, tais como , , 1, etc., como meta-variaveis proposicionais, isto e s~ao usadas para representar qualquer proposic~ao (at^omica ou composta). O alfabeto da linguagem da logica proposicional e constituido de tr^es conjuntos disjuntos. 1. O conjunto enumeravel V das variaveis proposicionais, V = fp1 : : : pn : : : g: 2. O conjunto C dos conectivos proposicionais, C = f: ^ _ ! $g. 3. O conjunto P dos par^enteses P = f( )g. Portanto = V C P , o qual denotaremos, simplesmente, por = fp1 : : : pn : : : : ^ _ ! $ ( )g: A linguagem proposicional, LP , e a linguagem gerada pela linguagem formal LP = h Gi, onde e o alfabeto proposicional acima e G e a gramatica constituda pelas seguintes regras. g1 : : p;i pi 2 V g2 : : (:) g3 : : (^ ) g4 : : (_ ) g5 : : (! ) g6 : : ($ ) Observa c~oes: 1. LP = Ling(LP ). 2. As variaveis proposicionais s~ao chamadas formulas at^omicas, pois elas denotam proposic~oes at^omicas. 3. Os elementos da linguagem proposicional s~ao chamados de proposic~oes , formulas ou formulas bem formadas. 4. E usual, nos textos classicos de logica, denominar-se de linguagem proposicional ao conjunto das formulas bem formadas (fbf) do calculo proposicional. ^ CAPITULO 2. LOGICA PROPOSICIONAL: LINGUAGEM E SEMANTICA 30 Exemplo 2.2.1 \def = " e usado com o sentido \e denido por". 1 , 2 e 3, abaixo, s~ao exemplos de proposico~es em LP . 1 def = pi 2 def = ((p1 _ p2 ) ! p3 ) 3 def = ((p1 ^ p2) $ (p1 ! p2 )) pois, elas podem ser geradas pela linguagem formal da logica proposicional. No caso de 3 temos a seguinte prova (junto com o argumento a cada passo da prova) de que 3 2 LP : w1 def = def w2 = w3 = w4 def = def w5 = 3 = p1 p2 (p1 ^ p2) (p1 ! p2) ((p1 ^ p2) $ (p1 ! p2 )) Aplicando g6 a w3 e w4 Direto da regra g1 Direto da regra g1 Aplicando g3 a w1 e w2 Aplicando g5 a w1 e w2 O conceito de subformula e intuitivo e natural. Basicamente, uma formula e uma subformula de uma formula se ela ocorre em , no sentido que ela foi usada como premisa de uma das regras gramaticais na gerac~ao de . Mas, para tornar este conceito mais precisso, daremos uma denic~ao indutiva. Deni c~ao 2.2.2 Uma formula e uma subformula de uma formula se 1. e o proprio , 2. e (: ) e e uma subformula de , ou 3. e (1 2 ) para algum 2 f_ ^ ! $g e e uma subformula de 1 ou de 2. Exemplo 2.2.3 Seja 3 a formula descrita no exemplo 2.2.1. Ent~ao, 3 tem as seguintes subformulas: 1. p1 2. p2 3. (p1 ^ p2 ) 4. (p1 ! p2 ) 5. ((p1 ^ p2 ) $ (p1 ! p2 )) 2.2. A LINGUAGEM FORMAL DA LOGICA PROPOSICIONAL 31 O escopo de um conectivo de C e a proposica~o ou proposico~es as quais o conectivo se aplica quando visto como uma operaca~o sobre LP . Aqui o conectivo : e uma operac~ao unaria, isto e, pede apenas um argumento, enquanto os demais s~ao binarios, requerem, portanto, dois argumentos. Para que as express~oes complicadas se tornem mais legveis, adotaremos algumas convens~oes para eliminac~ao de par^enteses. Primeiro omitiremos os pares de par^enteses mais externos. Assim, ( ! ) pode ser escrito como ! e (:) como :. Segundo, quando uma formula contem repetidas aplicaco~es de um conectivo binario, os par^enteses ser~ao omitidos usando associac~ao a esquerda. Por exemplo, a formula ((( ! ( ^ )) ! ) ! ) se torna ! ( ^ ) ! ! Por ultimo, os conectivos s~ao ordenados do maior ao menor escopo, ou da mais baixa preced^encia para a mais alta como segue: $ ! _ ^ : Par^enteses s~ao, assim, eliminados segundo a regra de que $ tem o maior escopo e : tem o menor, ou dito de outro modo, : tem a mais alta preced^encia e $ a menor. Ou seja, : se aplica a menor proposica~o que a segue, em seguida ^, e assim ate $. Por exemplo, a formula (((:) _ (:( _ ))) $ ( ! ( _ ((:) ^ )))): pode ser simplicada, eliminando par^enteses de acordo com a convenc~ao acima adotada, resultando na formula : _ :( _ ) $ _ : ^ Claramente, quando eliminamos par^enteses de uma formula n~ao at^omica, o resultado n~ao sera uma formula bem formada. Porem, devemos encarar estas formulas sem todos os par^entese, como abreviac~oes ou simplicaco~es, das repectivas formula com todos seus par^enteses. De aqui para frente, as fbf's ser~ao escritas sem considerar, provavelmente, todos seus par^enteses. No entanto, com o intuito de preservar o entendimento da formula n~ao usaremos, necessariamente, a convenc~ao para tirar par^entese de modo exaustivo. Uma linguagem L, sobre um alfabeto , e decidvel se existe um algoritmo tal que tendo como entrada uma express~ao 2 ele fornece como sada \sim" se 2 L e \n~ao" se 2=L. Embora n~ao entraremos em detalhes, observaremos que a linguagem LP , das proposic~oes sobre o alfabeto , acima especicada, e decidvel. Considere o conjunto B = f0 1g, no qual 0 sera pensado como o valor verdade \falso" e 1 como o valor verdade \verdadeiro". Dena sobre B as seguintes operaco~es: + ) e ,, especicadas pelas seguintes tabelas, denominadas tabelas verdade: ^ CAPITULO 2. LOGICA PROPOSICIONAL: LINGUAGEM E SEMANTICA 32 1 0 0 1 1 1 0 0 1 1 0 0 + 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 ) 1 1 0 0 1 1 0 1 1 1 0 0 , 1 1 0 0 1 0 0 1 E facil ver que, de fato, + ) e , s~ao operac~oes sobre B , com uma operac~ao unaria e as demais binarias. Alem disso, B munido das operac~oes + e satisfaz o seguinte conjunto de equac~oes 1. 2. 3. 4. 5. 6. Comutatividade: + = + e = Associatividade: + ( + ) = ( + ) + e ( ) = ( ) Elemento neutro: + 0 = e 1 = Distribuitividade: ( + ) = + e + ( ) = ( + ) ( + ) Complemento: = 0 e + = 1 Absorc~ao : _ ( ^ ) = e ^ ( _ ) = Seja A um conjunto n~ao vazio. Uma estrutura algebrica, hA + 0 1i, onde + e s~ao operac~oes binarias, uma operaca~o unaria e 0 e 1 constantes, satisfazendo as equac~oes acima, e conhecida na literatura, como algebra booleana, em homenagem ao matematico George Boole (1815-1864) que introduz esta estrutura para estudar a teoria dos conjuntos e logica proposicional. Observe que para qualquer conjunto X 6= , h}(X ) \ X i e uma algebra booleana. Claramente, se pensarmos em termo de -algebras, a algebra booleana B e inicial na classe de todas -algebras satisfazendo as -equac~oes anteriores. De posse da algebra booleana B e possvel denir uma interpretaca~o para a linguagem proposicional LP . Antes porem, daremos a seguinte denic~ao. 2.2. A LINGUAGEM FORMAL DA LOGICA PROPOSICIONAL 33 Deni c~ao 2.2.4 Seja V o subconjunto das variaveis proposicionais do alfabeto da linguagem proposicional LP . Uma atribui c~ao de valores verdade e uma func~ao : V ;! B . Como LP e denida indutivamente a partir de V , usando a proposic~ao 1.3.9, e possvel estender a atribuic~ao de valores verdade para uma func~ao V : LP ;! B . Esta func~ao e chamada fun c~ao de valora c~ao associada a atribuic~ao , ou simplesmente, valoraca~o. V, tambem, e conhecida como fun c~ao sem^antica. Observe que e possvel denir innitas atribuic~oes de valores verdade de V em B , e cada valorac~ao V depende da atribuic~ao . Assim, V e denida recursivamente tendo como base da recurs~ao a func~ao , como mostrado abaixo: 1. V(p) = (p) para todo p 2 V 2. V(:) = V() 3. V( _ ) = V () + V ( ) 4. V( ^ ) = V () V( ) 5. V( ! ) = V() ) V ( ) 6. V( $ ) = V() , V ( ) Um caso particularmente interessante de atribuic~ao se da no seguinte caso. Seja a proposic~ao def = (p1 _ p2) ! p3. Neste caso dizemos que e constituda das proposico~es at^omicas p1 p2 e p3 . Em geral, se e uma proposic~ao cujo conjunto de proposico~es at^omicas e fp1 : : : png, ent~ao para determinar o valor verdade de os valores que tomem as variaveis proposicionais pi , com i > n, e absolutamente irrelevante. Assim, podemos dizer que uma atribuic~ao de valores verdade para e uma func~ao : fp1 : : : png ;! B . Analogamente, V e uma valorac~ao para , isto e, V associa o valor 0 ou 1 a dependendo da atribuic~ao . Exemplo 2.2.5 Seja def = (p1 _ p2 ) ! p3. Achar V () para o seguinte : (p1 ) = 0, (p2 ) = 1 e (p3 ) = 0. Ent~ao, V ((p1 _ p2 ) ! p3 ) = V (p1 _ p2 ) ) V (p3 ) = (V(p1 ) + V(p2)) ) V (p3) = ((p1 ) + (p2)) ) (p3 ) = (0 + 1) ) 0 =1)0 = 0: 34 ^ CAPITULO 2. LOGICA PROPOSICIONAL: LINGUAGEM E SEMANTICA Em alguns casos e desejavel se saver o comportamento da formula em todas as possveis interpretac~oes , isto e considerar cada possvel funca~o de atribuic~ao de valores verdade para as variaveis proposicionais. Exemplo 2.2.6 Seja a mesma formula do exemplo anterior, isto e def = (p1 _ p2) ! p3 . As possveis func~oes de atribuic~ao de valores verdade para as variaveis proposicionais p1 p2 e p3 s~ao: 1. 1 (p1) = 1, 1(p2 ) = 1 e 1 (p3 ) = 1 2. 2 (p1) = 1, 2(p2 ) = 1 e 2 (p3 ) = 0 3. 3 (p1) = 1, 3(p2 ) = 0 e 3 (p3 ) = 1 4. 4 (p1) = 1, 4(p2 ) = 0 e 4 (p3 ) = 0 5. 5 (p1) = 0, 5(p2 ) = 1 e 5 (p3 ) = 1 6. 6 (p1) = 0, 6(p2 ) = 1 e 6 (p3 ) = 0 7. 7 (p1) = 0, 7(p2 ) = 0 e 7 (p3 ) = 1 8. 8 (p1) = 0, 8(p2 ) = 0 e 8 (p3 ) = 0 Para cada funca~o de atribuica~o i temos uma func~ao sem^antica que da o valor verdade que toma a ormula para a atribuic~ao i . Esta func~ao sem^antica se comporta da seguinte maneira: Vi ((p1 _ p2 ) ! p3 ) = Vi (p1 _ p2 ) ) Vi (p3 ) = (Vi (p1) + V(p2 )) ) Vi (p3 ) = (i(p1 ) + i(p2 )) ) i (p3) Por tanto, as possveis interpretac~oes de s~ao: 2.2. A LINGUAGEM FORMAL DA LOGICA PROPOSICIONAL 35 1: V1 ((p1 _ p2) ! p3 ) = (1 (p1) + 1 (p2)) ) 1 (p3) = (1 + 1) ) 1 =1)1 =1 2: V2 ((p1 _ p2) ! p3 ) = (2 (p1) + 2 (p2)) ) 2 (p3) = (1 + 1) ) 0 =1)0 =0 3: V3 ((p1 _ p2) ! p3 ) = (3 (p1) + 3 (p2)) ) 3 (p3) = (1 + 0) ) 1 =1)1 =1 4: V4 ((p1 _ p2) ! p3 ) = (4 (p1) + 4 (p2)) ) 4 (p3) = (1 + 0) ) 0 =1)0 =0 5: V5 ((p1 _ p2) ! p3 ) = (5 (p1) + 5 (p2)) ) 5 (p3) = (0 + 1) ) 1 =1)1 =1 6: V6 ((p1 _ p2) ! p3 ) = (6 (p1) + 6 (p2)) ) 6 (p3) = (0 + 1) ) 0 =1)0 =0 7: V7 ((p1 _ p2) ! p3 ) = (7 (p1) + 7 (p2)) ) 7 (p3) = (0 + 0) ) 1 =0)1 =1 8: V8 ((p1 _ p2) ! p3 ) = (8 (p1) + 8 (p2)) ) 8 (p3) = (0 + 0) ) 0 =0)0 =1 E usual nos livros textos de calculo proposicional apresentar os calculos acima atraves da seguinte tabela verdade. 36 ^ CAPITULO 2. LOGICA PROPOSICIONAL: LINGUAGEM E SEMANTICA p1 1 1 1 1 0 0 0 0 p2 1 1 0 0 1 1 0 0 p3 p1 _ p2 p1 _ p2 ! p3 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 Desse modo, embora , +, , ) e , sejam interpretaco~es de :, _, ^, ! e $, respectivamente, e comum usar em ambos os casos os mesmos smbolos para a dimens~ao sintatica e sem^antica. Por isso, de ora em diante usaremos :, _, ^, ! e $ em ambas dimens~oes, e a distinc~ao sera inferida do contexto. Exemplo 2.2.7 A tabela verdade da proposic~ao p1 ! (p2 ^ :(p3 ! p1)) e dada abaixo: p1 p2 p3 p3 ! p1 :(p3 ! p1) p2 ^ :(p3 ! p1) p1 ! (p2 ^ :(p3 ! p1)) 1 1 1 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 1 Tabelas verdades de proposic~oes complexas s~ao muito longas, pois devemos ir escrevendo os resultados parciais de cada subformula ate chegar a formula toda. Uma maneira de fazer isto ocupando menos espaco e ir colocando os resultados parciais abaixo de cada conectivo logico. Para visualizar melhor resultado nal da tabela, usaremos barras duplas para a coluna do conectivo principal da formula. Exemplo 2.2.8 A tabela verdade compactada da proposic~ao p1 ! (p2 ^ :(p3 ! p1 )) e dada abaixo: p1 ! (p2 ^ :(p3 ! p1)) 1 0 1 0 0 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 2.3. LOGICA PROPOSICIONAL 37 Em algumas formulas usaremos meta-variaveis proposicionais (, , etc.) em vez de variaveis proposicionais (p1, p2, etc.). Nestes casos chamaremos estas formulas de metaproposic~oes . A ideia que uma meta proposica~o representa um conjunto de proposic~oes , pois as meta-variaveis proposicionais podem ser substitudas por qualquer proposic~ao . Por exemplo as proposic~oes p1 ^ p2 , (p1 ! p1 ) ^:(p1 _ p3 ) e (p1 ^ p2 ) ^ p3 s~ao inst^ancias da meta-proposic~ao ^ . Tabelas verdades de meta-proposic~oes s~a feitas de modo similar as tabelas verdades das proposic~oes , isto e, como n~ao se sabe qual a possvel inst^ancia de uma meta-variavel proposicional, se considera todas as possveis combinaco~es de valores verdade que possam ter as meta-variaveis. Exemplo 2.2.9 A tabela verdade (compactada) para a meta-proposic~ao ! ( ! : ) e dada a seguir: ! ( ^ : ) 1 1 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 2.3 Logica Proposicional Nesta sec~ao a partir da linguagem proposicional, LP , destacaremos um subconjunto proprio dela o qual chamaremos logica proposicional. Observaremos em seguida que, de fato, a logica proposicional n~ao se reduz a toda a linguagem LP . Deni c~ao 2.3.1 Seja uma proposic~ao de LP . diz-se uma tautologia se qualquer que seja a atribuica~o de valores verdade para as proposic~oes at^omicas que constituem , o valor verdade de e sempre 1. Em outras palavras, se para cada atribuic~ao de valores verdade : fp1 : : : png ;! B , onde p1 : : : pn s~ao as proposic~oes at^omicas que constituem , V () = 1. Assim, tautologias s~ao formulas que tom~ao o valor verdade verdadeiro independente do valor que atribuamos as proposic~oes at^omicas que a comp~oem. Isto e, numa tautologia o importante e a forma e n~ao sua interpretac~ao. Por exemplo, a conhecida frase de Shakespeare em Hamlet, \ser ou n~ao ser", e uma tautologia, pois ela e verdadeira independente ^ CAPITULO 2. LOGICA PROPOSICIONAL: LINGUAGEM E SEMANTICA 38 do que se queira dizer com \ser" (ser homem, ser alto1, ser vtima, etc.), o importante nela e a forma da frase, p1 _ :p1 . Assim, tautologias s~ao formulas que sempre s~ao verdadeiras, independente da interpretac~ao. Exemplo 2.3.2 As seguintes proposic~oes e meta-proposic~oes s~ao tautologias. 1. p1 ! (p2 ! p1) 2. (p1 ! (p2 ! p3 )) ! ((p1 ! p2) ! (p1 ! p3)) 3. (:p2 ! :p1 ) ! ((:p2 ! p1) ! p2 ) 4. (:p2 ! :p1 ) ! (p1 ! p2) 5. ^ ! 6. ^ ! 7. ! :: 8. :: ! 9. ! _ 10. ^ : ! Para vericar que estas formulas proposicionais s~ao realmente tautologias basta fazer sua tabela verdade (compactada). p1 ! (p2 ! p1) 1 1 0 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 Neste tipo de conjuntos, a propriedade que satisfazem seus elementos n~ao e bem de nida, por exemplo para alguem uma pessoa alta poderia ser qualquer pessoa que mede acima de um metro e oitenta centmetros, mas nesta vis~ao uma pessoa que mede um metro e setenta nove centmetros e 9 milmetros n~ao seria considerada alta enquanto que uma que mede um milimetro a mais sim seria. Uma logica que consegue modelar melhor este tipo de proposic~oes e a logica fuzzy Zad65, BB95, Kas96, Ngu99], onde um proposic~ao n~ao e simplesmente verdadeira ou falsa, mas possui um grau de verdade que varia entre falso (0) e verdadeiro (1). 1 2.3. LOGICA PROPOSICIONAL 39 (p1 ! (p2 ! p3 )) ! ((p1 ! p2) ! (p1 ! p3 )) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 (:p2 ! :p1 ) ! ((:p2 ! p1 ) ! p2) 1 1 0 1 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 0 0 0 1 (:p2 ! :p1 ) ! (p1 ! p2) 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 ^ ! 1 0 0 0 1 0 1 0 1 1 1 1 ^ ! 1 0 0 0 1 0 1 0 1 1 1 1 1 1 0 0 1 0 1 0 ! :: 1 1 1 0 1 0 1 0 1 0 :: ! 1 0 1 1 1 0 1 0 1 0 1 0 1 0 40 ^ CAPITULO 2. LOGICA PROPOSICIONAL: LINGUAGEM E SEMANTICA 1 1 0 0 1 1 0 0 !_ 1 1 1 1 1 1 0 0 1 1 1 0 ^ : ! 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 0 1 0 Uma proposic~ao de LP e um contradi c~ao se V() = 0 para toda atribuic~ao de valores verdades para as proposico~es at^omicas de . Um exemplo de contradic~ao e def = p ^ :p. Portanto, e uma tautologia se, e somente se, : e uma contradic~ao e, inversamente, e uma contradica~o se, e somente se, : e uma tautologia. As fbf's que n~ao s~ao nem tautologias nem contradico~es , por exemplo p1 ! p2 , s~ao chamadas de contingentes, pois o seu valor verdade varia de acordo com a interpretaca~o de seus smbolos proposicionais, ou seja, e falsa em alguma interpretac~ao e verdadeira em outra. Observe que a proposica~o p1 ! (p2 ^:(p3 ! p1 )) do exemplo 2.2.8 e uma inst^ancia da meta-proposic~ao ! ( ! : ) do exemplo 2.2.9. Observe tambem que as respectivas tabelas verdades s~ao diferentes. Isto acontece porque a meta-proposica~o e contingente. Se fosse uma tautologia ou contradica~o , ent~ao qualquer inst^ancia dela continuaria sendo uma tautologia ou contradic~ao . De hora em diante, chamaremos meta-proposic~oes de prosic~oes . Proposi c~ao 2.3.3 Seja Taut(LP ) o conjunto de todas as tautologias na linguagem proposi- cional LP . Ent~ao, Taut(LP ) e um subconjunto proprio de LP . Demonstraca~o: Basta exibir uma proposic~ao de LP que n~ao e uma tautologia. Isto e, uma proposic~ao e uma atribuic~ao de valores verdade para as proposico~es at^omicas que constituem tal que V() = 0. Seja, portanto, def = p1 ! p2 e tome (p1) = 1 e (p2) = 0. ent~ao V (p1 ! p2 ) = V (p1 ) ) V (p2 ) = 1 ) 0 = 0: Deni c~ao 2.3.4 Chamaremos logica proposicional sobre a linguagem LP ao conjunto Taut(LP ), de todas as tautologias em LP . Deni c~ao 2.3.5 Como Taut(LP ) 6= LP dizemos que a logica proposicional e consistente. Ou seja, em geral dizemos, que uma logica sobre uma linguagem L e consistente se ela n~ao se reduz a linguagem. 2.3. LOGICA PROPOSICIONAL 41 A primeira vista a nossa denic~ao de logica proposicional como o conjunto de tautologias Taut(LP ) n~ao corresponde a nossa intuic~ao de que \logica e um instrumento para descobrir que uma proposic~ao, a qual chamamos de tese, decorre de um conjunto de proposic~oes, chamadas hipoteses". Em outras palavras, que \logica e usada como um aparato dedutivo". Entretanto, veremos que e possvel construir esse \aparato dedutivo" a partir de Taut(LP ). Seja P (LP ) o conjunto das partes de LP e j= P (LP ) LP uma relaca~o sobre LP que associa a um subconjunto ; LP uma proposic~ao de LP . Usaremos as letras gregas maiusculas, talvez indexadas, para denotar conjuntos de proposico~es. Deni c~ao 2.3.6 Seja 2 LP e ; LP . Dizemos que e uma consequ^encia sem^antica ou consequ^encia logica de ;, denotado por ; j= , se para toda atribuic~ao de valores verdade tal que V( ) = 1 para toda proposic~ao 2 ;, ent~ao V() = 1. Exemplo 2.3.7 Considere a seguinte armac~ao : \Suponha que Socrates esta em tal situac~ao que ele estaria disposto a visitar Plat~ao, so se Plat~ao estivesse dispoto a visita-lo e que Plat~ao esta em tal situac~ao que ele n~ao estaria disposto a visitar Socrates, se Socrates estivesse disposto a vista-lo, mas estaria disposto a visitar Socrates, se Socrates n~ao estivesse disposto a vista-lo". Agora respondamos a seguinte pergunta: \Socrates esta disposto visitar Plat~ao?" Esta pergunta tera como resposta \sim", somente se a armac~ao \Socrates esta disposto visitar Plat~ao" for consequ^encia logica da armac~ao . Mas para v^er isso teremos que descrever a^mbas armac~oes na linguagem proposicional. Para isso, primeiro devemos distinguir quais as proposic~oes at^omicas. Distinguimos duas: p =\Socrates esta disposto a visitar Plat~ao" q =\Plat~ao esta disposto a visitar Socrates" Assim, a postura de Socrates e Plat~ao podem ser re-escritas na linguagem proposicional como: Socrates: q ! p Plat~ao: (p ! :q ) ^ (:p ! q ) Assim, para responder a pergunta devemos determinar se q ! p (p ! :q) ^ (:p ! q) j= p ou n~ao. Vejamos isto usando tabelas verdades: 42 ^ CAPITULO 2. LOGICA PROPOSICIONAL: LINGUAGEM E SEMANTICA p 1 1 0 0 q q ! p p ! :q :p ! q (p ! :q) ^ (:p ! q) 1 1 0 1 0 0 1 1 1 1 1 0 1 1 1 0 1 1 0 0 Assim, colocando lado a lado os valores de cada formula q ! p (p ! :q) ^ (:p ! q) 1 0 1 1 0 1 1 0 p 1 1 0 0 e identicando as situaco~es em que as posturas de Socrates e de Plat~ao s~ao verdadeiras, temos que a unica situaca~o em que isso ocorre e na segunda linha, mas nesse caso o valor de p e 1. Logo, podemos concluir que q ! p (p ! :q) ^ (:p ! q) j= p, e portanto a resposta a pergunta e \Sim". Na denic~ao 2.3.6 se ; = , a primeira parte da denic~ao e satisfeita, isto e, como n~ao existe proposic~ao em ;, ent~ao para todo 2 ;, V ( ) = 1. Portanto, para ser um modelo do conjunto vazio, isto e j= ou simplesmente j= , deve-se satisfazer a seguinte condic~ao: o valor verdade de e sempre 1 independente dos valores verdade das proposic~oes at^omicas que comp~oem . Ou seja, e uma tautologia. Assim, a logica proposicional Taut(LP ) pode, ent~ao, ser re-denida como segue. Taut(LP ) = f 2 LP = j= g: Exemplo 2.3.8 1. f ! g j= De fato, V ( ! ) = 0 se, e somente se, V () = 1 e V ( ) = 0. Portanto, para V ( ! ) = 1 e V () = 1, necessariamente V ( ) = 1. Nota c~ao: Quando o conjunto ; e nito, isto e, ; = f1 : : : ng, usaremos a notac~ao mais usual, 1 : : : n j= em vez de f1 : : : ng j= . 2. ! ! : j= : Um modo simples de mostrar isso e usar a tabela verdade 2.3. LOGICA PROPOSICIONAL 43 : ! ! : : 1 1 0 0 1 0 1 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 Observando a tabela constatamos que sempre que as premissas ! e ! : s~ao verdadeiras (isto e, tem valor 1) a conclus~ao : tambem e verdadeira. Podemos concluir dos exemplos acima que a tabela verdade e um algoritmo para provar que ; j= , no caso de ; ser nito. Em particular tabelas verdade tambem nos permitem decidir se uma proposic~ao e uma tautologia ou n~ao. Isto signica que o conjunto Taut(LP ) e decidvel. Se ; for innito ainda assim a tabela verdade e um algoritmo para decidir se ; j= ou n~ao. Mas para isso usaremos o conhecido teorema da compacidade da logica proposicional cujo enunciado e o seguinte. Teorema 2.3.9 (Compacidade) Se ; j= , ent~ao existe um subconjunto nito ;0 ; tal que ;0 j= . Demonstraca~o: (Veja End72] pagina 60). A seguir enunciaremos um dos teoremas fundamentais da logica classica, conhecido como o teorema da deduc~ao. Teorema 2.3.10 (Dedu c~ao) Sejam e proposic~oes em LP . Ent~ao j= se, e somente se, j= ! Demonstraca~o: Basta observar a tabela verdade abaixo e a denic~ao de consequ^encia logica. 1 1 0 0 ! 1 1 0 0 1 1 0 1 44 ^ CAPITULO 2. LOGICA PROPOSICIONAL: LINGUAGEM E SEMANTICA Pois, se j= ent~ao, necessariamente, o segundo caso (V () = 1 e V( ) = 0) n~ao pode ocorrer. Logo, V ( ! ) sempre sera 1, e portanto ! e uma tautologia. Inversamente, se ! e uma tautologia, ent~ao, necessariamente, o segundo caso e n~ao pode ocorrer. Logo, quando V () = 1, necessariamente, V ( ) = 1 (primeiro caso). Portanto, j= . Corolario 2.3.11 Sejam 1 : : : n proposic~oes. Ent~ao 1 : : : n j= se, e somente se, 1 : : : n;1 j= n ! : Demonstraca~o: Usaremos o mesmo argumento da prova do teorema da deduc~ao : a tabela verdade da implicac~ao . Suponha que 1 : : : n j= . Logo por denica~o de consequ^encia logica, para cada interpretac~ao dos smbolos propocionais que facam com que todos os i, com 1 i n, tomem o valor verdade verdadeiro, tambem tomara o valor verdade verdadeiro. Consideremos, agora, o conjunto de interpretac~oes nas quais todos os i, com 1 i < n, sejam verdadeiro, ent~ao se numa dessas interpretaco~es n toma o valor verdade verdadeiro, tambem tomara o valor verdade verdadeiro, pois por hipotese 1 : : : n j= . Por outro lado se numa dessas interpretac~oes n toma o valor verdade falso, ent~ao ,1 : : : n;1 j= n ! , pois pela tabela verdade da implicac~ao n ! e verdadeiro cada vez que n e falso. A reversa desta prova, sai imediatamente usando o raciocnio inverso. Vinculando o conceito de tautologia com a noc~ao de consequ^encia logica, e possvel justicar a denic~ao de logica proposicional como o conjunto de todas as tautologias, sem perder, no entanto, a noc~ao de aparato dedutivo. Para isso, debemos observar que se ; j= , isto e, se e uma fbf que resulta como consequ^encia de um conjunto de fbf's ; (noc~ao de aparato dedutivo), ent~ao usando o teorema da compacidade podemos obter um subconjunto nito ;0 = f1 : : : ng ;, tal que 1 : : : n j= : Usando, o teorema da deduc~ao repetidamente, podemos concluir que, j= 1 ! (2 ! (: : : (n ! ) : : : ) E portanto 1 ! (2 ! ( (n ! ) ) e uma tautologia. Ou seja, demonstrar que e possvel deduzir uma formula a partir de um conjunto de formulas ;, se reduz a provar que uma certa formula e uma tautologia. Esclarecido a relaca~o entre tautologia e consequ^encia logica poderemos denir quando duas proposic~oes s~ao logicamente equivalentes. 2.3. LOGICA PROPOSICIONAL 45 Deni c~ao 2.3.12 Sejam e proposic~oes. Dizemos que e s~ao logicamente equivalentes ou simplesmente equivalentes, cuja notac~ao e , se j= e j= ou, equivalentemente, pelo teorema da deduc~ao, se j= ! e j= ! ou ainda, se j= $ . Proposi c~ao 2.3.13 A relac~ao de equival^encia logica sobre LP e uma relac~ao de equival^encia sobre LP . Demonstraca~o: 1. para todo 2 LP , isto e, j= ! . Basta observar a tabela verdade. 2. Suponha que . Ent~ao, trivialmente pela denica~o de equival^encia logica, . 3. Suponha que e . Mostraremos que . Por hipotese j= $ e j= $ . Observando a tabela verdade do conectivo logico $, verica-se que j= $ , isto e, . Exemplo 2.3.14 1. ! : _ 2. ! :( ^ : ) 3. $ ( ! ) ^ ( ! ) 4. Se e s~ao tautologias ent~ao . O exemplo acima mostra que os conectivos ! e $ podem ser escritos em termos de :, ^ e _. Neste sentido para estudar a logica proposicional basta considerar :, ^ e _ como conectivos primitivos e obter os dois outros como denica~o. Sejam as seguintes operac~oes :, Z e Y sobre LP : 1. : : LP ;! LP e denida por :() = : 2. Z : LP LP ;! LP e denida por Z( ) = ^ 3. Y : LP LP ;! LP e denida por Y( ) = _ e as constantes: p _ :p e p ^ :p. E facil ver que hLP : Y Z p _ :p p ^ :pi constitui uma algebra booleana, onde as equac~oes s~ao caracterizadas pela \igualdade" . Mais ainda, essa algebra booleana e isomorfa a algebra booleana hB + 0 1i. Isto justica interpretar : como , _ como + e ^ como . 46 ^ CAPITULO 2. LOGICA PROPOSICIONAL: LINGUAGEM E SEMANTICA Observa c~ao: Tendo em vista que ^ :(: _ : ) e _ :(: ^ : ) e possvel usar f: _g ou f: ^g como conectivos basicos, tendo os demais como conectivos derivados. 2.4 Exerccios 1. Mostre que a lista seleccionada de proposic~oes a seguir s~ao tautologias. Pense no smbolo como $. (a) Leis Distributivas: i. _ ( ^ ) ( _ ) ^ ( _ ) ii. ^ ( _ ) ( ^ ) _ ( ^ ) (b) Leis da Negac~ao: i. :(:) ii. :( ! ) ^ : iii. :( $ ) ( ^ : ) _ (: ^ ) (c) Leis de Morgan: i. _ _ ii. ^ ^ iii. _ ( _ ) ( _ ) _ iv. ^ ( ^ ) ( ^ ) ^ v. :( ^ ) (:) _ (: ) vi. :( _ ) (:) ^ (: ) vii. ( _ ) ^ viii. ( ^ ) _ (d) Outras: i. Lei do terceiro excludo: _ : ii. Lei da Contradic~ao: :( ^ :) iii. Lei da Contraposic~ao: ( ! ) ((: ) ! (:)) iv. Lei da Exportac~ao: (( ^ ) ! ) ( ! ( ! )) 2. Mostre que ( ! ) ! e consequ^encia logica de :(: _ ). 3. Mostre que ( ! ) ! n~ao e consequ^encia logica de : _ : . 4. Mostre que nenhuma das duas proposic~oes abaixo e consequ^encia logica da outra. $ ( $ ) 2.4. EXERCICIOS 47 ( ^ ( ^ )) _ ((:) ^ ((: ) ^ (: ))) 5. Mostre que toda tautologia e consequ^encia logica de qualquer formula. 6. Mostre que toda formula e consequ^encia logica de uma contradica~o. 7. Mostre que uma contradic~ao so e consequ^encia logica de uma contradica~o. 8. Quais das seguintes proposic~oes s~ao tautologias? Justique sua resposta. (a) (b) (c) (d) (e) (f) (( ! ) ! ) ! ! ( ! ) ! ( ! ) ( ! ( ! )) ! (( ! ) ! ( ! )) ( ! ) ! ((: ) ! (:)) ! :( ! ) 9. Mostre que (a) (b) (c) (d) Se ; & e ; j= ent~ao & j= . Se ; j= ent~ao ; j= . j= e j= se, e somente se, j= $ . Se ; j= para cada 2 & e & j= ent~ao ; j= . 10. Prove ou refute cada uma das seguintes asserc~oes (a) (b) (c) (d) Se ou ; j= ou ; j= , ent~ao ; j= _ . Se ; j= ( _ ), ent~ao ou ; j= ou ; j= . Se ; j= e ; j= , ent~ao ; j= ^ . Se ; j= ( ^ ), ent~ao ; j= e ; j= . 11. Uma proposica~o diz-se satisfatvel se ela e verdadeira para alguma interpretaca~o. Isto e, existe uma atribuic~ao de valores verdade para as proposic~oes at^omicas de tal que V () = 1. Caso contrario diz-se insastifatvel. Verique se as seguintes proposic~oes s~ao satisfatveis ou insatisfatveis: (a) (b) (c) (d) :(( ! ) ! ) ( ! ( ! )) $ ( ^ ( ^ )) (( _ : ) ^ ( _ ) ^ (: _ )) ! :((( ! ) ! ) ! ) 48 ^ CAPITULO 2. LOGICA PROPOSICIONAL: LINGUAGEM E SEMANTICA (e) ( ! ( ! )) $ (( ^ ) ! ) (f) ( $ ) ! (( ^ ) _ ( _ )) 12. Dar uma interpretac~ao que satisfaca cada um dos seguintes conjuntos de proposic~oes. Em outras palavras, d^e uma atribuica~o de valores verdade que tornem todas as proposic~oes do conjunto verdadeira. (a) ;1 = f ! : ^ : _ g (b) ;2 = f _ ( ! ) ^ : ! :( ! ( ^ ))g (c) ;3 = f ^ ( _ :) ! : :( ^ ) _ (: _ )g 13. Mostre que a proposic~ao ( ^ ) ! n~ao e uma consequ^encia logica do conjunto ; = f ! ! ! g. 14. Mostre que a proposic~ao( _ ) ! e uma consequ^encia logica do conjunto ; = f ! ! ! g. Captulo 3 A Teoria Formal da Logica Proposicional Nos captulos anteriores caracterizamos a logica proposicional como o conjunto das tautologias sobre a linguagem proposicional. Em seguida desenvolvemos um aparato logico introduzindo o conceito de consequ^encia logica. A denica~o de consequ^encia logica pressup~oe o conceito de tautologia, o qual, por sua vez e denida a partir da noca~o de interpretac~ao, um conceito extrnseco a linguagem. A pesar da import^ancia do conceito sem^antico de interpretac~ao, principalmente como base para contraexemplos de argumentos n~ao \corretos", ele n~ao prov^e uma ferramenta muito eciente para achar consequ^encias logicas de premissas ou provar que uma dada proposic~ao e uma consequ^encia (logica) de um conjunto de premissas. Por conseguinte, usualmente, e mais conveniente construir provas (ou derivac~oes) da propria logica proposicional (tambem conhecida por calculo proposicional ou calculo sentencial). A investigaca~o geral de tais provas e o campo de interesse da teoria da prova da logica proposicional, em contrapartida a sua teoria sem^antica, atraves da func~ao de interpretac~ao. A teoria da prova de uma linguagem formal comeca com a caracterizac~ao da forma geral de uma prova e as regras (e as vezes axiomas) para construir provas (tambem chamadas derivac~oes). 3.1 Teorias Formais Tabelas verdade nos fornecem algoritmos para responder quest~oes relativa aos conectivos vistos como func~oes booleanas, tais como se uma dada proposic~ao e uma tautologia, contradic~ao ou contingente (proposic~ao cujo valor verdade depende dos valores verdade das proposic~oes at^omicas que a constitui), se uma proposica~o e uma consequ^encia logica de uma outra ou se e equivalente a uma outra. A parte mais complexa da logica que veremos a seguir n~ao pode ser manuseada com tabelas verdade, a abordagem sera atraves de uma teoria formal, ou metodo formal. Embora as tabelas verdade d^e conta inteiramente da teoria matematica da logica proposicional, este metodo n~ao se aplica a outras logicas, como por exemplo, a logica de predicados vista mais adiante. Por conseguinte o metodo 49 50 CAPITULO 3. A TEORIA FORMAL DA LOGICA PROPOSICIONAL formal e, de fato, aquele possvel para estudar teorias formais. Na teoria formal da logica proposicional ja e possvel perceber a utilidade e abrang^encia desse metodo. No entanto, para a logica proposicional a teoria e bastante simples. Uma Teoria formal T e denida quando: 1. E especicada uma linguagem formal L = h Gi para T , denominada a linguagem de T. 2. Da linguagem Ling(L) (a linguagem especicada por L) e destacada um conjunto ' de elementos, chamados axiomas de T . 3. E especicado um conjunto < de regras, chamadas regras de infer^encia, da forma x1 : : : xn x tal que x e obtida de x1 : : : xn. Por isso dizemos que x e uma consequ^encia direta de x1 : : : xn. Observe que um axioma, tambem pode ser entendido como uma regra de infer^encia sem antecedente. Por exemplo se x e um axioma, ent~ao ele representa a regra de infer^encia ;x . Portanto poderiamos perfeitamente excluir da noca~o de teoria formal esta componente. No entanto, como axiomas tem um papel fundamental na teoria de provas em logica, optamos por destacar-os. Deni c~ao 3.1.1 Uma prova de 2 Ling(L) em T = hL ' <i, e uma sequ^encia 1 : : : n de elementos de Ling(L) tal que n = e para cada 1 i n, i ou e um axioma de T , isto e, i 2 ', ou e obtida como consequ^encia direta de alguns elementos anteriores na sequ^encia usando uma das regras de infer^encia. Deni c~ao 3.1.2 Um teorema de uma teoria formal T = hL ' <i e um elemento 2 Ling(L) tal que existe uma prova de em T. O conjunto de teoremas de uma teoria formal T, denotado por T (T ), e denominado logica apresentada pela teoria formal T . Denominamos este tipo de apresentac~ao de uma logica de apresentac~ao axiomatica . No captulo 9 veremos outras maneiras de apresentar uma logica. Duas teorias formais s~ao ditas equivalente se a linguagem e a logica apresentada por ambas s~ao a mesma. Deni c~ao 3.1.3 Sejam as teorias formais T1 = hL1 '1 <1i e T2 = hL2 '2 <2i. T1 e equivalente a T2 , denotado por T1 = T1, se, e somente se, Ling(L1) = Ling(L2) e T (T1 ) = T (T2 ). 3.1. TEORIAS FORMAIS 51 Uma maneira de demonstrar que duas teorias s~ao equivalentes e mostrar que L1 e L2 ger~ao a mesma linguagem, que cada axioma de '1 e cada regra de infer^encia de <1 podem ser provados em L2 e, analogamente, que cada axioma de '2 e cada regra de infer^encia de <2 podem ser provados em L1. Deni c~ao 3.1.4 Um elemento 2 Ling(L) diz-se uma consequ^encia na teoria formal T = hL ' <i, de um conjunto ; de elementos de Ling(L), denotado por ; ` , se existe uma sequ^encia 1 : : : n tal que n = e cada i , 1 i < n, ou e um axioma de T , ou i 2 ;, ou e uma consequ^encia direta de j anteriores, usando uma das regras de infer^encia. Neste caso a sequ^encia 1 : : : n e dita uma prova de a partir das premissas ;. Observa c~oes: 1. Se ; ` dizemos, tambem, que existe, na teoria T , uma prova de a partir do conjunto de premissas, ou hipoteses, ;. e tambem chamado de tese ou conclus~ao. 2. Se 1 : : : n e uma prova de a partir das premissas em ;, ent~ao, neste texto, diremos simplesmente que 1 : : : n e uma prova de ; ` . 3. Se ; e nito, isto e, ; = f1 2 : : : ng escrevemos 1 : : : n ` , em vez de f1 : : : ng ` . 4. Segundo esta denic~ao, um teorema, , de T e uma consequ^encia logica de um conjunto vazio de premissas. Por isso um teorema em T sera denotado por ` , ou simplesmente, ` . 5. Observe que a rigor a notac~ao deveria ser ; T̀ , para destacar a teoria formal a qual estamos nos referindo. Como n~ao vamos fazer um estudo de teorias formais, mas, apenas, desenvolver algumas dessas teorias, n~ao explicitaremos o T na notaca~o, pois ^ele estara, sempre, claro do contexto. 6. Da denic~ao de consequ^encia sai diretamente as seguintes propriedades: Sejam ; & subconjuntos de Ling(L). (a) Monotonicidade: Se ; & e ; ` , ent~ao & ` . (b) Compacidade: ; ` se, e somente se, existe um subconjunto nito ;0 de ; tal que ;0 ` . (c) Lei do corte: Se & ` e para cada 2 &, ; ` , ent~ao ; ` . CAPITULO 3. A TEORIA FORMAL DA LOGICA PROPOSICIONAL 52 3.2 Teoria Formal da Logica Proposicional Estamos em condic~oes, agora, de especicar uma teoria formal para a logica proposicional. Seguindo a metodologia acima, de especicaca~o de uma teoria formal, denimos a teoria formal para a logica proposicional como TP = hLP! '! <!i, onde: 1. LP! : A linguagem proposicional, e a linguagem formal obtida de LP , especicada anteriormente (sec~ao 2.2.), usando como conectivos logicos somente ! e :. Isto e, LP ! = Ling(LP! ), onde LP! = h! G!i, para ! = V f! :g e G! = fg1 g2 g5 g. 2. '!: Destacaremos o seguinte conjunto de axiomas, ou regras de infer^encia sem antecedentes. A1 ) ! ( ! ) A2) ( ! ( ! )) ! (( ! ) ! ( ! )) A3) (: ! :) ! ((: ! ) ! ) 3. <!: A unica regra de infer^encia e o modus ponem, denotado por MP, qual seja, MP : ! Observa c~oes: 1. Cada , e usada na especicaca~o da teoria formal da logica proposicional e uma variavel proposicional, isto e, ela pode ser substituida por qualquer proposica~o em LP ! = Ling(LP! ). Assim, cada \axioma" acima descreve um conjunto innito de axiomas, por isso e comum na literatura de chamarlos de esquemas de axiomas. Por exemplo, as formulas p1 ! (p2 ! p1) e (p1 ! p2) ! (p3 ! (p1 ! p2 )) s~ao inst^ancias do esquema de axioma A1 . No restante deste texto usaremos o nome de axiomas tanto para esquemas de axiomas como para inst^ancias de esquemas de axiomas. 2. A rigor e possvel especicar a linguagem da logica proposicional usando apenas os conectivos : e !, e denindo os demais como segue: ^ def = :( ! : ) def _ = : ! $ def = ( ! ) ^ ( ! ) Assim, o fato de usar a linguagem formal LP! em vez de LP n~ao prejudica a generalidade da teoria formal da logica proposicional aqui proposta. ~ 3.3. TEOREMA DA DEDUCAO 53 Proposi c~ao 3.2.1 Para toda formula 2 LP !, ` ! . Ou seja, ! e um teorema da teoria formal da logica proposicional TP . Demonstraca~o: Para demonstrar esta proposic~ao, deveremos exibir uma prova na teoria formal TP da logica proposicional. A sequ^encia 1 : : : n, onde 1. 1 e a inst^ancia de A2 ( ! (( ! ) ! )) ! (( ! ( ! )) ! ( ! )). Para v^er isto, basta substituir por ! e por em A2 . 2. 2 e a inst^ancia de A1 ! (( ! ) ! ). Para v^er isto basta substituir por ! em A1. 3. 3 e (( ! ( ! )) ! ( ! ), a qual resulta da aplicaca~o da regra de infer^encia modus ponens (MP) a 1 e 2. 4. 4 e a inst^ancia de A1 ! ( ! ), a qual resulta de substituir por em A1 . 5. 5 e ! , a qual resulta da aplicac~ao da regra de infer^encia modus ponens (MP) a 3 e 4 . e uma prova de ! . 3.3 Teorema da Deduc~ao Apesar de ser simples e intuitivo que a proposic~ao ! e um teorema de TP , a sua demonstrac~ao, isto e, a exibic~ao de uma prova em TP , n~ao foi t~ao simples assim. E de se prever que na medida em que as proposico~es em LP ! se tornem mais complexas, demonstrar que elas s~ao teoremas de TP que cada vez mais difcil. Por isso, a seguir demonstraremos um teorema na nossa metateoria (a matematica usada para desenvolver a teoria formal TP ) que facilitara a exibica~o de provas na teoria TP . Queremos alertar o leitor que estaremos usando o nome teorema tanto para um resultado da teoria objeto, no caso a teoria formal TP , como para um resultado da matematica (metateoria) que estamos usando para fundamentar essa teoria formal. Esperamos que o leitor n~ao confunda uma linguagem com uma metalinguagem. Proposi c~ao 3.3.1 (Teorema da Dedu c~ao) Sejam 2 LP ! e ; LP !. Se ; ` , ent~ao ; ` ! . Em particular, para ; = , se ` , ent~ao ` ! . Demonstraca~o: Suponha que ; ` . Isto e, suponha que existe uma prova 1 : : : n de a partir do conjunto de premissas ; fg. Ent~ao = n. Usaremos induca~o sobre i para mostrar que se f^or o caso de ; ` i , ent~ao ; ` ! i , para todo i, 1 i n. Caso base: i = 1. Ent~ao 1 deve ser ou um axioma ou uma premissa. 54 CAPITULO 3. A TEORIA FORMAL DA LOGICA PROPOSICIONAL Se 1 e um axioma: 1. 1 . Por denic~ao 2. 1 ! ( ! 1). Uma inst^ancia de A1, substituindo por 1 e por . 3. ! 1 . De 1) e 2) por MP. Logo, 1, 1 ! ( ! 1), ! 1 e uma prova de ! 1 a partir de ;, isto e, ; ` ! 1. Se 1 e uma premissa: a) Se 1 2 ;: 1. 1. Por denic~ao de prova 2. 1 ! ( ! 1). Uma inst^ancia de A1 3. ! 1. De 1) e 2) por MP. Logo, 1, 1 ! ( ! 1), ! 1 e uma prova de ! 1 a partir de ;, isto e, ; ` ! 1 . b) Se 1 e : 1. ! 1. Pela proposica~o 3.2.1. Logo, ! 1 e uma prova de ! 1 a partir de ;, isto e, ; ` ! 1. Etapa indutiva: Suponha que o teorema e verdadeiro para i < k. Ent~ao, por denic~ao de prova. k e um axioma, ou k e uma premissa a) k 2 ;, ou b) k e , ou k segue por MP de i e j , onde i j < k, e j e i ! k . Os dois primeiros casos s~ao tratados exatamente como no caso base acima. Consideremos o terceiro caso. 1. ! (i ! k ). Hipotese da induca~o 2. ! i. Hipotese da induc~ao 3. ( ! (i ! k )) ! (( ! i) ! ( ! k )) inst^ancia de A2 . ~ 3.3. TEOREMA DA DEDUCAO 55 4. ( ! i ) ! ( ! k ). De 1) e 3) por MP. 5. ! k . De 2) e 4) por MP. Logo, ! (i ! k ), ! i, ( ! (i ! k )) ! (( ! i) ! ( ! k )), ( ! i) ! ( ! k ), ! k e uma prova de ! k a partir de ;, isto e ; ` ! k . Portanto, segue o teorema. Para mostrar o poder de simplicaca~o do teorema da deduca~o mostraremos, usando esse teorema, a proposica~o 3.2.1, ou seja mostraremos que: Lema 3.3.2 ` ! , para cada 2 LP !. Demonstraca~o: 1. . Hipoteses Logo, e uma prova de , isto e, ` . O teorema da deduca~o nos garante que existe uma prova de ` ! . Proposi c~ao 3.3.3 i) ! ! ` ! ii) ! ( ! ) ` ! Demonstraca~o: i) ii) 1) ! hipotese 2) ! hipotese 3) hipotese 4) 1) e 3) por MP. 5) 2) e 4) por MP. Mostramos, ent~ao que ! ! ` . Usando o teorema da deduc~ao, temos ! ! ` ! , como queramos demonstrar. 1) ! ( ! ) hipotese 2) hipotese 3) hipotese 4) ! 1) e 3) por MP. 5) 2) e 4) por MP. Assim, mostramos que ! ( ! ) ` . Logo, aplicando o teorema da deduc~ao temos ! ( ! ) ` ! . 56 CAPITULO 3. A TEORIA FORMAL DA LOGICA PROPOSICIONAL Proposi c~ao 3.3.4 Para todo 2 LP ! os seguintes s~ao teoremas de TP . a) b) c) d) :: ! ! :: : ! ( ! ) (: ! :) ! ( ! ) Demonstraca~o: e) ( ! : ) ! ( ! :) f ) ! (: ! :( ! )) g) ( ! ) ! ((: ! ) ! ) h) ( ! ) ! (: ! :) a) ` :: ! 1) (: ! ::) ! ((: ! :) ! ) inst^ancia de A3 2) : ! : proposic~ao 3.2.1 3) (: ! ::) ! proposic~ao 3.3.3.ii 1,2 4) :: ! (: ! ::) inst^ancia de A1 5) :: ! proposic~ao 3.3.3.i 3,4 b) ` ! :: 1) (::: ! :) ! ((::: ! ) ! ::) inst^ancia de A3 2) ::: ! : item a) 3) (::: ! ) ! :: MP 1,2 4) ! (::: ! ) inst^ancia de A1 5) ! :: proposica~o 3.3.3.i 3,4 c) ` : ! ( ! ) 1) : hipotese 2) hipotese 3) ! (: ! ) inst^ancia de A1 4) : ! (: ! :) inst^ancia A1 5) : ! MP 2,3 6) : ! : MP 1,4 7) (: ! :) ! ((: ! ) ! ) inst^ancia de A3 8) (: ! ) ! MP 6,7 9) MP 5,8 Assim, : ` . Portanto, aplicando o teorema da deduc~ao duas vezes obtemos ` : ! ( ! ). d) ` (: ! :) ! ( ! ) 1) : ! : hipotese 2) (: ! :) ! ((: ! ) ! ) inst^ancia A3 3) ! (: ! ) inst^ancia de A1 4) (: ! ) ! MP 1,2 5) ! Proposica~o 3.3.3.i 3,4 Assim, : ! : ` ! . Portanto, aplicando o teorema da deduca~o obtemos ` (: ! :) ! ( ! ) ~ 3.3. TEOREMA DA DEDUCAO 57 e) ` ( ! ) ! (: ! :) 1) ! hipotese 2) :: ! item a) 3) :: ! 3.3.3.i 1,2 4) ! :: item b) 5) :: ! :: 3.3.3.i 3,4 6) (:: ! :: ) ! (: ! :) item d) 7) : ! : MP 5,6 Assim, ( ! ) ` : ! : e pelo teorema da deduc~ao segue e). f) ` ( ! : ) ! ( ! :) 1) ! : hipotese 2) :: ! item a) 3) :: ! : 3.3.3.i 1,2 4) (:: ! : ) ! ( ! :) item d) 5) ! : MP 3,4 Assim, ( ! : ) ` ! : e pelo teorema da deduc~ao segue f). g) ` ( ! ) ! ((: ! ) ! ) 1) ! hipotese 2) : ! hipotese 3) ( ! ) ! (: ! :) item e) 4) : ! : MP 1,3 5) (: ! ) ! (: ! ::) item e) 6) : ! :: MP 2,5 7) (: ! ::) ! ((: ! :) ! ) inst^ancia A3 8) (: ! :) ! MP 6,7 9) MP 4,8 Assim, ! : ! ` . Duas aplicaco~es do teorema da deduc~ao levam a g). h) ` ! (: ! :( ! )) Claramente, por MP, ! ` . Assim, usando duas vezes o teorema da deduc~ao, temos ` ! (( ! ) ! ). Pelo item e), temos ` (( ! ) ! ) ! (: ! :( ! )). Portanto, usando a proposic~ao 3.3.3.i, obtemos ` ! (: ! :( ! )) Pode-se dizer que a logica classica e a ci^encia do argumento. Exemplo 3.3.5 Os sostas, na Grecia antigua, eram uma especie de professores, que ensinavam a arte de argumentar a favor ou em contra qualquer armac~ao , mesmo n~ao 58 CAPITULO 3. A TEORIA FORMAL DA LOGICA PROPOSICIONAL sendo necessariamente correta, da que hoje em dia se usa o termo \sosmo" de uma forma pejorativa. Essa arte que os sostas ensinavam era de suma import^ancia na epoca, pois se alguem fosse acusado de algum delito, ele mesmo deveria apresentar sua defessa perante um tribunal, mesmo que outra pessoa zesse essa defessa. Considerando que os juizes eram pessoas leigas escolhidos aleatoriamente, eram facilmente inuenciaveis por argumentos bem construdos, a arte do sosmo era vital. O mais famoso dos sostas era Protagoras, quem nasceu em Abdera ao redor do ano 420 AC e morreu aproximadamente no ano 480 AC. Um dos discipulos mais brilhante de Protagoras nesta arte foi Euathlus. Conta a historia que Protagoras fez o seguinte trato com Euathlus: ele lhe ensinaria a arte do sosmo por uma certa quantia, metada da qual seria paga no inicio e a outra metade quando Euathlus ganhasse seu primeiro caso. No entanto, Euathlus demorou a pagar a segunda metade a Protagoras, motivo pelo qual Protagoras processou seu discipulo. Protagoras fez perante o tribunal o seguinte argumento: \Se Euathlus ganhasse o caso, ganharia ent~ao seu primeiro caso, logo deveria paga-lo. Mas, se Euathlus perdesse o caso, tambem deveria paga-lo, pois era esse o motivo do processo" Vejamos se o argumento de Protagoras esta correto. Primeiro vejamos quais as armac~oes (proposico~es ) at^omicas: p = \Euathlus ganha o caso" q = \Euathlus ganha seu primeiro caso" r = \Euathlus deve pagar a Protagoras" E o argumento de Protagoras propriamente foi o seguinte p!q q!r :p ! r r que pode ser entendido como: se p ! q e q ! r e :p ! r ent~ao r. Assim, se o argumento de Protagoras esta correto ent~ao e possvel provar que p ! q q ! r :p ! r ` r Uma tal prova e a seguinte: ~ 3.3. TEOREMA DA DEDUCAO 59 1) p ! q hipoteses 2) q ! r hipoteses 3) :p ! r hipoteses 4) p ! r proposic~ao 3.3.3.i 1,2 5) (p ! r) ! ((:p ! r) ! r) proposic~ao 3.3.4.g) 6) (:p ! r) ! r MP 4,5 7) r MP 3,6 Portanto o argumento de Protagoras esta correto, mesmo correto Euathlus consiguiou tambem dar um argumento correto. Euathlus deu o seguinte argumento: \Se ele ganhesse o caso, n~ao deveria pagar, pois Protagoras perderia a causa. Mas se ele perdesse o caso, ent~ao ainda n~ao teria ganho o seu primeiro caso e, portanto, n~ao deveria pagar a Protagoras". Numa linguagem logica usando as proposic~oes at^omicas acima, seria : p ! :r :p ! :q :q ! :r :r Se o argumento de Euathlus esta correto ent~ao e possvel provar que p ! :r :p ! :q :p ! :r ` :r Uma prova disto e a seguinte: 1) p ! :r hipoteses 2) :p ! :q hipoteses 3) :q ! :r hipoteses 4) :p ! :r proposic~ao 3.3.3.i 2,3 5) (p ! :r) ! ((:p ! :r) ! :r) proposic~ao 3.3.4.g) 6) (:p ! :r) ! :r MP 1,5 7) r MP 4,6 Assim, o argumento de Euathlus tambem esta correto. Logo, a logica proposicional e inconclussiva e a pergunta sobre quem deveria ter ganho o caso permanece t~ao em suspenso quanto naquela epoca. Uma possvel maneira de sair deste impasse seria que Protagora se deixasse ganhar para depois entrar novamente contra Euathlus, esta vez argumentando que Euathlus ja tinha ganho um caso. 60 CAPITULO 3. A TEORIA FORMAL DA LOGICA PROPOSICIONAL 3.4 Outras Teorias Formais para a Logica Proposicional A teoria formal proposicional TP , vista anteriormente, e so uma entre muitas possveis teorias formais para a logica proposicional. A seguir destacaremos outras teorias formais para LP . 3.4.1 Teoria Formal 1 Nesta teoria formal, denotada por TPT , a linguagem proposicional e a mesma (baseada nos conectivos : e !), os axiomas os mesmos (A1 , A2 e A3) e a regra de infer^encia e o modus tollens denotado por MT, qual seja, ! : : A justicativa desta regra e o seguinte raciocnio: Se conhecemos que quando e verdadeiro tambem e verdeiro e se savemos, tambem que e falso, ent~ao n~ao pode ser verdadeiro, e portanto podemos concluir que e falso. Observe que a regra modus tollens pode ser obtida a partir do proprio modus ponens e do teorema ( ! ) ! (: ! :) (proposic~ao 3.3.4.e). MT : 3.4.2 Teoria Formal 2 Meridith em 1953 Mer53], usou uma teoria formal alternativa para a teoria formal estudada aqui. Esta teoria formal tem a mesma linguagem formal (baseada somente nos conectivos primitivos : e !) e a mesma regra de infer^encia (modus ponem), mas somente um unico esquema de axiomas: AU ) ( ! ! (: ! :)) ! ! ! ( ! ! ( ! )) 3.4.3 Teoria Formal 3 No livro HA50], Hilbert e Ackermann desenvolveram a teoria formal TP _ a qual usa como conectivos primitivos os conectivos logicos _ e :. Assim, a linguagem formal, esquemas de axiomas e regras de infer^encias da teoria formal TP _ s~ao: 1. Linguagem Proposicional: Ling(h_ G_i) LP onde _ = V f_ :g P e G_ = fg1 g2 g4 g. 3.4. OUTRAS TEORIAS FORMAIS PARA A LOGICA PROPOSICIONAL 61 2. Axiomas: A_1 ) :( _ ) _ A_2 ) : _ ( _ ) A_3 ) :( _ ) _ ( _ ) A_4 ) :(: _ ) _ (:( _ ) _ ( _ )) 3. Regras de Infer^encia: A unica regra de infer^encia e um tipo de Modus Ponem, denotado por MP_, qual seja, MP_ : : _ Observe que usando a ! como uma abreviac~ao de : _ os esquemas de axiomas podem ser re-escritos como _ ! , ! _ , _ ! _ , ( ! ) ! ( _ ! _ ), respectivamente, e a regra de infer^encia MP_ seria o proprio modus ponem. 3.4.4 Teoria Formal 4 No livro Ros53], Rosser introduz uma teoria formal, TP ^, para a logica proposicional tendo como conectivos primitivos os conectivos logicos ^ e :. A linguagem formal, o conjunto de esquemas de axiomas e o conjunto de regras de infer^encia da teoria formal TP ^ e a seguinte : 1. Linguagem Proposicional: Ling(h^ G^i) LP onde ^ = V f^ :g P e G^ = fg1 g2 g3 g. 2. Axiomas: A^1 ) :( ^ :( ^ )) A^2 ) :(( ^ ) ^ :) A^3 ) :(:( ^ : ) ^ :(:(:( ^ ) ^ ::( ^ )))) 3. Regras de Infer^encia: A unica regra de infer^encia e um tipo de Modus Ponem, denotado por MP^, qual seja, MP^ : :( ^ : ) Observe que usando a ! como uma abreviaca~o de :( ^ : ) os esquemas de axiomas podem ser re-escritos como ! ^ , ^ ! , ( ! ) ! (:( ^ ) ! :( ^ )), respectivamente, e a regra de infer^encia MP^ seria o proprio modus ponem. CAPITULO 3. A TEORIA FORMAL DA LOGICA PROPOSICIONAL 62 3.4.5 Teoria Formal 5 Em Kle52], Kleene, baseado nas teorias formais T , TP _ e TP ^, discute uma teoria formal, TcP , para a logica de predicados que considera todos os conectivos como primitivos. A linguagem formal, os esquemas de axiomas e o conjunto de regras de infer^encias da teoria formal TcP s~ao: 1. Linguagem Proposicional: LP 2. Axiomas: Ab1) ! ( ! ) Ab2) ( ! ( ! )) ! (( ! ) ! ( ! )) Ab3) (: ! :) ! ((: ! ) ! ) Ab4) ^ ! Ab5) ! ( ! ( ^ )) Ab6) ! ( _ ) Ab7) ! ( _ ) Ab8) ( ! ) ! (( ! ) ! ( _ ! )) Ab9) ( ! ) ! (( ! : ) ! :) Ab10) :: ! Ab11) ( $ ) ! (( ! ) ^ ( ! )) Ab12) (( ! ) ^ ( ! )) ! ( $ ) 3. Regras de Infer^encia: Modus ponem 3.5 Exerccios 1. Provar os seguintes resultados na teoria formal TP . (a) (b) (c) (d) (e) ` ! (: ! ) ` ( ! ) ! ((: ! ) ! ) ` :( ! : ) (isto e, ` ^ ) :( ! : ) ` (isto e, ^ ` ) :( ! : ) ` (isto e, ^ ` ) 2. Mostre que: 3.5. EXERCICIOS 63 (a) Se ` , ent~ao :( ! : ) ` (isto e, ^ ` ) (b) ` ::( ! : ) ! : (isto e, ` :( ^ ) ! : ) (c) Se ` ! e ` ! , ent~ao ` ! :( ! : ) (isto e, ` ! ( ^ )) (d) Se ; ` ent~ao ; ` : ! (isto e, ; ` :: _ ) (e) ; ` e & ` ! ent~ao ; & ` . (f) Se ; ` ! e ; ` : ! ent~ao ; ` ou ; ` (g) Se ; ` ou ; ` ent~ao ; ` : ! 3. Enuncie e demonstre os respectivos teoremas da deduc~ao para as teorias formais alternativas TPT , TP _ e TP ^. 4. Prove os seguintes resultados na teoria formal TP _: (a) ! `TP _ _ ! _ (b) `TP _ ( ! ) ! (( ! ) ! ( ! )) (c) ! ! `TP _ ! (d) `TP _ ! ou equivalentemente `TP _ : _ (e) `TP _ _ : (f) `TP _ ! :: (g) `TP _ : ! ( ! ) (h) `TP _ _ ( _ ) ! ( _ ( _ )) _ (i) `TP _ ( _ ( _ )) _ ! _ ( _ ) (j) `TP _ _ ( _ ) ! _ ( _ ) Observa c~ao: Considere ! como uma abreviaca~o da formula : _ . As- sim, pode usar os axiomas da teoria TP _ na sua vers~ao original ou na sua vers~ao modicada por esta abreviac~ao. 5. Prove os seguintes resultados na teoria formal TP ^: (a) ! ! `TP ^ ! (b) `TP ^ :(: ^ ) (c) `TP ^ :: ! (d) `TP ^ :( ^ ) ! ( ! :) (e) `TP ^ ! :: (f) `TP ^ ! ! (: ! :) (g) : ! : `TP ^ ! (h) ! `TP ^ ^ ! ^ (i) `TP ^ ^ ! ^ CAPITULO 3. A TEORIA FORMAL DA LOGICA PROPOSICIONAL 64 Observa c~ao: Considere ! como uma abreviac~ao da formula :( ^ : ). Assim, pode usar os axiomas da teoria TP ^ na sua vers~ao original ou na sua vers~ao modicada por esta abreviac~ao. 6. Prove os seguintes resultados na teoria formal TPT : (a) (b) (c) (d) (e) (f) (g) (h) (i) (j) `TPT ! ! ! `TPT ! ! ( ! ) `TPT ! `TPT :: ! `TPT ! :: `TPT : ! ( ! ) `TPT (: ! :) ! ( ! ) `TPT ( ! ) ! (: ! :) `TPT ! (: ! :( ! )) `TPT ( ! ) ! ((: ! ) ! ) 7. Demonstre que a teoria formal TP e equivalente as cinco teorias alternativas dadas na sec~ao 3.4. Assuma que o teorema da deduc~ao vale para todas elas. 8. Demonstre que o axioma A3 da teoria formal TP pode ser substitudo pelo axioma: A03) (: ! : ) ! ( ! ) sem alterar a classe de teoremas. Observe que o teorema da deduc~ao nesta nova teoria formal, teria de ser provado para poder ser utilizado na demonstrac~ao. 9. Considere a teoria formal TP ! alternativa para a logica proposicional consistindo da linguagem LP !, da regra de infer^encia modus ponem e dos seguintes axiomas: (a) (: ! ) ! (b) ! (: ! ) (c) ( ! ) ! (( ! ) ! ( ! )) Demonstre que TP e TP ! s~ao teorias equivalentes, no sentido que descrevem o mesmo conjunto de teoremas. Observe que o teorema da deduca~o n~ao esta disponvel em TP ! ate que seja demonstrado. Captulo 4 Computac~ao na Logica Proposicional Tendo visto os conceitos de verdade e dedutibilidade (provabilidade), precisamos saber como computar na logica proposicional. E claro que as tabelas de verdade poderiam ser usadas como um algoritmo para provar se uma determinada sentenca da logica proposicional e verdadeira ou n~ao. No entanto, tabelas de verdade s~ao computacionalmente intrataveis, isto e, para sentencas compostas de n smbolos proposicionais, elas requerem 2n vericac~oes. Assim, o algoritmo tabelas de verdade tem uma complexidade computacional n~ao polinomial, o qual e muito dispendioso para n relativamente grande. Alem disso, tabelas de verdade e um metodo pouco geral em logica, isto e, na maioria das logicas computacionalmente interessantes tabelas de verdade n~ao s~ao aplicaveis. Na seguinte sec~ao desenvolveremos um metodo computacional, o metodo de eliminac~ao de literais complementares, o qual nos permitira decidir se uma determinada sentenca e ou n~ao um teorema, de uma maneira mais eciente que tabelas de verdade. Usaremos o conceito de computac~ao, desenvolvidosaqui, para relacionar as noc~oes de verdade e provabilidade. 4.1 Metodo de Eliminac~ao de Literais Complementares Para desenvolver computac~ao na logica proposicional nos basearemos no metodo da Elimina c~ao Literal Complementar, ELC para simplicar, tambem conhecido como resolu c~ao basica. Para desenvolver essas noco~es introduziremos dois novos smbolos, e 2 (lido como \a clusula vazia" ou \caixa"). A intens~ao ao usarmos ^esses smbolos e representar armac~oes que s~ao sempre verdadeiras (tautologias) ou falsas (contradic~oes), respectivamente. Portanto, para relacionar nossos smbolos com verdade e dedutibilidade, como visto anteriormente, podemos considerar e 2 como abreviac~ao de _: e ^:, respectivamente. Deni c~ao 4.1.1 Uma proposic~ao 2 LP , esta na forma normal conjuntiva, fnc, para simplicar, se as seguintes condic~oes s~ao satisfeitas: 65 66 ~ NA LOGICA CAPITULO 4. COMPUTACAO PROPOSICIONAL 1. n~ao possui qualquer ocorr^encia dos conectivos ! e $. 2. Nenhuma subformula de cujo conectivo principal seja : contem uma outra ocorr^encia de :, ou uma ocorr^encia de _, ^, ou 2. Por exemplo, :(: ), :( _ ), :( ^ ), : e :2 n~ao est~ao na fnc. 3. Nehuma subformula de cujo principal conectivo seja _ contem ^, ou 2. Ou seja, nem ^, ou 2 ocorrem dentro do escopo de qualquer _. 4. Nem nem 2 ocorre dentro do escopo de qualquer ^. A seguir daremos um exemplo de uma tpica formula na fnc. (p1 _ :p2 _ :p1 ) ^ (:p3 _ :p2 ) ^ (p3 _ :p1 _ p3 _ p2) Intuitivamente, podemos dizer que uma formula esta na fnc se ela e uma conjunc~ao de subformulas tais que cada uma das subformulas e uma disjunc~ao de literais, onde um literal e uma proposic~ao at^omica ou a negaca~o de uma proposica~o at^omica, isto e tem a forma pi ou :pi . Deni c~ao 4.1.2 Uma formula 2 LP esta na forma normal conjuntiva reduzida, fncr, para simplicar, se alem de esta na fnc, satisfaz, ainda, a condic~ao abaixo 5. Nenhum literal aparece mais de uma vez no escopo de qualquer _. Exemplo 4.1.3 Uma fncr equivalente a fnc anterior e (:p3 _ :p2 ) ^ (p3 _ :p1 _ p2 ). Proposi c~ao 4.1.4 Qualquer proposic~ao, 2 LP , pode ser reduzida a uma formula equivalente 2 LP que esta na fncr. se reduz a . De fato, estamos usando !! se, e somente se, . A ideia que esta por traz a noc~ao de reduc~ao e transformar formulas em formulas equivalentes, mas que estejam mais \proximas" da sua fncr. A seguir exibiremos um algoritmo para reduzir uma proposica~o na sua fncr equivalente. Se 1 e uma subformula de e 1 !! 2, por alguma das seguintes reduc~oes, ent~ao substitua em as ocorr^encias de 1 por 2. O algoritmo parara quando n~ao se puder aplicar mais nenhuma das reduco~es, descritas abaixo, a qualquer subformula de . Demonstraca~o: Usaremos a notaca~o !! , para dizer que 1. Elimine na formula os conectivos ! e $. (a) ! !! : _ ~ DE LITERAIS COMPLEMENTARES 4.1. METODO DE ELIMINACAO 67 (b) $ !! (: _ ) ^ (: _ ) 2. Reduc~oes para obter uma formula satisfazendo o criterio 1. da denic~ao de fncr, isto e, negac~oes tendo como escopo somente proposic~oes at^omicas. (a) (b) (c) (d) (e) :: !! :( _ ) !! : ^ : :( ^ ) !! : _ : : !! 2 :2 !! 3. As seguintes regras eliminam ocorr^encias de ^, ou 2 no escopo de qualquer _. (a) (b) (c) (d) (e) (f) _ ( ^ ) !! ( _ ) ^ ( _ ) ( ^ ) _ !! ( _ ) ^ ( _ ) _ !! _ !! _ 2 !! 2 _ !! 4. Garante nenhuma ocorr^encia de ou 2 no escopo de qualquer ^ por: (a) (b) (c) (d) ^ !! ^ !! ^ 2 !! 2 2 ^ !! 2 Como cada reduc~ao acima transforma uma formula numa outra equivalente, ent~ao usando-as de modo exaustivo (isto e, ate n~ao se puder aplicar mais nenhuma) e independente da ordem, necessariamente devemos obter uma formula na forma normal conjuntiva equivalente a original, 5. Para reduzir uma formula na fnc a uma equivalente na fncr devemos eliminar repetic~oes dos mesmos smbolos proposicionais no escopo de qualquer _ como segue: Suponha que esta na fnc. Seja 1 _ 2 _ : : : _ n, onde cada i e um literal, uma subformula de . (a) Se 1 = n ent~ao 1 _ 2 _ : : : _ n !! 2 _ : : : _ n (b) Se 1 = :n ou n = :1 ent~ao 1 _ 2 _ : : : _ n !! 68 ~ NA LOGICA CAPITULO 4. COMPUTACAO PROPOSICIONAL Apos isto devemos observar se n~ao foram geradas subformulas do tipo _ , _ , ^ ou ^ . Se isso acontecer, ent~ao devemos novamente aplicar as reduc~oes do item 3 e/ou 4, dependendo do caso. Exemplo 4.1.5 Reduzir :(p1 ! (p2 ! p3 )) ! ((p1 ! p2) ! (p1 ! p3)) na sua fncr. Primeiro eliminamos as implicac~oes, atraves da reduc~ao 1.a. !! :(:(p1 ! (p2 ! p3))) _ ((p1 ! p2 ) ! (p1 ! p3)) !! :(:(:p1 _ (p2 ! p3 ))) _ (:(p1 ! p2 ) _ (p1 ! p3 )) !! :(:(:p1 _ (:p2 _ p3 ))) _ (:(:p1 _ p2 ) _ (:p1 _ p3 )) Agora colocamos a negac~ao dentro do par^enteses atraves da reduc~ao 2.b. !! :(::p1 ^ :(:p2 _ p3 )) _ ((::p1 ^ :p2 ) _ (:p1 _ p3 )) !! :(::p1 ^ (::p2 ^ :p3 )) _ ((::p1 ^ :p2 ) _ (:p1 _ p3 )) !! (:::p1 _ :(::p2 ^ :p3 )) _ ((::p1 ^ :p2 ) _ (:p1 _ p3 )) !! (:::p1 _ (:::p2 _ ::p3 )) _ ((::p1 ^ :p2 ) _ (:p1 _ p3 )) Eliminamos a dupla negac~ao via a reduc~ao 2.a. !! (:p1 _ (:p2 _ p3 )) _ ((p1 ^ :p2 ) _ (:p1 _ p3 )) Realizamos distribuitividade do _ sobre o ^ (reduc~ao 3.a com comutatividade implcita). !! (:p1 _ (:p2 _ p3 )) _ ((p1 _ (:p1 _ p3 )) ^ (:p2 _ (:p1 _ p3 ))) !! ((:p1 _ (:p2 _ p3 )) _ (p1 _ (:p1 _ p3 ))) ^ ((:p1 _ (:p2 _ p3 )) _ (:p2 _ (:p1 _ p3 ))) Assim, obtivemos uma fnc equivalente a formula . Para reduzir esta nova formula a uma na fncr devemos usar associatividade e comutatividade de modo a rearranjar a formula e deixar as ocorr^encias dos mesmos pi's juntas. Desse modo, reduzimos a formula anterior a seguinte formula: !! ((:p1 _ (p1 _ :p1 )) _ :p2 _ (p3 _ p3 )) ^ ((:p1 _ :p1 ) _ (:p2 _ :p2 ) _ (p3 _ p3 )) Agora, eliminamos as ocorr^encias dos mesmos pi`s aplicando as reduc~oes em 5, acima, obtemos !! (((:p1 _ ) _ :p2 ) _ p3 ) ^ ((:p1 _ :p2 ) _ p3 ) Agora eliminamos , aplicandos as reduc~oes em 3 e 4. !! (( _ :p2 ) _ p3 ) ^ ((:p1 _ :p2 ) _ p3 ) !! ( _ p3 ) ^ ((:p1 _ :p2 ) _ p3 ) !! ( ) ^ (:p1 _ :p2 _ p3 ) !! ((:p1 _ :p2 ) _ p3 ) ~ DE LITERAIS COMPLEMENTARES 4.1. METODO DE ELIMINACAO 69 As reduc~oes apresentadas na demonstraca~o da proposica~o 4.1.4 s~ao sucientes para transformar qualquer formula de LP numa fncr equivalente. No entanto, as vezes, a formula resultante deste processo e extensa, mas poderia ser simplicada usando outras reduc~oes auxiliares. Por exemplo, vejamos o caso simples da formula (p1 ^ p2) _ (p1 ^ p3). Usando somente as reduc~oes da proposic~ao 4.1.4, teriamos que (p1 ^ p2 ) _ (p1 ^ P3 ) !! ((p1 ^ p2) _ p1) ^ ((p1 ^ p2) _ p3) !! (p1 _ p1 ) ^ (p2 _ p1 ) ^ (p1 _ p3 ) ^ (p2 _ p3 ) !! p1 ^ (p2 _ p1 ) ^ (p1 _ p3 ) ^ (p2 _ p3 ) Mas, observe que (p1 ^ p2) _ (p1 ^ P3 ) p1 ^ (p2 _ p3 ) e p1 ^ (p2 _ p3 ) esta na fncr. Logo, poderiamos usar esta formula como reduc~ao . Ja na formula (p1 ^ p2) _ (p1 ^ p2). Usando somente as reduco~es da proposica~o 4.1.4, teriamos que (p1 ^ p2 ) _ (p1 ^ P2 ) !! ((p1 ^ p2) _ p1) ^ ((p1 ^ p2) _ p2) !! (p1 _ p1 ) ^ (p2 _ p1 ) ^ (p1 _ p2 ) ^ (p2 _ p2 ) !! p1 ^ (p2 _ p1 ) ^ (p1 _ p2 ) ^ p2 Mas, trivialmente, (p1 ^ p2 ) _ (p1 ^ P2) p1 ^ p2. Assim poderiamos denir uma reduc~ao que nos permita atingir esta formula diretamente. Redu co~es Auxiliares: 1. 2. 3. 4. 5. _ !! _ ^ !! ^ ( ^ ) _ ( ^ ) !! ^ ( _ ) _ !! ^ !! Para descrever o processo de eliminac~ao de literais complementares ELC sobre formulas na forma normal conjuntiva reduzida (fncr) deniremos mais alguns termos. O nosso estilo de especicac~ao da sintaxe e chamado gramatica livre de contexto. Cada linha representa uma regra para transformar um smbolo n~ao terminal (smbolos auxiliares que n~ao gurar~ao na cadeia resultado) numa cadeia de smbolos. Para isso usaremos as seguintes convenc~oes: Um smbolo terminal sera colocado entre aspas duplas. O smbolo \::=" sera lido como \e um". ~ NA LOGICA CAPITULO 4. COMPUTACAO PROPOSICIONAL 70 O smbolo \j" sera lido como \ou" (representando uma alternativa). Justaposic~ao de x com y sera denotado por xy . Exemplo 4.1.6 1. proposic~ao -at^omica := \p001 j : : : j \p00n j : : : 2. literal :=+literal j -literal sera lido como \um literal e um literal positivo ou um literal negativo". 3. +literal :=proposica~o-at^omica. 4. -literal :=\ :" proposic~ao-at^omica. 5. clausula-basica :=\2" jliteral j literal \ _" clausula-basica 6. proposic~ao-basica :=clausula-basica j clausula-basica \ ^" proposic~ao-basica A clausula vazia e 2. Uma formula na fncr e uma proposic~ao-basica. O adjetivo \basico" se refere ao fato de que a clausula ou proposic~ao que ela procede n~ao contem variaveis. Como n~ao existe variavel na linguagem proposicional, todas as clausulas e proposic~oes s~ao basicas. Essa distinc~ao somente sera apreciada quando estudarmos logica de predicados. A s vezes e conveniente pensar uma proposica~o basica como um conjunto de clausulas basicas, e uma clausula basica como um conjunto de literais. Isto n~ao causara confus~ao uma vez que sabemos que uma proposic~ao basica e sempre uma conjunc~ao (^) de seus elementos, e uma clausula basica e sempre uma disjunca~o (_) de seus elementos (literais). Nessas convenc~oes podemos dar as seguintes denico~es na forma de gramatica livre de contexto. clausula-basica :=\2" j literal j literal clausula-basica. proposic~ao-basica :=clausula-basica j clausula-basica proposic~ao-basica. O smbolo \" indica uni~ao. Apos essas convenc~oes podemos denir a elimina c~ao de literais complementares (ELC) de uma formula na fncr. Deni c~ao 4.1.7 Se e s~ao claususlas-basicas, e pk 2 e :pk 2 , ent~ao o resolvente basico de e com respeito a pk e :pk , e ( ; fpk g) ( ; f:pk g)1. O qual e ilustrado pela gura 4.1. Dessa denic~ao podemos dizer que o resolvente basico e a uni~ao das clausulas originais com excess~ao dos literais complementares, que foram eliminados. Na convenc~ao de que 2 e a clausula vazia, o resolvente basico de pk e :pk e 2. 1 ; indica o conjunto diferen ca de e , isto e, ; = fx = x 2 e x 2= g. ~ DE LITERAIS COMPLEMENTARES 4.1. METODO DE ELIMINACAO ^ 71 @@ ; ; @@;; ( ; fpk g) ( ; f:pk g) Figura 4.1: Resolvente basico de duas clausulas Observa c~ao: A resoluc~ao basica ou ELC, pode ser considerada como uma variante do modus ponens (MP), que estabelece que de e ! , podemos deduzir . Isto poderia ser escrito por \de e : _ podemos deduzir ". Assim, quando e uma formula at^omica e um literal, podemos deduzir eliminando e :, como mostrado na gura 4.2. ^ (: _ ) @@ ; ; @@;; Figura 4.2: ELC como uma variante do modus ponem Exemplo 4.1.8 A seguir veremos algumas deduc~oes usando ELC. 1. O resolvente basico de p1 _ p2 e p3 _ :p1 e p2 _ p3 como ilustrado na gura 4.3. (p1 _ p2) ^ (p3 _ :p1 ) @@ ; ; @@;; (p2 _ p3) Figura 4.3: Resolvente basico de p1 _ p2 e p3 _ :p1 2. Uma resolvente basico de p1 _ p2 e :p1 _ :p2 e :p1 _ p1, como ilustrado na gura 4.4. ~ NA LOGICA CAPITULO 4. COMPUTACAO PROPOSICIONAL 72 (p1 _ p2 ) ^ (:p1 _ :p2) @@ ; ; @@;; (:p1 _ p1 ) Figura 4.4: Um resolvente basico de p1 _ p2 e :p1 _ :p2 (p1 _ p2 ) ^ (:p1 _ :p2) @@ ; ; @@;; (:p2 _ p2 ) Figura 4.5: Outro resolvente basico de p1 _ p2 e :p1 _ :p2 3. O resolvente basico de p1 _ p2 e :p1 _ :p2 e a formula :p2 _ p2, como ilustrado na gura 4.9. Observa c~ao: Os itens 2. e 3. do exemplo 4.1.8 s~ao ambos legtimos. No entanto n~ao seria possvel eliminar ambos os pares de literais complementares de uma vez. Uma deduca~o de :p1 a partir de :p1 _ p2 _ :p3 , p3 e :p2 usando o metodo de ELC, pode ser vista na gura 4.6. Observa c~ao: E claro que poderamos ter optado por eliminar primeiro p2 e :p2 . O importante e que o resultado sera sempre o mesmo, independente da ordem de eliminac~ao de literais. Neste ultimo exemplo realizamos duas resoluc~oes basicas consecutivas para deduzir :p1 . Esta ideia pode ser generalizada e formalizada. Deni c~ao 4.1.9 Uma dedu c~ao por resolu c~ao de uma clausula a partir de um con junto de clausulas ;, denotado por ; ;! , e uma sequ^encia nita de clausulas 1 : : : n tal que 1. n e ~ DE LITERAIS COMPLEMENTARES 4.1. METODO DE ELIMINACAO (:p1 _ p2 _ :p3) ^ 73 p3 @@ ; ; @@;; (:p1 _ p2 ) ^ :p2 @@ ; ; @@;; :p1 Figura 4.6: Deduca~o de :p1 a partir de :p1 _ p2 _ :p3 p3 e :p2 usando ELC 2. para cada i, 1 i n, ou i (a) e um elemento de ;, ou (b) p :p 2 i para algum smbolo proposicional p, ou (c) e um resolvente basico de j e k , onde j k < i. Note que a sequ^encia nita de clausulas 1 : : : n de uma deduc~ao por resoluca~o, pode ser disposta na forma de uma arvore invertida, como na gura 4.6 que ilustra a sequ^encia: :p1 _ p2 _ :p3 p3 :p1 _ p2 :p2 :p1 : Exemplo 4.1.10 Do exemplo 4.1.8, podemos concluir que: 1. p1 _ p2 p3 _ :p1 ;! p2 _ p3, 2. p1 _ p2 :p1 _ :p2 ;! :p1 _ p1 , 3. p1 _ p2 :p1 _ :p2 ;! :p2 _ p2 , 4. :p1 _ p2 _ :p3 p3 :p2 ;! :p1 , Proposi c~ao 4.1.11 Seja ; um conjunto de clausulas basicas e e clausulas basicas, e p um literal e pop o literal oposto de p. Ou seja se p = p ent~ao pop = :p e se p = :p ent~ao pop = p. 1. Monotonicidade a esquerda: Se ; ;! e ; & ent~ao & ;! ~ NA LOGICA CAPITULO 4. COMPUTACAO PROPOSICIONAL 74 2. Monotonicidade a direita: Se e ; ;! ent~ao ; ;! 3. Contrac~ao: Se ; _ p ;! ent~ao ; p ;! 4. Compacidade: Se ; ;! ent~ao existe um conjunto nito ;0 ; tal que ;0 ;! 5. Teorema da deduc~ao simples: ; p ;! se, e somente se, ; ;! pop _ Demonstraca~o: Monotonicidade a esquerda e compacidade s~ao resultado direto da denic~ao de deduca~o por resoluc~ao. Monotonicidade a direita: Se ; ;! , ent~ao existe uma deduc~ao por resoluc~ao 1 : : : n de a partir de ;. Assim, n = . Se 6= 2 ent~ao existe um literal 2 . Ent~ao, neste caso, 1 : : : n _ : _ ( ; ) e uma deduca~o por resoluc~ao de a partir de ;. Se = 2 ent~ao n;2 e n;1 s~ao literais complementares. Logo, a sequ^encia 1 : : : n;2 n;1 _ n;2 _ n;2 _ n;1 e uma deduc~ao por resoluc~ao de a partir de ; Contra c~ao: Se ; _ p ;! ent~ao existe uma deduca~o por resoluca~o 1 : : : n de a partir de ; _ p. Substituindo cada i = _ p por i1 = i _ p _ pop, i2 = p e i3 = i _ p, teremos uma deduc~ao por resoluc~ao de a partir de ; p. Teorema da dedu c~ao simples: Se ; p ;! , ent~ao existe uma deduc~ao por resoluc~ao 1 : : : n de a partir de ; p. Se p n~ao foi usada na deduc~ao (isto e, p 2=f1 : : : ng) ent~ao, 1 : : : n e uma deduc~ao por resoluc~ao de a partir de ;, e portanto ; ;! . op Logo, por monotonicidade a direita teriamos que ; ;! p _ . Por outro lado se p 2 f1 : : : ng, ent~ao p = i para algum (considere o menor dos i's) 1 i n. Assim, a sequ^encia 1 : : : i;1 fpopg i+1 : : : n fpopg e uma deduca~o por resoluc~ao de pop _ a partir de ;. Por outro lado, se ; ;! pop _ , ent~ao, por monotonicidade a direita, ; p ;! pop _ . op Seja 1p : : : np uma deduc~ao por resoluca~o de p _ a partir de ; p. Trivialmente, a sequ^encia 1p : : : np = pop _ p e uma deduc~ao por resoluc~ao de a partir de ; p. Logo, ; p ;! . Teorema 4.1.12 (Teorema da Dedu c~ao ) ; p1 _ : : : _ pk ;! se, somente se, ; ;! op op p1 _ : : : _ pk _ Demonstraca~o: Se ; p1 _ : : : _ pk ;! ent~ao pela propriedade da contrac~ao (na proposic~ao 4.1.11) temos que ; p1 : : : pk ;! . Logo, aplicando o teorema da deduc~ao op simples (tambem na proposic~ao 4.1.11), temos que ; ;! pop 1 _ : : : _ pk _ . ~ DE LITERAIS COMPLEMENTARES 4.1. METODO DE ELIMINACAO 75 Corolario 4.1.13 Se ; : ;! 2 ent~ao ; ;! Demonstraca~o: Se = p1 _ : : : _ pk ent~ao : = :(p1 _ : : : _ pk ) = :p1 ^ : : : ^ :pk op = pop 1 ^ : : : ^ pk op Assim, se ; : ;! 2 ent~ao ; pop c~ao 1 : : : pk ;! 2. Logo, pelo teorema da dedu op ;! op )op _ 2. Isto e, ; pop : : : pop ;! 4.1.12, ; pop : : : p ( p p . Assim, aplicando k 1 1 k;1 k k;1 k ; 1 vezes o teorema da deduc~ao teremos que ; ;! p1 _ : : : _ pk Ou seja, ; ;! . Numa deduc~ao por resoluc~ao de ; ;! , podemos usar as premisas de ; tantas vezes quanto for necessario, inclussive nenhuma. Exemplo 4.1.14 Seja ; o seguinte conjunto de clausulas: f:p3 p1 _ :p2 p1 _ p3 :p1 _ p2 _ p3g. Uma deduca~o por resoluc~ao de ; ;! p2 e ilustrado na gura 4.7. p1 _ p3 :p3 @@ ; ; @@;; p1 :p1 _ p2 _ p3 @@ ; ; @@;; p2 _@p3 :p3 @@ ;;; @; p2 Figura 4.7: Deduc~ao por resoluc~ao de f:p3 p1 _ :p2 p1 _ p3 :p1 _ p2 _ p3g ;! p2 Nesta deduca~o a clausula :p3 e usada duas vezes, enquanto a clausula p1 _ :p2 nenhuma. Deni c~ao 4.1.15 Uma deduca~o por resoluc~ao de 2 a partir de um conjunto de clausulas basicas ;, denotado por ; ;! 2, e chamada uma refuta c~ao de resolu c~ao ou simplesmente uma refuta c~ao, de ;. 76 ~ NA LOGICA CAPITULO 4. COMPUTACAO PROPOSICIONAL Exemplo 4.1.16 Uma refutac~ao de ; = f(p1 _ p2 ) (:p2 _ p3 ) (:p1 _ p3 ) :p3g e ilustrada na gura 4.8 ( _ ) (: _ ) @@ ; ; @@;; (p1 _ p3 ) (:p1 _ p3) @@ ; ; @@;; p3 :p3 @@ ; ; @@;; 2 Figura 4.8: p1 _ p2 :p2 _ p3 :p1 _ p3 :p3 ;! 2 Nosso metodo de computac~ao, o qual estamos chamando de ELC ou resolu c~ao basica, foi descrita como um meio de produzir refuta c~oes de conjuntos de clausulas. O objetivo, aqui, em usando essa terminologia, e, ao refutar um conjunto de clausulas, mostrar que a conjunc~ao dessas clausulas e contraditoria ou impossvel de satisfazer. Assim, quando relacionamos esse metodo de computac~ao com nosso entendimento de verdade e prova, estamos tentando refutar a nega c~ao do que sabemos ser verdadeiro e/ou provavel. Se uma formula e sempre verdadeira, ent~ao sua negaca~o e sempre falsa e portanto esperamos exibir sua refutac~ao. Igualmente, se podemos refutar a negac~ao de uma formula , ent~ao esperamos poder provar em nossa teoria formal. Exemplo 4.1.17 Para mostrar que a formula (p1 ^ (p1 ! :(p1 _ p2 ))) ! (:p1 ^:p2 ) e uma tautologia usando o metodo ELC, primeiro negamos a formula, depois reduzimos a formula na sua fncr e, nalmente, mostramos uma refutac~ao da formula na fncr. Isto e, realizamos os seguintes passos. Passo 1: Negaca~o da formula . : :((p1 ^ (p1 ! :(p1 _ p2 ))) ! (:p1 ^ :p2 )) Passo 2: Transformaca~o a fncr de :. ~ DE LITERAIS COMPLEMENTARES 4.1. METODO DE ELIMINACAO 77 : !! :((p1 ^ (:p1 _ :(p1 _ p2 ))) ! (:p1 ^ :p2 )) !! :(:(p1 ^ (:p1 _ :(p1 _ p2 ))) _ (:p1 ^ :p2 )) !! ::(p1 ^ (:p1 _ (:p1 ^ :p2 ))) ^ :(:p1 ^ :p2 ) !! (p1 ^ (:p1 _ (:p1 ^ :p2 ))) ^ (::p1 _ ::p2 ) !! (p1 ^ (:p1 _ (:p1 ^ :p2 ))) ^ (p1 _ p2 ) !! (p1 ^ ((:p1 _ :p1 ) ^ (:p1 _ :p2 ))) ^ (p1 _ p2 ) !! p1 ^ :p1 ^ (:p1 _ :p2 ) ^ (p1 _ p2 ) Passo 3: Aplicar metodo ELC as clausulas p1 , :p1 , :p1 _ :p2 e p1 _ p2 . O qual se simplica ao resolvente basico das clausulas p1 e :p1 , como ilustrado na gura 4.9. p1 ^ :p1 @@ ; ; @@;; 2 Figura 4.9: Resolvente basico de p1 e :p1 Assim, p1 :p1 :p1 _ :p2 p1 _ p2 ;! 2 E claro que o metodo de resoluc~ao, a cada passo, pode ter muitos caminhos possveis a serem seguidos. Uma maneira de automatizar o processo e considerar todos os caminhos possveis. Ou seja, em cada etapa gerar todos os possveis resolventes do conjunto de clausulas correntes. Deni c~ao 4.1.18 Dado um conjunto de clausulas ;, denimos R(;) como sendo a uni~ao de ; com o conjunto de todos os possveis resolventes basicos de clausulas em ;. Denimos Rn como segue R0 (;) = ; Rn+1 (;) = R(Rn (;)) Proposi c~ao 4.1.19 Seja ; um conjunto de clausulas. 2 Rn(;) para algum n se, e somente se, ; ;! . Demonstraca~o: Mostraremos, por induc~ao em n que se 2 Rn (;) ent~ao ; ;! . Caso base: Se n = 1 ent~ao Rn (;) = R(;), ou seja a uni~ao de ; com todos seus resolventes basicos. Se 2 R; ent~ao ou 2 Gamma, em cujo caso, a sequ^encia e uma deduc~ao por resoluc~ao de a partir de ;, isto e, ; ;! . Se e um resolvente basico de de 78 ~ NA LOGICA CAPITULO 4. COMPUTACAO PROPOSICIONAL clausulas em ;, digamos i e j , ent~ao a sequ^encia, i j e uma deduc~ao por resoluc~ao de a partir de ;, isto e, ; ;! . Etapa indutiva: Assuma que para cada 0 2 Rk (;) temos que ; ;! 0. Se 2 Rk+1 (;) ent~ao 2 R(Rk (;)). Logo, por denic~ao de R, ou 2 Rk (;) ou e resolvente basico de algum i j 2 Rk (;). Em ambos os casos procedemos como no caso base. Por outro lado, se ; ;! , ent~ao existe uma deduc~ao por resoluca~o, 1 : : : m, de a partir de ;. Mostraremos por induc~ao em i, com 1 i m, que cada i 2 Rn(;) para algum n. Caso base: Se i = 1, ent~ao necessariamente i 2 ;. Logo, trivialmente, i 2 R0 ;. Etapa indutiva: Assuma que para cada i k < m, i 2 Rn (;) para algum n. Como k+1 ou pertence a ; ou e o resolvente basico de j e l , com j l k. No primeiro caso, trivialmente, k+1 2 R0 (;). No segundo caso, pela hipotese indutiva temos que j 2 Rn1 (;) e l 2 Rn2 (;). Como, por denica~o de Rn, Rp(;) Rq (;) sempre que p q, ent~ao Rn1(;) Rmax(n1n2) (;) e Rn2 (;) Rmax(n1n2) (;). Logo, j l 2 Rmax(n1n2) (;). Portanto, k+1 2 R(Rmax(n1n2) (;)), ou seja k+1 2 Rmax(n1n2)+1 (;). Corolario 4.1.20 Seja ; um conjunto de clausulas. 2 2 Rn (;) para algum n se, e somente se, ; ;! 2. Demonstraca~o: Direto do teorema anterior fazendo a clausula vazia (2). Por denic~ao, ; R(;) R2 (;) . Alem disso, cada Rn(;) ;, o conjunto de todas as possveis clausulas usando literais contidos em ;, pois nenhum literal novo pode ser gerado numa resoluc~ao basica. Assim, como ; e nito, ent~ao para algum inteiro m, Rm (;) = Rk (;) para todo k > m. Assim, a operac~ao de tomar resolventes encerra depois de alguma quantidade nita de passos. Se 2 2 Rm (;), ent~ao existe uma refutac~ao de ; (corolario 4.1.20), caso contrario nenhuma refutaca~o de ; existe. Assim, dado qualquer conjunto ; de clausulas, quando ou n~ao ; ;! 2 e decidvel. 4.2 Resultados de Completude Nesta sec~ao investigaremos as relac~oes entre as tr^es maneiras de abordar a logica proposicional vistas ate o momento: consequ^encia logica, representado pelo smbolo j= provabilidade, representado por ` e refutabilidade atraves do metodo ELC, representado pelo smbolo ;! . O primeiro e o metodo matematico ou sem^antico, o segundo e o metodo formal ou dedutivo e o terceiro e o metodo computacional. Primeiramente, mostraremos que todo teorema de TP e logicamente valido, isto e, uma tautologia. Para isso mostraremos, preliminarmente, o seguinte lema. 4.2. RESULTADOS DE COMPLETUDE 79 Lema 4.2.1 Se e um axioma de TP , ent~ao e uma tautologia. Demonstraca~o: Para mostrar isto usaremos as tabelas verdade. 1. O axioma A1 , isto e: 1 ! (2 ! 1) e uma tautologia, pois basta observar a sua tabela verdade 1 1 1 0 0 2 2 ! 1 1 ! (2 ! 1 ) 1 1 1 0 1 1 1 0 1 0 1 1 2. O axioma A2 , isto e, (1 ! (2 ! 3)) ! ((1 ! 2 ) ! (1 ! 3 )) e uma tautologia, pois basta observar a sua tabela verdade. 1 1 1 1 1 0 0 0 0 2 1 1 0 0 1 1 0 0 3 2 ! 3 1 ! 2 1 ! 3 1 ! (2 ! 3) (1 ! 2 ) ! (1 ! 3 ) 1 1 1 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 3. O axioma A3 , isto e, (:2 ! :1 ) ! ((:2 ! 1 ) ! 2) e uma tautologia, pois basta observar a sua tabela verdade. 1 1 1 0 0 2 :1 :2 :2 ! :1 :2 ! 1 (:2 ! 1 ) ! 2 1 0 0 1 1 1 0 0 1 0 1 0 1 1 0 1 1 1 0 1 1 1 0 1 A3 1 1 1 1 A2 1 1 1 1 1 1 1 1 ~ NA LOGICA CAPITULO 4. COMPUTACAO PROPOSICIONAL 80 Teorema 4.2.2 (TP e segura) Se ` ent~ao j= . Isto e, se e provavel, ent~ao e uma tautologia. Demonstraca~o: Se ` , ent~ao existe uma derivac~ao ou prova de , digamos 1 2 : : : n, onde n = e tal que para todo i, 1 i n, i e um axioma ou segue por MP de j e k , onde k = j ! i e j k < i. Mostraremos, por induc~ao sobre i, que cada i na derivaca~o e uma tautologia. Caso base: i = 1. Por denic~ao de prova, 1 deve ser um axioma, e portanto pelo lema 4.2.1, uma tautologia. Etapa indutiva: Suponha que i e uma tautologia para todo i, 1 i < k. Devemos mostrar que k e uma tautologia. 1. Se k e um axioma, pelo lema 4.2.1, e uma tautologia. 2. Se k segue por modus ponens de i e j , onde i j < k e j = i ! k ent~ao, como i e j s~ao tautologias, pela hipotese indutiva, k e uma tautologia pela denic~ao de !. Portanto, i e uma tautologia para todo i, 1 i n. Como = n, segue que e uma tautologia. Corolario 4.2.3 Se ; ` ent~ao ; j= . Demonstraca~o: Se ; ` ent~ao pela observaca~o 6.c do captulo 3 (teorema da com- pacidade) temos que ;0 ` para algum ;0 ;, nito. Suponha que ;0 = f1 : : : ng, ent~ao, pelo teorema da deduc~ao, temos que ` 1 ! (2 ! (: : : (n ! ) : : : ). Logo, pelo teorema seguro temos que j= 1 ! (2 ! (: : : (n ! ) : : : ). Aplicando o teorema da deduc~ao (repetidas vezes) temos que ;0 j= . Como ;0 ;, ent~ao pelo exerccio 9.a do captulo 2, temos que ; j= . Assim, dedutibilidade implica verdade, signicando que a teoria formal TP e segura e o corolario nos diz que a noc~ao de consequ^encia na teoria formal TP se corresponde com a noc~ao de consequ^encia sem^antica ou logica. Vejamos, agora, verdade e computac~ao. Pretendemos mostrar que se e uma tautologia, ent~ao podemos achar uma refutac~ao para :. Se e uma tautologia, ent~ao : e insatisfatvel. Queremos mostrar que se : e insatisfatvel, ent~ao : ;! 2. Assumiremos que a formula : esta na forma normal conjuntiva reduzida. Portanto, : e um conjunto de clausulas, o qual entendemos como a conjunc~ao dessas clausulas. Deni c~ao 4.2.4 Se ; e um conjunto de clausulas, a frase \; com subtitudo por " denota o conjunto (; ; fg) f g. 4.2. RESULTADOS DE COMPLETUDE 81 Ou seja, a clausula e removida do conjunto de clausulas ; e ent~ao a clausula e adicionada ao resultado. Lema 4.2.5 Se ; e um conjunto insatisfatvel de clausulas basicas com 2 ;, 2 e 6= , ent~ao ;, com substitudo por , e insatisfatvel. Demonstraca~o: Por denic~ao de clausula, e uma disjunc~ao de literais. Como , e uma disjunca~o de literais. Se ;, com substitudo por , e satisfatvel, ent~ao existe uma interpretaca~o sob a qual ; com substitudo por e verdadeira. Como ; e uma conjunc~ao de clausulas, sabemos que deve ser verdadeira sob esta interpretaca~o. Logo, como e uma disjunc~ao de literais, ela e verdadeira, somente se um dos literais em e verdadeiro. Como , a mesma interpretaca~o torna verdadeira e portanto ; e satisfatvel, contradizendo nossa suposic~ao inicial. Portanto, ; com substitudo por e insatisfatvel. Este lema nos assegura que um conjunto de clausulas insatisfatvel n~ao pode ser satisfatvel eliminando alguns literais em suas clausulas. E eliminando a clausula toda? Como uma clausula e uma disjunc~ao, eliminando elementos (literais) torna-a mais distante de ser satisfatvel. Mas, como uma formula e uma conjunca~o de clausulas, eliminar alguma de suas clausulas, torna-a mais provavel de ser satisfatvel. Por este motivo que colocamos a restric~ao no lema anterior, de ser diferente de vazio. Deni c~ao 4.2.6 Um conjunto ; de clausulas e um conjunto minimal insatisfatvel se ; e insatisfativel, mas qualquer subconjunto proprio de ; n~ao e insatisfatvel. Observa c~ao: Pelo teorema da compacidade o conjunto minimal insatisfatvel e nito. Todo conjunto insatisfatvel contem um subconjunto minimal insatisfatvel. Mas, esse conjunto n~ao e necessariamente unico. Exemplo 4.2.7 fp1 p2 :p1 :p2 g tem dois subconjuntos minimal insatisfatvel, quais sejam fp1 :p1 g e fp2 :p2g. No sentido de simplicar a prova do proximo lema, introduziremos as noc~oes de clausula unitaria, multiunitaria e n~ao unitaria, assim como o conceito de excesso de literais. Deni c~ao 4.2.8 Uma clausula que contem exatamente um literal e uma clausula unitaria. Uma clausula multiunitaria e aquela que contem dois ou mais literais. Uma clausula n~ao unitaria e ou a clausula vazia ou uma clausula multiunitaria. 2 Lembre-se que e uma clausula e portanto pode ser visto como um conjunto. ~ NA LOGICA CAPITULO 4. COMPUTACAO PROPOSICIONAL 82 Deni c~ao 4.2.9 Seja ; um conjunto nito de clausulas. Denote por #; o numero de clausulas no conjunto ;, e ##; o numero de ocorr^encia de literais em ;. O numero de excesso de literais em ; e ##; ; #;, que e n~ao negativo se 2 62 ;. Exemplo 4.2.10 ; = fp1 _ p2 :p1 _ p3 :p2 _ p3 :p3 g #; = 4 (o numero de clausulas em ;) ##; = 7 (o numero de literais em ;) ##; ; #; = 3 (o numero de excesso de literais em ;) 2 e a unica clausula sem literais. Logo se 2 62 ;, ; tem no mnimo um literal em cada clausula, tornando ##; #; e o numero de excesso de literais n~ao negativo. Lema 4.2.11 Se ; e um conjunto, n~ao vazio, minimal insatisfatvel de clasulas basicas, ent~ao ; ;! 2. Demonstraca~o: Se 2 2 ;, ent~ao ; = f2g uma vez que ; e minimal, e f2g ;! 2. Suponha, agora, que 2 62 ; e seja n o numero de excesso de literais em ;, isto e, n = ##; ; #;. Mostraremos, por induc~ao sobre n, que ; ;! 2. Caso base: n = 0. Se o numero n de excesso de literais e 0, ent~ao, necessariamente, todas as clausulas em ; s~ao n~ao unitarias. Logo, ; e da forma fpi1 :pi1 pi2 :pi2 : : : pik :pik g onde cada pij , com 1 j k, e uma proposica~o at^omica. Neste caso, a resoluc~ao basica sobre duas clausulas unitarias complementares, pi1 e :pi1 por exemplo, gera 2. Etapa indutiva: Suponha que ; ;! 2 para todo conjunto minimal insatisfatvel de clausulas basicas ; com k excessos de literais, para todo 0 < k < n. Devemos mostrar que ; ;! 2, onde ; e um conjunto minimal insatisfatvel de clausulas basicas, com n excessos de literais. Como n > 0, existe uma clausula multiunitaria , em ;. Seja 1 2 e ;1 igual a ; com substitudo por ; f1 g. Pelo lema 4.2.5, ;1 e insatisfatvel. Seja ;0 um subconjunto minimal insatisfatvel de ;1. Agora ;1 (e portanto ;0) tem menos que n excessos de literais. Pela hipotese indutiva, ;0 ;! 2 por alguma refutaca~o de soluc~ao 1 2 : : : k;1 k = 2. Algun i e ; fig, caso contrario ; n~ao seria minimal. Tomamos 1 : : : k numa deduc~ao de ; substituindo por ; fig, para gerar , e adicionando subsequentes resolventes para incluir , se necessario. Seja 10 : : : k0 , denotando a deduc~ao de ;, assim obtida. Se k0 = 2 ent~ao tudo bem. Caso contrario, k = fg, e devemos obter uma refutac~ao de A fg para algum subconjunto A de ; e juntar ele com 10 : : : k0 para obter uma refutac~ao de ;. 4.2. RESULTADOS DE COMPLETUDE 83 Seja ;2 igual a ; com substitudo por f1g. ;2 e insatisfatvel novamente pelo lema 4.2.5. Seja ;02 um subconjunto minimal de ;2 . Agora, ;02 e & ; f1 g para algum & ;, desde que f1g deve estar em ;02 (Caso contrario ;02 seria um subconjunto proprio de ;, contradizendo a hipotese de que ; e um subconjunto minimal insatisfatvel). f1g tem menos elementos que n excessos de literais, portanto pela hipotese de induc~ao existe uma refutac~ao 1 : : : r de & f1 g. Ent~ao 10 : : : k0 1 : : : r e a pretendida refutac~ao de ;. Teorema 4.2.12 j= implica : ;! 2. Ou seja, se e uma tautologia (logicamente valida), ent~ao existe uma refutac~ao de :. Demonstraca~o: j= se e somente se : e insatisfatvel. Se : e insatisfatvel ent~ao existe um subconjunto minimal insatisfatvel ; de :. Pelo lema 4.2.11, ; ;! 2. Portanto, pela mesma refutac~ao, : ;! 2. Corolario 4.2.13 Se ; e um conjunto insatisfatvel de clausulas basicas, ent~ao ; ;! 2. Demonstraca~o: Se ; e um conjunto insatisfatvel de clausulas basicas, ent~ao sua ne- gac~ao , isto e :;, e uma tautologia, isto e j= :;. Logo, pelo teorema anterior, temos que :; ;! 2. Assim, se uma formula e uma tautologia (valida) podemos computar uma refutac~ao de :. Isto signica que nosso esquema de computaca~o e completo. Agora generalizemos este resultado, ligando a noc~ao de consequ^encia logica com deduc~ao por resoluc~ao. Proposi c~ao 4.2.14 Seja ; uma conjunto de clausulas e uma clausula. Se ; j= ent~ao ; ;! . Ou seja, se e consequ^encia logica de ;, ent~ao existe uma deduc~ao por resoluc~ao de a partir de ;. Demonstraca~o: Se ; j= ent~ao, pelo teorema da compacidade, existe ;0 ; nito tal que ;0 j= . Seja ;0 = f1 : : : ng. Pelo teorema da deduc~ao temos que: j= 1 ! (: : : (n ! ) : : : ), isto e, j= :1 _ : : : _ :n _ . Logo, pelo teorema 4.2.12, :(:1 _ : : : _ :n _ ) ;! 2. Suponha ainda que a clausula e p1 _ : : : _ pk . Assim, op op 1 : : : n p1 : : : pk ;! 2. Aplicando o teorema da deduc~ao k-vezes, temos que 1 : : : n ;! p1 _ : : : _ pk , ou seja, ;0 ;! . Aplicando o teorema da compacidade (proposic~ao ??), temos que ; ;! . Note que o fato desta proposic~ao requere que em ; j= , todos sejam somente clausulas, n~ao tira a generalidade do mesmo, pois se ; e um conjunto de formula quaisquer, ent~ao cada uma das formulas em ; pode ser transformada numa fncr equivalente, e portanto geraria um conjunto de clausulas. Unindo todos esses conjuntos de clausulas teriamos um conjunto de clausulas ;0 equivalente ao conjunto de formulas ;. Analogamente, se for 84 ~ NA LOGICA CAPITULO 4. COMPUTACAO PROPOSICIONAL uma formula qualquer ela pode ser transformada a fncr, suponha que a fncr de seja 10 ^ : : : ^ m0 . Ent~ao em vez de ; j= teriamos ;0 j= 10 e : : : e ;0 j= m0 , satisfazendo a condic~ao da proposic~ao acima. Ate aqui sabemos que dedutibilidade implica verdade, e verdade implica computaca~o. Comparemos, agora, computac~ao e deduca~o. Comecaremos estabelecendo que se e um resolvente basico de clausulas num conjunto de clausulas , podemos provar que ` ! . A partir daqui generalizamos, considerando o caso no qual existe uma deduc~ao por resoluc~ao de a partir de (possivelmente envolvendo varias etapas de ELC). Lema 4.2.15 Seja uma formula na fncr. Se e um resolvente basico de duas clausulas em , ent~ao ` ! . Isto e, se ;! usando uma unica resoluc~ao basica, ent~ao ` ! . Demonstraca~o: Se ;! usando uma unica resoluc~ao basica, ent~ao e da forma (1 _ p) ^ (:p _ 2 ) ^ 3 onde p e uma proposic~ao at^omica, 1 e 2 clausulas, 3 e uma conjunc~ao de clausulas, e = 1 _ 2. Pretendemos mostrar que (1 _ p) ^ (:p _ 2) ^ 3 ` o qual, por denic~ao de _ como uma abreviaca~o, podemos tambem escrever (:1 ! p) ^ (::p ! 2 ) ^ 3 ` (:1 ! 2) 1: :1 ! p hipotese 2: p ! ::p proposica~o 3.3.4.b 3: :1 ! ::p 1,2, proposica~o 3.3.3.a 4: ::p ! 2 hipotese 5: :1 ! 2 3,4, proposica~o 3.3.3.a Assim, temos que :1 ! p ::p ! 2 ` :1 ! 2 . Logo, 6: (:1 ! p) ^ (::p ! 2) ` :1 ! 2 Exerccio 5 do captulo 3 7: (:1 ! p) ^ (::p ! 2) 3 ` :1 ! 2 propriedade 1 de dedutibilidade 8: (:1 ! p) ^ (::p ! 2) ^ 3 ` :1 ! 2 isto e, ` , e pelo teorema da deduc~ao para TP temos ` ! . Lema 4.2.16 ; ;! implica ; ` . Demonstraca~o: ; ;! implica que uma deduc~ao por resoluca~o de a partir de ; existe. (Isto e, existe uma sequ^encia, 1 : : : n tal que n = e para todo i, 1 i n, i ou e uma clausula de ; ou e um resolvente basico de dois i's previos na sequ^encia). Mostremos, por induc~ao sobre i, que para todo i, ; ` i . 4.2. RESULTADOS DE COMPLETUDE 85 Caso base: i = 1. 1 e uma clausula de ;. Ent~ao, trivialmente, a sequ^encia 1 e uma prova de ; ` 1. Etapa indutiva: Assuma que ; ` i , para cada i < k. Devemos mostrar que ; ` k . 1. Se k e uma clausula de ;, ent~ao, como no caso para i = 1, temos que trivialmente, ; ` k . 2. Se k e um resolvente basico de duas clausulas anteriores na sequ^encia, suponha que de i e j , onde i j < k, ent~ao k = (i ; p) (j ; pop) para algum literal p3. Pela hipoteses indutiva temos que ; ` i e ; ` j . Observe que p _ pop ! . Assim, i pop ! (i ; p) e j p ! (j ; pop). Portanto ; ` pop ! (i ; p) e ; ` p ! (j ; pop). Pelo exerccio 2.f. e 2.g. do captulo 3, temos que ; ` :(i ; p) ! (j ; pop ). Ou seja ; ` (i ; p) (j ; pop ). Portanto, ; ` k . Para i = n, temos ; ` n. Como n = , ent~ao ; ` . Portanto, ; ;! implica ; ` . Corolario 4.2.17 Se : ;! ent~ao ` : ! . Demonstraca~o: Se : ;! , ent~ao pelo lema acima, fazendo ; = f:g, temos que : ` . Aplicando o teorema da deduc~ao temos que ` : ! . Teorema 4.2.18 Se existe uma refutac~ao de : (por ELC), ent~ao podemos provar em TP . Isto e, : ;! 2 implica ` . Demonstraca~o: Se : ;! 2, ent~ao existe uma deduc~ao por resoluc~ao 1 : : : n = 2 a partir de :. 1. Se 2 2 : ent~ao : = f2g, uma vez que : esta na forma normal conjuntiva reduzida. Mas, ent~ao = :(:) = :2 = . Lembre-se que e uma abreviac~ao para _ :, o qual, por denic~ao, e equivalente a : : ! :. Portanto, implica : ! :, o qual e provavel pelo lema 3.3.2. 2. 2 deve ser resolvente basico de i e j , i j < n. Lembre-se que 2 e uma abreviac~ao para ^ :. Logo pelo corolario 4.2.17, temos ` : ! (1 ^ :1 ). 1: ` : ! :(1 ! ::1 ) denic~ao de ^ 2: ` ! :: proposica~o 3.3.4.b 3: ` (: ! :(1 ! ::1 )) ! ((1 ! ::1 ) ! ) proposica~o 3.3.4.d 4: ` (1 ! ::1 ) ! MP 1,3 5: ` MP 2,4. 3 Se p e a formula at^omica p ent~ao pop e a formula :p. Se p e a formula :p ent~ao pop e a formula at^omica :p. ~ NA LOGICA CAPITULO 4. COMPUTACAO PROPOSICIONAL 86 Teorema 4.2.19 (Teorema da Completude) Na logica proposicional ` se e somente se j= se e somente se : ;! 2 Demonstraca~o: ` implica j= teorema 4.2.2 j= implica : ;! 2 teorema 4.2.12 : ;! 2 implica ` teorema 4.2.18. Consequentemente, na logica proposicional uma assertiva e provavel se e somente se ela e logicamente valida (isto e, e uma tautologia) se e somente se sua negaca~o se reduz a clausula vazia pela resoluc~ao basica (ELC). Corolario 4.2.20 (Teorema da Completude Forte) Na logica proposicional ; ` se e somente se ; j= se e somente se ; ;! Demonstraca~o: Direto do corolario 4.2.3, da proposic~ao 4.2.14 e do lema ??. Observe que, entre outras coisas, o teorema da completude nos permite substituir a tediosa e difcil tarefa de provar que uma formula e um teorema na teoria formal TP , por simplesmente, mostrar que a formula e uma tautologia, a qual e uma tarefa menos tediosa e principalmente autom^atica, ou melhor ainda, por simplesmente mostrar que existe uma refutac~ao de sua negac~ao, o qual pode tambem ser realizado automaticamente e com um custo computacional menor que usando tabelas verdade. Assim, o teorema da completude interliga as tr^es dimens~oes da logica proposicional vistas aqui, e desta maneira podemos passar, por exemplo, resultados obtidos na dimens~ao sem^antica, para a dimens~ao sint^atica ou computacional, isto e, todo o que pode ser demonstrado numa dimens~ao, pode ser demonstrados nas outras. O corolario ?? extende este resultado para ligar deduc~ao a partir de um conjunto de premisas com consequ^encia logica e com deduc~ao por resoluc~ao de uma clausula a partir de um conjunto de clausulas. Exerccios 1. Exibir uma refutac~ao da nega c~ao de cada uma das seguintes proposic~oes. (Observe que isto requer que cada formula seja negada e ent~ao convertida para fncr antes de comecar a resoluc~ao). a. p1 ! p1 b. p1 ! ::p1 4.2. RESULTADOS DE COMPLETUDE c. ((p1 ! p2) ! p3) ! ((p1 ! p2) ! (p1 ! p3 )) d. (:p1 ! p2) ! (:p2 ! p1) e. (:p2 ! :p1 ) ! ((:p2 ! p1) ! p2) f. (p1 ! ::p1 ) ^ (::p1 ! p1 ) g. :(p1 ! :p2) ! p2 h. p1 ^ p2 ! p2 i. :(p1 ! :p2 ) ! p1 j. p1 ^ p2 ! p1 k. p1 ! (::(p1 ! :p2 ) ! :p2 ) l. (p1 ! p2) ^ (p1 ! p3) ! (p1 ! p2 ^ p3) m. (p1 ! p2) ! (p3 _ p1 ! p3 _ p2 ) n. (p1 ! p2) ! ((p3 ! p1 ) ! (p3 ! p2)) o. (p1 ! p2 ) ^ (p2 ! p3) ! (p1 ! p3 ) p. :p1 ! (p1 ! p2 ) q. p1 _ (p2 _ p3) ! (p2 _ (p1 _ p3)) _ p1 r. (p2 _ (p1 _ p3)) _ p1 ! p2 _ (p1 _ p3) s. p1 _ (p2 _ p3) ! p2 _ (p1 _ p3 ) t. :(:p1 ^ p1) u. :(p1 ^ p2) ! (p2 ! :p1 ) v. (p1 ! p2) ! (:p2 ! :p1 ) w. (:p1 ! :p2 ) ! (p2 ! p1 ) x. (p1 ! p2) ! (p3 ^ p1 ! p2 ^ p3) y. p1 ^ p2 ! p2 ^ p1 z. (p1 ! (p2 ! p3)) ^ p2 ! (p1 ! p3) aa. :p1 ! (p1 ! p2) ab. (p1 ! p2 ) ! (:p2 ! :p1 ) ac. p1 ! (:p2 ! :(p1 ! p2)) ad. (p1 ! p2 ) ! ((:p1 ! p2 ) ! p2) ae. (:p1 ! :p2 ) ! (p2 ! p1) af. (:p1 ! p1 ) ! p1 ag. p1 ! (:p1 ! p2) ah. (p1 ! p2 ) ! ((p2 ! p3) ! (p1 ! p3)) 87 88 ~ NA LOGICA CAPITULO 4. COMPUTACAO PROPOSICIONAL 2. Exibir uma refutac~ao por resoluca~o dos seguintes conjuntos de clausulas (a) fp1 _ p2 _ p3 :p1 _ p2 :p3 _ p1 :p2 g (b) f:p1 _ p2 :p2 _ p3 :p3 _ :p1 p1g (c) fp1 _ p2 :p3 :p2 p2 _ p3 _ :p1 g 3. Mostre que ; ;! ,quando: (a) ; = fp1 _ p2 _ p3 :p3 _ p4 :p1 :p2 _ p3 g e = p3 _ p4 (b) ; = f:p1 _ p2 :p2 _ p3 :p3 _ p1 _ p4 :p4g e = :p2 _ p3 _ p4 (c) ; = fp4 _ p3 p1 _ :p4 _ p3 :p3 _ p4g e = :p1 _ p4 4. Para os conjuntos de clausulas ; do exerccio anterior, determine ;, #; e ##;. 5. Demonstre que se ; ;! , para cada 2 & e & ;! ent~ao ; ;! . (Lei do corte) Captulo 5 Logica de Predicados: Linguagem e Sem^antica A linguagem logica vista ate aqui n~ao e sucientemente expressiva para analizar asserc~oes como \todo estudante gosta de tirar boas notas" ou \n~ao existem corvos azuis". Para tal precisamos ter um mecanismo que nos permita percorrer o universo dos individuos sobre os quais se esta armando alguma coisa (nas asserc~oes acima, o universo seria o dos estudantes e o dos corvos, respectivamente). Considere agora a sentenca \o gato e magro", ou em notac~ao logica, magro(gato). Esta sentenca e verdadeira ou falsa? Antes de responder essa quest~ao precisamos denir a palavra gato de modo que saibamos exatamente o que gato signica. Agora compare esta sentenca com \algo e magro". \Algo" aqui e bastante diferente de \gato". Para testar a verdade dessa sentenca n~ao precisamos conhecer de antem~ao exatamente o que \algo" e. Precisamos saber o conjunto o qual \magro" percorre e ent~ao observar cada elemento desse conjunto para vericar se pelo menos um e magro. Caso sejamos bem sucedido ent~ao \algo e magro" e verdadeira. Por isso, em logica n~ao escrevemos magro(algo), mas 9x:magro(x). Isto pode ser lido literalmente como \para algum x, x e magro", o qual e obviamente equivalente a \algo e magro". O signicado dessa sentenca e existe um valor, o qual quando subtitudo por x em magro(x), gera uma proposic~ao verdadeira. Considere, por exemplo, a asserc~ao \o gato e magro e faminto", que na linguagem logica pode ser escrito por magro(gato) ^ faminto(gato). Como o signicado de gato e xo de antem~ao ambas as ocorr^encias de \o gato" se referem a mesma coisa. Por outro lado, em \algo e magro" e \algo e faminto", que em linguagem logica e 9x:magro(x) ^ 9y:faminto(y ), as duas coisas poderiam ser diferentes. E tambem possvel dizer \algo e ambos magro e faminto", isto e, 9x:(magro(x) ^ faminto(x)). Neste caso, o que quer que seja o que estamos nos referindo e magro e faminto. 89 90 ^ CAPITULO 5. LOGICA DE PREDICADOS: LINGUAGEM E SEMANTICA Diferentemente de gato, que e uma constante, x tem o potencial para variar e portanto e chamado variavel. O x em 9x e uma variavel e aplica-se a toda a formula que segue o ponto. Para formulas n~ao at^omicas o uso de par^enteses e necessario para delimitar o escopo de x. Por exemplo, 9x:(P (x) _ Q(x)). A ocorr^encia de 9x liga as ocorr^encias de x naquela formula. Os smbolos 9 e 8 s~ao chamados de quanticadores , enquanto que 9x e 8x s~ao chamados de quantica c~oes . O quanticador 9 e chamado de quanticador existencial, pois pode ser lido como \existe um" ou \para algum". Ja o quanticador 8 e chamado de quanticador universal, pois pode ser lido como \para todo" ou \para cada". Por exemplo, em \Pedro gosta de todo mundo", n~ao escrevemos gosta(Pedro todomundo), mas 8x:gosta(Pedro x). Para ver se esta sentenca e verdadeira (estamos usando o nome senten ca como sin^onimo de armac~ao, embora sejam noc~oes sutilmente diferentes) precisamos checar que Pedro gosta de todos os valores como especicados na abrang^encia. O signicado dessa sentenca e Para todo valor substitudo por x, gosta(Pedro x) e uma asserc~ao verdadeira. E importante ter conci^encia de que quando temos duas ocorr^encias da mesma variavel, ligada pela mesma quanticac~ao elas devem denotar o mesmo valor. Por exemplo, os x's em 9x:(magro(x) ^ faminto(x)) deve denotar o mesmo valor. Para tornar a sentenca verdadeira devemos achar um valor para x que seja ambos magro e faminto. Por outro lado em 9x:magro(x) ^9x:faminto(x) os dois x's s~ao ligados por diferentes quanticac~oes e precisamos achar algo que e magro e algo que e faminto. O mesmo ou diferente, n~ao importa, para a sentenca ser verdadeira. No caso, 8x:gosta(x Pedro) _ 8x:gosta(x Maria) e verdadeira se 8x:gosta(x Pedro) ou 8x:gosta(x Maria) e verdadeira. Aqui os dois x's s~ao ligados por diferentes quanticac~oes. Elas s~ao realmente variaveis diferentes. Na sentenca \algo gosta de todo mundo", o qual e 9x:8y:gosta(x y) as duas variaveis dos quanticadores aninhados s~ao diferentes. Quanticadores que s~ao da mesma especie podem ser colocados em qualquer ordem. Por exemplo, 8x:8y:(m~ae(x y ) ! parente(x y )) n~ao e diferente de 8y:8x:(m~ae(x y ) ! parente(x y )) Eles signicam que, para quaisquer x e y, se x e m~ae de y ent~ao x e um parente de y. Generalizando, 9x:9y: signica o mesmo que 9y:9x:. ~ DO PORTUGUE^S PARA A LOGICA 5.1. TRADUCAO 91 Para quanticadores de especies diferentes a ordem e importante. Por exemplo, 8y:9x:m~ae(x y ) n~ao signica o mesmo que 9x:8y:m~ae(x y ) O primeiro diz que todo mundo tem uma m~ae, literalmente, para todo y existe algum x tal que x e m~ae de y. Sabemos que isso e verdadeiro quando x e y variam entre seres humanos. O segundo diz que existe uma pessoa que e m~ae de todo mundo. Literalmente, existe algum x tal que para todo y, x e m~ae de y. Isto n~ao e verdadeiro quando y e x percorre o conjunto dos seres humanos. 5.1 Traduc~ao do Portugu^es para a Logica Traduzir do Portugu^es para logica, no caso da logica proposicional, basta ligar as sentencas at^omicas com os conectivos ^ (e), _ (ou), ! (se ... ent~ao), : (n~ao) e $ (se e somente se). O mesmo princpio se aplica quando temos quanticadores e variaveis, mas existem alguns problemas especcos que precisam ser considerados. A seguir veremos algumas regras uteis para nos ajudar no processo de traduc~ao. Pronomes: Pronomes, palavras tais como \ele", ou \nada" por si proprios n~ao se ref- erem a qualquer coisa especca mas tem signicado a partir do contexto. Ja tivemos a oportunidade de ver como \algo" e \todo mundo" s~ao traduzidos usando quanticadores. \Nada" e similar. \Nada e magro" torna-se :9x:magro(x). Palavras tais como \ele", \ela" s~ao usadas especicamente como refer^encia a alguem ou algo que ja foi mencionado, portanto inevitavelmente correspondem a duas ou mais refer^encias ao mesmo valor. Quando encontramos um pronome tal como este devemos proceder como se estiv^essemos manuseando com o que ele se refere. Se ele e uma constante, ent~ao substitu-lo pela constante. Por exemplo, \Jose gosta de Maria e ela o adora" tornase gosta(Jose,Maria) ^ gosta(Maria,Jose) Isso e facil, mas quando o pronome se refere a uma variavel devemos primeiro estabelecer uma quanticac~ao e assegurar que ele se aplica a ambos. Por exemplo, considere \algo esta magro e ele esta faminto". N~ao e correto traduzir separadamente as duas frases \algo esta magro" e \^ele esta faminto". N~ao e correto porque o \algo" e \ele" s~ao ligados pelo conectivo \e". Neste caso devemos estabelecer uma variavel para lidar com esta ligaca~o. 92 ^ CAPITULO 5. LOGICA DE PREDICADOS: LINGUAGEM E SEMANTICA 9x:(x esta magro e x esta faminto) e ent~ao lidar com o \e". 9x:(magro(x) ^ faminto(x)) Podemos estabelecer a seguinte regra: se pronomes est~ao ligados por um conectivo, trate dos pronomes antes do conectivo. 5.2 Quanticadores e Tipos Frequentemente uma frase deve ser traduzida a linguagem logica usando uma quanticac~ao universal sobre um certo tipo de coisas em vez de acerca de todas as coisas. Assim, nesses casos, devemos qualicar o quanticador. No caso do quanticador universal isso e feito usando uma implica c~ao. Por exemplo, \todos os seres racionais odeiam viol^encia" tem como traduc~ao 8 (racional) x:(x odeia viol^encia) onde racional diz-se um qualicativo. Isto se traduz para 8x:(racional(x) ! odeia-viol^encia(x)) Se a quanticaca~o e existencial, ent~ao e usada uma conjun c~ao para ligar a parte principal com a parte qualicada. Por exemplo, \Maria gosta de alguem que gosta de logica". Devemos escrever primeiro 9 (uma pessoa que gosta de logica)y:gosta(Maria y ) e ent~ao 9y:(pessoa(y ) ^ gosta(y logica) ^ gosta(Maria y )) Regra: Torne a estrutura da sentenca correta antes de manipular o qualicativo. Qualicativos podem ser traduzidos usando ! ou ^ apropriadamente. Por isso introduziremos uma notac~ao para facilitar os seus usos. Escreva 8x : nome ; do ; tipo: ] ou 9x : nome ; do ; tipo: ] e chamemo-lhes quanticadores tipados. A notac~ao e principalmente usada para qualicativos padr~ao, as vezes referidos como \tipos". Sentencas usando tipos podem sempre ser reescritas com a propriedade do 5.2. QUANTIFICADORES E TIPOS 93 tipo explicitada. Qualicativos padr~ao incluem pessoas, numeros (inteiros, reais, etc.) caracteres, tempo, lista, conjuntos enumerados, etc. Por exemplo, 8x : tempo:8y : tempo:(x y ! apos(x y )) seria uma simplicac~ao para 8x:8y:(tempo(x) ^ tempo(y ) ^ x y ! apos(x y )) Tipos padr~ao s~ao usados extensivamente quando se escreve especicac~ao de programas, os quais correspondem as varias estruturas de dados, tais como lista, num, etc., usados em programas. Ja vimos que a sentenca 8x:(x) e verdadeira se e somente se cada sentenca t=x] obtida de (x) ao substitiuirmos cada ocorr^encia de x por um valor t, e verdadeira. Por exemplo, \todos os programas que funcionam terminam", cuja traduc~ao logica e 8x:(programa(x) ! (funciona(x) ! termina(x))) e verdadeira se cada sentenca obtida substituindo um valor de x e verdadeira. Se o valor t substitudo e um programa, ent~ao programa(t) e verdadeiro e a sentenca resultante programa(t) ! (funciona(t) ! termina(t)) e verdadeira se funciona(t) ! termina(t) e verdadeira. Se o valor t torna programa(t) falsa (isto e, t n~ao e um programa) ent~ao a sentenca resultante tambem e verdadeira. Na pratica, avaliamos o valor de uma sentenca numa situaca~o na qual os valores que substituem x s~ao xados de antem~ao. Por exemplo, eles poderiam ser ftodos os programas escritos por nosg. Quando s~ao usados quanticadores qualicados eles sugerem a abrang^encia dos valores que devem substituir de modo que se possa testar a verdade da sentenca. A sentenca \todos os programas que funcionam terminam" sera escrita 8x : programas:(funciona(x) ! termina(x)): Nesse caso os unicos valores que devemos considerar para x s~ao aqueles que nomeiam programas. Esses s~ao exatamente os valores que s~ao uteis para mostrar que a sentenca e verdadeira. Analogamente, a sentenca \alguns programas que terminam funcionam", o que em logica e 9x:(programa(x) ^ funciona(x) ^ termina(x)) 94 ^ CAPITULO 5. LOGICA DE PREDICADOS: LINGUAGEM E SEMANTICA e verdadeira se pelo menos uma das sentencas obtidas substituindo x por t for verdadeira. N~ao e o caso de tentar valores de t que tornem programa(t) falsa pois eles n~ao tornam a sentenca verdadeira. Isto e sugerido pela vers~ao do quanticador tipado 9x : programa:(funciona(x) ^ termina(x)) Podem aparecer diculdades como no exemplo: \Todo inteiro e menor que algum numero natural", o qual em logica se torna 8x : inteiro:9u : natural:x < u Agora existe uma innidade de sentencas para considerar, uma para cada inteiro. Como podemos checar todas? claro que n~ao podemos checar todas individualmente. Em vez disso poderemos considerar diferentes casos. Por exemplo, podemos ter dois casos. x < 0 ou x 0. Assim, todos os inteiros negativos s~ao considerados de uma vez, assim como todos os naturais. No primeiro caso a sentenca e verdadeira tomando u = 0, pois 0 e um numero natural e maior do que qualquer inteiro negativo. No segundo caso, x + 1 e um numero natural que pode ser u. A s vezes temos de usar uma prova para justicar a verdade de uma sentenca, como veremos mais adiante. 5.3 Quanticadores como Conjunc~oes e Disjunc~oes Innitas Agora, dado N , o conjunto dos numeros naturais, seja P (x) a assertiva \o numero natural x tem a propriedade P ". Essa propriedade pode ser, por exemplo, \x > 0". Desse modo, as proposic~oes P (0), P (1), P (2) e P (3) estabelecem que os numeros 0 1 2 e 3 tem a propriedade descrita por P . No exemplo \x > 0", as proposico~es P (1), P (2) e P (3) s~ao verdadeiras, enquanto P (0) e falsa. Elas tem a forma, respectivamente, 0 > 0, 1 > 0, 2 > 0 e 3 > 0. Se quisermos estabelecer numa unica proposic~ao que 1 > 0, 2 > 0 e 3 > 0 tem a propriedade P , devemos combinar essas tr^es proposic~oes com a conjunc~ao: P (1) e P (2) e P (3). Usando esse procedimento, para estabelecer que \todo numero natural tem a propriedade P ", teramos de escrever a conjunc~ao innita P (0) e P (1) e P (2) e P (3) e Como n~ao e possvel representar uma conjunc~ao innita temos de apelar para uma representac~ao nita. A sada e usar a proposic~ao \para todo x P (x)" ou simbolicamente \8x:P (x)". A frase \para todo x " e chamado quanticador universal ligado a variavel x. Assim, 5.4. LINGUAGEM DE 1A ORDEM 95 8x:P (x) P (0) e P (1) e P (2) e P (3) e Um argumento analogo nos leva a conclus~ao que o quanticador existencial, isto e, a frase \existe um x " e uma disjunca~o innita. De fato, suponha que quisessemos expressar a proposic~ao \existe um numero natural menor do que 5 que tem a propriedade P ". Um modo de fazer isso e escrever \P (0) ou P (1) ou P (2) ou P (3) ou P (4)". De modo similar se quissermos expressar que \existe um numero natural com a propriedade P ", teramos de apelar para a disjunc~ao innita, P (0) ou P (1) ou P (2) ou P (3) ou Portanto, 9x:P (x) P (0) ou P (1) ou P (2) ou P (3) ou Considere o -domnio hD f1 f2 fn R1 Rm i. Como age fi sobre D? Vejamos o exemplo N = hN + i. A func~ao binaria + : N N ;! N recebe o par (3 5), por exemplo, e retorna 8 2 N , (3 5) 7! 8. Ou seja, se fi e uma func~ao n-aria em D, o efeito de fi e associar n individuos de D a um indivduo de D. Podemos, ent~ao, dizer que a ac~ao de fi sobre D n~ao altera o ambiente \D", isto e , o resultado da ac~ao de fi sobre D esta em D. A relac~ao binaria \" do domnio acima, associa (3 5), por exemplo, a \3 5". Entretanto, \3 5" e uma propriedade de indivduos de D, e como tal e verdadeira ou falsa. Essa propriedade arma que \3 e menor ou igual que 5", que acontece ser verdadeira. Assim, uma relac~ao n-aria sobre D e uma func~ao que associa n-indivduos de D a um dos valores verdade, verdadeiro ou falso. Isto e, Ri : Dn ;! f0 1g. Portanto, a ac~ao de uma relac~ao sobre D altera o ambiente de D, pois o resultado n~ao e mais um individuo de D. 5.4 Linguagem de 1a Ordem A linguagem de 1a ordem e mais complicada porque expressamos ideias mais complicadas. Queremos ser capazes de considerar a verdade ou falsidade de sentencas compostas construdas a partir de sentencas at^omicas que podem, as vezes, ser verdadeiras e as vezes falsas sob uma unica interpretac~ao. Por exemplo, a sentenca \se x e par ent~ao x + 1 e impar", ou traduzido para a logica 8x:(par(x) ! impar(x + 1)), e uma implicac~ao das sentencas at^omicas \par(x)" e \impar(x + 1)". Essa sentenca e verdadeira no conjunto 96 ^ CAPITULO 5. LOGICA DE PREDICADOS: LINGUAGEM E SEMANTICA dos inteiros, mas como ja vimos anteriormente n~ao podemos dizer que \x e par" e verdadeiro, ou que e falsa. Ela depende do valor de x. Portanto, estamos acrescentando a nossa linguagem uma habilidade para fazer asserc~oes parametricas. Essas asserc~oes s~ao at^omicas, mas em vez de ser simplesmente verdadeiras ou falsas (como acontecia com proposic~oes), elas estabelecem que alguma relac~ao se da entre seus argumentos. Essas relac~oes s~ao expressas com predicados. aplicados a argumentos. Isso nos leva a considerar teorias de 1a ordem. Teorias de 1a ordem se distinguem de teorias de ordem mais baixas (tais como a teoria da logica proposicional) no fato de que os argumentos de predicados s~ao termos construdos de constantes, variaveis e aplicac~oes de func~oes. Somente s~ao permitidos quanticadores sobre variaveis. Em teoria de ordens mais altas, func~oes e predicados podem tomar func~oes e predicados como argumentos. Podemos tambem fazer assertivas sobre todas as func~oes e predicados quanticando sobre smbolos de func~ao e de predicados. As linguagens de 1a ordem ou linguagens de predicados s~ao extens~oes das linguagens proposicionais. Na linguagem proposicional o alfabeto n~ao contem variaveis. Os unicos smbolos de funco~es que aparecem s~ao os smbolos logicos f: _ ^ ! $g. Por isso uma interpretac~ao para essa linguagem e uma algebra de Boole. Nas linguagens de 1a ordem o alfabeto alem de conter variaveis, smbolos de func~ao, e operadores logicos, contem, tambem, smbolos de predicados. Por isso as -estruturas correspondentes (-domnios), podem ser estruturas com relaco~es que n~ao a igualdade, como por exemplo, relac~ao de ordem. A logica correspondente a linguagem de predicado, e uma extens~ao da logica proposicional, e conhecida como logica de predicados ou logica de 1a ordem. Um tpico alfabeto de 1a ordem, , tem a seguinte constituic~ao: = X C F R L P onde 1. X = fx y z x1 x2 : : : y1 y2 : : : z1 z2 : : : g e um conjunto contavel de variaveis 2. C = fa b c a1 a2 : : : b1 b2 : : : c1 c2 : : : g e um conjunto contavel de smbolos constantes 3. F = ff1 f2 : : : g e um conjunto de smbolos de funco~es n~ao logicas 4. R = fR1 R2 : : : g e um conjunto de smbolos de relac~ao ou predicado 5. L = f: _ ^ ! $ 8 9g e o conjunto de smbolos logicos 6. P = f( ) : g e o conjunto de smbolos de pontuac~ao. Embora toda constante pode ser vista como um func~ao sem argumentos, por quest~oes didaticas decidimos separar os smbolos de func~ao que representam funco~es com pelo menos um argumento dos que representam constantes. 5.4. LINGUAGEM DE 1A ORDEM 97 L e xo em todas as linguagens de 1a ordem, o que varia e caracteriza a linguagem, como veremos nos exemplos mais adiante, e d = C F R . O alfabeto d junto com uma funca~o arid : d ;! N que indica a aridade dos smbolos de func~ao (incluindo constantes que t^em por denic~ao aridade zero) e de predicados e uma assinatura relacional, pois consiste de smbolos funcionais e smbolos relacionais, cuja interpretac~ao em vez de ser uma -algebra de Boole e um d -domnio. Deniremos, agora, as linguagens de 1a ordem. Mas, como na linguagem de predicados, existem duas entidades de natureza diferente (os termos e as formulas, propriamente ditas), a linguagem de primeira ordem ou de predicados para o alfabeto de primeira ordem sera construda em duas fases. Na primeira construimos uma linguagem para os termos sobre os quais se vai predicar, chamamos esta linguagem de linguagem dos termos de primeira ordem. Depois usando estes termos como parte do alfabeto, construmos a linguagem de primeira ordem ou linguagem de predicados, onde seus termos s~ao predicados sobre termos de primeira ordem. Assim, n~ao devemos confundir os termos de primeira ordem com os termos da linguagem de primeira ordem. No primeiro caso estamos nos referindo aos termos que denot~ao objetos de algum universo (jo~ao, cadeira, gato, 5, , etc.). ja no segundo estamos nos referindo a formulas bem formadas da linguagem, isto e, formulas que denotam alguma armaca~o sobre objetos de algum universo (\Jo~ao e alto", \todos os corvos s~ao pretos", etc.) Deni c~ao 5.4.1 Seja = X d L P um alfabeto de primeira ordem e arid : d ;! uma func~ao que indica a aridade dos smbolos de func~ao e de predicado. A linguagem dos termos de primeira ordem e a linguagem gerada pela linguagem formal LT = hX C F f( ) g G T i onde G T = fT1 T2 T3 g com: T1 : ; x x2X T2 : ;a a 2 C T3 : f (tt1 ::::::ttn ) arid(f ) = n. N n 1 A linguagem de primeira ordem e gerada pela linguagem formal de primeira ordem LP = h Gi onde 1. = Ling (LT ) R L P 2. G = fF1 : : : F8 g onde F1 : R(t1t : :: :: : tnt ) arid(R) = n e tj 2 Ling (LT ) para todo 1 j n 1 F2 : : F3 : (^ ) F4 : (_ ) n 98 ^ CAPITULO 5. LOGICA DE PREDICADOS: LINGUAGEM E SEMANTICA F5 : (! ) F6 : ($ ) x2X F7 : 9x: F8 : 8x: x2X observa c~oes: 1. LP = Ling(LP ). 2. e s~ao metavariaveis, isto e podem ser substitudas, nas regras, por qualquer formula em LP . 3. As formulas geradas por F1 s~ao chamadas de formulas at^omicas, pois elas n~ao contem nenhum operador logico. 4. O conjunto LP e chamado de conjunto das formulas bem formadas (fbf), ou simplesmente formulas de LP . 5. De aqui em diante chamaremos de linguagem formal de 1a ordem as linguagens formais que especicam uma linguagem de 1a ordem. Se n~ao houver confus~ao as vezes omitiremos o termo \formal" em linguagens formais de 1a ordem. Embora tendo colocado \9" e \8" entre os operadores logicos, n~ao e esse exatamente o caso. Eles constituem excess~oes em relac~ao a esses operadores. De certo modo, como ja vimos na introduc~ao deste captulo, esses dois operadores caracterizam a diferenca entre linguagem proposicional e uma linguagem de predicados. No que segue analizaremos, com um pouco mais de profundidade, esses dois quanticadores. Consideremos, sobre N , a seguinte relac~ao ternaria R(x y z) = f(x y z) 2 N 3 = x+y = zg, a qual indicamos por \x + y = z". Nesta relaca~o x y e z s~ao \variaveis livres". Isto e, n~ao est~ao ligados por nenhum quanticador. Podemos dizer, tambem, que elas s~ao livres de assumir quaisquer valores naturais, da o nome relac~ao ternaria. Apliquemos o \operador" \9y" a relac~ao \x + y = z". O resultado sera a relaca~o R1 9y:(x + y = z). Nesta relac~ao y n~ao e mais livre, ele esta ligado ao operador 9y. As variaveis x e z continuam livres em R1 . E facil ver que R1 e a relac~ao x z sobre N . Em outras palavras, o efeito do operador 9y foi transformar a relac~ao ternaria R \x + y = z00 na relac~ao binaria R1 \x z00. Apliquemos, agora, o operador \8z", sobre a relac~ao R1 . O resultado e a relac~ao unaria R2 8z:9y:(x + y = z), ou simplesmente, R2 8z:(x z). Aqui z n~ao e mais livre, mas ligada ao quanticador 8. x continua livre. A relaca~o R2 8z:x z e um subconjunto de N , mais precisamente o subconjunto f0g, que por denica~o e uma relaca~o unaria sobre 5.4. LINGUAGEM DE 1A ORDEM 99 Finalmente, apliquemos o operador \9x" a relaca~o R2 . O resultado 9x:8z:(x z) e uma \propriedade" dos elementos de N , qual seja \existe um natural menor que todos os outros", que acontece ser verdadeira. Observe que 9x:8z:(x z) n~ao possui mais variaveis livres, ela e uma asserc~ao ou proposica~o sobre numeros naturais e portanto e verdadeira ou falsa. Podemos tirar varias conclus~oes relativas a analise das quanticac~oes aplicadas sobre as relac~oes acima. Primeiro, uma relaca~o sem variaveis livres e uma proposica~o sobre os indivduos do universo de discurso. No caso acima o universo de discurso e o conjunto dos numeros naturais. Segundo, os quanticadores \8" e \9" quando quanticados por variaveis s~ao transformadores de relaco~es. Essas transformac~oes s~ao efetuadas do seguinte modo. Se R(x1 xn) e uma relac~ao n-aria, ou seja, uma relac~ao com n variaveis livres, a quanticac~ao \8xi " ou \9xi" tem como efeito transformar a relac~ao n-aria R(x1 xn ) na relac~ao (n ; 1)-aria R1 (x1 xi;1 xi+1 xn), onde agora xi n~ao e mais livre, mas ligada ao quanticador correspondente. No caso particular de R(x) ser uma relac~ao unaria o operador \9x" ou \8x" transforma R(x) na proposic~ao \9x:R(x)" ou \8x:R(x)", cuja denotac~ao e verdadeiro ou falsa. Observe que se x n~ao e livre em R, os operadores 8x e 9x n~ao produzem nenhum efeito sobre R. Em outras palavras, os operadores \8" e \9", n~ao atuam sobre proposic~oes, mas sobre formulas abertas (formulas com alguma variavel livre, a qual sera chamada, simplesmente, de formula). Portanto, uma proposic~ao pode ser vista como uma formula sem variaveis livres, conhecida, tambem, como uma formula fechada. Uma sentenca ou proposica~o pode ser denida como uma formulas sem variaveis livres. Se as variaveis x1 : : : xn s~ao livres na formula indicaremos isso por (x1 xn). Embora de ja termos apelado para a intuica~o para entender o conceito de variavel livre e ligada, devido a import^ancia desses conceitos daremos uma denica~o precisa. Porem, primeiro estudaremos isoladamente cada ocorr^encia de uma variavel numa formula, e determinaremos se essa ocorr^encia em particular e livre ou ligada. N. Deni c~ao 5.4.2 Uma ocorr^encia de uma variavel x numa fbf e ligada se a ocorr^encia de x e a variavel de uma quanticac~ao ou se esta dentro do escopo de uma quanticac~ao cuja variavel que esta sendo quanticada e x. De outro modo a ocorr^encia da variavel e dita livre na fbf. Cada ocorr^encia de uma variavel ou e livre ou ligada, nunca ambas. Exemplo 5.4.3 A formula 8x:(P (x f (a y))^9y:P (y x))_:9y:P (x y) tem quatro ocorr^encias da variavel x e cinco da variavel y. A seguir veremos quais dessas ocorr^encias s~ao livres e quais ligadas: 8 |{z} x :(P (|{z} x f (a |{z} y )) ^ 9 |{z} y :P (|{z} y |{z} x )) _ :9 |{z} y :P (|{z} x |{z} y ) 1 2 3 4 5 6 7 8 9 100 ^ CAPITULO 5. LOGICA DE PREDICADOS: LINGUAGEM E SEMANTICA 1. esta ocorr^encia da variavel x e ligada, pois e a variavel de uma quanticac~ao. 2. esta ocorr^encia da variavel x e ligada, pois esta dentro do escopo de uma quanticaca~o 1. cuja variavel que esta sendo quanticada e x. 3. esta ocorr^encia da variavel y e livre, pois n~ao e a variavel de uma quanticac~ao e embora esteja dentro do escopo de uma quanticac~ao 1., a variavel que esta sendo quanticada n~ao e y. 4. esta ocorr^encia da variavel y e ligada, pois e a variavel de uma quanticac~ao. 5. esta ocorr^encia da variavel y e ligada, pois esta dentro do escopo de duas quanticaco~es (1. e 4.) e, no caso da quanticac~ao 2., a variavel que esta sendo quanticada e y . 6. esta ocorr^encia da variavel x e ligada, pois esta dentro do escopo de duas quanticaco~es (1. e 4.) e, no caso da quanticac~ao 1., a variavel que esta sendo quanticada e x. 7. esta ocorr^encia da variavel y e ligada, pois e a variavel de uma quanticac~ao. 8. esta ocorr^encia da variavel x e livre, pois n~ao e a variavel de uma quanticac~ao e embora esteja dentro do escopo de uma quanticac~ao 7., a variavel que esta sendo quanticada n~ao e x. 9. esta ocorr^encia da variavel y e ligada, pois esta dentro do escopo de uma quanticac~ao 7. cuja variavel que esta sendo quanticada e y . Deni c~ao 5.4.4 x e uma variavel livre numa formula se existe em uma ocorr^encia livre de x. Analogamente, x e uma variavel ligada numa formula se existe em uma ocorr^encia ligada da variavel x. No caso do exemplo anterior, tanto x como y t^em ocorr^encias livres e ligadas na formula 8x:(P (x f (a y )) ^ 9y:P (y x)) _ :9y:P (x y ), e portanto dizemos que essas variaveis s~ao livres e ligadas ao mesmo tempo nessa formula. Assim, numa formula , qualquer, uma variavel pode ser livre e ligada ao mesmo tempo. Observe que o conceito de variavel ligada e um conceito relativo a uma quanticaca~o, pois uma variavel x e ligada a uma formula se, e somente se, na formula existe uma quanticac~ao 8x ou 9x. Se x e uma variavel livre numa formula , o nome x nas ocorr^encias livres da variavel n~ao e importante. Em outras palavras, podemos troca-la na formula por uma nova variavel, sem alterar o signicado da formula. Por exemplo, seja a formula def = 9y:x +1 = y ^ 8x:9y:x < y. Trocando as ocorr^encias livres da variavel x por z em , indicado por z=x], a formula resultante z=x] def = 9y:z + 1 = y ^ 8x:9y:x < y n~ao alterou seu signicado. Observe que x n~ao poderia ser trocado por y em , sem alterar seu signicado pois a express~ao y=x] def = 9y:y +1 = y ^8x:9y:x < y e falsa no domnio N = hN + < =i dos 5.4. LINGUAGEM DE 1A ORDEM 101 numeros naturais, enquanto na express~ao original, por ser uma formula n~ao fechada (com variaveis livres), o seu valor verdade depende de uma interpretac~ao (e contingente). Ou seja, y=x] e fechada, e portanto, so pode tomar um valor verdade numa interpretaca~o. Isto ocorreu porque quando subtituimos as ocorr^encias livres de x por y, essas novas ocorr^encias da variavel y tornaram-se ligada pela quanticac~ao 9y. Neste caso dizemos que x n~ao e subtituvel por y ou o termo t def = y n~ao e livre para x. Podemos generalizar esta ideia e trocar todas as ocorr^encias livres de uma variavel por algum termo, o qual quando substitudo n~ao ligue nenhuma das variaveis que comp~oem o termo. Deni c~ao 5.4.5 Seja uma fbf e t um termo. O termo t e dito livre para x em se todas as ocorr^encias livre de x em n~ao est~ao dentro do escopo de qualquer quanticac~ao 8y ou 9y onde y e uma variavel em t. A substituic~ao de todas as ocorr^encias livres de x pelo termo t em , e denotado por t=x]. Exemplo 5.4.6 1. O termo y e livre para x em R(x), mas n~ao e livre para x em 8y:R(x). 2. O termo x e livre para y em R(z ) e em 8y:R(y ). 3. f (g(a y)) e livre para x y z em 8x:R(f (x) y z ) ! :R(z x f (y)), mas ele e livre para y , mas n~ao para x e z em 8z:R(x y z) ^ 8y:S (f (x) z y ) ^ P (z ). 4. Qualquer termo t que n~ao contem variaveis e livre para qualquer variavel em qualquer formula. Isto e, g(f (a) c) e livre para qualquer variavel em qualquer formula. 5. Um termo t e livre para qualquer variavel em se nenhuma das variaveis em t e ligada em . Por exemplo, h(a f (g (b y ))) e livre para qualquer variavel nas formulas (a) R(x y ) ! 8x:S (x) (b) 8x:R(f (x) y z ) ! :R(z x f (y)) (c) 8z:R(x y z ) ^ 8x:S (f (x) z y ) ^ P (z )). 6. Qualquer variavel e livre para ela propria em qualquer formula. 7. Se a variavel x n~ao e livre em , ent~ao qualquer termo t e livre para x em . Por exemplo, f (x y) e livre para z em 8x:P (x y ). Observe que se x n~ao ocorre em , ent~ao ela n~ao e livre em . Logo, se x n~ao ocorre em , ent~ao qualquer termo t e livre para x em . 102 ^ CAPITULO 5. LOGICA DE PREDICADOS: LINGUAGEM E SEMANTICA 5.5 Verdade Na linguagem proposicional toda proposic~ao era composta de proposic~oes at^omicas, usando os conectivos logicos :, ^, _, ! e $. Para fornecer uma interpretac~ao para uma proposic~ao, tudo que precisavamos saber era se as proposic~oes at^omicas eram verdadeiras ou falsas. Podamos listar todas as possveis interpretac~oes usando a tabela verdade. Agora a situac~ao e mais complexa. Podemos expressar relaco~es que s~ao verdadeiras para certos indivduos e n~ao para outros, em vez de simplesmente estabelecer que e verdadeira ou falsa. Para determinar a veracidade ou falsidade de uma formula em uma interpretac~ao precisamos saber que valores as variaveis podem tomar, que elementos as constantes interpretam, e que func~oes e relac~oes iram representar os smbolos de func~ao e de relaca~o, respectivamente. Deni c~ao 5.5.1 Sejam = X d L P um alfabeto de 1a ordem e LP a linguagem de 1a ordem associada a este alfabeto. Uma interpreta c~ao para LP e um d -domnio. Ou seja, uma interpretac~ao para LP e uma estrutura matematica, onde as variaveis e constantes de tomam valores e onde s~ao interpretados os smbolos de func~oes e relac~oes. Exemplo 5.5.2 Considere o alfabeto de 1a ordem = fx y f R1 R2 : ^ _ ! $ 9 8 ( )g onde arid(f ) = 1, arid(R1 ) = 2 e arid(R2 ) = 1. Observe que d = ff R1 R2 g. Seja LP a linguagem de 1a ordem adjacente a este alfabeto e Z o conjunto dos numeros inteiros. O d -domnio hZ fZ R1Z R2Zi, onde fZ : Z ;! Z tal que fZ(x) = x + 1, R1Z(x y) \x = y" e R2Z(x) \x > 1" e uma interpretac~ao de LP . Uma outra interpretac~ao pode ser dada pelo d -domnio hZ f Z R1Z R2Zi, onde f Z : Z ;! Z tal que f Z(x) = x x, R1Z(x y) \x y = 0" e R2Z(x) \x = 0". Seja LP uma linguagem de 1a ordem, D = hD dD i uma interpretaca~o para LP e : X ;! D uma atribuic~ao de valores para as variaveis na interpretac~ao D. Analogamente, como na denic~ao da linguagem de predicado, para determinar o valor verdade que toma qualquer formula em Ling(LP ) quando interpretada em D e as variaveis tomando os valores atribuidos por , devemos fazer-lo por parte. Assim, primeiro determinamos os valores que tomam os termos de primeira ordem e depois interpretamos as formulas. O valor que tomam os termos de primeira ordem est~ao em estreita relac~ao com os valores atribudos as variaveis, e portanto, cada atribuicao : X ;! D determina uma func~ao de valorac~ao V : Ling(LT ) ;! D, a qual e denida recursivamente como segue V(x) = (x) para cada x 2 X V(a) = aD para cada a 2 C V(f (t1 : : : tn)) = fD (V(t1 ) : : : V(tn)) para cada f 2 F tal que arid(f ) = n. 5.5. VERDADE 103 Exemplo 5.5.3 Seja a linguagem de 1a ordem do exemplo 5.5.2 e a primeira interpretac~ao dada nesse mesmo exemplo. Uma valorac~ao para os termos f (x) e f (f (y )), na atribuic~ao : X ;! Z tal que (x) = 5 e (y) = 7 e V(f (x)) = fZ(v(x)) = fZ((x)) = fZ(5) =5+1 =6 V(f (f (y))) = fZ(V(f (y))) = fZ(fZ(V(y))) = fZ(fZ((y))) = fZ(fZ(7)) = fZ(7 + 1) = fZ(8) =8+1 =9 Agora podemos extender esta valoraca~o para formulas qualquer na linguagem. Deni c~ao 5.5.4 Seja = X d L P um alfabeto de 1a ordem, arid : d ;! N uma func~ao de aridade e LP a linguagem de 1a ordem adjacente a este alfabeto. Uma valorac~ao verdade das formulas em LP numa interpretac~ao D, com respecto a uma atribuic~ao : X ;! D, e uma func~ao V : LP ;! f0 1g denida por V (P (t1 : : : tn )) = PD (V (t1 ) : : : V (tn )) para cada P 2 R com arid(P ) = n e t1 : : : tn 2 Ling(LT ). V (:) = V () V ( ^ ) = V () V ( ) V ( ^ ) = V () V ( ) V ( _ ) = V () + V ( ) V ( ! ) = V () ) V ( ) V ( $ ) = V () , V ( ) 8 < 1 , se para toda atribuic~ao 0 : X ;! D tal que V (8x:) = : 0 (y ) = (y ) sempre que y 6= x, V0 () = 1 0 , sen~ao 8 < 1 , se para alguma atribuic~ao 0 : X ;! D tal que V (9x:) = : 0 (y ) = (y ) sempre que y 6= x, V0 () = 1 0 , sen~ao onde as operaco~es , +, , ) e , s~ao as mesmas denidas para algebras de Boole. 104 ^ CAPITULO 5. LOGICA DE PREDICADOS: LINGUAGEM E SEMANTICA Exemplo 5.5.5 Considere as seguintes formulas na linguagem de primeira ordem: 1. 1 def = P (x y) ! R(x c) 2. 2 def = 8x:(R(x c) ! R(f (x) c)) 3. 3 ) def = 8x:9y:(P (x y) ! 9y:8x:(P (x y))) Uma interpretac~ao para estas formulas pode ser a seguinte: Conjunto base: N o conjunto dos numeros naturais Interpretaca~o de f : fN : N ;! N denida por f (n) = 2n. Interpretaca~o de c: cN : N 0 ;! N , ou seja cN e uma constante em N , denida por cN = 2. Interpretaca~o de P : PN N N denido por PN = f(n m) 2 N N = n e m t^em a mesma paridadeg. Observe que PN (n m) denota que (n m) 2 PN . Interpretaca~o de R: RN N N denido por RN = f(n m) 2 N N = n mg. Observe que RN (n m) denota que (n m) 2 RN . Uma atribuic~ao de valores para as variaveis da linguagem de primeira ordem nesta interpretac~ao e uma funca~o : X ;! N tal que (x) = 5 e (y) = 7. Nesta interpretac~ao e para esta atribuic~ao de valores verdade temos que: 1 : V (P (x y ) ! R(x c)) = V (P (x y )) ) V (R(x c)) = PN (V(x) V(y)) ) RN (V(x) V(c)) = PN ((x) (y)) ) RN ((x) cN ) = PN (5 7) ) RN (5 2) =1)1 =1 2 : V (8x:(R(x c) ! R(f (x) c))) = V0 (R(x c) ! R(f (x) c)) = V0 (R(x c)) ) V0 (R(f (x) c)) = RN (V0 (x) V0 (c)) ) RN (V0 (f (x)) V0 (c)) = RN (0 (x) cN ) ) RN (fN (V0 (x)) cN ) = RN (0 (x) 2) ) RN (fN (0 (x)) 2) = RN (0 (x) 2) ) RN (20(x) 2) Quando 0 (x) < 2 ent~ao RN (0 (x) 2) sera falso, e portanto RN (0(x) 2) ) RN (20 (x) 2) sera verdadeiro. Se 0 (x) 2 ent~ao 20 (x) 2, e portanto RN (0(x) 2) e RN (20 (x) 2) ser~ao verdadeiros. Logo, RN (0 (x) 2) ) RN (20 (x) 2) sera verdadeiro. 5.5. VERDADE 105 Assim, como para V (8x:(R(x c) ! R(f (x) c))) ser verdadeiro, V0 (R(x c) ! R(f (x) c)) deve ser verdadeiro para toda atribuic~ao 0 : X ;! N que se diferencie de , eventualmente, no valor atribudo a x, podemos concluir que V (8x:(R(x c) ! R(f (x) c))) e verdadeiro. 3 : O uso de quanticadores torna mais dicil a demonstrac~ao de que uma formula e verdadeira ou falsa, pois devemos considerar uma quantidade innita (pois o conjunto base e innito) de func~oes de valorac~ao. Como 3 tem tr^es quanticadores, vericar que ela e verdadeira, sera dicil usando o metodo anterior. Assim, neste caso, apelaremos intuic~ao e conhecimento matematicos sobre o conjunto dos numeros naturais. Primeiro, \traduziremos" a formula 3 nesta interpretac~ao: 8x 2 N :9y 2 N :(paridade(x) = paridade(y ) ! 9y 2 N :8x 2 N :paridade(x) = paridade(y )) o qual informalmente seria \para todo numero natural existe um numero natural tal que, se eles t^em a mesma paridade ent~ao existe um numero natural tal que para todo numero natural eles t^em a mesma paridade". o qual e verdadeiro, pois uma formula do tipo 8x:9y ( ! ) e verdadeira quando 8x:9y: for falsa. Neste caso em particular temos que, para cada x existe um y que n~ao t^em a mesma paridade. Por exemplo, para x = 3 existe y = 4, talque \se 3 e 4 t^em a mesma paridade ent~ao ....", como 3 e 4 t^em paridade diferente, ent~ao esta armac~ao e verdadeira. Claramente para qualquer x podemos encontrar um tal y, que faca que a sentenca \se x e y t^em a mesma paridade ent~ao ..." seja verdadeira. Deni c~ao 5.5.6 Quando existe uma interpretac~ao D e uma atribuic~ao para as variaveis livres de uma formula tal que V () = 1, dizemos que a formula e satisfativel. Neste caso, a interpretac~ao D satisfaz para a atribuic~ao , e denotamos esto por D j= . A seguinte proposic~ao permite vericar se uma determinada interpretaca~o satisfaz uma formula para uma atribuic~ao de modo recursivo, porem sem apelar diretamente a func~ao V . Proposi c~ao 5.5.7 Sejam LP uma linguagem de 1a ordem, D = hD D i uma interpretaca~o para LP e :;! D uma atribuic~ao. 1. D j= e uma proposic~ao verdadeira, onde R(t1 : : : tn ), se RD (V (t1 ) : : : V (tn )) RD e a interpretac~ao do smbolo de predicado R em D. 2. D j= : se e somente se n~ao e o caso D j= , ou noutras palavras, e falsa em D, para . 106 ^ CAPITULO 5. LOGICA DE PREDICADOS: LINGUAGEM E SEMANTICA 3. D j= ^ se e somente se D j= e D j= . 4. D j= _ se e somente se D j= ou D j= . 5. D j= ! se e somente se, se D j= ent~ao D j= . 6. D j= $ se e somente se (D j= se e somente se D j= ). 7. D j= 8x: se e somente se para qualquer atribuic~ao 0 que difere, eventualmente, de na atribuic~ao de x, D j=0 . 8. D j= 9x: se e somente se para alguma atribuic~ao 0 que difere de , eventualmente, na atribuica~o de x, D j=0 . Demonstraca~o: Direto da denica~o de D j= . Deni c~ao 5.5.8 Quando D j= dizemos que o par hD i e um modelo para . Um modelo para um conjunto de formulas, ;, e um par hD i que e modelo para cada 2 ;. Observe que so podemos caracterizar um modelo por um par hD i, pois pode muito bem acontecer que hD i seja um modelo para uma formula e para uma outra atribuic~ao 0 , hD 0i n~ao ser. Por exemplo, considere a linguagem de 1a ordem com interpretac~ao N = hN <i. Considere uma atribuic~ao (xi ) = i. Ent~ao a formula xi < xi+1 e verdadeira em N para essa atribuic~ao, isto e, N j= xi < xi+1 , pois em N , i < i + 1 para i = 0 1 . No entanto para a atribuic~ao 0 tal que 0 (xi) = 1 para todo i, N 6j=0 xi < xi+1 , ou seja, hN 0i n~ao e um modelo de xi < xi+1 . Deni c~ao 5.5.9 Uma fbf e dita satisfatvel se ela tem modelo, isto e se D j= para algum modelo hD i. Caso contrario, e insatisfatvel. Uma fbf e verdadeira numa dada interpreta c~ao D, denotado por D j= , se para qualquer atribuic~ao , D j= . Uma fbf e falsa numa dada interpreta c~ao D, se para qualquer atribuica~o , n~ao e o caso que D j= . Uma formula e valida ou universalmente valida se ela e verdadeira para toda interpretac~ao. Deni c~ao 5.5.10 Seja L = h Gi uma linguagem de 1a ordem e ; um conjunto de formulas em Ling (L). Dizemos que e uma consequ^encia logica ou consequ^encia sem^antica de ;, cuja notac~ao e, ; j= , se todo modelo de ; e um modelo de . 5.5. VERDADE 107 Observa c~oes: 1. Quando uma formula e consequ^encia logica do vazio, isto e j= ou simplesmente j= , ent~ao e universalmente valida. 2. Teorema da dedu c~ao Se ; j= ent~ao ; j= ! 3. Teorema da Compacidade Se ; j= , ent~ao existe um subconjunto nito ;0 = f1 n g ; tal que ;0 j= . 4. Se uma formula e insatisfatvel (ou contraditoria), ent~ao j= :. 5. Se ; j= e & j= ! , ent~ao ; & j= Os seguintes exemplos simples esclarecer~ao as diferencas entre cada uma desses conceitos. Exemplo 5.5.11 Seja a seguinte interpretac~ao Z ou -domnio: Conjunto base: o conjunto dos numeros inteiros Z Interpretaca~o do smbolo de func~ao f : fZ : Z ;! Z denida por fZ(n) = n + 1. Interpretac~ao do smbolo de func~ao (constante) c: cZ = 0 Interpretac~ao do smbolo de predicado P : PZ ZZ denido por PZ = f(x y ) = x yg. Assim, PZ(n m) se, e somente se, n m. 1. a formula P (x c) e satisfatvel, pois a atribuic~ao (x) = 1 torna ela verdadeira, isto e Z j= P (x c). 2. a formula P (x f (x)) e falsa na interpretac~ao Z , pois independente do valor que venha tomar x, nunca x x + 1. 3. a formula P (f (x) x) e verdadeira na interpretac~ao Z , isto e Z j= P (f (x) x), pois independente do valor que venha ser atribuido a x, sempre sera verdeiro que x +1 x. 4. P (x c) 6j= 8x:P (x c), pois P (x c) e verdadeira na interpretac~ao Z e para a atribuica~o (x) = 3 (pois 3 0) mas hZ i n~ao e um modelo de 8x:P (x c). 5. a formula P (x c) ! 8x:P (x c) e contingente na interpretac~ao Z , pois na atribuic~ao (x) = 3 o antecedente da implicac~ao e verdadeiro e o consequente e falso, e portanto a formula como um todo e falsa e na atribuic~ao (x) = ;3 o antecedente da implicaca~o e falso e portanto a formula como um todo e verdadeira. 108 ^ CAPITULO 5. LOGICA DE PREDICADOS: LINGUAGEM E SEMANTICA Exemplo 5.5.12 A seguir veremos exemplos de conceitos que envolvem todas as interpretac~oes possveis. 1. A formula 8x:P (x) ! 9x:P (x) e universalmente valida. Pois em qualquer interpretac~ao D se D j= 8x:P (x), signica que para qualquer atribuic~ao , D j= P (x), logo pelo menos para um , D j= P (x), e portanto D j= 9x:P (x). Informalmente a formula 8x:P (x) ! 9x:P (x) declara que se uma propriedade e satisfeita por todo objeto numa interpretac~ao, ent~ao essa propriedade e satisfeita por pelo menos um objeto na interpretaca~o. 2. A formula P (x) ^ :P (x) e uma contradic~ao , pois independente de como interpretemos P e do valor tomado por x, nunca poderemos ter que esse valor satisfaz e n~ao satisfaz ao mesmo temo a propriedade P . 3. Qualquer formula e consequ^encia logica da formula 8x:, isto e 8x: j= , pois se o par hD i e um modelo de 8x:, ent~ao como a variavel x n~ao e livre, o valor atribuido por a x e irrelevante. Portanto, sera verdeira para essa interpretac~ao e qualquer um dos 0 s que seja igual a exceto, eventualmente, no valor atribuido a x. Logo, o par hD i e um modelo para . Deni c~ao 5.5.13 Seja LP uma linguagem de 1a ordem. A logica de predicados classica ou logica de 1a ordem associada a LP , denotada por LogLPP 1, e o subconjunto de todas as formulas universalmente validas de LP . Isto e, LogP = f 2 LP = j= g: E claro que em todas as tautologia de LP , se substituirmos as variaveis proposicionais por formulas de LP obteremos sempre uma formula universalmente valida. Chamamos estas formulas de 1a ordem que podem ser obtidas a partir de uma tautologia de formulas tautologicas ou inst^ancias de uma tautologia. No entanto, a reciproca e falsa, isto e, existem, como veremos mais adiante, formulas universalmente validas que n~ao s~ao tautologicas. Assim, o conceito de formula valida e uma extens~ao do conceito de tautologia em logica proposicional, e portanto, podemos dizer que a logica de predicados associada a uma linguagem de 1a ordem LP contem propriamente a logica proposicional. Como os analogos teorema da deduca~o e o teorema da compacidade valem tambem para a logica de predicados, ent~ao, analogamente a logica proposicional, a logica de predicados LogP pode ser vista como um \aparato dedutivo", ou seja um ambiente onde possamos realizar deduc~oes logicas do tipo: \podemos deduzir a partir das hipoteses ;" que em notac~ao logica seria ; j= . 1 Quando a linguagem LP estiver claro do contexto omitiremos este su xo, isto e, simplesmente usaremos a notac~ao LogP para a logica de predicados classicas sobre LP . 5.5. VERDADE 109 Como podemos demonstrar que 1 : : : n j= ? Mostrando que todos os modelos de 1 : : : n, tambem s~ao modelos de . Isto e impossvel porque devemos analizar innitos modelos. Uma alternativa, talvez, fosse demonstrar que 1 : : : n j= se e somente se j= (1 ! (2 ! : : : n ! )) : : : ). Ou seja que certa formula (no caso (1 ! (2 ! : : : n ! )) : : : )) e universalmente valida. Mas isso e tambem impossvel, pois teramos de mostrar que e verdadeira para todas as interpretaco~es (as quais s~ao innitas) e todas as atribuico~es. Isso signica que e impossvel determinar a logica de predicados atraves de interpretaco~es ou modelos. A unica alternativa e atraves de sistemas formais. A seguir, algumas observac~oes sobre o conceito de universalmente valida as quais s~ao obvias, mas algo dicultosas de demonstrar que s~ao corretas. Observac~oes 1. Seja uma fbf cujas variaveis livres s~ao x1 : : : xn. Ent~ao: (a) e universalmente valida se, e somente se, seu fecho universal 8x1 : : : : :8xn : e universalmente valida. Onde fecho universal de e a fbf obtida de por prexar com quanticadores universais ligando cada variavel livre de . (b) e insatisfatvel se, e somente se, seu fecho existencial 9x1 : : : : :8xn : e insatisfatvel. Onde fecho existencial de e a fbf obtida de por prexar com quanticadores existenciais ligando cada variavel livre de . 2. Se n~ao contem nenhuma ocorr^encia livre de x, ent~ao 8x:( ! ) ! ( ! 8x: ) e universalmente valida. 3. Se t e livre para x em , ent~ao 8x: ! t=x] e universalmente valida. 110 ^ CAPITULO 5. LOGICA DE PREDICADOS: LINGUAGEM E SEMANTICA 5.6 Exerccios 1. Determine se cada uma das variaveis x, y e z s~ao livres, ligadas ou ambas em cada uma das formulas (a) (b) (c) (d) 8x:P (f (x) y z ) ! :P (z x y ) 8z:P (g (z ) a y ) ^ 8y::Q(x y ) 8x:P (x y z ) ^ 8y:(Q(x y ) ^ P (x a z )) 8y:(P (y a z ) ! 8z:(Q(x z ) ^ P (x a z ))) 2. Determine se ou n~ao cada um dos termos: h(x y) e g(a f (y z)) e livre para cada uma das variaveis x y z em cada uma das seguintes formulas: (a) 8z:P (z y a) ^ 8x:Q(g(z x)) (b) 8x:P (f (x z) y) ! :P (f (x a) z) (c) P (f (x z) x) ! 8z::P (f (y a) z) 3. Diga e justique para que variaveis o termo f (b g(y z)) e livre em :(8x:(P (x y ) ! 9y:R(y z )) _ (P (z x) ! 9x1 :P (y x1))) 4. Determine se cada uma das seguintes formulas e verdadeira, falsa ou contingente na interpretac~ao: Domnio: Conjuntos dos numeros inteiros Z Interpretac~ao de P : PZ Z Z onde PZ = f(x y ) 2 Z Z = x y g. Assim, PZ(n m) se, e somente n m. (a) (b) (c) (d) (e) (f) (g) 8x:9y:P (x y ) ! 9y:8x:P (x y ) 8x:8y:P (x y ) ! 8y:8x:P (x y ) 9x:8y:P (x y ) 8y:9x:P (x y ) P (x y) ! 8x:8y:P (x y) 9y:8x:(P (x x) ! P (y x)) 8x:9y:(P (x y ) ! P (y x)) 5. Indique quais das seguintes noc~oes se aplica a cada uma das fbf's listadas abaixo. (a) universalmente valida. (b) verdadeira em alguma interpretac~ao, mas n~ao universalmente valida. 5.6. EXERCICIOS 111 (c) satisfatvel (verdadeira numa interpretac~ao e para uma atribuic~ao), porem n~ao verdadeira em alguma (eventualmente outra) interpretac~ao. (d) falsa em alguma interpretaca~o, mas n~ao insatisfatvel. (e) insatisfatvel. i. 8x:P (z x) _ Q(x y) ! (8x:P (z x) _ 8x:Q(x x)) ii. 8x:8y:P (x y) ! 8x:8y:P (y x) iii. P (y x) ! P (x y) iv. P (f (x)) ! P (x) v. ^ :9x: vi. 8x:(P (x) ! P (f (x))) vii. 8x:9y:(P (x y) ^ P (y x)) viii. 8x:P (x) ^ :9y:P (y). 6. 7. De uma interpretac~ao que torne a seguinte formula falsa :(8x:P (x y ) ^ 9y:P (y z )) 8. D^e exemplos de fbf's para cada conjunto de condic~oes relacionados a seguir. Justique sua resposta. (a) (b) (c) (d) (e) (f) (g) verdadeira em uma interpretaca~o, mas n~ao universalmente valida. nem verdadeira nem falsa para uma dada interpretaca~o. satisfatvel e n~ao universalmente valida. verdadeira em alguma interpretac~ao e falsa em outra interpretac~ao . falsa em uma interpretac~ao, mas n~ao contraditoria. universalmente valida. contraditoria. 9. Sejam 1, 2 e 3 as seguintes formulas: 1) 8x:(P (x y) _ :P (x a) 2) 8y:P (f (x) y) 3) P (f (a) a) Diga e justique quais das seguintes alternativas e correta: (a) 1 j= 2 112 ^ CAPITULO 5. LOGICA DE PREDICADOS: LINGUAGEM E SEMANTICA (b) (c) (d) (e) (f) (g) (h) (i) (j) (k) (l) (m) (n) 1 j= 3 2 j= 3 2 j= 1 3 j= 1 3 j= 2 1 2 j= 3 1 3 j= 2 2 3 j= 1 1 j= 2 ! 3 1 _ 2 j= 3 1 ^ 2 6j= 3 3 6j= 1 ^ 2 :1 :2 6j= :3 10. Demonstre que (a) (b) (c) (d) Se ; j= e ; &, ent~ao & j= Se ; j= e j= ent~ao ; j= Se para cada 2 &, ; j= e & j= ent~ao ; j= Se ; j= ent~ao ; 6j= : Captulo 6 A Teoria Formal da Logica de Predicados Um dos interesses na apresentac~ao axiomatica de logicas elementares e a economia que pode ser conseguida nas regras e axiomas, isto e, quais axiomas e regras s~ao usados para descrever a teoria formal requerida. Isto, combinado com uma estrutura de provas muito simples e direta do sistema, pode ser de consideravel ajuda na investigac~ao do que pode e n~ao pode ser provado no sistema. Mas economia pode ir muito longe, e em alguns casos pode ser muito difcil manipular tal sistema. Assim, teremos como compromiso procurar por economia quando for relativamente simples, mas n~ao ao custo de perda da legibilidade. Podemos economizar na linguagem, por considerar somente os smbolos logicos :, ! e 8. 6.1 Teoria Formal do Calculo de Predicados Como toda tautologia e logicamente valida na logica de predicados, ent~ao e razoavel que todos os teoremas do calculo proposicional (que pelo teorema da completude s~ao todas as tautologias) sejam teoremas do calculo de predicados. Assim, todos os axiomas e regras do calculo proposicional devem fazer parte dos axiomas e regras do calculo de predicados. Mas, a estes axiomas e regras devemos adicionar alguns que re)itam as caractersticas proprias do quanticador universal. Por exemplo, uma das mais obvias propriedades e que se algo e valido para todo elemento de um domnio em discurso, ent~ao o mesmo e valido para um elemento especco, o qual e re)etido pelo axioma 8x:(x) ! t=x], onde t e livre para x em . Mas isto n~ao e suciente, devemos adicionar mais um axioma e uma regra de infer^encia. Assim, o sistema de provas ou teoria formal para o calculo de predicados, T P = hL ' <i, e dado por uma linguagem formal de 1a ordem e pelos seguintes conjuntos de axiomas e regras de infer^encias. 113 114 CAPITULO 6. A TEORIA FORMAL DA LOGICA DE PREDICADOS 6.1.1 Linguagem Formal: Analogamente como zemos para o caso proposicional, a linguagem formal de 1a ordem considerada aqui, n~ao considerara todos os conectivos logicos nem todos os quanticadores. De fato so consideraremos o subconjunto f: ! 8g de l . Assim, a linguagem formal da teoria formal de primeira ordem, e LP!8 = h ; f_ ^ $ 9g F1 F2 F5 F8 i, onde e um alfabeto de 1a ordem como denido no captulo anterior. A linguagem gerada por esta linguagem formal sera denotada por LP !8. Axiomas: (A1) ! ( ! ) (A2) ( ! ( ! )) ! (( ! ) ! ( ! )) (A3) (: ! : ) ! ((: ! ) ! ) (A4) 8x:( ! ) ! ( ! 8x: ), onde x n~ao e livre em (A5) 8x: ! t=x], onde t e livre para x em . Regras de Infer^encias: Modus Ponens: Generaliza c~ao Universal: MP : ! Gen : 8x: Observa c~oes: 1. As denic~oes de axiomas, prova, teorema e consequ^encia, denidas de modo geral para qualquer teoria formal, assim como as observac~oes 1-6 da seca~o 3.1, valem para a teoria formal de 1a ordem aqui descrita. Portanto, a notac~ao ; ` signica que temos uma prova de nas hipotese de ;. No caso particular de ; = , ` , denota que e um teorema da logica de predicados. 2. A logica apresentada pela teoria formal T P e denotada por T (T P ). Isto e, T (T P ) e o conjunto de todos os teoremas da teoria formal T P : T (T P ) = f 2 LP ! 8 = ` g 6.1. TEORIA FORMAL DO CALCULO DE PREDICADOS 115 3. O axioma A5 e uma formalizac~ao de que se uma lei vale para todos, ent~ao, em particular, vale para um indivduo escolhido aleatoriamente. 4. A regra Gen tem a seguinte explicac~ao: Suponha que armamos a formula cos2x + sen2 x = 1, digamos para x 2 R . O que, de fato, estamos dizendo e: 8x:(cos2 x + sen2 x = 1). 5. Teoremas envolvendo o quanticador existencial podem ser provadas usando a equival^encia: 9x: :8x::: Por exemplo, para provar a formula universalmente valida 8x: ! 9x:, se deve provar a formula 8x: ! :8x::. Exemplo 6.1.1 Seja o argumento \Todos os homens s~ao mortais. Socrates e homem. Logo Socrates e mortal". Podemos provar este argumento usando a teoria formal de primeira ordem T P . O primeiro passo e p^or o argumento como uma sentenca da linguagem de 1a ordem LP !8. Uma forma razoavel seri usar smbolos de predicados mnem^onicos, como H e M para denotar \e homem" e \e mortal" respectivamente. Assim, com estas considerac~oes , o argumento e descrito atraves da sentenca: 8x:(H (x) ! M (x)) H (s) ` M (s) Uma prova para este argumento e a seguinte: 1) 2) 3) 4) 5) 8x:(H (x) ! M (x)) 8x:(H (x) ! M (x)) ! (H (s) ! M (s)) H (s) ! M (s) H (s) M (s) hipotese inst^ancia de A5 MP 1,2 hipotese MP 4,3 E de se esperar que adicionando dois novos axiomas e uma regra de infer^encia o numero de teoremas em T P n~ao diminua com respeito aos teoremas de TP . De fato podemos provar o seguinte resultado. Proposi c~ao 6.1.2 Toda formula 2 LP !8 que e uma inst^ancia de uma tautologia (tautologica) e um teorema de T P e pode ser provado usando-se somente os axiomas A1 ; A3 e a regra MP. 116 CAPITULO 6. A TEORIA FORMAL DA LOGICA DE PREDICADOS Demonstraca~o: Se resulta de uma tautologia por substituica~o dos smbolos proposi- cionais em por formulas at^omicas em , ent~ao pelo teorema da completude da logica proposicional, tem uma prova em TP . Seja 1 : : : n uma prova de em TP . Substituimos em cada i as variaveis proposicionais pelas formulas at^omicas em LP !8, da mesma maneira como realizado para obter de . Todo smbolo proposicional na prova que n~ao ocorre em e substituido por uma formula at^omica arbitraria de LP !8. A sequ^encia de formulas resultantes e uma prova de a qual usa somente os axiomas A1 ; A3 e a regra de infer^encia MP. Portanto, tudo que pode ser provado em TP , tambem, pode ser provado em T P . No que segue estabeleceremos que LP e consistente. Ou seja, T (T P ) e uma extens~ao de T (TP ), mas n~ao sucientemente grande para conter uma formula e sua negaca~o, :. Para provar esse resultado introduziremos uma funca~o que transforma uma formula de LP numa proposic~ao. Deni c~ao 6.1.3 Seja L = h Gi uma linguagem formal de 1a ordem e L0 uma lin- guagem proposicional cujos smbolos proposicionais s~ao R . Ent~ao a func~ao ' : Ling (L) ;! Ling(L0) denida por '(P (t1 : : : tn)) = P para cada P 2 R '(:) = :'() '( ^ ) = '() ^ '( ) '( _ ) = '() _ '( ) '( ! ) = '() ! '( ) '( $ ) = '() $ varphi( ) '(8x:) = '() '(9x:) = '() e denominada de fun c~ao de transforma c~ao de formulas em proposi c~oes, pois ela transforma uma formula numa proposic~ao, simplesmente extraindo de os quanticadores e termos. Note que se 2 LP !8 ent~ao '() 2 LP !. Exemplo 6.1.4 Seja a formula :8x:P (x y) ! R(z) e ' a func~ao de transformac~ao de formulas em proposico~es. Ent~ao '() = '(:8x:P (x y) ! R(z)) = :P ! R: Assim '() e uma formula proposicional com os smbolos de predicados de como smbolos proposicionais. ~ 6.2. TEOREMA DA DEDUCAO 117 Proposi c~ao 6.1.5 Se e um teorema em T P , ent~ao '() e uma tautologia. Demonstraca~o: Para mostrar que '() e uma tautologia cada vez que e um teorema, devemos mostrar que '() e uma tautologia para cada axioma , e que as regras de infer^encia transformam formulas cujas imagens sob ' s~ao tautologias em formulas cujas imagens sob ' s~ao tautologias. Por denica~o, '(:) = :('()) e '( ! ) = '() ! '( ). Para cada axioma (A1 A5), '() e uma tautologia. Para A1 a A3 , isto e imediato, pois eles s~ao livres de quanticadores e termos. A4: Uma inst^ancia do axioma 8x:( ! ) ! ( ! 8x: ) sera transformada pelo ' na tautologia ( ! ) ! ( ! ). A5: Uma inst^ancia de 8x: ! t=x] sera transformada pelo ' na tautologia ! . O passo seguinte e checar as regras de infer^encias. Se '() e '( ! ) (ou '() ! '( )) s~ao tautologias, ent~ao pela denic~ao de !, tambem e '( ) e se '() e uma tautologia, ent~ao '(8x:), que pela denica~o de ' e '(), tambem e uma tautologia. Portanto '() e uma tautologia para qualquer teorema de T P . Agora podemos provar o esperado resultado de consist^encia de T (T P ). Teorema 6.1.6 O Calculo de Predicados e consistente. Demonstraca~o: Se existe uma formula 2 LP !8 tal que ` e ` : em T P , ent~ao, pela proposic~ao 6.1.5, ambos '() e '(:) (ou :'()) devem ser tautologias, o qual e impossvel. Portanto T (T P ) e consistente. 6.2 Teorema da Deduc~ao Na logica proposicional o teorema da deduc~ao foi uma ferramenta poderosa para auxiliar na prova de teoremas. O teorema da deduc~ao para a logica de predicados e tambem de muita utilidade, porem devemos tomar certos cuidados com alguns problemas sutis, tais como: Para qualquer formula , usando a regra de infer^encia Gen deduzimos 8x:, e portanto provamos ` 8x:. O \teorema da deduca~o" nos permitiria concluir que ` ! 8x:, mas esta formula, como mostra o ultimo item do exemplo 5.5.11, n~ao e universalmente valida. 118 CAPITULO 6. A TEORIA FORMAL DA LOGICA DE PREDICADOS O problema resulta no uso do \teorema da deduc~ao" descartando uma hipotese para inclu-la como antecedente de uma implicac~ao. So poderamos fazer isto se n~ao tivessemos aplicado Gen a hipotese (que esta sendo incluida como antecendente da implicaca~o) ou a qualquer outra formula que dependa dela e que seja relevante na deduc~ao da conclus~ao. Para esclarecer esta condic~ao, precisamente, introduziremos o conceito \depende de". Deni c~ao 6.2.1 Seja uma fbf no conjunto ; de fbf's e seja 1 n uma deduca~o de n a partir de ;, junto com uma justicativa para cada passo da deduc~ao. Dizemos que i , com i = 1 : : : n, depende de nesta prova se: 1. i e e a justicativa de i na prova e que pertence a ;, ou 2. i e justicado como consequ^encia direta do MP ou Gen de algumas das fbf's anteriores, onde ao menos uma destas fbf's dependa de . Exemplo 6.2.2 Seja a seguinte deduc~ao de 8x: ! ` 8x: . 1 : 2 : 3 : 4 : 5 : 8x: 8x: ! 8x: hipotese Gen 1 hipotese MP 2 3 Gen 4 1 depende de . 2 depende de . 3 depende de 8x: ! . 4 depende de e de 8x: ! . 5 depende de e de 8x: ! O seguinte lema declara que se uma conclus~ao n~ao depende de uma hipotese, ent~ao podemos realizar a prova sem precisar desta hipotese. Portanto, podemos omiti-la da deduc~ao. Lema 6.2.3 Se n~ao depende de numa deduc~ao de ; ` , ent~ao ; ` . Demonstraca~o: Seja 1 n = uma prova de a partir de ; e , na qual n~ao depende de . Provaremos por induca~o sobre n, o numero de passos na prova, que ; ` i, para todo i, com 1 i n, que n~ao depende de . Assim, no caso de i = n, ; ` , pois n~ao depende de . ~ 6.2. TEOREMA DA DEDUCAO 119 Caso base: i = 1. Se 1 n~ao depende de , ent~ao ou 1 e um axioma ou 1 2 ;. Logo, ; ` 1. Etapa indutiva: Assuma que ; ` i, para cada 1 i < k tal que i n~ao depende de mostre que ; ` k se k n~ao depende de . Se k pertence a ; ou e um axioma, ent~ao ; ` k . Se e consequ^encia direta de uma ou duas fbf's anteriores, ent~ao, por k n~ao depender de , estas formulas tambem n~ao dependem de . Logo, pela hipotese indutiva, estas fbf's s~ao dedutveis de ;. Portanto, k tambem e dedutvel a partir de ;. Teorema 6.2.4 (Teorema da Dedu c~ao para T P ) Se existe uma prova de ; ` , tal que toda aplicac~ao de Gen a uma fbf que depende de tem como variavel quanticada uma variavel n~ao livre de . Ent~ao existe uma prova de ; ` ! . Demonstraca~o: Seja 1 n = uma prova de a partir de ; tal que satisfaz a condic~ao do teorema. Mostraremos por induc~ao, sobre i, que ; ` ! i para cada i n. Caso base: i = 1. 1. 1 e um axioma ou pertence a ;. 1 : 1 algum dos axiomas ou uma hipoteses) 2 : 1 ! ( ! 1) A1 3 : ! 1 MP 1 2 Logo, 1 2 3 e uma prova de ; ` ! 1 2. 1 e . 1 : ! 1 proposic~ao 3:2:1 Logo, 1 e uma prova de ; ` ! 1 Etapa indutiva: Assuma que ; ` ! i para cada i < k mostre que ; ` ! k . 1. Se k e um axioma ou um elemento de ;, o resultado segue como no caso 1., acima. 2. Se k e , o resultado segue como no caso 2., acima. 3. Se k sai por MP de i e j = i ! k com i j < k, ent~ao pela hipoteses indutiva ; ` ! i e ; ` ! j . Sejam i1 : : : in e j1 : : : jn provas de ; ` ! i e ; ` ! j , respectivamente. A sequ^encia 120 CAPITULO 6. A TEORIA FORMAL DA LOGICA DE PREDICADOS 1 : i1 ... ... n: in onde alphain = i n+1 : j1 ... ... n+m : jm onde jm = j n+m+1 : ( ! (i ! k )) ! (( ! i) ! ( ! k )) A2 n+m+2 : ( ! i) ! ( ! k ) MP n+m n+m+1 n+m+3 : ! k MP n n+m+2 e uma prova de ; ` ! k . 4. Se k sai por Gen de um i, i < k, ent~ao k = 8x:i . Pela hipotese indutiva ; ` ! i. Neste caso teremos duas possibilidades: (a) Se i n~ao depende de , na deduca~o de a partir de ; e , ent~ao pelo lema 6.2.3 aplicado a hipoteses indutiva temos que ; ` i . Seja i1 : : : in uma prova de ; ` i . Ent~ao a sequ^encia 1: i1 ... ... n: in onde in = i n+1: 8x:i Gen( onde 8x:i = k ) n+2: k ! ( ! k ) A1 n+3: ! k MP n+1 n+2 e uma prova de ; ` ! k . (b) Se i n~ao depende de , na deduc~ao de a partir de ; e , ent~ao, pelas condic~oes do enunciado deste teorema, x n~ao e livre em . Seja i1 : : : in uma prova de ; ` ! i. Logo, a sequ^encia 1: i1 ... ... n: in onde in = ! i n+1: 8x:( ! i) Genin n+2: 8x:( ! i) ! ( ! 8x:i ) A5 n+3: ! 8x:i MP n+1 n+2 e uma prova de ; ` ! k . Assim, ; ` ! i para cada 1 i n. O teorema resulta do caso i = n. As hipoteses (restric~oes) do teorema da deduc~ao para T P s~ao pouco claras. Os seguintes corolarios tornam o teorema mais transparente, e portanto mais util. Corolario 6.2.5 Se uma prova de ; ` n~ao envolve nenhuma aplicac~ao de Gen na qual a variavel quanticada e livre em , ent~ao ; ` ! . ~ 6.2. TEOREMA DA DEDUCAO 121 Corolario 6.2.6 Se e fechado, isto e n~ao contem variaveis livres, e ; ` , ent~ao ; ` ! . A seguinte sequ^encia de perguntas podem ser respondidas ao momento de checar se uma prova de uma deduc~ao ; ` satisfaz ou n~ao as restrico~es do teorema da deduc~ao. 1. 2. 3. 4. tem alguma variavel livre? Gen foi utilizado na prova? Algumas das variaveis introduzidas pelo Gen e livre em ? Algumas das fbf's na qual se aplicou Gen introduzindo variaveis livres de depende de ? As perguntas devem ser respondidas na mesma ordem em que aparecem (em particular a quest~ao 4 pressup~oe que as perguntas 1 ate 3 foram respondidas armativamente). Se algumas das perguntas receber uma resposta \n~ao", ent~ao podemos concluir que existe uma prova de ; ` ! . Caso contrario, ou seja todas as perguntas tenham respostas \sim", essa prova em particular n~ao nos autoriza a \aplicar" o teorema da deduca~o 1 e portanto n~ao podemos armar que existe uma prova para ; ` ! . Exemplo 6.2.7 Seja a seguinte prova de P (x z) :8y:R(y z) ! :8x:P (x y) ` R(a f (a)) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 P (x z) :8y:R(y z ) ! :8x:P (x y ) (:8y:R(y z) ! :8x:P (x y)) ! (8x:P (x y) ! 8y:R(y z)) 8x:P (x y ) ! 8y:R(y z ) 8z:P (x z ) 8z:P (x z ) ! P (x y ) P (x y) 8x:P (x y ) 8y:R(y z ) 8y:R(y z ) ! R(a z ) R(a z) 8z:R(a z ) 8z:R(a z ) ! R(a f (a)) R(a f (a)) Hip: Hip: prop:3:3:4:d MP 2 3 Gen 1 A5 MP 5 6 Gen 7 MP 8 4 A5 MP 9 10 Gen 11 A5 MP 12 13 Observe que um (meta)teorema da forma \Se ent~ao " sempre se aplica, so que quando e falso, n~ao podemos concluir nada de . Assim, a express~ao \n~ao e possvel aplicar o teorema da deduc~ao" n~ao e correta, mas nos a usaremos com a interpretac~ao que as premissas do teorema da deduc~ao n~ao s~ao satisfeitas. Analogamente, a express~ao \ e possvel aplicar o teorema da deduc~ao" sera usada para indicar que as premissas do teorema da deduc~ao foram satisfeitas. 1 122 CAPITULO 6. A TEORIA FORMAL DA LOGICA DE PREDICADOS Como, tanto a hipoteses P (x z ) quanto :8y:R(y z ) ! :8x:P (x y) t^em variaveis livres. Gen foi usado na prova. A variavel z introduzida pelo Gen em 7 e livre em ambas hipotese. E como 7 depende de P (x z) e 12 (onde foi aplicado Gen introduzindo a variavel z) depende de :8y:R(y z) ! :8x:P (x y), n~ao podemos garantir que exista uma prova para P (x z) ` ((:8y:R(y z) ! :8x:P (x y)) ! R(a f (a))) nem para (:8y:R(y z) ! :8x:P (x y)) ` P (x z) ! R(a f (a)): Exemplo 6.2.8 Seja a seguinte prova de 8x:P (x z) ` (:8y:P (y a) ! :8x:P (x a)) ! P (a z) 1: 2: 3: 4: 5: forallx:P (x z) 8x:P (x z ) ! ((:8y:P (y a) ! :8x:P (x a)) ! 8x:P (x z )) (:8y:P (y a) ! :8x:P (x a)) ! 8x:P (x z) 8x:P (x z ) ! P (a z ) (:8y:P (y a) ! :8x:P (x a)) ! P (a z) hip: A1 MP 1 2 A5 proposic~ao 3.3.3.i 3 4 Como, Gen n~ao foi usado na prova ent~ao o teorema da deduc~ao garante a exist^encia de uma prova para ` 8x:P (x z ) ! ((:8y:P (y a) ! :8x:P (x a)) ! P (a z )) Observe que na prova do teorema da deduc~ao para T P , i depende de uma premissa de ; na prova original de ; ` i se, e somente se, ! i depende de na nova prova de ; ` ! i . Esta observac~ao e util quando desejamos aplicar o teorema da deduc~ao diversas vezes consecutivas (por exemplo, para obter ; ` ! ( ! ) de ; ` ). Exemplo 6.2.9 Para provar que 8x:( ! ) ! (8x: ! 8x: ) e um teorema de T (T P ), primeiro provamos que 8x:( ! ) 8x: ` 8x: para depois argumentar que, pelo teorema de deduc~ao, existe uma prova de 8x:( ! ) ! (8x: ! 8x: ). Seja a seguinte prova de 8x:( ! ) 8x: ` 8x: : ~ 6.2. TEOREMA DA DEDUCAO 1: 2: 3: 4: 5: 6: 7: 8: 8x: 8x:( ! ) 8x:( ! ) ! ( ! ) ! 8x: ! 8x: 123 hip. hip. A5 MP 2 3 A5 MP 1 5 MP 6 4 Gen 7 Como a unica generalizaca~o realizada na prova introduz a variavel x, a qual n~ao e livre em 8x:, podemos aplicar o teorema da deduc~ao e concluir que existe uma prova para 8x:( ! ) ` 8x: ! 8x: . Observe que o teorema da deduc~ao so garante que existe uma prova para 8x:( ! ) ` 8x: ! 8x: , mas n~ao proporciona efetivamente essa prova. Logo pode car a seguinte pergunta: Como saber se e possvel ou n~ao aplicar novamente o teorema da deduc~ao se n~ao possuimos nenhuma prova concreta de 8x:( ! ) ` 8x: ! 8x: ? Ou seja, n~ao temos nenhuma prova tangvel sob a qual possamos analizar e descobrir se essa prova satisfaz ou n~ao as restric~oes impostas pelo teorema da deduc~ao para seu uso. Mas, embora a resposta a pergunta seja aparentemente: \n~ao podemos saber", a resposta e que, baseados na demonstrac~ao do teorema da deduc~ao para a logica de 1a ordem (teorema 6.2.4), sabemos que uma prova de 8x:( ! ) ` 8x: ! 8x: , pode ser obtida substituindo cada i na prova de 8x:( ! ) 8x: ` 8x: por uma serie de formulas de acordo com o tratamento indutivo da demonstrac~ao do teorema da deduc~ao. Assim, por exemplo neste caso, obteriamos a seguinte prova de 8x:( ! ) ` 8x: ! 8x: : 124 1:a 2:a 2:b 2:c 3:a 3:b 3:c 4:a 4:b 4:c 5:a 5:b 5:c 6:a 6:b 6:c 7:a 7:b 7:c 8:a 8:b 8:c CAPITULO 6. A TEORIA FORMAL DA LOGICA DE PREDICADOS 8x: ! 8x: 8x:( ! ) 8x:( ! ) ! (8x: ! 8x:( ! )) 8x: ! 8x:( ! ) 8x:( ! ) ! ( ! ) (8x:( ! ) ! ( ! )) ! (8x: ! (8x:( ! ) ! ( ! ))) 8x: ! (8x:( ! ) ! ( ! )) (8x: ! (8x:( ! ) ! ( ! ))) ! ((8x: ! 8x:( ! )) ! (8x: ! ( ! ))) ((8x: ! 8x:( ! )) ! (8x: ! ( ! ))) 8x: ! ( ! ) 8x: ! (8x: ! ) ! (8x: ! (8x: ! )) 8x: ! (8x: ! ) (8x: ! (8x: ! )) ! ((8x: ! 8x:) ! (8x: ! )) (8x: ! 8x:) ! (8x: ! ) 8x: ! (8x: ! ( ! )) ! ((8x: ! ) ! (8x: ! )) (8x: ! ) ! (8x: ! ) 8x: ! 8x:(8x: ! ) ! (8x: ! 8x: ) 8x:(8x: ! ) 8x: ! 8x: prop.3.2.1. hip. A1 MP 2:a 2:b A5 A1 MP 3:a 3:b A2 sfMP 3:c 4:a MP 2:c 4:b A5 A1 MP 5:a 5:b A2 MP 5:c 6:a MP 1:a 6:b A2 MP 4:c 7:a MP 6:c 7:a A5 Gen 7:c MP 8:b 8:a Logo, podemos analisar esta prova e vericar se realmente satisfaz as restric~oes do teorema da deduc~ao. No entanto, ca evidente que seria um trabalho intrincado e tedioso construir uma prova de este forma. Felizmente, se zermos uma analises mais minuciosa da prova assim obtida, vericaremos que esta prova tem as mesmas propriedades que a original: so foi usada uma generalizac~ao, a qual depende de uma formula 7.c, a formula 7.c depende das formulas 6.c e 7.a (este e um axioma), a 6.c depende da 1.a e 6.b. e 1.a e a formula correspondente a hipotese 8x: (1) na prova original. Assim, para saber se podemos aplicar o teorema da deduc~ao baseados na prova construida anteriormente, basta analisar a prova original. Logo, usando o mesmo criterio da primeira analises, podemos armar que e possvel aplicar novamente o teorema da deduca~o e concluir, desse modo, que a existe uma prova para ` 8x:( ! ) ! (8x: ! 8x: ) como desejado. Generalizando o resultado do exemplo anterior, podemos dizer que se 1 : : : n e uma prova de 1 : : : k ` tal que nos permite concluir, pelo teorema da deduc~ao, que existe uma prova de 1 : : : k;1 ` k ! , ent~ao para saber se e possvel aplicar novamente o teorema da deduc~ao e assim concluir a exist^encia de uma prova para 1 : : : k;2 ` k;1 ! (k ! ), basta analisar a prova 1 : : : n. Obviamente, se queremos vericar se novamente podemos aplicar o teorema da deduca~o e concluir a exist^encia de uma prova para 1 : : : k;3 ` k;2 ! (k;1 ! (k ! )) basta vericar na prova 1 : : : n. E assim por diante. Portanto, se 1 : : : n e uma prova de 1 : : : k ` e queremos saber se existe uma prova de ` 1 ! (2 ! : : : (k ! ) : : : ), ent~ao devemos somente vericar ~ 6.2. TEOREMA DA DEDUCAO 125 se o teorema da deduca~o se aplica na prova 1 : : : n para 1, para 2 : : : para k , separadamente. Vejamos alguns resultados que ser~ao uteis para provar teoremas em T P . Proposi c~ao 6.2.10 a) ` 8x:8y: ! 8y:8x: b) ` 8x: ! :8x:: c) ` :8x::8y: ! 8y::8x:: d) ` 8x:: ! :8x: Demonstraca~o: a) ` 8x:8y: ! 8y:8x: 1 : 8x:8y: hip: 2 : 8x:8y: ! 8y: A5 3 : 8y: MP 1 2 4 : 8y: ! A5 5 : MP 3 4 6 : 8x: Gen 5 7 : 8y:8x: Gen 6 Logo, 1 : : : 7 e uma prova de 8x:8y: ` 8y:8x:. Fazendo as 4 perguntas temos que a hipotese 8x:8y: pode ter variaveis livres, pois e uma meta variavel representando qualquer formula e uma dessas pode ser P (z) por exemplo. Generalizac~ao foi usada na prova, mas as variaveis introudzidas por Gen (x e y) n~ao s~ao livres em 8x:8y: independente de quem seja . Logo, o teorema da deduc~ao, garante que existe uma prova de ` 8x:8y: ! 8y:8x:. b) ` 8x: ! :8x:: 1 : 8x: hip: 2 : (::8x:: ! :) ! ((::8x:: ! ) ! :8x::) A3 3 : ::8x:: ! 8x:: proposic~ao 3.3.4.a 4 : 8x:: ! : A5 5 : ::8x:: ! : proposic~ao 3.3.3.i 3 4 6 : (::8x:: ! ) ! :8x:: MP 5 2 7 : 8x: ! A5 8 : MP 1 7 9 : ! (::8x:: ! ) A1 10 : ::8x:: ! MP 8 9 11 : :8x:: MP 10 6 Logo, 1 : : : 11 e uma prova de 8x: ` :8x::. Como Gen n~ao foi usado na prova ent~ao o teorema da deduc~ao nos garante que existe uma prova de ` 8x: ! :8x::. CAPITULO 6. A TEORIA FORMAL DA LOGICA DE PREDICADOS 126 c) ` :8x::8y: ! 8y::8x:: 1 : 8y:8x:: ! 8x:8y:: esta proposica~o item a. 2 : (8y:8x:: ! 8x:8y::) ! (:8x:8y:: ! :8y:8x::) proposica~o 3.3.4.e 3 : :8x::8y: ! 8y::8x:: MP 1 2 d) ` 8x:: ! :8x: 1 : 8x: ! :8x:: esta proposica~o item b. 2 : (8x: ! :8x::) ! (8x:: ! :8x:) proposic~ao 3.3.4.f 3 : 8x:: ! :8x: MP 1 2 Retornando ao teorema da deduc~ao, observe que o fato de termos uma prova que n~ao satisfaca as premisas do teorema da deduc~ao, n~ao signica que n~ao possa ser achada uma outra prova a qual sim as satisfaca. Exemplo 6.2.11 Seja a seguinte prova de P (x) ` :8x::P (x) 1: 2: 3: 4: P (x) hip. 8x:P (x) Gen 1 8x:P (x) ! :8x::P (x) proposic~ao 6.2.10.b :8x::P (x) MP 2 3 Como P (x) tem variaveis livres, Gen foi aplicado na prova (2 ), a variavel introduzida em 2 (x) e livre em P (x) e 2 depende de P (x), ent~ao n~ao podemos aplicar o teorema da deduc~ao. Embora esta prova seja muito natural, ela n~ao e a unica. Seja a seguinte prova de P (x) ` :8x::P (x) 1: 8x::P (x) ! :P (x) A5 2: (8x::P (x) ! :P (x)) ! (P (x) ! :8x::P (x)) proposic~ao 3.3.4.e 3: P (x) ! :8x::P (x) MP 1 2 4: P (x) Hip. 5: :8x::P (x) MP 4 3 Como Gen n~ao foi usado na prova, ent~ao e possvel aplicar o teorema da deduc~ao e concluir que existe uma prova de ` P (x) ! :8x::P (x). Observe que poderiamos ter provado este teorema diretamente, isto e, sem necessidade de apelar ao teorema da deduc~ao. De fato 1 2 3, na prova acima, e uma prova de ` P (x) ! :8x::P (x). 6.3 Exerccios 1. Prove cada uma das seguintes fbf's na teoria formal T P : (a) 8x:8y:8z: ! 8z:8y:8x: 6.3. EXERCICIOS (b) (c) (d) (e) 127 8x1 : 8xn : ! 8xn :8x1 : 8xn;1 : :8x:8y:: ! :8y:8x:: 8x:( ! ) ! (:8x:: ! :8x:: ) 8x::( ! : ) ! :(8x: ! :8x: ) 2. Prove as seguintes deduc~oes (a) (b) (c) (d) (e) (f) (g) (h) (i) (j) (k) ` 8x:8y:P (x y ) ! 8x:8y:P (y x) P (x) ` R(a) ! 8y:P (y) P (x) ` (8x:P (x) ! 8y:P (y)) ! P (a) P (x) ` (8x:P (x) ! 8y:R(y)) ! R(a) 8x:(P (x) ! R(x)) ` :8x::P (x) ! :8x::R(x) R(a) ! 8x:P (x) ` 8x:(R(a) ! P (x)) 8x:(P (x) ! R(a)) ` :8x::P (x) ! R(a) :8x::P (x) ! R(a) ` 8x:(P (x) ! R(a)) :8x::8y:P (x y ) ` 8y::8x::P (x y ) :8x::(P (x) ! R(x)) ` 8x:P (x) ! :8x::R(x) 8x:P (x) ! :8x::R(x) ` :8x::(P (x) ! R(x)) 3. Mostre que a inversa da proposic~ao 6.1.5 n~ao e verdadeira. Ou seja, se '() e uma tautologia, ent~ao n~ao necessariamente e um teorema em LP. 4. Diga porqu^e n~ao podemos aplicar o teorema da deduca~o nas seguintes provas (a) (b) (c) 1: 2: 8x: 3: 8x: ! ( ! 8x:) 4: ! 8x: hip. Gen 1 A1 MP 2 3 1: 8x:(P (y) ! Q(x y)) 2: 8x:(P (y) ! Q(x y)) ! (P (y) ! 8x:Q(x y)) 3: P (y) ! 8x:Q(x y) 4: 8y:(P (y) ! 8x:Q(x y)) 5: 8y:(P (y) ! 8x:Q(x y)) ! (P (y) ! 8y:8x:Q(x y)) 6: P (y) ! 8y:8x:Q(x y) 1: P (x) 2: 8x:P (x) 3: P (x) ! (Q(x) ! P (x)) 4: Q(x) ! P (x) hip. Gen 1 A1 MP 1 3 hip. A4 MP 1 2 Gen 3 A4 MP 4 5 CAPITULO 6. A TEORIA FORMAL DA LOGICA DE PREDICADOS 128 Observa c~ao: Esta ultima prova n~ao nos permite aplicar o teorema da de- duc~ao, porem isto n~ao signica que o teorema da deduc~ao n~ao seja aplicavel a P (x) ` Q(x) ! P (x). De fato se retiramos 2 :, da prova acima, podemos aplicar o teorema da deduca~o. 5. Diga porqu^e podemos aplicar o teorema da deduca~o nas seguintes provas (use os 4 criterios usados nesta sec~ao ). (a) (b) 1: 2: 8x:( ! ) 3: 8x:( ! ) ! ( ! ) 4: ! 5: hip. hip. A5 MP 2 3 MP 1 4 1: P (x) ! 8y:Q(x y) 2: 8y:(P (x) ! 8y:Q(x y)) 3: 8y:(P (x) ! 8y:Q(x y)) ! (P (x) ! 8y:8y:Q(x y)) 4: P (x) ! 8y:8yQ(x y) hip. Gen 1 A4 MP 2 3 Captulo 7 Computac~ao na Logica de Predicados Neste captulo descreveremos o esquema de computac~ao para o calculo de predicados, chamado resoluc~ao geral, este processo e essencialmente o mesmo que o descrito para o caso proposicional, ou seja, para provar que uma formula e um teorema, primeiro negamos a formula, em seguida transformamos : numa formula equivalente numa certa forma normal, e depois aplicamos o princpio de eliminac~ao de literais complementares. So que, no caso da logica de predicados, por ter uma linguagem mais complexa, a transformac~ao a forma normal vai ser mais intrncada, pois antes de eliminar dois literais, as vezes, teremos que unicar eles para tornar-los complementares. Por exemplo, os literais P (x) e :P (a) n~ao poderiam ser eliminados diretamente, pois P (x) 6= P (a) e portanto n~ao s~ao complementares. No entanto, como x pode tomar qualquer valor, inclussive o valor que tome a constante a, podemos dizer que P (a) e uma inst^ancia de P (x). Agora sim, P (a) e :P (a) s~ao complementares, e portanto podem ser eliminados. O processo de substituir x por a para tornar complementares P (x) com :P (a) se chama de unicac~ao. 7.1 Resoluc~ao Quando descrevemos o processo de computaca~o para o caso proposicional discutimos, ent~ao, a resoluc~ao \basica". A qual era baseada em clausulas basicas mas n~ao dizemos o porque do nome \basica" em essa denica~o de clausula. Uma express~ao ou clausula e basica (ground em ingl^es) se ela n~ao contem variaveis. Na logica proposicional so encontramos clausulas basicas, uma vez que a linguagem n~ao contem variaveis. Resoluc~ao basica por si so n~ao e suciente para manusear a linguagem de predicados, que e mais expressiva. Para LP usaremos uma forma mais geral de resoluc~ao, que consiste de unicac~ao junto com eliminaca~o do literal complementar (ELC). Usaremos, tambem, aqui, procedimentos de refutaca~o, que consiste em provar um teorema mostrando que sua negac~ao e contraditoria. 129 130 ~ NA LOGICA CAPITULO 7. COMPUTACAO DE PREDICADOS Como introduziremos novos smbolos em LP, redeniremos algumas noco~es ja denidas anteriormente, adicionando noc~oes novas. 1. 2. 3. 4. 5. 6. termo :=constante j variavel j smbolo funcional\(" lista de termos \)" lista de termos :=termoj termo\," lista de termos formula at^omica :=smbolo de predicado\(" lista de termos\)" literal :=formula at^omica j \:" formula at^omica clausula :=\2" j literal j literal \_" clausula sentenca :=fclausulag j clausula \^" sentenca Deni c~ao 7.1.1 Uma fbf de LP esta na forma clausal se ela e uma sentenca como descrita na gramatica acima. Da mesma forma que no caso proposicional, uma clausula sera vista desde duas oticas: como uma disjunc~ao (\ou") de seus elementos (literais) e como um conjunto de literais. Analogamente, veremos uma sentenca como uma conjunc~ao (\e") de seus elementos (clausulas) e como um conjunto de clausulas. Observe a aus^encia de quanticadores na denica~o de forma clausal. Sabemos que uma fbf de LP e provavel (isto e, existe uma prova para ela) se e somente se seu fecho e provavel (pelo axioma A5 e por Gen). Vimos que uma fbf e universalmente valida se e somente se seu fecho e universalmente valido. Assim, toda fbf na forma clausal esta implicitamente fechada, pois consideraremos cada variavel como estando universalmente quanticada sobre a clausula em que ela aparece. Requeriremos que as fbf's que usaremos estejam na forma normal conjuntiva reduzida sem quanticadores. Mas antes de denir quando uma sentenca esta nesta forma normal e como podemos transformar qualquer sentenca numa formula equivalente na forma normal conjuntiva reduzida sem quanticadores, teremos que descrever alguns passos intermediarios. Uma fbf esta na forma normal prenex se cada variavel e quanticada, e todos os quanticadores est~ao juntos precedendo uma sentenca livre de quanticadores. Deni c~ao 7.1.2 Uma formula esta na forma normal prenex se tem a seguinte forma Q1x1 : Qnxn: onde e uma formula livre de quanticadores, x1 : : : xn s~ao variaveis diferentes e para cada 1 i n, Qi = 8 ou Qi = 9. Se todos os Qi s~ao quanticadores universais a formula e chamada de universalmente fechada. Q1 x1 : Qn xn e chamado de prexo da formula e de matriz. ~ 7.1. RESOLUCAO 131 Toda fbf do calculo de predicado e equivalente a uma fbf na forma normal prenex com as mesmas variaveis livres. Para p^or uma fbf na forma normal prenex, movemos todos os quanticadores a esquerda dos conectivos logicos :, ^, _ e !. Se a formula contiver algum conectivo $, ent~ao antes de proceder a este proceso, devemos eliminar este concetivo da formula usando a reduca~o: $ !! ( ! ) ^ ( ! ) Para mover cada quanticador a esquerda de cada tipo destes conectivos devemos usar uma das reduc~oes descritas a seguir. :9x: :8x: 8x: ^ ^ 8x: 9x: ^ ^ 9x: 8x: _ _ 8x: 9x: _ _ 9x: 8x: ! ! 8x: 9x: ! ! 9x: !! !! !! !! !! !! !! !! !! !! !! !! !! !! 8x:: 9x:: 8y:(y=x] ^ ) 8y:( ^ y=x]) 9y:(y=x] ^ ) 9y:( ^ y=x]) 8y:(y=x] _ ) 8y:( _ y=x]) 9y:(y=x] _ ) 9y:( _ y=x]) 9y:(y=x] ! ) 8y:( ! y=x]) 8y:(y=x] ! ) 9y:( ! y=x]) onde y e uma variavel nova. Observe que a renomeac~ao de todas as variaveis e para se garantir que todas as variaveis diferentes tenham distintos nomes. Se n~ao tivermos este cuidado, pode acontecer que a formula resultante n~ao seja equivalente a original. Por exemplo, no caso da formula 8x:P (x) ^ R(a x), se aplicarmos a reduc~ao 8x: ^ !! 8y:(y=x] ^ ), obtemos a formula 8y:(P (y) ^ R(a x)). Mas, sen~ao tivessemos realizado a renomeaca~o de variaveis, teriamos obtido a formula 8x:(P (x) ^ R(a x)), onde a ocorr^encia da variavel x em R(a x), que antes era livre, passaria a ser ligada, alterando completamente o sentido da formula e portanto transformando a formula original numa formula n~ao equivalente. Exemplo 7.1.3 Seja a formula :(:8x:8y:P (x y) _ 8y:8x:P (x y)). Uma sequ^encia de reduc~oes para transformar esta formula numa formula na forma normal prenex equivalente e a seguinte: 132 ~ NA LOGICA CAPITULO 7. COMPUTACAO DE PREDICADOS :(:8x:8y:P (x y ) _ 8y:8x:P (x y )) !! :(9x::8y:P (x y ) _ 8y:8x:P (x y )) !! :(9x:9y::P (x y ) _ 8y:8x:P (x y )) !! :9x1 :(9y::P (x1 y ) _ 8y:8x:P (x y )) !! :9x1 :9y1 :(:P (x1 y1 ) _ 8y:8x:P (x y )) !! :9x1 :9y1 :8y2 :(:P (x1 y1) _ 8x:P (x y2 )) !! :9x1 :9y1 :8y2 :8x2 :(:P (x1 y1 ) _ P (x2 y2)) !! 8x1 ::9y1 :8y2 :8x2 :(:P (x1 y1 ) _ P (x2 y2)) !! 8x1 :8y1 ::8y2 :8x2 :(:P (x1 y1 ) _ P (x2 y2)) !! 8x1 :8y1 :9y2 ::8x2 :(:P (x1 y1 ) _ P (x2 y2)) !! 8x1 :8y1 :9y2 :9x2 ::(:P (x1 y1 ) _ P (x2 y2)) A forma normal prenex assim obtida n~ao e necessariamente unica, mas e possvel garantir sua equival^encia com a formula original. Por exemplo, no caso da formula do exemplo anterior, poderiamos tambem ter realizado a seguinte transformaca~o: :(:8x:8y:P (x y ) _ 8y:8x:P (x y )) !! :(9x::8y:P (x y ) _ 8y:8x:P (x y )) !! :(9x:9y::P (x y ) _ 8y:8x:P (x y )) !! :8y1 :(9x:9y::P (x y ) _ 8x:P (x y1 )) !! :8y1 :8x1 :(9x:9y::P (x y ) _ P (x1 y1 )) !! :8y1 :8x1 :9x2 :(9y::P (x2 y ) _ P (x1 y1 )) !! :8y1 :8x1 :9x2 :9y2 :(:P (x2 y2 ) _ P (x1 y1)) !! 9y1 ::8x1 :9x2 :9y2 :(:P (x2 y2 ) _ P (x1 y1)) !! 9y1 :9x1 ::9x2 :9y2 :(:P (x2 y2 ) _ P (x1 y1)) !! 9y1 :9x1 :8x2 ::9y2 :(:P (x2 y2 ) _ P (x1 y1)) !! 9y1 :9x1 :8x2 :8y2 ::(:P (x2 y2 ) _ P (x1 y1)) Mas ^ambas s~ao logicamente equivalentes a formula original. Generalizando: Teorema 7.1.4 (Forma Normal Prenex) Qualquer formula na linguagem de predicados, tem uma formula na forma normal prenex logicamente equivalente a ela e com as mesmas variaveis livres. Demonstraca~o: Veja Men87]. Note que se em vez de x2 e y2 tivessemos deixado as variaveis originais x e y, respectivamente, as formulas resultante seri~ao equivalentes. Assim, de agora em diante so renomearemos as variaveis quando necessario. Como uma formula e insatisfatvel se, e somente se, seu fecho existencial e uma formula insatisfatvel, ent~ao depois de colocar todos os quanticadores ao lado esquerdo da formula, formamos o fecho existencial da fbf introduzindo, a esquerda, quanticadores existenciais para cada variavel livre. ~ 7.1. RESOLUCAO 133 Exemplo 7.1.5 Seja a formula :8x:(P (x z ) ^ R(x y )) _ (9x:P (x z ) _ 8x:R(x y )) Uma formula equivalente na forma normal Prenex, pode ser obtida da seguinte maneira: Movendo 8 a esquerda de : e renomeando variaveis quando necessario obtemos 9x::(P (x z ) ^ R(x y )) _ 9x1 :8x2 :(P (x1 z ) _ R(x2 y ) Pondo os quanticadores na frente, temos 9x:9x1 :8x2 :(:(P (x z ) ^ R(x y )) _ (P (x1 z ) _ R(x2 y ))) e formando o fecho sobre os quanticadores temos 9z:9y:9x:9x1 :8x2 :(:(P (x z ) ^ R(x y )) _ (P (x1 z ) _ R(x2 y ))) A s vezes e mais facil de visualizar este processo quando mostrado gracamente. Poderemos representar uma fbf por uma arvore cujas folhas s~ao formulas at^omicas e cujos nos n~ao folhas cont^em ou um conetivo logico (:, ^, _) ou uma quanticac~ao (8x, 9x). Descendentes representar~ao as fbf's para as quais o conectivo ou quanticac~ao se aplica. Considere a mesma formula do exemplo 7.1.5. Uma representac~ao graca do processo de transformac~ao a forma normal prenex e mostrada na arvore da gura 7.1. Primeiro movemos as quanticaco~es para a frente da fbf. Qualquer quanticaca~o que esta mais acima na arvore (n~ao tem quanticaco~es no caminho dele ate o prexo da fbf na raz) pode ser movida acima da arvore para abaixo do prexo. Se existe um numero impar de :'s no caminho ao prexo, o quanticador e mudado (8 e transformado em 9 e vice versa), sen~ao permanece inalterado. A gura 7.2 mostra a transformac~ao de um quanticador universal num existencial pela ac~ao da negac~ao. A posic~ao original da quanticac~ao na arvore e tomada por seu no descendente. Agora vamos deslocando sucessivamente para o topo da arvore as quanticaco~es, como mostram as arvores das guras 7.3, 7.4 e 7.5, mas devemos ter cuidado com o perigo de capturar variaveis livres. Se uma quanticaca~o e movida para uma posic~ao na qual governa ocorr^encias de uma variavel que anteriormente era livre, estas ocorr^encias ser~ao capturadas e portanto, para n~ao mudar o sentido da formula, deveremos renomear essas ocorr^encias. Note que a renomeac~ao de x por x1 n~ao e necessaria, mas como existem diversas ocorr^encias da variavel x ligadas a distintos quanticadores, ent~ao se obtem uma melhor visualizac~ao de qual x esta ligado a que quanticador anexando um subndice em cada um deles. 134 ~ NA LOGICA CAPITULO 7. COMPUTACAO DE PREDICADOS : 8x ; ;; P (x z) ^ _ QQ QQ Q ; ; ; 9x @@ @ P (x z) _ @@ @ 8x R(x y) R(x y) Figura 7.1: A rvore da formula :8x:(P (x z) ^ R(x y)) _ (9x:P (x z) _ 8x:R(x y)) Finalmente, realizando o fecho existencial da fbf, obtemos a arvore da gura 7.6. Seja uma formula fechada na forma normal prenex. Podemos, agora, eliminar todas as quanticaco~es em e assim obter uma formula livre de quanticadores. Cada variavel quanticada existencialmente e substituida por uma func~ao de Skolem1 sob as variaveis universalmente quanticadas que governam esta, ou seja as variaveis universalmente quanticadas que precedem o quanticador existencial no prexo da formula e para as quais exista um subformula at^omica contendo elas. Uma funca~o 0-aria (sem argumentos) e vista como uma constante. Assim, se uma variavel quanticada existencialmente n~ao e governada por nenhuma variavel ent~ao ela debe ser substituda por uma constante. Este processo de eliminac~ao de quanticadores existenciais em formulas fechadas na forma normal prenex e chamado de skolemizac~ao. Tanto os smbolos de func~ao como as constantes introduzidas na skolemizac~ao devem ser novos na formula. Exemplo 7.1.6 Seja a formula 8x:9y:(P (x) ! P (y)). Embora a quanticac~ao 8x preceda a quanticac~ao 9y, n~ao temos nenhum caso onde as variaveis y e x facam parte da mesma formula at^omica. Logo, o y e substitudo por uma constante e n~ao por uma funca~o em x (pois n~ao depende de x). Assim, a formula resultante da skolemizac~ao e: 8x:(P (x) ! P (a) Se declaramos que para cada x existe um y tal que alguma propriedade e verdadeira, ent~ao estamos a rmando que podemos encontrar tal y, mas sua escolha pode depender do valor de x, e portanto a escolha de y pode ser vista como uma func~ao sobre x. Uma func~ao de Skolem, e denominada assim em homenagem ao logico T. Skolem, quem simplesmente atribuiu um smbolo de func~ao arbitrario para representar esta escolha. 1 ~ 7.1. RESOLUCAO 135 9x ; ;; P (x z) QQ QQ Q ; ; ; 9x : ^ _ @@ @ P (x z) _ @@ @ 8x R(x y) R(x y) Figura 7.2: Deslocamento do quanticador universal para acima da negaca~o , transformando-o num quanticador existencial. e n~ao 8x:(P (x) ! P (f (x)). Ja a skolemizac~ao da formula 8y:9z:8x:(P (x y) ! (R(x z) _ R(z y))) e a seguinte: 8y:8x:(P (x y ) ! (R(x f (y )) _ R(f (y ) y ))): Como resultado da skolemizac~ao de uma formula obteremos uma formula universalmente fechada que n~ao necessariamente e equivalente a original, mas que t^em estreita relac~ao no seguinte sentido: Proposi c~ao 7.1.7 Para cada formula na forma normal prenex existe uma fechada uni- versalmente (contendo geralmente novas constantes e smbolos de func~ao ) que e satisfatvel se, e somente se, a formula original tambem e satisfatvel. Demonstraca~o: Veja Doe94]. Portanto se a formula na forma normal prenex original e universalmente valida o unico que podemos armar da formula resultante apos o processo de skolemizaca~o e que ela e satisfatvel (pode ser universalmente valida ou n~ao, mas nunca uma contradica~o). Porem se a formula na forma normal prenex original e uma contradic~ao a formula resultante apos o processo de skolemizac~ao necessariamente e uma contradica~o, pois ela e insatisfatvel. Este resultado sera essencial para optarmos por um metodo de refutaca~o para provar teoremas, ou seja quando queremos mostrar que uma determinada formula e universalmente valida, o mostramos provando que a negac~ao dela leva a um absurdo, nessa prova usamos a formula resultante do processo de skolemizac~ao . 136 ~ NA LOGICA CAPITULO 7. COMPUTACAO DE PREDICADOS 9x1 : ; ;; ^ P (x1 z) @@ @ R(x1 y) _ QQ QQ Q ; ; ; _ 9x P (x z) @@ @ 8x R(x y) Figura 7.3: Deslocamento da quanticac~ao mais proximo da raiz para o topo da arvore. Corolario 7.1.8 Para cada formula na forma normal prenex existe uma fechada universalmente (contendo geralmente novas constantes e smbolos de func~ao ) que e uma contradic~ao se, e somente se, a formula original tambem e uma contradic~ao. Demonstraca~o: Veja Doe94]. Os quanticadores universais s~ao eliminados sem alterar o resto da formula. Exemplo 7.1.9 Considere a formula 9x1 :8x2 :8x3 :9x4 :R(x1 x2 x3 x4 ) Eliminando quanticadores existenciais em , obtemos a formula 1 = 8x2 :8x3 :R(a x2 x3 f (x2 x3)) e eleminando os quanticadores universais obtemos 2 = R(a x2 x3 f (x2 x3)): Seja a formula 8x1 :9x2 :9x3 :8x4 :9x5 :(P (x1 f (x2 ) x3 ) ^ :P (x2 x4 x5 )). Como a variavel x2 e existencialmente quanticada, e precedida pela quanticac~ao universal 8x1 e x1 e x2 fazem parte de um mesma subformula at^omica (P (x1 f (x2 ) x3 )) ent~ao no processo de skolemizaca~o x2 debe ser substituda pelo termo g1 (x1 ). Analogamente, com x3 ~ 7.1. RESOLUCAO 137 9x1 9x2 : ; ;; P (x1 z) ^ @@ @ _ QQ QQ Q ; ;; _ P (x2 z) R(x1 y) @@ @ 8x R(x y) Figura 7.4: Dislocac~ao das quanticac~oes para o topo da arvore a qual debe ser substituda pelo termo g2 (x1 ). No caso de x5 , podemos observar que 9x5 e precedido por dois quanticac~oes universais (8x1 e 8x4 ), mas somente a variavel x4 faz parte junto com x5 de uma mesma subformula at^omica. Logo, x5 debe ser substituido pelo termo g3 (x4 ). Assim, como resultado da skolemizac~ao obtemos a formula 8x1 :8x4 :(P (x1 f (g1 (x1 )) g2 (x1 )) ^ :P (g1(x1 ) x4 g3 (x4 ))) e eliminando os quanticadores existenciais temos a formula P (x1 f (g1(x1 )) g2(x1 )) ^ :P (g1(x1 ) x4 g3(x4 )) Uma formula livre de quanticadores e que esta na forma normal conjuntiva e chamada forma normal conjuntiva de 1a ordem. Qualquer formula de LP pode ser transformada numa formula de LP na forma normal conjuntiva de 1a ordem tal que e satisfatvel se, e somente se, e satisfatvel. Para isto, debemos realizar os seguintes passos: 1. transformar a formula a sua forma normal prenex 2. realizar o fecho da formula 3. eliminar quanticadores existenciais aplicando o processo de skolemizac~ao 138 ~ NA LOGICA CAPITULO 7. COMPUTACAO DE PREDICADOS 9x1 9x2 8x3 : ; ; ; P (x1 z) ^ _ @@ @ QQ QQ Q ; ;; P (x2 z) _ @@ @ R(x3 y) R(x1 y) Figura 7.5: A rvore para a forma normal prenex da formula :8x:(P (x z) ^ R(x y)) _ (9x:P (x z) _ 8x:R(x y)). 4. eliminar arbitrariamente todos os quanticadores universais 5. transformar a forma normal conjuntiva reduzida usando o algoritmo da proposic~ao 4.1.4 Exemplo 7.1.10 Seja a seguinte formula :(9x1 :P (x1 x2 ) ! :8x3 :(P (x3 x4 ) ^ 9x5 :R(x5 ))): Transformaremos numa formula na forma normal conjuntiva de 1a ordem seguindo os 5 passos descritos acima. Passo 1: Transformar a forma normal prenex ~ 7.1. RESOLUCAO 139 8z 8y 9x1 9x2 8x3 : ; P (x1 z) ^ @ _ QQ Q ; P (x2 z) _ @ R(x3 y) R(x1 y) Figura 7.6: A rvore do fecho existencial da formula 9x:9x1 :8x2 :(:(P (x z) ^ R(x y)) _ (P (x1 z) _ R(x2 y))). !! :(9x1 :P (x1 x2) ! 9x3 ::(P (x3 x4 ) ^ 9x5 :R(x5 ))) !! :(9x1 :P (x1 x2 ) ! 9x3 ::9x5 :(P (x3 x4 ) ^ R(x5 ))) !! :(9x1 :P (x1 x2 ) ! 9x3 :8x5 ::(P (x3 x4 ) ^ R(x5 ))) !! :8x1 :(P (x1 x2 ) ! 9x3 :8x5 ::(P (x3 x4 ) ^ R(x5 ))) !! :8x1 :9x3 :(P (x1 x2 ) ! 8x5 ::(P (x3 x4 ) ^ R(x5 ))) !! :8x1 :9x3 :8x5 :(P (x1 x2 ) ! :(P (x3 x4 ) ^ R(x5 ))) !! 9x1 ::9x3 :8x5 :(P (x1 x2 ) ! :(P (x3 x4 ) ^ R(x5 ))) !! 9x1 :8x3 ::8x5 :(P (x1 x2 ) ! :(P (x3 x4 ) ^ R(x5 ))) !! 9x1 :8x3 :9x5 ::(P (x1 x2 ) ! :(P (x3 x4 ) ^ R(x5 ))) Passo 2: realizar o fecho da formula 2 def = 8x2 :8x4 :9x1 :8x3 :9x5 ::(P (x1 x2 ) ! :(P (x3 x4 ) ^ R(x5 ))) Passo 3: eliminar quanticadores existenciais aplicando o processo de skolemizac~ao 3 def = 8x2 :8x4 :8x3 ::(P (f (x2) x2) ! :(P (x3 x4) ^ R(a))) 140 ~ NA LOGICA CAPITULO 7. COMPUTACAO DE PREDICADOS Passo 4: eliminar arbitrariamente todos os quanticadores universais 4 def = :(P (f (x2) x2) ! :(P (x3 x4) ^ R(a))) Passo 5: transformar a forma normal conjuntiva reduzida usando o algoritmo da proposica~o 4.1.4 4 !! :(:P (f (x2 ) x2 ) _ :(P (x3 x4) ^ R(a))) !! (::P (f (x2 ) x2 ) ^ ::(P (x3 x4 ) ^ R(a))) !! (P (f (x2 ) x2 ) ^ ::(P (x3 x4 ) ^ R(a))) !! (P (f (x2 ) x2 ) ^ (P (x3 x4 ) ^ R(a))) !! P (f (x2 ) x2 ) ^ P (x3 x4 ) ^ R(a) Deni c~ao 7.1.11 Seja uma fbf na forma normal conjuntiva de 1a ordem. O domnio de Herbrand de e o conjunto de termos H obtido de usando as seguintes regras: 1. Se a e uma constante em ent~ao a 2 H . Se n~ao contem nenhuma constante, ent~ao um smbolo de constante arbitrario a e incluido em H . 2. Se t1 : : : tn s~ao termos em H , e f e um smbolo de func~ao n-aria em ent~ao f (t1 : : : tn) 2 H. Se nenhum smbolo de func~ao ocorre em ent~ao um smbolo de funca~o f de aridade hum arbitrario e considerado. A notac~ao T ((;)) denota o conjunto de inst^ancias obtidas ao aplicar no conjunto de fbf's, ;, todas as possveis substituic~oes com termos pertecentes a um conjunto T de termos. Deni c~ao 7.1.12 Seja uma fbf na forma normal de Skolem. A expans~ao de Herbrand de , denotado por H(()), e o conjunto de todas as inst^ancias de , obtidas ao substituir cada variavel em por um termo de H . Exemplo 7.1.13 Seja = R(a x2 f (x2 ) x4). O domnio de Herbrand para e dado pelo seguinte conjunto H = fa f (a) f (f (a)) f (f (f (a))) : : : g: Portanto, a expans~ao de Herbrand de e descrita pela seguinte tabela x2 a a f (a) f (a) a ... x4 a f (a) a f (a) f (f (a)) ... R(a x2 f (x2) x4 ) R(a a f (a) a) R(a a f (a) f (a)) R(a f (a) f (f (a)) a) R(a f (a) f (f (a)) f (a)) R(a a f (a) f (f (a))) ... ~ 7.1. RESOLUCAO 141 onde x2 e x4 s~ao substitudos em todas as combinac~oes possveis pelos termos em H , com cada variavel sendo substituidas em todas suas ocorr^encias pelo mesmo termo. Cada certo intervalo de tempo podemos testar a conjunc~ao de inst^ancias para vericar se geramos inconsist^encia. Se a conjunca~o e consistente, geramos novas inst^ancias e testamos novamente esta conjunc~ao maior. Continuamos desta maneira ate um conjunto inconsistente ser achado. Isto, como veremos a seguir, acontecera exatamente no caso de ser insatisfatvel (e portanto, : seria universalmente valido). Teorema 7.1.14 !Teorema de Herbrand] Seja uma conjunc~ao nita de clausulas, e H seu domnio de Herbrand. e insatisfatvel se, e somente se, algum subconjunto nito de H(()) e inconsistente. Demonstraca~o: Veja Bun83]. A desvantagem com esta forma de mostrar que e insatisfatvel n~ao e o tempo gasto para testar a incosist^encia de um subconjunto de H(()), e sim o fato de que se H(()) e gerado de acordo com a complexidade crescente de termos basicos nas inst^ancias, um numero muito grande de inst^ancias devem ser gerados antes de obter uma conjunc~ao inconsistente. No entanto, frequentemente, uma subconjunca~o inconsistente pequena pode ser obtida. Portanto, o problema e descartar a gerac~ao das inst^ancias consistentes. Uma maneira para conseguir isto e prev^er qual inst^ancia de duas clausulas contera literais complementares. Usando esta informaca~o teremos como controlar a maneira na qual os termos de Herbrand s~ao construdos. Exemplo 7.1.15 Suponha que as clausulas de s~ao 1: P (x a y) 2: :P (f (z) w a) _ :P (z d w) 3: P (f (a) u a) _ :P (u a f (a)) Relembremos nossa convenc~ao de que letras do comeco do alfabeto, neste caso a b c e d, s~ao smbolos constantes, e letras do nal do alfabeto (u v w x y e z) s~ao variaveis. Qualquer inst^ancia de 1 casara com qualquer inst^ancia de 2 na qual x e substitudo por f (z ), e w e y s~ao ambos substitudos por a. Assim, tais inst^ancias de 1 de 2 ter~ao a forma 10 : P (f (z) a a) 20 : :P (f (z) a a) _ :P (z d a) Assim, existira uma famlia de resolventes de inst^ancias de 10 e 20 da forma ~ NA LOGICA CAPITULO 7. COMPUTACAO DE PREDICADOS 142 4 : :P (z d a) algumas destas colapsar~ao com inst^ancias de 3 , para isto substituimos z por f (a), u por d, obtendo as seguintes inst^ancias de 3 e de 4 3:P (f (a) d a) _ :P (d a f (a)) 4::P (f (a) d a) os resolventes obtidos ter~ao a forma 5 : :P (d a f (a)) a qual colide com a famlia 1 se substituirmos x por d e y por f (a). Desta forma as inst^ancias de 1 e 5 apos esta subsituic~ao tem a forma 100: P (d a f (a)) 50 : :P (d a f (a)) as quais se contradizem. Deste exemplo podemos observar que so um pequeno segmento de H(()) e contraditorio. No entanto, se H(()) fosse gerado pelo metodo de complexidade crescente de termos, o primeiro segmento contraditorio conteria entre 36 a 156 clausulas! A tecnica usada no exemplo 7.1.15 consiste em aplicar uma sucess~ao de substituic~oes de termos (n~ao necessariamente basicos) por variaveis, cada substituic~ao sendo escolhida de tal modo que o resultado de aplicar ela a duas clausulas e que alguns dos literais na primeira clausula colapsara com um : literal da segunda clausula. Para formalizar esta noc~ao introduziremos o conceito de unicador mais geral, abreviado por umg. Antes porem, veremos substituic~oes de variaveis por termos, pois o metodo de resoluc~ao depende dessa operac~ao basica sobre fbf's. Uma substituica~o fornece uma atribuic~ao de termos as variaveis. Neste caso, cada atribuic~ao e indicada por um par ordenado (termo, variavel). Deni c~ao 7.1.16 Uma substitui c~ao e um conjunto de componentes de substituic~oes independentes: = (t1 v1) : : : (tn vn)] O primeiro elemento de cada componente e um termo e o segundo elemento e uma variavel, tal que 1. vi 6= vj se i 6= j 2. vi n~ao ocorre em tj para qualquer i e j . ~ 7.1. RESOLUCAO 143 Deni c~ao 7.1.17 Se uma variavel v e trocada em cada uma de suas ocorr^encias livres, na fbf , pelo termo t, a formula resultante e chamada uma inst^ancia de substitui c~ao de , e denotada por (t v)], cuja leitura e \ com t por v". Analogamente, (t1 v1 ) : : : (tn vn)] denota o resultado de trocar simultaneamente todas as ocorr^encias das diferentes variaveis v1 : : : vn , em , por t1 : : : tn, respectivamente. A independ^encia das componentes de uma substituic~ao, que e assegurada pelas duas condic~oes acima, garante que duas substituic~oes s~ao, conjuntistamente, equivalentes se, e somente se, elas t^em o mesmo efeito sobre todas as express~oes. Portanto, aplicando uma substituic~ao a uma express~ao, n~ao importa a ordem das componentes. , o resultado de aplicar a substituic~ao a , e a inst^ancia de substituic~ao (t1 v1 ) : : : (tn vn)]. Exemplo 7.1.18 Seja = P (x z y ) _ P (e f (u y ) f (a b)) = (e x) (f (u v ) z ) (f (a b) y )] = (f (a b) v )]. Ent~ao = P (e f (u v ) f (a b)) _ P (e f (u f (a b)) f (a b)) ( ) = P (e f (u f (a b)) f (a b)) _ P (e f (u f (a b)) f (a b)). Como vi n~ao ocorre em tj , sabemos que nenhuma nova ocorr^encia de qualquer variavel afetada pela substituca~o pode ser introduzida atraves das componentes da substituic~ao. Podemos combinar a componente de substituic~ao (t x) com a substituic~ao = (t1 v1) : : : (tn vn)], desde que x 6= vi e vi n~ao ocorre em t, para todo i, 1 i n, como segue (t x)] = (t1(t x)] v1 ) : : : tn(t x)] vn )] Deni c~ao 7.1.19 Seja = (t1 v1) : : : (tn vn)] e = (t01 u1) : : : (t0m um)] duas sub- stituico~es , tais que ui 6= vj e vj n~ao ocorre em t0i , para cada i e j com 1 i m e 1 j n. A combinaca~o de com , e a substituic~ao : = (t1 v1 : : : (tn vn)] 144 ~ NA LOGICA CAPITULO 7. COMPUTACAO DE PREDICADOS Exemplo 7.1.20 Sejam as substituic~oes e exemplo 7.1.18. Note que as variaveis que s~ao substituidas em (x, z e y) s~ao diferentes das de (x) e que nenhuma variavel de ocorre nos termos de (f (a b)). Logo, e possvel combianr ambas substituic~oes . Assim, a combinac~ao das substuic~oes com resulta na substituic~ao : = (e x) (f (u v) z) (f (a b) y)](f (a b) v)] (e(f (a b) v)] x) (f (u v)(f (a b) v)] z) (f (a b)(f (a b) v)] y)] (e x) (f (u f (a b)) z) (f (a b) y)] Observe que se aplicarmos a substituic~ao a formula do exemplo 7.1.18 (P (x z y )_ P (e f (u y) f (a b))), obteremos a formula = P (x z y) _ P (e f (u y) f (a b))(e x) (f (u f (a b)) z) (f (a b) y)] = P (e f (u f (a b)) f (a b)) _ P (e f (u f (a b)) f (a b)) = ( ) : Deni c~ao 7.1.21 Seja ; = f1 : : : ng um conjunto de clausulas e uma substituic~ao. ; e unicado por se 1 = 2 = = n . Neste caso chamamos de unicador. Exemplo 7.1.22 Seja o conjunto de clausulas ; = fP (f (a) x) _ :R(a y) P (z f (z)) _ :R(u f (u))g. Um unicador para ; pode ser a substituic~ao: = (f (a) z) (f (f (a)) x) (a u) (f (a) y)] pois (P (f (a) x) _ :R(a y)) = P (f (a) f (f (a))) _ :R(a f (a)) e (P (z f (z)) _ :R(u f (u))) = P (f (a) f (f (a))) _ :R(a f (a)) Seja o conjunto de clausulas ; = fP (x f (y)) P (a f (f (u))) P (z f (f (f (w))))g. Um unicador para ; pode ser a substituic~ao: = (a x) (a z) (f (w) u) (f (f (w)) y)g pois P (x f (y)) = P (a f (f (f (w))) P (a f (f (u))) = P (a f (f (f (w))) e P (z f (f (f (w)))) = P (a f (f (f (w))) ~ 7.1. RESOLUCAO 145 Portanto um unicador e uma substituic~ao que torna as express~oes nas quais ele e aplicado parecidas. E importante estar consciente de que as express~oes resultantes s~ao as mesmas, apenas na apar^encia, n~ao em valor. Unicaca~o e um processo estritamente sintatico. Assim x + 2 pode ser unicado com 3 + 2 amarrando x a 3, mas x + 2 n~ao pode ser unicado com 5 ou 2 + 3. Deni c~ao 7.1.23 Uma substituic~ao e um unicador mais geral de um conjunto de clausulas ;, se para qualquer outro unicador existe uma substituic~ao tal que ; = (; ). Intuitivamente, entendemos que o unicador mais geral e aquele que faz a menor quantidade possvel de substituic~oes, no sentido que instanca variaveis, sempre que possvel, para unicar um dado conjunto de express~oes. Em muitos casos n~ao existira um unicador mais geral. Entretanto, se um conjunto de formulas at^omicas ; e unicavel, ent~ao existe uma substituica~o mais geral unicando ; e, alem disso, podemos fornecer um algoritmo para achar esta substituic~ao. Este procedimento, devido a Robinson Rob65], comeca com o conjunto vazio de substituic~oes e constroi, etapa por etapa, um unicador mais geral 0 para o conjunto ; de formulas at^omicas. Construiremos nossas componentes de substituic~oes unicadoras componente a componente. Se, na k-esima etapa, a substituic~ao ate ent~ao obtida e k , e as formulas at^omicas 1k : : : nk em ;k n~ao s~ao todoa iguais, ent~ao o procedimento troca k na base de um conjunto de discord^ancia contendo a primeira express~ao bem-formada em cada ik que precisa ser mudada. Deni c~ao 7.1.24 Seja ; = f1 : : : ng, onde cada i e uma formula at^omica. O conjunto de discord^ancias de ; e o conjunto de todas as subexpress~oes das formulas at^omicas em ; que comecam na posic~ao do primeiro smbolo no qual nem todas as formulas at^omicas coincidem. O conjunto de discord^ancias ou e o proprio ; (em cujo caso ; n~ao ser unicavel) ou ele contem um termo ou subtermo de cada formula at^omica em ; Exemplo 7.1.25 O conjunto de discord^ancias de fP (x f (g (y )) v ) P (x f (z ) w) P (x f (f (a)) w) P (x f (z ) a)g e fz g(y) f (a)g: Antes de exibir o algoritmo que fornece o unicador mais geral (umg) precisamos impor uma ordem em LP . Formulas bem formadas e sequ^encias de formulas bem formadas podem estar ordenadas lexicogracamente como segue: 146 ~ NA LOGICA CAPITULO 7. COMPUTACAO DE PREDICADOS 1. Os smbolos primitivos s~ao ordenados de acordo com o tipo (variaveis, constantes, smbolos de func~oes, smbolos de predicados e conectivos). Dentro de cada tipo, de acordo ao numero de seus argumentos ou aridade (para smbolos de func~oes e predicados), depois por subndices e nalmente, alfabeticamente. Os conectivos s~ao ordenados de acordo com seu escopo, isto e, :, ^, _, !, e $. Gracamente, os smbolos s~ao ordenados como segue variaveis subndices alfabeticamente constantes subndices alfabeticamente smbolos de func~oes aridade subndices alfabeticamente smbolos de predicado aridade subndices alfabeticamente 2. Formulas bem formadas s~ao ordenadas pela quantidade de formulas at^omicas que a comp~oem. Duas fbf's com a mesma quantidade de formulas at^omicas s~ao ordenadas pela ordem dos smbolos na primeira posica~o na qual elas diferem. Exemplo 7.1.26 Os literais P1 (x1 f (x2 ) a) P2(a f (a)) P2(x3 x2) P2(x2 f (x3)) P2(f (x1 ) a) t^em a seguinte ordem lexicograca: P2(x2 f (x3)) P2(x3 x2 ) P2(a f (a)) P2(f (x1 ) a) P1(x1 f (x2 ) a) Procedimento de unicac~ao de Robinson 1. Faca 1 = ] (a substituic~ao vazia), faca k = 0, e va para a etapa 2. 2. Faca k k + 1. Se os elementos de ;k s~ao todos iguais, faca 0 = k e pare. Caso contrario va para a etapa 3. 3. Sejam sk , tk os dois primeiros termos na ordem lexicograca do conjunto de discord^ancias de ;k . Se sk e uma variavel e n~ao ocorre em tk , faca k+1 = k (tk sk )] e va para 2. Caso contrario pare (n~ao existe nenhum umg). ~ 7.1. RESOLUCAO 147 Como ;k+1 contem uma variavel a menos que ;k , o procedimento deve parar em no maximo m etapas, onde m e o numero de variaveis de ;. E claro, tambem, que se o procedimento para na etapa 2, 0 e determinado unicamente e seus termos contem somente smbolos de func~ao ocorrendo em ;. E tambem verdade que se ; e unicavel ent~ao 0 esta denido e e um umg. Para uma prova desse fato v^er Lan64]. Finalmente, estamos em condic~oes de estender o conceito de um resolvente de duas clausulas basicas (denic~ao 4.1.7) para o caso onde as clausulas n~ao s~ao necessariamente clausulas basicas. Deni c~ao 7.1.27 Um resolvente de duas clausulas C1 e C2 e uma terceira clausula C3 obtida como segue: 1. Se v1 : : : vm s~ao variaveis de C2 e a maior variavel de C1, na ordem lexica, e uk , ent~ao dena = (uk+1 v1 ) : : : (uk+m vm )]. Portanto, nenhuma variavel em C2 ocorre em C1 . Isto e chamado separa c~ao padr~ao das clausulas C1 e C2. 2. Se existe um par de conjuntos de literais ; e ', tal que ; = f1 : : : k g C1 e ' = f1 : : : l g C2 e o conjunto f1 : : : k :1 : : : :l g e unicavel, ent~ao considere o unicador 0 , escolhido pelo procedimento de Robinson, o unicador mais geral. Portanto ;0 e (' )0 s~ao literais complementares (de fato eles s~ao conjuntos unitarios cujos elementos s~ao literais complementares). Logo, dena C3 como o seguinte conjunto de literais: (C1 ; ;)0 ((C2 ; ') )0 : Qualquer par de clausulas tem no maximo um numero nito de resolventes, pois existem somente uma quantidade nita de pares de conjuntos de literais ' e ;, e para cada par existe, no maximo, uma substituic~ao 0 . Os resolventes de um par de clausulas basicas s~ao resolventes basicos. Uma deduca~o por resoluc~ao e denida como antes, com o termo mais generico \resolvente no lugar de \resolvente basico". Deni c~ao 7.1.28 Uma dedu c~ao por resolu c~ao de uma clausula a partir de um conjunto de clausulas ;, denotado por ; ;! , e uma sequ^encia nita de clausulas 1 : : : n tal que 1. n e 2. para cada i, 1 i n, ou i (a) e um elemento de ;, ou (b) : 2 i para alguma formula at^omica , ou (c) e um resolvente de j e k , onde j k < i. 148 ~ NA LOGICA CAPITULO 7. COMPUTACAO DE PREDICADOS Note que, analogamente ao caso proposicional, a sequ^encia de clausulas 1 : : : n de uma deduc~ao por resoluc~ao, pode ser disposta na forma de uma arvore invertida. Deni c~ao 7.1.29 Uma deduc~ao por resoluc~ao de 2 a partir de um conjunto de clausulas ;, denotado por ; ;! 2, e chamada uma refuta c~ao de resolu c~ao ou simplesmente uma refuta c~ao, de ;. Proposi c~ao 7.1.30 Existe uma refuta c~ao de um conjunto de clausulas ; (isto e, ; ;! 2) se e somente se 2 2 Rn(;) para algum n, onde Rn e denido como anteriormente, omitindo o adjetivo \basico". Exemplo 7.1.31 Suponha que desejamos mostrar que o seguinte conjunto de clausulas e insatisfatvel. 1. P (y x) 2. :P (f (x) f (z)) _ :P (b x) 3. P (f (f (a)) x) Analogamente ao caso proposicional, nosso objetivo e mostrar que as clausulas s~ao inconsistentes exibindo uma refutac~ao por resoluc~ao delas. Temos, agora, um problema mais complicado, uma vez que temos de fazer a unicac~ao das clausulas. No entanto a estrategia geral e a mesma. Uma maneira facil para a separac~ao padr~ao e indexar todas as variaveis da clausula que pretendemos resolver, mesmo que as vezes n~ao seja necessaria renomear todas elas. Crescendo os ndices cada vez que uma etapa na resoluc~ao e efetuado podemos tambem indicar o comprimento da derivac~ao. No conjunto de clausulas, acima, resolveremos 1 e 2. Primeiro escrevemos uma nova vers~ao das clausulas 1 e 2: 10: P (y1 x1 ) 20: :P (f (x2) f (z2)) _ :P (b x2 ) Unicando 10 com P (b x2 ) da clausula 20 , achamos o umg 1 (b y1 ) (x2 x1 )]. Aplicando 1 a 10 e 20 derivamos o resolvente 4, como ilustra a gura 7.7. Renomeamos as variaveis em 3., obtendo a clausula 30: P (f (f (a)) x3) para unicar com P (f (x2 ) f (z2 )). Um unicador para estas formulas at^omicas e 2 = (f (a) x2) (f (z2) x3 )]. Aplicando este unicador as clausulas 30 e 4, derivamos 2, como mostra a gura 7.8. ~ 7.1. RESOLUCAO 149 10: P (b x2) 20: :P (f (x2 ) f (z2)) _ :P (b x2 ) @@ ; ; @@;; 4: :P (f (x2) f (z2)) Figura 7.7: Derivac~ao de um resolvente. 30: P (f (f (a)) x3) 5: :P (f (x2) f (z2)) @@ ; ; @@;; 2 Figura 7.8: A rvore para a refutaca~o de dois literais complementares. E claro que nem todas as renomeaco~es de variaveis do exemplo anterior foram necessarias, pois, por exemplo, a variavel z so ocorria na clausula 2. No entanto, n~ao existe nenhum dano em faz^e-lo, somente trazendo lucro ao criar-se o habito de renome-las, prevenindo os erros nos casos mais complicados. Exemplo 7.1.32 Considere, agora, o seguinte conjunto de clausulas 1. P (x h(x y )) 2. :P (x z) _ P (x h(y z)) 3. :P (c h(b h(a h(c b)))) Para assegurar que essas clausulas est~ao separadas na forma padr~ao geramos novas inst^ancias de cada clausula, subescrevendo todas as variaveis com sub-ndices na medida que vamos usando as clausulas na resoluc~ao. Denotaremos essa nova inst^ancia por uma linha sobre o numero original. Cada etapa da deduc~ao por resoluc~ao de 2 das clausulas 1-3 procede como segue: 1. Listamos as clausulas que pretendemos resolver (separac~ao padr~ao) 2. Fornecemos um umg dos literais selecionados nas clausulas em 1. 3. Listamos as clausulas novamente, tendo aplicado o umg a cada uma. 150 ~ NA LOGICA CAPITULO 7. COMPUTACAO DE PREDICADOS 4. Mostramos o resolvente derivado das clausulas. Analogamente a tecnica usada para eliminac~ao de literais complementares em logica proposicional, a refutac~ao pode ser ilustrada atraves de uma arvore, so que aqui precisamos considerar as unicac~oes que ser~ao usadas em cada etapa. A arvore da gura 7.9 mostra a refutac~ao, em forma de arvore, do conjunto de clausulas acima. 20: P (x1 h(y1 z1)) _ :P (x1 z1 ) 3: P (c h(b h(a h(c b)))) 1 = (c x1 ) (b y1) (h(a h(c b)) z1 )] P (c h(b h(a h(c b)))) _ :P (c h(a h(c b))) :P (c h(b h(a h(c b)))) !! @@ ! ! !! ! @@ ! ! @!!! :P (c h(a h(c b))) 200: P (x2 h(y2 z2 )) _ :P (x2 z2) 2 = (c x2) (a y2) (h(c b) z2)] :P (c h(a h(c b))) P (c h(a h(c b))) _ :P (c h(c b)) !! @@ ! ! !! ! @@ ! ! @!!! :P (c h(c b)) 10: P (x3 h(x3 y3)) 3 = (c3 x3) (b y3)] :P (c h(c d)) P (c h(c d)) @@ ; ; @@ ;; @; 2 Figura 7.9: A rvore para a refutaca~o de um conjunto de clausulas. Este exemplo mostra que uma clausula pode ser usada mais de uma vez numa refutac~ao. Cada clausula contendo variaveis, encarna uma quantidade innita de inst^ancias. ~ 7.1. RESOLUCAO 151 Como em ELC, n~ao eliminamos uma clausula ao usar-la, pois sempre podemos re-utilizarla, nem somos obrigados a usar todas as clausulas que nos s~ao dadas. Em cada um dos exemplos acima o conjunto de literais ; e ' (da denic~ao de resolvente) foram unitarios. Usualmente escolhemos clausulas para resolv^e-las e xamos nossa atenc~ao sobre um unico literal em cada clausula. No entanto, devemos estar atento para tratar cada clausula como um conjunto de literais, de vez que varios literais podem colapsar-se num unico literal apos a unicaca~o. Ignorando este fato podemos perder uma refutac~ao mesmo ela existindo. Vejamos o seguinte exemplo de duas clausulas: C1 : P (a) _ P (x) C2 : :P (a) _ :P (y) Olhando somente um unico literal de cada vez em cada clausula, e ignorando o colapso de um conjunto a um unico apos a unicaca~o, poderamos gerar os seguintes resolventes. 1. Resolvendo o primeiro literal em cada clausula obtemos P (x) _ :P (y) 2. Resolvendo o primeiro literal de C1 e o segundo de C2 , usando o unicador (a y)], obtemos P (x) _ :P (a) 3. Resolvendo o segundo literal de C1 e o primeiro literal de C2, usando o unicador (a x)], obtemos P (a) _ :P (y) 4. Resolvendo o segundo literal em cada clausula, usando (x y)], obtemos P (a) _ :P (a) Permitindo que clausulas, que e um conjunto de literais, contenham duas inst^ancias do mesmo literal e eliminando somente uma quando derivamos um resolvente, forca-nos a derivar somente clausulas de dois elementos, tornando impossvel derivar 2. Olhando mais cuidadosamente as resoluco~es fornecidas acima, no segundo caso deveramos ter obtido somente P (x), o qual, quando usado apropriadamente com C2, permitiria derivar 2. No terceiro item, deveramos ter obtido :P (y), que poderia ser usado com C1 para derivar 2. Poderamos, tambem, ter escolhido considerar as clausulas inteiras C1 e C2 como os conjuntos ; e ', respectivamente, da denica~o de resolvente. Ent~ao usando o umg 152 ~ NA LOGICA CAPITULO 7. COMPUTACAO DE PREDICADOS (a x) (a y)], derivariamos imediatamente 2. Note que isto n~ao e resolver os dois pares de literais ao mesmo tempo, o que n~ao e permitido, como observamos anteriormente. A raz~ao para eliminar dois literais de cada clausula e que antes da unicac~ao existem dois literais em cada clausula, mas apos a unicac~ao existe somente um em cada clausula, e o resultado de resolver sobre essas clausulas unitarias e 2. Vimos que nossa computac~ao para LP e muito parecida com a usada para LP . Entretanto, n~ao podemos mais assegurar que o processo de tomar os resolventes parara, como sabemos temos um numero innito de inst^ancias possveis de um literal toda vez que nosso domnio de Herbrand contem uma constante e um smbolo de func~oes. O teorema de Herbrand assegura, dado um conjunto inconsistente de clausulas ;, algum subconjunto nito de H((;)) e inconsistente, portanto 2 2 Rn(;) para algum n. Mas n~ao podemos colocar um limite sobre esse n. N~ao temos ideia quanto o programa deve executar para estabelecer a inconsist^encia de ; embora sabemos que dado bastante tempo ele de fato o fara. O problema e grave quando ; e consistente. Nosso processo de tomar os resolventes pode parar ou car executando para sempre. Portanto n~ao temos um procedimento de decis~ao para determinar se 2 2 Rn (;) ou n~ao para qualquer n, e um conjunto arbitrario de clausulas ;. Recapitulando, se queremos provar, usando resoluc~ao, que uma formula e um teorema, primeiro negamos a formula, convertemos-la a forma normal prenex, fechamos-la existencialmente, eliminamos quanticadores existenciais aplicando o processo de skolemizac~ao, -la, eliminamos sumariamente quanticadores universais e a transformamos na forma normal conjuntiva, para recem poder aplicar o metodo de eliminac~ao de literais complementares. Usamos o fecho existencial em vez do universal, pois queremos mostrar que : e uma contradic~ao , e uma formula e uma contradica~o se, e somente se, seu fecho existencial tambem e uma contradic~ao. Exemplo 7.1.33 Seja a formula P (x) ! 9x:P (x) Vamos a mostrar que existe uma refutac~ao da negac~ao de esta formula. Passo 1: Negar a formula :(P (x) ! 9x:P (x)) Passo 2: Forma normal prenex 8y::(P (x) ! P (y ) ~ 7.1. RESOLUCAO 153 Passo 3: Fechar existencialmente a Formula 9x:8y::(P (x) ! P (y )) Passo 4: Skolemizar 8y:(P (a) ! P (y )) Passo 5: Eliminaca~o de quanticadores universais P (a) ! P (y) Passo 6: Forma normal conjuntiva :(P (a) ! P (y )) !! :(:P (a) _ P (y )) !! ::P (a) ^ :P (y ) !! P (a) ^ :P (y ) Passo 7: Notaca~o Clausal 1. P (a) 2. :P (y ) Passo 8: Resoluc~ao A gura 7.10 ilustra a arvore que refutas as duas clausulas anteriores. Na mesma arvore esta indicado o unicador mais geral para essas duas clausulas. 1: P (a) 2: :P (y) 0 = (a y)] P (a) :P (a) @@ ; ; @@ ;; @; 2 Figura 7.10: A rvore da refutaca~o das clausulas P (a) e :P (y). Note que se nos tentasemos refutar a clausula P (x) ! 8P (x), a qual n~ao e universalmente valida, aconteceria: ~ NA LOGICA CAPITULO 7. COMPUTACAO DE PREDICADOS 154 Exemplo 7.1.34 Seja a formula P (x) ! 8x:P (x) Vamos a mostrar que existe uma refutac~ao da negac~ao de esta formula. Passo 1: Negar a formula :(P (x) ! 8x:P (x)) Passo 2: Forma normal prenex 9y::(P (x) ! P (y ) Passo 3: Fechar existencialmente a Formula 9x:9y::(P (x) ! P (y )) Passo 4: Skolemizar :(P (a) ! P (b)) Passo 5: Eliminac~ao de quanticadores universais: Como n~ao, ha quanticadores universais a formula ca a mesma. Passo 6: Forma normal conjuntiva :(P (a) ! P (b)) !! :(:P (a) _ P (b)) !! ::P (a) ^ :P (b) !! P (a) ^ :P (b) Passo 7: Notaca~o Clausal 1. P (a) 2. :P (b) Passo 8: Resoluc~ao: Como P (a) e P (b) n~ao s~ao unicaveis, n~ao e possivel achar um resolvente para estas clausulas. Portanto, n~ao s~ao refutaveis. 7.2. RESULTADOS DE COMPLETUDE 155 7.2 Resultados de Completude Sabendo o que signica verdade, deduc~ao e completaca~o no calculo de predicados, pretendemos investigar as relac~oes entre essas noco~es . Primeiro veremos que T P e seguro. Isto e que todo teorema de T P e uma formula universalmente valida. Segundo, estabeleceremos que se uma formula de LP e universalmente valida, ent~ao e possvel realizar uma refutac~ao por resoluc~ao de sua negac~ao. Finalmente, mostraremos que se e possvel realizar uma refutaca~o por resoluc~ao de sua negaca~o ent~ao pode-se provar que ele e um teorema de T P . Teorema 7.2.1 (T P e segura) Todo teorema de T P e uma formula universalmente valida. Isto e, se ` , ent~ao j= Demonstraca~o: Como posto no captulo 5 toda tautologia e universalmente valida, portanto os axiomas A1 , A2 e A3 s~ao universalmente validos. Das observac~oes no nal do captulo 5 temos que os axiomas A4 e A5 tambem s~ao universalmente validos. Finalmente, das mesmas observac~oes temos que a regra de generalizaca~o e modus ponens preservar~ao validade universal, isto e se e universalmente valida, ent~ao 8x: tambe e universalmente valida. Analogamente, se e ! s~ao universalmente validas, ent~ao e universalmente validas. A seguir, mostraremos que a negaca~o de uma formula e universalmente valida, ent~ao a formula e refutavel. Mas, antes precissaremos mostrar uma serie de resultados previos. Lema 7.2.2 Seja H; o domnio de Herbrand de ; e T um conjunto de termos tal que T H;, ent~ao R(T ((;))) T ((R(;))). Demonstraca~o: Suponha que 2 T ((;)). Como ; R(;) e R(;) T ((R(;))), ent~ao 2 T ((R(;))). Se e um resolvente, ent~ao = ( ; p) ( ; p ), onde 2 ;, 2 T ((;)) e p e p s~ao literais complementares. Sejam e as seguintes sunstituic~oes = (s1 x1) : : : (sk xk )] e = (t1 y1) : : : (tm ym)], onde x1 : : : xk s~ao todas as variaveis de e y1 : : : ym s~ao todas as variaveis de . Seja = (xk+1 y1) : : : (xk+m ym)] a separac~ao padr~ao das varaveis de e . Dena, a substituic~ao = (s1 x1) : : : (sk xk ) (t1 xk+1) : : : (tm xk+m)] Claramente, = , = , p = p e p = p . Logo, = ( ; p) ( ; p). Como unica o conjunto p pop , existe um unicador mais geral 0 e um resolvente 0 de e , tal que ~ NA LOGICA CAPITULO 7. COMPUTACAO DE PREDICADOS 156 0 = ( ; p)0 ( ; p)0 Como 0 e um unicador mais geral e e um unicador de p pop , ent~ao existe uma substituic~ao tal que (p pop ) = ((p pop )0 ) e portanto 0 = . Logo, = 0 . Assim, 2 T ((R(;))), isto e e uma instancia de substituic~ao de um resolvente de clausulas em ;. Corolario 7.2.3 Rn(T ((;))) T ((Rn(;))) Demonstraca~o: Provaremos este corolario por induc~ao em n. Caso base: Se n = 1 ent~ao como R1 (T ((;))) = R1(T ((;))) e T ((R(;))) = T ((R1 (;))), temos que pelo lema ??, Rn(T ((;))) T ((Rn(;))). Etapa indutiva: Assuma que Rk (T ((;))) T ((Rk (;))). Mostraremos que Rk+1 (T ((;))) T ((Rk+1 (;))) Rk+1 (T ((;))) = R(Rk (T ((;)))) R(T ((Rk (;)))) T (R((Rk (;)))) T (Rk+1 (;))) denic~ao de Rk+1 hipotese indutiva lema ?? denic~ao de Rk+1 Teorema 7.2.4 Se ; e um subconjunto insatisfatvel de LP , ent~ao 2 2 Rn(;), para algum n. Demonstraca~o: Se ; e insatisfatvel, ent~ao, pelo teorema 7.1.14, algum conjunto nito de H((;)) e incosistente. Suponha que este conjunto inconsistente e T ((;)). Como T ((;)) e um conjunto de clausulas basicas (sem variaveis) ent~ao pelo corolario 4.2.13, temos que T ((;)) ;! 2. Assim, pelo corolario 4.1.20 temos que 2 2 Rn(T ((;))) para algum n. Pelo corolario 7.2.3 temos que 2 2 T ((Rn(;))) para algum n. Como substituir termnos variaveis numa clausula n~ao vazia n~ao pode gerar uma clausula vazia, ent~ao 2 2 Rn (;) para algum n. Corolario 7.2.5 Se j= ent~ao : ;! 2 Demonstraca~o: Se j= ent~ao : e insatisfatvel. Logo, pelo teorema anterior, 2 2 Rn (:), para algum n. Pelo corolario 4.1.20, temos que : ;! 2. Lema 7.2.6 Se : ;! ent~ao ` : ! . 7.2. RESULTADOS DE COMPLETUDE 157 Demonstraca~o: Se : ;! ent~ao existe uma deduc~ao por resoluc~ao de a partir de :. Seja 1 : : : n uma tal deduc~ao por resoluc~ao. Mostraremos por induca~o em 1 i n que ` : ! i. Caso base: Se i = 1 ent~ao, por denic~ao de deduc~ao por resoluc~ao , i so pode ser uma clausula de :. Ent~ao, trivialmente, 1 e uma prova de : ` 1 . Como n~ao se aplicou Gen na prova, podemos aplicar o teorema da deduc~ao e armar que existe uma prova de ` : ! 1 . Etapa indutiva: Assuma que ` : ! i para cada i k. Devemos mostrar que ` : ! k+1. Se k+1 e uma clausula de :, ent~ao de modo analogo ao caso base, temos que ` : ! k+1. Se k+1 e um resolvente de i e j , com i j k, ent~ao pelo lema ??, ` (i ^ j ) ! k+1, isto e ` :(i ! :j ) ! k+1. Pela hipotese indutiva temos que ` : ! i e ` : ! j . Logo, pelo exerccio 1.f. do captulo 3, temos que ` : ! (i ^ j ). Assim, pela proposica~o 3.3.3.i, temos que ` : ! k+1 . Como, n = , ent~ao ` : ! . ne Teorema 7.2.7 Se existe uma refutac~ao por resoluc~ao da negac~ao de , ent~ao e um teorema. Isto e, se : ;! 2, ent~ao ` . Demonstraca~o: Se : ;! 2 ent~ao, pelo lema 7.2.6, ` : ! 2. Como 2 e uma abreviac~ao da formula ^ : , ou equivalentemente da formula :( ! ) ent~ao ` : ! :( ! ). Assim, 1) : ! :( ! ) 2) (: ! :( ! )) ! (( ! ) ! ) prop. 3.3.4.d 3) ( ! ) ! MP 1 2 4) ! prop. 3.2.1 5) Teorema 7.2.8 Para o calculo de predicado as tr^es assertivas seguintes s~ao equivalentes: 1. ` , e um teorema. 2. j= , e logicamente valida 3. : ;! 2, existe uma refutac~ao por resoluc~ao de :. ~ NA LOGICA CAPITULO 7. COMPUTACAO DE PREDICADOS 158 Demonstraca~o: Direto dos teoremas 7.2.1 7.2.7 e do corolario 7.2.5. Assim logica de predicado e segura, completa e consistente. No entanto ela n~ao e decidvel. Observe que no caso proposicional temos um teorema da completude forte: ; j= se, e somente se, ; ` se, e somente se, ; ;! mas no caso da logica de predicados isto n~ao e verdade, pois nos temos, por exemplo, que P (x) ` 8x:P (x) mas 8x:P (x) n~ao e consequ^encia logica de P (x), isto e, P (x) 6j= 8x:P (x). Isto se deve a que as exig^encias da relaca~o de consequ^encia logica s~ao muito fortes, mas se enfraquecermos estas, conseguiremos ter uma noc~ao de consequ^encia sem^antica que coincida com `. Deni c~ao 7.2.9 Seja ; LP e 2 LP . e consequ^encia logica forte de ;, denotado por ;tj , se toda vez que todas as formulas de ; s~ao verdadeiras numa interpretac~ao, tambem e verdadeira na mesma interpretac~ao. Isto e, ;tj se, e somente se, para cada interpretac~ao D se D j= ; ent~ao D j= Proposi c~ao 7.2.10 Se ; j= ent~ao ;tj Demonstraca~o: Se D j= ; para uma interpretaca~o D, ent~ao para cada atribuic~ao : X ;! D, temos que D j= ;. Como ; j= , ent~ao D j= , para cada atribuic~ao : X ;! D. Portanto, D j= . Proposi c~ao 7.2.11 Se ;tj ent~ao FU (;) j= , onde FU (;) e o fecho universal de todas as formulas em ;. Demonstraca~o: Note que uma formula e verdadeira numa interpretaca~o se, e somente se, seu fecho universal tambem e verdadeira para essa interpretac~ao. Note tambem que se uma formula fechada e verdadeira numa interpretac~ao , ent~ao a ela e verdeira nessa interpretac~ao para qualquer atribuic~ao. Logo, se FU (;) e verdadeira para uma interpretac~ao D e uma atribuic~ao , ent~ao FU (;) e verdadeira na interpretaca~o D. Portanto, ; e verdadeira na interpretac~ao D. Logo, como ;tj , ent~ao e verdadeira para essa interpretac~ao (e para a atribuic~ao ). Portanto, FU (;) j= . Usaremos a notac~aotj em vez de tj . Corolario 7.2.12 j= se, e somente se,tj 7.2. RESULTADOS DE COMPLETUDE 159 Demonstraca~o: Direto da proposica~o 7.2.10 temos que se j= ent~aotj . Por outro lado, setj , ent~ao direto da denic~ao detj e de universalmente valida, temos que e universalmente valida, isto e, j= . Note que para a relac~ao de consequ^encia forte vale o teorema da compacidade, isto e, se ;tj ent~ao ;0tj para algum ;0 ; nito. Mas, n~ao vale o teorema da deduc~ao irrestrito, pois trivialmente temos que P (x)tj 8x:P (x), mas n~ao temos quetj P (x) ! 8x:P (x). Assim, deveriamos impor algumas condico~es, semelhantes ao caso do teorema da deduc~ao para ` ( 6.2.4), mas se tratando de interpretac~ao isto resulta dicil. Proposi c~ao 7.2.13 Se ; ` ent~ao ;tj Demonstraca~o: Seja 1 : : : n uma prova de ; ` junto com uma justicativa para cada passo da deduca~o. Mostraremos por induc~ao que ;tj i para cada 1 i n. Caso base: i = 1. 1 ou e uma formula de ; ou e um axioma. No primeiro caso, trivialmente temos que j= , e usando o teorema da compacidade (observac~ao 3. do captulo 5), temos que ; j= . Logo, pela proposica~o 7.2.10, temos que ;tj . No segundo caso, temos que ` . Logo, aplicando o teorema seguro temos que j= . Assim, novamente usando o teorema da compacidade e a proposica~o 7.2.10, temos que ;tj . Etapa indutiva: Assuma que ;tj i, para i < k. Devemos mostrar que ;tj k . 1. Se k e um axioma ou um elemento de ;, o resultado segue como no caso base, acima. 2. Se k sai por MP de i e j = i ! k com i j < k, ent~ao pela hipoteses indutiva ;tj i e ;tj i ! k . Isto e, para cada interpretac~ao D, tal que D j= ;, D j= i and D j= !k . Seja : X ;! D uma atribuic~ao de valores as variaveis arbitraria. Ent~ao, pela denica~o 5.5.9, V(i) = 1 e V (i ! k ) = 1. Pela denic~ao 5.5.4, V (i ! k ) = 1 se, e somente se, V (i ) ) V (k ) = 1. Como V (i ) = 1, ent~ao V (i ) ) V (k ) = 1 se, e somente se, 1 ) V (k ) = 1. Mas, pela denica~o do operador booleano ), 1 ) V(k ) = 1 se, e somente se, V (k ) = 1. Logo, se D j= ; ent~ao D j= k . Portanto, ;tj k . 3. Se k sai por Gen de i com i < k, ent~ao k = 8x:i para alguma variavel x. Seja D uma interpretac~ao tal que D j= ;. Ent~ao, pela hipoteses indutiva (;tj i ), temos que D j= i, isto e para qualquer atribuica~o de valores as variaveis : X ;! D, V (i ) = 1. Como a atribuic~ao e arbitraria, ent~ao V0 (i ) = 1 para qualquer atribuic~ao 0 : X ;! D a qual varia de , no maximo, na atribuc~ao dada a variavel x. Logo, pela denic~ao 5.5.4, V (8x:i ) = 1. Portanto, ;tj 8x:i , isto e, ;tj k . Portanto, ;tj i para cada 1 i n. Como n = , ent~ao ;tj . 160 ~ NA LOGICA CAPITULO 7. COMPUTACAO DE PREDICADOS Proposi c~ao 7.2.14 Seja ; uma conjunto de clausulas e uma clausula. Se ;tj ent~ao ; ;! . Ou seja, se e consequ^encia logica forte de ;, ent~ao existe uma deduc~ao por resoluc~ao de a partir de ;. Demonstraca~o: Se ;tj ent~ao FU (;) j= . Pelo teorema da compacidade existe ;0 FU (;) nito tal que ;0 j= . Seja ;0 = f1 : : : ng. Aplicando o teorema da deduc~ao temos que j= 1 ! (: : : ! (n ! ) : : : ). Pelo teorema da completude, :(1 ! (: : : ! (n ! ) : : : ) ;! 2. Como, :(1 ! (: : : ! (n ! ) : : : ) 1 ^ : : : n ^ :, ent~ao ;0 : ;! 2 (observe que cada i e uma clausula). Logo, pelo corolario 4.1.13, temos que ;0 ;! . Portanto, pela propriedade de monotonicidade a esquerda (proposica~o 4.1.11), ; ;! . Proposi c~ao 7.2.15 ; ;! implica ; ` . Demonstraca~o: ; ;! implica que uma deduc~ao por resoluc~ao de a partir de ; existe. Mostremos, por induc~ao que para todo i, ; ` i . Caso base: i = 1. 1 e uma clausula de ;. Ent~ao, trivialmente, a sequ^encia 1 e uma prova de ; ` 1. Etapa indutiva: Assuma que ; ` i , para cada i < k. Devemos mostrar que ; ` k . 1. Se k e uma clausula de ;, ent~ao, como no caso para i = 1, temos que trivialmente, ; ` k . 2. Se k e um resolvente de duas clausulas anteriores na sequ^encia, suponha que de i e j , onde i j < k, ent~ao k = (i ; p) (j ; pop) para algum literal p. Pela hipoteses indutiva temos que ; ` i e ; ` j . Observe que p _ pop ! . Assim, i pop ! (i ; p) e j p ! (j ; pop). Portanto ; ` pop ! (i ; p) e ; ` p ! (j ; pop). Pelo exerccio 2.f. e 2.g. do captulo 3, temos que ; ` :(i ; p) ! (j ; pop ). Ou seja ; ` (i ; p) (j ; pop ). Portanto, ; ` k . Para i = n, temos ; ` n. Como n = , ent~ao ; ` . Portanto, ; ;! implica ; ` . Teorema 7.2.16 (Teorema da Completude Forte) Na logica de predicados ; ` se, e somente se, ;tj se, e somente se, ; ;! Demonstraca~o: Direto das proposic~oes 7.2.13, 7.2.14 e 7.2.15. 7.3. EXERCICIOS 161 7.3 Exerccios 1. Transforme as seguintes fbf's na forma normal Prenex, elimine os quanticadores e transforme-as na forma normal conjuntiva reduzida. (a) 8x:(:P (x y) ! 9y:P (y x)) (b) 8x:(P (z x) _ R(x y)) ! (9x:P (z x) _ 8x:R(x y)) (c) 9x:P (x y) ! 9y:(P (y x) ^ R(a f (x y))) (d) 8x:9y:(P (x f (a y)) ^ 9x:R(x)) (e) :(8x:(P (x y) ! 9y:R(y z)) ^ 9z:P (z x)) 2. Determine o unicador mais geral para cada um dos seguintes pares de termos. Se estes n~ao s~ao unicaveis diga o porqu^e. a: b: c: d: P (x f (a x)) P (x f (g(a y) z)) f (a f (b f (c x))) f (x f (a f (y c))) P (b y) P (b f (g(a f (w c)) h(y x))) f (a y) f (z f (z f (f (a c) w))) 3. Exibir uma refutac~ao por resoluc~ao para cada uma dos seguintes conjuntos de clausulas. Algumas dicas: Estandartize a parte um par de clausulas antes de unicar. Indique cada subtituic~ao unicadora claramente. Realize a substituic~ao unicadora em ambas as clausulas. N~ao existe limite para a quantidade de vezes que se usa uma clausula em particular. 162 ~ NA LOGICA CAPITULO 7. COMPUTACAO DE PREDICADOS a: P (a x x) P (f (y x) w f (x z)) _ :P (y w z) :P (f (a f (b a)) f (c a) x) b: Q(a b) Q(f (y x) g(z)) _ :Q(y z) :Q(f (x f (c f (d a))) w) c: R(x a a) R(x f (x y) z) _ :R(x y z) R(x f (y z) f (y w)) _ :R(x z w) :R(b f (b f (c f (b a))) x) d: P (x e x) :P (y z v ) _ :P (y v w) _ :P (e z w) P (a f (u v) e) :P (e f (f (b c) a) a) e: P (c a f (x)) P (f (y) a f (z)) _ :P (y x z) :P (f (f (y )) z f (f (f (z )))) f: P (x f (x y) g(a)) :P (a x z ) _ P (g (y ) f (a x) z ) :P (g (z ) f (a f (a a)) z ) _ :P (a f (a z ) z ) 4. Mostre que ; ;! , quando: (a) ; = f:P (x) _ R(x y) P (x)g e = R(x y). (b) ; = fP (x x) :P (x z) _ P (x y) _ P (y z)g e = P (a a) 5. D^e uma refutac~ao da negac~ao da formula 8x:8y::(P (y x) ! 9z::(P (f (x) f (z )) ! 8x1 ::P (x1 x))) ! 8x2 ::P (f (f (x2 )) x)) Captulo 8 Programac~ao em Logica e Prolog Os paradigmas funcional e imperativo de programac~ao se baseam na noca~o de que um programa implementa um mapeamento ou funcao. Numa linguagem imperativa, o programa tipicamente e um comando que l^e entradas de arquivos e imprime sadas de arquivos. As sadas s~ao funcionalmente dependentes das entradas, desse modo o programa pode ser visto abstratamente como implementando um mapeamento de entradas em sadas. Em linguagens funcionais, um programa e tipicamente uma func~ao, e portanto obviamente implementa uma aplicac~ao. Ja a programac~ao em logica se baseia na noca~o de que um programa implementa uma relac~ao, em vez de um mapeamento. Como relac~oes s~ao mais gerais que func~oes, programac~ao em logica e potencialmente de mais alto nvel que programac~ao funcional e imperativa. A logica, alem de ser um formalismo propcio para representar de manera declarativa o conhecimento sobre alguma realidade, pode ser executada, no sentido que podemos escrever programas que representem o conhecimento usando o formalismo de um subconjunto da logica de predicados (notac~ao clausal) como linguagem de representac~ao, podem-se inferir novos fatos e conhecimentos usando deduco~es atraves de alguns metodos de prova automatica de teoremas. Quando se usa logica como formalismo de representaca~o, a resoluca~o de problemas se encara como demonstrac~ao de teoremas. O principio de resoluc~ao e o algoritmo de unicac~ao de Robinson, descrito no captulo anterior, fornecem a base para execuc~ao de programas em logica. Um programa em logica e um modelo ou descric~ao de um problema ou situac~ao atraves de um conjunto nito de sentencas logicas. Assim, ao contrario de programas procedurais ou imperativos, por exemplo escritos em C++ ou Java, um programa em logica n~ao descreve um procedimento (uma sequ^encia de passos ou comandos computacionais) para resolver um problema, mas o proprio problema. Este tipo de abordagem, conhecido como programac~ao declarativa, n~ao e exclussivo do paradigma logico de programac~ao, pois o paradigma funcional descreve um problema em termos de denic~oes e avaliac~oes de func~oes , pelo que tambem pode ser considerado como programac~ao declarativa. Um programa em logica pode ser visto como uma base de dados mais complexa, onde 163 164 ~ EM LOGICA CAPITULO 8. PROGRAMACAO E PROLOG n~ao so se t^em dados do tipo: \Luiz paga a disciplina logica aplicada a computaca~o ", mas tambem regras indicando como deduzir novos fatos, por exemplo \todo aluno que paga logica aplicada a computac~ao ja pagou algebra universal". Claramente, de essa informac~ao e dessa regra podemos deduzir que \Luiz ja pagou algebra universal", sem precissar incluir explicitamente esta informac~ao no programa. A execuc~ao de um programa em logica e realizada atraves de consultas ao programa, isto e, armaco~es exprimindo condico~es que devem ser satisfeitas por um resposta correta, com respeito a informac~ao contida no programa. A maioria dos sistemas desenvolvidos para programac~ao em logica encontr~ao as respostas das consultas ao programa atraves de uma pesquisa de refutaco~es da negac~ao da consulta. Assim, o formalismo logico permite emular sistemas baseado em regras, com encadeamento para adelante ou para atras, e objetos estruturados. Pode-se tambem, com maior diculdade, manipular valores por default e exepco~es, assim como quanticar existencial e universalmente a express~oes. Fundamentalmente, um programa em logica pode ser visto como uma teoria de verdade que da fundamento solido a todo o sistema. Sintetizando, programac~ao em logica e logica em ac~ao, onde as computac~oes s~ao realizadas como deduc~oes. Na atualidade existem diversas linguagens de programaca~o com esta losoa, chamada paradigma da programac~ao em logica. As mais conhecidas s~ao Prolog, G+odel HL94] e Isabelle Pau94, NP01]. Aqui descreveremos a linguagem de programaca~o Prolog, o qual e uma ferramenta usada para escrever programas baseados no raciocnio logico (classico) que s~ao executaveis pelo computador. Prolog e um acr^onimo de PROgramming in LOGic (programac~ao em logica). Assim, Prolog, e uma linguagem de programaca~o baseada em logica formal. Muitos programas de intelig^encia articial s~ao escritos em Prolog, pois esta linguagem permite, de maneira natural, a representac~ao e deduca~o de conhecimento. O Prolog foi implementado e projetado por Alain Colmerauer e seu Grupo de Intelig^encia Articial ?], na Franca em 1972, fruto dos trabalhos e ideias de Robert Kowalski e outros autores Kow72, Kow74]. Mas esta linguagem so comecou a cativar adeptos a nvel mundial, quando Pereira, Pereira e Warren implementaram na Universidade de Edinburgh PPW79] o primeiro compilador Prolog escrito em Prolog. Prolog e uma linguagem de programac~ao interativa baseado em logica com facilidades para a manipulac~ao smbolica e com um motor de infer^encia, que lhe permite responder automaticamente quest~oes, n~ao so referentes ao conhecimento que contem explicitamente cada programa, mas tambem ao que se pode deducir de ele. Prolog utiliza um subconjunto da logica de predicados de primeira ordem, chamado clausulas de Horn, que se caracteriza por que cada regra pode conter nenhum, hum ou mais antecendentes unidos conjuntivamente, mais no maximo so pode ter um consequente. As infer^encias se realizam mediante o principio da resoluca~o proposto por Robinson em Rob65], utilizando o algoritmo da unicac~ao. 8.1. CONCEITOS BASICOS 165 Existem predicados predenidos que implementam funco~es extra-logicas. Estos predicados, embora fogem da proposta original de programaca~o declarativa, s~ao necessarios para que Prolog seja uma linguagem de programac~ao de utilizaca~o pratica real. Uma caracterstica desta linguagem, assim como de diversas linguagens funcionais, e que programas nesta linguagem n~ao s~ao eci^entes quando rodados em um hardware convencional, que foram projetados para linguagens procedurais, que s~ao mais orientadas ao calculo numerico. Muitos programas de intelig^encia articial s~ao escritos em Prolog, pois esta linguagem permite, de maneira natural, a representac~ao e deduca~o de conhecimento. Neste captulo daremos uma introduc~ao a esta linguagem, cobrindo as bases do Prolog, de modo que, o estudante, com ajuda de um manual do usuario, seja capaz de escrever e executar programas em algum dos tantos compiladores Prolog. 8.1 Conceitos Basicos 8.1.1 Clausulas de Horn Vimos que toda fbf do calculo de predicado e equivalente a uma fbf na forma normal prenex e a parte livre de quanticadores dela e equivalente a uma formula na forma normal conjuntiva reduzida. A eliminac~ao de quanticadores n~ao gera uma formula equivalente, mas a formula original e um teorema ou uma contradic~ao se, e somente se, a formula resultante do processo de skolemizac~ao tambem e um teorema ou uma contradic~ao , respectivamente. Consideramos ent~ao, esta formula bem formada como um conjunto (entendido, por convenc~ao, como sendo uma conjunc~ao) de clausulas, cada uma das quais e um conjunto (entendido como uma disjunca~o) de literais. Deni c~ao 8.1.1 Uma clausula de Horn e uma clausula com no maximo um literal positivo. E conveniente, de um ponto de vista de programac~ao, escrever clausulas como implicac~oes em vez de disjunc~oes. Assim a clausula :1 _ _ :n _ 1 _ _ k seria escrita (1 ^ ^ n) ! (1 _ _ k ) E uma clausula de Horn, como 166 ~ EM LOGICA CAPITULO 8. PROGRAMACAO E PROLOG :1 _ _ :n _ seria escrito (1 ^ ^ n) ! Portanto, uma clausula de Horn e uma implicaca~o cujo antecendente e uma conjunc~ao de formula at^omicas e cujo consequente consiste de no maximo uma formula at^omica. Existem quatro tipos de clausulas de Horn 1. Aquelas com uma conclus~ao mas sem nenhuma condica~o 2. Aquelas com condic~oes e conclus~ao 3. Aquelas com condic~oes mas sem nenhuma conclus~ao 4. A clausula vazia, escrito 2, como anteriormente. No que segue sobre programac~ao em logica, usaremos convenc~oes da sintaxe Prolog. Isto nos permitira usar nomes para predicados, func~oes, constantes e variaveis mais signicativos (mnem^onicos). Smbolos de predicados, de func~oes e constantes iniciar~ao com letras minusculas (numero podem tambem ser usados como smbolos de constantes), variaveis comecar~ao com letras maiusculas. Escreveremos, tambem, implicaco~es na clausula de Horn para tras (isto e, a conclus~ao sera colocada primeiro, e usaremos :-, em vez de para separar a conclus~ao das condic~oes das implicac~oes). 8.1.2 Caractersticas Basica do Prolog Comparada com as linguagens algortmicas classicas, tais como Pascal, C e JAVA, que s~ao antes de tudo projetadas para computac~oes numericas, escrever sistemas, etc., uma linguagem para programac~ao em logica tem duas principais diferencas. Ela e orientada para \computaca~o simbolica": os dados basicos s~ao \smbolos" os quais somente representam eles proprios e n~ao s~ao interpretados na linguagem. Ela n~ao especica o algoritmo diretamente para ser executado e produzir resultados, mas especica objetos, propriedades dos objetos e relaco~es entre eles. Fala de fatos, regras para derivar novos fatos, e consultas (queries em ingl^es) para constatar se um fato foi estabelecido ou n~ao. 8.2. ESTRUTURA BASICA DO PROLOG 167 8.2 Estrutura Basica do Prolog As tr^es especies de assertivas: fatos, regras e quest~oes podem ser lidas como predicados em logica e, neste caso, a linguagem e um subconjunto da logica formal. Ao mesmo tempo, Prolog e uma linguagem de programaca~o: para obter a resposta a uma consulta e executado um algoritmo numa ordem precisa. No que segue, apresentaremos esses dois aspectos: o declarativo da logica formal e o procedural das linguagens de programac~ao. Prolog e interessante por ser, de alguma maneira, logica em aca~o. Ela executa formulas logicas. Considere, por exemplo, os dois axiomas \0 e um numero natural" \se n e um numero natural, ent~ao s(n) e um numero natural" Um programa Prolog pode implementar esses axiomas da seguinte maneira natural(0). natural(s(n)) :- natural(n). Este programa e capaz de gerar e reconhecer numeros naturais, dependendo da quest~ao: ?- natural(s(s(s(0)))). ;! sim ?- natural({). ;! sim ?- natural(Prolog). ;! n~ao ?- natural(X). ;! X=0 ;! X=s(0) ;! X=s(s(0)) ;! X=s(s(s(0))) ... A primeira consulta e \s(s(s(0))) e um numero natural"?, a segunda e \existe um numero natural"?, a terceira \Prolog e um numero natural? e a ultima e \O que e um numero natural"?. Se quizermos que s(s(s(0))) seja escrito 3, temos de programa-lo para tal. Um programa realizando diferenciac~ao simbolica de polin^omios pode conter o fato ~ EM LOGICA CAPITULO 8. PROGRAMACAO E PROLOG 168 deriv(X,X,1) para representar que a derivada de x com respeito a x e 1. Ele pode conter as regras: deriv(U+V,X,A+B) :- deriv(U,X,A),deriv(V,X,B). deriv(U-V,X,A-B) :- deriv(U,X,A),deriv(V,X,B). A primeira dessas duas regras diz que \a derivada de U+V com respeito a X e A+B se A e a derivada de U e B e a derivada de V". Tais assertivas denem o ponto de vista Prolog da relac~ao ternaria \a derivada de com respeito a e ". Este e o aspecto logico da linguagem, ou sua leitura declarativa. Ja no aspecto procedural de Prolog, se descrevem computac~oes a serem executadas. Assim, a primeira regra diz que \para obter a derivada de U+V, primeiro se deve computar a derivada de U e V, dando A e B respectivamente, e ent~ao construir o termo A+B". As raz~oes para essa dupla leitura e a seguinte: Um sistema Prolog e um provador de teoremas explorando os aspectos logicos da linguagem. O sistema tem de mostrar uma contradic~ao entre a negac~ao da quest~ao e o conjunto de fatos e regras. Esta refutac~ao, quando bem sucedida, exibe contra-exemplos que s~ao as respostas a quest~ao. A estrategia usada para achar e simples. 8.2.1 Termos e objetos Em Prolog, assim como em logica, objetos num \universo de discurso" (que e o conjunto dos objetos considerados) s~ao representados por termos. Como a linguagem n~ao interpreta esses termos, podemos dizer, tambem, que os objetos tratados por Prolog s~ao termos, cada termo sendo um objeto simbolico pertecente a uma das seguintes categorias: constantes individuais ou atomos, variaveis, func~oes ou termos funcionais consistindo de um nome de func~ao e uma lista de argumentos, que s~ao termos. A sintaxe deve permitir classicarmos um termo na sua categoria, especialmente variaveis como distintas de constantes. A sintaxe usada depende de cada implementac~ao do Prolog. Aqui usaremos Um atomo pode ser escrito de uma das tr^es maneiras: { como um identicador comecando com uma letra minuscula, podendo conter subtracos: 8.2. ESTRUTURA BASICA DO PROLOG 169 henrique iv. pedro { como um numero 321 3.21 { como uma sequ^encia de caracteres sob aspas simples \quem e voce?" \eu n~ao sei" Uma variavel e um identicador comecando com uma letra maiuscula, podendo conter sub-traco X Nome Rei da Belgica Uma func~ao e um nome de func~ao seguido por uma lista de termos entre par^enteses, onde um nome de func~ao tem a forma de um atomo n~ao-numerico: autor de(scott) f(x,y,z) \oi!"(pedro) Um programa em Prolog e usualmente um modelo de alguma parte da realidade cujos termos s~ao usados para representar objetos reais. Por exemplo, para modelar uma biblioteca, os atomos podem representar nomes de autores e ttulos de livros, termos funcionais podem representar livros e edic~oes: edic~ao(wiley,1987) livro(davis,the undecidable,edic~ao(raven,1965)) Portanto, os atomos representam objetos que s~ao considerados indivduos elementares. E pratica normal usar identicadores mnem^onicos, isto e, nomes que lembram os objetos que eles representam, tais como wiley, davis, em vez de nomes an^onimos como x22 ou bbb. O mesmo podemos dizer para termos funcionais: edic~ao(wiley,1987) e n~ao e(w,1987). E bom observar que as func~oes de Prolog s~ao vistas como estruturas de dados compostas, similares aos registros em Pascal, e consequentemente, elas podem ser construdas e analisadas. Elas n~ao s~ao func~oes aplicadas a argumentos para denotar o resultado correspondente. Termos em que n~ao ha variavel s~ao os dados constantes em Prolog. Em logica eles s~ao os termos basicos ou termos constantes. A menos dos atomos numericos, os termos n~ao s~ao interpretados por Prolog, isto e, eles n~ao representam os dados, eles s~ao os dados. 170 ~ EM LOGICA CAPITULO 8. PROGRAMACAO E PROLOG 8.2.2 O Escopo dos Identicadores A menos de atomos numericos, que podem ser interpretados como numeros nas computac~oes numericas, e tirando func~oes ou predicados construdos, que tem um signicado pre-denido, os nomes em Prolog, para constantes, variaveis, func~oes e predicados, n~ao tem nenhum signicado intrnseco e podem ser escolhidos livremente pelo programador. No entanto, distinguimos variaveis de constantes em virtude da primeira letra (maiuscula no caso de variavel e minuscula no caso de constante). Em geral duas notac~oes distintas denotar~ao, ou ser~ao, objetos distintos. Existem mais ou menos excess~oes obvias, por exemplo, para numeros, onde 133.1 e 133.10 denotam o mesmo numero. Com em qualquer linguagem de programaca~o, a cada nome tem de ser dado um escopo, que e a parte do programa onde o nome pode ser escrito para signicar um objeto. Em Prolog, as regras de escopo s~ao: O escopo de um variavel e a assertiva (fato, regra, ou consulta) na qual aparece. O escopo de qualquer outro nome (constante, nome de func~ao, ou nome de predicado) e todo o programa. Isto signica que um nome de variavel pode ser usado e reusado a vontade no programa para denotar variaveis diferentes, enquanto qualquer outra notaca~o representa, ou e, o mesmo objeto para o programa todo. No fragmento da base de dados de uma famlia reproduzida abaixo, as ocorr^encias de m~ae s~ao o mesmo predicado (uma vez que existem dois argumentos nos quatro casos). Por outro lado, tr^es variaveis aparecem duas vezes em cada regra, mas, como a intuic~ao sugere, as variaveis de uma regra s~ao diferentes daquelas da outra. m~ae(vera,lucia). m~ae(lucia,alice). av^o(X,Y) :- pai(X,Z),m~ae(Z,Y). avo(X,Y) :- m~ae(X,Z),pai(Z,Y). 8.3 Fatos Elementares Os predicados simples (ou formulas at^omicas) da logica denotam valores verdade. Por exemplo, o predicado autor de(pablo neruda,canto geral). denota um valor verdade. Este, tambem, e o caso em Prolog, ao menos aproximadamente. Fatos e quest~oes sem variaveis podem ser vistos como signicando \verdade" ou \falso". Aproximadamente, porque Prolog, sendo uma linguagem de programac~ao, tem 8.4. CONSULTAS 171 uma sem^antica operacional, na qual \verdade" e \falso" s~ao antes de tudo resultados de programas executados. Um predicado simples e escrito em Prolog como um termo funcional: autor de(pablo neruda,canto geral). deriv(X,X,1). E o contexto que determina se uma formula at^omica e para ser tratada como um termo funcional ou como um predicado. Predicados simples s~ao os blocos construtores usados para escrever fatos e quest~oes. O programa seguinte e uma lista de fatos /* fatos */ /* \Em tem(em lialia,bicicleta). tem uma bicicleta" */ lia,maria). /* \Em lia gosta de Maria" */ tem(jo~ao,bicicleta). livro(davis,the undecidable,edic~ao(raven,1965)). chove. Os fatos s~ao predicados simples seguido por um ponto. O par /* */ encerra um comentario, isto e, um texto que e ignorado quando o programa for executado. Cada fato que aparece num programa estabelece um valor verdade, uma relac~ao entre objetos estabelecida como verdadeira. Por exemplo, a relac~ao binaria (ou predicado) chamada gosta e estabelecida entre emlia e maria, livro e uma relac~ao 3-aria, isto e, um predicado com tr^es argumentos, e chove uma relac~ao 0-aria. Um conjunto de fatos pode ser entendido como um banco de dados relacional. De fato, o conjunto de fatos e regras que constituem um programa Prolog sera denominado, aqui, uma base de dados. 8.4 Consultas Predicados simples tambem servem na construc~ao de consultas (ou quest~oes, perguntas ou metas) tais como ?- tem(jo~ao,bicicleta). Isto n~ao estabelece qualquer fato novo, mas e uma \pergunta ao sistema", indagando se ou n~ao um fato foi estabelecido. Neste caso (uma quest~ao simples, nenhuma variavel, nenhuma regra), o valor e verdade se o fato feito de um predicado da pergunta esta na base de dados, caso contrario o valor e falso. Isto e o que intuitivamente se espera e o sistema responde sim ou n~ao de acordo com a base de dados. Na pratica, a sequ^encia pergunta-resposta da: 172 ~ EM LOGICA CAPITULO 8. PROGRAMACAO E PROLOG ?- tem(jo~ao,bicicleta) ;! sim Assim, na sua forma mais simples, um programa Prolog registra fatos elementares e responde consultas simples sobre eles. A base de dados e a denic~ao extencional das relac~oes que ele contem, aqui, tem(-,-), gosta(-,-), livro(-,-,-), e chove. Consultas simples contendo somente termos basicos (as constantes da linguagem) s~ao perguntas do tipo sim-n~ao, isto e, somente tem duas possveis respostas: sim se o fato esta na base de dados e n~ao se o fato n~ao esta na base de dados. E bom deixar claro que a sem^antica de uma consulta e denida com respeito a uma dada base de dados, num dado momento: uma consulta simples indaga se um fato foi estabelecido ou n~ao, que pode ser o seu signicado. Por exemplo, para a base de dados fatos, obteramos a seguinte sequ^encia: ?- tem(jo~ao,bicicleta) ;! sim ?- tem(pedro,bicicleta) ;! n~ao ?- tem(jo~ao,biiccleta,) ;! n~ao ?- chove(agora) ;! n~ao Como Prolog n~ao tem controle de declaraca~o nem de tipo, as ultimas duas perguntas n~ao s~ao erros Prolog, mesmo que eles sejam provavelmente um erro de programac~ao. Um nome faltando ou mudando uma ou varias letras e exatamente um outro atomo simbolico e o mesmo atomo simbolico pode nomear relac~oes que diferem pelo numero de argumentos. Portanto, para Prolog, simplesmente n~ao existem fatos na base de dados casando com as tr^es ultimas perguntas. 8.4.1 Conjunc~oes Formulas logicas s~ao escritas com predicados simples e conectivos. Este, tambem, e o caso em Prolog, sendo que a construc~ao mais frequente e a conjunc~ao, denotada por vrgula: ?- tem(jo~ao,bicicleta), tem(emlia,bicicleta). Essa conjunca~o usada, aqui, numa consulta, e mais ou menos equivalente a formula logica tem(jo~ao,bicicleta)^tem(emlia,bicicleta). 8.5. VARIAVEIS 173 Em logica, uma conjunc~ao e verdadeira se todas as suas componentes s~ao verdadeiras. Isto, tambem, acontece em Prolog, com uma diferenca importante: a ordem na qual as componentes s~ao consideradas, da esquerda para a direita, faz parte da sem^antica. 8.5 Variaveis O uso das variaveis em Prolog e analogo, mas n~ao equivalente a seu uso em logica. As consultas em Prolog vistas ate aqui contem somente termos basicos, isto e, n~ao contem variaveis, e tem somente uma de duas possveis respostas: sim ou n~ao. Consultas mais interessantes s~ao aquelas cujas respostas s~ao listas de objetos satisfazendo uma dada relac~ao. Por exemplo, \quais as pessoas que possuem bicicleta?" e uma pergunta cuja resposta e uma lista de objetos. Relativamente a base de dados \fatos", a resposta completa para esta quest~ao seria a lista emlia,jo~ao]. Em Prolog, este tipo de consultas s~ao expressas com a ajuda de variaveis. Um pronome como \quais" e expresso por uma variavel como X, e a pergunta acima pode ser escrita ?- tem(X,bicicleta). Intuitivamente, obteramos uma resposta substituindo a variavel X por uma constante que torna o termo assim obtido igual a um fato da base de dados. Por exemplo, emlia e uma tal constante. ?- tem(X,bicicleta). ;! X=emlia O sistema responde com um valor para a variavel que transforma a consulta em um predicado verdadeiro. Por que emlia e n~ao jo~ao ou emlia,jo~ao]?. Foi feita uma escolha mais ou menos arbitraria: somente e produzida a primeira resposta, o signicado de \primeira" depende do algoritmo que computa a resposta. A base de dados n~ao e um conjunto, mas uma lista ordenada de assertivas (fatos e regras). Para responder a uma consulta, o sistema pesquisara a base de dados nesta ordem, usualmente a ordem textual na qual assertivas entraram, para achar a primeira assertiva que satisfaz o predicado na pergunta. Este predicado, que aqui e tem(X,bicicleta), e chamado o meta. O meta e bem sucedido se uma assertiva na base de dados satisfaz seu predicado. Um fato que satisfaz um simples predicado como tem(X,bicicleta) deve ter a forma tem({,bicicleta), isto e, deve ter o mesmo nome de predicado o mesmo numero de argumentos, dois, as mesmas constantes nos mesmo lugares, bicicleta como primeiro argumento. ~ EM LOGICA CAPITULO 8. PROGRAMACAO E PROLOG 174 Quando essas tr^es condic~oes s~ao satisfeitas, dizemos que o fato e o predicado se casam. Tal fato aqui, e tem(emlia,bicicleta) Ent~ao a variavel X da quest~ao, toma como valor (e instanciado por) o termo basico que esta no lugar no fato. Este da o resultado esperado: ;! emlia. Uma outra maneira de expressar a sem^antica desta pergunta e \pode uma atribuic~ao a X ser encontrada tal que a formula resultante esta na base de dados?". A atribuic~ao X=emlia atende esse requisito. Prolog produz somente, uma resposta, mesmo se varias s~ao possveis, e a escolha dela e uma decis~ao arbitraria que dependera ao modo iterativo que nosso Prolog trabalha. O usuario que quer mais tem de diz^e-lo, digitando um ponto e vrgula. Isto diz ao sistema que uma outra resposta esta sendo esperada: ?- tem(X,bicicleta). ;! X=emlia ;! X=jo~ao ;! n~ao A ultima resposta, n~ao, signica que n~ao existe mais casamento na base de dados. Se considerarmos a pergunta ?- tem(X,bicicleta). como uma chamada de procedimento que tem de produzir um resultado, ent~ao a constante bicicleta e o argumento da chamada (o par^ametro de entrada) e a variavel X representa o resultado (o par^ametro de sada). Este ponto de vista e do usuario e n~ao do Prolog. Na assertiva na base de dados, n~ao existe diferenca entre os argumentos. Quais s~ao os valores que devem aparecer na resposta e indicado somente pelas variaveis presentes na consulta. Por exemplo: ?- tem(jo~ao,X). ;! X=bicicleta. ?- tem(X,Y). ;! X=emlia, Y=bicicleta ;! X=jo~ao, Y=bicicleta ;! n~ao 8.5. VARIAVEIS 175 Variaveis podem ser usadas, tambem, em fatos: gosta(X,pera). poderia ser uma traduc~ao em Prolog da sentenca \todos gostam de pera" e da formula logica 8x:gosta(x pera): Qualquer consulta da forma ?- gosta({,pera) sera satisfeita se a base de dados contem o fato gosta(X,pera). Quando usado numa conjunca~o, uma variavel estabelece uma ligac~ao entre os predicados na conjunc~ao (tomando os mesmos valores em todas suas ocorr^encias). A pergunta \quem s~ao os proprietarios de bicicleta que gost~ao de Maria?" torna-se: ?- tem(X,bicicleta), gosta(X,maria). A resposta a tal pergunta e computada satisfazendo as duas partes (submetas) da conjunc~ao. A primeira submeta, tem(X,bicicleta), e bem sucedido para o fato tem(emlia,bicicleta) com X tomando o valor emlia (no caso de falha, a resposta a toda a quest~ao teria sido \n~ao"). Ent~ao, um casamento para o segunda submeta e transformado em gosta(emlia,maria) Um casamento para a meta e achado e a primeira resposta e ;! X=emlia Se o usuario digitar ponto e vrgula para perguntar por um outro valor para X, a pesquisa comecara no lugar onde o ultimo casamento foi encontrado, a meta sendo o mesmo, isto e, gosta(emlia,maria), que n~ao pode ser satisfeito uma segunda vez. O sistema ent~ao reverte para a submeta imediatamente precedente que e tem(X,bicicleta). ~ EM LOGICA CAPITULO 8. PROGRAMACAO E PROLOG 176 Isto e, backtracking. A submeta e bem sucedida uma segunda vez, por tem(X,bicicleta), dando a X o valor jo~ao. Agora, a segunda submeta torna-se gosta(jo~ao,maria) e isto falha. A proxima resposta e n~ao. 8.5.1 Variaveis An^onimas Todas as variaveis usadas ate aqui tiveram um nome como X ou Y. Existem, tambem, variaveis an^onimas, todas representadas por um subtraco.Se desejamos saber na base de dados fatos se existem possuidores de bicicleta, a pergunta ?- tem(X,bicicleta). vista anteriormente, produzira sucessivamente emlia e jo~ao como respostas, embora gostassemos de um simples sim ou n~ao. Isto pode ser obtido trocando X por uma variavel an^onima. A pergunta ?- tem({,bicicleta). produz a resposta ;! sim Do ponto de vista de casar uma meta, uma variavel an^onima comporta-se como qualquer variavel e pode casar com qualquer termo. A diferenca e que o termo casado n~ao e atribuido a ela. Uma primeira consequ^encia e que diversas ocorr^encias do smbolo { numa consulta denotam diferentes variaveis an^onimas: eles podem casar diferentes termos. Uma segunda consequ^encia e que nenhum valor para variaveis an^onimas aparecera na sada. A seguinte pergunta produzira uma lista de possuidores de algum objeto ?- tem(-,X). ;! X=emlia ;! X=jo~ao ;! n~ao 8.6. REGRAS 177 8.6 Regras A terceira e ultima especie de assertiva Prolog e a regra, que generaliza fatos e da pot^encia a linguagem, tornando a base de dados dedutiva. Por exemplo, para construir uma base de dados sobre famlias, podemos modelar algumas relac~oes familiares por fatos, tais como: m~ae(vera,lucia). m~ae(lucia,alice). pai(roberto,lucia). pai(edmundo,alice). para representar as relac~oes familiares \Vera e m~ae de Lucia", \Lucia e m~ae de Alice", \Roberto e pai de Lucia" e \Edmundo e pai de Alice". N~ao parece razoavel continuar e representar, por exemplo, os fatos avo(vera,alice). av^o(roberto,alice). uma vez que tais relac~oes podem ser deduzidas da relac~ao de parentesco: \X e avo de Y se existe Z cuja m~ae e X e que e m~ae ou pai de Y" e \X e av^o de Y se existe Z cuja pai e X e que e m~ae ou pai de Y" Tal assertiva s~ao modeladas em Prolog pelas regras: avo(X,Y) :- m~ae(X,Z),m~ae(Z,Y). avo(X,Y) :- m~ae(X,Z),pai(Z,Y). av^o(X,Y) :- pai(X,Z),m~ae(Z,Y). av^o(X,Y) :- pai(X,Z),pai(Z,Y). onde o smbolo :- pode ser lido com \se". E claro que embora tenhamos introduzidos quatro regras para deduzir os dois fatos acima, estamos economizando memoria. Pois, generalizando os parentescos \av^o" e \avo" em bases de fatos onde existam diversos fatos envolvendo este parentesco, ainda so precissaremos destas quatro regras para deduzir todos estes parentescos. A forma geral para uma regra e C :- P1 ,P2 , ,Pn . onde C,P1 ,P2 , ,Pn s~ao predicados simples. Isto pode ser lido como \C se (P1 e P2 e e Pn )". O predicado C e a cabeca ou conclus~ao da regra, enquanto a sequ^encia de ~ EM LOGICA CAPITULO 8. PROGRAMACAO E PROLOG 178 predicados P1,P2 , ,Pn e o corpo da regra ou conjunto de premisas. Tal regra re)ete uma clausula de Horn. Essas s~ao maneiras diferentes de escrever clausulas de Horn. Em termos de linguagem de programac~ao, uma regra e analogo a declaraca~o de um procedimento. A cabeca de uma regra e estabelecida como signicando o mesmo que o corpo das regra. Por exemplo, nas regras para representar o parentesco \avo", o corpo avo(X,Y), signica m~ae(X,Z),m~ae(Z,Y). ou m~ae(X,Z),pai(Z,Y). Em outras palavras, regras como esta indicam que uma quest~ao tal como ?- avo(ana,julia). e para ser transformada nas quest~oes ?- m~ae(ana,Z),m~ae(Z,julia). ?- m~ae(ana,Z),pai(Z,julia). Numa base de dados, regras s~ao consideradas do mesmo modo que fatos: suas ocorr^encias s~ao para estabelecer suas verdades, e s~ao usadas pelo sistema para deduc~ao. De um ponto de vista logico, variaveis em regras s~ao vistas como quanticadas universalmente. Assim, a regra avo(X,Y) :- m~ae(X,Z),m~ae(Z,Y). pode ser interpretada como a formula logica 8x8y 8z (ma~e(x z ) ^ ma~e(z y ) ;! av o(x y )) Regras s~ao as assertivas mais gerais. Um fato pode ser considerado uma regra sem o lado direito, enquanto uma consulta pode ser considerada uma regra sem um lado esquerdo. Elas podem ser lidas, respectivamente, como C e verdadeira se P1 e P2 e e Pn s~ao verdadeiras (regra com cabeca e corpo), F e verdadeira (fato ou regra sem corpo), s~ao P1 e P2 e e Pn verdadeiras? (consulta ou regra sem cabeca). Consideremos a seguinte base de dados: 8.6. REGRAS 179 /* Base de Dados Famlia */ ~ae(X,Y) denota \X ai(X,Y) denota \X v^o(X,Y) denota \X o(X,Y) denota/*e\Xav nino(X) denota \X ulino(X) denota \X e m~ae de Y" */ e pai de Y" */ e av^o de Y" */ o de Y" */ e do sexo feminino" */ e do sexo masculino" */ m~ae(vera,lucia). m~ae(lucia, alice). m~ae(vera,julia). pai(roberto,lucia). pai(roberto,julia). pai(andre,vera). pai(andr e,jo~ao). av^o(X,Y) :- pai(X,Z),m~ae(Z,Y). av^o(X,Y) :- pai(X,Z),pai(Z,Y). avo(X,Y) :- m~ae(X,Z),pai(Z,Y). avo(X,Y) :- m~ae(X,Z),m~ae(Z,Y). feminino(X) :- m~ae(X,{). feminino(alice). feminino(julia). masculino(X) :- pai(X,{). masculino(jo~ao). Nesta base de dados, as relac~oes m~ae e pai s~ao denidas (em extens~ao) por fatos, enquanto as relac~oes av^o e avo s~ao denidas (em intens~ao) por regras. Uma resposta a pergunta ?- av^o(roberto,alice). n~ao pode ser encontrada entre os fatos na base de dados, de vez que nenhum fato casa com ele, mas e encontrada entre as regras onde algumas cabecas de regra casa com ela. Uma pergunta pode ser casada pela cabeca de uma regra do mesmo modo que ela casa com um fato: mesmo nome de predicado, mesmo numero de argumentos, mesmas constantes nos mesmos lugares. Assim, o predicado ?- av^o(roberto,alice). e casado com ~ EM LOGICA CAPITULO 8. PROGRAMACAO E PROLOG 180 av^o(X,Y). Este casamento associa valores as variaveis na cabeca da regra: Y=alice. X=roberto, Ent~ao o corpo da regra, na qual as variaveis tomaram novos valores, tornam-se a nova meta a ser satisfeita, neste caso: ?- pai(roberto,Z),m~ae(Z,alice). Este meta e uma conjunc~ao de predicados, a ser tratada como uma sequ^encia de submetas. Eles s~ao satisfeitos pela atribuic~ao Z=lucia e a resposta a pergunta e sim. O valor de uma variavel interna, isto e, uma variavel tal como X, Y e Z, que n~ao aparecem na pergunta, nunca s~ao impressos. Aqui a pergunta pede uma resposta simn~ao, as variaveis internas servem somente para computar esta resposta. Observe que no caso da pergunta ?- avo(vera,alice) sera casado com avo(X,Y). na regra avo(X,Y) :- m~ae(X,Z),pai(Z,Y). Este casamento associara os seguintes valores as variaveis X e Y: X=vera, Y=alice. em seguida o corpo da regra com os valores de X e Y ja instanciados sera a nova meta, isto e ?-m~ae(vera,Z),pai(Z,alice). como n~ao existe em famlia nenhum valor para Z satisfazendo esta pergunta, o Prolog casara a meta original com a regra ~ E NEGACOES ~ 8.7. DISJUNCOES 181 avo(X,Y) :- m~ae(X,Z),m~ae(Z,Y). Assim, a ordem em que aparecem as regras e fatos num programa Prolog e importante na execuc~ao do programa. 8.6.1 Regras Recursivas Uma base de dados sobre relac~oes familiares deveria ser capaz de responder quest~oes sobre ancestralidade. O predicado \X e ancestral de Y" tem, necessariamente, uma denic~ao recursiva. Em Prolog ancestralidade pode ser denido pelas regras ancestral(X,Y) :- m~ae(X,Y). ancestral(X,Y) :- pai(X,Y). ancestral(X,Y) :- m~ae(X,Z),ancestral(Z,Y). ancestral(X,Y) :- pai(X,Z),ancestral(Z,Y). Regras recursivas como estas devem ser permitidas, caso contrario a linguagem n~ao seria util para muitas aplicac~oes. Qualquer predicado denido por uma regra recursiva deve, e claro, ter no mnimo uma denic~ao n~ao recursiva. Se isso n~ao acontecesse, a denica~o seria logicamente mal-formada e o programa correspondente caria em crculo (laco innito). Para evitar isto e, alem disso, necessario tomar cuidado com a ordem na qual casamentos s~ao procurados para metas. Por exemplo se invertermos a ordem nas regras recursivas do predicado ancestral, isto e ancestral(X,Y) :- ancestral(Z,Y),m~ae(X,Z). ancestral(X,Y) :- ancestral(Z,Y),pai(X,Z). o programa fara um laco. 8.7 Disjunc~oes e Negac~oes Usando somente conjunc~oes para compor consultas e regras (clausulas de Horn) nos da uma especie de Prolog puro, que pode n~ao ser muito pratico. Em muitos casos, s~ao fornecidas, tambem, disjunc~oes e negaco~es, com sem^anticas re)etindo a logica. ~ EM LOGICA CAPITULO 8. PROGRAMACAO E PROLOG 182 8.7.1 Disjunc~ao A disjunc~ao em regras pode ser usada implicitamente em Prolog puro usando varias regras com a mesma concluss~ao. Por exemplo para dizer que uma pessoa e lho de alguem se esse alguem e o seu pai ou sua m~ae, pode ser expressado a traves das regras: !lho(X,Y) :- pai(Y,X). !lho(X,Y) :- mae(Y,X). Ja em consultas uma disjunc~ao n~ao poderia ser desdobrada, pois consultas s~ao feitas atraves de uma unica clausula sem consequente. Assim, para facilitar as consultas um Prolog n~ao puro permite o uso de disjunca~o em consultas, e usa o ponto e vrgula para representar disjunca~o. Por exemplo a consulta \Jo~ao e pai de Maria ou de Pedro" pode ser feita da seguinte forma: ?- pai(jo~ao,maria) pai(jo~ao,pedro). onde o ponto e vrgula representa disjunc~ao, e aproximadamente o mesmo que a formula logica pai(joa~o maria) _ pai(joa~o pedro) Quando uma consulta e uma disjunca~o, o sistema primeiro tenta satisfazer a parte esquerda e, se este n~ao foi bem sucedido, ele tenta ent~ao satisfazer a parte direita. E claro, podemos sempre procurar todos os casamentos possveis. Com o exemplo fatos, isto da: ?- tem(X,bicicleta) gosta(X,maria). ;! X=emlia ;! X=jo~ao ;! X=emlia ;! n~ao Observe a ordem na qual as respostas s~ao produzidas para concluir que uma vez que a disjunc~ao n~ao esta num predicado composto, as duas partes da disjunc~ao se comportam como duas quest~oes sucessivas. Embora, n~ao seja necessario incluir disjunc~oes em regras, para facilitar a programacao Prolog permitiremos o uso desta (tambem atraves do ponto e vrgula) em regras. Porem devemos ter quidados especiais quando uma disjunc~ao envolva conjunco~es. Nestes casos assumiremos que a ordem de preced^encia e a usual em logica (conjunca~o e mais forte que disjunc~ao ). Caso desejarmos quebrar esta preced^encia devemos usar par^enteses. Por exemplo uma regra para expressar a relaca~o \X e av^o de Y" e a seguinte ~ E NEGACOES ~ 8.7. DISJUNCOES 183 av^o(X,Y) :- pai(X,Z),(pai(Z,Y)mae(Z,Y)). Se n~ao usarmos os par^enteses, isto e av^o(X,Y) :- pai(X,Z),pai(Z,Y)mae(Z,Y). qualquer pessoa (X) seria av^o de qualquer pessoa (Y), desde que esse alguem (Y) tenha m~ae. 8.7.2 Negac~ao por Falha e Hipoteses do Mundo Fechado Quando fazemos uma consulta a um programa Prolog, por exemplo ?- Pai(X,maria). e ele da como resposta \N~ao", n~ao signica que Maria n~ao tenha pai, mas que o programa n~ao tem informac~oes sobre o pai de Maria. Tal raciocnio e baseado na \hipoteses do mundo fechado", segundo a qual o mundo e fechado, no sentido que \tudo o que existe esta ou pode ser deduzido do programa". Assim, se alguma coisa n~ao esta nem explicitamente (fato) nem implicitamente (derivada a traves de regras) no programa, ent~ao n~ao e verdadeira. Portanto devemos ter isto em considerac~ao ao momento de fazer consultas e fazer nosso programa Prolog. Uma maneira de aliviar isto seria usar um conectivo de negac~ao para indicar que algo n~ao e verdadeiro, mas isto tornaria o programa muito tedioso, pois deveriamos por todo o que um objeto n~ao e, por exemplo na base famlia deveriamos p^or que Roberto n~ao e pai de Andre, Vera, Alice, e ate dele mesmo. Nos usaremos um operador logico de negac~ao em Prolog, mas n~ao no sentido acima, mas para auxiliar as consultas e regras (n~ao em fatos!!) e assumindo a hipoteses de mundo fechado. Negac~ao e escrita como um predicado chamado not cujo unico argumento e o predicado a ser negado. Se P e um predicado, a meta not(P) e bem sucedida se a meta P falhar e falha se o predicado P e bem sucedido. Nenhuma variavel e instanciada quando not(P) e bem sucedida. De fato, instanciac~ao de variaveis pode acontecer somente se P e bem sucedido. ?- not(tem(camilo,bicicleta)). ;! sim ?- not(tem(X,bicicleta)). ;! n~ao A primeira resposta diz que Camilo n~ao tem uma bicicleta, ja a segunda diz que existe alguem que tem uma bicicleta. 184 ~ EM LOGICA CAPITULO 8. PROGRAMACAO E PROLOG Este e somente uma explicac~ao procedural do predicado not: uma meta negada e bem sucedida se seu complemento n~ao pode ser satisfeito com respeito a base de dados. Esta vis~ao pragmatica n~ao e entretanto equivalente ao ponto de vista logico teorico. De um ponto de vista logico, Prolog manipula a negac~ao de uma meta como uma falha de sua prova. Em regras podemos usar este operador somente nos antecedentes. Por exemplo uma regra para descrever irm~aos somente por parte de pai na base famlia seria a seguinte: irmaosP(X,Y) :- pai(Z,X),pai(Z,Y),mae(M,X),not(mae(M,Y)). No caso de se ter uma consulta ou regra envolvendo negac~oes, conjunc~oes e disjunc~oes , o compilador Prolog usa a seguinte ordem de prioridade nos conectivos: primeiro negaca~o, depois conjunc~ao e por ultimo disjunc~ao. Caso deseje alterar a ordem deve usar parenteses. 8.8 Operadores de Controle Ate o momento nos conseguimos interferir no controle de execuc~ao de um programa Prolog atraves da reordenac~ao das clausulas ou dos antecendentes de uma regra. No entanto este controle e muito limitado. Nesta sec~ao introduziremos dois operadores que interferiram no proprio processo de execuc~ao do programa abortando o processo de backtracking, aumentando a eci^encia do programa. 8.8.1 Backtracking Ao se fazer uma consulta a um programa Prolog, ela tera como respostas um simples \Sim", um \N~ao" ou valores para as variaveis da consultas. Estas respostas dependem se e possvel deduzir no programa a clausula em quest~ao. Por simplicidade assumamos que o Prolog e puro. Assim uma consulta seria da forma: ? ; p1 : : : pn. Para o compilador Prolog determinar a resposta a essa pergunta tenta unicar p1 a primeira regra ou fato do programa possvel. Se for um fato ent~ao tenta agora responder p2 e assim por diante. Se casar com o consequente de uma regra, digamos p01 : ;q1 : : : qk ent~ao o objetivo se transforma em ? ; q1 : : : qk p2 : : : pn, onde e o unicador mais geral entre p1 e p01 . Quando um objetivo falha, isto e, n~ao conseguimos casar um dos subobjetivos, ent~ao retornamos a ponto imediatamente anterior ao ultimo casamento e avancamos no programa. Ao retornaqr pelo caminho ja percorrido todo o trabalho executado e desfeito. A resposta so sera \N~ao" quando todos os caminhos falharem. Vejamos um exemplo para esclarecer melhor o processo de backtracking. Seja a base de dados famlia. fazamos a ela a seguinte consulta: ?- pai(roberto,X),mae(vera,X) 8.8. OPERADORES DE CONTROLE 185 O compilador Prolog tenta primeiro satisfazer o primeiro objetivo, isto e pai(roberto,X), desencadeando a seguinte execuc~ao top-down. 1. 2. 3. 4. 5. 6. 7. 8. Encontra que Roberto e pai de Lucia. Instancia X com \lucia". Tenta satisfazer o segundo objetivo com a variavel X ja instanciada, isto e mae(vera,lucia). Como n~ao consegue satisfazer este objetivo, realiza um backtracking, isto e volta a consulta original ?- pai(roberto,X),mae(vera,X) a partir do ultimo fato casado (pai(roberto,lucia).). Encontra que Roberto e pai de Julia. Instancia X com \julia". Encontra que mae(vera,julia). Foi bem sucedido, pelo que a resposta e: X=julia. No caso de um Prolog n~ao puro, isto e considerando disjunc~oes e negac~oes, procede-se da seguinte maneira: Um programa Prolog satisfaz uma consulta do tipo ?- (1 2 ) somente se ele satisfazer , 1 e ou caso isto n~ao seja possvel, se ele satisfazer , 2 e . Analogamente, se a consulta for do tipo ?- not(1 ) ele tenta satisfazer e se for o caso, tenta satisfazer 1 e se n~ao for o caso de 1 ser satisfeito ent~ao tenta satisfazer , se for satisfeito ent~ao o programa Prolog satisfaz a consulta not(1) como um todo. O backtracking autom^atico e uma ferramente muito poderosa, pelo que um programador Prolog deve conhece-la bem para assim poder explora-la melhor. Porem, as vezes, ela pode tornar o processo de execuc~ao altamente ineciente em termos de memoria e tempo de execuca~o. 8.8.2 Comando \Cut" O comando \cut" permite indicar ao Prolog quais submetas ja satisfeitas n~ao necessita considerar de novo ao realizar um backtracking. Isto e, ele aborta o processo de backtracking. Existem duas raz~oes de porqu^e isto pode ser importante: 186 ~ EM LOGICA CAPITULO 8. PROGRAMACAO E PROLOG 1. Permite que seu programa possa rodar mais rapido, pois este comando pode evitar desperdizar tempo tentando satisfazer submetas que a priori s~ao sabidas que n~ao contribuem nunca para determinar a resposta da meta. 2. Permite que seu programa possa ocupar menos memoria, pois ao n~ao sera necessario armazenar todas as submetas analisadas (pontos do backtracking). Em alguns casos, o uso do comando \cut" pode evitar que um programa que em laco innito para uma determinada consulta e retorne uma resposta. O comando cut 8.8.3 Comando \Fail" 8.9 Algumas Ferramentas Praticas de Programac~ao Nesta sec~ao introduziremos algumas ferramentas de programac~ao que s~ao uteis na pratica. Assim, veremos como lidar com tipos de dados numericos e com algumas estruturas de lista. Como ja foi observado, as denico~es Prolog apresentam operadores e func~oes como predicados e seus predicados como termos. 8.9.1 Operadores Para Prolog, um operador e, antes que tudo, o nome de uma func~ao que, no caso de ser binaria, pode ser escrita entre seus argumentos e que no caso de ser unaria pode ser escrita antes ou depois de seu argumento. Ja dissemos que um termo funcional e composto de um nome de func~ao seguido por uma lista de argumentos entre par^enteses. Alem disso, um atomo simbolico e, sempre que isso zer sentido, considerado como um termo funcional com zero argumentos. Cada termo pode, portanto, ser representado como uma arvore cuja raz e o nome da func~ao e cujos ramos representam os argumentos. A representaca~o de f (x g(y z)) e a arvore Esta representac~ao e util pelo fato de que existem termos que podem ser escritos em mais de uma maneira. A arvore e uma forma can^onica que n~ao depende da maneira como os termos s~ao escritos. Por exemplo, no caso de termos com um ou dois argumentos, a func~ao pode ser escrita como uma operac~ao com o nome da funca~o escrito como um operador binario, ou como um prexo, ou como um suxo unario: a op1 b em vez de op2 c d op3 ~ 8.9. ALGUMAS FERRAMENTAS PRATICAS DE PROGRAMACAO 187 f ;@@ ; @@ ;; x g ;@@ ; @@ ;; y op1(a b) z op2(c) op3(d) E suciente que os nomes de func~oes se tornem operadores com uma prioridade. Quando um nome de func~ao e um operador, ambas as notac~oes podem coexistir. Assim, por exemplo, a op1 b e op1(a b) constituem o mesmo termo: op1 ;@@ ; @@ ;; a b Nomes de func~ao ou de predicado s~ao predenidos como operadores. Por exemplo, a + b c e o mesmo termo que +(a (b c)), representado pela arvore: Como usual, o operador + tem menor prioridade que o operador *. Mas precisamos estar consciente que a + b c e um termo funcional em Prolog e n~ao representa uma computac~ao numerica a ser executada para produzir um resultado. 8.9.2 Computac~oes Numericas Em Prolog, como usual em linguagem de programac~ao, temos as operac~oes numericas usuais sobre os tipos de dados inteiros e ponto )utuante. Os operadores aritmeticos e unarios tem as mesmas prioridades usuais a qualquer linguagem de programaca~o. Assim, por exemplo, letcia*natalia, -ricardo, letcia*natalia+joana 188 ~ EM LOGICA CAPITULO 8. PROGRAMACAO E PROLOG + ;@@ ; @@ ;; a ;@@ ; @@ ;; b c s~ao termos Prolog equivalentes, respectivamente, a *(letcia,natalia), -(ricardo), +(*(letcia,natalia),joana). Embora estes termos n~ao tenham nada de computac~ao numerica, elas podem ser usadas para gerar um programa valido em Prolog. Por exemplo, a base de dados +(letcia, joana). letcia*natalia+joana. 9+16. x+10*3. log(4). sin(2). As seguintes perguntas e respostas a base de dados obedecem as regras Prolog e n~ao as da aritmetica: ?- X+joana. ;! X = letcia ;! X = letcia*natalia. ?- 12+5. ;! n~ao ?- X+Y. ;! X=letcia , Y=joana ;! X=letcia*natalia , Y=joana ;! X=9 , Y=16 ;! X=x , Y=10*3 ;! n~ao ?- log(X). ;! X=3 ~ 8.9. ALGUMAS FERRAMENTAS PRATICAS DE PROGRAMACAO 189 pois Prolog realiza computac~oes simbolicas. No entanto, para auxiliar as computac~oes simbolicas assim como para Prolog poder realizar computac~oes usuais em outras paradigmas de programac~ao, precisamos de facilidades de computac~oes numericas. Embora, teoricamente, seja possvel, n~ao podemos usar o mecanismo de unicac~ao assim como devemos incorporar operac~oes predenidas. Em Prolog, computac~oes numericas s~ao baseadas em tr^es aspectos 1. Existem atomos numericos (numeros) os quais se diferenciam dos simbolicos pela sua sintaxe. 2. Existe um conjunto de operadores e func~oes denidos como executaveis, no sentido numerico, de tal modo que termos formados somente por estas func~oes , operadores, numeros e variaveis cujos valores s~ao termos executaveis, s~ao tambem executaveis. 3. O operador binario predenido, is, transforma um termo executavel num atomo numerico que representa o resultado da computac~ao e unica este resultado com outros termos, normalmente uma variavel. O termo X is T onde X e uma variavel e T um termo executavel, e uma atribuica~o de T a X. Assim, a computac~ao numerica denida pelo termo T, interpretado como uma expres~ao aritmetica, e realizada e o resultado, um atomo numerico, e unicado com X , se possvel. A maioria das funco~es e operac~oes numericas disponveis nas linguagens de programac~ao tradicionais est~ao predenidas em Prolog. No entanto, n~ao podemos em Prolog denir nossa propria biblioteca de operaco~es numericas, pois n~ao podemos criar novos predicados executaveis. Exemplo 8.9.1 O seguinte programa dene o fatorial. fatorial(1,1). fatorial(X,Y) :- integer(X), X2, X1 is X-1, fatorial(X1,Y1), Y is X*Y1. Para unicar fatorial(X,Y) e necessario que X seja unicado com inteiro positivo e que Y seja unicado com uma variavel ou com o numero o qual e o fatorial de X. Isto da o rsultado esperado, porem fatorial jamais sera "executavel" e portanto esta func~ao n~ao podera aparecer numa express~ao aritmetica. Assim, para obter o resultado de 5!*3, devemos escrever fatorial(5,Y), Z is 3*Y o resultado esperado estara em Z. ~ EM LOGICA CAPITULO 8. PROGRAMACAO E PROLOG 190 8.9.3 Computac~oes com Listas Em Prolog listas s~ao denidas a partir de um smbolo at^omico escrito por ], representando a lista vazia, e de pares ordenados precedidos por um ponto. Formalmente, Deni c~ao 8.9.2 Uma lista e uma sequ^encia de termos, possivelmente vazia, separados por vrgolas entre par^enteses quadrado, e ]. Exemplo 8.9.3 Os termos ], a,b,c] e 1,suc(X),a,b,c]] s~ao exemplos de listas, onde a primeira representa a lista vazia. As vezes e mais pratico distinguir, em listas n~ao vazias, o primeiro elemento da lista, chamado cabe ca, dos restantes, chamados de cauda. A cabeca e um termo da lista enquanto que a cauda e uma lista. A seguinte notac~ao e usada em Prolog para este m: CjT] para denotar a lista cuja cabeca e o termo C e cuja cauda e a lista T. Exemplo 8.9.4 As duas listas, n~ao vazias, do exemplo 8.9.3 podem ser reescritas em termos de cabeca e cauda, da seguinte maneira: ajbjc]] e 1jsuc(X)jajbjc]]]]]. Este tipo de notac~ao e mais utilizada quando queremos denir certas operac~oes ou regras sobre listas. As operac~oes s~ao denidas por predicados cujos argumentos representam par^ametros tanto como resultados das operaco~es. Exemplo 8.9.5 Uma operac~ao usual sobre listas e dado um elemento e uma lista, determinar se o elemento esta ou n~ao na lista. O seguinte par de regras descrevem esta operac~ao atraves do predicado elem. elem(X,Xj{]). elem(X,{jY]) :- elem(XjY). Este predicado sera bem sucedido se o segundo argumento e uma lista da qual o primeiro argumento e um elemento. Uma possvel sess~ao pergunta e resposta e ?- elem(X,a,b,c]). ;! X=a ;! X=b ;! X=c ?- elem(b,a,b,c]). ;! sim ?- elem(b,a,b],c]). ;! n~ao 8.10. EXERCICIOS 191 Exemplo 8.9.6 Uma outra operac~ao usual entre listas e a concatenac~ao de listas. O seguinte par de regras denem esta operac~ao. concat( ],X,X). concat(XjY],Z,XjW]) :- concat(Y,Z,W). Uma possvel sess~ao de perguntas e respostas e ?- concat(a,b],c,d],L). ;! L=a,b,c,d] ;! n~ao ?- concat(X,Y,a,b,c,d]). ;! X= ] , Y=a,b,c,d] ;! X=a] , Y=b,c,d] ;! X=a,b] , Y=c,d] ;! X=a,b,c] , Y=d] ;! X=a,b,c,d] , Y= ] ;! n~ao 8.10 Exerccios 1. Crie uma base de dados de livros em prolog, onde cada livro deve conter informaco~es do autor principal, ttulo e ano de publicac~ao . Faca as seguintes perguntas: (a) (b) (c) (d) Quais os livros de um determinado autor? Existe um livro na sua base publicado este ano? Quais os livros escritos nos anos 1997 e 1998? Quais os livros escritos nos anos anteriores? 2. Dena regras e fatos no seu programa em logica Famlia que lhe permita inferir as seguintes relac~oes (a) (b) (c) (d) (e) (f) c^onjugues(X,Y) - X e um c^onjugue de y se tem algum lho em comum. avos(X,Y) - X e um dos avos de Y. irm~aos(X,Y) - X e Y s~ao irm~aos (tem ambos pais em comum). irm~a(X,Y) - X e irm~a de Y. tia(X,Y) - X e um tia de Y. primo(X,Y) - X e um primo ou prima em primeiro grau de Y. ~ EM LOGICA CAPITULO 8. PROGRAMACAO E PROLOG 192 (g) parentes(X,Y) - X e Y s~ao parentes (s~ao da mesma famlia). 3. Escreva um programa PROLOG que descreva as seguintes situac~oes : (a) (b) (c) (d) (e) (f) (g) (h) (i) Marcos era um homem Marcos nasceu em Pompeia Todos os que nasceram em Pompeia s~ao romanos Cesar era um soberano Todos os romanos eram leais a Cesar ou ent~ao odiavam-no Todo mundo e leal a alguem As pessoas so tentam assassinar soberanos aos quais n~ao s~ao leais Marcos tentou assassinar Cesar Todos os homens s~ao pessoas. Enseguida faca a seguinte pergunta ao seu programa: Marcos era leal ao Cesar? qual seria a resposta de seu programa? Porque? 4. Escreva programas em logica que computem as seguintes func~oes numericas. Assuma o tipo de dados inteiro munido das operac~oes aritmeticas e as relac~oes de igualdade e de ordem ( e <) como primitivo (a) (b) (c) (d) (e) (f) valor absoluto. raiz quadrada. quadrado de um numero. n = 1 + 2 + + n para cada n 0 e n = 0 caso n < 0.. f (x) d^e o x-esimo valor da serie de Fibonacci (1,1,2,3,5,8,13, ). determinar se um numero e primo ou n~ao. 5. Escreva programas em logica para os seguintes procedimentos que manipulam com estruturas de listas (de numeros naturais). (a) insira1(X,L1,L2) - L2 e o resultado de insertar X no inicio da lista L1. (b) insira2(X,L1,L2) - L2 e o resultado de insertar X (em qualquer parte) na lista L1. (c) mesma(L1,L2) - Diz se L1 e L2 tem os mesmos elementos, independente da ordem em que est~ao dispostos. (d) retira(X,L1,L2) - L2 e o resultado de retirar a primeira ocorr^encia (de esquerda para direita) do elemento X da lista L1. Se X n~ao faz parte da lista L1, ent~ao L2 e o proprio L1. 8.10. EXERCICIOS 193 (e) retira2(X,L1,L2) - L2 e o resultado de retirar todas as ocorr^encias do elemento X da lista L1. Se X n~ao faz parte da lista L1, ent~ao L2 e o proprio L1. (f) ordenada(L) - Diz se L esta ordenada (ascendentemente). (g) ordena(L1,L2) - L2 e o resultado de ordenar L1 ascendentemente. (h) apaga(X,L1,L2) - L2 e o resultado de apagar todas as ocorr^encias de X em L1. (i) sublista(L1,L2) - L1 e uma sublista de L2, isto e, a lista L1 inteira esta (contiguamente) em L2. Assim, isto n~ao signica que cada elemento de L1 esta em L2. Por exemplo sublista(1,2],2,1,2,3]) e verdadeira sublista(1,2],2,1,3]) e falsa (j) resto(X,L1,L2) - L2 e a sublista de L1 que comeca na primeira ocorr^encia de X em L1. Se X n~ao ocorre em L1 ent~ao L2= ]. (k) max(L,X) - X e o maximo valor da lista de numeros L. (Assuma que voc^e disp~oe do relacionamento \maior ou igual que", denotado por ). (l) inverte(L1,L2) - L2 e a lista L1 invertida, isto e, se L1=1,2,3] ent~ao L2=3,2,1]. 194 ~ EM LOGICA CAPITULO 8. PROGRAMACAO E PROLOG Captulo 9 Outras Apresentaco~es da Logica de Predicados Tanto em logica proposicional quanto em logica de predicados vimos tr^es abordagens ou estilos diferentes de se lidar com elas. Essas abordagems captam diferentes aspectos da logica: sem^antico: no qual o importante e o conceito de verdade e consequ^encia logica, formal: no qual desenvolvemos uma teoria de provas (no caso do estilo axiomatico isto comprende uma linguagem formal, um conjunto de axiomas e regras de infer^encias) para construir provas para os teoremas da logica, operacional: no qual apresentamos um algoritmo para refutar a negac~ao de um teorema (no caso usamos o metodo de eliminaca~o de literais complementares). O primeiro e de maior interesse losoco e matematico no sentido classico (teoria dos modelos), o segundo de maior interesse matematico construtivo e o terceiro computacional. No entanto, estas tr^es abordagens da logica classica s~ao complementares, do ponto de vista epistemologico, e s~ao essenciais para o bom entendimento da logica para ci^encias da computac~ao. Observe que os dois ultimos estilos s~ao ambos de natureza sintatica, sendo que o terceiro e mais operacional, pois e factvel de ser implementado computacionalmente, por exemplo denindo uma linguagem de programac~ao baseada nos princpios logicos desse estilo. Neste captulo veremos mais tr^es maneiras de apresentar a logica proposicional e de predicados classica. Sendo que as duas primeiras, deduc~ao natural e calculo de sequentes de Gentzen, s~ao de natureza formal, isto e, descrevem um conjunto de regras formais para construir provas dos teoremas e deduc~oes da logica proposicional e de predicados. O terceiro estilo que veremos aqui, o estilo tableaux, e uma maneira alternativa de se realizar provas por refutac~ao e, portanto, e mais um metodo computacional de se provar teoremas. 195 ~ DA LOGICA 196 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS 9.1 Deduc~ao Natural Provas axiomaticas s~ao difceis de construir alem de serem muito longas. Assim, na pratica n~ao se constroi uma tal prova, mas mostra-se que existe uma prova. Uma maneira na qual temos usados esta tecnica e quando, numa prova, consideramos qualquer teorema que ja tenha sido provado anteriormente. Outra maneira, e quando usamos o teorema da deduc~ao, o qual nos permite provar a partir de assunc~oes (hipoteses) e n~ao uma prova axiomatica como originalmente denida. Uma terceira maneira e introduzir novos smbolos por denic~ao, e derivar novas regras para os novos smbolos as quais ser~ao, usualmente, usadas em provas a partir de assunco~es. Assim, a partir de um certo momento, o desenvolvimento de um sistema axiomatico dicilmente sera um prova axiomatica real, mas baseado sobre uma variedade de pequenas partes. Usando uma analogia computacional, uma prova e baseada num conjunto de \macros" de provas. A principal ideia do que chamamos \deduc~ao natural" e abandonar o ponto de partida axiomatico e, em vez disso, comecar com o que chamamos acima de \pequenas partes". O ponto fundamental em deduc~ao natural e considerar a noca~o de prova a partir de assunc~oes como noc~ao basica, e trabalhar simplesmente com estas. Tais provas n~ao s~ao pensadas como abreviando alguma outra, nem como um tipo mais basico de prova, mas s~ao os objetos primarios de estudo. Logo, as regras basicas iniciais ser~ao regras para usar em provas a partir de assunc~oes. Axiomas, como tradicionalmente entendidos, n~ao ter~ao nenhum papel preponderante (inclussive nos sistemas de deduc~ao natural que veremos aqui n~ao teremos a gura do \axioma"). Esta e a caracterstica crucial de todo sistema de deduc~ao natural. Mas, existem diversas outras caractersticas que tambem s~ao hoje em dia esperadas e desejadas. Por exemplo, o conectivo logico ! n~ao tem nenhum estatus especial, com respeito aos demais conectivos, como era o caso no sistema axiomatico. Desse modo no estilo de deduc~ao natural a logica e apresentada apenas por regras. Este estilo e caracterizado por dois fatos basicos: primeiro, o uso, em certas regras, de assunc~oes (hipoteses). Essas hipoteses s~ao internas a derivaca~o e n~ao devem ser confundidas com premissas. Uma hipotese e somente para ser usada com o proposito de derivar um resultado particular determinado pela regra que motivou sua introduca~o. Cada hipotese tem um escopo que vai da linha na qual ela e introduzida ate a linha antes da regra na qual e descartada. A hipotese n~ao deve ser usada fora do escopo. Por isso a denic~ao linear de prova (como uma sequ^encia nita) deve ser ligeiramente modicada de modo a permitir o acomodamento de hipoteses e de premissas. Uma segunda caracterstica do estilo de deduc~ao natural consiste no fato de que as regras aparecem em pares. Uma regra para introduzir o operador e outra para elimina-lo. Assim, sistemas de deduc~ao natural constituem uma outra famlia de mecanismos de prova, que tenta formalizar o tipo de raciocnio nos argumentos informais das pessoas. Eles s~ao baseados nas ideias de provas subordinadas, nas quais derivamos conclus~oes a partir das premissas, ent~ao descartamos estas premissas para produzir resultados livres de assunc~oes. ~ NATURAL 9.1. DEDUCAO 197 Uma tpica regra de um sistema deduc~ao natural e: Se podemos derivar , assumindo , ent~ao podemos descartar a assunc~ao e concluir que temos provado ! . Isto e dado esquematicamente na gura 9.1. ... ! Figura 9.1: Uma regra de deduca~o natural para a implicac~ao Observe que, analogamente a provas em teorias formais, n~ao necessariamente usamos a premissa para obter . Um conjunto de regras devem satisfazer algumas propriedades para ser considerado um \sistema de deduc~ao natural". 1. Para cada conectivo logico, um sistema de deduc~ao natural deve considerar somente regras que concernem especicamente a esse conectivo e mais nenhum outro conectivo. Isto e mais um requerimento de eleg^ancia que uma condica~o que possa ser considerada como \deduc~ao natural". 2. Para cada conectivo existem uma ou duas regras de introduc~ao as quais permitem introduzir o conectivo, e uma ou duas regras de eliminac~ao que possibilitem eliminar o conectivo. 3. Deve-se ter uma certa completude entre as regras de introduc~ao e eliminaca~o de um conectivo logico, no sentido de levarem a um sistema completo para as formulas contendo so este conectivo. Isto e, para cada fbf logicamente valida que contenha somente esse conectivo se deve ter uma deduca~o natural para ela que use somente as regras de introduc~ao e eliminac~ao do conectivo. 4. As regras para cada conectivo logico devem ser \naturais", no sentido que infer^encias usando essas regras ilustrem argumentos e infer^encias de maneira \natural". 5. Se a formula a ser provada n~ao e \muito complexa", ent~ao deve haver uma prova razoavelmente curta que use somente as regras inicialmente adotadas. Existem diversas maneiras de ilustrar uma prova em deduc~ao natural. A que usaremos aqui n~ao v^e uma prova como uma sequ^encia linear de formulas, mas como um vetor bidimensional destas, arranjados numa estrutura de arvore. A estrutura tem uma formula como sua raiz, a qual ca na parte inferior da arvore. A formula na raiz e a formula que e provada e os ramos que se espalham para acima da raz representam a serie de raciocnio que necessitamos para chegar ate a conclus~ao, e cada ramo tem como sua formula mais ~ DA LOGICA 198 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS acima uma assunc~ao da prova. Em uma prova de deduca~o natural existem dois tipos de assunc~oes, uma na qual ela e considerada uma premissa da prova, semelhante a , num prova de ` e outra na qual a assunc~ao e usada temporariamente, em cujo caso dizemos que ela e descartada na prova ao se usar uma determinada regra. Devemos ter cuidado em n~ao usar, numa derivac~ao, uma assunca~o que ja tenha sido descartada na prova. Por exemplo na regra da gura 9.1, a assunca~o deve ser descartada apos usar essa regra. Indicaremos isto colocando um traco acima da assunc~ao e pondo no lado um numero, sinalizando a derivac~ao na prova pela qual ela foi descartada (o mesmo numero estara no lado direito da derivac~ao). 9.1.1 Logica Proposicional Um sistema de deduc~ao natural para a logica proposicional e dado pelo seguinte conjunto de regras. Introdu c~ao do ^: ^ I^ : Elimina c~ao do ^: E^1 : ^ E^2 : ^ Exemplo 9.1.1 Uma deduca~o natural para mostrar que a conjunc~ao e associativa, isto e que ^ ( ^ ) ` ( ^ ) ^ , e ilustrada pela seguinte arvore de derivac~ao: ^ ( ^ ) E^1 : I^ : E^2 : ^ ( ^ ) E^1 : ^ E^2 : E^2 : ^ I^ : ( ^ ) ^ Introdu c~ao do _: I_1 : _ I_2 : ^ ( ^ ) _ ^ ~ NATURAL 9.1. DEDUCAO 199 Elimina c~ao _: (n) ... _ E_ : (n) ... (n) Embora a regra de eliminac~ao do _, aparentemente, n~ao seja t~ao imediata como as anteriores, ela e bastante natural. Para v^er isso pense da seguinte maneira: Suponha que temos uma premissa _ , e queremos saber o que podemos deduzir dela, ent~ao vemos o que podemos deduzir de e o que podemos deduzir de , se e dedutvel de ambas ent~ao, independente de qual seja verdadeira ( ou ) poderemos sempre deduzir de _ . Este processo implica que tivemos inicialmente que introduzir a assunc~ao e a assunc~ao , pelo que devemos descartar essas assunc~oes quando derivamos . Exemplo 9.1.2 Uma arvore de derivac~ao para a propriedade de comutatividade do conectivo _, isto e que _ ` _ , e mostrada a seguir: E_ : _ I_2 : (1) _ I_1 : _ (1) _ (1) Note que neste deduc~ao natural de _ ` _ , e s~ao premissas, enquanto que _ e uma hipotese. Introdu c~ao do !: . (n) .. I !: ! (n) Elimina c~ao do !: E !: ! ~ DA LOGICA 200 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS Exemplo 9.1.3 Uma deduc~ao natural para o axioma ! ( ! ) e ilustrada pela seguinte arvore: I^ : (1) I !: I !: (2) ! (1) ! ( ! ) (2) Na literatura n~ao ha um consenso claro de quais as regras mais \naturais" para a negac~ao. Aqui, consideramos uma que capte a ideia de que se na assunc~ao de derivamos uma contradic~ao, ent~ao podemos derivar : e descartar a assunca~o . Introdu c~ao do :: I: : (n) (n) ... ... : (n) : Elimina c~ao do :: E: : :: Exemplo 9.1.4 O unico axioma, dos sistema visto no captulo 3, que considera a negaca~o e (: ! :) ! ((: ! ) ! ). Uma deduc~ao natural para esse axioma e dada pela seguinte arvore. E !: : (1) I: : : ! (2) E: : I !: I !: E !: : (1) : ! : (3) : :: (: ! ) ! (1) (2) (: ! :) ! ((: ! ) ! ) (3) ~ NATURAL 9.1. DEDUCAO 201 Teorema 9.1.5 Se e um teorema de TP , ent~ao existe uma deduc~ao natural para . Demonstraca~o: Se ` ent~ao existe uma prova 1 2 n de . Provaremos por induc~ao no tamanho da prova que existe uma deduc~ao natural para . Caso base: Se i = 1, ent~ao e um dos axiomas. 1. Uma deduc~ao natural para ! ( ! ) e mostrado no exemplo 9.1.3. 2. Uma deduc~ao natural para ( ! ( ! )) ! (( ! ) ! ( ! )) e dada pela seguinte arvore: E !: (1) ! (2) E !: E !: I !: I !: I !: (1) ! ( ! ) (3) ! ! (1) ( ! ) ! ( ! ) (2) ( ! ( ! )) ! (( ! ) ! ( ! )) (3) 3. Uma deduc~ao natural para o axioma (: ! :) ! ((: ! ) ! ) e mostrado no exemplo 9.1.4. Etapa indutiva: Suponha que existe uma deduc~ao natural para cada i na prova tal que i < k. Ent~ao por denic~ao de prova k e um axioma, ou k segue por MP de i e j , onde i j < k e j e i ! k . O primeiro caso e exatamente como no caso base mostrado acima. No segundo caso, pela etapa indutiva, existe uma deduca~o natural para i e outra para i ! k . Logo, juntando ambas deduc~oes e aplicando a regra (E !) obteremos uma deduca~o natural para k . Portanto segue o teorema. Em deduc~ao natural tambem podemos provar consequ^encias logicas. ~ DA LOGICA 202 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS Exemplo 9.1.6 Uma deduc~ao natural para : ! : ` ! e dada pela seguinte arvore. E !: : (1) : ! : I: : : assum(2) E: : I !: :: ! (1) (2) 9.1.2 Logica de Predicados Analogamente ao estilo axiomatico, o sistema de deduca~o natural para a logica proposicional esta includo no correspondente da logica de predicados. Assim, so devemos incorporar as respectivas regras de introduc~ao e eliminac~ao dos quanticadores. Introdu c~ao do 8: I8 : 8x: Elimina c~ao do 8: E8 : 8x: t=x] , onde t e um termo livre para x em Exemplo 9.1.7 Deduc~oes naturais para os axiomas 5 e 4, respectivamente, s~ao dadas pelas arvores seguintes: E8 : I !: 8x: (1) t=x] 8x: ! t=x] (1) ~ NATURAL 9.1. DEDUCAO E !: 203 (1) 8x:( ! ) (1) E8 : ! I8 : I !: I !: 8x: ! 8x: (1) 8x:( ! ) ! ( ! 8x: ) (2) Exemplo 9.1.8 Uma arvore de deduc~ao natural para 8x:8y:P (x y) ! 8x:P (x x) e a seguinte: 8x:8y:P (x y ) (1) E8 : 8y:P (x y ) E8 : P (x x) I8 : I8 : 8x:P (x x) 8x:8y:P (x y ) ! 8x:P (x x) Introdu c~ao do 9: I9 : t=x] , onde t e um termo livre para x em 9x: Elimina c~ao do 9: E9 : 9x: a=x] , onde a e uma constante nova na prova de 9x: Exemplo 9.1.9 Uma deduca~o de 9x:(P (a) ^ R(x)) ` P (a) ^9x:R(x) no estilo de deduc~ao natural e ilustrada na seguinte arvore. ~ DA LOGICA 204 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS E9 : E^1 : 9x:(P (a) ^ R(x)) P (a) ^ R(b) P (a) I^ : E9 : 9x:(P (a) ^ R(x)) E^2 : P (a) ^ R(b) I9 : R(b) 9x:R(x) P (a) ^ 9x:R(x) Exemplo 9.1.10 Uma deduc~ao de :8x: ` 9x:: no estilo de deduc~ao natural e ilustrada na seguinte arvore. I8 : I: : (1) 8x: I9 : I !: :8x: (2) : (1) 9x:: :8x: ! 9x:: No caso do estilo axiomatico, temos algumas restric~oes no uso do teorema da deduc~ao. Por outro lado, o uso da regra de introduca~o da implicaca~o, do jeito que esta, incorporaria, implicitamente, na logica de predicados um teorema da deduca~o irrestrito. Portanto, para ser coerente com a logica de predicado vista aqui, devemos introduzir estas restric~oes. Para isto, devemos observar que a regra de infer^encia Gen, que era a que trazia os problemas apontados no captulo 6, e exatamente igual a regra de introduc~ao do quanticador universal (I8). A incorporaca~o da generalizaca~o, tambem esta implcita no uso de regra I9, pois para provar, na teoria formal de primeira ordem TP , que t=x] ` 9x: (ou equivalentemente que t=x] ` :8x::) e necessario aplicar a regra Gen. Assim, a regra I ! so podera ser aplicada, no sistema de deduca~o natural da logica de predicados, quando no ramo que deriva de , n~ao se aplicou nenhuma regra I8 ou I9 introduzindo uma variavel x que e livre em . A maioria dos autores da apresentac~ao da logica classica no estilo de deduc~ao natural Tho87, Cos92, RS92, Bos97] incorporam restrico~es no uso das regras de introduc~ao e eliminac~ao dos quanticadores para tentar compensar a aus^encia de restric~oes no uso da regra I !. Mas, estas restric~oes nas regras dos quanticadores s~ao muito severas, impedindo provar consequ^encias logicas do tipo P (x) ` 8x:P (x). Como vimos no teorema 9.1.5, para todo teorema da logica proposicional existe uma deduc~ao natural (proposicional). Assim, e natural pensarmos num teorema equivalente para a logica de predicados. 9.2. CALCULO DE SEQUENTE DE GENTZEN 205 Teorema 9.1.11 Se e um teorema de TP ent~ao existe uma prova no estilo de deduca~o natural para . Demonstraca~o: A demonstrac~ao deste teorema e analoga a demonstrac~ao do teorema 9.1.5. Assim, so devemos acrescentar uma prova de que os axiomas A4 e A5, da teoria formal de 1a ordem, s~ao dedutveis no estilo de deduca~o natural, o qual foi mostrado no exemplo 9.1.7. Por outro lado como a regra de infer^encia Gen e exatamente a mesma que a regra I8, podemos armar que para todo teorema de TP existe uma prova no estilo de deduc~ao natural. 9.2 Calculo de Sequente de Gentzen Pensemos, de modo geral, no que acontece numa prova de deduc~ao natural. Uma prova e uma sequ^encia de formulas, as quais estabelecem algum sequente1 com o lado esquerdo sendo composto de todas as hipoteses que n~ao foram descartadas na prova e com o lado direito sendo composto pela formula que foi provada ao nal da prova. Tambem, consideraremos as regras de infer^encias como regras sobre sequentes. Uma prova sempre iniciara com uma assunc~ao, por exemplo , e se n~ao acrescentamos nenhuma outra, ent~ao ela mesma e considerada como a prova do sequente ` . Assim, a regra que nos permite comecar e uma regra a qual nos leva diretamente a que todos os sequentes deste tipo sejam corretos. As outras regras s~ao todas condicionais, elas re)etem a ideia de que se certos sequentes s~ao corretos, ent~ao os sequentes que podemos concluir deles tambem s~ao corretos. Por exemplo, a regra Modus Ponens pode ser escrita em forma de sequentes como segue Se ; ` e ' ` ! ent~ao ; ' ` O que acontece numa prova e que comecamos com certos sequentes conhecidos como corretos e ent~ao deduzimos que outros sequentes devem, portanto, tambem ser corretos. A ideia de um calculo de sequente e manter um registro explcito de que sequente e estabelecido em cada ponto da prova. Isto e possvel introduzindo um novo tipo de prova na qual cada linha, por si mesmo, e um sequente provado ate esse ponto da prova. Logo, analogamente as provas de deduc~ao natural, uma prova no calculo de sequentes n~ao e uma sequ^encia linear ou outro vetor de formulas, mas uma combinac~ao de vetores de sequentes. Podemos pensar nas listas que comp~oem um sequente como tacitamente fechadas por par^enteses de chave, pelo que seu papel seria especicar um conjunto de formulas. Quando um conjunto e especicado por uma lista de seus membros, ent~ao a ordem na qual os Um sequente e um par de ordenado de listas nitas de formulas, que pode ser interpretado como que uma das formulas da segunda lista \segue" (pode ser deduzida) da primeira lista. Na pratica usamos a notac~ao sugerida por Gentzen: O sequente h; i sera denotado por ; ` . 1 ~ DA LOGICA 206 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS membros s~ao listados n~ao e relevante, e qualquer repetic~ao na lista pode automaticamente ser desconsiderada. Isto e devido a que dois conjuntos s~ao iguais se, e somente se, tem os mesmos membros e diferentes listas dos membros podem ainda listar os mesmos membros. Mas se n~ao quizermos pensar em termos de conjuntos, e trabalharmos diretamente com listas, ent~ao n~ao podemos prosseguir sem dizer que ordens e repetic~oes s~ao relevantes. Para isso precisamos considerar duas novas regras de infer^encia que re)itam estas propriedades intrnsecas a conjuntos, a regra de interc^ambio (Int) e a regra de contrac~ao (Con), respectivamente. Analogamente a deduc~ao natural, podemos presentar o calculo de sequentes como um sistema cujas provas tem a estrutura de uma arvore. Na posica~o superior sobre cada ramo existira um sequente o qual, de acordo com as regras, pode ser descartado. Este portanto sera uma inst^ancia de uma regra com assunc~oes. As outras posic~oes na prova ser~ao ocupadas por um sequente o qual e deduzido de outros sequentes, os sequentes do qual este e deduzido s~ao escritos imediatamente acima deste separando-os por uma linha horizontal. Podemos, portanto, escrever nossas regras basicas de infer^encia da mesma maneira. Diferentemente do estilo de deduc~ao natural, no estilo de sequentes de Gentzen teremos dois tipos de regras: aquelas que dependem de um dos conectivo logicos (usadas para introduzir este conecetivo ou no lado esquerdo ou direito do sequente) e que por isso s~ao chamadas de regras logicas e aquelas que n~ao dependem dos conectivos logicos, mas da disposic~ao ou estrutura do sequente, denominadas regras estruturais. Temos cinco regras estruturais ,algumas das quais tem sua vers~ao para o lado direito (que denotaremos por d) e outra para o lado esquerdo (denotado por e), as quais se denominam: incluss~ao (Inc), emfraquecimento (Emf), corte (Cor), intercambio (Int) e contrac~ao (Con). Regras Estruturais Inc : ; ` ' Cor : ; ` ; `;' ` ' Emfe : ;; ``'' Emfd : ;;``'' ' ` & Inte : ;; ' ` & ' & Intd : ;; `` ' & `' Cone : ;; ` ' Cond : ;;``'' A regra Cor pode ser omitida, uma vez que existe uma maneira de obt^e-la a partir das outras. Como esta demonstrac~ao e complexa n~ao a incluimos neste texto. Uma demontrac~ao de que a eliminac~ao do corte e possvel pode ser encontrada em GLT89, Fit96, Bos97]. 9.2. CALCULO DE SEQUENTE DE GENTZEN 207 9.2.1 Logica Proposicional No calculo de sequentes, tambem existem regras para os operadores logicos, chamadas regras logicas. Para cada um dos operadores logicos teremos uma regra para introduzir o conectivo no lado esquerdo e outra para o lado direito. Regras Logicas ^d : ; `;`' ^;`' ' ^e : ;; ^``'' _d : ;;``_'' _e : ; ;` '_ ;` '` ' !d : ;;` `!'' !e : ; `;'! ;` '` ' :d : ;;` :`'' :e : ;; :``'' Exemplo 9.2.1 Uma deduc~ao no calculo de sequentes para ` :( ^ ) ! (: _ : ) e dada pela seguinte arvore de deduc~ao. ~ DA LOGICA 208 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS Inc : Emfe : Inte : ^d : ` ` ` :d : Intd : :d : Intd : :e : Intd : _e : !d : Inc : Emfe : ` ` ` ^ ` : ^ ` ^ : ` : ^ : ` ^ : : :( ^ ) ` : : :( ^ ) ` : : :( ^ ) ` : _ : ` :( ^ ) ! (: _ : ) Teorema 9.2.2 Se 2 LP tem uma prova por deduc~ao natural ent~ao existe uma deduc~ao no calculo de sequentes de Gentzen para . Demonstraca~o: Primeiro expressaremos cada uma das regras da deduc~ao natural como sequentes. I^ : ; ;` ` ;^ ` I_1 : ; ;` ` _ E^1 : ; ;` ` ^ I_2 : ; ;` ` _ E^2 : ; ;` ` ^ E_ : ; ` _ ;; ` ` ; ` I !: ;;` `! E !: ; ` ;;`` ! I: : ; ` ; ` ;: ` : E: : ; :: ` A seguir mostraremos que para cada regra de deduc~ao natural existe uma deduca~o no estilo Gentzen. Claramente as regras I^ e I ! s~ao casos particulares das regras ^d e !d, 9.2. CALCULO DE SEQUENTE DE GENTZEN 209 respectivamente, onde ' = . Ja as outras regras (as regras de eliminac~ao e as regras I_2 e I:) devem ser obtidas de uma maneira indireta. E^1 : Inc : ; ` Emfe : Cor : ;`^ ; ` ^e : ; ^ ` ;` I_1 : Emfd : _d : ;` ; ` ;`_ E_ : Cor : ;`_ _e : ; ` ; ` ; _ ` ;` E !: Emfd : Cor : I: : ;`! !e : ;` ; ` Inc : ; ` ; ! ` ;` ~ DA LOGICA 210 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS :d : :e : Cor : ; ` ; ` : ; ` : :d : ; : ` : ; ` : : ; ` : E: : Inc : :d : :e : ; ` ; ` : ; :: ` As regras E^2 e I_2 s~ao obtidas de maneira analogas as regras E^1 e I_1, respectivamente. Considerando a familiaridade das regras formuladas dessa maneira e a ideia basica de que uma prova no calculo de sequente registra, a cada etapa, o sequente que foi provado ate essa etapa, ca facil de ver como uma prova, originalmente escrita como uma prova de deduc~ao natural, pode agora ser reescrita como uma prova no calculo de sequentes. Portanto, para uma dada deduc~ao natural de um 2 LP , substituindo cada regra de deduc~ao natural usada na prova pela arvore de deduc~ao de Gentzen correspondente, sempre poderemos construir uma deduc~ao no calculo de sequentes de Gentzen para ` . Exemplo 9.2.3 Seja a prova do exemplo 9.1.2. Podemos escrever uma prova equivalente para ela no calculo de sequentes, e dada pela seguinte arvore. Inc : Emfd : _d : Cor : ;`_ _e : ; ` ; ` ; ` _ Inc : Emfd : _d : ; ` ; ` ; ` _ ; _ ` _ ;`_ 9.2. CALCULO DE SEQUENTE DE GENTZEN 211 9.2.2 Logica de Predicados Analogamente a deduc~ao natural, pelo fato da logica de predicados ser uma extens~ao da logica proposicional, so incorporaremos as respectivas regras logicas para os quanticadores universal e existencial, assim como uma restrica~o ao uso da regra !d e a regra :d , que e equivalente a aplicar o teorema da deduc~ao . Regras Logicas t=x] ' 8d : ;;``8x: ' t=x] ` ' 8e : ;;8x: `' ]`' t=x] ' 9e : ;; 9a=x 9d : ;;``9x: ' x: ` ' Em todos os casos, t e um termo livre para x em . Em 9e, a constante a n~ao deve ocorrer em ;, ' nem . As restric~oes impostas ao uso do teorema da deduc~ao aqui tambem s~ao necessarias, uma vez que a regra !d e uma vers~ao de sequentes de este teorema e a regra :d incorpora implicitamente este teorema. Logo, devemos restringir o uso de esta regra: a regra !d so podera ser aplicada, no calculo de sequentes de Gentzen da logica de predicados, quando no ramo que deriva ; ` ' n~ao se aplicou nenhuma regra 8d ou 9e, introduzindo uma variavel x que e livre em . Exemplo 9.2.4 A seguir daremos uma prova do sequente 8x: ` 9x: Inc : 8e : 9d : ` 8x: ` 8x: ` 9x: Considerando que x e livre para x em , para qualquer variavel x e qualquer formula , temos que x=x] e . Assim, as aplicac~oes das regras 8e e 9d nesta prova s~ao corretas. Note que se desejarmos provar a reversa deste teorema, isto e a formula 9x: ! 8x:, n~ao conseguiriamos. Uma tentativa de prova seria a seguinte Inc : 9e : 8d : a=x] ` a=x] 9x: ` a=x] 9x: ` 8x: ~ DA LOGICA 212 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS Mas ao aplicar a regra 9e nesta prova, estamos transgredindo a restrica~o de a n~ao ocorrer em '. Como visto no teorema 9.2.2, para cada deduc~ao natural de uma formula bem formada de LP temos uma deduc~ao no calculo de sequentes de Gentzen. Assim, resulta natural pensarmos que o mesmo e valido para deduc~oes naturais de formulas bem formadas de LP . Teorema 9.2.5 Seja 2 LP . Se existe uma deduc~ao natural para ent~ao existe uma deduc~ao no calculo de sequente de Gentzen para . Demonstraca~o: Como a logica predicados extende a logica proposicional e, como demonstrado no teorema 9.2.2, se 2 LP tem uma deduc~ao natural, ent~ao tem uma deduc~ao no calculo de sequentes de Gentzen, aqui so realizaremos a prova da parte n~ao incluida na prova do teorema 9.2.2. Analogamente a demonstrac~ao do teorema 9.2.2, primeiro expressaremos as regras de deduca~o natural para os quanticadores em termos de sequentes. I8 : ; ;` `8x: E8 : ;;``8x: t=x] t=x] , onde t e livre para x em I9 : ;;``9x: E9 : ;;``9x: a=x] , onde a e uma constante nova na deduc~ao de ; ` 9x: Claramente, as regras de introduc~ao s~ao inst^ancias das regras 8d e 9d , respectivamente. Assim, so precisamos provar as regras E8 e E9. E8 : Inc : Cor : ; ` 8x: 8e : ; t=x] ` t=x] ; 8x: ` t=x] ; ` t=x] E9 : Inc : Cor : ; ` 9x: 9e : ; a=x] ` a=x] ; 9x: ` a=x] ; ` a=x] 9.3. ESTILO TABLEAUX 213 Como a restrica~o sobre o uso da regra I ! em deduc~ao natural e da regra !d no calculo de sequente de Gentzen e a mesma, ent~ao podemos transformar cada deduc~ao natural de uma formula 2 LP numa deduc~ao no calculo de sequentes de Gentzen para . 9.3 Estilo Tableaux O metodo de tableau para a logica classica, devido a Hintikka Hin55] e Beth Bet59], e semelhante ao metodo de resoluc~ao, no sentido que uma prova tableau e uma prova por reduc~ao ao absurdo. Comecamos com uma hipotese e se a partir dessa hipotese derivamos uma consequ^encia impossvel, ent~ao podemos concluir que a hipotese original e impossvel. Se a prova n~ao foi bem sucedida, e nenhuma consequ^encia impossvel e vislumbrada, ent~ao em alguns casos podemos concluir que n~ao existe erro com a hipotese aberta, isto e, a hipotese pode ser verdadeira para alguma interpretac~ao. Existem casos nos quais podemos mostrar que a procura por uma consequ^encia impossvel foi exaustiva, e poderamos ter encontrado uma consequ^encia impossvel se uma existisse. Mas nem todos os casos s~ao assim. Algumas vezes tudo o que podemos dizer sobre a prova e que ainda n~ao chegamos a nenhuma consequ^encia impossvel e que n~ao sabemos se isto ira acontecer caso continuemos a prova. As assunc~oes que s~ao pesquisadas dessa maneira s~ao assunc~oes de certas formulas com determinados valores verdades. O caso mais simples e quando assumimos que todas as formulas em quest~ao s~ao verdadeiras. Se estas assunc~oes lev~ao a uma consequ^encia impossvel, ent~ao temos mostrado que as formulas s~ao inconsistentes. Porem, podemos tambem considerar a assunc~ao que todas as formulas s~ao falsas ou que algumas s~ao falsas e outras verdadeiras. Embora o metodo tableau para prova de teoremas em logica classica tenha se mostrado bastante satisfatorio no estudo de logica, acreditava-se que ele n~ao teria uma aplicac~ao computacional satisfatoria devido a diculdade de se controlar as varias instanciac~oes de uma variavel quanticada universalmente e pelo espaco de busca necessario para essas instanciac~oes. Entretanto, a experi^encia mostrou o contrario, e inclussive podemos incorporar a ele o algoritmo da unicac~ao para se obter um provador automatico de teoremas t~ao eciente quanto os considerados mais ecientes usando o metodo de resoluc~ao Cos92]. Notemos que as formulas do tipo ^: s~ao insatisfatveis para qualquer interpretac~ao e uma formula da forma _ e insatisfatvel se e somente se ambas, e , s~ao insatisfatveis. Assim, para vericarmos se uma formula e insatisfatvel, podemos reescrever na sua forma normal disjuntiva (para isto precisamos, previamente, transformar na sua forma normal Prenex e eliminar quanticadores existenciais usando o processo de skolemizac~ao) e observar se cada conjunc~ao contem um subconjunto insatisfatvel (isto e, se contem uma subformula do tipo ^ :), ent~ao e insatisfatvel. ~ DA LOGICA 214 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS 9.3.1 Logica Proposicional O primeiro a se fazer para se provar uma formula usando o sistema tableau e colocar na forma normal disjuntiva a formula :, dispondo-a numa estrutura de arvore, onde cada conjunc~ao da formula ocupe um ramo da arvore. Depois procura-se subformulas insatisfatveis em todos os ramos da arvore. Se todos os ramos da arvore s~ao insatisfatveis, ent~ao : e insatisfatvel e, portanto, e logicamente valida. O sistema tableau tem como base um conjunto de regras de expans~ao, as quais s~ao divididas em duas categorias: Regras de Expans~ao do tipo A ^ :( _ ) : : :( ! ) : :: Regras de Expans~ao do tipo B :( ^ ) _ ! j : j : j : A ideia e p^or as duas subformulas imediatas de uma conjunc~ao no mesmo ramo, o que e feito com a aplicac~ao de uma regra do tipo A. Analogamente, as subformulas imediatas de uma disjunc~ao devem bifurcar o ramo original, o que e conseguido com a aplicac~ao de uma regra do tipo B. Exemplo 9.3.1 Vamos provar o teorema ! ( ! ) usando o metodo tableau. 1) 2) 3) 4) 5) :( ! ( ! )) (o teorema negado) (1, Regra A) :( ! ) (1, Regra A) (3, Regra A) : (3, Regra A) Os numeros n~ao s~ao parte ocial tableau, mas tem sido acrescentados para melhor falar sobre a prova. Em particular, podemos dizer que no unico ramo do tableau acima encontramos duas formulas contraditorias (2 e 5). Assim, a negac~ao do teorema nos leva a um absurdo e portanto provamos o teorema. Agora deniremos a noc~ao de prova tableau formalmente. Deni c~ao 9.3.2 Seja uma formula. 9.3. ESTILO TABLEAUX 215 1. e um tableau. 2. Se T e um tableau e T resulta de T ao aplicar uma das regra de expans~ao tableau, ent~ao T tambem e um tableau. Deni c~ao 9.3.3 Um ramo ' de um tableau T e um ramo fechado se ele contiver e :, para alguma formula . Deni c~ao 9.3.4 Um tableau T e um tableau fechado se cada um de seus ramos for fechado. Deni c~ao 9.3.5 Uma prova tableau de e um tableau fechado cuja raiz e :. e um teorema do sistema tableau, se tem uma prova tableau. Exemplo 9.3.6 Uma prova tableau (com rotulos adicionados para referenciar) de ( ! ( ! )) ! (( _ ) ! (( ! ) _ )) e dada abaixo. 1) :(( ! ( ! )) ! (( _ ) ! (( ! ) _ ))) 2) ! ( ! ) 3) :(( _ ) ! (( ! ) _ )) 4) _ 5) :(( ! ) _ ) 6) :( ! ) 7) : ;@@ ; @@ ;; 8) : ;@@ ; @@ ;; 10) teorema negado 1, regra A 1, regra A 3, regra A 3, regra A 5, regra A 5, regra A 2, regra B 9) ! 4, regra B 11) Nesta prova, 1. e a negac~ao da formula a ser provada 2. e 3. saem de 1. pela regra do tipo A 4. e 5. saem de 3 pela regra do tipo A 6 e 7 s~ao obtidas de 5 pela aplicac~ao da regra de tipo A, 8 e 9 de 2 pela aplicac~ao da regra de tipo B e, nalmente, 10. e 11. s~ao obtidas de 4. pela regra de tipo B. Lendo da esquerda para direita, os ramos s~ao fechados uma vez que 8. e 10., 7. e 11. e 6. e 9. s~ao contraditorias. Note que num dos ramos fechados temos uma formula n~ao at^omica. A seguir estenderemos o conceito de prova tableau para sequentes. ~ DA LOGICA 216 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS Deni c~ao 9.3.7 Sejam ; = f1 : : : ng e ' = f1 : : : mg. Uma prova tableau para o sequente ; ` e uma prova tableau de 1 ! (2 ! ( (n ! ) ). Uma prova tableau para o sequente ; ` ' e uma prova tableau de ; ` i para algum 1 i m. Exemplo 9.3.8 Uma prova tableau para ` :: e a seguinte prova tableau para ! ::. 1) :( ! ::) conclus~ao negada 2) : 1, regra A: 3) :: 1,regra A Teorema 9.3.9 Se existe uma derivac~ao no estilo de Gentzen para 2 LP , ent~ao existe uma prova tableau para . Demonstraca~o: Para provar este teorema, e suciente mostrar que cada regra no calculo de sequentes de Gentzen tem uma prova tableau, isto e, se a regra e da forma ;`' ;0 ` '0 supomos que contamos com uma prova tableau de ; ` ' e a partir dela construimos uma prova tableau para ;0 ` '0 . Por simplicidade consideraremos em cada uma das regras que ; = & = e ' = ou ' = (ou ainda igual a ), segundo seja o caso. Primeiro reescreveremos as regras usando esta simplicac~ao e as considerac~oes na denica~o de prova tableau para sequentes (denic~ao 9.3.7). Regras Estruturais Inc : ` ! Cor : ` `` ! Emfe : ` ` ! Emfd : ` ` _ ! ( ! ) Inte : `` ! ( ! )) Intd : `` ! ) Cone : ` `! (! Cond : `` Regras Logicas 9.3. ESTILO TABLEAUX 217 ^d : `` ^` ^e : ``(!^()!! )) _d : ``_ `! _e : ` ` ! ( _ ) ! !d : `` ! ! ! !d : ``( ! ` )! ! :d : `` : :e : ` :` ! Inc : 1) :( ! ) teorema negado 2) 1, regra A 3) : 1, regra A Cor : Seja ': uma prova tableau de . Por outro lado, uma prova tableau de ! tem a seguinte forma: 1) :( ! ) teorema negado 2) 1, regra A 3) : 1, regra A ' Como ' precedido de n~ao pode ser uma prova de algum tal que = : , pois isso contradiz a hipotese de que temos uma prova para (':). Logo, 1) : ' e uma prova tableau de . Emfe : Se ': e uma prova tableau de ent~ao o seguinte tableau e uma prova de ! . 1) :( ! ) teorema negado 2) 1, regra A ': Emfd : Se ': e uma prova tableau de ent~ao, pela denica~o 9.3.7, ela tambem e uma prova tableau de ` . Inte : Uma prova de ! ( ! ) deve ter a seguinte forma 1) :( ! ( ! )) teorema negado 2) 1, regra A 3) :( ! ) 1, regra A 4) 3, regra A 5) : 3, regra A ' ~ DA LOGICA 218 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS Claramente, o tableau 1) :( ! ( ! )) teorema negado 2) 1, regra A 3) :( ! ) 1, regra A 4) 3, regra A 5) : 3, regra A ' e uma prova de ! ( ! ). Intd : Direta da denic~ao 9.3.7. Cone : Uma prova de ! ( ! ) deve ter a seguinte forma: 1) :( ! ( ! )) teorema negado 2) 1, regra A 3) :( ! ) 1, regra A 4) 3, regra A 5) : 3, regra A ' Logo, o seguinte tableau e uma prova de ! : 1) :( ! ) teorema negado 2) 1, regra A 3) : 1, regra A ' Cond : Se ' e uma prova tableau de ` ent~ao, pela denica~o 9.3.7, ela e uma prova de . ^d : Se ': e ': s~ao provas tableau de e , respectivamente, ent~ao o seguinte tableau e uma prova tableau de ^ . 1) :( ^ ) teorema negado ;@@ ; @@ ;; ': ': ^e : Uma prova tableau de ! ( ! ) deve ter a seguinte forma 1) :( ! ( ! )) teorema negado 2) 1, regra A 3) :( ! ) 1, regra A 4) 3, regra A 5) : 3, regra A ' 9.3. ESTILO TABLEAUX 219 Logo, o seguinte tableau e uma prova para ( ^ ) ! . 1) :(( ^ ) ! ) teorema negado 2) ^ 1, regra A 3) : 1, regra A 4) 2, regra A 5) 2, regra A ' _d : Se ' e uma prova de ` ent~ao pela denica~o 9.3.7, ' e uma prova de ou de . Se ' e uma prova de ent~ao 1) :( _ ) teorema negado 2) : 1, regra A ' e uma prova tableau de _ . Analogamente, se ' e uma prova tableau de , ent~ao 1) :( _ ) teorema negado 2) : 1, regra A ' e uma prova tableau de _ . _e : Uma prova tableau de ! tem a seguinte forma: 1) :( ! ) teorema negado 2) 1, regra A 3) : 1, regra A '1 e uma prova tableau para ! deve ter a seguinte forma 1) :( ! ) teorema negado 2) 1, regra A 3) : 1, regra A '2 Se 1) : teorema negado 'i para algum i = 1 2, ent~ao, trivialmente, 1) :(( _ ) ! ) teorema negado 2) _ 1, regra A 3) : 1,regra A 'i e uma prova tableau de ( _ ) ! . Se n~ao, isto e, se 1) 1) '1 '2 ~ DA LOGICA 220 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS s~ao tableau fechado, ent~ao o seguinte tableau e uma prova de ( _ ) ! 1) :(( _ ) ! ) teorema negado 2) _ 1, regra A 3) : ;@@ ; @@ ;; 1, regra A 4) '1 5) '2 onde 4) e 5) sairam de 2 aplicando a regra do tipo B. !d : Direta. !e : Seja '1 uma prova tableau de ` . Uma prova tableau de ! tem a seguinte forma. 1) :( ! ) teorema negado 2) 1, regra A 3) : 1, regra A '2 Uma prova tableau de ( ! ) ! e 1) :(( ! ) ! ) teorema negado 2) ! 1, regra A 3) : ;@@ ; @@ ;; 1, regra A 4) : 5) '1 '2 :d : Uma prova tableau de ! tem a seguinte forma, 1) :( ! ) teorema negado 2) 1, regra A 3) : 1, regra A ' Logo, 1) :: teorema negado 2) 1, regra A ' e uma prova de : ou 1) : teorema negado ' 9.3. ESTILO TABLEAUX 221 e uma prova tableau de . Portanto, uma das duas e uma prova tableau de ` : :e : Se ' e uma prova tableau de ou ent~ao o seguinte tableau e uma prova de : ! . 1) :(: ! ) teorema negado 2) : 1, regra A 3) : 1, regra A ' Assim, e facil ver que podemos transformar qualquer deduca~o no estilo de Gentzen de um sequente numa prova tableau. 9.3.2 Logica de Predicados Analogamente como zemos com o estilo de deduc~ao natural e com o calculo de sequentes de Gentzen, para denir o sistema tableau para a logica de predicados so acrescentaremos a regras especcas dos quanticadores, pois, a menos do teorema da deduca~o , tudo que foi denido para a logica proposicional vale aqui. Antes de darmos as regras de extens~ao para os quanticadores, e bom lembrar as equival^encias 8x: :9x:: e 9x: :8x:: Regras de Expans~ao do tipo C 8x: t=x] :9x: :t=x] Regras de Expans~ao do tipo D :8x: 9x: a=x] :a=x] onde a e uma constante nova para o tableau Exemplo 9.3.10 Uma prova tableau do teorema 8x:P (x) ! 9y:P (y) e dada a seguir: 1: :(8x:P (x) ! 9y:P (y)) teorema negado 2: 8x:P (x) 1, regra A 3: :9y:P (y) 1, regra A 4: P (b) 2, regra C 5: :P (b) 3, regra C onde 1. e o teorema a provar 2. e 3. saem deste pela aplicac~ao da regra A 4. e obtida de 2. pela aplicac~ao da regra C e 5. pela aplicac~ao da regra D a 3. Como 4. e 5. s~ao ~ DA LOGICA 222 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS contraditorio e temos um unico ramo na arvore, concluimos que o tableau acima e fechado e portanto e uma prova do teorema desejado. Como na denica~o de prova tableau para sequentes (denica~o 9.3.7) incorporam indiscriminadamente o uso do teorema da deuc~ao. As restrico~es impostas por este uso indiscriminado nos leva a introduzir uma denica~o mais forte de prova tableau. Deni c~ao 9.3.11 Seja T uma prova tableau para algum 2 LP . T e uma prova tableau forte para se a primeira regra de expans~ao usada em T e do tipo B, C, D, ou e a regra do tipo A :: A denic~ao de prova tableau para sequentes continua a mesma. Assim, teremos uma prova tableau para o sequente ` 8x: mas n~ao teremos uma prova tableau forte para ` ! 8x:. Teorema 9.3.12 Se existe uma derivac~ao no estilo de Gentzen para 2 LP , ent~ao existe uma prova tableau forte para . Demonstraca~o: Para demonstrar este teorema, devemos considerar toda a prova do teorema 9.3.9 e acrescentar um prova tableau para as regras de Gentzen dos quanticadores. Antes, porem, simplicamos estas regras usando os mesmos criterios adotados na prova acima mencionada. t=x] 8d : ` 8x: t=x] ! 8e : ``8x: ! ] 9d : ``9a=x x: ]! 9e : ``9a=x x: ! 8d : Se ':a=x] e uma prova tableau de a=x] (como t e qualquer termo livre para x em , consideramos o termo constante a) ent~ao o seguinte tableau e uma prova de 8x: 1) :8x: teorema negado ':a=x] 8e : Uma prova tableau de ! tem a seguinte forma, 1) :( ! ) teorema negado 2) 1,regra A 3) : 1, regra A ' ~ 9.4. SISTEMA TABLEAU COM UNIFICACAO 223 Logo, o seguinte tableau e uma prova para 8x: ! . 1) :(8x: ! ) teorema negado 2) 8x: 1, regra A 3) : 4) 2, regra C ' 9d : Se ':a=x] e uma prova de a=x] ent~ao o seguinte tableau e uma prova de 9x:. 1) :9x: teorema negado ':a=x] 9e : Uma prova tableau de a=x] ! tem a seguinte forma, 1) :(a=x] ! ) teorema negado 2) a=x] 1, regra A 3) : 1, regra A ' Uma prova tableau para 9x: ! e a seguinte 1) :(9x: ! ) teorema negado 2) 9x: 1, regra A 3) : 1,regra A 4) a=x] 2, regra D ' Assim, considerando estas provas tableau junto com as do teorema 9.3.9, podemos transformar qualquer deduc~ao no estilo de sequentes de Gentzen numa prova tableau do mesmo sequente. 9.4 Sistema Tableau com Unicac~ao O procedimento de unicac~ao de Robinson, apresentado no captulo 7, pode ser adaptado para ser usado pelo sistema de tableau para logica classica de 1a ordem, conforme mostrado por Bow82, Ree85]. Nesta sec~ao apresentamos o sistema tableau com unicac~ao para a logica de 1a ordem e enunciamos sua equival^encia com o sistema tableau sem unicac~ao . De aqui em diante so consideraremos formulas na forma normal de Skolem. Assim, toda vez que comecemos aplicar o sistema tableau, comecaremos com a forma normal de Skolem da negac~ao da formula original. Em virtude desta restric~ao a Regra D n~ao precissa ser mais considerada. Este sistema tableau e denominado com unicac~ao porque usamos o procedimento de unicac~ao de Robinson na obtenca~o de pares de formulas at^omicas complementares. Assim aqui acharemos tableau atomicamente fechados, ~ DA LOGICA 224 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS isto e tableau fechados onde cada ramo contem uma formula at^omica e sua negaca~o. Smullyan Smu68] demonstrou que se uma formula e satisfatvel ent~ao existe um tableau atomicamente fechado para a formula. A maneira como podemos achar esse tableau atomicamente fechado e ilustrado no seguinte algoritmo: Procedimento tableau com unica c~ao : 1. Crie uma variavel booleana para cada formula. Esta variavel indicara se uma formula foi usada ou n~ao (inicialmente todas as variaveis tem valor \falso"). 2. A regra do tipo C e modicada para: 3. 4. 5. 6. :9x: 8x: y=x] :y=x] onde a variavel y e nova para o tableau. Esta nova regra sera denominada de Regra C0 . A regra do tipo D e eliminada do sistema. Comece o tableau escrevendo a negaca~o da formula original. Encontre a forma normal de Skolem (FNS) para a formula (negac~ao da formula original). ENQUANTO o tableau n~ao for atomicamente fechado tente unicar as formula at^omicas de cada ramo aberto SE existir alguma formula n~ao -at^omica que n~ao foi usada ENTA~ O f faca a primeira formula n~ao-at^omica (de cima para baixo) n~ao usada PARA f cada ramo aberto & contendo aplique a regra apropriada a em & g marque como uma formula usada g FIM-ENQUANTO 7. Pare com \ Sucesso" 8. FIM Para ilustrar este procedimento, vamos apresentar alguns exemplos. ~ 9.4. SISTEMA TABLEAU COM UNIFICACAO 225 Exemplo 9.4.1 Vamos tentar provar a formula 8x:9y:P (x y ) ! 9z:8u:P (u z ) : 1: 8x:8z::(P (x f (x)) ! P (g(x z) z)) FNS da negac~ao 2: 8z::(P (v f (v)) ! P (g(v z) z)) 1, Regra C0 3: :(P (v f (v)) ! P (g(v w) w)) 2, Regra C0 4: P (v f (v)) 3, Regra A 5: :P (g(v w) w) 3, Regra A Claramente, as formulas at^omicas 4 e 5 n~ao podem ser unicadas. Portanto, a unica regra que pode ser aplicada e a regra C em 1 ou em 2 obtendo-se uma copia da formula 2 ou 3, respectivamente (mudando so o nome da variavel) o qual so podera gerar novas copias das formulas 4 e 5. Logo, o tableau nunca podera ser fechado. Exemplo 9.4.2 Provaremos usando o sistema tableau que a formula 8x:(P (x z ) ^ R(x y )) ! (9x:P (x z ) _ 8x:R(x y )) e um teorema. 1: 8x1 :8x2 :((P (x1 a) ^ R(x1 b)) ^ (:P (x2 a) ^ :R(f (x1 x2 ) b))) 2: 8x2 :((P (x a) ^ R(x b)) ^ (:P (x2 a) ^ :R(f (x x2 ) b))) 3: ((P (x a) ^ R(x b)) ^ (:P (y a) ^ :R(f (x y) b))) 4: P (x a) ^ R(x b) 5: :P (y a) ^ :R(f (x y) b) 6: P (x a) 7: :P (y a) 8: P (y a) FNS da negac~ao 1, Regra C0 2, Regra C0 3, Regra A 3, Regra A 4, Regra A 5, Regra A de 6 aplicando (y x)] Como no caso do tableau tradicional (sem unicaca~o) n~ao temos a restric~ao de que a variavel introduzida ao usar a regra C seja nova, poderiamos ter substitudo em 3, ao aplicar a regra C, a variavel x2 por x. Assim, em 7, obteriamos :P (x a) em vez de :P (y a), fechando assim com 6 o unico ramo do tableau. Assim, resulta natural pensarmos que podemos sempre construir uma prova tableau forte tradicional a partir de uma com unicac~ao. A reversa tambem e razoavel ser correta, isto e, sempre que tivermos uma prova tableau forte tradicional (de uma formula na forma normal de Skolem) tambem poderemos obter uma prova tableau com unicac~ao. Por exemplo seja a seguinte prova tableau forte tradicional da formula 8x:(P (x z) ^ R(x y)) ! (9x:P (x z) _ 8x:R(x y)) negando e reescrevedo-o na sua forma normal de Skolem resulta na formula ~ DA LOGICA 226 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS 8z:8y:8x1 :8x2 :(P (x1 z ) ^ R(x1 y ) ^ :(P (x2 z ) _ R(f (z y x1 x2 ) y ))) Prova tableau forte tradicional: 1: 2: 3: 4: 5: 6: 8z:8y:8x1:8x2 :((P (x1 z ) ^ R(x1 y)) ^ :(P (x2 z ) _ R(f (z y x1 x2 ) y))) (P (a z ) ^ R(a y)) ^ :(P (a z ) _ R(f (z y a a) y)) P (a z ) ^ R(a y) :(P (a z ) _ R(f (z y a a) y)) P (a z ) :P (a z ) FNS da negac~ao de 1, Regra C, aplicada 4 vezes 2, Regra A 2, Regra A 3, Regra A 4, Regra A Claramente esta prova pode ser modicada para uma prova tableau com unicaca~o, simplesmente alterando todas as aplicac~oes da regra C, na qual se substitua uma variavel quanticada por um termo t por uma aplicaca~o da Regra C modicada, isto e na qual se substitui a variavel quanticada por uma nova variavel. Assim, o tableau com unicac~ao correspondente seria: 1: 8z:8y:8x1:8x2 :((P (x1 z ) ^ R(x1 y)) ^ :(P (x2 z ) _ R(f (z y x1 x2 ) y))) FNS da negac~ao de 2: (P (x5 x3 ) ^ R(x5 x4 )) ^ :(P (x6 x3 ) _ R(f (x3 x4 x5 x6 ) x4 )) 1, Regra C, aplicada 4 vezes 3: P (x5 x3 ) ^ R(x5 x4 ) 2, Regra A 4: :(P (x6 x3 ) _ R(f (x3 x4 x5 x6 ) x4 )) 2, Regra A 5: P (x5 x3 ) 3, Regra A 6: :P (x6 x3 ) 4, Regra A 7: P (x6 x3 ) de 5 aplicando (x6 x5 )] Teorema 9.4.3 Seja uma formula na forma normal de Skolem e T um tableau forte para . Se T contem a formula t=x] obtida ao aplicar uma Regra C, ent~ao existe um tableau com unicac~ao T 0 para que contem y=x], obtida ao aplicar a Regra C0 , e tal que t e livre para y em . Demonstraca~o: Para demonstrar este teorema usaremos induc~ao nas formulas do tableau, T = 1 2 : : : n para construir um tableau (provavelmente n~ao fechado) T1 = 1 : : : n : Base da induc~ao: 1 e forma normal de Skolem da negaca~o do teorema a ser provado. Logo, 1 = 1. Etapa indutiva: Assuma que para i < n, ja temos construdo o tableau 1 : : : j , com j < m. Se i+1 n~ao foi obtida pela aplicac~ao da Regra C, ent~ao j+1 = i+1. Sen~ao, isto e, i+1 = t=x] obtido pela aplicac~ao da regra C, ent~ao faca j+1 = y x] como sendo obtido pela aplicac~ao da regra C0 (y e uma variavel nova em 1 : : : j ). Finalmente, para tornar este tableau atomicamente fechado, aplique o algoritmo da unicac~ao para todos pares de formulas at^omicas em cada um dos ramos do tableau. Dessa maneira todo o que pode ser provado usando tableau tradicional tambem pode ser provado usando tableau com unicaca~o. Observe que a restric~ao no teorema da formula ser a forma normal de Skolem da negaca~o da formula a ser provada e super)ua, uma vez que uma formula e um teorema se e somente se sua forma normal de Skolem tambem e. ~ 9.5. CORRESPONDE^NCIA ENTRE TABLEAU E RESOLUCAO 227 9.5 Correspond^encia entre Tableau e Resoluc~ao Robinson Rob79] utilizou o sistema tableau para explicar o princpio da resoluca~o. Por outro lado, Gallier em Gal86] apresentou um algoritmo para transformar provas da logica proposicional usando o estilo de sequentes de Gentzen em refutac~oes por resoluc~ao e viceversa. Nesta sec~ao apresentaremos uma adaptac~ao , realizada em Cos92], do metodo apresentado por Gallier, para obter um algoritmo para transformar provas tableau com unicac~ao em refutac~oes por resoluc~ao. Teorema 9.5.1 Existe um algoritmo para transformar uma refutac~ao por tableau com unicac~ao de um conjunto ; de clausulas da logica classica de 1a ordem em uma refutac~ao por resoluca~o para ;. Demonstraca~o: A demonstrac~ao sera por induca~o no numero de ramos do tableau. Para vericar se o resultado esta correto, sera necessario vericar em cada etapa da induc~ao se as seguintes condic~oes s~ao satisfeitas: 1. Existe uma refutac~ao por resoluc~ao para ; obtida a partir da prova tableau com unicaca~o de ; e ambas provas tem o mesmo unicador. 2. O numero de resolventes e menor ou igual ao numero de ramos fechados no tableau. 3. O conjunto de pares de literais usados nas etapas da resoluc~ao e um subconjunto do conjunto de pares de literais usados para se fechar o tableau. Base da induc~ao: O tableau tem so um ramo. Portanto, ; contem clausulas at^omicas Ci e Cj tais que existe um unicador mais geral 0 para Ci e o complemento de Cj . Ent~ao a seguinte arvore e uma resoluc~ao para ; Ci Ci0 Cj Cj 0 @@ ; ; @@;; 2 Assim, a^mbos tableau e resoluc~ao t^em o mesmo unicador 0 , a refutaca~o por resoluc~ao tem um resolvente e o par de literais usados e o mesmo para usado para fecharmos o tableau. Logo, esta etapa da induc~ao satisfaz as condic~oes exigidas. Etapa indutiva: O tableau tem mais de um ramo. Assim o tableu que foi fechado com um unicador digamos 0 , e da forma ~ DA LOGICA 228 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS C1 ... Ck ... Cn ;@@ ; @@ ;; B1 B2 onde a clausula Ck e da forma Ci _ Cj , com i j < k, e os ramos B1 e B2 s~ao gerados por aplicac~ao da regra B a Ck , de tal modo que Ci esta em B1 e Cj esta em B2 . Como o tableau e fechado, cada um dos ramos deve tambem ser fechado. Suponha que os ramos B1 e B2 sejam fechados e seus unicadores mais gerais sejam 1 e 2 , respectivamente. Ent~ao, 0 = 1 2 . Pela hipotese indutiva, 1. Existem refutac~oes por resoluc~ao D1 e D ; 2 derivadas de B1 e B2 com unicadores mais gerais 1 e 2 , respectivamente. 2. O numero de resolventes de D1 e D2 s~ao menores ou iguais ao numero de ramos para se fechar B1 e B2, respectivamente. 3. O conjunto de pares de literais usados nos passos de D1 e D2 s~ao subconjuntos dos conjuntos de pares de literais usados para se fechar B1 e B2 , respectivamente. Se cada clausula de entrada de D1 e um membro de ;, ent~ao 1. Pela hipotese indutiva, D1 e uma refutac~ao para ; com 1 como unicador mais geral. Desde que o conjunto de pares de literais usados nos passos da resoluc~ao de D1 e um subconjunto do conjunto de pares de literais usados para fechar B1 , o unicador 0 para o tableau e tambem um unicador para D1. Agora, so e preciso refazer D1 usando o unicador mais geral 0 ao inves de 1 . 2. O numero de resolventes e, pela hipotese indutiva, menor ou igual ao numero de ramos para se fechar B1 . 3. O conjunto de pares de literais usados nos passos de D1 e subconjunto do conjunto de pares de literais usados para se fechar B1 , e portanto e um subconjunto dos pares de literais usados para se fechar o tableau inteiro. 9.6. COMPLETUDE DO SISTEMA 229 Se cada clausula de entrada de D2 e um membro de ;, ent~ao a situac~ao e analoga a descrita acima para D1. Caso contrario, substituimos D1 por D10 , onde D10 e similar a D1 , substituindo a clausula Ci por Ci _ Ck e consequentemente, todos os resolventes obtidos recursivamente a partir de Ci. Se no nal o resolvente for a clausula vazia, ent~ao a refutac~ao esta feita e o resultado e vericado da mesma maneira que acima. Caso contrario, o 'ultimo resolvente deve ser uma inst^ancia de Cj . Assim, construmos uma refutac~ao por resoluc~ao para ; concatenando D2 a D10 e usando o unicador mais geral 0. Note que o numero de resolventes e igual a soma dos numeros de resolventes de D1 e D2 , o qual e menor ou igual que a soma de ramos necessarios para fechar B1 e B2, ou seja o numero de ramos necessarios para fechar o tableau inteiro. 9.6 Completude do Sistema O teorema da completude (teorema 7.2.8) indica que cada uma das maneiras como abordamos a logica de 1a ordem s~ao potencialmente equivalentes. Portanto, para mostrar, por exemplo, que uma fbf de 1a ordem e universalmente valida podemos mostrar que ela e um teorema usando uma prova no estilo axiomatico ou uma refutaca~o por resoluc~ao da negac~ao da formula. Assim, os conceitos de consequ^encia logica, provabilidade e refutabilidade se correspondem, embora eles sejam de natureza diferentes (sem^antico, sintatico e computacional). Neste captulo, por outro lado, vimos uma serie de novas maneiras de apresentar logica (proposicional e de 1a ordem). Assim, resulta natural que queriamos que estes estilos de apresentar logica sejam equivalentes entre se. Mas os resultados que os teoremas 9.1.11, 9.2.5, 9.3.12, 9.4.3 e 9.5.1 nos garantem e mostrar que toda prova no estilo axiom^atico de um teorema pode ser transformada num deduca~o natural para , e que toda deduc~ao natural de um pode ser transformada numa deduc~ao no estilo de sequentes de Gentzen para , etc. A gura 9.2 mostra como se relacionam os diversos modos de abordar logica vistos aqui, na gura o sentido da seta indica que e possivel transformar uma prova no estilo descrito na origem da seta no estilo descrito no nal da seta. Claramente debido a circularidade dos estilos apresentados neste captulo com o estilo axiomatico, e pelo teorema da completude 7.2.8, podemos estender este mesmo teorema da completude, para um que englobe estes novos estilos. Teorema 9.6.1 Para o calculo de predicado as seguintes assertivas s~ao equivalentes: 1. j= , isto e e universalmente valida. 2. ` , isto e e um teorema de TP . 3. : ;! 2, isto e existe uma refutac~ao por resoluc~ao de :. ~ DA LOGICA 230 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS deducao natural Prova no calculo de estilo de sequente axiomatico de Gentzen Universalmente Valida refutacao prova por tableau resolucao forte prova tableau com unificacao Figura 9.2: Representac~ao esquematica de como se relacionam os diversos estilos de apresentar logica de 1a ordem. 9.7. EXERCICIOS 231 4. existe uma deduca~o natural para . 5. existe uma deduca~o no estilo de sequentes de Gentzen para . 6. existe uma prova tableau forte de . 7. existe uma prova tableau com unicac~ao de . Demonstraca~o: Direto do teorema da completude 7.2.8 e dos teoremas 9.1.11, 9.2.5, 9.3.12, 9.4.3 e 9.5.1. 9.7 Exerccios 1. Prove as proposic~oes 3.3.3 e 3.3.4 e os exerccios do captulo 3 e captulo 6 no estilo de deduc~ao natural 2. Prove os seguintes teoremas usando deduc~ao natural (a) (b) (c) (d) (e) :( ^ ) ! (: _ :) _ ( _ ) ! ((: ! ( _ )) _ ) _ ( _ ) ! ( _ ( _ )) 8x:(:P (x) _ R(x)) ! :(9x:P (x) ^ :9x:R(x)) (8x:(P (x) ! (R(x) _ S (x))) ^ :8x:(P (x) ! R(x))) ! 9x:(P (x) ^ S (x)) 3. Prove de maneira direta (analogo ao teorema ??) que todo teorema de LP pode ser provado usando calculo de sequente de Gentzen. 4. Prove no estilo de Gentzen os seguintes sequentes: (a) (b) (c) (d) (e) (f) ! ! ` ! : _ ( ! ) ` :( ^ : ) : _ : ! ` 8x:8y:P (x y ) ` 8y:9x:P (x y ) 8x:8y:P (x y ) ` 8x:8y:P (y x) 8x:(P (x) ! (R(x) _ S (x))) ^ :8x:(P (x) ! R(x)) ` 9x:(P (x) ^ S (x)) 5. De uma prova tableau para cada uma das formulas bem formadas dos exerccios do captulo 4. 6. De uma prova tableau para (a) :( _ ) ! (: ^ : ) ~ DA LOGICA 232 CAPITULO 9. OUTRAS APRESENTACOES DE PREDICADOS (b) (c) (d) (e) (f) ! ( ! ( ^ )) cada um dos axiomas de LP 9x:(P (x) ! 8y:P (y )) 8x:8y:P (x y ) ` 8y:9x:P (x y ) 8x:8y:P (x y ) ` 8x:8y:P (y x) Captulo 10 Teorias de Primeira ordem Intuitivamente, pensamos de teorias como sendo um conjunto de armac~oes sobre um determinado fen^omeno. na pratica as teorias contem muitos fatos para serem listados explicitamente. dai precisamos apresenta-las como um subconjunto de fatos junto com algumas leis das quais os demais fatos possam ser derivados. Se for preciso apresentar alguma formalidade no modo de apresentar uma teoria, ent~ao devemos ser capazes de achar um sistema formal adequado, no qual os fatos fundamentais possam ser expressos como axiomas ou regras e as leis captadas dentro de um aparato deductivo. E claro que nem todas as teorias s~ao formalizaveis, porem existem casos onde a formalizac~ao e possvel e util. Em ci^encia da computac~ao existem duas principais aplicac~oes de teorias formais: modelac~ao do mundo real e especicac~ao de artefactos construdos. Embora a diferenca entre estes dois usos de teoria seja util, existem entre elas uma especie de simetria que poderia ser expressa do seguinte modo. Enquanto uma teoria inconsistente da luz n~ao signica que a luz n~ao exista, mas que a teoria n~ao e apropriada, uma teoria inconsistente atuando como especicac~ao para um novo sistema de gerenciamento de banco de dados signica que teremos consideravel diculdade para desenhar tal sistema. Existe uma diferenca basica, entre o conceito de teoria como vimos nos captulos anteriores e aquele que e usado em ci^encias de um modo geral e a ci^encia da computac~ao de um modo particular. Enquanto as teorias matematicas se esgotam nos seus modelos, os domnios matematicos, se referem a fatos reais. Dai chamarmos as teorias cientcas de teorias factuais. Portanto em teorias factuais e relevante o conceito sem^amtico de refer^encia. Isto leva a dois conceitos de modelos em teorias factuais. O modelo matematico e o modelo factual. Enquanto o modelo matematico e um ferramenta util de entendimento da teoria, o modelo factual e a propria raz~ao de ser da teoria. Como se elaboram as teorias cientcas? Parte-se da realidade complexa, como um sistema bancario, e constroi-se um domnio matematico mais ou menos simplicado dessa realidade. A complexidade dessa estrutura matematica depende de que tracos da realidade se pretende captar. Dizemos que essa estrutura e um modelo dessa realidade ou que a 233 234 CAPITULO 10. TEORIAS DE PRIMEIRA ORDEM realidade foi modelada por esse domnio matematico. E claro que este conceito de modelo e diferente daquele denido por nos no captulo 5. Assim, existem dois conceitos de modelos: o modelo de uma teoria formal e o modelo de uma realidade. Uma vez encontrado o modelo de uma realidade, isto e, o domnio matematico que capta os fatos basicos dessa realidade, usa-se essa estrutura matematica como uma ferramenta para descobrir fatos novos dessa realidade. E nesse sentido que se usa, por exemplo, o termo \teoria da relatividade". O proximo passo seria elaborar uma teoria formal dessa realidade, ou seja, considerar uma teoria formal tal que um dos modelos e essa estrutura matematica. Feito isso, fechase o ciclo da elaborac~ao de teorias formais de realidades. Portanto, e bom quando se lida com realidade, se distinguir uma teoria matermatica (ou simplesmente teoria) de uma teoria formal dessa realidade. Cabe, no entanto, a seguinte pergunta: Por que a Engenharia de Software se preocupa com os aspectos formais da realidade, enquanto as demais engenharias n~ao? Uma possvel resposta seria que as engenharias convencionais se preocupam com a construc~ao de objetos fsicos, enquanto a engenharia de software tem por meta especicar e conbstruir objetos logicos, isto e, propriedades de objetos fsicos. Ao usarmos a palavra \teoria", de ora em diante, deve car claro, pelo contexto, a qual dos dois conceitos de teoria estamos nos referindo. Neste captulo estudaremos teorias formais de 1a ordem, especicamente algumas teorias com igualdade, para nalmente tendo em vista a import^ancia, para a ci^encia da computac~ao , da componente factual das teorias cientcas, estudar teorias factuais. 10.1 Teorias de 1a Ordem No captulo 3 vimos o conceito de teoria formal como sendo uma estrutura composta de uma linguagem formal, um conjunto de axiomas e um conjunto de regras de infer^encias. Uma teoria formal serve para apresentar uma logica, qual seja o conjunto de todos os teoremas que podem ser provados na teoria formal. Por outro lado, o conceito de teoria, como usado no cotidiano, e um conjunto de verdades de uma realidade ou fen^omeno. E claro, que se eu posso derivar algum fato ou fen^omeno a partir dos preceptos de uma determinada teoria, ent~ao esse fato ou fen^omeno tambem deve fazer parte dessa teoria. Logo uma denic~ao adequada para teoria, desde um ponto de vista logico, e como um conjunto de formulas de uma linguagem formal a qual e fechada com respeito a noc~ao de consequ^encia sintatica. Deni c~ao 10.1.1 Seja T = hL ' Ri uma teoria formal e , Form(L). , e uma teoria de T se , e fechada em relac~ao a `, isto e, , = f 2 Form(L) : , ` g: 10.1. TEORIAS DE 1A ORDEM 235 Teorema 10.1.2 Seja T = hL ' Ri uma teoria formal. Ent~ao , = T (T ) e uma teoria, isto e, o conjuntos de teoremas que podem ser provados em T e uma teoria de T . Demonstraca~o: Trivialmente se 2 ,, isto e se e um teorema da teoria formal T , ent~ao , ` . Por outro lado, se , ` ent~ao existe uma prova 1 n de sobre as premissas de ,. Provaremos por induc~ao que i 2 ,, para todo i = 1 n e portanto, 2 , como desejado. Caso base: i = 1, ent~ao 1 ou e um axioma, em cujo caso ` 1 e portanto 1 2 , ou 1 2 ,. Etapa Indutiva: Assuma que ele e verdadeiro para todo i < k. Ent~ao, por de denic~ao de prova sobre um conjunto de premissas, k e um axioma ou k 2 , ou k segue por uma regra de infer^encia de R de j 's anteriores. Os dois primeiros casos s~ao tratados como no caso base. O terceiro caso: se k e consequ^encia direta de j1 jm , com ji < k, ent~ao por hipotese indutiva, temos uma prova em T para cada um dos ji , isto e ` ji . Juntando todas as provas mais k obtido como aplicac~ao de uma regra de infer^encia em R aos ji , obteremos uma prova de k , e portanto, ` k . Logo, k 2 ,. Proposi c~ao 10.1.3 Seja T uma teoria formal e , uma teoria de T . Ent~ao, T (T ) ,. Demonstraca~o: Por denic~ao, se 2 T (T ), ent~ao ` . Logo, pela monotonicidade da relac~ao de consequ^encia sintatica `, , ` . Portanto, 2 ,. Considerando a denic~ao de prova numa teoria formal T = hL ' Ri, se ; ` ent~ao existe um subconjunto nito ;0 ;, tal que ;0 ` . Se ; for uma teoria de T , cabe a seguinte pergunta: Existe um ;0 ;, nito tal que ; = f 2 Form(L) : ;0 ` g? Se tal ;0 existe dizemos que ele e uma apresenta c~ao da teoria ; na teoria formal T . Existe sempre uma menor teoria para uma dada teoria formal T , qual seja, a logica apresentada pela teoria formal, isto e, T (T ). Neste caso ;0 = . Existe tambem a maior teoria de uma teoria formal T , qual seja Form(L), que no caso de L possuir negaca~o seria uma teoria inconsistente. E claro, que sempre que temos uma apresentaca~o ;0 de uma teoria , numa teoria formal T = hL ' Ri, podemos extender a teoria formal T , para uma teoria T 0 de tal modo que , seja a menor teoria de T 0, isto e, , = T (T 0), fazendo T 0 = hL '0 Ri com '0 = ' ;0. Portanto, para qualquer teoria ,, para a qual existe uma apresentac~ao, podemos denir uma teoria formal T tal que , = T (T ). Assim, como 236 CAPITULO 10. TEORIAS DE PRIMEIRA ORDEM as teorias de nosso interesse s~ao as que possuim uma apresentac~ao, de aqui em diante sempre usaremos a teoria formal (por exemplo, T ) para a qual a teoria em quest~ao (por exemplo, ,) e a menor teoria, isto e, , = T (T ). A menor teoria de uma teoria formal T sera chamada, simplesmente, como a menor teoria de T . Dentre as teorias formais e suas teorias associadas, queremos destacar aquelas que s~ao baseadas numa linguagem de 1a ordem. Deni c~ao 10.1.4 Seja T = hL ' Ri uma teoria formal. T e uma teoria formal de 1a ordem se L e uma linguagem de 1a ordem e o conjunto de axiomas ' e o conjunto de regras de infer^encias R contem os axiomas e regras de infer^encias, respectivamente, da teoria formal do calculo de predicados (sec~ao 6.1.). Deni c~ao 10.1.5 Seja T = hL ' Ri uma teoria formal de 1a ordem. A teoria de T e denominada de teoria de 1a ordem. Seja C (L) a classe de todas as teorias de 1a ordem sobre uma linguagem de 1a ordem L. Ent~ao a menor teoria em C (L) e o conjunto das formulas universalmente validas, que constitui a logica de predicados. Portanto, se , Form(L) e a teoria de uma teoria formal de 1a ordem T e ,log e a menor teoria de C (L), isto e Gammalog e a logica de prediacdos sobre a linguagem L, ent~ao ,log ,. Portanto, , = ,log ,nlog , para algum conjunto ,nlog Form(L) tal que ,log \ ,nlog = . Assim, ,nlog s~ao as formulas que n~ao fazem parte da logica de predicados. Dizemos que ,nlog s~ao os objetos n~ao-logicos ou extra-logicos da teoria ,. Seja T = hL ' Ri uma teoria formal de 1a ordem. O conjunto 'e = ' ; '0 , onde '0 e o conjunto de axiomas da logica de predicados, e denominado de conjunto de axiomas extra-logicos da teoria. Quando uma linguagem formal L e suporte para uma teoria, ela contem smbolos logicos e n~ao logicos. Como pretendemos desenvolver muitas teorias com a mesma logica subjacente, as linguagens correspondentes devem ter um nucleo em comum, no mnimo os smbolos logicos, e variar os smbolos n~ao logicos segundo a teoria em estudo. Uma teoria de 1a ordem classica e aquela gerada por uma teoria formal de 1a ordem. Logo para apresentar a teoria de 1a ordem basta listar os smbolos n~ao logicos (para descrever a linguagem) e os correspondentes axiomas n~ao logicos. 10.2 Teorias de 1a Ordem com Igualdade Suponha que N = hN + i e uma interpretac~ao para uma linguagem de 1a$ ordem LP . Frequentemente precissamos dar varios nomes, dependendo do contexto, a um mesmo elemento de N , por exemplo, o numero dois, pode ter os seguintes nomes: \2", \1+1", \o menor numero par", \raiz quadrada de quatro", etc. Isto representa um problema para as 10.2. TEORIAS DE 1A ORDEM COM IGUALDADE 237 linguagens de 1a ordem, como apresentamos ate aqui. Gostariamos de poder nos referir a elementos de N por um nome que pareca apropriado naquele momento e portanto devemos raciocinar sobre sentencas de modo que reconhecamos os varios termos como sin^onimos. A soluc~ao e prover , o alfabeto da linguagem, de um predicado que seja comum a todas as linguagens, cujo objetivo seja substituir nomes equivalentes em sentencas sem trocar seu valor verdade. Um modo de atingir este objetivo e extender a linguagem LP , fornecendo uma construc~ao para denotar o fato de que dois nomes se referem ao mesmo individuo. Poderiamos usar, por exemplo, um nome de predicado igual(x y), com a interpretac~ao de que ambos, x e y, denotam o mesmo individuo. No entanto o predicado inxo \=" e uma notaca~o mais usual. Este smbolo n~ao pode ser usado para denotar equival^encia, \", pois usaremos equival^encia como uma propriedade de formulas, enquanto igualdade e um conceito associado a termos que e introduzido a linguagem para captar a ideia de \mesmo nome". Em outras palavras, enquanto a igualde relaciona termos na linguagem a equival^encia relaciona sentencas na metalinguagem. Assim, enquanto a propriedade \ 00 nos diz que a formula tem o mesmo valor verdade que a formula , a asserc~ao \x = y00 e uma formula de LP , isto e, uma formula de Form(L) a qual pode ser verdadeira em algumas interpretaco~es e falsa em outras. Portanto, e necessario, acrescentar as linguagens de 1a$ o simbolo de predicado \ =00. Por ele ser um smbolo de predicados binario aplica-se a regra F1 que diz que se t1 tn s~ao termos e R e um smbolo de predicado n-ario, ent~ao R(t1 tn) 2 Form(L). No caso particular de \ =00 a regra toma a forma particular: t1 t2 , onde t t 2 FormL 1 2 t1 = t 2 que pode ser pensada como uma regra de introduca~o da igualdade. Adicionamos, tambem, mais um axioma F9 : (A6) t = t, onde t 2 T(X ) denominado axioma da identidade e uma regra de infer^encia SI :: t1 = t2 , onde t t 2 T (X ) e t e substituvel por t em 1 2 1 2 t2=t1 ] denominada regra de substitui c~ao por iguais (SI), ou seja \se e verdadeira e t1 = t2, ent~ao a substituic~ao de algumas (possivelmente todas) as ocorr^encias de t2 por t1 em e verdadeira". Assim, uma teoria formal de 1a ordem com igualdade e uma teoria formal de 1a ordem cuja linguagem de 1a ordem tem o smbolo de predicados binario \ =00 e a regra F9, o conjunto de axiomas tem adicionalmente o axioma A6 e o conjunto de regras de infer^encia tem a regra de infer^encia extra SI . CAPITULO 10. TEORIAS DE PRIMEIRA ORDEM 238 De ora em diante quando nos referirmos as linguagens e teorias de 1a ordem estamos nos referindo as linguagens e teorias de 1a ordem com igualdade. Exemplo 10.2.1 1. Uma prova de x = y ` y = x e a seguinte 1) x = y hip: 2) x = x A6 3) y = x SI 1 2 2. Uma prova de x = y ` (x = z) ! (y = z ) 1) x = y hip: 2) x = z hip: 3) y = z SI 1 2 Dessa forma provamos que x = y x = z ` y = z. Portanto aplicando o teorema da deduc~ao segue x = y ` (x = z) ! (y = z ). Deni c~ao 10.2.2 Seja T uma teoria formal de 1a ordem com igualdade. A logica de 1a ordem com igualdade subjacente a teoria formal T , denotada por LP=, e dada pelo seguinte conjunto: LP= = f 2 Form(L) ` g onde a relac~ao de consequ^encia sintatica ` e a linguagem e relativa a teoria formal T . Assim, para descrever teorias de 1a ordem, no sentido da sec~ao anterior, basta listar os smbolos n~ao logicos e os correspondentes axiomas n~ao logicos. Exemplo 10.2.3 Uma teoria de 1a ordem das ordens parciais tem adicionalmente um smbolo n~ao logico, , e o conjunto ' = fOP1 OP2 OP3g de axiomas n~ao logicos descritos a seguir: OP1 : x x OP2 : x xy= yy x OP3 : x xy yz z Observe que uma regra como OP2 e OP3 podem ser vistas como os axiomas (x y ^ y x) ! x = y e (x y ^ y z) ! x z 10.2. TEORIAS DE 1A ORDEM COM IGUALDADE 239 Portanto a teoria das ordens parciais, OP , e dada pelo seguinte conjunto de formulas OP = f 2 Form(LOP ) : ' ` g onde LOP e uma linguagem de 1a ordem (com igualdade) que tem o smbolo de predicados . Um modelo de uma teoria e um domnio matematico onde o conjunto de axiomas n~ao logicos e satisfeito. Por exemplo, um modelo para a teoria das ordens parciais e o seguinte domnio: Seja U um conjunto n~ao vazio e }(U ) o conjunto das partes de U . h}(U ) =i, onde \ 00 e \ =00 s~ao as relaco~es de inclus~ao e igualdade entre conjuntos, e um modelo para a teoria das ordens parciais. Outros modelos s~ao hN =i, hN =i e hN Mod5i, onde e a relac~ao binaria x y se, e somente se, x Mod 5 y Mod 5 e ! e a relac~ao de equival^encia sobre N denida por x ! y se, e somente se, x Mod5 = y Mod 5: Assim a teoria das ordens parciais OP , e o conjunto de todas as propriedades satisfeitas ou verdadeiras em todos os modelos de OP . Exemplo 10.2.4 A teoria da aritmetica de Peano tem como sii mbllos n~ao logicos um smbolo de predicado \Nat00 e cinco smbolos funcionais (zero 0 + e exp), cujas aridades s~ao: 1. arid(Nat) = 1 2. arid(zero) = 0 3. arid(0 ) = 1 4. arid(+) = 2 5. arid() = 2 6. arid(exp) = 1 Portanto o conjunto de smbolos n~ao logicos e f00 + exp Natg. Os axiomas extralogicos ' = fE1 E2 E10 g s~ao: CAPITULO 10. TEORIAS DE PRIMEIRA ORDEM 240 E1 : E2 : E3 : E4 : E5 : E6 : E7 : E8 : E9 : E10 : Nat(zero) Nat(x) ! Nat(x0 ) :(x0 = zero) (zero) ^ (8x:((x) ! (x0))) ! 8x:(x) x + zero = x x + y0 = (x + y)0 x zero = zero x y0 = x y + x exp(x zero) = zero0 exp(x y0) = exp(x y) x Portanto a teoria das ordens parciais, TAP , e dada pelo seguinte conjunto de formulas TAP = f 2 Form(L) : ' ` g: Um modelo para esta teoria e hN + Suc Expi, onde Suc : N ;! N denida por Suc(x) = x + 1, Exp : N N ;! N e denida por Exp(x y) = xy , + e tem a interpretaca~o usual de soma e multiplicac~ao, respectivamente. 10.3 Teorias de 1a Ordem: Uma denic~ao sem^ntica Seja L uma linguagem de 1a ordem, ' Form(L) e 2 Form(L). Usando o resultado anterior podemos dar uma denic~ao sem^antica da teoria que coincide com a denica~o ??. Podemos dizer que a teoria associada a um conjunto de axiomas n~ao logicos ' e o conjunto de formulas que s~ao consequ^encia logica de ', isto e, o conjunto Con(') = f 2 Form(L) : ' j= g: Claramente, ' Con('). Dizemos que , e uma teoria de 1a ordem (com igualdade) se, e somente se, Con(,) = ,, isto e se , e um conjunto de sentencas semanticamente fechado. Seja L uma linguagem de 1a ordem e ' Form(L). O conjunto de todos os modelos de ' sera denotado por Mod('). Isto e, Mod(') = fD : D j=a , para cada 2 ' e para qualquer atribuic~ao ag Dada uma interpretac~ao D para L, denotaremos o conjunto de todas as sentencas verdadeiras no domnio D por Teo(D). Isto e, Teo(D) = f 2 Form(L) : D j=a , para qualquer atribuic~ao ag ~ SEMNTICA ^ 10.3. TEORIAS DE 1A ORDEM: UMA DEFINICAO 241 Proposi c~ao 10.3.1 Seja L uma linguagem de 1a ordem e D uma interpretac~ao de L. Ent~ao , = Teo(D) e uma teoria. Demonstraca~o: Seja 2 Con(,), temos de mostrar que 2 ,. De fato, se 2 Con(,), ent~ao para todo D0 2 Mod(,), D0 j= . Mas D 2 Mod(,), pois toda sentenca em , e verdadeira em D. Logo, D j= , e consequentemente 2 ,, isto e, , e semanticamente fechado e portanto e uma teoria. Proposi c~ao 10.3.2 Seja L uma linguagem de 1a ordem e fDi : i 2 I g uma classe de domnios que realizam L. Consideremos o conjunto ,= \ i2I Teo(D) ou seja, , e o conjunto de todas as sentencas de L verdadeiras em todos os domnios Di, com i 2 I . Ent~ao , e uma teoria. Demonstraca~o: Mostraremos que Con(,) = ,. Como e obvio que , T Con(,), e suciente mostrar que Con(,) ,. Para isso seja 2 Con(,). Como , = segue que 2 \ i2I i2I Teo(Di ) Con(Teo(Di)) e consequentemente 2 Teo(Di) para todo i 2 I . Portanto 2 ,. Logo, Con(,) ,. Exemplo 10.3.3 Seja = f eg, onde e um smbolo funcional binario e e e um smbolo de constante, o conjunto de smbolos especiais de uma linguagem de 1a ordem L. A teoria elementar dos grupos e constituda pelas sentencas verdadeiras em todos os domnios que realizam L e s~ao verdadeiras as seguintes sentencas: G1 : 8x:8y:8z:(x y) z = x (y z) G2 : 8x:x e = x G3 : forallx:9y:x y = e Assim, o smbolo funcional sera interpretado como o produto de um grupo e o smbolo constante e como o elemento neutro multiplicativo. A principal raz~ao pela que formulamos teorias em forma axiomatica, em lugar de formula-las em forma intuitiva, principalmente para as teorias de 1a ordem, e que noc~oes como consist^encia e completeza podem ser discutidos de um modo preciso e denitivo. Isto e possvel devido a noc~ao de prova ser explcita. Deni c~ao 10.3.4 Seja , uma teoria. , e dita CAPITULO 10. TEORIAS DE PRIMEIRA ORDEM 242 1. Simplesmente consistente se n~ao existe 2 Form(L) tal que , ` e , ` :. 2. Absolutamente consistente se existe 2 Form(L) tal que , 6` , onde 6` signica que \n~ao e derivavel". 3. Maximalmente simplesmente consistente se (a) , e simplesmente consistente e (b) se para algum 2 Form(L), , ` implica que , fg n~ao e simplesmente consistente. 4. completa se para todo 2 Form(L) ou , ` ou , ` :. Proposi c~ao 10.3.5 Seja , uma teoria. Se , e simplesmente completa, ent~ao , e absolutamente completa. Demonstraca~o: Seja 2 Form(L) tal que , ` . Por hipotese, , 6` :. Logo, , e absolutamente consistente. A recproca desta proposic~ao e falsa, no mnimo porque o conceito de simplesmente consistente pressup~oe a exist^encia do conectivo \:". No entanto, temos o seguinte resultado. Proposi c~ao 10.3.6 Se na linguagem de uma teoria , existe o conectivo \:" e e possvel inferir : ` ent~ao absolutamente consistente implica em simplesmente consistente. Demonstraca~o: Suponha que , n~ao seja simplesmente consistente, ent~ao existe 2 Form(L) tal que , ` e , ` :. Por transitividade e usando a hipotese temos, , ` , para um 2 Form(L) arbitrario. Portanto, , n~ao e absolutamente consistente. Consequentemente uma teoria de 1a ordem e simplesmente consistente se, e somente se, for absolutamente consistente, de vez que : ` e uma regra derivada da logica de predicados classica. Da os dois conceitos so terem sentido em teorias n~ao classicas. Nas teorias de 1a ordem, o conceito interessante e da teoria consistente. A quest~ao e a seguinte: Como saber se uma teoria , de 1a ordem e consistente? Prova-se em teoria dos modelos de 1a ordem que , e consistente se, e somente se, possui um modelo. Mais precisamente, seja , e a teoria gerada por uma teoria formal de 1a ordem T = hL ' Ri. , tem um modelo se, e somente se, o conjunto de axiomas extralogicos 'N ', tem um modelo. Este e um criterio muito simples e usual de reconhecer um modelo de uma teoria de 1a ordem ,. Proposi c~ao 10.3.7 Seja , e a teoria gerada por uma teoria formal de 1a ordem T = hL ' Ri. Suponha que a regra ~ SEMNTICA ^ 10.3. TEORIAS DE 1A ORDEM: UMA DEFINICAO 243 ; ` ; ` : ; ` : e derivavel em T . Ent~ao, se , e maximalmente simplesmente consistente, ent~ao , e completa. Demonstraca~o: Suponha que , n~ao seja completa. Ent~ao existe 2 Form(L) tal que 6` (1) e 6` : (2). Por outro lado, se , e maximalmente simplesmente consistente, ent~ao , e simplesmente consistente e ou ` , o qual contradiz (1), ou 6` e , fg n~ao e simplesmente consistente. Se for assim, por , fg n~ao ser simplesmente consistente, existe um tal que ` fg (ou equivalentemente ` ) e ` fg : (ou equivalenetmente ` : ). Usando a regra I: descrita no enunciado desta proposic~ao , ` :, o qual contradiz (2). Os absurdos resultaram de supor que , n~ao era completa. Enquanto o chamado teorema da completude e teorema da compacidade podem representar algo altamente positivo nas teorias de 1a ordem classicas, eles tambem s~ao indicadores das limitac~oes das logicas de 1a ordem. Como por exemplo a proposic~ao a seguir que e uma simples consequ^encia do teorema da compacidade. I: : Proposi c~ao 10.3.8 (Teorema de Lowenheim-Skolem ascendente) Se uma teoria de 1a ordem , tem um modelo innito (isto e, um cujo conjunto base e innito), ent~ao ela tem modelos de cardinalidade arbitrariamente grande. Demonstraca~o: Seja , a teoria gerada por uma teoria formal de 1a ordem T = hL ' Ri, M e um modelo innito de , e N e um conjunto arbitrario. Pretendemos construir um modelo M 0 de , cujo conjunto base tem no minimo a cardinalidade de N . Para isso denamos uma nova teoria formal de 1a ordem T 0 = hL0 '0 R0i a partir de T . A linguagem formal L0 e a linguagem formal L acrescentada dos novos smbolos constantes ci , com i 2 N e as respectivas regras de formac~ao. '0 e o conjunto de axiomas ' mais os novos axiomas :(ci = cj ) para cada i 6= j em N : Agora qualquer subconjunto nito de ,0, a teoria gerada por T 0, tem um modelo desde que ele mencione somente uma quantidade nita dos ci e possamos achar valores distintos para eles em nosso modelo M de ,. Portanto, ,0 tem um modelo, mas qualquer que ele seja e um modelo M 0 de junto com uma injeca~o N ;! M 0 . Existe tambem um teorema de L+owenheim-Skolem \descendente", que enunciaremos a seguir sem, no entanto, darmos a prova. A mesma pode ser encontrada em ]. Proposi c~ao 10.3.9 Seja uma teoria de 1a ordem , que tem um modelo innito, ent~ao ela tem um modelo innito contavel. Mais precisamente, se D e um modelo qualquer de ,, e A e um subconjunto contvel de D (o conjunto base de D), ent~ao existe um submodelo contavel de D para , com A como conjunto base. 244 CAPITULO 10. TEORIAS DE PRIMEIRA ORDEM N~ao denimos anteriormente o conceito de submodelo, ele se encaixa na ideia geral de subestrutura. Por exemplo, um grupo. Para entender a ideia por tras da prova desta proposic~ao, analisemos quando uma teoria de 1a ordem , e uma teoria dos grupos. Neste caso, um subgrupo de um grupo G = hG ei gerado por um subconjunto contavel A de G, e contavel. A prova em geral e analoga aquela que desenvolveriamos para provar isto. Ou seja, iniciamos com o conjunto A e acrescentamos elemntos de M quando formos forcados por , ate o processo terminar, e ent~ao se mostra que n~ao se sai de um conjunto contavel. Uma teoria diz-se categorica se ela tem somente um modelo, a menos de isomorsmo. O teorema de L+owenheim-Skolem nos diz que uma teoria de 1a ordem com um modelo innito n~ao pode ser categorica (embora existam categorias com modelos nitos: Por exemplo, a teoria dos grupos simples de ordem 168). Estamos acostumados a encontrar, em matematica, sistemas de axiomas que categorizam estruturas innitas, como e que isso acontece? Tomemos por exemplo o sistema de postulados de Peano para os numeros naturais ?]. Eles dizem aproximadamente o seguinte: 1. 2. 3. 4. 5. 0 e um numero natural todo numero natural tem um sucessor 0 n~ao e sucessor de nemguem numeros naturais distintos tem sucessores distintos (o postulado da induc~ao) Se P e uma propriedade dos numeros naturais que e verdadeira para 0, e que e verdadeira para todo sucessor de x quando e verdadeira para x, ent~ao P e verdadeira para todos os naturais. Expressos em terminologia moderna, os postulados 1) e 2) n~ao s~ao axiomas, pois eles denem, simplesmente, a linguagem, dizendo que ela contem uma constante e uma operac~ao unaria S . Os postulados 3) e 4) podem ser expressos como sentencas de 1a ordem nessa linguagem: 3. 8x::(S (x) = 0) 4. 8x:8y:(S (x) = S (y)) ! (x = y) O problema se da com o resultado 5., que fala (implicitamente) de todas as possveis propriedades dos numeros naturais, isto e, de todos os subconjuntos possveis do modelo pretendido N . Em logica de 1a ordem n~ao e permitido quanticar sobre subconjuntos, mas somente sobre elementos. devemos portanto, tentar aproximar as intenco~es de Peano introduzindo um esquema de axiomas da forma 10.4. TEORIAS FACTUAIS 245 5. (0=x] ^ 8x:( ! S (x)=x])) ! 8x: Entretanto quando os logicos falam de \aritmetica de Peano", eles, em geral, est~ao pensando numa extens~ao dessa teoria obtida acrescentando tr^es operac~oes binarias A, M e E a linguagem, mais os seguintes axiomas: P1 : 8x:A(x z) = z P2 : 8x:8y:A(x S (y)) = S (A(x y)) P3 : 8x:M (x 0) = x P4 : 8x:8y:M (x S (y)) = A(M (x y) x) P5 : 8x:E (x 0) = S (0) P6 : 8x:8y:E (x S (y)) = M (E (x y) x) que expressam as denic~oes recursivas mais usuais da adic~ao, multiplicaca~o e exponenciac~ao. A aritmetica de Peano e uma teoria util e versatil. No entanto, n~ao capturamos toda a forca dos cinco postulados de Peano, pois nossa linguagem e contavel e portanto so existe uma quantidade contavel de axiomas da forma 8x1 :8x2 : :8xn (cada um dos quais se interpretado numa estrutura contavel D, e uma asserc~ao sobre uma quantidade contavel de subconjuntos de D, uma para cada atribuic~ao dos par^ametros x1 xn, o postulado de Peano se aplica a cada um de uma quantidade incontavel de subconjuntos de N . Portanto, o fato de que a aritmetica de Peano tem modelos n~ao isomorfos a N n~ao e do todo uma surpresa. Uma observac~ao analoga se aplica a asserc~ao, familiar de um primeiro curso de analise real, que os axiomas para um (Dedekind) corpo ordenado completo categoriza a reta real R . O problema e que o axioma da completeza de Dedekind 8S R (S 6= e S tem um maiorante) ! S tem um supremo) envolve a quanticac~ao sobre conjuntos de R . Novamente podemos trocalos por esquemas de axiomas de 1a ordem nas linguagens dos aneis ordenados (isto e, a linguagem dos aneis com um predicado adicional ), mas existe somente uma quantidade contavel de tais axiomas e a teoria resultante tera um modelo contavel. 10.4 Teorias Factuais Convencionamos chamar de construto, em um domnio mateatico, a um conceito (em particular, a uma relac~ao), a um corpo de conceitos, a uma proposic~ao ou a um corpo de proposic~oes, isto e, a uma teoria. Portanto, quando nos referimos a \construto" numa linguagem formal estaremos nos referindo ao seu correspondente conceitual, no domnio matematico. Por exemplo, todos os tr^es componentes do enunciado \3>2" s~ao conceitos e o enunciado e uma proposic~ao. Todos s~ao construtos. 246 CAPITULO 10. TEORIAS DE PRIMEIRA ORDEM Na nossa denic~ao de sistema de interpretac~ao, a func~ao Va tinha o papel de assoicar um item lingustico a um conceito matematico. Em verdad, essa funca~o poderia associar itens lingusticos a qualquer coisa: individuous, conjuntos, relac~oes concretas ou abstratas, e possveis ou impossveis. Isto e, Va poderia associar um item lingustico a objetos no sentido losoco geral da palavra. Admitimos essa noca~o geral de objeto como primitiva ou n~ao denida. Mas admitiremos as seguintes divis~oes: 1. Cada objeto e um item factual (isto e, um acontecimento) ou um construto (isto e, um conjunto). Nenhum objeto e ao mesmo tempo item factual e construto. 2. Cada objeto factual e lingustico ou extralingustico. Nenhum objeto pode ser ambas coisas. 3. Cada objeto lingustico e ou um termo, ou uma formula, ou uma sentenca, ou um conjunto especial de sentencas ou uma teoria formal. Deni c~ao 10.4.1 Seja L uma linguagem formal e D uma interpretac~ao para L. Dizemos que um tem lingustico de L (isto e, uma fbf de L) designa ou denota um construto de D, ou seja, a relac~ao de designac~ao ou denotac~ao vigente entre tens lingusticos e seus denotados conceitos, proposic~oes , etc. Portanto, Va e a func~ao de denotac~ao ou de designaca~o. De ora em diante, aos tens lingusticos chamaremos signos. No caso das teorias cientcas, surge a composic~ao de duas relac~oes: designac~ao Va, de signos para construtos, e a de refer^encia Dn;, de construtos para itens factuais. Assim, alem das presunc~oes ordinarias e das \regras" de designaca~o, as teorias cientcas, incluem tambem, correspond^encias construtos-fatos. Estas ultimas nos esclarece acerca daquilo a que as teorias dizem respeito: ao que se referem seus construtos e o que representam. Ao par hD Vai, onde D e um domnio matematico e Va e a funca~o de interpretac~ao, chamaremos domnio conceptual. Assim, um conjunto pertence a um domnio conceptual. Seja C uma classe de construtos e . o conjunto dos objetos como conceituados acima. Portanto, C ., isto e, construtos s~ao objetos. Deni c~ao 10.4.2 Uma relac~ao de refer^encia < e um subconjunto de C ., ou seja, a relac~ao de refer^encia associa construtos a objetos. Para c 2 C e o 2 ., se (c o) 2 < (ou em notac~ao inxa c<o), dizemos que o construto \c" se refere ao objeto \o" atraves de <. Denimos a classe de refer^encia de c 2 C , denotado por <(c), ao conjunto <(c) = fo 2 . : <(c o)g: A relac~ao de refer^encia < n~ao e re)exiva, nem simetrica, nem transitiva. De fato, n~ao e re)exiva, porque, por exemplo, o conceito de um numero se refere antes a numeros de que a si mesmo. Portanto, < n~ao e, obviamente, nem simetrica nem antisimetrica. < n~ao e transitiva como se v^e no exemplo seguinte: 10.4. TEORIAS FACTUAIS 247 r \o enunciado abaixo e falso" s, onde s se refere a um terceiro enunciado t. E claro que r<s e s<t, mas tambem e claro que n~ao se da que r<t. Pergunta, qual e a classe de refer^encia de uma sentenca em **LPC*? Itens factuais, como coisas e eventos, s~ao convenientemente caracterizadas como n~aoconceituais. Deni c~ao 10.4.3 A totalidade F de objetos factuais e o subconjunto de . formado por elementos n~ao-conceituais e tais que F se torna disjunto em relac~ao a C , isto e, F = fx 2 . : :(x 2 C )g: Se um conceito, enunciado ou teoria, se refere a um ou mais objetos factuais dir-se-a que ele e factual. Assim a subrelac~ao <(F ) , de refer^encia factual, coloca em pares construtos objetos factuais, ou seja sua extens~ao se contem no conjunto dos pares ordenados construto-fato, isto e, <(F ) C F . Consideremos a seguinte tabela, onde / ou 0 e a relaca~o de designac~ao: objeto lingustico ! / ou 0 ! construto !<! objeto nome proprio ! designa ! conceito individual ! refer^encia ! individuo letra predicado predicado propriedade sentenca proposic~ao conjunto de fatos A func~ao de valorac~ao Va e a relac~ao de refer^encia <, podem ser combinadas para produzir uma relac~ao, que, associa em pares, signos a objetos. Essa relaca~o que designaremos por ', sera concebida como o produto relacional de Va por <. Deni c~ao 10.4.4 Seja obj (L) o conjunto de objetos de uma linguagem L. A relac~ao , ', com domnio obj (L) e co-domnio abrangendo o conjunto }(.), de classes de objetos, denida por ' = Va \ < e denominada de rela c~ao de denota c~ao . Quando a denotac~ao de um signo e conceitual, ' coincide com Va. Dessa forma '3' designa \3" ou equivalentemente `3' denota \3". Em outras palavras, no campo da ci^encia formal n~ao existe diferenca entre designac~ao e denotac~ao. Contudo quando um construto se refre a algum objeto extra conceitual a diferenca se torna clara. CAPITULO 10. TEORIAS DE PRIMEIRA ORDEM 248 10.4.1 Exemplos de Teorias Factuais Tendo decidido a logica subjacente a nossa teoria precisamos restringir a linguagem formal de modo a incluir somente aqueles termos e nomes de predicados que ter~ao interpretaca~o. No que segue daremos exemplos de modo a ilustrar essas observac~oes. Existem tr^es masculinos na famlia de Ferreira: Jo~ao, bento e Henrique. Henrique e pai de Jo~ao, e Jo~ao e pai de Bento. Alfabeto n~ao logico = fx y Henrique Joao Bento pai avog. Regras n~ao Logicas = f Joao Henrique Bento pai() fracavo() = Henrique Joao Bentog Axiomas n~ao Logicos: E1: pai(Joao) = Henrique E2: pai(Bento) = Joao E3: 8x: pai(pai(x)) = avo(x) O sistema formal e Ap^endice A Soluc~oes de Exerccios Propostos Captulo 1 Captulo 2 Captulo 3 1) Provaremos que ` :( ! : ) 1) 2) 3) 4) 5) 6) 7) ! :: :: ! (:: ! :( ! : )) :: ! :( ! : ) :( ! : ) Hipotese Hipotese proposic~ao 3:3:4:b M:P:2 3 proposica~o 3:3:4:f M:P:1 5 M:P:4 6 3) Provaremos que :( ! : ) ` 1) 2) 3) 4) 5) 6) 7) :( ! : ) (: ! ( ! : )) ! (:( ! : ) ! :: ) : ! ( ! : ) :( ! : ) ! :: :: :: ! 4) Provaremos que :( ! : ) ` 249 Hipotese proposic~ao 3:3:4:e AxiomaA1 M:P:3 2 M:P:1 4 proposic~ao 3:3:4:a M:P:5 6 Ap^endice A. Soluco~es de Exerccios Propostos 250 1) 2) 3) 4) 5) 6) 7) :( ! : ) (: ! ( ! : )) ! (:( ! : ) ! ::) : ! ( ! : ) :( ! : ) ! :: :: :( ! : ) ! Hipotese proposica~o 3:3:4:e proposica~o 3:3:4:c M:P:3 2 proposica~o 3:3:4:a proposic~ao 3:3:3:i 4 5 M:P:1 6 5) Provaremos que se ` ent~ao :( ! : ) ` . 1) 2) 3) 4) ` :( ! : ) ` :( ! : ) ` :( ! : ) ` Hipotese Exerccio 3 Exerccio 4 Lei do Corte 6) Provaremos que ` ::( ! : ) ! : . 1) 2) 3) 4) 5) 6) 7) ::( ! : ) ::( ! : ) ! ( ! : ) ! : : ::( ! ) ` : ` ::( ! : ) ! : Hipotese Hipotese proposic~ao 3:3:4:a M:P:2 3 M:P:1 4 o provado de 1-5 teorema da deduc~ao 7) Provaremos que se ` ! e ` ! ent~ao ` ! :( ! : ), isto e,sera provado que ! ! ` ! :( ! : ) 1) 2) 3) 4) 5) 6) 7) 8) ! ! :( ! : ) ! ! ` :( ! : ) ! ! ` ! :( ! : ) Hipotese Hipotese Hipotese M:P:3 1 M:P:3 2 exerccio 2 o provado de 1-6 teorema da deduca~o Ap^endice A. Soluco~es de Exerccios Propostos 251 Captulo 4 Captulo 5 Captulo 6 1.c.) Primeiro provamos que 8x:8y:P (x y) ` 8x:8y:P (y x). Seja a seguinte prova: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 8x:8y:P (x y ) hip. 8x:8y:P (x y ) ! 8y:P (z y ) A5. 8y:P (z y ) MP 1,2 8y:P (z y ) ! P (z x) A5. P (z x) MP 3,4 8z:P (z x) Gen. 8z:P (z x) ! P (y x) A5. P (y x) MP 6,7 8y:P (y x) Gen. 8x:8y:P (y x) Gen. Logo, como a hipoteses 8x:8y:P (x y) n~ao tem variaveis livres, podemos usar o teorema da deduc~ao e inferir que existe uma prova de ` 8x:8y:P (x y) ! 8x:8y:P (y x) 2.b.) Uma prova de R(a) ! 8x:P (x) ` 8x:(R(a) ! P (x)) e a seguinte: 1. 2. 3. 4. R(a) ! 8x:P (x) hip 8x:P (x) ! P (x) A5 R(a) ! P (x) prop. 3.3.3.i 8x:(R(a) ! P (x)) Gen. Captulo 7 22.b) S ;! aSB j aB j abc B ;! bC Cb ;! bC CC ;! cc cC ;! cc Ap^endice A. Soluco~es de Exerccios Propostos 252 24) A soluc~ao-CP e dada pelas sequ^encias 4-2-5-5-3-1. Isto e, da sequ^encia A obtemos baab baba ab ab abaa aba e da sequ^encia B obtemos baa bbab a a baba baaaba A cadeia resultante e baabbabaabababaaaba. Captulo 8 4.d) retira(X,],]). retira(X,X|L1],L1). retira(X,Y|L1],L2):- retira(X,L1,L3), insira1(Y,L3,L2). 4.d) retira2(X,],]). retira(X,X|L1],L2):- retira(X,L1,L2). retira(X,Y|L1],L2):- retira(X,L1,L3), insira1(Y,L3,L2). Bibliograa Acy98] Benedito Melo Acioly. Programac~ao como Matematica ou Logica Construtiva. Anais do I Workshop em Logica, Banco de Dados e Intelig^encia Computacional, Natal-RN, 9 e 10 de novembro de 1998. Paginas 13 a 22. AB99] Benedito Melo Acioly e Benjamn Rene Callejas Bedregal. Teoria da Computac~ao : Hierarquia de Linguagens Formais e Computabilidade. Notas de Aula, DIMApUFRN, 1999. BB95] Bojadziev, G. & Bojadziev, M. Fuzzy Sets, Fuzzy Logic, Applications. World Scientic Publishing, Singapore, 1995. Bet59] E. W. Beth. The Foundations of Mathematics. North Holland, 1959. Bos97] David Bostock. Intermediate Logic. Clarendon Press - Oxford, 1997. Bow82] K.A. Bowen. Programming with full rst order logic. Em J.E. Hayes et al., editores, Machine Intelligence 10. Elis Horwood, Chichester, 1982. Bun83] A. Bundy. The Computer Modelling of Mathematical Reasoning. Academic Press, London, 1983. Cos92] Marcos Mota do Carmo Costa. Introduc~ao a Logica Modal Aplicada a Computac~ao . VIII Escola de Computaca~o, 3 a 12 de agosto de 1992, Gramado/RS. CHRP73 CHRP73 A. Colmerauer, H. Hanoui, P. Roussel e R. Pasero. Un Systeme de Communication Homme-Machine en Francais. Groupe d'Intelligence Articielle, Universite d'Aix-Marseille, 1973. CL73 CL73 Chin-Liang Chang e Richard Char-Tung Lee. Symbolic Logic and Mechanical Theorem Proving. Academic Press, New York, 1973. Dav89] Ruth E. Davis. Truth, Deduction, and Computation: Logic and semantic for computer science. Computer Science Press, 1989. Doe94] Kees Doets.From Logic to Logic Programming. The MIT Press, Cambridge, Massachusetts, 1994. Dum77] M. Dummett. Elements of Intuitionism. Oxford U.P., 1977. 253 254 BIBLIOGRAFIA End72] H. B. Enderton. A Mathematical Introduction to Logic. Academic Press Inc., New York, 1972. Fit96] Melvin Fitting. First-Order Logic and Automated Theorem Proving. Second Edition, Springer-Verlag, 1996. Gal86] J. H. Gallier. Logic for Computer Science. Harper and Row, New York, 1986. G+89] Paul Gochet et al. From Standard Logic to Logic Programming: Introducing a Logic Based Approach to Articial Intelligence. Andre Thayse ed.. John Wiley & sons, 1989. GH75] Hubert Brian Gri3ths e Peter John Hilton. Matematica Classica: Uma interpretac~ao contempor^anea. Traduzida por Elza F. Gomide. S~ao Paulo, Edgars Bl+ucher, Ed. da Universidade de S~ao Paulo, 1975. Gog97] Joseph A. Goguen. Theorem Proving and Algebra (Draft). University of California at San Diego, Department of Computer Science and Engineering, 1997. GLT89] Jean-Yves Girard, Yves Lafont e Paul Taylor. Proof and Types. Cambridge Tracts in Theoretical Computer Science, Vol. 7. Cambridge University Press, 1989. GTW77] J.A. Goguen, J.W. Thatcher and E.G. Wagner. An Initial Algebra Approach to the Specication, Correctness, and Implementation of Abstract Data Type. RC 6487, IBM Thomas J. Watson Research Center, New York, 1976. HA50] D. Hilbert e W. Ackermann. Principles of Mathematical Logic. Chelsea, 1950. Har79] David Harel. First Order Dynamic Logic. Lecture Notes in Computer Science, LNCS, Vol. 68, 1979. Hen88] Matthew Hennessy. Algebraic Theory of Processes. The MIT Press, 1988. Hey56] A. Heyting. Intuitionism: An Introduction. North Holland, 1956. Hin55] J.Hintikka. Form and Content in Quantication Theory. Acta Philosophica Fennica, 8, 1955. HL94] Patricia Hill e John Lloyd. Godel Programming Languages (Logic Programming). MIT Press, may 1994. Hod92] Joshua S. Hodas. Lolli: An Extension of Prolog with Linear Logic Context Management. Proceeding of the 1992 Workshop on the Prolog Programming Languages. Philadelphia, summer 1992. Hod95] Joshua S. Hodas. Lolli: A Linear Logic Programming Language. In http://www.cs.hmc.edu/ hodas/research/lolli/, ultima atualizaca~o em 26/07/1995. Acessado em 17/01/2002. BIBLIOGRAFIA 255 HMM83] J. Halpern, Z. Manna and B. Moszwkowski. A Hardware Semantics Based Upon Temporal Intervals. In: Procedding of 19th International Colloquium on Automata, Language and Programming. Lecture Notes in Computer Science, LNCS, Vol. 154:278-292, 1983. Kas96] Kasabov, N. K. Foundations of Neural Networks, Fuzzy Systems, and Knowledge Engineering. Ed. The MIT Press, Massachusetts Institute of Technology, 1996. Kle52] S.C. Kleene. Introduction to Metamathematics. Van Nostrand, 1952. Kow72] Robert Kowalski. The Predicate Calculus as a Programming Languages. Anais do International Symposium and Summer School on Mathematical Foundations of Computer Science, Jablona near Warsaw, Poland, 1972. Kow74] Robert Kowalski. Predicate Logic as a programming language. Proceedings IFIP'74, North-Holland 1974, paginas, 569-574. Lan64] P. J. Landim. The Mechanical Evaluation of Expressions. Computer Journal, 6:308-320,1964. Mak92] J. A. Makowsky. Model Theory and Computer Science: An Appetizer. In Handbook of Logic in Computer Science Vol. 1. S. Abramsky, Dov. M. Gabbay and T.S.E. Maimbaum (eds). Clarendon Press - Oxford, 1992. Men87] Elliott Mendelson. Introduction to Mathematical Logic. Third Edition. Wadsworth & Brooks/Cole Advanced Books & Software, Pacic Grove, California. A division of Wadsworth, Inc. 1987. Mer53] C.A. Meredith. Single axioms for the systems (C,N), (C,O) and (A,N) of the two valued propositional calculus. IN J. Comp. Syst. (3):155-164, 1953. MP79] Z. Manna and A. Pneuli. The Modal Logic of Programs. In Proceeding of 6th International Colloquium on Automata, Language and Programming. Lecture Notes in Computer Science, LNCS, Vol. 71:385-411, Springer-Verlag, 1979. Ngu99] Nguyen, Hung T. and Walker, Elbert A. A First Course in Fuzzy Logic. Chapman and Hall, 1999. NP01] Tobias Nipkow and Lawrence C. Paulson. Isabelle HOL: Then Tutorial. SpringerVerlag, 2001. OUS01] OUSIA Site. Estudos em Aristoteles. In http://www.ifcs.ufrj.br/ fsantoro/ousia/frames.htm. Accesado em 27/11/2001. Pal97] Luiz A.M. Palazzo. Introduc~ao a Programac~ao PROLOG. Pelotas: Editora da Universidade Catolica de Pelotas, EDUCAT, 1997. 256 BIBLIOGRAFIA Pau94] Lawrence C. Paulson. Isabelle: A Generic Theorem Prover. LNCS 828, SpringerVerlag, 1994. PPW79] L.M. Pereira, F.C.N. Pereira e D.H.D. Warren. User's Guide to DECsystem-10 Prolog (Provisional Version), Department of Articial Intelligence, University of Edinburgh, Edinburgh, Scotland, 1979. Ree85] S.V. Reeves. Theorem-Proving by Semantic Tableaux. PhD. Thesis, University of Birmingham, 1985. Rob65] J.A. Robinson. A Machine-Oriented Based on the Resolution Principie. Journal of ACM, New York, V.12, n.1., p.23-41, Jan. 1965. Rob79] J.A. Robinson. Logic: Form and Function. North Holland, New York, 1979. Ros53] J.B. Rosser. Logic for Mathematicians. McGraw Hill, 1953 (second edition, 1978, Chelsea). RS92] Mark Ryan e Martin Sadler. Valuation Systems and Consequence Relations. In Handbook of Logic in Computer Science Vol. 1. S. Abramsky, Dov. M. Gabbay and T.S.E. Maimbaum (eds). Clarendon Press - Oxford, 1992. Smu68] R. M. Smullyan. First-Order Logic. Springer-Verlag, Berlim, 1968. TB01] Naoyuki Tamura and Mutsonori Bonbara. LLP: A Linear Logic Programming Languages and its Compiler System. http://bach.cs.kobe-u.ac.jp/llp/, ultima atualizac~ao em 16/10/2001. Acessado em 17/01/2002. Tho87] Simon Thompson. An Introduction to Type Theory and Constructive Mathematics (Draft). University of Kent at Canterbury, Computing Laboratory, 1987. xre01] xrefer site. Logic, history of. In http://www.xrefer.com/entry/552643. Accesado em 06/11/2001. Zad65] Zadeh, L. Fuzzy Sets. Information Control 8, (1965). Zem73] J.J. Zeman. Modal Logic. Oxford, 1973. Indice -algebras, 4 -algebra inicial, 9 -congru^encia, 14 -domnio, 18 dos termos com variaveis, 19 homomorsmo, 19 -equac~ao , 18 -isomorsmo, 11 -homomorsmo, 7 TP , 99 algebra, 4 algebra booleana, 30 T(TP), 100 backtracking, 153 base de dados, 147 basica, 59 multiunitaria, 67 n~ao unitaria, 67 unitaria, 67 vazia, 55, 59, 142 clausulas de Horn, 141 classe de equival^encia, 14 Classes equacionais, 13 computaco~es numericas, 159 computaca~o simbolica, 142 Con, 178 conjunto base, 18 conjunto de discord^ancias, 126 conjunto minimal insatisfatvel, 67 consequ^encia, 42 logica, 33 sem^antica, 33 consequ^encia direta, 42 consequ^encia logica, 92 consequ^encia sem^antica, 92 consequente, 25 consist^encia, 103 consistente, 33 construto, 217 consultas, 147 contingentes, 32 contradic~ao, 32 Cor, 178 calculo de sequente de Gentzen, 177 calculo proposicional, 31 caixa, 55 clausula, 59 b'asica, 111 deduc~ao natural, 168 deduc~ao por resoluc~ao , 61 depende de, 103 domminio de Herbrand, 122 A-atribuic~ao, 12 alfabeto, 2 de 1a ordem, 82 antecedente, 25 aritmetica de Peano, 217 assinatura, 5 relacional, 18 assunc~ao, 168 atribuic~ao de valores verdade, 30 axiomas, 42 extra-logicos, 208 axiomas da linguagem formal, 2 257 258 domnio conceptual, 218 ELC, 55, 59 eliminac~ao de literais complementares, 59 Emf, 178 equac~ao , 13 escopo, 28 hipotese, 168 formula at^omica, 84 universalmente fechada, 112 formula bem formada, 4 formula fechada, 85 formula valida, 92 formulas at^omicas, 27 bem formadas, 27 tautologicas, 94 falsa numa interpretac~ao , 92 fatos, 146 fbf, 4, 27 fnc, 56 fncr, 56 forma clausal, 112 forma normal conjuntiva, 56 de 1a ordem, 120 reduzida, 56 prenex, 112 func~ao de valoraca~o , 30 sem^antica, 30 func~ao de Skolem, 116 generalizac~ao universal, 100 gramatica, 2 identicadores, 145 Inc, 178 insatisfatvel, 92 inst^ancia de substituica~o , 124 Int, 178 interpretac~ao , 88 INDICE Logica proposicional, 33 logica de 1a ordem, 94 de predicados classica, 94 leis de Morgan, 37 Linguagem, 2 especicada, 4 Formal, 2 gerada, 4 Natural, 3 Proposicional, 26 linguagem, 2 1a ordem, 81 de predicados, 82 decidvel, 29 dos termos de primeira ordem, 83 linguagem formal de primeira ordem, 83 lista vazia, 162 listas, 162 literal, 56 logica 1a ordem com igualdade, 210 logicamente equivalentes, 36 matriz, 112 metas, 147 modelo, 92 modus ponem, 44 modus ponens, 100 modus tollens, 52 objeto, 218 factual, 218 lingustico, 218 objetos, 144 ocorr^encia ligada, 85 ocorr^encia livre, 85 operadores, 158 oredm lexicograca, 127 paradigma funcional, 139 INDICE paradigma logico, 139 perguntas, 147 prexo, 112 premissa, 168 procedimento de unicac~ao de Robinson, 128 programa em logica, 139 programac~ao declarativa, 139 programas procedurais, 139 Prolog, 140 proposic~ao, 24 proposic~ao at^omica, 26 composta, 26 prova, 42 Linguagem formais, 4 subordinada, 168 tableau para o sequente, 188 prova tableau, 187 forte, 194 quet~oes, 147 ramo fechado, 187 reduzir formulas, 56 refutac~ao , 62, 129 regra contrac~ao , 178 de corte, 178 de emfraquecimento, 178 de incluss~ao, 178 interc^amcio, 178 regra de derivac~ao , 2 regra de expans~ao tipo C, 193 regra de expans~ao tipo D, 193 regra de infer^encia substituic~ao por iguais, 209 regras, 154 estruturais, 178 logicas, 178 recursivas, 157 regras de expans~ao, 186 tipo A, 186 259 tipo B, 186 regras de infer^encia, 42 relaca~o de equival^encia, 14 representac~ao do conhecimento, 140 resolvente, 128 basico, 60, 128 satisfatvel, 91, 92 sem^antica, 5 denotacional, 5 operacional, 5 separaca~o padr~ao, 128 sequente, 177 sistema de equac~oes , 13 skolemizaca~o, 117 subformula, 27 substituica~o , 124 tabelas verdade, 29 tableau, 187 fechado, 187 tautologia, 31 teorema, 42 de L+owenheim-Sholem ascendente, 215 da compacidade, 34, 92 da completude, 71 da deduca~o, 34 da deduca~o , 45, 92, 104 de Herbrand, 123 seguro, 66 Teoria 1a$ Ordem com Igualdade, 208 teoria, 206 1a ordem, 82 da aritmetica de Peano, 211 absolutamente consistente, 214 categorica, 216 completa, 214 da aritmetica de Peano, 212 das ordens parciais, 211 de 1a ordem, 208 factual, 217 formal 260 de 1a ordem, 208 maximalmente simplesmente consistente, 214 simplesmente consistente, 214 teoria formal, 42 calculo de predicados, 99 da logica proposicional, 43 termo livre para x, 87 termos, 24, 144 basicos, 145 constantes, 145 umg, 124 unicador, 125 unicador mais geral, 126 universalmente valida, 92 valores verdade, 29 variaveis an^onimas, 153 variavel ligada, 86 variavel livre, 84, 86 verdadeira numa interpretac~ao , 92 INDICE