248
1 Introduçªo à Lógica para a CiŒncia da Computaçªo Jair Minoro Abe Alexandre Scalzitti João Inácio da Silva Filho

Livro - Introdução a Lógica para Ciências da Computação

Embed Size (px)

Citation preview

Page 1: Livro - Introdução a Lógica para Ciências da Computação

1

Introdução à Lógicapara a

Ciência da Computação

Jair Minoro AbeAlexandre Scalzitti

João Inácio da Silva Filho

Page 2: Livro - Introdução a Lógica para Ciências da Computação
Page 3: Livro - Introdução a Lógica para Ciências da Computação

Introdução à Lógicapara a

Ciência da Computação

2.001

Jair Minoro AbeAlexandre Scalzitti

João Inácio da Silva Filho

Page 4: Livro - Introdução a Lógica para Ciências da Computação

2001, by Editora Arte & Ciência

Direção GeralHenrique Villibor Flory

Editor e Projeto GráficoAroldo José Abreu Pinto / Karel H. Langermans

Editoração EletrônicaAlain Ferreira do Nascimento

CapaKarel H. Langermans

Dados Internacionais de Catalogação na Publicação (CIP)(Biblioteca de F.C.L. - Assis - UNESP)

Índice para catálogo sistemático:1.

2.

3.

Editora Arte & CiênciaRua Treze de Maio, 71 – Bela VistaSão Paulo – SP - CEP 01327-000

Tel/fax: (0XX11) 257-5871Na internet: http://www.arteciencia.com.br

Page 5: Livro - Introdução a Lógica para Ciências da Computação

Dedico este trabalho ao Rusky (1990-2000) que me ensinou muitas coisas,

aprendi muitas coisas,por uma linguagem não falada.

Jair Minoro Abe

Page 6: Livro - Introdução a Lógica para Ciências da Computação
Page 7: Livro - Introdução a Lógica para Ciências da Computação

7

PrefácioEste texto foi elaborado pelos autores tendo por base os diversos

cursos de Lógica que os mesmos têm lecionado nos últimos anos.

A presente monografia é destinada a introduzir o leitor neste fasci-nante ramo do conhecimento humano que é a moderna Lógica Matemática.O trabalho foi redigido para atender um número maior de leitores, engloban-do estudantes de diversas áreas, tais como, Ciência da Computação, Análisede Sistemas, Processamento de Dados, Inteligência Artificial, as diversasEngenharias, Matemática, Ciências Biológicas, Economia, Psicologia, Filo-sofia, Direito, enfim todo estudioso interessado no assunto.

A Lógica se converteu nos últimos anos em disciplina de primeiranecessidade para os diversos cursos, e isto não é surpreendente, pois,disse o pensador norte americano W. Quine : “A Lógica é o denominadorcomum das Ciências Especiais ...”.

Não se exige, praticamente, pré-requisito algum para sua leitura; comefeito, a exposição do texto está detalhada tanto quanto possível com notasexplicativas referente a pontos “delicados” do desenvlvimento, procurandofazer do texto uma leitura agradável. Os tópicos escolhidos cobrem o quehodiernamente denominamos de “núcleo” da Lógica Clássica.Complementou-se com algumas aplicações nas diversas áreas.

Um comentário ao neófito em Lógica: não se lê um livro de lógicacomo se lê um livro de romance, i.e., sua leitura muitas vezes não é conveni-ente que se faça de maneira linear; também sugere-se ao leitor que faça osinúmeros exercícios propostos para um entendimento salutar dos conceitosvistos. Aqui se aplica vivamente um pensamento de Confúcio: “se ouço,esqueço; se vejo, gravo; se faço, compreendo ...”

O tomo que vem a lume é apenas uma primeira versão que pretende-mos futuramente aprimorá-lo e enriquecê-lo. Para tanto, contamos com assugestões e críticas construtivas por parte dos leitores.

Os Autores.

Page 8: Livro - Introdução a Lógica para Ciências da Computação
Page 9: Livro - Introdução a Lógica para Ciências da Computação

9

SUMÁRIOPREFÁCIO

1 – INTRODUÇÃO................................................................................................90.1– Nota Histórica......................................................................................90.2– O que é Lógica ?.................................................................................100.3– Ciência e Lógica.................................................................................110.4– Aspectos da lógica atual..................................................................13

1– INTRODUÇÃO AO CÁLCULO PROPOSICIONAL1.1– Introdução..........................................................................................151.2– Os paradoxos.....................................................................................151.3– Linguagens artificiais........................................................................201.4– A linguagem universal da lógica.....................................................221.5– Conectivos lógicos e tabelas-verdade...........................................221.6– Fórmulas atômicas e fórmulas.........................................................371.7– Árvore de composição de uma fórmula - árvore dedecomposição............................................................................................381.8– Tabela-verdade de uma fórmula......................................................491.9- Tautologias.........................................................................................651.10– Árvore de refutação........................................................................701.11– Inferência lógica..............................................................................821.12– Regra de eliminação de parêntesis................................................931.13– A notação polonesa de fórmulas..................................................941.14– Forma normal disjuntiva.................................................................951.15– Uma axiomatização da lógica proposicional..............................101

2- O CÁLCULO DE PREDICADOS..................................................................1172.1– Lógica e gramática...........................................................................1172.2– Um sistema formal para a lógica de predicados..........................1252.3– Estrutura dedutiva...........................................................................1282.4– Semântica..........................................................................................138

3– ALGUNS ASPECTOS DE PROGRAMAÇÃO EM LÓGICA E PROLOG

3.1– Introdução........................................................................................1453.2– A proposta da programação em lógica........................................1463.3– Cláusula de Horn.............................................................................1473.4– Considerações preliminares...........................................................1483.5– Cláusula............................................................................................151

Page 10: Livro - Introdução a Lógica para Ciências da Computação

1 0

3.6– Cláusula de programa.....................................................................1533.7- Cláusula de programa condicional.................................................1543.8- Cláusula de programa incondicional.............................................1553.9– Cláusula gol......................................................................................1563.10- Cláusula vazia..................................................................................1573.11- Cláusula de Horn.............................................................................1573.12– Programs lógicos e teoremas.......................................................1593.13– Computação de gols......................................................................1613.14– Substituições e unificadores........................................................1703.15– Substituições..................................................................................1713.16– Instância de uma substituição...........................................................3.17– Composição de substituições.....................................................1723.18– Variante...........................................................................................1723.19– Proposições....................................................................................1733.20- Substituição mais geral........................................................................3.21– Unificadores...................................................................................1733.22– Unificador mais geral – umg........................................................1743.23– Algoritmo de unificação.....................................................................3.24– Resolvente......................................................................................1803.25– SLD-derivação.................................................................................1823.26– SLD-refutação.................................................................................1833.27– Um pouco de PROLOG.................................................................1903.28– A notação PROLOG.......................................................................1903.29– A estratégia PROLOG...................................................................1923.30– Interpretador PROLOG.................................................................1933.31– Assuntos relacionados à programação em lógica....................196

4– CIRCUITOS LÓGICOS DE CHAVEAMENTO4.1– A álgebra da lógica.........................................................................1994.2– Negação lógica – circuito não......................................................2024.3– Conjunção lógica – circuito E.......................................................2044.4- Disjunção lógica – circuito OR......................................................2054.5– Exemplos de aplicações.................................................................207

5– PORTAS LÓGICAS.......................................................................................2155.1– As portas lógicas básicas..............................................................2165.2– Porta lógica inversora.....................................................................2165.3– Porta lógica E...................................................................................2175.4– Porta lógica NÃO-E (NAND)........................................................2175.5– Porta lógica OU...............................................................................2185.6– Porta lógica NÃO-OU (NOR)........................................................2195.7– Combinação de portas lógicas......................................................2205.8– Exemplos de aplicação...................................................................207

APÊNDICE1.Algumas estruturas algébricas...........................................................2332.Lógica proposicional e álgebra de Boole..........................................2353.Modelos de Herbrand..........................................................................2364.A lógica clássica .................................................................................240

REFERÊNCIAS BIBLIOGRÁFICAS.....................................................245

Page 11: Livro - Introdução a Lógica para Ciências da Computação

1 1

1 INTRODUÇÃO

1.1 - Nota HistóricaA Lógica, ao que tudo indica, foi descoberta por Aristóteles (384-322

a.C.). Os registros se encontram em seu famoso livro “ da Metafísica”.Após sua descoberta, ela permaneceu praticamente intacta por mais de doismil anos, sendo retocada em detalhes de pouca importância. E. Kant chegoumesmo a asseverar que a ciência descoberta pelo Estagirita se constituíanuma ciência acabada: a lógica não havia dado nenhum passo para diante enenhum para trás (desde sua introdução).

Não obstante, grandes mudanças começaram a ocorrer notadamentecom G. Boole (1815-1864), A. De Morgan (1806-1871) e contemporâneos coma introdução da simbolização na Lógica. Boole, na realidade, estava estu-dando as “Leis do Pensamento Humano”. Houve, porém, alguns precurso-res dessa mudança, como G. Leibniz (1646-1716) e J.H. Lambert (1728-1777).Outras investigações de caráter mais filosófico foram efetuadas por G. Frege(1848-1925), contribuindo enormemente para o desenvolvimento da lógicade predicados. Porém, o grande avanço propriamente dito foi estabelecidocom a publicação da monumental obra “Principia Mathematica”, em trêsvolumes, de A. N. Whitehead e B. Russell no alvorecer deste século. Pode-se mesmo dizer que a moderna Lógica Matemática teve início com a publica-ção da referida obra. Aliás, não seria exagero, se afirmarmos, como A. N.Whitehead disse, que a lógica atual está para a lógica aristotélica como amatemática moderna está para a aritmética das tribos primitivas.

No entanto, as décadas posteriores aguardavam mais novidades. K.Gödel, na época um jovem lógico austríaco, mostrou que não pode haveruma sistematização completa da Aritmética. Isto quer dizer que, intuitiva-mente e sem rigor, há proposições aritméticas que dizem: “sou verdadeiro,porém indemonstrável”. Desse resultado, Gödel deduziu outro: que, se aAritmética for consistente, sua consistência não pode ser demonstrada “den-tro” da teoria, ou seja, há que se recorrer à teorias que a englobem, maisgerais, e, portanto, mais inseguras que a original. Tais resultados são conhe-cidos como “teoremas de incompleteza de Gödel”. Como se sabe, os resulta-dos de Gödel representaram o limiar de uma nova era na moderna LógicaMatemática. Suas reflexões são de longo alcance, deixando muitas questõessobre os fundamentos da disciplina para as décadas posteriores.

Outra contribuição de envergadura foi efetuada pelo lógico polonêsA. Tarski. Constitui na matematização do conceito de verdade como corres-pondência. Tal concepção de verdade remonta Aristóteles: “dizer do quenão é que é, e dizer do que é, que não é, é falso. E, dizer do que não é, que não

Page 12: Livro - Introdução a Lógica para Ciências da Computação

1 2

é, e dizer do que é, que é, é verdadeiro”. Noutras palavras, verdade é aquiloque é e falso, aquilo que não é. Note que o conceito de verdade repousa noverbo ser. Antes de Tarski, a idéia de verdade era utilizado livremente nodiscurso matemático e inúmeras contradições haviam aparecido nas teoriasmatemáticas.

Outra enorme revolução que a lógica experimentou neste século foramalguns resultados de independência de certos postulados da teoria dosconjuntos obtidas por P. Cohen. No início da década de sessenta, Cohenmostrou, por exemplo, que um dos axiomas mais discutidos, o Axioma daEscolha, era independente dos demais postulados da teoria dos conjuntos.Também Cohen demonstrou a independência de outros postulados signifi-cativos da teoria dos conjuntos. Cohen foi agraciado com a medalha “Fields”(o prêmio de maior prestígio em Matemática) por suas perquirições.

Como a Matemática constitui prolongamento natural da teoria dosconjuntos, segue-se que há patentemente Matemáticas alternativas em rela-ção à Matemática Clássica. Grosso modo, teorias dos conjuntos em quevalem certos postulados como o Axioma da Escolha, Hipótese do Contínuo,e outros denominam-se Teoria dos Conjuntos Cantorianas. Teorias em quenão valem essas condições, chamam-se Não-Cantorianas. Logo, podemosfalar em Matemáticas Cantorianas e Não-Cantorianas. As Matemáticas Não-Cantorianas ganharam relevo sobretudo com os resultados de Solovay nadécada de setenta. Solovay considerou um modelo de teoria dos conjuntosno qual não vale a forma geral do Axioma da Escolha e, se obtém resultadosque diferem muito da Matemática Cantoriana. Por exemplo, prova-se que nareta real, todo subconjunto é Lebesgue mensurável (intuitivamente que todoconjunto de números reais pode ser “medido”), ou, que num espaço deHilbert, todo operador é limitado, e por conseguinte, contínuo. Porém, essesresultados modificam profundamente a maneira de se ver as teorias físicas,pois, como é sabido, teorias físicas têm, em sua maioria, bases em certasestruturas conjuntistas. Advém, então, a indagação: qual a teoria dos con-juntos que melhor retrata as teorias físicas? Além disso, qual é o significadofísico quando uma mesma teoria física é considerada em teorias de conjun-tos distintas?

Todas essas questões estão sendo pesquisadas intensamente. Talsituação se mostra absolutamente nova, pois, o investigador que vai aplicara Lógica possui em mãos agora Matemáticas alternativas, situação esta muitodistinta de um passado recente. Aliás, a Matemática que era una até então,cederá fatalmente à diversidade.

1.2 - O que é Lógica ?

O que é Lógica?Talvez seja esta a primeira curiosidade que advém à mente do leitor.

Preliminarmente, observemos que o público não especialista costuma em-pregar o termo “lógica” em várias acepções: por exemplo, costumamos ouvirexpressões como “a lógica do amor”, “a lógica do técnico de futebol”, “alógica do presidente”, e assim por diante. Convém ressaltarmos que, apesardo uso do termo “lógica” nesses exemplos não ser destituído totalmente de

Page 13: Livro - Introdução a Lógica para Ciências da Computação

1 3

sentido, tais contextos são inadequados quando tratamos do termo “lógi-ca” que adquire hodiernamente. Uma definição popular de lógica é: Lógica éo estudo das inferências (raciocínios) válidos. Tal definição não está incor-reta, porém, ela não é adequada se observarmos o que a Lógica émodernamente. Por exemplo, a Teoria dos Modelos, um ramo importante daLógica atualmente, dificilmente se enquadraria nessa definição. Outra defini-ção que encontramos em algumas obras de Lógica é a seguinte: Lógica é oestudo do raciocínio feito pelos matemáticos... Comentamos uma definiçãoque nos parece mais adequada: Lógica é o que os lógicos cultivam ou o queestá nos tratados de Lógica. Ou seja, para bem compreendermos o que élógica, é necessário seu cultivo sistemático. O leitor deve ter percebido quenão existe uma definição satisfatória de Lógica. Tal questão pertence à Filo-sofia que trata, entre outras coisas, de temas que não possuem respostacabal. Esta situação se afigura constrangedora, pois vamos estudar Lógicasem poder saber exatamente o que ela é ...

1.3 - Ciência e LógicaEntre as várias indagações que o homem se faz, uma das mais signifi-

cativas e recorrentes diz respeito ao conhecimento. E é justamente no campoda ciência que se dá a investigação e a busca desse conhecimento. Seríamosparciais se disséssemos que isto ocorre apenas no campo científico ou aca-dêmico. Essa busca, na verdade, acontece na maioria das atividades queenvolvem o ser humano. Existem métodos de apreensão da realidade noscampos religioso, político, social, entre outros. Mesmo assim, a ciência (e ométodo científico) ocupa um papel cada vez mais importante em todos essescampos. Mas, nos perguntamos, o que é ciência? Ou, em outros termos, como que se preocupa o cientista em sua investigação? Por exemplo, um biólogoestá buscando o que?

Uma resposta adequada e definitiva é difícil, mas, em princípio, diría-mos que todo cientista está buscando compreender algum fenômeno, enten-der e explicar uma parte da nossa realidade.

O biólogo que, por exemplo, esteja buscando conhecimento sobremoscas. Neste caso, a porção da realidade que ele pretende captar, compre-ender (e depois transmitir a outras pessoas, à comunidade) seria algum as-pecto relativo à vida da mosca, ou algo assim. O médico pesquisador, porexemplo, que busca investigar o mecanismo interno de certas doenças, atuberculose, o câncer, etc. Já o psicanalista, que se preocupa em compreen-der o psiquismo das pessoas. Enfim, cada cientista está, então, tentandoentender e explicar certas porções de nossa realidade.

Passaríamos, então, para um segundo ponto, que seria o caminhopercorrido na busca dessa compreensão da realidade. É sabido que, emtempos mais remotos, alguns cientistas usaram uma boa dose de misticismonas suas ponderações, porém, hoje dificilmente uma tal atitude seria aceitaou encorajada no campo científico. Diríamos que o cientista utiliza aqueleque é um dos atributos mais importantes do ser humano para empreendersua investigação, a razão. A ciência só se concretiza em virtude e através darazão humana, sendo definida, justamente, como uma atividade racional.Teríamos assim uma primeira relação importante: ciência e razão.

Page 14: Livro - Introdução a Lógica para Ciências da Computação

1 4

Mas afinal, perguntaríamos novamente, o que é razão? Não pretende-mos abusar da paciência do leitor, mas responder tal questão não é simples,sendo porém necessário que consideremos um importante aspecto da ques-tão. A questão fundamental a ser percebida, para a nossa discussão, é que arazão humana se materializa, se corporifica sempre em algum contextolingüístico. Poderíamos praticamente dizer que não há razão sem linguagem,o que ilustra a importância da Teoria da Linguagem para a ciência. Pois bem,perguntemos neste ponto, ao biólogo, que linguagem estará ele utilizandopara investigar seu objeto de estudo, as mosquinhas? Talvez ele se surpre-enda com a pergunta, mas provavelmente dirá, a língua portuguesa, ou seja,a linguagem natural que aprendemos desde tenra idade. Talvez muitos doscientistas diriam o mesmo: a linguagem natural!

Voltemos aos lógicos e perguntemos a eles: qual é a porção da reali-dade que o lógico busca compreender? Que linguagem estará ele empregan-do para isso? Vejamos um objeto lógico que a maioria das pessoas certamen-te conhece muito bem, os números naturais: 0, 1, 2, 3, ..., n, ... (sim! númerossão entidades lógicas). Além dos números, a maioria das pessoas sabe so-mar e multiplicar números, sabe também, comparar números, e assim pordiante.

Uma peculiaridade interessante numa investigação em Lógica. Umbiólogo que quer estudar as moscas, sabe onde ir buscá-las. Um médicotambém sabe em que espaço se encontram as doenças que quer investigar,em seres vivos. Mas, e quanto ao número 2, onde será que ele se encontra?Uma questão como essa, que pode parecer irrelevante à primeira vista, temdesdobramentos interessantes. Indague o leitor a si mesmo se o número 2existe de fato ou não. Acreditamos que um matemático convencional nãoporia dúvidas quanto à existência do número 2, mas certamente teria dificul-dades em justificá-la. Para aguçarmos um pouco mais essa questão, o leitorestá certo de que este livro, que está diante dele, existe mesmo? É claro quesim! diria. Se pedíssemos uma argumentação que justificasse essa certeza,talvez uma resposta suficiente aos olhos do senso comum seria: Eu estouvendo, tocando! Ou seja, justificaria a existência do livro pelos sentidosusuais que os seres humanos são dotados. Infelizmente, não estaríamossatisfeitos com essa argumentação. O tato pode falhar, a visão nos enganafreqüentemente. Logo, em termos racionais, os sentidos não são capazes denos fornecer fundamentos para a certeza absoluta da existência do livro. Seo leitor aplicasse essa argumentação a ele próprio, as coisas ficariam aindapiores. O leitor tem certeza absoluta que existe? O que pode parecer estra-nho, mas inatacável, nessa linha de argumentação, é que não conseguimoslegitimar a existência das coisas somente por argumentos lógicos. Um dosmais belos desenvolvimentos em cima desse argumento é devido ao mate-mático e filósofo francês René Descartes, resumido na frase “penso, logoexisto”. Porém, o que podemos concluir daí é que existe pensamento, não oser.

Assim, necessitamos de uma postura para vermos as coisas. A maio-ria absoluta dos lógicos e cientistas em geral adota a postura platônica(muitas vezes inconscientemente). Grosso modo, Platão acredita na existên-cia de dois mundos:

1) O mundo físico (em que vivemos) e

Page 15: Livro - Introdução a Lógica para Ciências da Computação

1 5

2) O mundo das entidades ideais.Para nos familiarizarmos com o segundo mundo tomemos o exemplo

clássico da circunferência. Alguém consegue desenhar uma circunferênciaperfeita? Acreditamos que o leitor tenha respondido não. Porém, para Platãoa circunferência perfeita existe, porém não no nosso mundo físico e sim nomundo das entidades ideais. Além disso, Platão diz que as circunferênciasdo mundo físico são cópias imperfeitas da circunferência perfeita, do mundoideal. Todas as entidades lógicas estão no mundo das entidades ideais. Osobjetos são atemporais e não temos o conceito de espaço em tal mundo.Nesse sentido, podemos dizer que o número 2 sempre existiu e sempre vaiexistir independentemente da existência do homem e, além disso, não seencontra em lugar algum.

Decorre daí, em particular, que a Lógica (ou Matemática) é a mesmapara todos. Platão nos diz também que o único acesso ao mundo das entida-des ideais é feita através de nosso intelecto, e segundo ele, esta é a razãopela qual poucos o conhecem, e que a nossa relação com tais entidades é dedescoberta (e não de criação, por exemplo). Os poucos que não seguem apostura platônica são vistos como excêntricos, porém existem adeptos deoutras correntes, em número menor.

1.4 - Aspectos da Lógica AtualAs principais áreas de pesquisa em lógica clássica na atualidade po-

dem ser classificadas nas seguintes:

1. Sintaxe lógica: nesta área estudam-se certos constructos lingüísticosformalizados, as linguagens artificiais. Estas servem para traduzir problemaslógicos referentes ás linguagens da matemática e das ciências empíricas.Também pode-se estudar questões ligadas ás linguagens naturais. Por meiodesta ferramenta, pode-se axiomatizar teorias, etc. e, como observamos ante-riormente, obteve-se resultados extremamente fecundos como os teoremasde incompleteza de Gödel.

2. Teoria de modelos: aqui se estudam as inter-relações existentesentre as linguagens artificiais e certas estruturas conjuntistas às quais elasse referem. Os contornos atuais deste ramo se devem a A. Tarski e A.Robinson. Um dos resultados mais importantes da teoria de modelos foi amatematização do conceito de verdade feita por Tarski, dando-se assim, umacontribuição de profundo significado filosófico. Um dos resultados surpre-endentes que o próprio Tarski observou foi de que a classe das proposiçõesverdadeiras é mais abrangente que a classe das proposições demonstráveisem teorias matemáticas fortes e consistentes. A teoria de modelos possuiatualmente as mais variadas aplicações, por exemplo, em ciências empíricase na metodologia da ciência.

3. Teoria da recursão: grosso modo, a teoria da recursão trata do que éexeqüível mecanicamente, computacionalmente, sem recurso á “inteligên-cia”. Foram introduzidas certas máquinas ideais atualmente conhecidas comomáquinas de Turing (outros contemporâneos foram A. Church e E. Post).

Page 16: Livro - Introdução a Lógica para Ciências da Computação

1 6

Todos os grandes computadores da atualidade (inicialmente projetados econstruídos por J. von Neumann por volta de 1950) são realizações físicas damáquina de Turing. São conhecidos resultados deveras interessantes nateoria da recursão; atualmente uma das questões mais atraentes é a investi-gação do que é computável, em particular, o problema conhecido como P =NP. Não convém falar dele aqui por ser demasiado técnico.

4. Fundamentos da matemática: aqui um dos tópicos de pesquisa é aobtenção de sistemas lógicos potentes capazes de fundamentar a matemáti-ca clássica, investigar alguns de seus axiomas, analisando suas conseqüên-cias tanto matemáticas quanto seu significado do ponto de vista das aplica-ções. Alguns desses sistemas investigados são a teoria das categorias,teoria dos topos, teoria dos tipos e outros sistemas. O interessante é que taissistemas extremamente fortes servindo de análise a própria matemática, en-contraram aplicações em ciência da computação e Inteligência Artificial.

5. Lógica algébrica: a lógica serviu de catalisador deste ramo da mate-mática pura. Todo sistema lógico é no fundo uma certa estrutura algébrica;por exemplo, o cálculo proposicional clássico constitui numa álgebra deBoole, que por sua vez é uma estrutura mais básica: ela constitui num anel deBoole. Muitos problemas em lógica ou matemática, ou mesmo em ciência dacomputação, podem ser melhor tratados como certas estruturas algébricas.

6. Aplicações da lógica em matemática: este tópico estuda-se aplica-ções de técnicas da lógica para a solução de problemas em matemática. Pormeio deste expediente foram resolvidas algumas questões relevantes emálgebra e topologia Também não teceremos mais comentários por ser umatema demasiado técnico.

Exercício 1. Responda sucintamente.1. Dar algumas definições usuais do que é Lógica. A Lógica é

uma Ciência? Discutir de forma breve.2. O que é postura platônica ?3. Comente o por quê a lógica clássica esteve estagnada por

mais de dois milênios.4. Quando pode ser considerado o início da lógica moderna ?5. Quem foi o introdutor dos símbolos em lógica ?6. O que é teoria dos conjuntos Cantoriana ?7. A matemática que você viu até agora é feita em que teoria de

conjuntos ?8. Qual é o prêmio de maior prestígio em matemática ?9. Por quê não existe prêmio Nobel em Matemática ?10. Quais são algumas das principais áreas de pesquisa em Lógi-

ca Clássica na atualidade ?

Page 17: Livro - Introdução a Lógica para Ciências da Computação

1 7

2. INTRODUÇÃO AO CÁLCULOPROPOSICIONAL

2.1 - Introdução

Neste capítulo trataremos alguns conceitos elementares da lógicaproposicional, de uma maneira intuitiva. Isto não nos impede, entretanto, desermos rigorosos em nosso tratamento. O cálculo proposicional é o estudoda linguagem proposicional. Ela estuda basicamente cinco símbolos:

1. Negação: ¬2. Conjunção: 3. Disjunção: ∨4. Implicação: →5. Bi-implicação: ↔

2.2 Os paradoxos

Os paradoxos ou antinomias foram objeto de estudos e inquietaçõespor parte de filósofos e lógicos, desde os tempos da Antiga Grécia. Semmuito rigor, os paradoxos podem ser classificados em paradoxos semânticose paradoxos lógicos. Vejamos alguns.

Paradoxos semânticos.

1)Paradoxo do mentiroso.Dentre os paradoxos desta categoria, destaca-se aquele descoberto

pelo filósofo grego Eubúlides de Mileto (384-322 a.C.) conhecido popular-mente como o paradoxo do mentiroso. Eubúlides foi professor de Demóstenes,contemporâneo e declarado inimigo de Aristóteles.

Teçamos algumas considerações sobre esse assunto.Inicialmente, trata-se do senso comum que toda sentença declarativa

da língua portuguesa ou é verdadeira ou é falsa, nunca ambas simultanea-mente. Suponhamos, por exemplo, que, num quadro negro, se escreva aseguinte (única) frase :

Verifica-se, neste caso, prontamente, que a sentença S1 constitui uma

S1 : ‘A sentença escrita neste quadro contém oito palavras’.

Page 18: Livro - Introdução a Lógica para Ciências da Computação

1 8

sentença verdadeira, pois S1, contém efetivamente, oito palavras.

Consideremos agora esta outra sentença:

S2 : ‘A sentença escrita neste quadro contém onze palavras’.

Evidentemente trata-se de uma sentença falsa pois S2 contém oito

palavras e não onze.Passemos a considerar agora esta terceira sentença, de interesse para

nosso argumento:

S3 : ‘A sentença escrita neste quadro é falsa’.

Constitui S3 uma sentença verdadeira ou falsa ?

Analisemo-la: observemos, preliminarmente, que S3 se trata de uma

sentença declarativa, legítima do ponto de vista gramatical e, pelo exposto,ou S

3 é verdadeira,

ou S3 é falsa.

Se S3 for verdadeira, é verdadeira S

3 - é verdadeiro que ‘A sentença

escrita neste quadro é falsa’ - e, portanto, concluímos que S3 é falsa.

Analogamente, se S3 é falsa, é falsa S

3 - é falso que ‘A sentença

escrita neste quadro é falsa’ - logo, deduzimos que S3 é verdadeira.

Por conseguinte, S3 é verdadeira se e somente se S

3 é falsa !

Tal é o paradoxo do mentiroso. Ressaltamos que esta antinomia é dedifícil solução, e constitui, até agora, um genuíno paradoxo.

2) Paradoxo do cartãoProposto pelo matemático britânico P. Jourdain, em 1913: suponha-se

que numa das faces de um cartão esteja escrita a frase

Pergunta-se, a sentença escrita em cada um dos lados do cartão éverdadeira ou falsa ? E a resposta é que cada uma das sentenças é verdadeirase, e somente se, for falsa.

3) Paradoxo de GrellingProposto em 1908 por Leonhard Nelson e Kurt Grelling, da seguinte

maneira: definimos os adjetivos como autológicos, se a propriedade que eledenota pode ser atribuída a ele mesmo. Assim, os adjetivos “curto” e“proparoxítona” são autológicos, enquanto os adjetivos que não possuemtal propriedade de denotarem atributos que não sejam aplicados a si própri-os, chamam-se heterológicos. “Longo”, “oxítona” e “verde” são, portanto,adjetivos heterológicos. Consideremos agora o adjetivo “heterológico”. Se“heterológico” for heterológico, então ele é autológico. Se “heterológico”

A sen tença escrita no verso deste cartão é verdadeira .

A sen tença escrita no verso deste cartão é fa lsa.

Page 19: Livro - Introdução a Lógica para Ciências da Computação

1 9

não for heterológico, ou seja, autológico, ele é heterológico. Por conseguin-te, o adjetivo “heterológico” é, simultaneamente, heterológico e nãoheterológico.

4) Paradoxo de BerryProposto em 1906. Existe um número finito de símbolos (letras, sinais

de pontuação, etc.) na língua portuguesa. Então, existe um número finito deexpressões em nossa língua que contem menos de 200 símbolos, mesmocontando as repetições. Há, portanto, um número finito de inteiros positivosque podem ser denotados por expressões da língua portuguesa que contemmenos de 200 símbolos. Agora consideremos k como sendo “o menor intei-ro positivo que não se consegue denotar numa expressão em portuguêscom menos de 200 símbolos”. Ora, a expressão em itálico acima tem menosde 200 símbolos, e é a própria expressão do inteiro positivo k.

5) Paradoxo do barbeiro.Numa pequena cidade do interior vive um barbeiro, muito conhecido

dos moradores da cidade, que barbeia todas (e somente aquelas) pessoasmoradoras da cidade que não se barbeiam sozinhas. Ora, o barbeiro é ummorador da cidade. Coloca-se a questão: quem faz a barba do barbeiro ?

É óbvio que:ou ele se barbeia,ou ele não se barbeia.

Portanto, como o leitor se apercebe, um tal barbeiro se barbeia se esomente se ele não se barbeia. Adotando-se a Lógica Clássica, tal barbeironão existe.

6) Paradoxo do exameNuma segunda-feira, certa professora informa seus alunos de que eles

terão um exame nos próximos quatro dias, mas que não deverão saber o diaexato, a não ser no momento de prestar o exame. Os alunos, então, raciocina-ram assim: o exame não pode ocorrer na sexta-feira (o quarto dia), pois, emcaso contrário, eles saberiam de antemão, na quinta-feira, depois das aulas,que ele seria na sexta-feira, quebrando-se, assim, o acordo de ser surpresa.De modo análogo, não pode ser na quinta-feira. Nem na quarta-feira, nem naterça-feira. Logo, não pode haver exame nas condições formuladas pela mes-tre. Porém, esta, digamos na quarta-feira, pode aplicar o exame, satisfazendoas condições impostas.

7) Paradoxo dos insociáveisOs habitantes de uma comunidade formam entre si vários tipos de

associações ou clubes. Um habitante pode pertencer a mais de um clube.Cada clube tem o nome de um habitante. Não existem dois clubes diferentescom o nome do mesmo habitante. E toco habitante tem um clube com seunome. Não é necessário que uma pessoa seja membro do clube que leva seunome. Se a pessoa é membro do clube que leva seu nome, ela é chamada deuma pessoa sociável. Se a pessoa não é membro do clube que tem seu nome,ela é então chamada de uma pessoa insociável. É possível formar um clubecontendo todos os insociáveis da comunidade?

Page 20: Livro - Introdução a Lógica para Ciências da Computação

2 0

Paradoxo semiótico.Seja A o conjunto dos números naturais de 1 a 12, inclusive, A = 1, 2,

..., 11, 12. Imaginemos um sistema de notação N para eles. Usaremos osnumerais 1, 2, ... , 8 e 9 e sinais 0, 1, 2, ... , 9, 10, 11 e 12, para denotá-los, comousualmente, e mais o signo j.

O signo j denotará o menor elemento de A que no sistema de notaçãoN não pode ser denotado por um único símbolo. N aparenta ser, sem sombrade dúvida, um sistema de notação cordial. Porém, vejamos o que ocorre como número 10. Suponhamos que 10 seja denotável por um único símbolo de N;então esse símbolo obviamente só pode ser j, e 10 não é denotável por umúnico símbolo de N, de conformidade com a definição de j. Admitamos,então, que 10 não seja denotável por um único símbolo de N; daí advém que10 é o menor número de A que não pode ser denotado por um único símboloe que, em conseqüência, deve ser denotado por j. A conclusão é a de que 10é denotável por um único símbolo de N se, e somente se, não o for. Adotan-do-se a Lógica Clássica, o sistema notacional N não existe.

Paradoxo da Física Quântica.O paradoxo a seguir acha-se ligado á dualidade onda-corpúsculo do

elétron. No chamado experimento dos dois orifícios, enviam-se elétrons so-bre um anteparo, passando por um obstáculo, onde há dois orifícios conve-nientemente colocados, e o feixe de elétrons produz no anteparo configura-ções de interferência, comprovando o caráter ondulatório. Porém, se colo-carmos um detetor de partículas logo após qualquer um dos orifícios, tudose passa como se o feixe fosse composto de partículas, que atravessam oobstáculo, normalmente, através dos orifícios. Logo, o elétron é onda e cor-púsculo ao mesmo tempo. O físico acata a solução de Copenhague: mantém-se que nada se pode conhecer do interfenômeno.

Paradoxos lógicos.Os paradoxos desta categoria, diferentemente dos semânticos, envol-

vem certas noções lógicas, principalmente relacionadas coma teoria intuiti-va das coleções.

1)Paradoxo de Russell1

Vejamos inicialmente o chamado Paradoxo de Russell. A exposição umtanto quanto detalhada possui o fito de relembrar alguns conceitos funda-mentais da teoria intuitiva de conjuntos.2

Dentro da posição platônica subjacente à teoria dos conjuntos, umdos princípios básicos que regem essa teoria, de conteúdo bastante eviden-te, é o seguinte:

Princípio da separação (ou da compreensão): Toda propriedade Pdetermina um certo conjunto, a saber, o conjunto formado pelos objetos quepossuem a propriedade P e apenas por eles.

Exemplo. Consideremos a propriedade de ser homem. Ela determina o

1 Descoberto independentemente por E. Zermelo.2 Uma exposição da teoria elementar de conjuntos pode ser vista em [Abe &

Papavero 92].

Page 21: Livro - Introdução a Lógica para Ciências da Computação

2 1

conjunto x | x é um homem = conjunto dos homens.

Exemplo. Se P ≡ser satélite natural da Terra. Então: x | x é um satélite natural da Terra = Lua

Exemplo. Seja P ≡ pessoas que sonham e não-sonham simultaneamen-te. Então:

x | x é uma pessoa que sonha e não sonha simultaneamente = ∅

Como dissemos há pouco, é bastante intuitivo que, dada uma propri-edade qualquer, ela determina o conjunto dos elementos que satisfazem areferida propriedade.

O princípio em questão, porém, na realidade, é incompatível com alógica elementar clássica. Isto foi constatado em 1902 pelo renomado lógicoinglês Bertrand Russell, e o paradoxo por ele descoberto leva o nome deantinomia (ou paradoxo) de Russell. Vamos agora expô-lo:

Inicialmente, observemos que existem conjuntos X tais que X não émembro de si mesmo, isto é:

X ∉ X

Exemplo. O conjunto de todos os homens, por não ser um homem,não é membro de si mesmo.

Exemplo. Dado o conjunto A = 0, 1, 2, é evidente que A ∉ A.

Observemos, também, que existem ‘conjuntos’ X tais que são mem-bros de si mesmos, isto é, X ∈ X.

Exemplo. O ‘conjunto’ de todos os conjuntos, por ser um conjunto, éobviamente membro de si mesmo.

Exemplo. Um caso interessante é o seguinte: seja o ‘conjunto’A = B | o número de elementos de B é maior ou igual a 3.Existem muitos conjuntos com pelo menos 3 elementos:B

1 = 0, 1, 2, 3

B2 = conjunto das bananas de São Paulo

B3 = a, b, c, d, e

B4 = conjunto dos planetas de nosso sistema solar, etc.

Logo, A possui mais do que 3 elementos e, consequentemente, A ∈ A.

Exemplo. Seja a um objeto. Formemos o conjunto dos objetos distin-tos de a,

x| x ¹ a. Obviamente tal conjunto é distinto de a e, por conseguinte,pertence a ele mesmo.

Consideremos, agora, o seguinte conjunto:R = X | X ∉ X.

Page 22: Livro - Introdução a Lógica para Ciências da Computação

2 2

Por um princípio da Lógica Clássica (Princípio do Terceiro Excluído),ou R ∈ R ,ou R ∉ R.

Se R ∈ R, concluímos que R ∉ R.Se R ∉ R, concluímos que R ∈ R.

Logo, R ∈ R se e somente se R ∉ R.

Tal é a famosa antinomia de Russell.Historicamente, o desgosto que causou a descoberta da antinomia de

Russell entre os especialistas em Lógica Matemática foi bem expresso por G.Frege em 1903, num apêndice ao segundo volume de seu Grundgesetze:

“Nada pior praticamente pode acontecer a um autor científico do quever uma das fundações de seu edifício ser abalada depois de ter terminadoa obra. Fui colocado nessa posição por uma carta contendo o paradoxo deMr. Bertrand Russell exatamente quando a impressão deste segundo volumeestava quase pronta ... Solatium miseris, socios habuisse malorum. Eu tam-bém tenho este consolo, se é que é consolo; pois todos aqueles que em suasdemonstrações empregaram extensões de conceitos, classes, conjuntos, in-clusive sistemas de Dedekind, estão nesta mesma posição. Não é só umaquestão de meu método particular de colocar as fundações, mas trata-se desaber se alguma fundamentação lógica para a Matemática é possível ...”(Frege, 1964).

2) Paradoxo de CantorPor exigir um resultado da Teoria dos Conjuntos, que é o Teorema de

Cantor, o paradoxo será apresentado de modo resumido, em suas idéiasprincipais. Mas, antes disso, cumpre colocar a idéia básica do Teorema deCantor, a de que o número de elementos de um conjunto qualquer é sempremenor que o número de elementos do conjunto formado por todos os seussubconjuntos. Em linguagem simbólica: #A < #2A. Vamos ao paradoxo, en-tão: seja C o conjunto de todos os conjuntos. Portanto, cada subconjuntode C é também um membro de C. Assim, o conjunto potência de C ésubconjunto de C. Em linguagem da teoria dos conjuntos, 2C ⊂ C. Mas, 2C⊂ C implica em #2C ≤ #C, o que é absurdo, de acordo com o Teorema deCantor, segundo o qual, #C < #2C .

3) Paradoxo de Burali-FortiProposto em 1897, esse paradoxo exige uma familiarização do leitor

com a Teoria dos Números Ordinais. Em linhas gerais, ele é análogo aoparadoxo de Cantor, visto acima. Não faria sentido apresentá-lo neste texto,a não ser resumidamente, por tratar de um conteúdo por demais específicoda matemática. Em linhas gerais, o paradoxo seria o seguinte: dado qualquernúmero ordinal, existe um outro número ordinal maior que ele. Mas o númeroordinal determinado pelo conjunto de todos os números ordinais é o maiornúmero ordinal existente.

2.3 Linguagens artificiaisOs poucos exemplos de paradoxos semânticos colocam em relevo o

Page 23: Livro - Introdução a Lógica para Ciências da Computação

2 3

fato de qualquer linguagem natural, como por exemplo, a língua portuguesa,não pode ser adequada ao tratamento rigoroso da lógica. Mais ainda, admi-tindo-se certas leis básicas da lógica clássica, toda linguagem universal,como tem a capacidade de referir-se a si própria, sem quaisquer restrições,leva inevitavelmente a contradições. Isto foi observado no início deste sé-culo pelo renomado lógico polonês Alfred Tarski. Necessitamos, então, cons-truir uma linguagem que possibilite o tratamento da lógica. Uma tal lingua-gem será usualmente chamada de linguagem artificial (de artefato) ou lingua-gem formal (de forma).

A consideração de linguagens artificiais nos obriga a pensar certasquestões. Ao termos uma linguagem artificial em tela, automaticamente, te-mos uma linguagem que diz respeito a ela. A essa linguagem damos a deno-minação de meta-linguagem. Observamos, então, que para construirmos alinguagem artificial em questão (que denominaremos de linguagem objeto),obviamente serão empregados os recursos oferecidos pela meta-linguagem.Esta observação é fundamental, porquanto veremos posteriormente que, nocaso da consideração da linguagem proposicional, por exemplo, faremosuso, além da linguagem portuguesa, de porções da própria Matemática e denoções ditadas pelo “senso comum”. À primeira vista, parece que nos enre-damos num círculo vicioso, porém, à medida em que o leitor se familiarizecom os conceitos desenvolvidos notará que não há tal inconveniente.

Figura 1Logo, ao considerarmos uma linguagem-objeto, necessitamos de uma

espécie de pano de fundo. Mais pormenorizadamente, tal pano de fundo équalquer modelo (ou, o que dá no mesmo, a própria teoria) de teoria dosconjuntos (Cantoriana). Mais ainda, freqüentemente utilizamos uma aritmé-tica usual e, portanto, uma meta-matemática na meta-linguagem. O leitorzeloso, notará então que o estudo feito em tais linguagens artificiais seráfeito olhando-se de “fora”, ou seja, todos os resultados que puderem serobservados, serão observados de um lugar que não é o mesmo onde elesefetivamente ocorrem. Por conseguinte, tratar-se-ão de meta-teoremas. Umaimportante observação, feita a partir disso, é a de que quase sempre estamostrabalhando e realizando meta-matemática. Daí, o que chamaríamos, licenci-osamente, de uma equação fundamental:

Matemática = Meta-Matemática !!Esta situação é ilustrada magnificamente por Nietzsche: “ ... a frontei-

L

L i n

Linguagem ObjetoMeta-linguagem

(Teoria dos conjuntosCantoniana)Linguagem Proposicional

Page 24: Livro - Introdução a Lógica para Ciências da Computação

2 4

ra da Ciência possui uma infinidade de pontos. Todo homem nobre etalentoso, antes de atingir a metade de sua carreira, defronta-se com al-gum ponto da fronteira que desafia sua compreensão, independentementede saber como a região pode ser inteiramente mapeada. Quando o pesqui-sador, levado à periferia, compreende como a Lógica, neste lugar, curva-sesobre si mesma e morde a própria cauda, fica perplexo com uma novaespécie de percepção: uma percepção trágica que requer, para se tornartolerável, o remédio da arte.”

Por exemplo, havia você percebido que os Teoremas que aprendeusobre Geometria ou Cálculo Diferencial e Integral são, na realidade, meta-teoremas?

Exercício 1. Discutir pelo menos dois paradoxos semânticos da lin-guagem natural, não vistos no texto, mostrando, então, a inadequação douso das linguagens naturais para o desenvolvimento de teorias lógicas.

Exercício 2. Pesquise sobre “teoremas” da Geometria Euclidiana edetermine se estes são realmente teoremas ou meta-teoremas da GeometriaEuclidiana.

2.4 – A linguagem universal da lógica

A linguagem da teoria dos conjuntos constitui na linguagem univer-sal da lógica.

Exercício 1. Dê exemplos de linguagens artificiais. Qual é a linguagemuniversal da Lógica?

2.5 - Conectivos lógicos e tabelas-verdadeNo estudo da linguagem proposicional, apesar de ser formal, invoca-

remos muitas vezes proposições da língua portuguesa, com o fito de ameni-zar a exposição. Esperamos que o leitor se aperceba de um rigor saudávelque estará subjacente às discussões que se seguem, apesar de consciente-mente cometer tal heresia.

As sentenças que estão em tela são as ditas sentenças declarativas.Tais sentenças são sentenças, como o próprio nome diz, que declaram (afir-mam) algo. Portanto, o que afirmam é passível de ser considerada ou comoverdadeira, ou como falsa. Vejamos alguns exemplos.

Exemplo 1. Exemplos de sentenças declarativas.1. A neve é branca. (verdadeira)2. 2 + 2 = 5 (falsa)3. Há cinco milhões de grãos de areia na lua. (ninguém contou os

grãos; mas sabemos ou que é verdade, ou que é falsa (provavelmente falsa)).

Daqui em diante, toda sentença (declarativa) que trabalharmos é ouverdadeira ou falsa, mas nunca ambas simultaneamente. Daí a lógica clássicaser chamada de lógica bivalente. Existem várias notações para designarmosos valores-verdade ou valores-lógicos das sentenças.

Page 25: Livro - Introdução a Lógica para Ciências da Computação

2 5

Adotaremos neste texto a notação booleana:“1” designa o valor-verdade “verdadeiro”“0” designa o valor-verdade “falso”

1) NegaçãoDada a proposição A podemos considerar a proposição ( A) denomi-

nada a negação de A. Como a proposição A ou é verdadeira ou falsa, atabela-verdade da negação toma então a seguinte forma:

Tabela-verdade da negação.

A ( ¬A)1 00 1

A proposição A é verdadeira se e somente se sua negação (¬A) é falsa.

Exemplo 2.1. Seja A ≡ (2 + 2 = 4) (no caso, verdadeira). Então ( ¬A) ≡ ( ¬(2 + 2 = 4))

constitui uma sentença falsa. Na aritmética comum, costuma-se escrever aúltima expressão como 2 + 2 ≠ 4.

2.Seja B ≡ (2 ∈ 1, 3, 5) (no caso, falsa). Logo, (¬B) ≡ ( ¬(2 ∈ 1, 3, 5)constitui uma sentença verdadeira. Na linguagem da Teoria dos Conjuntos(ver [Abe & Papavero, 92]), a última expressão é usualmente escrita como 2∉ 1, 3, 5.

Mesmo na linguagem comum, a tabela-verdade se aplica:

Exemplo 3. Seja A ≡ “A neve é branca” (verdadeira). Sua negação é(¬A) ≡ “A neve não é branca” (falsa).

Também, A ≡ “A cidade de São Paulo é pequena” (falsa). Sua negaçãoé (¬A) ≡ “A cidade de São Paulo não é pequena” (verdadeira).

Algumas negações delicadas.Exemplo 4. Vejamos algumas negações de sentenças:1. A ≡ “Todo homem é mortal”Qual é a negação de A ? O mais simples é escrever(¬A) ≡ “Nem todo homem é mortal” ou “ Não é que todo homem é

mortal”. Porém, há outras sentenças equivalentes que queremos chamar aatenção: dizer “Nem todo homem é mortal” é o mesmo que dizer “Existemhomens que não são mortais” ou “Há homens imortais”.

2. A ≡ “Existem pessoas inseguras”Qual é a negação de A ? O mais simples é escrever(¬A) ≡ “Não existem pessoas inseguras”. Porém, esta é equivalente a

escrever “Todas as pessoas não são inseguras” (pense bem !) ou “Todas aspessoas são seguras”.

3. A ≡ “Todos os animais mamíferos são animais vertebrados”.(¬A) ≡ “Nem todos os animais mamíferos são animais vertebrados” ou

Page 26: Livro - Introdução a Lógica para Ciências da Computação

2 6

“Não é que todos os animais mamíferos são animais vertebrados”. Ou ainda,“Existem animais mamíferos que não são animais vertebrados” ou “Há ani-mais mamíferos que são animais invertebrados”.

4. A ≡ “Existem pessoas que se preocupam em ética”.(¬A) ≡ “Não existem pessoas que se preocupam em ética” ou “Não

existem pessoas que se preocupam em ética”. Ou ainda, “Todas as pessoasnão se preocupam com a ética”

5. A ≡ “Todo número par é divisível por dois”(¬A) ≡ “Nem todo número par é divisível por dois” ou “Não é que todo

número par é divisível por dois”. Ou ainda, “Existem números pares que nãosão divisíveis por dois” ou “Há números pares que indivisíveis por dois”.

Exercício 1. Faça o que se pede.1. Em cada item são dadas duas sentenças. Responda se a segunda

frase é ou não é a negação da primeira. Caso não seja, determine essa nega-ção.a) Estou feliz. Não estou feliz.b) Todos os elefantes são cor-de-rosa. Um elefante não é cor-de-rosa.c) Alguns cavalos são brancos. Alguns cavalos são pretos.d) Todos os cavalos são pretos. Alguns cavalos são brancos.e) O sol está brilhando. O sol não está brilhando.f) Estou certo. Estou errado.g) Nenhum homem é um elefante. Algum homem é um elefante.h) Todos os tomates são vermelhos. Todos os tomates são amarelos.i) Algumas vezes estou certo. Todas as vezes estou certo.j) Há sempre alguém na portaria. Nem sempre há alguém na portaria.

2. Em cada sentença abaixo, determine a respectiva negação.a) Hoje é sábado. b) Lógica é fácil.c) Esta sala está muito fria. d) É falso que a vida é bela.e) Não é verdade que não se sabe que fez isso. f) Existem políticos trabalhadores.g) Todas as ruas da cidade estão esburacadas. h) Toda ação provoca uma reação.i) Não vou viajar. j) Irei a outro lugar.

3. Em cada item são dadas duas sentenças. Responda se a segundafrase é ou não é a negação da primeira. Caso não seja, determine a respectivanegação.

a) Todos os estudantes são responsáveis. Alguns estudantes são irresponsáveis.b) A neve é branca. A neve não é branca.c) Ele é rico. Ele é pobre.d) Eu creio na honestidade. Ninguém é honesto.e) Nenhum homem é uma ilha. Algum homem é uma ilha. f) Todos os livros são interessantes Um livro não é interessante. g) Há sempre alguém feliz. Nem sempre há alguém feliz. h) Alguns estudantes são responsáveis. Alguns est. são irresponsáveis. i) Todos os exercícios são instrutivos. Todos os exercícios são fáceis.

Page 27: Livro - Introdução a Lógica para Ciências da Computação

2 7

j) Algumas vezes me engano. Todas as vezes me engano.

4. Em cada sentença abaixo, determine a respectiva negação.a) Há alunos na sala. b) Esta aula é muito importante.c) Algumas pessoas gostam de chocolate. d) Todos votaram nele.e) Ninguém foi ao aniversário. f) Existem pessoas estudiosas.g) É falso que esta moeda é verdadeira. h) Todas as pessoas são felizes.i) Há uma pedra no meio do caminho. j) Se fosse fácil, já estaria feito.k) Há sempre alguém no saguão. l) Sempre há alguém no saguão.m) Não é o caso de não ser reprovado. n) É o caso de ser aprovado.

5. Em cada item são dadas duas sentenças. Responda se a segundafrase é ou não é a negação da primeira. Caso não seja, determine essa nega-ção.a) Estudo e trabalho. Não estudo nem trabalho.b) O sol brilha e o ar está quente. O sol não brilha ou o ar não está quente.c) Estou certo e você está errado. Estou errado ou você está certo.

6. Em cada sentença abaixo, determine a respectiva negação.a) Hoje é feriado ou domingo. b) A sala e o quarto estão escuros.c) A rua está esburacada e mal iluminada. d) Se for feriado ou domingo, vou viajar.e) Se for feriado e o tempo estiver ensolarado, vou viajar.

2) ConjunçãoDadas as proposições A e B podemos considerar a nova proposição

(A ∧ B), a conjunção de A e B.

A veracidade ou falsidade da proposição (A ∧ B) depende da veraci-dade ou falsidade da proposição A e da proposição B. Logo, a tabela-verda-de de (A ∧ B) possui quatro possibilidades de valores-verdade para A e B.

1. A é verdadeira e B também é verdadeira.2. A é verdadeira e B é falsa.3. A é falsa e B é verdadeira.4. A é falsa e B também é falsa.

Postulamos que a proposição (A ∧ B) é verdadeira se e somente seambas as proposições A e B são verdadeiras. A proposição (A ∧ B) é falsa see somente se uma das proposições A ou B for falsa.

As considerações acima podem ser esquematizadas como se segue:

Tabela-verdade da conjunção:

Page 28: Livro - Introdução a Lógica para Ciências da Computação

2 8

A B (A ∧ B)1 1 11 0 00 1 00 0 0

Exemplo 5. Consideremos as seguintes proposições:1) [(2 + 4 = 4) ∧ (1 ≤ 2)] Esta proposição é verdadeira verdadeira verdadeira2) [(2 + 4 = 4) ∧ (1 ≥ 2)] Esta proposição é falsa verdadeira falsa3) [(2 + 4 ≠ 4) ∧ (1 ≤ 2)] Esta proposição é falsa falsa verdadeira4) [(2 + 4 ≠ 4) ∧ (1 ≥ 2)] Esta proposição é falsa falsa falsa

Observação. Convém frisar algumas diferenças entre os conectivos∧ (lógico) e “e” (da língua portuguesa). Na linguagem proposicional, se A eB são fórmulas, então (A ∧ B) e (B ∧ A) são logicamente equivalentes. Comefeito, vejamos os exemplos seguintes:a) (2 + 2 = 4 ∧ 1 ≤ 2) eb) (1 ≤ 2 ∧ 2 + 2 = 4)possuem o mesmo significado.

Na linguagem natural, porém, nem sempre isto ocorre. Vejamos osseguintes exemplos:a) Sejam A ≡ ‘João é inteligente’ e B ≡ ‘João lê as obras de Platão’. (A ∧ B)representa a sentença ‘João é inteligente e João lê as obras de Platão’. (B ∧A) a sentença ‘João lê as obras de Platão e João é inteligente’. O sensocomum nos indica que (A ∧ B) e (B ∧ A) se eqüivalem.b) Sejam agora A ≡ ‘Maria casou’ e B ≡ ‘Maria teve um filho’. (A ∧ B)representaria a sentença ‘Maria casou e Maria teve um filho’. (B ∧ A) asentença ‘Maria teve um filho e Maria casou’. Neste caso, note-se, não háuma equivalência entre as sentenças (A ∧ B) e (B ∧ A). Na linguagem naturalinsinua-se quase sempre uma certa seqüência temporal (e às vezes umaimplicação de causalidade).

A observação se aplica também aos demais conectivos.

Exercício 2. Faça o que se pede.1. Em cada item são dadas duas sentenças. Escreva a conjunção delas.a) A ≡ João estuda. B ≡ Não estudo.b) A ≡ O sol brilha. B ≡ O ar não está quente.c) A ≡ Estou certo. B ≡ Estou errado.

2. Em cada sentença abaixo, determine a respectiva negação.a) Hoje é feriado e domingo. b) A sala e o quarto estão escuros.c) A rua está esburacada e mal iluminada. d) Clarissa vai á praia e tomar sol.e) Ela é bonita e inteligente.

Page 29: Livro - Introdução a Lógica para Ciências da Computação

2 9

3. Admitindo-se o senso comum, diga se são verdadeiras ou falsas.a) O sol brilha e a nuvem é verde.b) 2 + 2 = 4 e ¬ = ¬c) Curitiba é a capital do Paraná e Paris é a capital da França.

4. Obtenha a negação das seguintes proposições:a) Bianca não estuda e é mal educada.b) Está chovendo e fazendo frio.c) Chiquinho é esperto e atento.

3) DisjunçãoDadas as proposições A e B podemos considerar a nova proposição

(A ∧ B), a conjunção de A e B.

Postulamos que a proposição (A ∨ B) é verdadeira se e somente seuma das proposições (ou ambas) A ou B são verdadeiras. A proposição (A ∨B) é falsa se e somente se quando ambas proposições A e B for falsa.

As considerações acima podem ser esquematizadas como se se-gue:

Tabela-verdade da disjunção:

A B (A ∨ B)1 1 11 0 10 1 10 0 0

Exemplo 6. Consideremos as seguintes proposições:

1) [(2 + 4 = 4) ∧ (1 ≤ 2)] Esta proposição é verdadeira verdadeira verdadeira2) [(2 + 4 = 4) ∧ (1 ≥ 2)] Esta proposição é verdadeira verdadeira falsa3) [(2 + 4 ≠ 4) ∧ (1 ≤ 2)] Esta proposição é vardadeira falsa verdadeira4) [(2 + 4 ≠ 4) ∧ (1 ≥ 2)] Esta proposição é falsa falsa falsa

Na linguagem natural, muitas vezes o conectivo “ou” possui idéia de exclu-são:“Bianca vai ao supermercado ou vai á escola”. Neste caso, é claro que Biancavai fazer uma coisa ou outra, mas não ambas simultaneamente.

O conectivo que leva em conta a observação anterior chama-sedisjunção exclusiva.

Page 30: Livro - Introdução a Lógica para Ciências da Computação

3 0

Exercício 3. Faça a tabela-verdade da disjunção exclusiva.

Em Lógica, como se observou, uma disjunção é verdadeira quandouma das proposições constituintes é verdadeira ou, também, quando ambassão verdadeiras simultaneamente.

Exercício 4. Faça o que se pede.1. Sejam as proposições A ≡ “O livro é interessante” e B ≡ “O livro é caro”.Fornecer uma sentença na linguagem natural que descreva cada uma dassimbolizações abaixo: a) (¬A) b) (A ∧ B) c) (A ∨ B) d) (B ∨ (¬A)) e) ((¬A) ∧ (¬B))

2. Sejam as sentenças: A ≡ “A neve é branca” e B ≡ “O sol é um astro”.Determinar o valor-verdade das sentenças abaixo: a) [A ∧ (¬B)] b) [¬(A ∨ B)] c) [(¬A) ∨ B] d) [(¬A) ∧ (¬B)]e) [A ↔ (¬B)]

3. Em que casos as sentenças abaixo são falsas? (Em cada item estude todasas possibilidades)a) Ela é mineira e ele é paraense.b) Ela é mineira ou ele é paraense.c) É falso que ela é mineira e ele é paraense.d) É falso que ela é mineira e é falso que ele é paraense.

4. Sejam as expressões A ≡ “O céu é azul”, B ≡ “Deus existe” e C ≡ “O Solgira em torno da Terra”. Fornecer uma sentença na linguagem natural quedescreva cada uma das afirmações abaixo:a) (¬A) b) (A ∧ B) c) ((A ∨ B) ∧ C)d) (B ∨ (¬C)) e) [(¬A) ∧ (¬B)] f) [¬((¬A) ∨ C)]g) [¬(A ∨ (¬¬B))] h) (C ∧ (¬B))

5. Escreva as sentenças em linguagem simbólica abaixo utilizando osconectivos ¬, ∧ e ∨.a) Não é verdade que Galileu esteja certo.b) A água não pode ser simultaneamente líquida e sólida.c) O seguro da casa inclui incêndio ou roubo.d) Compro ou não compro.e) Não estudarei hoje, mas estudarei amanhã e quarta-feira.

6. Determinar a tabela verdade das sentenças abaixo, sendoA ≡ ∅ = ∅, B ≡ ∅ = ∅, C ≡ ∅ = ∅:a) [A ∧ (¬C)] b) [¬(B ∨ C)]c) [(¬B) ∧ (¬C)] d) [¬(A ∧ (¬B))]f) [¬[(¬A) ∧ (¬B)]] g) [A ∨ (¬(A ∧ C))]

Page 31: Livro - Introdução a Lógica para Ciências da Computação

3 1

7. Em que casos as sentenças abaixo não são falsas? (Estude todas aspossibilidades)a) A Terra gira e Maria gosta de José.b) Passarei em lógica ou 2 + 2 = 4.c) É falso que ela gosta dele e é falso que ele gosta dela.d) É falso que ela gosta dele e ele gosta dela.

8. Entendemos por disjunção exclusiva ao tipo de disjunção em que assentenças não podem ocorrer simultaneamente, como no exemplo “Ela estáalegre ou não está alegre”. Definir, nos casos abaixo se o ou corresponde àdisjunção inclusiva ou exclusiva.a) Eu menti ontem ou mentirei amanhã.b) Meu time é o campeão deste ano ou não é o campeão deste ano.c) Ela se formou em 1993 ou em 1998.d) Com sol ou com chuva, você trabalhava.e) O terno é de Bentinho ou de Escobar.

4) ImplicaçãoDadas as proposições A e B podemos considerar a nova proposi-

ção (A → B), a implicação de B por A.A proposição A chama-se antecedente da implicação (A → B) e B

chama-se o conseqüente da implicação (A → B).Postulamos que a proposição (A → B) é falsa se e somente se o

antecedente A é verdadeiro e o conseqüente B é falso. Nos demais casos, aproposição (A → B) é verdadeira.

As considerações acima podem ser esquematizadas como se se-gue:

Tabela-verdade da implicação:

A B (A → B)1 1 11 0 00 1 10 0 1

Exemplo 7. Consideremos as seguintes proposições:

1) [(2 + 4 = 4) ∧ (1 ≤ 2)] Esta proposição é verdadeira verdadeira verdadeira2) [(2 + 4 = 4) ∧ (1 ≥ 2)] Esta proposição é falsa verdadeira falsa3) [(2 + 4 ≠ 4) ∧ (1 ≤ 2)] Esta proposição é verdadeira falsa verdadeira4) [(2 + 4 ≠ 4) ∧ (1 ≥ 2)] Esta proposição é verdadeira falsa falsa

Page 32: Livro - Introdução a Lógica para Ciências da Computação

3 2

Observação. Teçamos algumas considerações sobre a tabela-verdade refe-rente à implicação.

1) A tabela é positivamente obscura no uso ordinário. Vejamos alguns exem-plos.

Leis causais. Quando a implicação lógica é interpretada como causar nalinguagem natural.

1. Sejam as sentençasA ≡ “Este pote d’água for colocado no fogo no instante t

0” e

B ≡ “A água congelará”.

A sentença A só é falsa no caso de o pote não ser colocado no fogono instante indicado. Coloquemos o pote no fogo num instante t distinto det0. Logo, A é falsa.

Consideremos a sentença(A → B) ≡ “Se este pote d’água for colocado no fogo no instante t

0 então a

água congelará”.De acordo com a tabela-verdade da implicação, (A → B) é verdadeira, inde-pendentemente do valor-verdade de B, o que configura uma situação absur-da !

2. Sejam as sentençasA ≡ “Se sua sogra chegar em sua casa exatamente no instante t

0” e

B ≡ “Você ficará mais inteligente”.A sentença A só é falsa no caso de sua sogra não chegar em sua

casa exatamente no instante indicado (o que é muito provável). Suponha-mos que ela venha antes do instante t

0. Logo, A é falsa.

Consideremos a sentença(A → B) ≡ “Se sua sogra chegar em sua casa exatamente no instante t

0 então

você ficará mais inteligente”.De acordo com a tabela-verdade da implicação, (A → B) é verdadei-

ra, independentemente do valor-verdade de B, o que configura uma situaçãoabsurda (convenhamos) !

Situações em que o antecedente não é um fato.

Consideremos a sentença:Exemplo 8. A sentença ‘Se João Guimarães Rosa não tivesse escri-

to nenhuma obra literária, então não teria havido inflação em nenhuma épocaem nosso país’ é admitidamente falsa, mesmo que o antecedente seja falso.

O mesmo se sucede com a sentença ‘Se Cabral não tivesse desco-berto o Brasil, então homem não teria chegado á lua’.

2) Uma justificativa favorável que podemos oferecer para a tabela-verdadeda implicação é a seguinte: admitamos ser razoável a tabela-verdade da con-junção. Para quaisquer sentenças A e B, é, então, razoável considerar a

Page 33: Livro - Introdução a Lógica para Ciências da Computação

3 3

sentença ((A ∧ B) → B) como verdadeira, quaisquer que sejam os valores-verdade de A e B.

Assim, se A e B são ambas verdadeiras, (A ∧ B) é verdadeira, e, porconseguinte, isto justifica a 1a linha da tabela.

Se A é falsa e B verdadeira, então (A ∧ B) é falsa. Este casocorresponde à 3a linha da tabela.

Se A e B são ambas falsas, então (A ∧ B) é falsa, o que correspon-dente à última linha da tabela.

3) Esta observação é citada em [Iséki & Abe 01]: “Temos certeza que o leitorestá perplexo que o valor-verdade de 0 → 0 e 0 → 1 é 1. Uma explicaçãoadequada é dada no exemplo a seguir. Estamos acostumados a dizer a seguintesentença: “se x é divisível por 10, então x é divisível por 2”. Se escrevermosem símbolos obtemos

x(x/10 → x/2).(Aqui, a expressão x/a significa que x é divisível por a.) A expressão anterioré amplamente aceita como verdadeira.. Como x é arbitrário, se fizermos x = 20,temos 20/10 = 2 e 20/2 = 10 e, por conseguinte, como o antecedente e oconseqüente são ambos verdadeiros, a expressão como um todo é verdadei-ra (isto é, o valor verdade de 1 → 1 é associado 1). Se fizermos x = 8, oantecedente é falso enquanto que o conseqüente é verdadeiro, ou seja temoso caso 0 → 1; no entanto a expressão como um todo é verdadeira. Finalmen-te, se fizermos x = 5, tanto o antecedente quanto o conseqüente são falsos,porém a expressão como um todo é verdadeira.

Esta explicação é conhecida como interpretação do famoso lógicopolonês S. Lesniewski.

Convém ressaltar que nas considerações acima há uma questãomuito importante subjacente, ou seja, contém um problema de metodologiamatemática.

Questões da lógica proposicional levamos para uma estrutura ge-neralizada denominada lógica de predicados, e ali podemos eleger respostasadequadas.

Por exemplo, ainda sobre esse procedimento, sabemos que nãopodemos efetuar subtrações quaisquer de números naturais. Porém, se es-tendermos para os números inteiros , obtemos uma boa interpretação para asubtração. Outro exemplo, o mesmo se dá quando uma equação quadráticanão é solúvel no conjunto dos reais, apelamos para o mundo dos númeroscomplexos onde obtemos uma solução.

De modo geral, a observação importante é que ao considerarmosuma estrutura básica, vários problemas têm uma resposta adequada em es-truturas mais gerais.”

Exercício 5. Nas seguintes sentenças dizer qual é o antecedente equal é o conseqüente:1. (2 + 2 = 7 → 2 + 1 = 0)2. Det(M) = 0 implica que M não é invertível.3. Se f : ℜ → ℜ é uma função derivável, então f : ℜ → ℜ é uma funçãocontínua.

Page 34: Livro - Introdução a Lógica para Ciências da Computação

3 4

Exercício 6. Dizer se são verdadeiras ou falsas (adote o “bom sen-so” nos juízos):

1. Se a neve é branca, então Paris é a capital da França.2. Se Penha é um bairro de São Paulo, então o céu não contém estrelas.3. Se os planetas giram em torno da terra, então inexistem extra-terráqueos.4. Se o sol é um planeta inerte, então a terra é uma estrela.

5) Bi-implicaçãoDadas as proposições A e B podemos considerar a nova proposi-

ção (A ↔ B), a bi-implicação de A e B.

Postulamos que a proposição (A ↔ B) é verdadeira se e somente seas proposições A e B possuem o mesmo valor-verdade. A proposição (A ↔B) é falsa se e somente se as proposições A e B tiverem valores-verdadetrocados.

As considerações acima podem ser esquematizadas como se se-gue:

Tabela-verdade da bi-implicação:

A B (A ↔ B)1 1 11 0 00 1 00 0 1

Exemplo 9. Consideremos as seguintes proposições:

1) [(2 + 4 = 4) ∧ (1 ≤ 2)] Esta proposição é verdadeira verdadeira verdadeira2) [(2 + 4 = 4) ∧ (1 ≥ 2)] Esta proposição é falsa verdadeira falsa3) [(2 + 4 ≠ 4) ∧ (1 ≤ 2)] Esta proposição é falsa falsa verdadeira4) [(2 + 4 ≠ 4) ∧ (1 ≥ 2)] Esta proposição é verdadeira falsa falsa

Exercício 7. Faça o que se pede.1. Indiquemos por A ≡ “Está calor” e por B ≡ “É verão”. Escrever em formasimbólica as seguintes afirmações:a) É verão somente se está calor.b) Uma condição necessária para estar calor é que seja verão.c) Uma condição suficiente para estar calor é que seja verão.d) Sempre que é verão, faz calor.e) Nunca é verão, quando está calor.

Page 35: Livro - Introdução a Lógica para Ciências da Computação

3 5

2. Dentro do contexto da lógica proposicional, identifique as sentenças abai-xo quanto a sua veracidade ou falsidade justificando devidamente cada res-posta dada.a) (5 + 4 = 9 ∧ 2 ≤ 4), b) (3 + 2 = 6 ∧ 2 + 2 = 4),c) (5 + 3 = 7 ∨ 4 + 4 = 7), d) (4 + 3 = 7 ∨ 2 + 3 = 4),e) (2 + 3 = 5 → 2 + 2 = 4), f) (3 + 3 = 5 → 32 ≤ 33),g) (2 + 4 = 7 → 2 + 2 = 5), h) (3 + 2 = 5 → 2 + 2 = 5),i) (6 + 2 = 8 ↔ 6 ≤ 8), j) (3 + 3 = 5 ↔ 2 + 2 = 3),k) (2 + 2 = 3 ↔ 2 + 2 = 4), l) (3 + 4 = 6 ↔3 + 3 = 7),m) (3 ≤ 2 → 4 ≤ 3), n) (32 ≤ 33 → 4 + 5 = 8),o) (2 ≤ 3 → (2 + 2 = 4 ∧ 7 + 2 = 9)), l) ((3 ≤ 4 ∧ 4 ≤ 3) →3 + 3 = 7).

A seguir apresentamos algumas leituras que a negação, conjunção,disjunção, implicação e bi-implicação podem ter na linguagem natural.

(¬A) Não A;Não se dá que A;Não é fato que A;Não é verdade que A;Não é que A;Não se tem A.

(A ∧ B) A e B;A, mas B;A, embora B;A, assim como B;A e, além disso, B;Tanto A como B;A e também B;Não só A, mas também B;A, apesar de B.

(A ∨ B) A ou B ou ambos.

(A → B) se A, então B;se A, isto significa que B;tendo-se A, então B;quando A, então B;sempre que A, B;B, sempre que se tenha A;B, contanto que A;A é condição suficiente para B;B é condição necessária para A;Uma condição suficiente para B é A;Uma condição necessária para A é B;B, se A;

Page 36: Livro - Introdução a Lógica para Ciências da Computação

3 6

B, quando A;B, no caso de A;A, só se B;A, somente quando B;A, só no caso de B;A implica B,A acarreta B,B é implicada por A.

(A ↔ B) A se e só se B;A se e somente se B;A quando e somente quando B;A eqüivale a B;Uma condição necessária e suficiente

para A é B;A é condição necessária e suficiente

para B

3. Escreva as sentenças a seguir em linguagem simbólica, usando sentençasbásicas (ou atômicas), isto é, as sentenças que não podem ser construídas apartir de outras sentenças.a) Se Antônio está feliz, a esposa do Antônio não está feliz, e se o Antônionão está feliz, a esposa do Antônio não está feliz.b) Ou Antônio virá à festa e Pedro não, ou Antônio não virá à festa e Pedrose divertirá.c) Uma condição necessária e suficiente para o rei ser feliz é ele ter vinho,mulheres e música.d) Teresa vai ao cinema só se o filme for uma comédia.

4. Traduza as sentenças abaixo, dado o seguinte esquema:A ≡ Clarissa sorriB ≡ Clarissa despertaC ≡ Clarissa vai á praiaD ≡ Clarissa fica indecisaE ≡ Clarissa sente o sola) (B → A)b) (A → C)c) ((D ∨ C) → (A ↔ (B ∧ (¬E))))

5. Simbolize as sentenças abaixo, dado o seguinte esquema:A ≡ o estudante comete erros,B ≡ há motivação para o estudo,C ≡ o estudante aprende a matéria.a) Se o estudante não comete erros, então ele aprende a matéria.b) Se não há motivação para o estudo, então o estudante não aprende a

matéria.c) Se há motivação para o estudo, o estudante não comete erros.d) O estudante aprende a matéria se, e somente se, há motivação para o

estudo.

Page 37: Livro - Introdução a Lógica para Ciências da Computação

3 7

6. Simbolize as sentenças abaixo:a) Ou Capitu é ou não é a criação mais notável de Machado de Assis.b) Não é verdade que Machado de Assis escreveu ou não escreveupoesias.c) Se é fácil ler o que José da Silva escreveu, não é fácil ler o que escreveuGuimarães Rosa.

7. Escreva as sentenças a seguir em linguagem simbólica, usando formassimples, isto é, as sentenças que não podem ser construídas a partir deoutras sentenças.a) Uma condição suficiente para x ser ímpar é x ser primob) Uma condição necessária para uma seqüência s convergir é que s sejalimitada.c) O suborno será pago se, e somente se, a mercadoria for entregue.d) Judite vencerá o torneio de xadrez, a menos que Tânia vença hoje.e) Se x é positivo, então x2 é positivo.

8. Traduza as sentenças abaixo, dado o seguinte esquema:A ≡ ganho um livroB ≡ ganho uma revistaC ≡ posso lerD ≡ estou motivadoE ≡ sou aprovado no exame.a) (C → (A ∨ B))b) (D → (¬C))c) (D → ((¬C) ∧ (A ∨ B)))d) ((¬D) → (E → (A ∨ B)))e) ((¬D) → (C → (A ∨ B))f) (((¬C) ∧ A) → (E → (¬D)))

9. Traduza as sentenças abaixo, dado o seguinte esquema:A ≡ há nuvens,B ≡ choverá,C ≡ ventará.D ≡ fará bom tempo amanhã.a) (A → B)b) (A → (¬D))c) ((¬D) ∧ (B ∧ C))d) ((¬A) → D)e) (A ∧ (B ∨ C))f) ((A ∧ B) ∨ C)g) (A → (B ∨ C))h) ((A → B)∨ C)i) ((A ↔ B) ∧ ((¬C) ∧ D))j) (A ↔((B ∧ C) ∨ D))

10. Simbolize as sentenças abaixo, dado o seguinte esquema:A ≡ o estudante comete erros;

Page 38: Livro - Introdução a Lógica para Ciências da Computação

3 8

B ≡ há motivação para o estudo,C ≡o estudante aprende a matéria.a) Se não há motivação para o estudo, então o estudante comete erros ou

não aprende a matéria.b) Se o estudante comete erros, então, se não há motivação para o estudo,

o estudante não aprende a matéria.c) O estudante comete erros; além disso, há motivação para o estudo e o

estudante aprende a matéria.d) Não há motivação para o estudo se e somente se o estudante comete

erros e não aprende a matéria.e) Se há motivação para o estudo e o estudante não comete erros, então o

estudante aprende a matéria se há motivação.

11. Simbolize as sentenças abaixo, dado o seguinte esquema:A ≡ Paulo diminui os erros cometidos,B ≡ há motivação para o estudo,C ≡ Paulo aprendeu a matéria,D ≡ O professor é bom.a) Se o professor é bom, Paulo aprende a matéria.b) Se o professor não é bom, não há motivação para estudar.c) O professor é bom, há motivação para estudar e, além disso, Paulo

aprende a matéria.d) Paulo não aprendeu a matéria; ele não diminuiu os erros cometidos.e) Se Paulo não diminuiu os erros cometidos, o professor não era bom ou

não havia motivação para estudar.f) Paulo aprende a matéria ou diminui os erros cometidos.g) Paulo diminui os erros cometidos se, e somente se, há motivação para

estudar.h) Se o professor é bom, então, caso haja motivação para estudar, Paulo

aprenderá a matéria.i) Paulo diminuirá o número de erros cometidos se, e somente se, não

ocorrer o seguinte: não deixa de haver motivação para o estudo e Paulonão deixa de aprender a matéria.

12. Simbolize as sentenças abaixo:a) É fácil compreender as obras de José da Silva, mas não os de Guimarães

Rosa.b) Se Diana foi ao baile, não é fato que não tenha ido ao baile.c) Não é fato que Paulo que vá à festa e fique satisfeito.d) Se o computador auxilia o cientista se, e somente se, altera a sua

programação, então, se altera a programação, é útil.e) Não se dá o seguinte: não viajamos e não levamos as barracas.f) Irei á praia salvo se chover.g) Vou estudar exceto se tiver vontade.

13. Dadas as sentenças atômicas abaixo, escrever por meio de símbolos:A ≡ “Ela é bonita”B ≡ “Ela é inteligente”C ≡ “Ela é rica”

Page 39: Livro - Introdução a Lógica para Ciências da Computação

3 9

D ≡ “Ela é jovem”E ≡ “Ela gosta de mim”F ≡ “Quero casar com ela”a) “Ela é pobre”b) “Ela é rica ou jovem”c) “Ela é inteligente e anciã”d) “Não é que ela é burra”e) “Se ela é rica, então quero casar com ela”f) “Ela é inteligente, bonita, rica, jovem e ela gosta de mim”g) “Quero casar com ela, mas ela não gosta de mim”h) “Uma condição necessária para casar com ela é que ela seja bonita”i) “Uma condição suficiente para casar com ela é que ela seja rica”j) “Ela é feia, burra, pobre, anciã, mas quero casar com ela”k) “Quero casar com ela só se ela gosta de mim”l) “Se ela é jovem então ela é bonita”m) “Uma condição necessária e suficiente para casar com ela é que ela

goste de mim”n) “Quero casar com ela, exceto se ela é burra”

2.6 - Fórmulas atômicas e fórmulas

Como observamos no início deste capítulo, através dos conectivoslógicos ¬ , ∧, ∨, → e ↔, podemos construir sentenças mais “complexas” apartir de outras sentenças mais “simples”. Este procedimento é clarificadopela seguinte regra de formação de sentenças:

Partimos de certas sentenças denominadas fórmulas atômicas1 : p,q, r, ... Elas desempenham, intuitivamente, o papel de sentenças básicas ouatômicas da linguagem proposicional.

As sentenças (que daqui em diante receberão o nome de ‘fórmulas’)em geral são obtidas pela seguinte definição indutiva generalizada:1. Todas as fórmulas atômicas são fórmulas.2. Se A e B são fórmulas, então

(¬A),(A ∧ B),(A ∨ B),(A → B) e(A ↔ B)

são também fórmulas.3. Uma dada expressão constitui uma fórmula se e somente se foi obtida pelaaplicação de uma das regras (1 ou 2) acima.

Observe-se que os símbolos A e B introduzidos na definição anterior(item 2) se tratam de variáveis que denotam sentenças quaisquer da linguagemproposicional. O leitor deve estar atento para o fato de que tais símbolos nãosão propriamente símbolos da linguagem em apreço, mas sim símbolos queestão “fora” da linguagem proposicional. Tais variáveis denominam-se,costumeiramente, meta-variáveis.

Page 40: Livro - Introdução a Lógica para Ciências da Computação

4 0

A cláusula 3 da definição acima é também conhecida como cláusulamaximal e, juntamente com as demais, permite-nos reconhecer quando umadada expressão se trata de uma fórmula ou não.

Daqui em diante, usamos também a seguinte terminologia: diz-seque uma fórmula(¬A) é do tipo não.(A ∧ B) é do tipo e(A ∨ B) é do tipo ou(A → B) é do tipo implica(A ↔ B) é do tipo bi-implica.

2.7 - Árvore de composição de uma fórmula. Árvore de decomposição.

Vimos a definição de fórmula no parágrafo anterior. Podemos esquematizá-la no que chamamos árvore de formação de fórmulas: A, B, C, D indicamfórmulas atômicas.

A B C D ...

(¬A) (A → B) (B ∧ C) (C ∨ D) (D ↔ D)

(¬(¬A)) ((A ∧ (B ∧ C)) ((C ∨ D) → (B ∧ C)) (¬(D ↔ D))

1 No sentido de sentença indecomponível.

Na árvore acima notamos alguns pontos importantes.Inicialmente, observemos a 1a linha: partimos de sentenças atômicas

A, B, C, D, ... que constitui a regra 1 da definição de fórmula.Observemos a 2a linha: aplicamos a regra 2 e obtemos novas fórmu-

las: (¬A), (A → B), (B ∧ C), (C ∨ D), (D ↔ D), dentre outras. Observe que asfórmulas obtidas seguem estritamente a regra 2, ou seja, por exemplo, em (A→ B), é absolutamente necessário abrir um parêntesis á esquerda, escrevera atômica A, escrever o conectivo → e depois escrever a atômica B efinalmente fechar o parêntesis á esquerda.

Observemos a 3a linha: aplicamos a regra 2 novamente e obtemosnovas fórmulas: (¬(¬A)), ((A ∧ (B ∧ C)), ((C ∨ D) → (B ∧ C)), (¬(D ↔ D)),entre outros. Novamente atente para a regra 2 que foi aplicada cuidadosa-mente ás fórmulas anteriormente obtidas.

Finalmente, queremos observar ao leitor que é muito importanteentão aplicar corretamente a regra de formação de fórmulas.

A verificação cuidadosa da formação de fórmulas, permite tambémimediatamente analisar como uma fórmula foi obtida. Esta tarefa é defundamental importância para as discussões deste livro. A seguir, prepare-

Page 41: Livro - Introdução a Lógica para Ciências da Computação

4 1

mos alguns conceitos para o enquadramento desta noção.Vamos exibir um processo gráfico para determinar todas as

subfórmulas (i.e., intuitivamente, todas as fórmulas que compõe a fórmulaem questão) de uma dada fórmula. Tal processo faz uso de uma estrutura,muito utilizada nas diversas áreas das ciências da computação, chamadaárvore, mais precisamente faremos uso somente de árvores binárias. Aseguir, apresentamos graficamente as componentes de uma árvore bináriaqualquer, observamos que tal descrição, não tem nenhum caráter formal, éapenas para nos familiarizarmos com os elementos dessa estrutura.

Acima está a representação gráfica de uma árvore binária genérica,chamamos de aresta o segmento de reta que “liga” os nós, (ou vértices ). Osnós ou vértices são de três espécies, o nó a partir da qual toda a árvore égerada é chamado de raiz, o nó terminal chamado de folha e os nós interme-diários chamados de nó interior. Freqüentemente utilizaremos as seguintesdenominações para determinados nós de uma árvore binária nó pai, nófilho, nó irmão. Tal denominação pode ser vista no diagrama abaixo, referen-te a árvore anteriormente citada.

Page 42: Livro - Introdução a Lógica para Ciências da Computação

4 2

Observações: 1. Chamamos a estrutura acima de árvore binária, pois cada nó pode ter zero,um ou no máximo dois filhos.

2. Podemos também classificar os nós como sucessores e ancestrais, porexemplo:

Utilizaremos essa estrutura de árvore binária do seguinte modo:

1. Dada uma fórmula qualquer S esta será a raiz da árvore de subfórmulasde S,2. Se S é uma fórmula do tipo não, então ela é composta por uma fórmula A,de tal modo que S = (¬A), logo teremos (¬A)

A3. Se S é uma fórmula do tipo e, então ela é composta por duas fórmulas A eB de tal modo que S = (A ∧ B), logo teremos (A ∧ B).

A B4. Se S é uma fórmula do tipo ou, então ela é composta por duas fórmulas Ae B de tal modo que S = (A ∨ B), daí teremos (A ∨ B)

A B5. Se S é uma fórmula do tipo implica, então ela é composta por duas fórmu-las A e B de tal modo que S é dado por (A → B), e teremos (A → B)

A B6. Se S é uma fórmula do tipo bi-implica, então ela é composta por duasfórmulas A e B de tal modo que S é dado por (A ↔ B), e teremos

Page 43: Livro - Introdução a Lógica para Ciências da Computação

4 3

(A ↔ B)

A BCada nó representa uma fórmula, em particular, cada nó “gera” uma

sub-árvore, isto é, cada nó pode ser considerada uma raiz de uma árvore“menor” que tem como nós os sucessores do respectivo nó raiz.

A construção de uma árvore de subfórmulas a partir de uma fórmu-la dada, termina quando todas as folhas contiverem somente letrasproposicionais.

É muito importante o leitor ter em mente que uma fórmula é definidapasso a passo e é única a sua construção. Assim, por exemplo, podemosdizer qual conectivo foi aplicado inicialmente, o segundo, etc., até chegar-mos ao último. Desse modo, é possível decompor uma fórmula exibindotodas as suas fórmulas que o compõe. Como este tema é relevante, convémfamiliarizarmos mais de perto.

Analisemos a fórmula:

1) [A → (B ∨ C)]

Podemos verificar sem dificuldade que ela foi obtida das fórmulas Ae (B ∨ C) pela aplicação do conectivo →. Portanto, este → foi o últimoconectivo que foi aplicado à fórmula [A → (B ∨ C)]. Esquematizamos issoassim:

[A → (B ∨ C)]

A (B ∨ C)

A fórmula (B ∨ C) por sua vez foi obtida das fórmulas atômicas B e C.

(B ∨ C)

B C

A árvore final fica assim:

[A → (B ∨ C)]

A (B ∨ C)

B C

Page 44: Livro - Introdução a Lógica para Ciências da Computação

4 4

Notamos alguns passos importantes:1. O primeiro conectivo aplicado é então ∨.2. O último conectivo aplicado é →.

Vejamos mais um exemplo:

2) ¬[[(¬B) ∧ (¬(¬A))] ↔ [¬(¬(B ∨ C))]]

Como saber a seqüência em que foram aplicados os conectivos ?Se prestarmos atenção quando definimos a definição de fórmula, vimosuma propriedade que um parêntesis á esquerda possui sempre oparêntesis à direita correspondente. Vejamos. Você pode identificar isso devários modos, porém, há alguns pares de parêntesis óbvios. Por exemplo,o par de parêntesis mais externos da fórmula:

Vemos que a fórmula ¬[[(¬B) ∧ (¬(¬A))] ↔ [¬(¬(B ∨ C))]] foiobtida de[[(¬B) ∧ (¬(¬A))] ↔ [¬(¬(B ∨ C))]] pela aplicação do conectivo ¬. Logo,deduzimos que a primeira ocorrência ¬ foi o último conectivo aplicado áfórmula. Por conseguinte, o tipo desta fórmula é negação.

[[(¬B) ∧ (¬(¬A))] ↔ [¬(¬(B ∨ C))]] por sua vez foi obtida de(1) [(¬B) ∧ (¬(¬A))] e(2) [¬(¬(B ∨ C))] pela aplicação do conectivo ↔. Logo, ↔ foi o

último conectivo aplicado na fórmula anterior.

Page 45: Livro - Introdução a Lógica para Ciências da Computação

4 5

Analisemos separadamente:(1) [(¬B) ∧ (¬(¬A))] foi obtida de (¬B) e (¬(¬A)) pela aplicação do conectivo∧. Logo, ∧ foi o último conectivo aplicado na fórmula anterior.(¬B) foi obtida de B pela aplicação do conectivo ¬. Logo, ¬ foi o últimoconectivo aplicado na fórmula anterior.(¬(¬A)) foi obtida de (¬A) pela aplicação do conectivo ¬. Logo, ¬ foi oúltimo conectivo aplicado na fórmula anterior.(¬A) foi obtida de A pela aplicação do conectivo ¬. Logo, ¬ foi o últimoconectivo aplicado na fórmula anterior.

(2) [¬(¬(B ∨ C))] foi obtida de (¬(B ∨ C)) pela aplicação do conectivo ¬.Logo, ¬ foi o último conectivo aplicado na fórmula anterior.(¬(B ∨ C)) foi obtida de (B ∨ C) pela aplicação do conectivo ¬. Logo, ¬ foi oúltimo conectivo aplicado na fórmula anterior.(B ∨ C) por sua vez foi obtida das fórmulas atômicas B e C. Logo, ∨ foi oúltimo conectivo aplicado na fórmula anterior.

A árvore de decomposição toma a forma:

¬[[(¬B) ∧ (¬(¬A))] ↔ [¬(¬(B ∨ C))]]

[[(¬B) ∧ (¬(¬A))] ↔ [¬(¬(B ∨ C))]]

[(¬B) ∧ (¬(¬A))] [¬(¬(B ∨ C))]

(¬B) (¬(¬A)) (¬(B ∨ C))

B (¬A) (B ∨ C)

A B C

Vendo o esquema de decomposição de uma fórmula, podemos entãoidentificar qual foi o último conectivo que foi aplicado àquela fórmula. Daípodemos determinar o tipo de uma fórmula.

Façamos mais exemplos.

3) [(A → B) → A] → AVemos 3 conectivos →. O último é a terceira ocorrência de →. O

tipo desta fórmula é então implicação.Logo, a árvore de decomposição fica

Page 46: Livro - Introdução a Lógica para Ciências da Computação

4 6

[( A → B) → A] → A

[(A → B) → A] A

(A → B) A

A B

4) A ∧ [C ∧ (A ∨ C)]Vemos 3 ocorrências de conectivos: ∧, ∧, ∨. O último é a primeira

ocorrência de ∧. O tipo desta fórmula é então conjunção. Logo, a árvore dedecomposição fica:

A ∧ [C ∧ (A ∨ C)]

A [C ∧ (A ∨ C)]

C (A ∨ C)

A C

5) [( E → C) ∨ (A ∧ D)] ∧ [(E ↔ C) ↔ (A ∨ D)]Vemos 7 ocorrências de conectivos: →, ∨, ∧, ∧, ↔, ↔, ∨. O último

é a quarta ocorrência ∧. O tipo desta fórmula é então conjunção. Logo, aárvore de decomposição fica:

[( E → C) ∨ (A ∧ D)] ∧ [(E ↔ C) ↔ (A ∨ D)]

[( E → C) ∨ (A ∧ D)] [(E ↔ C) ↔ (A ∨ D)]

( E → C) (A ∧ D) (E ↔ C) (A ∨ D)

E C A D E C A D

Exercício 1. Em cada uma das fórmulas abaixo dizer qual é o últimoconectivo aplicado e o tipo da fórmula. Em seguida faça a árvore dedecomposição.1. (A → (¬C)) ↔ [[¬[C ∧ (A ∨ C)]] → [¬[( E → C) ∨ (A ∧ D)]]]2. (¬((( E → C) ∨ (A ∧ D)) ∧ ((( E → C) → (¬(F ∨ D))) ↔ (E ∧ D))))

Page 47: Livro - Introdução a Lógica para Ciências da Computação

4 7

3. ¬[¬[¬[¬[(A → B) → B] → A]]]

Exemplo 1. (Fórmulas e suas respectivas árvores de subfórmulas)

1. Dada a fórmula A a única subfórmula é a própria fórmula A, ou seja, aárvore de subfórmulas constitui-se de um único nó que é a própria raiz.

2. Dada a fórmula B a única subfórmula é dada pela própria fórmula B, istoé, a árvore de subfórmulas constitui-se de um único nó que é a própria raiz.

3. Dada a fórmula (B ∧ C) teremos a seguinte árvore de subfórmulas:

(B ∧ C)

B C

Nesse caso a árvore constitui-se de três nós, o nó raiz contém afórmula (B ∧ C), a seguir vemos que a árvore divide-se em duas, a “quebra”ocorre exatamente sobre o conectivo ∧ que determina o tipo da fórmula e que“liga” as letras proposicionais B e C, repare que as letras proposicionais sãoas folhas da árvore. Os parênteses mais externos de cada nó abaixo da raizsão eliminados, e por fim, note que cada nó representa uma subfórmula dafórmula dada.

4. Dada a fórmula (B ∨ C) teremos a seguinte árvore de subfórmulas:

(B ∨ C)

B C

A árvore compõe-se de três nós, na raiz temos a fórmula (B ∨ C), aseguir vemos que a árvore divide-se em duas, a “quebra” ocorre exatamentesobre o conectivo ∨ que faz a ligação das letras proposicionais B e C. Asletras proposicionais são as folhas da árvore, os parênteses mais externosde cada nó abaixo da raiz são eliminados, e cada nó representa uma subfórmulada fórmula dada.

5. Dada a fórmula (B → C) teremos a seguinte árvore de subfórmulas:

(B → C)

B C

Novamente, a árvore compõe-se de três nós, no nó raiz temos (B →C), a seguir vemos que a árvore divide-se em duas, a “quebra” ocorreexatamente sobre o conectivo → que faz a ligação das letras proposicionaisB e C. As letras proposicionais são as folhas da árvore, os parênteses maisexternos de cada nó abaixo da raiz são eliminados, e cada nó representa umasubfórmula da fórmula dada.

6. Dada a fórmula (¬B) temos a seguinte árvore de sufórmulas:

Page 48: Livro - Introdução a Lógica para Ciências da Computação

4 8

(¬B)

B

Aqui a árvore compõe-se de dois nós, na raiz está a fórmula (¬B), aseguir vemos que a árvore decompõe-se em uma parte, novamente a “quebra”ocorre exatamente sobre o conectivo que determina o tipo da fórmula, aplicadana fórmula atômica B. A fórmula atômica é a folha da árvore, os parêntesesmais externos de cada nó abaixo da raiz são eliminados, e cada nó representauma subfórmula da fórmula dada.

7. Considere a fórmula ((¬A) ∧ B) a sua árvore de formação é:

((¬A) ∧ B)

(¬A) B

A

Na raiz da árvore está a fórmula ((¬A) ∧ B) e a árvore é decomposta emduas partes. A “quebra” ocorre exatamente sobre o conectivo ∧ que faz aligação das fórmulas (¬A) e B. A fórmula atômica r é uma das folhas daárvore, os parênteses mais externos de cada nó abaixo da raiz são eliminados.Uma das folhas da árvore acima contém (¬A), que não é uma fórmula atômica,daí a necessidade de continuarmos o processo de decomposição. Novamenteos parênteses mais externos do nó filho de (¬A) são eliminados.

8. Considere a fórmula (A ∨ (¬B)) teremos a seguinte árvore dedecomposição:

(A ∨ (¬B))

A (¬B)

B

9. Considere a fórmula ((A ∧ B) → A) teremos a seguinte árvore dedecomposição:

((A ∧ B) → A)

(A ∧ B) A

A BNa raiz da árvore está a fórmula (A ∧ B) → A), a árvore é decomposta

em duas partes e a “quebra” ocorre exatamente sobre o conectivo → que faza ligação das fórmulas (A ∧ B) e A. A fórmula atômica A é uma das folhas daárvore, os parênteses mais externos de cada nó abaixo da raiz são eliminados.Uma das folhas da árvore acima contém (A ∧ B), que não é uma fórmulaatômica, daí a necessidade de continuarmos o processo de decomposição.

Page 49: Livro - Introdução a Lógica para Ciências da Computação

4 9

Novamente os parênteses mais externos dos nós filhos de (A ∧ B) são elimi-nados. Note que apesar da árvore apresentar cinco nós a fórmula ((A ∧ B) →A) tem somente quatro subfórmulas distintas, entre si, basta ver que doisnós contém a uma mesma fórmula.

10. Considere a fórmula ((A → B) ∧ C) teremos a seguinte árvore dedecomposição:

((A → B) ∧ C)

(A → B) C

A B

Temos na raiz a fórmula ((A → B) ∧ C), a seguir vemos que a árvoreé decomposta em duas partes, e a “quebra” ocorre exatamente sobre oconectivo ∧ que faz a ligação das subfórmulas (A → B) e C. Os parêntesesmais externos de cada nó abaixo da raiz são eliminados, como as folhas daárvore acima são (A → B) e C, que não são letras proposicionais temos anecessidade de continuarmos o processo de decomposição. Fazendo adecomposição da árvore até que todas as folhas sejam letras proposicionaisobteremos a árvore acima.

11. Considere a fórmula (C ∧ (B ∨ A)) teremos a seguinte árvore dedecomposição:

(C ∧ (B ∨ A))

C (B ∨ A)

B A

12. Seja dada a seguinte fórmula (A → (B → A)), vejamos a sua árvore desubfórmulas.

(A → (B → A))

A (B → A)

B A

13. Dada a a fórmula ((A → C) ∧ (B ∨ A)) teremos a seguinte árvore dedecomposição:

((A → C) ∧ (B ∨ A))

Page 50: Livro - Introdução a Lógica para Ciências da Computação

5 0

(A → C) (B ∨ A)

A C B A

14. Considere a fórmula ((A → C) ∧ (B → D)) teremos:

((A → C) ∧ (B → D))

(A → C) (B → D)

A C B D

15. Considere a fórmula ((¬(A → B)) ∨ (¬C)) teremos a seguinte árvore dedecomposição:

((¬(A → B)) ∨ (¬C))

(¬(A → B)) (¬C)

(A → B) C

A B

16. Considere a fórmula ((¬(A ∨ B)) → (¬(¬C))). Temos:

((¬(A ∨ B)) → (¬(¬C)))

(¬(A ∨ B)) (¬(¬C))

(A ∨ B) (¬C)

A B C

17. Dada a fórmula ((A → B) → ((A→ (¬B)) → (¬A))) temos:

((A → B) → ((A→ (¬B)) → (¬A)))

(A → B) ((A→ (¬B)) → (¬A))

A B (A→ (¬B)) (¬A)

A (¬B) A

BExercício 2. 1) Determine todas as subfórmulas de cada uma das

fórmulas dadas a seguir, usando o conceito de árvore de decomposição.1. ((A → C) → ((B → C) → ((A ∨ B) → C))).

Page 51: Livro - Introdução a Lógica para Ciências da Computação

5 1

2. (( A ∨ (A ∧ B)) ↔ A)3. ((A ∧ (A ∨ B)) ↔ A)4. ((A → (A → B)) ↔ (A → B))5. (((A → B) ∧ (A → C)) ↔ (A → (B ∧ C)))6. ((¬( A ∨ B)) ↔ ((¬A) ∧ (¬B)))7. ((¬(A ∧ B)) ↔ ((¬A) ∨ (¬B)))8. [[A → (B → C)] → [(A → B) → (A → C)]]9. [[A → (B → C)] → [B → (A → C)]]10. [(A ↔ B) → (A ∨ B)]11. [((¬A) → B) → (B → A)]

2) Idem.1. [(¬(A ∧ B)) ↔ (¬(A ∨ B))]2. [(A → B) ↔ ((¬B) → (¬A))]3. [(A → (B ∧ C))]4. [(A → B) ∧ (A → C)]5. [[(¬B) → (¬A)] → [(¬((¬B) → A)) → B]]6. [[(¬¬¬¬¬B) ↔↔↔↔↔ (¬¬¬¬¬C)] ↔↔↔↔↔ (¬¬¬¬¬A)]

2.8 - Tabela-verdade de uma fórmula

Temos agora condições de construir a tabela-verdade de qualquerfórmula dada. Seja A uma fórmula qualquer, considere o esquema a seguir.

Como preencher a tabela-verdade:

sossaP seõçurtsnI

1 .alumrófadoãçisopmocedederovráaaurtsnoC

2 .sacimôtasalumrófsaoãssatnauqesiauqajeV

3amuadacarapsanulocecartesacimôtasaacitébaflamedromeavercsE

saled

4 sacimôtaedoremúnonodnes,sahniln2ecarT

5

,omarmusaneparevuoheS.oãçisopmocedederovráaarapehloarogAadsalumróf-bussadamuadacavercsee,amicarapoxiabedsa-ehloamumeamuadac,)atircseedlausuoditnes(atieridaarapadreuqse

adarapesanuloc

6

adomarooriemirpsomaredisnoc,somarsiodratneserpaerovráaeSsalepodnaçemocsalumróf-bussadamuadacavercsee,adreuqseeahnilariemirpansa-odnatropsnart,amicarapoxiabed,sacimôtaadac,)atircseedlausuoditnes(atieridaarapadreuqseadsa-odnevercse,omsemoaçafeatieridadanulocàessaP.adarapesanulocamumeamu

euqalumrófamitlúàragehcéta,Aedsalumróf-bussasadotratogseéta.Aé

Page 52: Livro - Introdução a Lógica para Ciências da Computação

5 2

Preenchimento das demais colunas.

Vejamos vários exemplos para que o leitor se familiarize com este conceito.

1. (¬(B ∧ C))

(B ∧ C)

B C

2. ((¬B) ∧ C)

(¬B) C

sossaP seõçurtsnI

1 .sacimôtasadsanulocsasadotetnemlaicinisomehlO

2artuoae1mocedatemariemirpasomehcneerp,anulocariemirpaN.

.0mocedatem

3

,anulocariemirpad1ededatemadacarap,anulocadnugesaNartuoaN.0mocedatemartuoae1mocedatemariemirpasomehcneerpedatemariemirpasomehcneerp,anulocariemirpadadnia,0edatem

.0mocedatemartuoae1moc

4edocolbadacarap,roiretnaossecorpoes-eteper,sanulocsiamedsaN,0,1:missaes-ratneserpaevedeuqanulocamitlúàragehcéta,0ede1

.cte,0,1

sossaP seõçurtsnI

1ajessacimôtasasópaanulocariemirpaeuqarapatnorpátseájalebatA

.anulocadalumrófadedadrevalebataes-odnahlolevíhcneerp

2edaicnêüqesaádájalebatasiop,amicaossecorpoes-etepeR

.otnemihcneerp

3Aededadrev-alebata,AalumrófararugifevedanulocamitlúanomoC

atiefátse

B C B( ∧ )C (¬ B( ∧ ))C

1 1 1 0

1 0 0 1

0 1 0 1

0 0 0 1

B C (¬ )B (¬ B( ∧ ))C

1 1 0 01 0 0 00 1 1 10 0 1 0

Page 53: Livro - Introdução a Lógica para Ciências da Computação

5 3

3. (D → (¬E))

D (¬E)

E

4. (A → (B ∧ A))

A (B ∧ A)

B A

5. (A → (¬(B ∨ A)))

A (¬(B ∨ A))

(B ∨ A)

B A

D E Ε¬( ) D →( Ε¬ )

1 1 0 01 0 1 10 1 0 10 0 1 1

A B )Α∧Β( A )Α∧Β(→1 1 1 11 0 0 00 1 0 10 0 0 1

Page 54: Livro - Introdução a Lógica para Ciências da Computação

5 4

(A → (B → A))

6.

A (B → A)

B A

7. ((A → B) → A)

(A → B) A

A B

A B )Α∨Β( (¬ B( ∨ ))A A( → (¬ B( ∨ )))A

1 1 1 0 01 0 1 0 00 1 1 0 10 0 0 1 1

A B B( → )A A( → B( → )A

1 1 1 11 0 1 10 1 0 10 0 1 1

A B B( → )A B( → A)A )→1 1 1 11 0 0 10 1 1 00 0 1 0

Page 55: Livro - Introdução a Lógica para Ciências da Computação

5 5

8. ((A ↔ B) → A)

(A ↔ B) A

A B

9. A → [(¬B) ∧ C]

A [(¬B) ∧ C]

(¬B) C

B

A B A( ↔ )B A(( ↔ )B → )A

1 1 1 11 0 0 10 1 0 10 0 1 0

A B C (¬ )B ([ ¬ )B ∧ ]C A → ([ ¬ )B ∧ ]C

1 1 1 0 0 01 1 0 0 0 01 0 1 1 1 11 0 0 1 0 00 1 1 0 0 10 1 0 0 0 10 0 1 1 1 10 0 0 1 0 1

Page 56: Livro - Introdução a Lógica para Ciências da Computação

5 6

10. (A ∨ B) → [B ∧ (B ↔ A)]

(A ∨ B) [B ∧ (B ↔ A)]

A B B (B ↔ A)

B A

11. ¬[A ∧ (¬A)]

[A ∧ (¬A)]

A (¬¬¬¬¬A)

12. [¬(A ∧ B)] ↔ [(¬A) ∨ (¬B)]

[¬(A ∧ B)] [(¬A) ∨ (¬B)]

(A ∧ B) (¬A) (¬B)

A B A B

A B A( ∨ )B B( ↔ )A B[ ∧ B( ↔ ])A A( ∨ )B → B[ ∧ B( ↔ ])A

1 1 1 1 1 11 0 1 0 0 00 1 1 0 0 00 0 0 1 0 1

A (¬ )A A[ ∧ (¬ ])A ¬ A[ ∧ (¬ ])A ↔ )A

1 0 0 10 1 0 1

Page 57: Livro - Introdução a Lógica para Ciências da Computação

5 7

13. [A → (B ∧ C)] → [(A ∨ B) ∨ (A ∧ C)]

[A → (B ∧ C)] [(A ∨ B) ∨ (A ∧ C)]

A (B ∧ C) (A ∨ B) (A ∧ C)

B C A B A C

14. [(A ∧ B) ↔ (B ∧ A)]

(A ∧ B) (B ∧ A)

A B B A

A B A( ∧ )B [¬ A( ∧ ])B ¬( )A (¬ )B ([ ¬ )A ∨ (¬ ])B [ ¬ A( ∧ ])B ↔ ([ ¬ )A ¬∨ ])B

1 1 1 0 0 0 0 11 0 0 1 0 1 1 10 1 0 1 1 0 1 10 0 0 1 1 1 1 1

A B C B( ∧ )C ])Χ∧Β(→Α[ A( ∨ )B A( ∨ )C A([ ∨ )B ∨ A( ∧ ])C S

1 1 1 1 1 0 1 1 11 1 0 0 0 1 1 1 11 0 0 1 0 1 1 1 11 0 0 0 0 1 1 1 10 1 1 1 1 1 1 10 1 0 1 1 0 1 10 0 1 1 0 1 1 10 0 0 1 0 0 0 0

Page 58: Livro - Introdução a Lógica para Ciências da Computação

5 8

15. S ≡ (A ∧ A) → [(B ∨ A) → [(A ∨ B) → B]]

(A ∧ A) [(B ∨ A) → [(A ∨ B) → B]]

A A (B ∨ A)[(A ∨ B) → B]

B A (A ∨ B)B

A B

16. (A → (¬(B ↔ A)))

A (¬(B ↔ A))

(B ↔ A)

B A

A B )Β∧Α( B( ∧ )A A([ ∧ )B ↔ B( ∧ )])A

1 1 1 1 11 0 0 0 10 1 0 0 10 0 0 0 1

A B A( ∧ )A B( ∨ )A )Β∨Α( A([ ∨ )B → )]B B([ ∨ )A → A([ ∨ )B → ]]B S

1 1 1 1 1 1 1 11 0 0 1 1 0 0 10 1 0 1 1 1 1 10 0 0 0 0 1 1 1

Page 59: Livro - Introdução a Lógica para Ciências da Computação

5 9

17) ((¬(A ↔ B)) → A)

(¬(A ↔ B)) A

(A ↔ B)

A B

18. ((¬(A → B)) → A)

(¬(A → B)) A

(A → B)

A B

A B B( ↔ )A (¬ B( ↔ ))A A( → ¬( B( ↔ )))A

1 1 1 0 01 0 0 0 10 1 0 1 10 0 1 0 1

A B A( ↔ ))B (¬ A( ↔ ))B (( ¬ A( ↔ ))B → )A

1 1 1 0 11 0 0 0 10 1 0 1 00 0 1 0 1

Page 60: Livro - Introdução a Lógica para Ciências da Computação

6 0

19. ((A → C) ∨ (B ↔ C))

(A → C) (B ↔ C)

A C B C

20. ((A → B) ↔ (G → (¬A)))

(A → B) (G → (¬A))

A B G (¬A)

A

A B A( ↔ ))B (¬ A( ↔ ))B (( ¬ A( ↔ ))B → )A

1 1 1 0 11 0 0 0 10 1 0 1 00 0 1 0 1

A B C A( → )C B( ↔ )C A(( → )C ∨ B( ↔ ))C

1 1 1 1 1 11 1 0 0 0 01 0 1 1 0 11 0 0 0 1 10 1 1 1 1 10 1 0 1 0 10 0 1 1 0 10 0 0 1 1 1

Page 61: Livro - Introdução a Lógica para Ciências da Computação

6 1

21. X ≡ ((A → C) → ((B ↔ C) → (B → C)))

(A → C) ((B ↔ C) → (B → C))

A C (B ↔ C) (B → C)

B C B C

A B G (¬ )A A( → )B G( → (¬ )))A A(( → )B ↔ G( → (¬ )))A

1 1 1 1 1 1 11 1 0 0 1 1 11 0 1 1 0 1 01 0 0 0 0 1 00 1 1 1 1 0 0

A B C A( → )C B( → )C B( ↔ )C B(( ↔ )C → B( → ))C X

1 1 1 1 1 1 1 11 1 0 0 1 0 1 11 0 1 1 0 0 1 11 0 0 0 0 1 1 10 1 1 1 1 1 1 10 1 1 0 1 10 0 1 0 1 10 0 1 1 1 1

Page 62: Livro - Introdução a Lógica para Ciências da Computação

6 2

21. Y ≡ ((A → B) → ((C→ (¬B)) ↔ (¬D)))

(A → B) ((C→ (¬B)) ↔ (¬D))

A B ((C→ (¬B)) (¬D)

C (¬B) D

B

A B C D (¬ )B ¬( )D A( → )B C( → (¬ ))B C(( → ¬( («))B ¬ ))D Y

1 1 1 1 0 0 1 0 1 11 1 1 0 0 1 1 0 0 01 1 0 1 0 0 1 1 0 01 1 0 0 0 1 1 1 1 11 0 1 1 1 0 0 1 0 11 0 1 0 1 1 0 1 1 11 0 0 1 1 0 0 1 0 11 0 0 0 1 1 0 1 1 10 1 1 1 0 0 1 0 1 10 1 1 0 0 1 1 0 0 00 1 0 1 0 0 1 1 0 0

0 1 0 0 0 1 1 1 1 1

0 0 1 1 1 0 1 1 0 0

0 0 1 0 1 1 1 1 1 10 0 0 1 1 0 1 1 0 00 0 0 0 1 1 1 1 1 1

Page 63: Livro - Introdução a Lógica para Ciências da Computação

6 3

22. Z ≡ ((A → (B → C)) → ((A → C) → (A → D)))

(A → (B → C)) ((A → C) → (A → D))

A (B → C) (A → C) (A → D)

B C A C A D

Exercício 1. Faça o que se pede.1) Obter a árvore de subfórmulas das seguintes fórmulas e analisar o respectivovalor-verdade.1. A2. [¬(B ∧ C)]3. ¬[¬(B ∨ C)]4. ((A → C) → ((B→ C) → ((A ∧ B) → C))).5. ((¬(¬(A ∨ B))) → (¬(¬A)))6. ((A → (B → C)) → ((A→ B) → (A → C)))7. ((A → C) → ((B→ C) → ((A ∨ B) → C))))

A B C D B( → )C →Α( C) A( → )D A( → B( → ))C A(( → )C → A( → ))D Z

1 1 1 1 1 1 1 1 1 11 1 1 0 1 1 1 1 0 01 1 0 1 0 0 1 0 1 11 1 0 0 0 0 1 0 1 11 0 1 1 1 1 0 1 1 11 0 1 0 1 1 0 1 0 01 0 0 1 1 0 0 1 1 11 0 0 0 1 0 0 1 1 10 1 1 1 1 1 1 1 1 10 1 1 0 1 1 1 1 1 1

0 1 0 1 0 1 1 1 1 1

0 1 0 0 0 1 1 1 1 1

0 0 1 1 1 1 1 1 1 1

0 0 1 0 1 1 1 1 1 10 0 0 1 1 1 1 1 1 10 0 0 0 1 1 1 1 1 1

Page 64: Livro - Introdução a Lógica para Ciências da Computação

6 4

2) Fazer a árvore de subfórmulas das seguintes fórmulas e analisar orespectivo valor-verdade.1. [[(¬B) → (¬A)] → [((¬B) → A) → B]]2. [[(¬B) ∧ (¬C)] ↔ (¬A)]3. [¬[(A → B) ∧ (A ∨ (¬A))]]4. [¬(A ∨ (¬A))]5. [¬(A ∧ (¬A))]6. [(¬B) ∧ (¬C)] ↔ (¬A)7. [¬(( A → B) ∧ (A ∨ (¬A)))]8. [[A → (B → C)] → [(A → B) → (A → C)]]9. [[A → (B → C)] → [B → (A → C)]]10. [(A ↔ B) → (A ∨ B)]11. [((¬A) → B) → (B → A)]

3) Idem.1. [(¬(A ∧ B)) ↔ (¬(A ∨ B))]2. [(A → B) ↔ ((¬B) → (¬A))]3. [(A→ (B ∧ C))]4. [(A→ B) ∧ (A → C)]5. [[(¬B) → (¬A)] → [(¬((¬B) → A)) → B]]6. [[(¬B) ↔ (¬C)] ↔ (¬A)]7. [¬[(¬(A → B)) ∧ (B ∨ (¬A))]]8. [¬(A → (¬A))]9. [¬(A ∧ (¬(¬A)))]10. [[(¬B) ∧ (¬C)] ↔ (¬(¬A))]11. [¬(( A → B) ↔ (A ↔ (¬A)))]12. [[ A ↔ ( B → C)] → [( A ↔ B) → ( A ↔ C)]]

4) Fazer a árvore de subfórmulas das seguintes fórmulas e analisar o respectivovalor-verdade.1. [¬[( A → B) ∧ (A ∨ (¬A))]]2. [[(¬B) ∧ (¬C)] ↔ (¬A)]3. [¬[(¬A) ∧ A]]4. [[(¬B) → (¬A)] → [((¬B) → A) → B]]5. [[ A →( B → C)] → [ B → ( B → C)]]6. [¬[A ∧ (¬A)]]7. [[(¬B) ∧ (¬C)] ↔ (¬A)]8. [¬[( A → B) ∧ (A ∨ (¬A))]]9. [[ A →( B → C)] → [ B → ( A → C)]]10. [[(¬B) → (¬A)] → [((¬B) → A) → B]]11. [[(¬B) ∧ (¬C)] ↔ (¬A)]12. [¬[( A → B) ∧ (A ∨ (¬A))]]

5) Idem.1. [¬[A ∧ (¬A)]]2. [[A → (B → C)] → [B → (A → C)]]3. [[A → (B → C)] → [(A → B) → (A → C)]]4. [¬[A ∧ (¬A)]]

Page 65: Livro - Introdução a Lógica para Ciências da Computação

6 5

5. [¬[(A → B) ∧ (A ∨ (¬A))]]6. [[(¬B) ∧ (¬C)] ↔ (¬A)]7. [[A → (B → C)] → [B → (A → C)]]8. [[A → (B → C)] → [(A → B) → (A → C)]]9. [[A → (B → C)] → [B → (A → C)]]10. [[(¬B) → (¬A)] → [((¬B) → A) → B]]11. [[(¬B) ∧ (¬C)] ↔ (¬A)]12. [¬[(A → B) ∧ (A ∨ (¬A))]]13. [¬[A ∧ (¬A)]]14. [[A → (B → C)] → [B → (A → C)]]

6) Determine a veracidade ou falsidade de cada uma das fórmulas dadas aseguir.1. A,2. D,3. (B ∧ C),4. (A ∨ C),5. (A → A),6. (¬A),7. (¬(B ∧ C)),8. (¬(B ∨ C)),9. (¬(A → C)),10. (A → (B ∧ A)),11. (A → (B ∨ A)),

7) Idem.1. (A → (B → A)),2. ((A ∧ B) → A),3. ((A → B) → A),4. (A → (¬(B ∨ A))),5. ((¬(A ∧ B)) → A),6. ((¬(A → B)) → A),7. ((A → C) ∨ (B ∧ C)),8. ((A → B) → (E → (¬C))),9. ((A → C) → ((B → C) → ((A ∨ B) → C))),10. ((A → B) → ((A → (¬B)) → (¬A))),11. ((A → (B → C)) → ((A → B) → (A → C))).

8) Dada uma implicação (A → B), definimos três variações dessa implicaçãocomo sendo a Recíproca, (B → A), a Inversa, ((¬A) → (¬B)) e a Contrapositiva,((¬B) → (¬A)). Nas sentenças abaixo, determine o que se pede:1. A Recíproca de “Se tem quatro lados, é um quadrado”.2. A Inversa de “Se Maria é professora, ela é pobre”.3. A Contrapositiva de “Se José estudar, ele passará em lógica”.4. A Contrapositiva de “Se um político mente, ele ganha a eleição”.

9) Determine:

Page 66: Livro - Introdução a Lógica para Ciências da Computação

6 6

1. A Recíproca da Inversa de (A → B)2. A Inversa da Contrapositiva de (A → B)3. A Contrapositiva da Inversa de (A → B)4. A Contrapositiva da Recíproca de (A → B)5. A Recíproca da Inversa de “Se Antonio ganhar a causa, o assassinoserá libertado”.6. A Inversa da Contrapositiva de “Se o time tiver coragem, vencerá”.7. A Contrapositiva da Inversa de “Se for um triângulo, será um triânguloequilátero”.8. A Contrapositiva da Recíproca de “Se o relógio estiver certo, estamosatrasados”.

10) Em cada uma das sentenças abaixo, determine se há condição necessáriapara a outra condição, se há condição suficiente para a outra condição, ou se ambas,necessária e suficiente.1. Rita virá somente se não chover.2. Quando Dorival a ver, ele vai avisá-la.3. O ar está quente somente quando o sol está brilhando.4. Toda vez que o telefone toca, Nara corre para atendê-lo.

11) Indiquemos por A, a sentença “Alice mora aqui” e por B, a sentença “Ocoelho é feliz”. Escrever em forma simbólica as seguintes afirmações:1. Se Alice mora aqui, então o coelho é feliz.2. Alice não mora aqui e o coelho é infeliz.3. É necessário que Alice se mude daqui para o coelho ser feliz.4. Alice morar aqui é suficiente para o coelho ser feliz.5. Alice morar aqui é necessário para o coelho ser feliz.6. O coelho não é feliz, se Alice mora aqui.7. Alice não mora mais aqui ou, então, Alice mora aqui e o coelho é feliz.

12) Em que casos as sentenças abaixo são falsas?1. Se Sócrates é homem, Sócrates é mortal.2. Se as regras existem, têm que ser cumpridas.3. Se Pelé não estava bem, não deveria ter jogado.4. A rosa é vermelha se e somente se o cravo é branco.5. A temperatura e a pressão permanecem constantes se e somente se ovolume não se alterar.

13) Em cada uma das sentenças abaixo, determine qual é a condição necessáriapara a outra condição, e qual é a condição suficiente para a outra condição,ou ambas, necessária e suficiente.1. Se Marieta se casar com Chico, então ela gosta dele.2. Gilberto virá, se não chover.3. Quando ela está feliz, ela sorri, e quando ela sorri, ela está feliz.4. Todo homem pode ler. (Considere “poder ler” como uma condição e “ser

Page 67: Livro - Introdução a Lógica para Ciências da Computação

6 7

homem” como outra.)5. O homem é um animal racional.

14) Discutir pelo menos dois paradoxos semânticos da linguagem natural,mostrando, então, a inadequação do uso das linguagens naturais para odesenvolvimento de teorias lógicas.

15) Escrever todas as tabelas-verdade dos conectivos vistos da linguagemproposicional.

16) Discutir através de dois exemplos (distintos do texto), que a tabela-verdade do conectivo da implicação não “funciona” na linguagem natural.

17) Discutir através de dois exemplos, que a tabela-verdade do conectivo daconjunção apresenta diferenças no uso na linguagem natural.

2.9 - Tautologias

Nesta seção estudamos uma importante classe de fórmulasdenominadas tautologias.

Definição 1. Denomina-se função-verdade de n argumentos (n ≥ 1)a qualquer função f: 2n → 2, onde 2 denota o conjunto 0, 1.

É imediato que uma função-verdade f: 2n → 2 fica completamentecaracterizada se explicitarmos os seus argumentos e imagens através de umatabela, que ilustramos através de alguns exemplos:

Exemplo 1. Seja f: 22 → 2 caracterizada pela seguinte tabela:

Exemplo 2. Seja f: 23 → 2 caracterizada pela seguinte tabela:

1x 2x )2x,1x(f

1 1 0

1 0 0

0 1 0

0 0 1

1x 2x 3x )3x,2x,1x(f

1 1 1 0

1 1 0 0

1 0 1 1

1 0 0 0

0 1 1 1

0 1 0 1

0 0 1 0

0 0 0 1

Page 68: Livro - Introdução a Lógica para Ciências da Computação

6 8

Vimos na seção que a cada fórmula podemos associar uma função-verdadecorrespondente.

Definição 2. Uma fórmula A diz-se ser uma tautologia se o valor-verdade de A sempre for verdadeiro, quaisquer que sejam os valores-verdadede suas fórmulas atômicas componentes.

Segue-se que uma fórmula A constitui uma tautologia se e somentese sua função-verdade correspondente for a função f ≡ 1.

Exemplo 2. As seguintes fórmulas são exemplos de tautologias:1. ((A ∧ B) → B)

(A ∧ B ) B

A B

2. (¬(A ∧ (¬A)))

(A ∧ (¬A))

A (¬A)

A

A B A( ∧ )B A(( ∧ )B → )B

1 1 1 1

1 0 0 1

0 1 0 1

0 0 0 1

A ¬( )A A( ∧ (¬ ))A ¬( A( ∧ (¬ )))A

1 0 0 1

0 1 0 1

Page 69: Livro - Introdução a Lógica para Ciências da Computação

6 9

3. S ≡ ((A → (B → C)) → ((A → B) → (A → C)))

(A → (B → C)) ((A → B) → (A → C))

A (B → C) (A → B) (A → C)

B C A B A C

Definição 3. Diz-se que uma fórmula A implica tautologicamente afórmula B se (A → B) constituir uma tautologia. Neste caso, diz-se tambémque B é uma conseqüência lógica de A.

Diz-se que as fórmulas A e B são logicamente equivalentes se (A ↔B) constituir uma tautologia.

Exemplo 3. A fórmula (A → (B → C)) implica logicamente ((A → B) →(A → C)), conforme o exemplo 2.4.3, parte c). Também, pelo mesmo exemplo(parte a)), (A ∧ B) implica logicamente B.

Exemplo 4. As fórmulas (A ∨ B) e (B ∨ A) são logicamenteequivalentes. Também o são (A ∧ (B ∧ C)) e ((A ∧ B) ∧ C).

Exercício 1. Quais das seguintes fórmulas é implicada logicamentepela fórmula [A ∧ (¬B)] ?1. A1. B2. (¬B)3. [(¬A) ∨ B]4. (A ∨ B)5. [A ∨ (¬B)]6. [A → B]7. [(¬A) → B]8. [A ∨ (B ∨ C)]

A B C B( → )C A( → )B →Α( C) A( → B( → ))C A(( → )B → A( → ))C Z

1 1 1 1 1 1 1 1 11 1 0 0 1 0 0 0 11 0 1 1 0 1 1 1 11 0 0 1 0 0 1 1 10 1 1 1 1 1 1 1 10 1 0 0 1 1 1 1 10 0 1 1 1 1 1 1 10 0 0 1 1 1 1 1 1

Page 70: Livro - Introdução a Lógica para Ciências da Computação

7 0

2) Quais das seguintes fórmulas é implicada logicamente pela fórmula [(¬A)→ B] ?

1. (¬A)2. [A ∨ (¬B)]3. (B ∨ (¬A))

3) Quais das seguintes fórmulas é logicamente equivalente à fórmula (A ∧B) ?

1. (B ∧ A)2. [¬((¬B) ∨ (¬A))]3. [(A ∨ (A ∧ B))]

4) Quais das seguintes fórmulas é logicamente equivalente à fórmula (A →B) ?

1. [B ∨ (¬A)]2. [B ∨ (C ∨ (¬A))]3. (B → A)

Vejamos, em seguida, algumas propriedades gerais das tautologias.

Teorema 1. Se A e (A → B) são tautologias, então também B é umatautologia.

Demonstração: Suponhamos, por absurdo, que B toma o valor 0 paraalguma associação de valores-verdade para as fórmulas atômicasconstituintes de A e de B. Então, para essa associação, A toma o valor 1(pois, por hipótese A constitui uma tautologia) e, por conseguinte, (A → B)toma o valor 0, o que contradiz o fato de (A → B) ser uma tautologia.

Exemplo 5. Temos que (A → (B → A)) e ( (A → (B → A)) → ((A → B)→ (A → A)) são tautologias. Pelo teorema anterior concluímos que ((A → B)→ (A → A)) também constitui uma tautologia.

Teorema 2. Se A é uma tautologia, cujas fórmulas atômicasconstituintes são A

1 , A

2 , ... , A

n e B é obtida a partir de A pela substituição de

A1 , ... , A

n pelas fórmulas A

1 , ... , A

n, respectivamente, então B constitui ,

também, uma tautologia.Demonstração: A cada associação de valores-verdade para as

fórmulas atômicas constituintes de B, as fórmulas A1, ... , A

n tomam os valores-

verdade x1, ..., x

n, respectivamente, então o valor-verdade de A é 1 (pois, por

hipótese, A é uma tautologia) e, portanto, B toma também o valor 1. Emconseqüência, B é uma tautologia.

Exemplo 6. Consideremos a tautologia A ≡ ((A1 ∧ A

2) → A

1). Sejam A

1≡ (E ∨ C) e A

2 ≡ (C ∧ D). Então B ≡ (((E ∨ C) ∧ (C ∧ D)) → (E ∨ D)) é também

uma tautologia:

Page 71: Livro - Introdução a Lógica para Ciências da Computação

7 1

Assim, o Teorema anterior nos mostra que a substituição em uma tautologiagera ainda uma tautologia.

Teorema 3. Se B1 é obtida de A

1 (suponha-se que possua ocorrências

de A) pela substituição de B para uma ou mais ocorrências de A (em A1),

então (A ↔ B) implica logicamente (A1 ↔ B

1).

Demonstração: Consideremos quaisquer associações de valores-verdade às fórmulas atômicas.

Se A e B tomarem valores-verdade opostos, então (A ↔ B) é falsa e,portanto, (A ↔ B) → (A

1 ↔ B

1) é verdadeira.

Se A e B tomarem os mesmos valores-verdade, então o mesmo se dácom A

1 e B

1, pois B

1 difere de A por conter B em alguns ‘lugares’ onde A

1‘contém’ A. Logo, (A ↔ B) é verdadeira, e, em conseqüência, também é (A

1↔ B

1). Por conseguinte, (A ↔ B) → (A

1 ↔ B

1) é sempre verdadeira e, portanto,

uma tautologia.

Exemplo 7. Consideremos as seguintes fórmulas :A

1 ≡ [((E ∧ (F ∨ C)) → C]

A ≡ CB ≡ (D ∧ G)B

1 ≡ [(E ∧ (F ∨ (D ∧ G))) → C]

Pelo Teorema anterior,

é uma tautologia.

1A 2A 1A( ∧ )2A 1A(( ∧ )2A → )1A

1 1 1 1

1 0 0 1

0 1 0 1

0 0 0 1

1A 2A 1A( ∧ )2A 1A((ºA ∧ )2A

C D E E( ∨ )C C( ∧ )D E((( ∨ )C ∧ C( ∧ ))DB ≡ E((( ∨ )C ∧ C( ∧ ))D → E( ∨ ))D

1 1 1 1 1 1 1

1 1 1 1 1 1 1

1 0 1 1 0 0 1

1 0 1 1 0 0 1

0 1 1 1 0 0 1

0 1 0 0 0 0 1

0 0 1 1 0 0 1

0 0 0 0 0 0 1

Page 72: Livro - Introdução a Lógica para Ciências da Computação

7 2

2.10 - Árvore de refutação

As tautologias, como já observamos, constituem uma classeimportante de fórmulas, pois, elas são sentenças verdadeiras, como vimos.Em Ciência, sempre buscamos o conhecimento e isto implica particularmentena busca da verdade. Ao utilizarmos a linguagem da lógica clássica, então tal“verdade” se reflete, de modo particular, nas tautologias. Felizmente, para alógica proposicional, há um método efetivo para “testar” se uma fórmula étautologia ou não, por exemplo, valendo-se das tabelas-verdade. Nesteparágrafo, é objeto de estudo um outro algoritmo denominado árvore derefutação de fórmulas para verificar se uma dada fórmula é tautologia ounão.

Iremos introduzir a árvore de refutação através de alguns exemplos.Verifiquemos se a fórmula [(A ∧ B) → A)] é tautologia.Eis os passos.

1. Inicialmente, traçamos linhas em número suficiente e colunas para cadafórmula atômica ou conectivo componente, acrescido de uma coluna dejustificativa. Ilustremos abaixo:

2. Em seqüência, suponha-se que a fórmula [(A ∧ B) → A)] seja 0 (falsa).Escrevemos o valor-verdade 0 (falso) abaixo do último conectivo dafórmula em questão. Ilustremos este passo abaixo:

· Vemos que o último conectivo aplicado é o da implicação. Pomos 0 nalinha imediatamente abaixo e na coluna correspondente. Note que o valoratribuído é o valor da fórmula “inteira” [(A ∧ B) → A)], ou seja, ela é falsa.·3. Vejamos agora a tabela-verdade da implicação. A tabela nos diz que a

implicação é 0 (falsa) se e somente se o antecedente (A ∧ B) é 1(verdadeiro) e o conseqüente A é 0 (falso). Escrevemos estes valores nalinha imediatamente seguinte, nas respectivas colunas. Ilustremos estepasso.

A([ ∧ )B → ])A avitacifitsuJ

A([ ∧ )B → ])A avitacifitsuJ

0 otnemaeslaF

Page 73: Livro - Introdução a Lógica para Ciências da Computação

7 3

4. Passamos a aplicar o raciocínio anterior nas duas fórmulas: (A ∧ B) e A.No caso de (A ∧ B), ela é 1 (verdadeira). Consultando-se a tabela-verdadeda conjunção vemos que uma conjunção é 1 (verdadeira) se e somentese ambas fórmulas A e B são verdadeiras, isto é o valor-verdade de A é1 e de B é 1. No caso da fórmula da direita, não é necessário repetir oprocesso, pois ela já é atômica. Ilustremos este passo:

5. Se olharmos para a tabela resultante, observamos que a sentença A é 1(verdadeira) na primeira coluna, e 0 (falsa) na última coluna, ou seja, asentença A está sendo verdadeira e falsa ao mesmo tempo. Isto constituiuma inconsistência. Vamos analisar cuidadosamente, então, o algoritmo.

Como em Lógica Clássica supusemos que não existem inconsistências,algum passo que fizemos está “errado”, ou seja é “falso”. O único elo fracoacima é justamente o primeiro passo, quando supusemos que a fórmula [(A ∧B) → A)] era falsa. Logo, o “errado” ou “falso” é supormos que [(A ∧ B) →A)] é 0 (falso). Portanto, concluímos que ela é (sempre) 1 (verdadeira). Ora, se[(A ∧ B) → A)] é sempre verdadeira, ela é tautologia, como queríamos provar.

Nos exemplos e exercícios subseqüentes, tais passos são feitos numúnica tabela, como abaixo.

Principais tautologias.

A seguir listamos algumas das principais tautologias. Em muitas delas,aplicamos a árvore de refutação e fizemos a verificação de que são tautologias.Sejam A, B e C fórmulas quaisquer:

A([ ∧ )B → ])A avitacifitsuJ

0 otnemaeslaF

1 0 .baT →

A([ ∧ )B → ])A avitacifitsuJ

0 otnemaeslaF

1 0 .baT →1 1 .baT ∧

A([ ∧ )B → ])A avitacifitsuJ

0 otnemaeslaF

1 0 .baT →1 1 .baT ∧

Page 74: Livro - Introdução a Lógica para Ciências da Computação

7 4

Leis comutativas1. ((A ∨ B) ↔ (B ∨ A))Demonstração. Como se trata do conectivo da bi-implicação, temos doiscasos:1o caso:

2o caso:

Em qualquer um dos casos caímos em contradição. Logo, 1) constitui emtautologia.

2. ((A ∧ B) ↔ (B ∧ A))3. ((A ↔ B) ↔ (B ↔ A))4. (((A → (B → C)) ↔ (B → (A → C)))

Leis associativas5 (((A ∨ B) ∨ C) ↔ (A ∨ (B ∨ C)))Demonstração. Como se trata do conectivo da bi-implicação, temos doiscasos:1o caso:

A(( ∨ )B ↔ B( ∨ ))A

0

1 0

0 0

0 0

0

A(( ∨ )B ↔ B( ∨ ))A

0 1

1

0

0 0 0

0 0

A(( ∨ )B ∨ C )) ↔ A( ∨ ))B ∨ ))C

0

1 0

0 0

0 0

0 0

0 0

0

Page 75: Livro - Introdução a Lógica para Ciências da Computação

7 5

2o caso:

Em qualquer um dos casos caímos em contradição. Logo, 1) constitui emtautologia.

6. (((A ∧ B) ∧ C) ↔ (A ∧ (B ∧ C)))

Leis distributivas7. ((A ∧ (B ∨ C)) ↔ ((A ∧ B) ∨ (A ∧ C)))Demonstração: como se trata do conectivo da bi-implicação, temos doiscasos:1o caso:

2o caso: aqui temos a conjunção da “esquerda” falsa e a disjunção da “direita”verdadeira. Desafortunadamente, ambas fórmulas possuem três casos a seremanalisados. Faremos o raciocínio na fórmula da “direita”, que é uma disjunçãoverdadeira:

A(( ∨ B) ∨ C) ↔ )Α ∨ )Β ∨ ))C

0 1

0 1

0 0

0 0

0 0

0 0

0

A((( ∨ B( ∨ C )) ↔ Α(( ∧ )Β ∧ A( ∧ C )))

0 1

1 0

1 1 0 0

1 1

0 0

0 0

0

A((( ∧ B( ∨ C )) ↔ Α(( ∧ )Β ∨ A( ∧ C )))

0

0 1

1 0

1 1

1

0

1 0

1 1

1

Page 76: Livro - Introdução a Lógica para Ciências da Computação

7 6

2o sub-caso.

3o sub-caso.

Em qualquer um dos casos caímos em contradição. Logo, 7) constitui emtautologia.

8. ((A ∨ (B ∧ C)) ↔ ((A ∨ B) ∧ (A ∨ C)))

Leis idempotentes9. ((A ∨ A) ↔ A)Demonstração. Como se trata do conectivo da bi-implicação, temos doiscasos:1o caso:

A((( ∧ B( ∨ C )) ↔ Α(( ∧ )Β ∨ A( ∧ C )))

0

0 1

0 1

1 1

1

0

1 1

1 1

1

A((( ∧ B( ∨ C )) ↔ Α(( ∧ )Β ∨ A( ∧ C )))

0

0 1

1 1

1 1 1 1

1 1

1 1

1

A(( ∨ A( ↔ A(

0

1 0

0 0

0

Page 77: Livro - Introdução a Lógica para Ciências da Computação

7 7

2o caso:

Em qualquer um dos casos caímos em contradição. Logo, 1) constitui emtautologia.

10. ((A ∧ A) ↔ A)

Lei da dupla negação11. (A ↔ (¬(¬A))Demonstração. Como se trata do conectivo da bi-implicação, temos doiscasos:

1o caso:

2o caso:

Em qualquer um dos casos caímos em contradição. Logo, 1) constitui emtautologia.

Lei do terceiro excluído12. (A ∨ (¬A))Demonstração. Como se trata do conectivo da disjunção, temos que:

A(( ∨ A( ↔ A(

0

0 1

1 1

1

A(( ↔ ¬( ¬( A(

0

1 0

1

0

A(( ↔ ¬( ¬( ))A

0

0 1

0

1

Page 78: Livro - Introdução a Lógica para Ciências da Computação

7 8

Temos uma contradição. Logo, é uma tautologia.

Lei da não-contradição13. (¬(A ∧ (¬A)))Demonstração. Como se trata do conectivo da conjunção, temos que:

Temos uma contradição. Logo, é uma tautologia.

Lei da transitividade da implicação14. ((A → B) → ((B → C) → (A → C))) .Demonstração. Como se trata do conectivo da implicação, temos que:

Temos uma contradição. Logo, é uma tautologia.

Lei do silogismo hipotético15. (((A → B) ∧ (B → C)) → (A → C)Demonstração. Como se trata do conectivo da implicação, temos que:

A(( ∨ ¬( ))A

0

0 0

1

¬( A(( ∧ ¬( )))A

0

1

1 1

0

Α(( → )Β → B(( → )C → A( → )))C

0 1 0

0

1 0

1 0

0

0

1 0

0

Page 79: Livro - Introdução a Lógica para Ciências da Computação

7 9

Temos uma contradição. Logo, é uma tautologia.

Leis da contraposição.16. (((A → B) ↔ ((¬B) → (¬A)))Demonstração. Como se trata do conectivo da bi-implicação, temos doiscasos:

1o caso:

2o caso:

Temos uma contradição. Logo, é uma tautologia.

17. ((A → (¬B)) ↔ (B → (¬A))

Lei da exportação.18. (((A ∧ B) → C) → (A → (B→C)))

Lei da importação.19. ((A → (B → C)) → ((A ∧ B) → C))

Lei da exportação e da importação.20. (((A ∧ B) → C) ↔ (A → (B → C)))

Α(( → )Β ∧ B(( → ))C → A( → )C

1 0 0

1 1 1 0

1 0

1 0

Α(( → )Β ↔ (( ¬ )Β → ¬( )))A

0

1 0

1 0

0 1

1 0

0

Α(( → )Β ↔ (( ¬ )Β → ¬( )))A

0

0 1

1 0

0 1

1 0

0

Page 80: Livro - Introdução a Lógica para Ciências da Computação

8 0

Leis de absorção21.(( A ∨ (A ∧ B)) ↔ A)22. ((A ∧ (A ∨ B)) ↔ A)23. ((A → (A → B)) ↔ (A → B))24. (((A → B) ∧ (A → C)) ↔ (A → (B ∧ C)))

Leis de De Morgan25.((¬( A ∨ B)) ↔ ((¬A) ∧ (¬B)))26. ((¬(A ∧ B)) ↔ ((¬A) ∨ (¬B)))

Prova por casos27.(((( A ∨ B) ∧ (A → C)) ∧ (B → C)) → C)

Prova por contradição28. ((((¬A) → B) ∧ (¬B)) → A)29. ((A → (¬A)) → (¬A))30. (((¬A) → A) → A)31. (((A ∧ (¬B)) → (C ∧ (¬C))) → (A → B))32. (((A ∧ (¬B)) → (¬A)) → (A → B))33. (((A ∧ (¬B)) → B) → (A → B))

Lei do destacamento34.((( A ∧ (A → B)) → B)

Modus tollendo tollens35. (((¬B) ∧ (A → B)) → (¬A))

Modus tollendo Ponens36. (((¬A) ∧ (A → B)) → B)

Leis de simplificação37. ((A ∧ B) → A)38. ((A ∧ B) → B)

Leis de adição.39.(A → (A ∨ B))40. (B → (A ∨ B))

Lei de equivalência para a implicação e disjunção41. ((A → B) ↔ ((¬A) ∨ B))

Lei de negação para a implicação42. ((¬(A → B)) ↔ (A ∧ (¬B)))

Leis para proposições bicondicionais43. ((A ↔ B) ↔ ((A → B) ∧ (B → A)))44. ((A ↔ B) ↔ ((A ∧ B) ∨ ((¬A) ∧ (¬B))))

Page 81: Livro - Introdução a Lógica para Ciências da Computação

8 1

Lei de Peirce45. (((A → B) → A) → A)

Esquema B46. (A → (B → A))

Esquema C47. ((A → (B → C)) → ((A → B) → (A → C)))

Lei da identidade48. (A → A)

Exercício 1. Completar as verificações que são tautologias, pelouso da árvore de refutação.

Exercício 2. Demonstrar, pelo método da árvore de refutação, se asseguintes fórmulas são tautologias. Caso contrário, explicite os valores-verdade das sentenças atômicas, para as quais a fórmula é falsa.1. ¬[B ∧ (¬B)]2. [A →(B → C)] → [(A ∧ B) → C)]3. [(¬A) ∧ (¬B)] ↔ [¬(A ∨ B)]4. [A ∨ (¬A)]5. [(¬C) ∨ (¬B)] ↔ (¬A)6. ¬[(A → B) ∧ (A ∨ (¬C))]7. [(A ∧ B) → C)] → [A → (B → C)]8. ¬[(¬C) ∧ C]9. [¬(B ∨ A)] ↔ [(¬A) ∧ (¬B)]10. [B ∧ (¬B)]11. ¬[A ∧ (¬B)]12. ¬[(A → B) ∧ (A ∨ (¬C))]13. [(¬C) ∨ (¬A)] ↔ (¬B)14. [¬(A ∧ B)] ↔ [(¬A) ∨ (¬B)]15. [(A ∧ B) → C)] → [A → (B → C)]

Exercício 3. Idem.1. ¬[B ∧ (¬B)]2. ¬[A ∧ (¬B)]3. [(¬A) ∨ (¬B)] ↔ (¬C)4. ¬[A ∨ (¬C)]5. ¬[(A → C) ∧ (A ∨ (¬B))]6. [¬(A ∨ B)] ↔ [(¬A) ∧ (¬B)]7. [(A → B) ∧ (A → C)] → (A → C)8. (A → B) → [(B → C) → (A → C)]9. ¬[C ∧ (¬B)]10. [(¬C) ∨ (¬B)] ↔ (¬C)11. [¬[B ∨ (¬C)]] ∨ B12. ¬[(A → C) ∧ (A ∨ (¬B))]

Page 82: Livro - Introdução a Lógica para Ciências da Computação

8 2

Exercício 4. Idem.1. (C → B) → [(B → A) → (C → A)]2. [(B → C) ∧ (C → A)] → ( B → A)3. [(¬A) ∧ (¬B)] ↔ [¬(A ∨ B)]4. [¬[A ∨ (¬C)]] ∨ A5. ¬[(D → C) ∧ (D ∨ (¬B))]6. ¬[B ∧ (¬A)]7. [(¬C) ∨ (¬A)] ↔ (¬C)8. [(A ∧ (¬A)) → B]9. [(A ∧ (¬A)) → (¬B)]10. [(A → (¬A)) → B]11. [(A ↔ (¬A)) → B]12. [(A ↔ (¬A)) → (¬B)]13. [A → (¬(¬A))]14. ((¬A) ∧ (A ∨ B)) → B15. (A → B) → [(¬B) → (¬A)]16. [¬((¬A) ∧ (¬(¬A)))]17. [(A → (¬A)) → B] ∧ [B → (¬(¬B))]

Exercício 5. Dê exemplos de tautologias na linguagem portuguesa.

2.11 - Contradições

Definição 1. Uma fórmula A diz-se ser uma contradição se o valor-verdade de A for sempre falso, quaisquer que sejam os valores-verdade desuas fórmulas atômicas componentes.

Logo, uma fórmula A constitui uma contradição se e somente se suafunção-verdade correspondente for a função constante f ≡ 0.

Exemplo 1.1. (A ∧ (¬A))

A (¬A)

A

A ¬( )A A( ∧ (¬ ))A

1 0 0

0 1 0

Page 83: Livro - Introdução a Lógica para Ciências da Computação

8 3

2. ((A ∧ B) ∧ (¬A))

(A ∧ B) (¬A)

A B A

Lema 1. Uma fórmula A é uma tautologia se e somente se a fórmula(¬A) for uma contradição, e vice-versa.

Demonstração: Imediata.

Corolário 1.1. Seja τ o conjunto das tautologias da linguagemproposicional e π o conjunto das contradições. Então τ é equipotente a π.

Demonstração: Conseqüência do lema anterior.

Vê-se, pelos resultados anteriores, que a linguagem proposicionalcontém ‘tantas tautologias quanto contradições’. Intuitivamente, istodenuncia uma importante propriedade da linguagem proposicional: opesquisador que utiliza a linguagem proposicional da Lógica Clássica parasuas perquirições, a linguagem “está equipada” em igual número de sentençasverdadeiras e falsas. Logo, ela (a linguagem) se posiciona neutramente nabusca da verdade.

Podemos obter um algoritmo similar á árvore de refutação vistaanteriormente para verificar se uma fórmula constitui uma contradição. Comefeito, basta supor, por absurdo, que a fórmula é verdadeira e cair num absurdo.Se isto ocorrer, fica provado que a fórmula é uma contradição.

Exemplo 2. Algumas aplicações do algoritmo.1. [¬((A ∧ B) → A)]

2. [¬(A → (B → A))]

Α B )Β∧Α( )Α¬( A(( ∧ )B ∧ (¬ ))A

1 1 1 0 0

1 0 0 0 0

0 1 0 1 0

0 0 0 1 0

¬[ A(( ∧ )Β → ])A

1

0

1 0

1 0

Page 84: Livro - Introdução a Lógica para Ciências da Computação

8 4

3. [¬((A → B) → ((A → (¬B)) → (¬A)))]

Exercício 1. Aplique o algoritmo acima visto para verificar se as seguintesproposições são contradições. Caso contrário, explicite os valores-verdade das atômicas para os quais ela é verdadeira.1. [¬(A → A)]2. ¬[(¬A) ∨ A]3. ¬[B → (C → B)]4. B ∧ [C ∧ (¬B)]5. [A → [B ∧ (¬B)]] ∧ A

Exercício 2. Dê exemplos de sentenças na linguagem portuguesaque são sempre falsas.

2.11 - Inferência Lógica

Neste parágrafo estudamos uma parte importante da Lógica formal:inferência ou raciocínio. Particularmente estamos interessados nas inferênciasválidas.

Uma inferência, quando se fixa uma linguagem conveniente paraexpressar os juízos de que se compõe, se expressa por um conjunto ordenadode sentenças: as premissas e a conclusão. O passo lógico das premissas áconclusão constitui numa dedução. Uma inferência se diz válida, se depremissas verdadeiras, obtivermos necessariamente conclusões também

¬[ A( → Β( → ]))A

1

0

1 0

1 0

¬[ A(( → )Β → A(( → (¬ ))B → ¬( ])))A

1

0

1 0

1 0

1

1

1

0

1 0

0

Page 85: Livro - Introdução a Lógica para Ciências da Computação

8 5

verdadeiras.

Vamos estudar algumas regras de inferência.

1) Modus Ponendo Ponens. Esta regra compõe-se duas premissas, apremissa maior e a premissa menor, e uma conclusão.

A forma da regra se escreve como:

(A → B)

A B

ou1. Premissa maior: (A → B)2. Premissa menor: A3. Conclusão: B

Exemplo 1. Vejamos alguns exemplos.a) 1. Premissa maior: Se chove, então o céu está encoberto.2. Premissa menor: Chove3. Conclusão: O céu está encoberto.

b) 1. Premissa maior: Se trabalhas arduamente, então é recompensado dealgum modo.2. Premissa menor: Trabalhas arduamente.3. Conclusão: És recompensado de alguma forma.

c) 1. Premissa maior: Se f : ℜ → ℜ é uma função derivável, então f é umafunção contínua.2. Premissa menor: f : ℜ → ℜ é uma função derivável.3. Conclusão: f é uma função contínua.

Observemos que na regra Modus Ponendo Ponens, as fórmulas Ae B são arbitrárias. Então ela nos permite outras aplicações:

d) 1. Premissa maior: Se não faz frio, então o lago não gelará.2. Premissa menor: Não faz frio3. Conclusão: O lago não gelará.

Se simbolizarmos por C ≡ Faz frio e por D ≡ O lago gelará, temos:

Outros exemplos:1. (¬A) → B Premissa maior

B

BAA )(, →

Page 86: Livro - Introdução a Lógica para Ciências da Computação

8 6

2. (¬A) Premissa menor3. B Conclusão

Teorema 1. A regra de Modus Ponendo Ponens é uma inferênciaválida.

Demonstração: Suponhamos que A e (A → B) são proposiçõesverdadeiras. Suponha-se por absurdo que B é falsa. De A verdadeira e Bfalsa concluímos que (A → B) é falsa, o que é absurdo. Podemos esquematizarassim:

2) Modus Tollendo PonensEsta regra consiste de duas premissas e uma conclusão.2.1 1a forma(A ∨ B)(¬A) Bou1. Premissa: (A ∨ B)2. Premissa: (¬A)3. Conclusão: B

Exemplo 2. 1. Premissa: “Clarissa compra um vestido azul ou Clarissacompra uma blusa bege”2. Premissa: “Clarissa não compra um vestido azul”3. Conclusão: “Clarissa compra uma blusa bege”

2.2 2a forma (A ∨ B)(¬B) A

Exemplo 3. 1. Premissa: “Clarissa compra um vestido azul ou Clarissacompra uma blusa bege”2. Premissa: “Clarissa não compra uma blusa bege”3. Conclusão: “Clarissa compra um vestido azul”

3) Regra da Dupla Negação.Esta regra compõe-se de uma única premissa e uma conclusão. São duasformas:2.1) ( ¬ ( ¬A)) Ae2.2) A ( ¬ ( ¬ A))

A A( → )B B

1 1 0

0

Page 87: Livro - Introdução a Lógica para Ciências da Computação

8 7

2.1) 1. Premissa: (¬(¬A))2. Conclusão: A

Seja a proposição: “Não é o caso que Bianca não estuda”

Podemos inferir daí que“Bianca estuda”

Portanto, se pomos:A ≡ Bianca estuda, temos:(¬(¬A)) ≡ Não é o caso que Bianca não estuda.

Temos então:1. Não é o caso que Bianca não estuda. Premissa2. Bianca estuda. Conclusão

Ou, em símbolos,1. (¬(¬A)) Premissa2. A Conclusão

Seja a proposição: não é que 1 ≠ 1. TemosSe pomos A ≡ (1 = 1), temos:1. não é que 1 ≠ 1 Premissa2. 1 = 1 Conclusão

2.2)

2.1) 1. Premissa: A2. Conclusão: (¬(¬A))

Seja a proposição: “Johnny Mathis interpreta com maestria”

Podemos inferir daí que“Não é o caso que Johnny Mathis não interpreta com maestria”

Portanto se pomos:A ≡ Johnny Mathis interpreta com maestria, temos:(¬(¬A)) ≡ Não é o caso que Johnny Mathis não interpreta com maestria.

Temos então:1. Johnny Mathis interpreta com maestria. Premissa2. Não é o caso que Johnny Mathis não interpreta com maestria.Conclusão

Ou, em símbolos,1. A Premissa2. (¬(¬A)) Conclusão

Page 88: Livro - Introdução a Lógica para Ciências da Computação

8 8

Seja a proposição: ∅ = ∅.Se pomos A ≡ ∅ = ∅, temos:1. ∅ = ∅ Premissa2. Não é que ∅ ≠ ∅ Conclusão

Teorema 2. A Regra da Dupla Negação é uma regra de inferênciaválida.

Demonstração. De fato, se (¬(¬A)) é verdadeira, (¬A) é falsa e,portanto, A é verdadeira. Podemos esquematizar assim:

Se A é verdadeira, então (¬A) é falsa e, portanto, (¬(¬A)) éverdadeira.Podemos esquematizar assim:

Observação. Na língua portuguesa, existe o que se chama negaçãoenfática. Por exemplo, na proposição“Não se viu nenhuma pessoa” é a mesma coisa que “pessoa alguma foivista”, diferentemente das discussões acima. Portanto, caro leitor, se foraplicada ao pé da letra a lei acima, você está fadado a ser mal interpretado.Outro exemplo: “não consigo aprender nada” é a mesma coisa que ignorânciatotal.

Começando a fazer deduções.

Uma dedução consiste em uma seqüência de fórmulas, cada umadelas ou é uma premissa ou obtida de fórmulas anteriores pela aplicação deregras de inferência.

Exemplo 4.1. (A → B) Premissa2. A Premissa3. B 1, 2, Modus Ponens4. (¬(¬B)) 3, Dupla negaçãoConstitui uma dedução. Diz-se que (¬(¬B)) foi deduzida a partir das premissas

(¬(¬ ))A (¬ )A A

1 0 1

A ¬( )A (¬(¬ ))A

1 0 1

Page 89: Livro - Introdução a Lógica para Ciências da Computação

8 9

(A → B) e A.

4) Modus Tollendo Tolens

Esta regra compõe-se duas premissas e uma conclusão.A forma da regra se escreve como:A,(A → B) BOu(A → B)(¬B) (¬A)

1. (A → B) Premissa2. (¬B) Premissa3. (¬A) Conclusão

Exemplo 5. Vejamos alguns exemplos.a) 1. Se chove, então o céu está encoberto Premissa2. O céu não está encoberto Premissa3. Não chove Conclusão

b) 1. Se trabalhas arduamente, então é recompensado de algum modoPremissa2. Não é recompensado de algum modoPremissa3. Não trabalhas arduamenteConclusão

c) 1. Se f : ℜ → ℜ é uma função derivável, então f é uma função contínua Premissa2. f : ℜ → ℜ não é uma função contínuaPremissa3. f : ℜ → ℜ não é uma função derivávelConclusão

d) 1. Se não faz frio, então o lago não gelará Premissa2. Não é que o lago não gelará Premissa3. Não é que não faz frio Conclusão

Se simbolizarmos por A ≡ Faz frio e por B ≡ O lago gelará, temos:

1. [(¬A) → (¬B)] Premissa2. (¬(¬B)) Premissa3. (¬(¬A)) ConclusãoPodemos continuar a dedução e inferir4. A 3, Dupla negaçãoou seja, Faz frio.

Page 90: Livro - Introdução a Lógica para Ciências da Computação

9 0

Teorema 3. A regra de Modus Tollendo Ponens é uma inferênciaválida.

Demonstração: Suponhamos que (A → B) e (¬B) são proposiçõesverdadeiras. Suponha-se por absurdo que (¬A) é falsa. De (¬B) verdadeira,temos B falsa e de (¬A) é falsa concluímos que A é verdadeira. De A verdadeirae B falsa concluímos que (A → B) é falsa, o que é absurdo. Podemosesquematizar assim:

5) Regra de Simplificação:Esta regra é composta de uma premissa e uma conclusão.5.1 1a forma. (A ∧ B) Aou1. Premissa: (A ∧ B)2. Conclusão: A

Exemplo 6. 1. Premissa: “João estuda e João é compenetrado”2. Conclusão: “João estuda”

5.2 2a forma.(A ∧ B) Bou1. Premissa: (A ∧ B)2. Conclusão: B

Exemplo 7. 1. Premissa: “João estuda e João é compenetrado”2. Conclusão: “João é compenetrado”

6) Regra de Adjunção.Esta regra compõe-se de duas premissas e uma conclusão.6.1 1a forma.A B(A ∧ B)ou1. Premissa: A2. Premissa: B3. Conclusão: (A ∧ B)

A( → )B ¬( )B B (¬ )A A

1 1 0

0 1

0

Page 91: Livro - Introdução a Lógica para Ciências da Computação

9 1

Exemplo 8. 1. Premissa: “Clarissa é amorosa”2. Premissa: “Clarissa é quieta”3. Conclusão: “Clarissa é amorosa e Clarissa é quieta”

2a forma. A B(B ∧ A)ou1. Premissa: A2. Premissa: B3. Conclusão: (B ∧ A)

Exemplo 9. 1. Premissa: “Clarissa é amorosa”2. Premissa: “Clarissa é quieta”3. Conclusão: “Clarissa é quieta e Clarissa é amorosa”

7) Lei de AdiçãoA Lei de Adição expressa que de uma proposição válida A pode-se inferir adisjunção dela com qualquer outra proposição B.A Lei da Adição se expressa como:7.1)1. Premissa: A2. Conclusão: (A ∨ B)7.2)1. Premissa: B2. Conclusão: (A ∨ B)

Exemplo 10. 1. Premissa: “O amor é azul”2. Conclusão: “O amor é azul ou o amor é eterno”

Exemplo 11. 1. Premissa: “2 + 2 = 4”2. Conclusão: “2 + 2 = 4 ∨ 3 + 2 ≤ 1”

Exemplo 12. 1. Premissa: “Passei em Matemática”2. Conclusão: “O exame é amanhã ou passei em Matemática”

Exemplo 13. 1. Premissa: “2 + 2 = 4”2. Conclusão: “3 + 2 ≤ 1∨ 2 + 2 = 4”

Exemplo 14. 1. Premissa: B2. Conclusão: ((¬C) ∨ B)

Exemplo 15. 1. Premissa: A2. Conclusão: (A ∨ ((¬B) → C))

8) Lei do Silogismo Hipotético

Page 92: Livro - Introdução a Lógica para Ciências da Computação

9 2

Esta regra compõe-se de duas premissas e uma conclusão.

1. Premissa: (A → B)2. Premissa: (B → C)3. Conclusão: (A → C)

Exemplo 16. 1. Premissa: “Se fizer calor, então Clarissa irá á praia”2. Premissa: “Se Clarissa irá á praia, então Clarissa arrumará a casa”3. Conclusão: “Se fizer calor, então Clarissa arrumará a casa”

Exemplo 17. 1. Premissa: “Se f : ℜ → ℜ é polinomial, então f : ℜ →ℜ é derivável”2. Premissa: “Se f : ℜ → ℜ é derivável, então f : ℜ → ℜ é contínua”3. Conclusão: “Se f : ℜ → ℜ é polinomial, então f : ℜ → ℜ é contínua”

9) Lei do Silogismo DisjuntivoEsta regra compõe-se de três premissas e uma conclusão.9.1 1a forma.A ∨ B)(A → C)(B → D)(C ∨ D)ou1. Premissa: (A ∨ B)2. Premissa: (A → C)3. Premissa: (B → D)4. Conclusão: (C ∨ D)

Exemplo 18. 1. Premissa: “Ou chove ou as terras estão secas”2. Premissa: “Se chover, então não trabalharemos”3. Premissa: “Se as terras estão secas, então jogaremos futebol”4. Conclusão: “Ou não trabalharemos ou jogaremos futebol”

9.2 2a forma. (A ∨ B)(A → C)(B → D)(D ∨ C)ou1. Premissa: (A ∨ B)2. Premissa: (A → C)3. Premissa: (B → D)4. Conclusão: (D ∨ C)

Exemplo 19. 1. Premissa: “Ou chove ou as terras estão secas”2. Premissa: “Se chover, então não trabalharemos”3. Premissa: “Se as terras estão secas, então jogaremos futebol”4. Conclusão: “Ou jogaremos futebol ou não trabalharemos”

Page 93: Livro - Introdução a Lógica para Ciências da Computação

9 3

10) Leis Comutativas.Esta regra compõe-se de uma premissa e uma conclusão.10.1 1a forma.(A ∧ B)(B ∧ A)ou1. Premissa: (A ∧ B)2. Conclusão: (B ∧ A)

Exemplo 20.: 1. Premissa: “Clarissa é quieta e Clarissa é amorosa”2. Conclusão: “Clarissa é amorosa e Clarissa é quieta”

Observação: muito cuidado ao considerar linguagens naturais. Vejao exemplo1. Premissa: “Maria casou e Maria teve um filho”2. Conclusão: “Maria teve um filho e Maria casou”

Reiteramos. As regras de inferência (como tudo o mais) referem-se á linguagemproposicional e não á linguagem natural.

10.2 2a forma.(A ∨ B) (B ∨ A)ou1. Premissa: (A ∨ B)2. Conclusão: (B ∨ A)

Exemplo 21. 1. Premissa: “Clarissa é quieta ou Clarissa é amorosa”2. Conclusão: “Clarissa é amorosa ou Clarissa é quieta”

11) Leis das proposições bi-condicionais.11.1(A↔B) (A→B)

11.2(A↔B) (B→A)11.3(B→A) (A↔B)11.4 (A↔B) ((A↔B)∧(A↔B)

12) Leis de De Morgan.

12.1[¬(A∧B)] [(¬A) ∨ (¬B)]

12.2 [¬(A∨B)] [(¬A) ∧ (¬B)]

Page 94: Livro - Introdução a Lógica para Ciências da Computação

9 4

12.3 (A∧B) ¬[(¬A)∨(¬B)]

12.4 (A∧B) ¬[(¬A)∨(¬B)]

12.5 [(¬A)∨(¬B)] [ ¬(A∧B)

12.6 [(¬A)∧(¬B)] [ ¬(A∨B)

12.7 ¬[(¬A) ∨(¬B)] (A∧B)

12.8 ¬[(¬A) ∨(¬B)](A∨B)

Exercício 1. Simbolize as proposições e o quê se pode concluir,aplicando-se as regras de inferência vistas ?1. Ou Paulo tem a maioria dos votos ou Maria tem a maioria dos votos. SePaulo tem a maioria dos votos, então Luiz será o tesoureiro. Se Maria tem amaioria dos votos, então Marcos será o tesoureiro.

2. Se a emenda não for aprovada, então a Constituição fica como está. Se aConstituição fica como está, então não incorporamos novos membros aocomitê. Ou incorporamos novos membros ao comitê ou o informe se atrasaráem um mês. Porém, o informe não se atrasará em um mês.

Nas seguintes inferências, verificar se a conclusão é conseqüência daspremissas. No caso positivo, faça uma dedução usando as regras vistas.

1. Se esta é uma sociedade matriacal, então o irmão da mãe é o chefe dafamília. Se o irmão da mãe é o chefe da família, então o pai não possuiautoridade. Esta é uma sociedade matriacal. Portanto, o pai não possuiautoridade.

2. Se o presidente da escola de samba for correto ou for forte ou for íntegro,então a escola progride sem problemas. Se a escola progride sem problemas,então todos os sócios estão satisfeitos. Se os sócios estão satisfeitos, entãonão há descontentamento com o presidente, nem o presidente é anti-ético,nem o presidente toma atitudes imorais, nem o presidente vacila e nem opresidente esconde informações. Acontece que há descontentamento como presidente, além disso o presidente é anti-ético, toma atitudes imorais,vacila e esconde informações. Logo o presidente da escola de samba não écorreto, nem íntegro e é fraco.

Page 95: Livro - Introdução a Lógica para Ciências da Computação

9 5

2.12 - Regras de eliminação de parênteses

Vejamos algumas convenções destinadas a aliviar a leitura dasfórmulas, através da eliminação de parênteses. As regras para tal são asseguintes:

R1) Inicialmente omitimos os parênteses ‘mais externos’ de uma fórmula. É

claro que se a fórmula for uma fórmula atômica, não há parênteses a omitir.

Exemplo 1. (A ∧ B) → C abrevia ((A ∧ B) → C)

R2) Se a fórmula contiver apenas ocorrências de um só conectivo binário

(isto é, ∧, ∨, → ou ↔), os parênteses são omitidos por associação à esquerda.

Exemplo 2. Exemplos de forma simplificada.1. A → D → C → B abrevia ((A → D) → C) → B)2. B ∧ B ∧ C abrevia ((B ∧ B) ∧ C).

R3) quando uma fórmula apresentar ocorrências de mais de um conectivo,

ponha-se a seguinte ordenação entre os conectivos:1o ¬2o ∧3o ∨4o →5o ↔

Os parênteses são eliminados de acordo com as seguintes regras,ilustradas pelos exemplos correspondentes:

R4) Primeiramente, ¬ se aplica à ‘menor’ fórmula que o segue imediatamente.

Exemplo 3. Para se restaurar os parênteses da expressão A ∨ ¬B → C↔ A ∧ D, inicia-se primeiro pelo conectivo ¬:

A ∨ (¬B) → C ↔ A ∧ D

R5) Em seguida, ∧ conecta as ‘menores’ fórmulas a ele adjacentes:

Exemplo 4. Tomando-se a expressão do exemplo anterior, obtemos:A ∨ (¬B) → C ↔ (A ∧ D)

R6) Logo o ∨, que conecta as ‘menores’ fórmulas a ele adjacentes:

Exemplo 5. A expressão do exemplo anterior toma a forma (A ∨(¬B)) → C ↔ (A ∧ D)

R7) O passo seguinte é tratar do → que conecta as ‘menores’ fórmulas a ele

adjacentes:

Page 96: Livro - Introdução a Lógica para Ciências da Computação

9 6

Exemplo 6. ainda em relação ao exemplo anterior:((A ∨ (¬B)) → C ) ↔ (A ∧ D)

R8) Por último, ↔ conecta as ‘menores’ fórmulas a ele adjacentes:

Exemplo 7. O exemplo anterior toma a forma:(((A ∨ (¬B)) → C ) ↔ (A ∧ D))

Exemplo 8. Seja a restauração dos parênteses da expressãoA ↔ B ↔ C ∧ D ∧ A ∨ ¬A → DOs passos da restauração são os seguintes:

1. A ↔ B ↔ C ∧ D ∧ A ∨ (¬A) → D (R4)

2. A ↔ B ↔ (C ∧ D) ∧ A ∨ (¬A) → D (R5 e R

2)

3. A ↔ B ↔ ((C ∧ D) ∧ A) ∨ (¬A) → D (R2)

4. A ↔ B ↔ (((C ∧ D) ∧ A) ∨ (¬A)) → D (R6)

5. A ↔ B ↔ ((((C ∧ D ∧ A) ∨ (¬A)) → D) (R7)

6. (A ↔ B) ↔ ((((C ∧ D) ∧ A) ∨ (¬A)) → D) (R8 e R

2)

7. ((A ↔ B) ↔ ((((C ∧ D) ∧ A) ∨ (¬A)) → D)) (R2)

Exemplo 9. Simplifiquemos os parênteses de (A ∨ (B → A)).1. (A ∨ (B → A)) (R

1)

2. A ∨ (B → A) (R1)

Exercício 1. Simplifique os parêntesis das seguintes fórmulas.1. [[ A → ( B → C)] → [( A → B) → ( A → C)]]2. [[ A → ( B → C)] → [ B → ( A → C)]]3. [[(¬B) → (¬A)] → [((¬B) → A) → B]]4. [[(¬B) ∧ (¬C)] ↔ (¬A)]5. [¬[( A → B) ∧ (A ∨ (¬A))]]6. [¬[A ∧ (¬A)]]7. [[ A → ( B → C)] → [ B → ( A → C)]]

2.13 - A notação polonesa de fórmulas

Há uma outra notação para as fórmulas que não faz uso dos parênteses.Tal sistema é conhecido como notação polonesa de fórmulas e mostra que,de fato, os parênteses são simplesmente símbolos auxiliares da linguagemproposicional.

As regras da notação polonesa são as seguintes:Sejam A e B fórmulas quaisquer. Escrevemos :

P1) ¬A ao invés de (¬A)

P2) ∧AB ao invés de (A ∧ B)

P3) ∨ AB ao invés de (A ∨ B)

P4) → AB ao invés de (A → B)

P5) ↔ AB ao invés de (A ↔ B)

Exemplo 1. Vamos escrever as seguintes fórmulas na notação polonesa:a) ((A ∧ B) → C)1. →(A ∧ B)C (P

4)

Page 97: Livro - Introdução a Lógica para Ciências da Computação

9 7

2. →∧ABC (P2)

a) (A ∨ ((B ∧ (¬C)) → D))1. ∨A((B ∧ (¬C)) → D) (P

3)

2. ∨A→(B ∧ (¬C))D (P4)

3. ∨A→∧B¬CD (P2)

4. ∨A→∧B¬CD (P1)

Exemplo 2. Dada a expressão → → AB →→ BC → ¬AC, em notaçãopolonesa, podemos transformá-la na notação original através dos seguintespassos:1) → → AB → → BC → (¬A)C (P

1)

2) → (A → B) → (B → C) (¬A) → C) (P4)

3) → (A → B) ((B → C) → ((¬A) → C )) (P4)

4) ((A → B) → ((B → C) → ((¬A) → C))) (P4)

Exercício 1. Escrever na notação polonesa as seguintes fórmulas.1. ((¬(A → B)) → A),2. ((A → C) ∨ (B ∧ C)),3. ((A → B) → (E → (¬C))),4. ((A → C) → ((B → C) → ((A ∨ B) → C))),5. ((A → B) → ((A → (¬B)) → (¬A))),6. ((A → (B → C)) → ((A → B) → (A → C))).

Exercício 2. As seguintes expressões estão escritas na notaçãopolonesa. Escreva-as na forma original.1. ¬¬¬A2. →∧A¬BA3. →→¬B¬A→AB4. →→→AAAA5. ∧A∧A∧AA

2.14 - Forma normal disjuntiva

O objetivo deste parágrafo é obter uma fórmula logicamenteequivalente a uma dada fórmula que é uma disjunção de conjunções defórmulas atômicas ou de suas negações, com certas condições. Essa fórmulaé muito útil em aplicações, principalmente em circuitos elétricos.

Definição 1 [Literal]. Qualquer fórmula atômica ou sua negaçãochama-se literal.

Exemplo 1. São exemplos de literais.1. A2. (¬B)3. C

Exemplo 2. Não são literais:

Page 98: Livro - Introdução a Lógica para Ciências da Computação

9 8

1. (¬(¬B))2. (A ∧ B)

Definição 2 [Conjunção fundamental]. Uma fórmula diz-seconjuntiva fundamental se:1. ou é um literal2. ou é uma conjunção de dois ou mais literais, desde que não há

repetição de variáveis proposicionais.

Exemplo 3. São exemplos de conjuntivas fundamentais.1. B ∧ [C ∧ (¬A)]2. A3. (¬A)4. [(¬C) ∧ (¬B)] ∧ (¬A)5. (A ∧ B)

Exemplo 4. Não são exemplos de conjuntivas fundamentais:1. [(¬A) ∧ (¬B)] ∧ (¬A) (houve repetição da fórmula atômica A)2. [¬(¬A)] (não é um literal)3. B ∧ [C ∧ (¬B)] (houve repetição da fórmula atômica B)

Definição 3. Diz-se que uma conjuntiva fundamental A está contidana conjuntiva fundamental B se todos os literais de A são também literais deB.

Exemplo 5. Exemplos.1. (A ∧ B) está contida em [(A ∧ B) ∧ C]2. [C ∧ (¬A)] está contida em B ∧ [C ∧ (¬A)]3. B ∧ (¬A)] está contida em B ∧ [C ∧ (¬A)]4. A está contida em (¬A)

Exemplo 6. Contra-exemplos.1. (¬A) não está contida em [(A ∧ B) ∧ C]2. [C ∧ (¬B)] não está contida em B ∧ [C ∧ (¬A)]3. A não está contida em B ∧ [C ∧ (¬A)]

Definição 4. Diz-se que uma fórmula A está na forma disjuntivanormal se:1. ou A é uma conjunção fundamental2. ou A é uma disjunção de duas ou mais conjunções fundamentais,

sendo que nenhuma delas está contida nas demais.

Exemplo 7. As seguintes fórmulas estão na forma disjuntivanormal:1. B ∧ [C ∧ (¬A)]2. A3. (¬A)4. [(¬C) ∧ (¬B)] ∧ (¬A)

Page 99: Livro - Introdução a Lógica para Ciências da Computação

9 9

5. (A ∧ B)6. [(¬A) ∨ A]7. [D ∧ (¬A)] ∨ [B ∧ [C ∧ (¬A)]]8. [ D ∧ (¬A)] ∨ [B ∧ [C ∧ (¬A)]] ∨ [(D ∧ C) ∨ A]

Pode-se provar um resultado que toda função-verdade édeterminada por uma fórmula que contém somente ocorrências dosconectivos ¬, ∧ ou ∨. Na realidade, o resultado que vamos expor através deexemplos, já fornece uma fórmula na sua forma disjuntiva normal.

Método para obtenção de uma fórmula equivalente á uma na forma disjuntivanormal.

Consideremos a fórmula S (com fórmulas atômicas componentesA e B) que tenha por tabela-verdade:

Passo 1. Escolhemos apenas as linhas em que S é verdadeira. No caso sãoas 2a, 3a e 4a linhas.

Passo 2. Para cada linha do passo anterior, olhamos apenas para asatômicas e construímos uma fórmula conjuntiva fundamental assim:2a linha - como A é verdadeira, mantemos A e como B é falsa, substituímospor (¬B). Fórmula conjuntiva fundamental relativa á 2a linha: [A ∧ (¬B)].3a linha - como A é falsa, substituímos por (¬A) e como B é verdadeira,mantemos B.Fórmula conjuntiva fundamental relativa á 3a linha: [(¬A) ∧ B].4a linha - como A é falsa, substituímos por (¬A) e como B é falsa,substituímos por (¬B). Fórmula conjuntiva fundamental relativa á 4a linha:[(¬A) ∧ (¬B)].

Passo 3. Finalmente, para obtermos a forma disjuntiva normal é sófazermos a disjunção das fórmulas obtidas, ou seja,

[ A ∧ (¬B)] ∨ [(¬A) ∧ B] ∨ [(¬A) ∧ (¬B)]

Exercício 1. Faça a verificação, i.e., verifique que as tabelas-verdadede S e de[ A ∧ (¬B)] ∨ [(¬A) ∧ B] ∨ [(¬A) ∧ (¬B)] são iguais.

Vejamos mais um exemplo.

Exemplo 8. Encontre uma fórmula disjuntiva normal equivalente a[( ¬B) → C] ↔ [(¬A) ∧ B]

A B S

1 1 0

1 0 1

0 1 1

0 0 1

Page 100: Livro - Introdução a Lógica para Ciências da Computação

100

Preliminarmente construamos sua tabela-verdade:

S ≡ [( ¬B) → C] ↔ [(¬A) ∧ B]

[(¬B) → C] [(¬A) ∧ B]

(¬B) C (¬A) B

B A

Passo 1. Linhas em que S são verdadeiras: 4, 5 e 8.Passo 2. Fórmulas conjuntivas fundamentais:

Linha 4 - [A ∧ (¬B) ∧ (¬C)]Linha 5 - [(¬A) ∧ B ∧ C]Linha 8 - [(¬A) ∧ (¬B) ∧ (¬C)]

Passo 3. S ⇔ [ A ∧ (¬B) ∧ (¬C)] ∨ [(¬A) ∧ B ∧ C] ∨ [(¬A) ∧ (¬B) ∧ (¬C)]

Logo, uma fórmula disjuntiva normal equivalente a[( ¬B) → C] ↔ [(¬A) ∧ B]

é a fórmula[ A ∧ (¬B) ∧ (¬C)] ∨ [(¬A) ∧ B ∧ C] ∨ [(¬A) ∧ (¬B) ∧ (¬C)].

Exercício 2. Faça a verificação.

Exemplo 9. Encontre uma fórmula S cujas fórmulas atômicas sãoA, B, C e D e cuja tabela-verdade é:

A Β C )Β¬( ¬( )A →)Β¬([ C] ]Β∧)Α¬([ S

1 1 1 0 0 1 0 0

1 1 0 0 0 1 0 0

1 0 1 1 0 1 0 0

1 0 0 1 0 0 0 1

0 1 1 0 1 1 1 1

0 1 0 0 1 0 1 0

0 0 1 1 1 1 1 0

0 0 0 1 1 0 1 1

Page 101: Livro - Introdução a Lógica para Ciências da Computação

101

Basta aplicar o método anterior.Passo 1. Linhas que S são verdadeiras: 6, 10 e 15.Passo 2: Fórmulas conjuntivas fundamentais:

Linha 6: [A ∧ (¬B) ∧ C ∧ (¬D)]Linha 10: [(¬A) ∧ B ∧ C ∧ (¬D)]Linha 15: [(¬A) ∧ (¬B) ∧ (¬C) ∧ D]

Passo 3. A fórmula solicitada éS ≡ [ A ∧ (¬B) ∧ C ∧ (¬D)] ∨ [(¬A) ∧ B ∧ C ∧ (¬D)] ∨ [(¬A) ∧ (¬B) ∧ (¬C)

∧ D]

Exercício 3. O leitor é convidado para fazer a verificação.

Exercício 4. Encontre uma fórmula na forma disjuntiva normaldas seguintes fórmulas:1. [A → (B ∨ C)] ↔ (¬A)2. ¬[[(¬B) ∧ (¬(¬A))] ∧ [(A → B) ∨ (B → A)]]3. [¬(A ∨ C)] → [A → (A → A)]4. A → [A → (A → A)]5. [(A ↔ B) ∧ A] → B6. A → [(B → B) ∨ (A → A)]

Exercício 5. Encontre fórmulas S1, S

2, S

3 e S

4 cujas fórmulas

atômicas são A e B e cujas tabelas-verdade são:

A Β C D S

1 0 1 1 0

1 0 1 0 0

1 0 0 1 0

1 0 0 0 0

1 1 1 1 0

1 1 1 0 1

1 1 0 1 0

1 1 0 0 0

0 0 1 1 0

0 0 1 0 1

0 0 0 1 0

0 0 0 0 0

0 1 1 1 0

0 1 1 0 0

0 1 0 1 1

0 1 0 0 0

Page 102: Livro - Introdução a Lógica para Ciências da Computação

102

Exercício 6. Encontre fórmulas S1, S

2 e S

3 cujas fórmulas atômicas

são A, B e C e cujas tabelas-verdade são:

Exercício 7. Encontre fórmulas S1 e S

2 cujas fórmulas atômicas

são A, B, C e D e cujas tabelas-verdade são:

A B 1S

1 1 0

1 0 1

0 1 0

0 0 1

A B 2S

1 1 0

1 0 1

0 1 1

0 0 0

A B 3S

1 1 0

1 0 0

0 1 0

0 0 0

A B 3S

1 1 1

1 0 1

0 1 0

0 0 1

A B C 1S

1 1 1 1

1 1 0 1

1 0 1 0

1 0 0 0

0 1 1 1

0 1 0 0

0 0 1 0

0 0 0 1

A B C 2S

1 1 1 0

1 1 0 1

1 0 1 1

1 0 0 0

0 1 1 0

0 1 0 1

0 0 1 0

0 0 0 1

A B C 3S

1 1 1 0

1 1 0 0

1 0 1 1

1 0 0 1

0 1 1 1

0 1 0 0

0 0 1 1

0 0 0 0

A B C D 1S

1 1 1 1 1

1 1 1 0 0

1 1 0 1 1

1 1 0 0 0

1 0 1 1 0

1 0 1 0 0

1 0 0 1 0

1 0 0 0 1

0 1 1 1 0

0 1 1 0 0

0 1 0 1 0

0 1 0 0 0

0 0 1 1 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

A B C D 2S

1 1 1 1 0

1 1 1 0 0

1 1 0 1 1

1 1 0 0 0

1 0 1 1 1

1 0 1 0 0

1 0 0 1 0

1 0 0 0 1

0 1 1 1 0

0 1 1 0 0

0 1 0 1 0

0 1 0 0 0

0 0 1 1 0

0 0 1 0 1

0 0 0 1 0

0 0 0 0 0

Page 103: Livro - Introdução a Lógica para Ciências da Computação

103

2.15 - Uma axiomatização da lógica proposicional

Vamos introduzir a partir deste ponto uma teoria axiomática formal Lpara a lógica proposicional. Tal teoria fica estabelecida quando damos,inicialmente, o vocabulário de L, constituído pelos seguintes símbolos,divididos em três categorias:1. Variáveis proposicionais: Um conjunto enumerável de símbolosdenominadas de variáveis proposicionais.2. Conectivos lógicos: ¬ (negação), ∧ (conjunção), ∨ (disjunção) e →(implicação)3. Símbolos auxiliares: (, ).

Passemos agora à gramática de L.

Definição 1. Qualquer seqüência finita de símbolos do vocabuláriode L, diz-se uma expressão de L.

Exemplo 1. São expressões de L, onde A e B são variáveisproposicionais.1. A¬∨)2. (A → B)3. ∧∨A(¬

Notamos intuitivamente que as expressões dadas em a) e c) sãodestituídas de sentido, ao passo que a expressão b) constitui uma expressão‘bem formada’; tal expressão fará parte do conjunto das expressões relevantesde L.

Definição 2. Dadas as expressões A e B de L, a expressão:(¬A) denomina-se a negação de A,(A ∧ B) denomina-se a conjunção de A e B (ou, simplesmente, conjunção),(A ∨ B) denomina-se a disjunção de A e B (ou, simplesmente, disjunção),(A → B) denomina-se a implicação de B por A ( ou, simplesmente, implicação).

Observação. Uma vez mais enfatizamos que os símbolos A e B,utilizados na definição anterior, não pertencem aos símbolos do vocabuláriode L; constituem variáveis (denominadas meta-variáveis) que servem paradesignar expressões quaisquer de L.

As expressões relevantes de L (denominadas fórmulas) para o discursomatemático são dadas pela seguinte definição indutiva.

Definição 3. Uma expressão A diz-se uma fórmula se existir umaseqüência finita de expressões (B

1, ... ,B

n) (n ≥ 1) tal que, para cada i, 1 ≤ i ≤

n:1. ou B

i é uma fórmula atômica;

2. ou Bi é uma negação, conjunção, disjunção, implicação, de expressões

anteriores da seqüência,

Page 104: Livro - Introdução a Lógica para Ciências da Computação

104

3. Bn é A.

Exemplo 2. Sejam A, B e C fórmulas atômicas. São exemplos defórmulas:

1) ((A ∨ B) ∧ C). Basta tomar a seqüência (A, B, C, (A ∨ B), ((A ∨ B) ∧ C))ou, mais didaticamente, escrevemos na coluna:1. A (atômica)2. B (atômica)3. C (atômica)4. (A ∨ B) (1, 2, disjunção)5. ((A ∨ B) ∧ C)) (4, 3, conjunção)

De modo óbvio possui a seguinte árvore de decomposição:((A ∨ B) ∧ C)

(A ∨ B) C

A B

Exemplo 3. a) (A → B) é uma fórmula, pois é dada pela seqüência (A,B, (A → B).

b) (¬(¬(¬A))) também é uma fórmula, pois é dada pela seqüência (A,(¬A), (¬(¬A)), (¬(¬(¬A))).

Podemos agora introduzir (por definição) o conectivo ↔ da bi-implicação.

Definição 4. Sejam A e B fórmulas de L. Ponha-se:(A ↔ B) = ((A → B) ∧ (B → A)).Note-se que (A ↔ B) constitui uma fórmula de L, denominada de bi-

implicação de A e B (ou, simplesmente, uma bi-implicação).Adotamos a regra de eliminação de parênteses vista em 2.6.Adotaremos os seguintes postulados (esquemas de axiomas e regras

de inferência) para a linguagem proposicional L, apresentados por [Kleene52].

Sejam A , B e C fórmulas quaisquer :(→

1) [A → (B → A)]

(→2) [ A → (B → C)] → [(A → B) → (A → C)]

(∧1) [(A ∧ B) → A]

(∧2) [(A ∧ B) → B]

(∧3) A → [B → (A ∧ B)]

(∨1) [A → (A ∨ B)]

(∨2) [B → (A ∨ B)]

(∨3) (A → C) → [(B → C) → [(A ∨ B) → C]]

(¬1) (A → B) → [[A → (¬B)] → (¬A)]

Page 105: Livro - Introdução a Lógica para Ciências da Computação

105

(¬2) [(¬(¬A)) → A]

(MP) (Modus Ponens)

Observação. Note-se que os esquemas de axiomas acima abreviamuma infinidade de fórmulas (axiomas). Cada axioma de um esquema de axiomascorrespondente diz-se ser uma instanciação ou instância daquele esquemade axiomas. Os exemplos abaixo ilustram esse fato.

Exemplo 4.a) A fórmula A

1 → (A

2 → A

1) é um axioma, que por sua vez é uma

instanciação (ou instância) de (→1).

b) Idem, em relação à fórmula A5 → (A

5 → A

5).

c) Idem, para a fórmula (¬A1) → (A

10 → (¬A

1)).

d) Idem, para (A1 → A

2) → ((A

3 ∧ A

1) → (A

1 → A

2)).

e) [(A ∨ C) ∧ (C ∨ B)] → (C ∨ B) é um axioma; é uma instanciação (ouinstância) de (∧

2)

Observação. Observe-se que, dada uma fórmula de L, podemosverificar, sem dificuldade, se ela constitui um axioma ou não. As lógicas quepossuem esta propriedade são chamadas axiomáticas.

Logo, pela observação precedente, a lógica proposicional é axiomática.

Vejamos, em seguida, algumas noções sintáticas centrais, como as dedemonstração (ou prova) e de Teorema.

Definição 5. Uma demonstração (ou prova) em L é uma seqüênciafinita de fórmulas (A

1, A

2, ..., A

n) tal que, para cada i, 1 ≤ i ≤ n,

1. ou Ai é um axioma,

2. ou Ai é conseqüência direta de algumas fórmulas precedentes da seqüência

pela aplicação da regra de Modus Ponens.

Exemplo 5. A seguinte seqüência de fórmulas (A1, A

2, A

3) constitui

uma demonstração, pois:A

1 ≡ (A → ((A → A) → A)) → ((A → (A → A)) → (A → A)) (→

2)

A2 ≡ A → ((A → A) → A) (→1)

A3 ≡ (A → (A → A)) → (A → A) (A

1, A

2,

MP)

Definição 6. Uma fórmula A de L denomina-se um teorema (de L) seexistir uma demonstração (A

1, A

2, ..., A

n) tal que A

n = A. Uma tal seqüência diz-

se ser uma demonstração de A.

Exemplo 6. A fórmula (A → (A → A)) → (A → A) constitui um teoremade L, pois a seqüência (A

1, A

2, A

3), vista no exemplo anterior, constitui uma

demonstração tal que A3 é (A → (A → A)) → (A → A).

Notação. Se uma fórmula A constituir um teorema de L, simbolizamos

Page 106: Livro - Introdução a Lógica para Ciências da Computação

106

esse fato por | A (ou, simplesmente | A). assim, no exemplo anterior,temos que | (A → (A → A)) → (A → A).

Observação. 1. Pela definição anterior, concluímos que todo axiomade L constitui um teorema de L. Com efeito, se A é um axioma de L, a seqüência(A

1), onde A

1 = A , constitui uma demonstração de A.

2. Dado um teorema A de L, existem infinitas demonstrações de A. Comefeito, seja (A

1, A

2, ..., A

n) uma demonstração de A. Podemos inserir um axioma

na seqüência anterior (desde que não seja como último elemento) e temosobviamente uma nova demonstração de A. Podemos repetir o processo e,assim, temos uma infinidade de demonstrações de A.

Teorema 1 (Lei da Identidade do Cálculo Proposicional). Temos que| (A → A), para toda fórmula A.

Demonstração 4:Consideremos a seguinte demonstração de (A → A):1. [(A → ((A → A)) → ((A → (A → A)) → (A → A))] (→

2)

2. [A → ((A → A) → A)] (→2)

3. [(A → (A → A)) → (A → A)] (1, 2, MP)4. [A → (A → A)] (→

1)

5. (A → A) (3, 4, MP)

Suponhamos, agora, que queremos saber quais sentenças sãodedutíveis a partir de um conjunto de sentenças (premissas ou hipóteses(verdadeiras ou não)). Temos que lançar mão dos conceitos seguintes:

Definição 7. Seja Γ um conjunto de fórmulas. Uma dedução a partirdo conjunto Γ de fórmulas é uma seqüência finita de fórmulas (A

1, A

2, ... , A

n)

tal que, para todo i, 1 ≤ i ≤ n, uma das condições abaixo se verifica:1. ou A

i é um axioma,

2. ou Ai ∈ Γ,

3. ou Ai é obtida de fórmulas anteriores pela regra do Modus Ponens.

Exemplo 7. Seja Γ = A → B, B → C. Então, a seqüência de fórmulas:1. A → B (elemento de Γ)2. B → C (elemento de Γ)3. (A → (B → C)) → ((A → B) → (A → C)) (→

2)

4. (B → C) → (A → (B → C)) (→1)

5. A → (B → C) (2, 4, MP)6. (A → B) → (A → C) (3, 6, MP)7. A → C (1, 6, MP)constitui uma dedução a partir de Γ.

5 O leitor deve prestar atenção ao duplo emprego das palavras ‘teorema’ e ‘demons-tração’. É claro que tais palavras já possuem significados técnicos precisos, vistos notexto. A palavra ‘teorema’ do ‘Teorema 1’, entretanto, se refere a uma afirmação dasintaxe da linguagem proposicional; é, pois, em realidade, um ‘meta-teorema’; a pala-vra ‘demonstração’ que a acompanha constitui a demonstração do ‘meta-teorema’correspondente.

Page 107: Livro - Introdução a Lógica para Ciências da Computação

107

Definição 8. Uma fórmula A diz-se uma conseqüência sintática de umconjunto Γ de fórmulas se existir uma dedução a partir de Γ (A

1, A

2, ... , A

n) tal

que An coincide com A. Uma tal seqüência se denomina dedução de A a partir

de Γ.Logo, uma fórmula A constitui uma conseqüência sintática de Γ se for

o último termo de uma dedução a partir de Γ. Os membros de Γ chamam-sehipóteses ou premissas da dedução. Utilizamos o símbolo

Γ | A (ou simplesmente Γ | A)para abreviarmos que A é conseqüência sintática de Γ.

Quando Γ for um conjunto finito B1, ... , B

n escrevemos

B1, ... , B

n | A

ao invés de B1, ..., B

n | A

Note-se que tambémΓ, B

1, ... , B

n | A

abrevia Γ ∪ B1, ... , B

n | A (em particular, Γ, B | A abrevia Γ ∪ B | A)

Lema 1. Seja A uma fórmula. Então, ∅ | A se e somente se A for umteorema (isto é, | A).

Demonstração. Imediata.

Teorema 2. As seguintes propriedades são válidas:1. Se Γ ⊂ ∆ e Γ | A, então ∆ | A.2. Γ | A se e somente se existir um conjunto finito ∆ de Γ tal que ∆ | A.3. Se ∆ | A e, para cada B em ∆ , Γ | B, então Γ | A.

Demonstração: 1. Imediata.2. (⇐) conseqüência de 1. (⇒) Se Γ | A, existe uma (A

1, ... , A

n) dedução de A a partir de Γ. Seja ∆ =

Ai | A

i ∈ Γ). É imediato que ∆ ⊆ Γ, ∆ é finito e ∆ | A.

3. Suponhamos que ∆ | A. Então existe uma dedução (A1, ... , A

n) de A a

partir de ∆. Seja Aj1, ... , A

jk o conjunto dos elementos da dedução que são

elementos de ∆. Pela hipótese, para cada x, 1 ≤ x ≤ k, tem-se queΓ | A

jxSeja (B

jx1, ... , B

jxn) uma dedução de A

jx a partir de Γ.

Construímos uma nova seqüência A partir de (A1, ... , A

n), substituindo

cada Ajx pela seqüência correspondente considerada acima. Esta nova

seqüência constitui uma dedução de A a partir de Γ.

Exemplo 8. Do exemplo 7 concluímos que a fórmula A → C é umaconseqüência sintática de Γ = A → B, B → C, ou seja:

A → B, B → C | A → C.

Exemplo 9. A → (B → C) | B → (A → C).Demonstração:

1. A → (B → C) (hipótese)2. [A → (B → C)] → [(A → B) → (A → C)] (→

2)

3. [(A → B) → (A → C)] (1, 2, MP)

Page 108: Livro - Introdução a Lógica para Ciências da Computação

108

4. B → (A → B) (→1)

5. B → (A → C). (4, 3,exemplo anterior)

Teorema 3. Sejam Γ um conjunto de fórmulas e A, B fórmulasquaisquer. Se Γ | A e Γ | A → B, então Γ | B.

Demonstração: Sejam (A1, ... , A

n) uma dedução de A a partir de Γ e (B

1,

... , Bm) uma dedução de A → B a partir de Γ. Consideremos a seqüência (A

1,

..., An-1

, A, B1, ... , B

m-1, A → B, B). É imediato que esta última seqüência

constitui uma dedução de B a partir de Γ (B é obtida de A e A → B por meiode Modus Ponens).

Em muitos resultados da Matemática, freqüentemente, demonstramosuma proposição B assumindo uma outra proposição A; concluímos, então ,que ‘Se A então B’ é verdadeira.

Exemplo 10. “Se f: [0, 1] → ℜ é uma função derivável, então f é umafunção contínua”.

Assumimos que f é derivável e demonstramos, a partir daí, que f écontínua. Fica assim demonstrado que “Se f é derivável, então f é contínua”.

Este procedimento é justificado, para o cálculo proposicional, peloTeorema da Dedução, que veremos a seguir.

Teorema 4. (Teorema da Dedução). Sejam Γ um conjunto de fórmulas,A e B fórmulas e Γ, A | B. Então Γ | A → B. Em particular, se A | B, então| A → B (Herbrand, 1930).

Demonstração: Sejam (B1, B

2, ... , B

n) uma dedução de B a partir de Γ

∪ A. Afirmamos queΓ | A → B

i, 1 ≤ i ≤ n.

Procedemos por indução finita sobre i:1) i = 1. Temos que1. B

1 é axioma,

2. B1 ∈ Γ,

3. B1 é A.

Nos casos 1 e 2 temos quei. B

1 → (A → B

1) (→

1)

ii. B1 (hipótese ou axioma)

iii. A → B1 (1,2,MP)

iv. Γ | A → B1.

No caso 1.3, temos que:| A → B

1 (pelo Teorema 1)

Γ | A → B1 (pelo Teorema 2)

2) assumimos que Γ | A → Bk, para 1 ≤ k < 1 < n.

Consideremos a fórmula Bi:

1. Bi é axioma,

2. Bi ∈ Γ,

3. Bi é A,

4. Bi é obtida pela aplicação do MP de duas fórmulas B

j e B

m anteriores da

Page 109: Livro - Introdução a Lógica para Ciências da Computação

109

seqüência, onde Bm é B

j → B

i, j, m < i.

Nos casos 2.1, 2.2, 2.3, o procedimento é análogo ao dos casos 1.1, 1.2 e 1.3,respectivamente, do item anterior.analisemos agora 2.4. Temos que:i. Γ | A → B

j(hipótese de indução)

ii. Γ | A → (Bj → B

i) (hipótese de indução)

iii. | (A → (Bj → B

i)) → ((A → B

j) → (A → B

i)) (→

2)

iv. Γ | (A → Bj) → (A → B

i) (ii, iii, Teorema 3)

v. Γ | A → Bi

(i, iv, Teorema 3)Logo, temos que Γ | A → B

i, 1 ≤ k ≤ n.

Em particular, para k = n, temos queΓ | A → B.

Lema 2.1) A → A, B → C | A → C2) A → (B → C) | B → (A → C).3) | A → ((A → B) → B).

Demonstração:1) A → A, B → C | A → C1. A → B (hipótese)2. B → C (hipótese)3. A (1, 3, MP)4. C (2, 4, MP)

Concluímos que A → B, B → C, A | C, donde, pelo Teorema daDedução, advém que A → B, B → C | A → C.

2) A → (B → C) | B → (A → C).1. A → (B → C) (hipótese)2. B (hipótese)3. A (hipótese)4. B → C (1, 3, MP)5. C (2, 4, MP)

∴φ0 Α → (B → C), B , A | C.∴φ0 Α → (B → C) | B → (A → C) (Teorema da Dedução).

3) | A → ((A → B) → B).1. A (hipótese)2. A → B (hipótese)3. B +(1, 2, MP)

∴φ0 | A → ((A → B) → B) (Teorema da Dedução).

Lema 3. Sejam A e B fórmulas quaisquer de L. São teoremas:1) B → ¬¬B2) ¬A → (A → B)3) (¬B → ¬A) → (A → B)4) (A → B) → (¬B → ¬A)5) A → (¬B → ¬(A → B))6) (A → B) → ((¬A → B) → B)

Page 110: Livro - Introdução a Lógica para Ciências da Computação

110

Demonstração:1) B → ¬¬B1. B (hipótese)2. B → (¬B → B) (→

1)

3. ¬B → B (1, 2, MP)4. (¬B → B) → ((¬B → ¬B) → ¬¬B) (¬

1)

5. (¬B → ¬B) → ¬¬B (3, 4, MP)6. ¬B → ¬B (Teorema 1)7. ¬¬B (5, 6, MP)8. B | ¬¬B9. | B → ¬¬B (Teorema da Dedução).

2) ¬A → (A → B)1. ¬A (hipótese)2. A (hipótese)3. A → (¬B → A) \(→

1)

4. ¬B → A (2, 3, MP)5. ¬A → (¬B → ¬A) (→

1)

6. ¬B → ¬A (1, 5, MP)7. (¬B → A) → ((¬B → ¬A) → ¬¬B) (¬

1)

8. ¬¬B (4, 6, 7, MP)9. ¬¬B → B (¬

2)

10. B (8, 9, MP)11. ¬A → (A → B) (Teorema da Dedução)3) (¬B → ¬A) → (A → B)1. ¬B → ¬A (hipótese)2. A (hipótese)3. A → (¬B → A) (→

1)

4. ¬B → A (2, 3, MP)5. (¬B → A) → ((¬B → ¬A) → ¬¬B)6. (¬B → ¬A) → ¬¬B (4, 5, MP)7. ¬¬B (5, 6, MP)8. ¬¬B → B (¬

2)

9. B (7, 8, MP)10. (¬B → ¬A) → (A → B) (Teorema da Dedução)

4) (A → B) → (¬B → ¬A)1. A → B (hipótese)2. ¬B (hipótese)3. (A → B) → ((A → ¬B) → ¬A) (¬

2)

4. (A → ¬B) → ¬A (1, 3, MP)5. ¬B → (A → ¬B) (→

1)

6. A → ¬B (2, 5, MP)7. ¬A (4, 6, MP)8. (A → B) → (¬B → ¬A) (Teorema da Dedução)

5) A → (¬B → ¬(A → B))1. A (hipótese)

Page 111: Livro - Introdução a Lógica para Ciências da Computação

111

2. ¬B (hipótese)3. | A → ((A → B) → B) (lema 2, item 3)4. | ((A → B) → (¬B → ¬(A → B)) (lema 3, item 4)5. | A → (¬B → ¬(A → B)) (3, 4, lema 2, item 1)6. | ¬(A → B) (1, 2, 5, MP)

6) (A → B) → ((¬A → B) → B)1. A → B (hipótese)2. ¬A → B (hipótese)3. | (A → B) → (¬B → ¬A) (lema 2.8.3, item 4)4. | ¬B → ¬A (1,2,MP)5. | ¬B → B (4, 2, lema 2, item 1) (¬

1)

6. (¬B → B) → ((¬B → ¬B) → ¬¬B) (¬1)

7. (¬B → ¬B) → ¬¬B (5, 6, MP)8. | ¬B → ¬B (Teorema 1)9. | ¬¬B (7, 8, MP)10. ¬¬B → B(¬

2)

11. | B (9, 10, MP)

Lema 4. Sejam A, B, C fórmulas quaisquer. São teoremas:1) ¬A → (C → ¬(A ∧ B))1. ¬A (hipótese)2. C (hipótese)3. ((A ∧ B) → A) → (((A ∧ B) → ¬A) → ¬(A ∧ B)) (¬

1)

4. A ∧ B → A (∧1)

5. ((A ∧ B) → ¬A) → ¬(A ∧ B) (1.3, 1.4, MP)6. ¬A → ((A ∧ B) → ¬A) (→

1)

7. (A ∧ B) → ¬A (1, 6, MP)8. ¬(A ∧ B) (5, 7, MP)

∴φ0 | ¬A → (C → ¬(A ∧ B)) (Teorema da Dedução)

2) A → (C → (A ∨ B))1. A (hipótese)2. C (hipótese)3. A → (A ∨ B) (∨

1)

4. A ∨ B (1, 3, MP)∴φ0 | A → (C → (A ∨ B)) (Teorema da Dedução)

3) B → (C → (A ∨ B))1. B (hipótese)2. C (hipótese)3. B → (A ∨ B) (∨

2)

4. A ∨ B (1, 3, MP)∴φ0 | B → (C → (A ∨ B)) (Teorema da Dedução)

4) ¬(A ∨ B) → ¬A ∧ ¬B1. ¬(A ∨ B) (hipótese)

Page 112: Livro - Introdução a Lógica para Ciências da Computação

112

2. A → A ∨ B (∨1)

3. ¬(A ∨ B) → ¬A (2, lema 2, item 4)4. ¬A (1, 3, MP)5. B → A ∨ B (∨

2)

6. ¬(A ∨ B) → ¬B (5, lema 2, item 4)7. ¬B (4.5, 4.6, MP)8. ¬A → (¬B → (¬A ∧ ¬B)) (∧

3)

9. (¬A ∧ ¬B) (4, 7, 8, MP)∴φ0 | ¬(A ∨ B) → ¬A ∧ ¬B (Teorema da Dedução)

5) A → ¬(¬A ∧ ¬B)1. A (hipótese)2. ((¬A ∧ ¬B) → A) → (((¬A ∧ ¬B) → ¬A) → ¬(¬A ∧ ¬B)) (¬

1)

3. A → ((¬A ∧ ¬B) → A) (→1)

4. (¬A ∧ ¬B) → A (1, 3, MP)5. (¬A ∧ ¬B → ¬A) → ¬(¬A ∧ ¬B) (2, 4, MP)6. (¬A ∧ ¬B) → ¬A (∧

1)

7. ¬(¬A ∧ ¬B) (5, 6, MP)∴φ0 | A → ¬(¬A ∧ ¬B) (Teorema da Dedução)

6) B → ¬(¬A ∧ ¬B)1. B (hipótese)2. (¬A ∧ ¬B → B) → ((¬A ∧ ¬B → ¬B) → ¬(¬A ∧ ¬B)) (¬

1)

3. B → (¬A ∧ ¬B → B) (→1)

4. ¬A ∧ ¬B → B (1, 3, MP)5. (¬A ∧ ¬B → ¬B) → (A ∧ B) (4, 2, MP)6. ¬A ∧ ¬B → ¬B (∧

2)

7. ¬(¬A ∧ ¬B) (5, 6,MP)∴φ0 | B → ¬(¬A ∧ ¬B) (Teorema da Dedução)

7) A ∨ B → ¬(¬A ∧ ¬B)1. A ∧ B (hipótese)2. (A → ¬(¬A ∧ ¬B)) → ((B → ¬(¬A ∧ ¬B)) → ((A ∨ B) → ¬(¬A ∧ ¬B)))(∨

3)

3. | A → ¬(¬A ∧ ¬B) (item 5 deste lema)4. | B → ¬(¬A ∧ ¬B) (item 6 deste lema)5. ¬(¬A ∧ ¬B) (1, 2, 3, 4, MP)

∴φ0 | A ∨ B → ¬(¬A ∧ ¬B) (Teorema da Dedução)

8) (¬A ∧ ¬B) → ¬(A ∨ B)1. A ∨ B → ¬(¬A ∧ ¬B) (item 7 deste lema)2. ¬¬(¬A ∧ ¬B) → ¬(A ∨ B) (lema 3, item 4)3. ¬A ∧ ¬B → ¬¬(¬A ∧ ¬B) (lema 3, item 1)4. ¬A ∧ ¬B → ¬(A ∨ B) (3, 2, lema 2, item1).

Teorema 5. Seja A uma fórmula, cujas fórmulas atômicas são A1, A

2,...,

Am. Seja (x

1, x

2, ..., x

m) uma dada associação de valores-verdade de A

1, A

2, ...,

Page 113: Livro - Introdução a Lógica para Ciências da Computação

113

Am, respectivamente. Consideremos a seqüência de fórmulas A’

1, A’

2, ..., A’

m,

tal queA’

i =

SejaA’ =para a associação de valores-verdade considerada,.

Nestas condições, afirmamos queA’

1, ..., A’

m | A’.

Demonstração: Procedemos por indução no número n de ocorrênciasdos conectivos em A.1. n = 0. Neste caso, A constitui uma fórmula atômica A

1. Temos que

Logo, temos que A’1 é A

1 e A é A

1 no caso correspondente à primeira

associação, e A’1 é ¬A

1 e A é ¬A

1 no caso da segunda. Em ambos os casos

temos queA

1 | A

1 e ¬A

1 | ¬A

1, de modo óbvio.

2. Suponhamos a proposição verdadeira para toda fórmula que possua menosde n ocorrências dos conectivos (n > 0). Seja (x

1, ..., x

m) uma associação de

valores-verdade. Consideremos uma fórmula A com n ocorrências dosconectivos lógicos. Pela lei de formulação de fórmulas, A só pode ser dostipos1 ¬B,2. B ∧ C,3. B ∨ C ou4. B → C.

Caso 1. A é ¬BNotemos, preliminarmente, que B possui exatamente n - 1 ocorrências

de conectivos e, portanto, podemos aplicar a hipótese da indução para B.Subcaso 1.1. B toma o valor 1 para a associação de valores-

verdade considerada. Então B’ é B. Por outro lado, A toma o valor 0. Logo, A’é ¬A (isto é, ¬¬B).

Pela hipótese da indução, tem-se queB’

1, ..., B’

m | B.

Porém, pelo Lema 3, item 1, e Lema 2, advém queB’

1, ..., B’

m | ¬¬B.

Mas ¬¬B é A’. Logo,B’

1, ..., B’

m | A’.

Subcaso 1.2. B toma o valor 0. Então B’ = ¬B e A’ = A, pois Atoma o valor 1. Pela hipótese da indução, temos que

B’1, ..., B’

m | B’,

ou seja,B’

1, ..., B’

m | ¬B,

1A ’1A ’A

1 1A 1A

0 ¬ 1A ¬ 1A

Page 114: Livro - Introdução a Lógica para Ciências da Computação

114

Porém, ¬B é A’. Logo,B’

1, ..., B’

m | A’.

Caso 2. A é B ∧ C.Notemos que a referida propriedade é válida para B e C (pois ambas

possuem número de ocorrências de conectivos estritamente menor que n).Assim,

B’1, ..., B’

m | B’ e

B’1, ..., B’

m | C’.

Subcaso 2.1. B e C toma valor 1. Então B’ é B, C’ é C e A’ é A.B’

1, ..., B’

m | B e

B’1, ..., B’

m | C.

Pelo axioma (∧3) advém que | B → (C → (B ∧ C)).

Por conseguinte, pelo Teorema 3, temosB’

1, ..., B’

m | B ∧ C.

Porém, B ∧ C é A. Logo,B’

1, ..., B’

m | A’.

Subcaso 2.2.2. B toma o valor-verdade 0 e C toma o valor 1.Então B’ é ¬B, C’ é ¬C e A’ é ¬A.

B’1, ..., B’

m | ¬B e

B’1, ..., B’

m | C.

Pelo Lema 4, item 1, advém que| ¬B → (C → ¬(B ∧ C)). DaíB’

1, ..., B’

m | ¬(B ∧ C) (Teorema 3).

Porém, ¬(B ∧ C) é A’. Logo,B’

1, ..., B’

m | A’.

Subcaso 2.2.3. Para os caso em que B toma o valor 1 e C ovalor 0, e B e C tomam ambos valor 0, a demonstração é semelhante à do casoanterior.

Caso 2.3. A é B ∨ CNovamente, a propriedade é válida para B e C. Logo,

B’1, ..., B’

m | B‘ e

B’1, ..., B’

m | C‘.

Subcaso 2.3.1. B e C toma valor 1. Logo, B’ é B, C’ é C e A’ é A.B’

1, ..., B’

m | B e

B’1, ..., B’

m | C.

Pelo Lema 2.8.4, item 2, advém que| B → (C → (B ∨ C)).logo, pelo Teorema 3 , segue-se queB’

1, ..., B’

m | B ∨ C.

Porém, B ∨ C é A’. Portanto,B’

1, ..., B’

m | A’.

Subcaso 2.3.2. quando B ou C toma valor 1, a demonstração éanálogo à do subcaso anterior.

Subcaso 2.3.3. B e C tomam valor 0. Logo, B’ é ¬B, é ¬C e A’é ¬A.

B’1, ..., B’

m | ¬B e

Page 115: Livro - Introdução a Lógica para Ciências da Computação

115

B’1, ..., B’

m | ¬C.

Pelo Lema 2, item 4, advém que¬B, ¬C | ¬B ∧ ¬C.Pelo Lema 2, item 8, segue-se que| (¬B ∧ ¬C) → ¬(B ∨ C).Combinando os resultados anteriores, temosB’

1, ..., B’

m | ¬(B ∨ C).

Porém ¬(B ∨ C) é A’. Logo,B’

1, ..., B’

m | A’.

Caso 2.4. A é B → CB e C possuem número de ocorrências de conectivos estritamente

menores que n. Logo, a propriedade é válida para B e C.B’

1, ..., B’

m | B’ e

B’1, ..., B’

m | C’.

Subcaso 2.4.1. B toma o valor 0. Logo , B’ é ¬B e A’ é A.B’

1, ..., B’

m | ¬B

Pelo Lema 3, item 2, advém que| ¬B → (B → C).Logo, B’

1, ..., B’

m | B → C.

Porém, B → C é A’. assim,B’

1, ..., B’

m | A’.

Subcaso 2.4.2. B toma valor 1 e C toma valor 0. Então B’ é B, C’é ¬C e A’ é ¬A.

B’1, ..., B’

m | B e

B’1, ..., B’

m | ¬C.

Pelo Lema 3, item 5, temos que| B → (¬C → ¬(B → C)).Logo, B’

1, ..., B’

m | ¬(B → C).

Porém, ¬(B → C) é A’. assim,B’

1, ..., B’

m | A’.

Subcaso 2.4.3. B e C tomam valor 1. Logo, B’ é B, C’ é C e A’ éA.

B’1, ..., B’

m | B

B’1, ..., B’

m | C.

Temos que C → (B → C) é um axioma. Logo,B’

1, ..., B’

m | B → C. Porém B → C é A’. assim,

B’1, ..., B’

m | A’.

E o teorema está demonstrado.

Exemplo 11. Suponhamos que a seja a fórmula ¬(A ∨ (¬B)):

A B (¬ )B A( ∨ (¬ ))B ¬ A( ∨ (¬ ))B

1 1 0 1 1

1 0 1 1 0

0 1 0 0 1

0 0 1 1 0

Page 116: Livro - Introdução a Lógica para Ciências da Computação

116

Temos, então:1a linha: A, B | ¬¬(A ∨ (¬B))2a linha: A, ¬ B | ¬¬(A ∨ (¬B))3a linha: ¬A, B | ¬(A ∨ (¬B))4a linha: ¬A, ¬B | ¬¬(A ∨ (¬B)).

Exemplo 12. Suponhamos que a seja a fórmula A → [(¬B) ∧ C]

Temos, então:1a linha: A, B, C | ¬A → [(¬B) ∧ C]2a linha: A, B, ¬C | ¬A → [(¬B) ∧ C]3a linha: ¬A, ¬B, C | A → [(¬B) ∧ C]4a linha: ¬A, ¬B, ¬C | ¬ A → [(¬B) ∧ C]5a linha: A, B, C | A → [(¬B) ∧ C]6a linha: A, B, ¬C | A → [(¬B) ∧ C]7a linha: ¬A, ¬B, C | A → [(¬B) ∧ C]8a linha: ¬A, ¬B, ¬C | A → [(¬B) ∧ C]

Exercício 1. Aplique o teorema anterior para obter todas as deduçõespossíveis:1. A → [(B ∧ C) → (A → C)]2. (B ∨ A) ∧ A3. A ∧ [(B ∧ A) ∨ (A ∨ B)]4. [(B → A) → A]

Teorema 6. (Teorema da Correção). Se A é um teorema de L, então Aconstitui uma tautologia de L.

Demonstração: Notemos, inicialmente, que todos os axiomas de Lsão tautologias. Se as premissas da regra de Modus Ponens são tautologias,então ao conclusão também é uma tautologia. Logo, todo teorema é umatautologia.

A recíproca do último teorema também é válida, e conhecida como oTeorema da Correção. Ela mostra-nos que o cálculo proposicional é completo.Existem muitas demonstrações deste teorema; a que apresentamos abaixo édevida a L. Kalmár (1935).

Teorema 7. (Teorema da Completeza). Se A é uma tautologia de L,

A B C (¬ )B ([ ¬ )B ∧ ]C A → [ ¬( )B ∧ ]C

1 1 1 0 0 0

1 1 0 0 0 0

1 0 1 1 1 1

1 0 0 1 0 0

0 1 1 0 0 1

0 1 0 0 0 1

0 0 1 1 1 1

0 0 0 1 0 1

Page 117: Livro - Introdução a Lógica para Ciências da Computação

117

então a constitui um teorema de L.Demonstração: Seja A uma tautologia. Sejam A

1, A

2, ..., A

n as fórmulas

atômicas componentes de A. Para cada associação de valores-verdade àscomponentes A

1, A

2, ..., A

n, respectivamente, temos que (utilizando as

notações do teorema anterior):A’

1, A’

2, ..., A’

n | A (A’ é A, pois A é uma tautologia).

Fixados os n - 1 primeiros valores-verdade da associação em questão,temos as seguintes possibilidades:1. o valor-verdade de A

n é 1. Então A’

1, ..., A’

n-1, A

n | A.

2. o valor-verdade de An é 0. Então A’

1, ..., A’

n-1, ¬A

n | A.

Pelo Teorema da Dedução advém queA’

1, ..., A’

n-1 | A

n → A e

A’1, ..., A’

n-1 | ¬A

n → A.

Pelo Lema 2.8.3, item 6, Advém que| (A

n → A) → ((¬A

n → A) → A).

Donde concluímos queA’

1, ..., A’

n-1 | A

Repetindo o raciocínio acima, após n passos obtemos, então:| A.

Definição 9. O cálculo proposicional diz-se consistente se não existiremteoremas ? A e ? (¬A).

Definição 10. O cálculo proposicional diz-se trivial se todas as suasfórmulas forem teoremas. Em caso contrário, o cálculo proposicional diz-senão-trivial.

Teorema 8. (Consistência). O Cálculo proposicional L é consistente,isto é, não existe fórmula A tal que | A e | ¬¬¬¬¬A.

Demonstração: Suponhamos, por absurdo, que uma tal fórmula Aexista. Então, pelo Teorema 2.8.6., A e ¬A são tautologias, o que é impossível.

Finalmente, temos mais uma caracterização para a consistência de L.

Teorema 9. O cálculo proposicional L é consistente se e somente seele for não-trivial.

Demonstração: (⇒) Com efeito, se todas as fórmulas foremteoremas, então |A e | ¬¬¬¬¬A para alguma fórmula A, o que é contraditório.

(⇐) Se L não for consistente, então | A e | ¬¬¬¬¬A para alguma fórmulaA. Pelo Lema 3, advém que

1. | ¬A → (A → B)2. | A3. | ¬A4. | B (pelo Teorema 3).Logo, qualquer fórmula B de L é um Teorema, o que contraria a

hipótese.

Page 118: Livro - Introdução a Lógica para Ciências da Computação
Page 119: Livro - Introdução a Lógica para Ciências da Computação

119

2 O CÁLCULO DE PREDICADOS

2.1 - Lógica e gramática

No cálculo proposicional estudamos o raciocínio proposicional. Porém, ape-sar de importante, ela não consegue expressar sentenças elementares impor-tantes tais como da aritmética elementar. Não há meios de simbolizar subs-tantivos comuns ou próprios, adjetivos, pronomes, verbos, ou advérbios.Gostaríamos de desenvolver uma linguagem formal que pudesse ser sufici-ente para expressar qualquer conjunto relevante de fatos sistemáticos. Cui-daremos de cobrir algumas insuficiências da lógica proposicional, e paraisso construiremos uma nova linguagem, mais rica definindo dois novossímbolos e novamente definindo fórmula, dedução, etc. Abaixo citaremosum exemplo daquilo que a lógica proposicional não conseguiria tratar. Po-deríamos explicitar pela lógica proposicional a diferença entre as duas sen-tenças a seguir?

A ≡ Todos são mortais.B ≡ Alguém é bondoso.

Na lógica proposicional as duas sentenças acima seriam tratadascomo unidades, isto é, não teríamos como “decompo-las” em sentençasmenores ligadas pelos conectivos lógicos, daí não poderíamos falar da dife-rença entre estas duas sentenças na lógica proposicional.

O que passamos a ver agora é como formar novas sentenças a partirdo tratamento de substantivos, adjetivos e predicados, mas antes faremosuma breve recordação de leituras de algumas sentenças fazendo uso depalavras como alguns, todos, existem, nem todos, não existem, etc. Taispalavras dão as sentenças uma nova abrangência, por exemplo:

Existem cavalos com patas verdes.

A sentença acima diz que existem cavalos com a propriedade de as

1 Esta linguagem será naturalmente mais rica, no sentido de podermos nos referir e tratarexplicitamente qualidades e relações, introduzindo-se constantes individuais e variáveis.As constantes para fazer referência aos objetos de que se trata, e variáveis para nosreferirmos a objetos (de um conjunto determinado) não especificados.2 Os substantivos, adjetivos e predicados mencionados são os gramaticais.

Page 120: Livro - Introdução a Lógica para Ciências da Computação

120

patas serem verdes; a idéia é elaborar uma linguagem que trate de sentençascomo a do exemplo acima. Relembrando temos que as sentenças são consti-tuídas, quase sempre, de dois termos, respectivamente

a ) o ser (de quem ou de que se diz algo - sujeito)b ) aquilo que se diz (do ser - predicado).

Em cada uma das sentenças abaixo o sujeito esta sublinhado e orestante da frase que não estiver sublinhado é o predicado.

a ) “Pedro é um rapaz dedicado ao trabalho.”b ) “2 é um número par.”c ) “As flores são perfumadas.”d ) “O homem é um mamífero.”e ) “O mundo é redondo.”

Apenas para termos um forma de representação, como foi feito noprimeiro capítulo, adotaremos uma representação para os sujeitos epredicados, esta representação irá ser reformulada de modo rigoroso logoapós esta introdução intuitiva. Representarão os predicados as letras maiús-culas latinas em itálico: A, B, B, D, ... P, ..., e os sujeitos serão representadospor letras latinas minúsculas em itálico: a, b, c, d, e, ..., p, q, ... . Para indicarque um sujeito sofre a ação do predicado utilizaremos ama notação específi-ca, vejamos alguns exemplos:

1. R ≡ ser redondo.t ≡ Terra.

para indicarmos por R(t) a sentença “A Terra é redonda.”

2. M ≡ ser mamífero.s ≡ Simba.

para indicarmos por M(s) a sentença “Simba é um mamífero.”

3. P ≡ ser perfumado.r ≡ rosa.

para indicarmos por P(r) a sentença “A rosa é perfumada.”

4. N ≡ ser um número par.q ≡ 4.

para indicarmos por N(q) a sentença “Quatro é um número par.”

Vejamos um outro exemplo, no qual o universo do discurso é o uni-verso dos números inteiros ..., -2, -1, 0, 1, 2, 3, ... :

“Todo número inteiro par é divisível por 2”

Numa simbolização utilizando, variáveis fica:

Para qualquer x, se x for um número inteiro par, x é divisível por 2.

Page 121: Livro - Introdução a Lógica para Ciências da Computação

121

Fazendo uso da simbolização anterior:

P ≡ ser um número inteiro par.D ≡ ser um divisível por 2.

“Para qualquer x, (P(x) → D(x))”

Logo se introduzirmos se simbolizarmos:

C ≡ ser coala.E ≡ comer folhas de eucalipto.

poderíamos representar a sentença “Todo coala come folhas de eucalipto”por:

“Para todo x, (C(x) → E(x))”

Acima utilizamos variáveis, como os representados pela letra “x”,nos exemplos anteriores, aos que não estão acostumados faremos aqui al-guns comentários, também estes comentários são de caráter intuitivo. O usode variáveis ocorre como quando não queremos especificar o objeto emalgum contexto, exemplificando:

a ) “Alguém estudou aqui.”b ) “Ele foi para o Alasca.”c ) “Ninguém estudou aqui.”

Em todos os exemplos anteriores o uso de pronomes indefinidos,não especifica quem sofre a ação do predicado, e em lugar de utilizar estespronomes utilizaremos variáveis, isto é, diremos o seguinte:

a ) “x estudou aqui.”b ) “y foi para o Alasca.”c ) “z não estudou aqui.”

respectivamente. Representaremos as variáveis por letras latinas minúscu-las em itálico, indexadas por números naturais: x

1, x

2, x

3, x

4, ..., porém como

esta notação é muito “carregada” em geral quando não houver problemas deambigüidade utilizaremos apenas letras latinas em itálico, como por exemplo:x, y, z, w. O uso de variáveis encerra problemas bem mais complexos masestes serão tratados posteriormente, neste momento estamos preocupadosapenas em introduzir leituras de sentenças pelo uso destes símbolos. Apren-deremos a ler e a simbolizar por meio de exemplos, utilizaremos ainda osseguintes símbolos:

- símbolo de quantificação universal; leia-se “para todo”, “todo”.∃ - símbolo de quantificação existencial; leia-se “algum”, “existe”.

Page 122: Livro - Introdução a Lógica para Ciências da Computação

122

Vamos simbolizar os exemplos anteriores com o uso destes novos símbo-los:

“Todo número inteiro par é divisível por 2”P ≡ ser um número inteiro par.D ≡ ser um divisível por 2.

( x)(P(x) → D(x))

“Todo coala come folhas de eucalipto”C ≡ ser coala.E ≡ comer folhas de eucalipto.

( x)(C(x) → E(x))

“Alguém estudou aqui.”E ≡ estudar aqui.

(∃x)(E(x))

“Ele foi para o Alasca”I ≡ ir para o Alasca.

(∃x)(I(x))

“Ninguém estuda aqui”A ≡ estudar aqui.

( x)(¬A(x))

“Nem todo cão é manso”C ≡ ser cão.M ≡ ser manso.

(∃x)[C(x)→(¬(M(x)))]

Exemplo 1. Exemplos de leituras de sentenças comquantificadores, a seguir terão especificados, cada um, o seu domínio dodiscurso.O domínio do discurso é o universo dos números naturais.

Predicados e ConstantesA(x) ≡ x é divisível por 2.B(x) ≡ x é divisível por 3.

Cabe observar que nos predicados fizemos uso das constantes 2e 3 do universo dos números naturais.

Page 123: Livro - Introdução a Lógica para Ciências da Computação

123

O domínio do discurso é o universo dos números naturais.Predicados e ConstantesA(x, y) ≡ x é maior que y.B(x, 100) ≡ x é maior que 100.

O domínio do discurso é o universo dos pontos da geometria euclidiana.PredicadosA(x, y, z) ≡ x está entre y e z.

O domínio do discurso é o universo dos números reais.Predicados e ConstantesA(x

1 , x, y, z) ≡ x

1 é a soma de x, y e z.

B(x1 , x, 1, 2) ≡ x

1 é a soma de x, 1 e 2.

seõçisoporP oãçudarT

(∃ ))x(A()x .2roplevísividlarutanoremúnmuetsixE

(∃ ()x ¬ ))x(A .2roplevísividéoãneuqlarutanoremúnmuetsixE

(∀ ))x(A()x .2roplevísividélarutanoremúnodoT

[¬ (( ∀ ]))x(A()x .2roplevísividajeslarutanoremúnodoteuqedadrevéoãN

(∀ ()x ¬ ))x(AélarutanoremúnmuhneNuo.2roplevísividéoãnlarutanoremúnodoT

.2roplevísividlarutanoremúnetsixeoãNuo.2roplevísivid

(∃ )x(A()x ∧ ))x(B .3roplevísivide2roplevísividlarutanoremúnmuetsixE

(∃ )x(A()x ∨ ))y(B .3roplevísividuo2roplevísividlarutanoremúnmuetsixE

seõçisoporP oãçudarT

))y,x(A()y$()x$( .siarutansoremúnsnuglaeuqseroiamsiarutansoremúnsnuglametsixE

))y,x(A()y"()x$( .larutanoremúnreuqlauqeuqseroiamsoremúnsnuglametsixE

))y,x(A()y$()x"( .larutanoremúnmuglaeuqroiamélarutanoremúnreuqlauQ

))y,x(A()y"()x"( .larutanoremúnreuqlauqeuqroiamélarutanoremúnodoT

))001,x(B()x$( .001euqroiamélarutanoremúnmuglA

))001,x(B()x"( .001euqroiamélarutanoremúnodoT

))001,x(BØ()x"(oremúnetsixeoãNuo.001euqroiaméoãnlarutanoremúnreuqlauQ

.001euqroiamlarutan

seõçisoporP oãçudarT

(∀ ()y ∀ ()z ∃ ))z,y,x(A()x .seleertneotnopmuetsixe,reuqsiauqsotnopsiodsodaD

(∃ ()y ∃ ()z ∀ ))z,y,x(A()x.seleertneátseotnopodoteuqsiatsotnopsiodmetsixE

Page 124: Livro - Introdução a Lógica para Ciências da Computação

124

O domínio do discurso é o universo dos seres vivos.Predicados e ConstantesA(x) ≡ x é um velocista.B(x) ≡ x é veloz.C(x) ≡ x é tão rápido quanto uma tartaruga.

O domínio do discurso é o universo dos seres vivos.Predicados e ConstantesA(x) ≡ x é um animal.B(x) ≡ x é um mamífero.C(x) ≡ x é um homem.

Respectiva Tradução

1. Se todos os homens são mamíferos e todos os mamíferos são animaisentão todo homem é animal.

No próximo tópico deste capítulo, assim como fizemos na lógicaproposicional, daremos um tratamento formalizado da lógicaquantificacional, ou como é mais conhecido, da lógica de predicados.

seõçisoporP oãçudarT

(∀ ()x ∀ ()y ∀ ()z ∃ ))z,y,x,1x(A()1xeuqlaeroremúnmuetsixe,siaersoremúnsêrtsodaD

.seledamosaé

(∃ ()x ∃ ()y ∃ ()z ∀ ))z,y,x,1x(A()1xéamosadodatluserojucsiaersoremúnsêrtmetsixE

.laerrolavreuqlauq

(∀ ()x ∃ ))2,1,x,1x(B()1xmuetsixe,2e1mocodamoslaeroremúnodotaraP

.amosatsedodatluseroéeuqlaeroremún

seõçisoporP oãçudarT

(∀ )x(A()x → ))x(BodoTuO.sezolevoãssatsilcicoãseuqsodoT

.zolevéatsilcic

(∀ )x(A()x ∧ ))x(B sezolevoãssodotesatsilcicoãssodoT

(∃ )x(A[)x ∧ (¬ ]))x(BeuqseresesatsilcicoãseuqseresmetsixE

.sezolevoãsoãn

(∃ )x(A[)x → (¬ ]))x(BoãsoãneuqesatsilcicoãseuqseresmetsixE

sezolev

seõçisoporP

([.1 ∀ )x(C()x → ))x(B ∧ (∀ )x(B()x → ]))x(A → ([ ∀ )x(C()x → ]))x(A

Page 125: Livro - Introdução a Lógica para Ciências da Computação

125

Exercício 1. Traduza em símbolos, para isso, em cada bloco desentenças, simbolize os predicados, as constantes e as variáveis, e depoisrescreva a sentença toda utilizando estes símbolos.1. Todos são felizes.2. Algumas pessoas felizes.3. Nenhuma pessoa é infeliz.4. João não é feliz.5. Carlos e Carolina são felizes.

Exercício 2. Idem.1. Alguns animais são carnívoros.2. Alguns animais não são carnívoros.3. Todos os animais são carnívoros.4. Nem todos os animais são carnívoros.5. Nenhum animal é carnívoro.6. Simba é um animal carnívoro.

Exercício 3. Idem.1. Não existem insetos que voem.2. Nem todos os insetos voam.3. Todas as moscas voam.4. Algumas moscas não voam.5. Não existem moscas que voam.6. Não existem moscas que não voam.7. Nenhuma barata voa.8. Nem toda barata não voa.

Exercício 4. Idem.1. Romeu ama Julieta.2. Édipo ama Jocasta.3. Todos amam Maria.4. Maria não ama ninguém5. Romeu ama Maria e Romeu não ama Julieta.6. Todos amam Romeu mas ele não ama ninguém.7. Jane ama Tarzan que também ama Jane.

Exercício 5. Idem.1. Ana é irmã de José.2. Maria é irmã de Ana.3. Pedro é pai de Ana.4. Pedro é pai de Maria e de José.5. Ana é irmã de José e Maria é irmã de Ana então Maria é irmã de José.

Page 126: Livro - Introdução a Lógica para Ciências da Computação

126

6. Tarso é irmão de Pedro e tio de Ana.7. Tarso é irmão de Pedro então é tio de José.8. Tarso é tio de Maria.9. Tarso é tio de Maria e Ana que são irmãs de José logo Tarso é tio de

José.

Exercício 6. Idem.1. Todo animal é mortal.2. Todo mamífero é um animal.3. Alguns mamíferos não são animais.4. Todo homem é mamífero.5. Alguns homens não são mamíferos.6. Nenhum homem é animal7. Nem todo homem é mortal8. Alguns homens são mortais.9. Existem homens que são mamíferos mas não são animais e portanto

são mortais.10. Não existem homens imortais.11. Nenhum animal é imortal.

2.2 - Um sistema formal para a lógica de predicados

Apresentamos neste parágrafo um estudo formal da lógica depredicados. Vamos iniciar estabelecendo o vocabulário da linguagem depredicados. Esse vocabulário consiste dos seguintes grupos de símbolos:

1.Variáveis individuais: x1, x

2 , ....

2. Constantes individuais: c1, c

2 , ...

3. Símbolos funcionais: fnm , n, m = 1, 2, 3, ...

4. Símbolos predicativos: pnm , n, m = 1, 2, 3, ...

5. Conectivos lógicos: ¬ , ∧ , ∨ , →.6. Quantificadores: , ∃ .7. Símbolos auxiliares: parêntesis e vírgula.

Estabelecido o vocabulário da linguagem, passamos ao estudo dagramática.

Definição 1. (Expressão) Uma expressão é qualquer seqüência finitade símbolos do vocabulário.

Exemplo 1. São exemplos de expressões :1. x

1∀(,

2. ∃ x1 p1

2(x

1)

3. → x1(

Page 127: Livro - Introdução a Lógica para Ciências da Computação

127

Intuitivamente, percebemos que as expressões 1 e 3 do exemploanterior são destituídas de sentido, ao passo que a expressão 2 “quer dizeralgo”.

Desse modo, podemos perceber a necessidade de caracterizar asexpressões que serão de utilidade para o discurso lógico.

Definição 2. (Termo) O conceito de termo é definido de modorecursivo, como se segue:1. Variáveis individuais são termos.2. Constantes individuais são termos.3. Se t

1, ... ,t

m são termos e fn

m é um símbolo funcional m-ário, então fn

m(t

1, ... ,

tm) é um termo.

4. Cláusula Maximal : Uma dada expressão constitui um termo se, e somentese, foi obtida a partir de uma das regras (1 a 3) acima.

Exemplo 2. São exemplos de termos:1. c

1

2. f12(x

1)

3. x101

Definição 3 (Fórmula). O conceito de fórmula é definido de modorecursivo, como se segue1. Se t

1 , ... , t

m são termos e pn

m é um símbolo predicativo m-ário, então

pnm(t

1 , ... , t

m) é uma fórmula (dita atômica).

2. Se A e B são fórmulas quaisquer, então (¬A), (A ∧ B), (A ∨ B) e (A → B)são fórmulas.3. Se x é uma variável individual e A é uma fórmula, então, ( x)A e (∃x)Asão fórmulas.4. Cláusula Maximal : Uma dada expressão constitui uma fórmula, se, esomente se, foi obtida a partir de uma das regras (1 a 3) acima.

Dada uma expressão A, a expressão (¬A) chama-se a negação de A.Se A e B são expressões, (A ∧ B) chama-se a conjunção de A e B;(A ∨ B) chama-se a disjunção de A e B;(A →B) chama-se a implicação de B por A;(A ↔ B) chama-se a bi-implicação de A e B;

Dada uma variável individual x e uma fórmula A, a expressão ( x)Achama-se a generalização de A por x e (∃x)A chama-se a instanciação de Apor x.

Exemplo 3. São exemplos de fórmulas:1) [p

11(x

1) ∨ p

23(c

1, x

4 , x

2)] → ( x

1)((∃x

2)p

23(c

1, c

4 , x

2)).

Page 128: Livro - Introdução a Lógica para Ciências da Computação

128

Para ficar um pouco mais didático, enumeramos em coluna:

1. (p11(x

1), (atômica)

2. p23(c

1, x

4 , x

2), (atômica)

3. p23(c

1, c

4 , x

2), (atômica)

4. [p11(x

1) ∨ p

23(c

1, x

4 , x

2)], (1, 3, disjunção)

5. (∃x2)p

23(c

1, c

4 , x

2), (instanciação de 4 por x

2)

6. ( x1)((∃x

2)p

23(c

1, c

4 , x

2)), (generalização de 5 por x

1)

7. [p11(x

1) ∨ p

23(c

1, x

4 , x

2)] → ( x

1)((∃x

2)p

23(c

1, c

4 , x

2)) (4, 6,

implicação).

De modo óbvio possui a seguinte árvore de decomposição:[ p

11(x

1) ∨ p

23(c

1, x

4 , x

2)] → ( x

1)((∃x

2)p

23(c

1, c

4 , x

2))

[p11(x

1) ∨ p

23(c

1, x

4 , x

2)] ( x

1)((∃x

2)p

23(c

1, c

4 , x

2))

p11(x

1) p

23(c

1, x

4 , x

2) (∃x

2)p

23(c

1, c

4 , x

2)

p23(c

1, c

4 , x

2)

Sejam A ≡ p12(x, y), B ≡ p

23(c

1 ,c

4 ,x

2) e C ≡ p

13(x

1 , y

1 , c

1) fórmulas atômicas.

São exemplos de fórmulas:

2) ((A ∨ B) ∧ C).1. A (atômica)2. B (atômica)3. C (atômica)4. (A ∨ B) (1, 2, disjunção)5. ((A ∨ B) ∧ C)) (4, 3, conjunção)

De modo óbvio possui a seguinte árvore de decomposição:((A ∨ B) ∧ C)

(A ∨ B) C

A B

3) p33(x

1 , y

2 , z

1)

Page 129: Livro - Introdução a Lógica para Ciências da Computação

129

Observação: Tendo em vista uma maior facilidade na leitura,doravante utilizaremos uma notação simplificada para as variáveis individuais,símbolos predicativos e símbolos funcionais. Por motivos óbvios, nossaescolha recairá sobre símbolos tradicionalmente utilizados na matemática.Assim , as variáveis individuais serão indicadas por x, y, z, w, ... os símbolospredicativos, por p, q, r, ... e os símbolos funcionais, por f, g, h, ...

Definição 4 (Subfórmula). Seja A uma fórmula.1. Se A é uma fórmula atômica p(t

1, ... , t

n), então p(t

1 ,... , t

n) é uma

subfórmula de A.2. Se A é do tipo ¬B, então B é uma subfórmula de A.3. Se A é do tipo B ∨ C, então B e C são subfórmulas de A.4. Se A é do tipo B ∧ C, então B e C são subfórmulas de A.5. Se A é do tipo B → C, então B e C são subfórmulas de A.6. Se A é do tipo xB, então B é subfórmula de A.7. Se A é do tipo ∃xB, então B é subfórmula de A.8. Se B é subfórmula de A e C é subfórmula de B, então C é subfórmula deA.9. As únicas subfórmulas de A são definidas pelas regras (1 a 8) acima,além da própria fórmula A.

Exemplo 4. Na fórmula x∃y(¬p(x) → z(q(z) → ¬p(z))) temos asseguintes sub-fórmulas:1. x∃y(¬p(x) → z(q(z) → ¬p(z)))2. ∃y(¬p(x) → z(q(z) → ¬p(z)))3. (¬p(x) → z(q(z) → ¬p(z)))4. ¬p(x)5. p(x)6. z(q(z) → ¬p(z))7. (q(z) → ¬p(z))8. q(z)9. ¬p(z)10. p(z).

Definição 5 (Escopo de quantificadores). Se x é uma variávelindividual e A é uma fórmula, definimos o escopo do quantificador x, nafórmula xA, como sendo a fórmula A. Analogamente, o escopo doquantificador ∃x, na fórmula ∃xA, é a fórmula A.

Exemplo 5. São exemplos de escopos :1. (p(x) → q(x)) é o escopo de x, na fórmula x(p(x) → q(x))2. q(x) é o escopo de ∃x, na fórmula ¬p(x) → ∃y q(x)

Definição 6 (Variável livre e ligada). Dizemos que a ocorrência de

Page 130: Livro - Introdução a Lógica para Ciências da Computação

130

uma variável individual x é livre em uma fórmula A, se essa ocorrência de xnão se dá no escopo de um quantificador ( x ou ∃x) em uma subfórmula deA (do tipo xB ou ∃xB). Caso contrário, dizemos que a ocorrência dessavariável x é ligada.

Exemplo 6. São exemplos de ocorrências de variáveis livres e ligadas:1. Na fórmula x(p(x) → q(y)), x ocorre ligada e y ocorre livre.2. Na fórmula q(x) → ∃yp(y) ∧ zq(y), x ocorre livre, a primeira ocorrência dey é ligada e a segunda ocorrência de y é livre.3. Na fórmula ¬p(x) → ∃xq(x), a primeira ocorrência de x é livre e a segundaé ligada.

Definição 7 (Termo livre para uma variável). Dizemos que um termot é livre para a variável x em uma fórmula A, se nenhuma ocorrência livre de xestá no escopo de um quantificador ( y ou ∃y), onde y é uma variável queocorre em t.

Exemplo 7. Sejam t1 o termo x, t

2 o termo y , t

3 o termo f(x, y, z) e

as fórmulasA : z(p(z) → q(x)) → ∃xr(w),B : p(x) → ∃x(r(x) ∧ q(z)) eC : y(p(y) ∨ q(y)).

Neste caso, t2 é livre para x em A , pois ao substituirmos t

2 nas

ocorrências livres de x na fórmula A, a variável y não se torna ligada. Mas t3

não é livre para w em A, pois ao substituir as ocorrências livres de w nafórmula A, pelo termo t

3, a variável x, presente no termo t

3 , se torna ligada.

Observamos também que o termo t1 é livre para y em C, pois y não

possui ocorrências livres em C.

Notação: Seja A uma fórmula, x uma variável e t um termo livre parax em A. Denotaremos por A

x [t] , a fórmula obtida a partir de A, pela

substituição da variável x por t .

2.3 - Estrutura dedutiva

A, B e C são fórmulas, x é uma variável, A(x) é uma fórmula, t é umtermo que é livre para x em A(x) e A(t) é a fórmula obtida a partir de A(x),substituindo-se as ocorrências livres de x por t.

(→1) [A → (B → A)]

(→2) [ A → (B → C)] → [(A → B) → (A → C)]

(∧1) [(A ∧ B) → A]

(∧2) [(A ∧ B) → B]

(∧3) A → [B → (A ∧ B)]

(∨1) [A → (A ∨ B)]

Page 131: Livro - Introdução a Lógica para Ciências da Computação

131

(∨2) [B → (A ∨ B)]

(∨3) (A → C) → [(B → C) → [(A ∨ B) → C]]

(¬1) (A → B) → [[A → (¬B)] → (¬A)]

(¬2) [(¬(¬A)) → A]

(MP) (Modus Ponens)(∃

1) A

x [t]→∃xA

( 2) xA→A

x [t]

E, agora, apresentamos as Regras de Inferência.

Seja A uma fórmula, x uma variável, t um termo livre para x em A eC uma fórmula que não possui ocorrências livres de x.

R1

A,(A→B)

B

R2

(C→A) C→( Ax) A)

R3

(A→C ) ((∃x) A→C)

Regras derivadas.

As seguintes regras são sumamente importantes e úteis:Seja A uma fórmula.R

4De ( x)A podemos derivar (¬(∃x)(¬A)).De (¬(∃x)(¬A)) podemos derivar ( x)A.

R5

De ( x)(¬A) podemos derivar (¬(∃x)A).De (¬(∃x)A) podemos derivar ( x)(¬A).

R6

De ( y)( x)A podemos derivar ( x)( y)A.

R7

De (∃x)A podemos derivar (¬( x)(¬A)).De (¬( x)(¬A)) podemos derivar (∃x)A.

R8

De (∃x)(¬A) podemos derivar (¬( x)A).De (¬( x)A) podemos derivar (∃x)(¬A).

R9

De (∃y)(∃x)A podemos derivar (∃x)(∃y)A.

Page 132: Livro - Introdução a Lógica para Ciências da Computação

132

R10

De (∃y)( x)A podemos derivar ( x)(∃y)A.

Sejam A e B fórmulas.

R11

De ( x)(A ∧ B) podemos derivar [( x)A ∧ ( x)B].De [( x)A ∧ ( x)B] podemos derivar ( x)(A ∧ B).

R12

De (∃x)(A ∨ B) podemos derivar [(∃x)A ∨ (∃x)B].De [(∃x)A ∨ (∃x)B] podemos derivar (∃x)(A ∨ B).

R13

De ( x)(A → B) podemos derivar [( x)A → ( x)B].

R14

De (∃x)(A ∧ B) podemos derivar [(∃x)A ∧ (∃x)B].

R15

De [( x)A ∨ ( x)B] podemos derivar ( x)(A ∨ B).

Se A e B são fórmulas e x não é livre em A. Temos:

R16

De ( x)(A ∨ B) podemos derivar (A ∨ ( x)B).De (A ∨ ( x)B) podemos derivar [( x)A ∨ ( x)B).

R17

De (∃x)(A ∨ B) podemos derivar (A ∨ (∃x)B).De (A ∨ (∃x)B) podemos derivar (∃x)(A ∨ B).

R18

De ( x)(A ∧ B) podemos derivar (A ∧ ( x)B).De (A ∧ ( x)B) podemos derivar ( x)(A ∧ B).

R19

De (∃x)(A ∧ B) podemos derivar (A ∧ (∃x)B).De (A ∧ (∃x)B) podemos derivar (∃x)(A ∧ B).

R20

De ( x)(A → B) podemos derivar (A → ( x)B).De (A → ( x)B) podemos derivar ( x)(A → B).

R21

De (∃x)(A → B) podemos derivar (A → (∃x)B).De (A → (∃x)B) podemos derivar (∃x)(A → B).

R20

De ( x)(A → B) podemos derivar (∃x)(A → B).De (∃x)(A → B) podemos derivar ( x)(A → B).

R21

De (∃x)(A → B) podemos derivar ( x)(A → B).De (( x)(A → B) podemos derivar (∃x)(A → B).

Definição 8 (Premissa, Conseqüência Imediata). Nas regras de

Page 133: Livro - Introdução a Lógica para Ciências da Computação

133

inferência, acima, as fórmulas acima da linha são chamadas de premissaspara aplicação das regras de inferência, e a fórmula abaixo da linha é chamadade conseqüência imediata das premissas.

Definição 9 (Dedução). Seja Γ um conjunto de fórmulas onde nãocompareçam axiomas, e A uma fórmula. Uma dedução de A a partir de Γ é umaseqüência de fórmulas A

1, A

2, ... A

n-1, A

n, tal que para todo i, 1 ≤ i ≤ n

a ) ou Ai ∈ Γ,

b ) ou Ai é um axioma,

c ) ou Ai é conseqüência imediata da fórmulas anteriores da seqüência

pela aplicação de uma das regras R1, R

2 ou R

3.

d ) An = A

Notação. Usamos a notação Γ Ã A para indicar que existe umadedução de A a partir de um conjunto Γ de fórmulas.

Observação.Γ é chamada de conjunto de premissas para a dedução.Assim, se uma fórmula B pertence à Γ, diremos que B é uma premissa se Bcomparecer a uma dada dedução.

Definição 10 (Teorema). Se A é uma dedução a partir de um conjuntovazio de fórmulas (Γ = ∅) diremos que A é um teorema da lógica de predicados,e indicaremos este fato por à A.

Definição 11 (Dependência). Seja (A1, A

2, ... , A

n) uma dedução de A

a partir de Γ, e P uma premissa (isto é, P ∈ Γ). Diremos que Ai (para todo i, 1

≤ i ≤ n ) depende de P se:a ) A

i é a própria fórmula P,

b ) Ai é conseqüência imediata de fórmulas que dependem de P,

c ) Ai depende de P, somente como é requerido pelas cláusulas

anteriores.

Definição 12 (Variação). Seja (A1, A

2, ... , A

n) uma dedução de A a

partir de Γ, dizemos que uma variável x é variada em uma certa deduçãopara uma premissa P ∈ Γ se x ocorre livre em P, e alguma das fórmulas A

i

(para todo i, 1 ≤ i ≤ n ) na dada dedução é conseqüência imediata de fórmulasque dependem de P pela aplicação da regra R.

2 ou da regra R.

3 com respeito

a variável x.Notação: Se em uma dada dedução de A a partir de Γ uma variável

x foi variada indicaremos esse fato por ΓÃxA.Para apresentar uma dedução na prática adotaremos um

procedimento que consiste na construção de uma tabela com quatrocolunas, assim indicada.

Numeração da linha da dedução Passos da dedução Justificativa de

Page 134: Livro - Introdução a Lógica para Ciências da Computação

134

cada passo da dedução Dependência em relação a uma premissa

Esperamos por meio de exemplos elucidar este procedimento.

Exemplo 1. Sejam x e y variáveis, A e C fórmulas tais que:a ) y é livre para x em A,b ) y não ocorre livre em A,c ) C é uma fórmula que não possui ocorrências livres de y.

nessas condições, seja Γ = C→Ax[y] o conjunto das premissas ( neste

exemplo, Γ é um conjunto unitário) então afirmamos que ΓÃy C→ Ax[y].

Vamos agora exibir uma dedução de C→ Ax[y] a partir de Γ, vale a

pena observarmos que a dedução não é única. Respeitando a formação databela

Numeração da linha da dedução Passos da dedução Justificativa decada passo da dedução Dependência em relação a uma premissa

temos a seguinte dedução:

Dedução Justificativa Dependência1 Γ yA

x[y] → A Ax.

12. —-

2 Γ yAx[y] → ↔xA 1, R

2. —-

3 Γ C → Ax[y] Premissa 3

4 Γ y C → yAx[y] 3, R

2. 3

5 Γ (↔yAx[y] → xA) →

[C → ( yAx[y] → xA)] Ax.

1. —-

6 Γ Ã C→( yAx[y]→ xA) 2, 5, R

1. —-

7 Γ Ã (C→ yAx[y])→([C→

( yAx[y]→ xA)]→(C→ xA) Ax.

2. —-

8 Γ Ã y [C → ( yAx[y] →

xA)] → (C → xA) 4, 7, R1. 3

9 Γ y C → xA. 6, 8, R1. 3

Vamos à algumas explicações:

1 Γ yAx[y] → A Ax.

12.

nesta linha apenas aplicamos o axioma 12.

2 Γ yAx[y] → xA 1, R

2.

nesta linha a justificativa diz que aplicamos a regra R2 na fórmula da linha

1 para obtermos a fórmula da linha 2.

3 Γ C → Ax[y] Premissa 3

Page 135: Livro - Introdução a Lógica para Ciências da Computação

135

O passo da dedução contida na linha 3 nada mais é do que a premis-sa, na coluna de “Dependência” encontramos “3”, isto pois, se a fórmulada linha 3 for uma premissa repetiremos o número da linha em que esta seencontra.

4 Γ y C → yAx[y] 3, R

2. 3

No passo da dedução desta linha a ocorrência da variável y em Ãy

indica que a regra R2 foi aplicada em uma fórmula (C→A

x[y]) que depende

de uma premissa (no caso dela própria) e com respeito a variável y (porcausa da quantificação “ y”)

A justificativa desta linha diz que aplicamos a regra R2 na fórmula

da linha 3 para obter a fórmula da linha 4. Novamente na coluna de“Dependência” encontramos “3” isto pois a fórmula da linha 4 éconseqüência imediata da uma fórmula que depende da premissa.

5 Γ ( yAx[y] → xA) → [C → ( yA

x[y] → xA)] Ax.

1.

Apenas aplicamos o axioma um.

6 Γ C → yAx[y] → xA) 2, 5, R

1.

Modus Ponens

7 Γ (C → yAx[y]) → ([C → ( yA

x[y] → xA)] → (C → xA)

Ax.2.

Aplicação do axioma dois.

8 Γ y [C → ( yAx[y] → xA)] → (C → xA) 4, 7, R

1.

3

Neste passo da dedução a variável y continua ocorrendo em à y

pois a dedução da linha 8 dependeu da dedução feita na linha 4, onde avariável y foi vaiada.

9 Γ y C → xA. 6, 8, R1. 3

Observação. Observe que na linha 2 quando aplicamos a regra R2

com respeito a variável x não aparece x , assim como foi feito para a variávely, isto porque a fórmula na qual foi aplicada a regra R

2 não dependia de

nenhuma premissa; já que era um axioma.

Uma outra questão é a seguinte. A regra 1 necessita de duas premissas.Na linha 8, aplicamos a regra 1, tendo como premissas as fórmulas da linha 4e da linha 7. Como vemos na quarta coluna, a fórmula da linha 4, de fato,depende de uma premissa mas a fórmula da linha 7 não depende de premissaalguma. No entanto, vemos que a conseqüência imediata da aplicação dessa

Page 136: Livro - Introdução a Lógica para Ciências da Computação

136

regra, a saber, a fórmula da linha 9, manteve a dependência com a premissa.É correto o raciocínio? A resposta é afirmativa.

Passaremos, agora, a um dos mais importantes resultados destecapítulo que certamente facilitará muito o trabalho de deduzir fórmulas apartir de premissas. Trata-se do Teorema da Dedução, que enunciaremossem demonstração.

Teorema 6 (da Dedução): Seja A e B fórmulas e Γ um conjunto defórmulas. Se Γ , A Ã B (isto será uma abreviação para Γ ∪ A B), demaneira que na dedução não haja aplicações da regra R

2 ou R

3 sobre que

dependem da premissa A, com respeito às variáveis livres de A, então Γ A→ B.

Quando for conveniente, poderemos explicitar as fórmulas de Γassim, ao invés de Γ P → R, podemos escrever, P → Q, Q → R P → R

Dedução Justificativa Dependência1 Γ, P P→Q premissa 12 Γ, P P premissa 23 Γ, P Q 2, 5, R

1. 1, 2

4 Γ, P Q→R premissa 45 Γ, P R 2, 5, R

1. 1, 2, 4

6 Γ, P P→R 5, T.D. 1, 4

Façamos duas importantes observações:• neste exemplo, não precisamos nos preocupar com a restrição

quanto à variação da variável, pois na dedução não foi utilizada aregra R

2 nem a regra R

3;

• aplicamos o Teorema da Dedução na linha 5, onde podemos ver quena dedução auxiliar Γ, P R, a dependência das premissas P → Q,P e Q → R, presentes nas linhas 1, 2 e 4. Entretanto, após o uso doTeorema na dedução, Γ P → R, não há mais dependência dapremissa P (dizemos que a premissa P foi descartada na dedução Γ

P → R).

Exemplo 2. Sejam x e y variáveis, A e C fórmulas tais que:a y é livre para x em A;b y não ocorre livre em A;a C não possui ocorrências livres de y.

Mostraremos que à (C → Ax[y]) → (C→A

x[y]), (observe que Γ = ∅)

Page 137: Livro - Introdução a Lógica para Ciências da Computação

137

Dedução Justificativa Dependência1 C → A

x[y] yA

x[y] → A Ax.

12. —-

2 2 C → Ax[y] yA

x[y] → xA 1, R

2. —-

3 (C → Ax[y]) → [ yA

x[y] → xA] 2 , T.D. —-

Aqui aplicamos a regra R2, mas não sobre fórmulas que dependam

da premissa descartada (C→Ax[y])

Como último exemplo, vamos mostrar uma utilização indevida doTeorema da Dedução. Seja A uma fórmula que possua ocorrências livres davariável x e C uma sentença. Estaria correta a seguinte dedução?

Dedução Justificativa Dependência1 C → A C → A Premissa 12 C → A C → xA 1, R

2. 1

3 (C → A) → [C → xA] 2 , T.D. —-

Na linha 2 não poderíamos ter usado o teorema da dedução(T.D.), pois houve uma aplicação da regra R

2 em uma fórmula que dependia

de (C → A).

O Teorema da Dedução é o principal exemplo das chamadas regrasderivadas. As regras derivadas são deduções auxiliares já demonstradasque podem ser utilizadas em uma outra dedução com o objetivo de simplificá-la. Em uma linguagem computacional, poderíamos dizer que as regrasderivadas funcionam como sub-rotinas dentro de um programa. A seguir,veremos algumas regras derivadas básicas:

Mais Regras Derivadas

Apresentaremos ao todo doze regras, para as regras D1, D

2, D

3, ...,

D9,, vale o seguinte: A, B, C, são fórmulas e Γ um conjunto de fórmulas.

D1) A, A → B B.

Dedução Justificativa Dependência1 A, A → B A premissa 12 A, A → B A→B premissa 23 A, A → B B 1, 2, R

1. 1, 2

D2) A, B Ã A ∧ B.

Dedução Justificativa Dependência1 A, B A → (B → (A ∧ B)) Ax.

3. —-

2 A, B A premissa 23 A, B B → (A ∧ B) 1, 2, R

1. 2

4 A, B B premissa 4

Page 138: Livro - Introdução a Lógica para Ciências da Computação

138

5 A, B A ∧ B 3, 4, R1. 2, 4

D3) A ∧ B A.

Dedução Justificativa Dependência1 A ∧ B (A ∧ B) → A Ax.

4. —-

2 A ∧ B A ∧ B premissa 23 A ∧ B A 1, 2, R

1. 2

D4) A ∧ B B.

Dedução Justificativa Dependência1 A ∧ B (A ∧ B) → B Ax.

5. —-

2 A ∧ B A ∧ B premissa 23 A ∧ B B 1, 2, R

1. 2

D5) A A ∨ B.

Dedução Justificativa Dependência1 A A → A ∨ B Ax.

6. —-

2 A A premissa 23 A A ∨ B. 1, 2, R

1. 2

D6) A Ã B ∨ A.

Análogo ao D5).

D7) ¬¬A à A.

Dedução Justificativa Dependência1 ¬¬A à ¬¬A → A Ax.

10. —-

2 ¬¬A à ¬¬A premissa 23 ¬¬A à A. 1, 2, R

1. 2

D8) Se Γ, A Ã C e Γ, B Ã C então Γ , A ∨ B Ã C.

Dedução Justificativa Dependência1 Γ, A C hipótese —-2 Γ A → C 1, T.D. —-3 Γ (A → C) → [(B → C) →

(A ∨ B → C)] Ax.8. —-

4 Γ (B → C) → (A ∨ B → C) 2, 3, R1. —-

5 Γ, B C hipótese —-6 Γ B → C 5, T.D. —-7 Γ A ∨ B →C 4, 6, R

1. —-

8 Γ, A ∨ B A ∨ B → C 7 —-

Page 139: Livro - Introdução a Lógica para Ciências da Computação

139

9 Γ, A ∨ B A ∨ B premissa 910 Γ, A ∨ B C 8, 9, R

1. 9

D9) Se Γ, A Ã B e Γ, A Ã ¬B então Γ Ã ¬A.

Dedução Justificativa Dependência1 Γ, A B hipótese —-2 Γ A → B 1, T.D. —-3 Γ (A → B) → [(A → ¬B) → ¬A] Ax.

9. —-

4 Γ (A → ¬B) → ¬A 2, 3, R1. —-

5 Γ, A ¬B hipótese —-6 Γ A → ¬B 5, T.D. —-7 Γ ¬A 4, 6, R

1. —-

Para as regras D10

, D11

e D12

, x é uma variável, P é uma fórmula e t éum termo livre para x em P, e seja D um axioma qualquer que não possuaocorrências livres de x.

D10

) P x xP.

Dedução Justificativa Dependência1 P P → (D → P) Ax.

1. —-

2 P P premissa 23 P D → P. 1, 2, R

1. 2

4 P x D → xP 3, R2. 2

5 P D um axioma —-6 P x xP. 4, 5, R

1. 2

D11

) xP x Px[k].

Dedução Justificativa Dependência1 xP xP → P

x[k]. Ax.

12. —-

2 xP xP premissa 23 xP xP

x[t]. 1, 2, R

1. 2

D12

) Px[t] ∃xP.

Dedução Justificativa Dependência1 P

x[t] P

x[t].premissa 1

2 Px[t] P

x[t]→∃xP Ax.

11. —-

3 Px[t] ∃xP. 1, 2, R

1. 1

Convidamos o leitor a encontrar as seguintes deduções:

D13

) P→Q x xP→ xQ.

D14

) P→Q x ∃xP→∃xQ.

Page 140: Livro - Introdução a Lógica para Ciências da Computação

140

2.4 - SemânticaAté agora estudamos o que se chama sintaxe da linguagem (de

predicados). Ela é um puro jogo simbólico. Entretanto, toda linguagem serefere a objetos ou estados de coisas. A semântica da linguagem trataprecisamente das interconexões entre a mesma e aquilo a que elase refere. Este por sua vez são certos contrutos conjuntistas que odenominamos estruturas. Tais estruturas podem refletir certos aspectosrelevantes de porções da realidade. Uma esquematização simplificada é comoabaixo:

Logo, interpretar uma linguagem é, em última análise, relacioná-locom uma certa estrutura (conjuntista).

Definição 1. Uma estrutura E para uma linguagem L consiste dosseguintes objetos:1. Um conjunto não-vazio D, denominado o universo de E. Os seus

elementos chamam-se indivíduos de E.2. Para cada símbolo funcional n-ário f, uma operação n-ária f

E de D em D.

3. Para cada símbolo predicativo n-ário p, uma relação n-ária pE sobre D.

4. Para cada constante individual c, um indivíduo cE de D.

Seja E uma estrutura para L. Para cada indivíduo a de E escolhemosuma nova constante, denominada o nome de a. Convenciona-se quediferentes nomes são escolhidos para diferentes indivíduos. A novalinguagem acrescida dos nomes de indivíduos de E chama-se linguagemdiagrama de L e a denotamos por L(E). Usamos i e j como meta-variáveispara nomes.

Uma expressão diz-se livre de variáveis se não contiver variáveisindividuais. Definimos agora um indivíduo E(a) de E para cada termo a livre

Modelos(abstratos)

LinguagemArtificiais

Porção daRealidade

Page 141: Livro - Introdução a Lógica para Ciências da Computação

141

de variáveis de L(E). Se a é um nome, E(a) é o próprio indivíduo do qual a éseu nome. Se a não é um nome, a é da forma f(a

1, ... , a

n) (dado que a é livre de

variáveis), onde f é um símbolo funcional de L. Pomos E(a) = fE(E(a

1), ... ,

E(an)).

Uma fórmula fechada A é uma fórmula que não possui variáveis livres.Isto quer dizer que A possui um só significado.

Definimos o valor-verdade V(A) de uma fórmula A de cada fórmulafechada A de L(E).Se A ≡ a = b, então V(A) = 1 ⇔ E(a) = E(b).Se A ≡ p(a

1, ... , a

n), então V(A) = 1 ⇔ p

E(E(a

1), ... , E(a

n)).3

Se A ≡ (¬B), então V(A) = 1 ⇔ V(B) = 0.Se A ≡ (B ∧ C), então V(A) = 1 ⇔ V(B) = 1 e V(C) = 1.Se A ≡ (B ∨ C), então V(A) = 1 ⇔ V(B) = 1 ou V(C) = 1.Se A ≡ (B → C), então V(A) = 1 ⇔ V(B) = 0 ou V(C) = 1.Se A ≡ ( x)B, então V(A) = 1 ⇔ V(B

x[i]) = 1 para todo i (em L(E)).

Se A ≡ (∃x)B, então V(A) = 1 ⇔ V(Bx[i]) = 1 para algum i (em L(E)).

Definição 2 (Conseqüência semântica). Seja Γ um conjunto defórmulas e A uma fórmula. Diz-se que A é conseqüência semântica de Γ separa toda interpretação E temos que V(A) = 1, sempre que V(B) =1, qualquerque seja B ∈ Γ. Neste caso, simbolizamos por Γ ? A. No caso de Γ = ∅,escreve-se ? A e A chama-se fórmula logicamente válida ou, simplesmente,fórmula válida.

Teorema 1. Se A é uma tautologia, então ? A.

O seguinte teorema mostra que se existe uma dedução de A a partir deΓ, então A é conseqüência semântica de Γ. Tal teorema nos mostra que ocálculo de predicados é correto.

Teorema 2 (da Correção). Se Γ ? A, então Γ ? A.

Exercício 1. Mostre que as seguintes fórmulas são logicamenteválidas.

1. [A → (B → A)]2. [A → (B → C)] → [(A → B) → (A → C)]3. [(A ∧ B) → A]4. [(A ∧ B) → B]5. A → [B → (A ∧ B)]6. [A → (A ∨ B)]

3 pE(E(a

1), ... , E(a

n)) indica que (E(a

1), ... , E(a

n)) ∈ p

E

Page 142: Livro - Introdução a Lógica para Ciências da Computação

142

7. [B → (A ∨ B)]8. (A → C) → [(B → C) → [(A ∨ B) → C]]9. (A → B) → [[A → (¬B)] → (¬A)]10. [(¬(¬A)) → A]11. A

x [t]→∃xA

12. xA→Ax[t]

Passemos á questão da completeza do cálculo de predicados. Estaquestão consiste em analisar se uma fórmula A é conseqüência semântica deΓ, então há uma dedução de A a partir de Γ. A resposta é afirmativa e éconhecida como teorema da completeza do cálculo de predicados.

Definição 3 (Conjunto inconsistente de fórmulas). Um conjunto defórmulas diz-se inconsistente se existir uma fórmula A tal que Γ A e Γ (¬A). Caso contrário, Γ diz-se consistente.

Definição 4 (Conjunto trivial de fórmulas). Um conjunto de fórmulasΓ diz-se trivial Γ A, para qualquer fórmula A. Caso contrário, Γ diz-se não-trivial .

Teorema 3. Um conjunto de fórmulas Γ é trivial se e somente se forinconsistente.

Demonstração. Se Γ for trivial, então Γ é obviamente inconsistente.Se Γ for inconsistente, então existe uma fórmula A tal que Γ A e Γ (¬A).Porém, temos Γ ? A → [(¬A) → B]. Combinando-se os resultados acima,obtemos Γ B. Como B é arbitrário, advém que Γ é trivial.

Definição 5 (Conjunto consistente maximal de fórmulas). Um conjuntode fórmulas Γ diz-se consistente maximal se Γ for consistente e não estivercontido propriamente em nenhum outro conjunto consistente.

Definição 6 (Modelo). Seja E uma estrutura e Γ um conjunto defórmulas. E diz-se um modelo de Γ se V(A) = 1 para toda fórmula A ∈ Γ.

Teorema 4. Γ A se e somente se todo modelo de Γ for modelo deA.

Definição 7 (Satisfação). Diz-se que uma estrutura E satisfaz umconjunto de fórmulas Γ se for modelo do mesmo. E diz-se um modelo de Γ seV(A) = 1, para todo A ∈ Γ. Em particular, E satisfaz um fórmula A se formodelo de A.

Teorema 5 (Compacidade). Um conjunto de fórmulas Γ é consistente

Page 143: Livro - Introdução a Lógica para Ciências da Computação

143

se e somente se qualquer de seus conjuntos finitos for consistente.Demonstração. Se Γ é consistente então é imediato que qualquer de

seus conjuntos finitos é consistente. Se qualquer de seus conjuntos finitosfor consistente, admitamos que Γ seja inconsistente. Logo, existe uma fórmulaA tal que Γ A e Γ (¬A). daí, temos Γ [A ∧ (¬A)], o que utiliza umconjunto finito de fórmulas de Γ. Logo, tal conjunto finito é inconsistente, oque constitui absurdo.

Definição 8 (Conjunto de Henkin). Um conjunto de fórmulas Γ chama-se conjunto de Henkin se para cada instanciação fechada ∃xA tal que Γ∃xA, existe uma constante e tal que Γ ∃xA → A

x[e].4

Teorema 6 (Conjunto maximal). Todo conjunto consistente de fórmulasΓ está contido num conjunto consistente maximal de fórmulas.

Demonstração. Seja Γ um conjunto consistente de fórmulas. Vamosfazer uma restrição: admitimos que o número cardinal do conjunto de fórmulasé enumerável:5 A

0, A

1, ... , A

n, ... Construamos uma seqüência de conjuntos

de fórmulas Γ0, Γ

1, ... , Γ

n, ... assim:

Γ0 = Γ

Γi+1

= para i ≥ 0.Observemos que cada Γ

i é consistente. Também, Γ

⊆ Γ

i, para todo i. Seja Γ*

= . Temos Γ ⊆ Γ*. Afirmamos que Γ* é consistente. Com efeito, se Γ* for

inconsistente, há uma fórmula A tal que temos Γ* [A ∧ (¬A)]. Logo, há umadedução de tal fórmula a partir de Γ* que consiste em um número finito defórmulas. Logo, há seguramente um n tal que Γ

n [A ∧ (¬A)], o que é

absurdo, porquanto Γn é consistente. Finalmente, provemos que Γ* é maximal.

Com efeito, admitamos que exista uma fórmula B ∉ Γ* tal que Γ ∪ B sejaconsistente. A fórmula B é uma das fórmulas da seqüência A

0, A

1, ... , A

n, ...

Seja B = Ak. Como A

k ∉ Γ*, isto significa que Γ

k ∪ A

k é inconsistente e, em

conseqüência, Γ* é inconsistente, o que contraria o que se demonstrouacima.

Definição 9. Seja t um termo livre para a variável x. Diz-se que que t Γ-satisfaz uma fórmula A(x) se Γ A(t).

Teorema 7. Seja Γ um conjunto consistente maximal de fórmulas.Temos:1. Γ A ⇔ A ∈ Γ (em particular, todo axioma A ∈ Γ)2. A ∧ B ∈ Γ ⇔ A ∈ Γ e B ∈ Γ3. A ∨ B ∈ Γ ⇔ A ∈ Γ ou B ∈ Γ

4 Que escrevemos também “Γ for modelo de A”.5 Para cardinais quaisquer, recomendamos a obra [Shoenfield 67].

Page 144: Livro - Introdução a Lógica para Ciências da Computação

144

4. A → B ∈ Γ ⇔ A ∉ Γ ou B ∈ Γ5. Para toda fórmula A, A ∈ Γ ou (¬A) ∈ Γ6. Se A ∈ Γ e (A → B) ∈ Γ, então B ∈ Γ7. xA ∈ Γ ⇔ todo termo t Γ-satisfaz A(x)8. ∃xA ∈ Γ ⇔ algum termo t Γ-satisfaz A(x)

Teorema 8. Todo conjunto de Henkin consistente de fórmulas possuimodelo.

Demonstração. Seja um conjunto consistente. Ele está contido numconjunto consistente maximal Γ. Provemos que Γ possui modelo. Sejam t e stermos livres de variáveis 6 . Pomos t ∼ s se Γ t = s. Pode-se provar que ∼constitui uma relação de eqüivalência sobre o conjunto dos termos livres devariáveis. Denotemos a classe de eqüivalência determinada por t por t* . Omodelo que construiremos possui como universo o conjunto quociente doconjunto dos termos pela relação ∼. Estabeleçamos as correspondências. Acada símbolo predicativo n-ário p associamos a relação p

E definida por

pE(t

1*, ... , t

n*) se e somente se Γ ? p(t

1, ... , t

n)

Pode se verificar que a definição precedente é independente dosrepresentantes escolhidos e, portanto, está bem definida. Além disso, osímbolo de igualdade corresponde á igualdade entre classes de eqüivalência,como é fácil de verificar.

A cada símbolo funcional n-ário f associamos a função fE definida

porfE(t

1*, ... , t

n*) = f(t

1, ... , t

n)*

A cada constante individual c associamos o indivíduo cE definido

porc

E = c*Pode se verificar que as definições precedentes são independentes

dos representantes escolhidos e, portanto, estão bem definidas.

Teorema 9. Seja Γ um conjunto de Henkin. Seja E a estrutura obtidano teorema anterior (denominada estrutura canônica). Seja A uma fórmulafechada. Então E(A) = 1 se e somente se Γ A.

Teorema 10. (Completeza forte). Se Γ A, então Γ A.Demonstração. Suponha-se que Γ A. Se Γ ? A, então Γ ∪ (¬A) é

consistente. Daí Γ ∪ (¬A) possui um modelo E. Em particular, E é modelode Γ, E é modelo de A, o que contraria o fato de E ser modelo de Γ ∪( ¬A), em particular, de (¬A). Logo, Γ ? A.

6 Sobre os conceitos da teoria intuitiva dos conjuntos recomendamos a obra [Abe &

Papavero 92].

Page 145: Livro - Introdução a Lógica para Ciências da Computação

145

Teorema 11. (Completeza fraca). Se A, então A.

Teorema 12. (Consistência). Um conjunto Γ de fórmulas possuimodelo se e somente se Γ for consistente.

Page 146: Livro - Introdução a Lógica para Ciências da Computação
Page 147: Livro - Introdução a Lógica para Ciências da Computação

147

3 ALGUNS ASPECTOS DEPROGRAMAÇÃO EM

LÓGICA E PROLOG

3.1 - IntroduçãoA lógica, desde Aristóteles, sempre esteve ligada ao pensamento

científico. Ela constitui a base para deduzir conseqüências a partir de certaspremissas; para estudar a validade ou a falsidade de sentenças dada a vali-dade ou a falsidade de outras sentenças; para verificar a validade de argu-mentações; e para estabelecer a consistência de um conjunto de sentenças.

Já os computadores surgiram na história há muito pouco tempo, aocompará-los com a lógica. Quase todos os computadores de hoje em dia sãobaseados no modelo (ou máquina) de von Neumann que surgiu na décadade 40. Esta máquina é uma concretização da máquina (ideal) de Alain Turing.A máquina proposta por von Neumann é constituída por um “grande” con-junto de células de memória e uma unidade de processamento com algumascélulas de memória locais chamadas registradores.

Figura 1: Esquema básico da máquina de von Neumann.

A unidade de processamento pode copiar dados armazenados nascélulas de memória para os registradores, realizar operações com esses da-dos nos registradores e transferir os resultados de volta para as células dememória. Um programa para a máquina de von Neumann deverá fornecer

Page 148: Livro - Introdução a Lógica para Ciências da Computação

148

instruções que realizem as operações descritas acima.O desenvolvimento de computadores baseados na máquina de von

Neumann encontrou muitas limitações tecnológicas e de engenharia queforam sendo resolvidas através dos anos. Porém, à medida que os problemasrelativos à construção de computadores eram resolvidos, os problemas rela-tivos a como utilizá-los apareciam. Em outras palavras, os computadoreseram capazes de realizar as instruções fornecidas pelo homem porém o ho-mem ainda não era plenamente apto a programar os computadores para re-solver problemas práticos que surgiam. A única linguagem disponível naépoca era a linguagem específica de cada máquina através da qual o progra-mador fornecia instruções ao “estilo von Neumann”.

A construção de programas escritos em linguagem de máquina eracomplexa e tomava muito tempo. A partir daí, linguagens mais fáceis para acompreensão humana começaram a aparecer: Fortran, Algol e Pascal mastodas elas apresentavam características marcantes da máquina de vonNeumann subjacente. Notamos que apesar dessas linguagens serem maisfáceis para a compreensão do homem, elas ainda eram orientadas à máquina,isto é, o homem contruía programas nessas linguagens pensando em termosde operações do computador.

3.2 - A proposta da programação em lógica

Seria muito interessante se, ao invés de termos linguagens orienta-das à máquina, tivéssemos linguagens “orientadas ao homem”, ou seja,linguagens que não fossem meras abstrações do modelo de von Neumannmas que fossem derivadas de um modelo abstrato que não tivesse relaçãodireta ou dependência com nenhuma máquina.

Felizmente isso foi possível através da lógica. Até o início da déca-da de 70 utilizava-se a lógica apenas como uma ferramenta para projetarcomputadores (mais especificamente para projetar circuitos) e para auxiliarna construção de programas escritos em Algol ou Fortran . A partir do inícioda década de 70, trabalhos de Robert Kowalski propunham a utilização dalógica diretamente como uma linguagem de programação. A essa nova áreada ciência que nascia, deu-se o nome de programação em lógica. Os pro-gramas contruídos utilizando a lógica diretamente como linguagem de pro-gramação receberam o nome de programas lógicos.

Em termos gerais, a proposta da programação em lógica é a seguin-te: um programa lógico é constituído por um conjunto de axiomas e por umconjunto de regras de inferência. De posse desse programa podemos fazer“perguntas” a ele. Essas “perguntas” na verdade são fórmulas as quaisdesejamos saber se podem ser deduzidas (ou não) a partir dos axiomas eregras de inferência contidos no programa lógico. Observando a Figura 2,temos:

1 O conceito de máquina de Turing apóia toda a Teoria da Computabilidade que contémproblemas em aberto que desafiam pesquisadores do mundo todo.2 A citada linguagem específica de cada máquina na verdade é a linguagem do

microprocessador com o qual a máquina (o computador) foi construído.

Page 149: Livro - Introdução a Lógica para Ciências da Computação

149

Figura 2: Funcionamento de um programa lógico.

Em outras palavras, as “perguntas” nada mais são do que fórmulasas quais desejamos saber se são teoremas na teoria formal fornecida peloprograma lógico. Essa teoria formal seria constituída pelos axiomas e regrasde inferência do programa lógico.

Dizemos que as “perguntas”, que na verdade são fórmulas, as quaissubmetemos ao programa lógico constituem a entrada do programa lógico.Dada uma entrada, dizemos que o processo de tentarmos demonstrar essaentrada a partir dos axiomas e regras de inferência do programa lógico é aexecução do programa lógico. Esta noção se identifica com a noção decomputação da máquina de Turing.

Paralelamente aos trabalhos de Robert Kowalski, Alain Colmerauere seus colegas desenvolveram um programa que capturava a idéia do meca-nismo de tentar provar as “perguntas” (fórmulas) a partir de um conjunto deaxiomas e regras de inferência. Esse programa recebeu o nome PROLOG (dofrancês “PROgramation et LOGique”). Mais adiante veremos um pouco so-bre o PROLOG mas antes disso veremos os principais conceitos e ferramen-tas da programação em lógica. Para começar, teremos uma seção totalmentededicada às cláusulas de Horn pois é através delas que poderemos escreveros programas lógicos. Depois, teremos uma seção dedicada a exemplos emais conceitos ligados aos programas lógicos.

4.3 - Cláusula de HornA linguagem que utilizamos para trabalhar com a programação em

lógica é um subconjunto da linguagem do cálculo de predicados vista nocapítulo 3 e recebe o nome de linguagem das cláusulas de Horn. Portanto,trabalharemos com o cálculo de predicados restrito à linguagem das cláusu-las de Horn.

Esquematicamente, temos:

3 Algol e Fortran eram as linguagens mais famosas até essa época.

Page 150: Livro - Introdução a Lógica para Ciências da Computação

150

Figura 3: Cláusulas de Horn.

O objetivo desta seção é estudar as cláusulas de Horn de tal modoque na próxima seção estaremos em condições de utilizá-las para escrever osprimeiros programas lógicos. Para isso, primeiramente destacaremos algu-mas das regras que já utilizamos no cálculo proposicional e de predicadosbem como um pouco do jargão da programação em lógica. Depois, estudare-mos as cláusulas de programa e as cláusulas gol (que são os dois tipos decláusulas de Horn).

3.4 - Considerações preliminares

O objetivo desta sub-seção é fixar parte do jargão da lógica e deprogramação em lógica que utilizaremos daqui em diante.

A toda hora utilizaremos predicados na construção de programaslógicos. Por isso, apesar de termos definido que apenas letras tais como p, qcom ou sem índices denotam predicados, tomaremos a liberdade de utilizar,por exemplo,

casados ( x, y )

para denotar que x é casado com y ao invés de

p6(x,y)

que seria muito menos ilustrativo.

Dizemos que uma fórmula do cálculo do predicados é atômicaquando ela é do tipo

p(t1 ,t

2,...,t

n)

na qual: • p é um predicado n-ário; • t

1 , t

2 , ..., t

n são termos.

Como exemplos de fórmulas atômicas, podemos escrever:

Exemplos: 1. p(x).

Page 151: Livro - Introdução a Lógica para Ciências da Computação

151

2. q2 (x,y).

3. mãe(y,x). 4. q

3 (x,y,z).

Podemos dizer que uma fórmula atômica é uma literal positiva.Portanto, os exemplos dados acima, além de serem exemplos de fórmulasatômicas, também são exemplos de literais positivas.

A negação de uma fórmula atômica é dita literal negativa. Comoexemplos de literais negativas, podemos citar:

Exemplos: 1. ¬q

4 (x,y).

2. ¬tio(y,x). 3. ¬q

5 (x,y,z).

4. ¬avó(x,y).

Em programação em lógica, podemos escrever uma implicação dotipo:

A → B

de maneira inversa, ou seja,B ← A

O motivo disso é simplesmente destacar a conclusão da implicação.Isto ficará mais claro quando estivermos utilizando a regra de resolução queapresentaremos mais adiante. Ainda com respeito às implicações, diremosque B é a cabeça e A é o corpo da implicação. Observemos os seguintesexemplos:

Exemplos: 1. x y ( p(x,y) → q(x,y) ).

Escrita de maneira inversa: x y ( q(x,y) ← p(x,y) ).Cabeça: q(x,y).Corpo: p(x,y).

2. x y z ( ( p2 (x,y,z) ∧ q5

(x,z) ∧ q1 (z) ) → ( q3

(z) ∨ q4 (x) ) ).

Escrita de maneira inversa: ↔x≈y≈z ((q3

(z) ∨ q4

(x))←(p2(x,y,z)∧q5(x,z)∧p1

(z))).Cabeça: q

3 (z) ∨ q

4 (x).

Corpo: p2 (x,y,z) ∧ q5

(x,z) ∧ p1 (z).

3. x y z ( ( namorados (x, y) ∧ namorados (y, z) ) → triângulo (x, y, z )).

Escrita de maneira inversa: x y z ( triângulo (x, y, z ) ← (namorados (x, y) ∧ namorados (y, z))).

Cabeça: triângulo (x, y, z ).Corpo: namorados (x, y) ∧ namorados (y, z).

Page 152: Livro - Introdução a Lógica para Ciências da Computação

152

Observação:Os predicados acima se referem a pessoas e são definidos da

seguinte maneira: • namorados(x,y) ≡ “x e y namoram”; • triângulo (x,y,z) ≡ “x, y, z formam um triângulo amoroso.”.

4. x ( ( perto-da-praia(x) ∧ grande(x) )→ casa-boa(x) ).Escrita de maneira inversa:x (casa-boa(x)←(perto-da-praia(x) ∧

grande(x) )).Cabeça: casa-boa(x).Corpo: perto-da-praia(x) ∧ grande(x).

Observação:Os predicados acima se referem a casas e são definidos da seguinte

maneira: • perto-da-praia(x) ≡ “x é uma casa localizada perto da praia.”; • grande(x) ≡ “x é uma casa grande.”; • casa-boa(x) ≡ “x é uma boa casa para morar.”.

5. x y z ( ( pai(x,y) ∧ irmãos(x,z) )→ tio(z,x) ).Escrita de maneira inversa: x y z (tio(z,x) ← ( pai(x,y) ∧

irmãos(x,z) )).Cabeça: tio(z,x).Corpo: pai(x,y) ∧ irmãos(x,z).

Observação:Os predicados acima se referem a pessoas e são definidos da

seguinte maneira: • pai(x,y) ≡ “x é pai de y.”; • irmãos(x,z) ≡ “x e z são irmãos.”; • tio(z,x) ≡ “z é tio de x”.

No decorrer do texto, utilizaremos, basicamente, duas regras deinferência que vimos no cálculo de predicados de primeira ordem. São elas aregra de modus ponens e a regra de particularização. Além disso, em algunsmomentos, utilizaremos a contrapositiva de uma implicação confome vistano cálculo proposicional e de predicados. Eis aqui alguns exemplos decontrapositivas de implicações:

1. x ( q(x) → p(x) ) cuja contrapositiva é: x ( ¬p(x) → ¬q(x) ).

Escrevendo a cláusula de maneira inversa, teríamos: x ( p(x) ← q(x) ) cuja contrapositiva é: x ( ¬q(x) ← ¬p(x) ).

2. ∃x y z ( ( p4 (x,y,z) ∧ q(x) ) → ( q

4 (x,y) ∨ q

3 (z) ) ) cuja contrapositiva é:

∃x y z ( ¬( q4 (x,y) ∨ q3

(z) ) → ¬( p4(x,y,z) ∧ q(x) ) ).

Escrevendo a cláusula de maneira inversa, teríamos:

Page 153: Livro - Introdução a Lógica para Ciências da Computação

153

∃x y z( (q4 (x,y) ∨ q

3 (z) ) ← ( p

4 (x,y,z) ∧ q(x) ) ) cuja contrapositiva é:

∃x y z ( ¬( p4 (x,y,z) ∧ q(x) ) ← ¬(q

4 (x,y) ∨ q

3 (z) ) ).

3. x y z ( ( pai(x,y) ∧ irmãos(x,z) )→ tio(z,x) ) cuja contrapositiva é : x y z (¬tio(z,x) → ¬ (pai(x,y) ∧ irmãos(x,z) ) ).

Escrevendo a cláusula de maneira inversa, temos: x y z (tio(z,x) ← ( pai(x,y) ∧ irmãos(x,z) ) ) cuja contrapositiva é : x y z (¬ (pai(x,y) ∧ irmãos(x,z) ) ← ¬tio(z,x) ).

3.5 - Cláusula

Uma cláusula é uma fórmula (do cálculo de predicados) do seguintetipo:

x1 , ... , x

k ( L

1 ∨ ... ∨ L

m ) (1)

na qual Li é uma literal positiva ou negativa e x

1 , ..., x

k são as variáveis que

ocorrem em L1∨ ... ∨ L

m.

Exemplos: (Cláusulas) 1. x y z ( p(x) ∨ q(y,z) ∨ ¬p

2 (x,y,z) ).

2. x p5 (x).

3. y z ( ¬p6 (y) ∨ q

3 (z) ).

4. x y ( tio (x) ∨ pai (y) ). 5. x z ( maior(x,z) ∨ menor(x,z) ∨ igual(x,z) ). 6. x ( solteiro(x) ∨ casado(x) ∨ viúvo(x) ∨ divorciado(x) ).

Diremos que a cláusula, tal como escrita em (1) , está no formatooriginal de disjunção. Porém, para escrevermos os programas lógicos, éconveniente escrever (1), na notação clausal. Escrever uma cláusula nanotação clausal é reescrevê-la utilizando-se o conectivo de implicação (“←”).Para entendermos melhor, vamos reescrever a cláusula (1) na notação clausal,explicitando cada passo:

Passo 1 : Separação das literais positivas e negativas: já que temos a leicomutativa e associativa para o conectivo de disjunção, podemos escreverprimeiro as literais negativas seguidas das positivas. Deste modo, podemosreescrever (1) assim:

x1 , ... , x

k ( (¬B

1 ∨ ... ∨ ¬B

s ) ∨ (A

1 ∨ ... ∨ A

r ) ) (2)

na qual ¬B1 , ..., ¬B

s são as literais negativas e A

1 , ..., A

r são as literais

positivas.

Passo 2 : Aplicação das leis de De Morgan: observemos que em (2) temosuma disjunção de literais negativas, a saber, ¬B

1 ∨ ... ∨ ¬B

s. Através das leis

de De Morgan, podemos escrever que:

(¬B1 ∨ ... ∨ ¬B

s ) ↔ ¬( B

1 ∧ ... ∧ B

s ).

Page 154: Livro - Introdução a Lógica para Ciências da Computação

154

Então, podemos escrever (2) da seguinte maneira:

x1 , ... , x

k (¬ ( B

1 ∧ ... ∧ B

s ) ∨ (A

1 ∨ ... ∨ A

r ) ) (3)

Passo 3 : Formato de implicação: Lembremos que:

( A → B ) ↔ ( ¬A ∨ B )

e, portanto, podemos escrever (3) do seguinte modo:

x1 , ... , x

k ( ( B

1 ∧ ... ∧ B

s ) → ( A

1 ∨ ... ∨ A

r ) ) (4 )

Passo 4 : Notação Clausal: Conforme vimos na sub-seção 4.3.1 podemosescrever (4) de maneira inversa:

x1 , ..., x

k ( (A

1 ∨ ... ∨ A

r ) ← ( B

1 ∧ ... ∧ B

s ) ) (5)

Observação: • Todas as variáveis que ocorrem nas literais componentes de (5) estãoquantificadas universalmente : então, se não escrevermos “x

1 ,..., x

2”

não tem problema pois já saberemos que todas as variáveis que ocorrem em(5) já estão quantificadas universalmente; • O corpo de (5) é composta de uma conjunção de literais: então ao invésde escrevermos o conectivo “∧” poderemos escrever uma vírgula (“,”) e nãohaverá perigo de confusão; • A cabeça de (5) é composta de uma disjunção de literais: então ao invésde escrevermos o conectivo “∨” poderemos escrever uma vírgula (“,”) e nãohaverá perigo de confusão.

Com isso em mente, podemos escrever (5) da seguinte maneira:

A1 , ..., A

r ← B

1 , ..., B

s (6)

e dizemos que (6) está escrita na notação clausal.

Dizemos que uma cláusula tem corpo vazio se não possui literaisnegativas no formato original de disjunção. Dizemos que uma cláusula temcabeça vazia se não possui literais positivas no formato original de disjunção.

Vamos fazer alguns exemplos de escrever cláusulas nesta notaçãoatravés dos passos vistos anteriormente?

Exemplos:1. cláusula x y ( p(x) ∨ q(x) ∨ ¬q

2(x,y) ).

Passo 1 : Separação de literais: x y ( ¬q2 (x,y) ∨ (p(x) ∨ q(x)) ).Passo 2 : Aplicação das leis de De Morgan: como só há uma literal negativa,não precisamos aplicar.Passo 3 : Formato de implicação: x y ( q

2 (x,y) → (p(x) ∨ q(x)) ).

Passo 4 : Notação clausal: p(x), q(x) ← q2 (x,y).

Vamos examinar mais um exemplo no qual ocorra mais literaisnegativas para que possamos aplicar as leis de De Morgan.

Page 155: Livro - Introdução a Lógica para Ciências da Computação

155

2. cláusula x y z ( p2 (x,y) ∨ ¬q

1 (x) ∨ p

3 (x,y) ∨ ¬q

3 (z) ).

Passo 1: Separação de literais: x y z ( (¬q1 (x) ∨ ¬q

3 (z)) ∨ (p

2 (x,y) ∨ p

3(x,z)) ).Passo 2: Aplicação das leis de De Morgan: x y z (¬( q

1 (x) ∧ q

3 (z) ) ∨ (p

2(x, y)∨ p

3 (x, z))).

Passo 3: Formato de implicação: x y ( (q1 (x) ∧ q

3 (z)) → (p

2 (x,y) ∨ p

3 (x,z))

).Passo 4: Notação clausal: p

2 (x,y), p

3 (x,z) ← q

1 (x), q

3 (z).

3. cláusula x y z ( ¬pai(y,x) ∨ ¬irmão(y,z) ∨ tio(z,x) ).Passo 1 : Separação de literais: x y z ( (¬pai(y,x) ∨ ¬irmão(y,z)) ∨ tio(z,x)).Passo 2 : Aplicação das leis de De Morgan: x y z ( ¬( pai(y,x) ∧ irmão(y,z)) ∨ tio(z,x)) .Passo 3 : Formato de implicação: x y z ( (pai(y,x) ∧ irmão(y,z)) →tio(z,x)).Passo 4 : Notação clausal: tio(z,x) ← pai(y,x), irmão(y,z).

Observação:A notação clausal é compacta e muito conveniente. A seguir,

estudaremos alguns tipos especiais de cláusulas.

3.6 - Cláusula de Programa

Dizemos que uma cláusula é uma cláusula de programa se:

• Possuir apenas uma literal na cabeça: conseqüentemente, no formatooriginal de disjunção, a cláusula de programa possui apenas uma literalpositiva;

• O corpo pode ou não ser vazio.

O formato de uma cláusula de programa pode ser:

A ← B1 , ... , B

n (corpo não vazio)

ou

A ← (corpo vazio)

Vejamos alguns exemplos de cláusulas de programa:Exemplos:1. p(x)←q(x), r(x);2. r (y)← ;3. gripe(x) ← febre(x),mal-estar(x).4. q(x)←q1 (x,y), q2 (x,z);5. q

3 (z)← ;

6. festa-ruim(x) ← pessoal-chato(x),comida-ruim(x);7. aprovado(x) ← media-maior-sete(x),presença-ok(x);

Page 156: Livro - Introdução a Lógica para Ciências da Computação

156

8. r1 (x,y,z) ←r

2 (x,y),r

3 (y,z),r

4 (z,w);

9. q3 (x,y,z,w) ← .

4.7 - Cláusula de Programa Condicional.

Dizemos que uma cláusula de programa é condicional se:

• O corpo da cláusula tiver pelo menos uma literal: conseqüentemente, noformato original de disjunção, a cláusula de programa condicional contémpelo menos uma literal negativa e • A cabeça da cláusula tiver exatamente uma literal: conseqüentemente,no formato original de disjunção, a cláusula de programa condicional contémexatamente uma literal positiva.

O “jeitão” das cláusulas de programa condicionais é o seguinte:

A ← B1 , ..., B

n.

Podemos interpretá-la do seguinte modo:

“Para toda atribuição de valores às variáveis que ocorrem na cláusula, se B1

, B2, ... , B

n são todas verdadeiras então A é verdadeira.”

Vejamos alguns exemplos de cláusulas de programa condicionais:

Exemplos:1.) Veja os exemplos 1, 3, 4, 6, 7 e 8 da definição 5.3.3;

2.) p2 (x)←p3 (x), q2 (y): Podemos ler esta cláusula do seguinte modo: “Paratoda atribuição de valores às variáveis x e y, se p

3 (x) e q

2 (y) forem ambas

verdadeiras então p2 (x) também o será”;

3. q1 (x)←r

2 (x,y), r

5 (y,z), p

3 (x,y): Podemos ler esta cláusula do seguinte

modo: “Para toda atribuição de valores às variáveis x, y e z, se r 2 (x,y), r 5 (y,z)e p

3 (x,y) forem verdadeiras ao mesmo tempo, q

1 (x) também o será”;

4. p3 (x)←q2 (x,y,z): Podemos ler esta cláusula do seguinte modo: “Para todaa atribuição de valores às variáveis x, y e z, se q

2 (x,y,z) for verdadeira então

p3 (x) também o será.

5. tio(z,x)←pai(y,x),irmão(y,z): Podemos ler esta cláusula do seguinte modo:“Para toda a atribuição de valores às variáveis x, y e z, se pai(y,x) for verdadeiro( “se y for pai de x”) e irmão(y,z) também o for (“se y for irmão de z”) entãotio(z,x) também o será (“z é tio de x”).

Agora vejamos o caso em que as cláusulas tem o corpo vazio poisela recebem uma denominação especial.

Page 157: Livro - Introdução a Lógica para Ciências da Computação

157

4.8 - Cláusula de Programa Incondicional

Dizemos que uma cláusula de programa é incondicional se: • O corpo dela for vazio: conseqüentemente, no formato original dedisjunção, a cláusula de programa incondicional não contém literais negativase • A cabeça dela contiver exatamente uma literal: conseqüentemente, noformato original de disjunção, a cláusula de programa incondicional contémexatamente uma literal positiva.

O “jeitão” das cláusulas de programa incondicionais é o seguinte:

A ← .

Isso, na forma original de disjunção, é o seguinte:

x1 ,..., x

k A (7)

na qual x1 ,..., x

k são as variáveis que ocorrem na literal A. Podemos interpretar

(7) do seguinte modo :

“Para toda atribuição de valores às variáveis da cláusula, A é verdadeira.”

As cláusulas de programa incondicionais são também chamadas decláusulas unidade ou cláusulas com antecedente vazio. Alguns exemplosnos ajudarão a entender melhor a idéia das cláusulas de programaincondicionais.

Observações:1. exemplos 2, 5 e 9 da definição 4.3.3;

2. q2 (x)← e podemos ler esta cláusula do seguinte modo: “Para toda aatribuição de valores à variável x, q

2 (x) é verdadeira”;

3. r 2 (x,y,z)← e podemos ler esta cláusula do seguinte modo: “Para toda aatribuição de valores às variáveis x, y e z, r

2 (x,y,z) é verdadeira”;

4. p7 (x,y,z,w)← e podemos ler esta cláusula do seguinte modo: “Para toda

atribuição de valores às variáveis x, y, z e w, p7 (x,y,z,w) é verdadeira”;

5. p(x,y,z)← e podemos ler esta cláusula do seguinte modo: “Para todaatribuição de valores às variáveis x,y,z, p(x,y,z) é verdadeira”;

6. respira(x)← e podemos ler esta cláusula do seguinte modo: “Para todaatribuição de valores à variável x, respira(x) é verdadeira” ( todo humanorespira! );

Notemos que cláusulas de programa (tanto as condicionais quantoas incondicionais) podem ser encaradas como axiomas. Também notemosque as regras apresentadas na sub-seção 4.3.1 podem ser encaradas comoregras de inferência.

Page 158: Livro - Introdução a Lógica para Ciências da Computação

158

Isso parece com algo que já vimos! Se tivermos axiomas e regras deinferência, podemos falar em teorias formais axiomáticas e podemos deduzir(pelo menos, tentar!) fatos dessa teoria. Dada uma teoria formal axiomática T,formada por axiomas (cláusulas de programa) e por regras de inferência (sub-seção 4.3.1) e dada uma fórmula F, podemos tentar demonstrar F em T.

A seguir, começaremos a ver como podemos tentar demonstrar umadada fórmula F a partir de T tal como descrita acima.

3.9 - Cláusula gol 4

Dizemos que uma cláusula de programa é uma cláusula gol se: • A cabeça é vazia: conseqüentemente, no formato original de disjunção,a cláusula gol não contém literais positivas e • Contiver pelo menos uma literal no corpo: conseqüentemente, no formatooriginal de disjunção, a cláusula gol contém pelo menos uma literal negativa.

Uma cláusula gol, portanto, tem o seguinte formato:

← B1 , B

2 , ..., B

n. (8)

Suponhamos que as variáveis que ocorrem em (8) são y1 , ... , y

r .

Podemos escrever (8) no formato original de disjunção do seguinte modo:

y1 , ..., y

r ( ¬B

1 ∨ ... ∨ ¬B

n ) (9)

Pelas leis de De Morgan, sabemos que:

(¬B1 ∨ ... ∨ ¬B

n ) ↔ ¬( B

1 ∧ ... ∧ B

n ).

e podemos escrever (9) da seguinte maneira:

y1 , ..., y

r ¬ (B

1 ∧ ... ∧ B

n ) (10).

Sabemos que:

( x ¬A ) ↔ (¬ ∃x A) (11)

e, então, podemos escrever (10) da seguinte maneira:

¬ ( ∃y1 , ..., ∃y

r (B

1 ∧ ... ∧ B

n ) ) (12).

Para entendermos melhor o que significa uma cláusula gol, vejamos osseguintes exemplos:Exemplos:1. ← p(x) que é o mesmo que escrever : ¬ ( ∃x p(x) );

2. ← p(x), q(y) que é o mesmo que escrever : ¬ ( ∃x ∃y p(x) ∧ q(y) );

3. ← p1 (x), q

2 (x,y), r

3 (x,y,z) que é o mesmo que escrever: ¬ ( ∃x ∃y ∃z p

1 (x) ∧

q2 (x,y) ∧ r 3 (x,y,z) );

4 do inglês “goal clause” A palavra goal podde ser traduzida também como metaporém preferimos a palavra gol por ser mais “familiar”

Page 159: Livro - Introdução a Lógica para Ciências da Computação

159

4. ← p2 (x,y,z), q

5 (x,y,z,w), r

6 (x) que é o mesmo que escrever: ¬ ( ∃x ∃y ∃z ∃w

p2 (x,y,z) ∧ q

5 (x,y,z,w) ∧ r

6 (x) ).

5. ← q3 (x,y,z) que é o mesmo que escrever: ¬ ( ∃x ∃y ∃z q

3 (x,y,z) );

6. ← gripe(x) que é o mesmo que escrever: ¬∃x gripe(x);

7. ← pai(x,y) que é o mesmo que escrever: ¬(∃x ∃y pai(x,y) ).

Surge, então, a pergunta:

Será que o fato de cláusulas gol serem, no fundo, negações contribui paraalguma coisa???

A resposta é “Sim”. Ainda bem!

Geralmente, quando temos uma teoria formal axiomática T e umafórmula F e desejamos saber se há uma demonstração para F em T, um dosprocedimentos a tomar é admitir como hipótese que ¬F é verdadeira. A partirdaí, utilizando os axiomas e regras de inferência de T, tentamos obter algumafórmula que seja a negação de algum axioma de T. Se conseguirmosdemonstrar uma fórmula que seja a negação de algum axioma de T, isso querdizer que ¬F é falso e, portanto, F pode ser demonstrada em T. A esse tipode demostração damos o nome de demonstração por redução ao absurdo.

3.10 - Cláusula vazia

A cláusula vazia, denotada por, é a cláusula de programa semcorpo e sem cabeça (isso mesmo!). Deve ser interpretada como uma contra-dição. Para entender melhor a cláusula vazia, consideremos o seguinte exem-plo do cálculo proposicional: se tivermos A

1 , A

2 , ..., A

n , B letras do cálculo

proposicional e considerar B a disjunção A1 ∨ ... ∨ A

n, B assumirá valor

verdade 1 se algum dos Ai assumir valor verdade 1. Em outras palavras,

basta que um Ai assuma valor verdade 1 para que B assuma valor verdade 1.

Agora imaginemos que não temos Ai algum para compor a disjunção. Logo,

B sempre assumirá valor verdade 0, ou seja, B será uma contradição.A cláusula vazia ( ) nos ajudará a indicar quando conseguimos refutar

a negação de uma fórmula F numa teoria formal axiomática T fornecida porum programa lógico.

3.11 - Cláusula de Horn

Uma cláusula de Horn é uma cláusula de programa ou é uma cláusulagol.

A seguir, vejamos alguns exemplos de cláusulas de Horn:

Exemplos:1. todos os exemplos da seção 4.3.3;

Page 160: Livro - Introdução a Lógica para Ciências da Computação

160

2. todos os exemplos da seção 4.3.4;

3. todos os exemplos da seção 4.3.5;

4. q(x) ← p(x), p2 (x,y,z), q

4 (x,z,y);

5. avô(z,x) ← pai(z,y), pai(y,x).

O que temos até agora.

Após examinarmos várias definições, chegou o momento de daruma pausa e examinarmos, sucintamente, as ferramentas que temos até agora.

Voltando à Figura 1, podemos detalhar o conjunto das cláusulas deHorn da seguinte maneira:

\

Figura 5: Tipos de cláusulas de Horn.

Na próxima seção, utilizaremos todos estes tipos de cláusulas deHorn para construir alguns programas lógicos, porém antes disso, algunsexercícios.

Exercícios

1) Escreva as seguintes implicações na notação clausal. a) x ( p(x) ∧ s(x) → q(x) ∨ r (x) ). b) x y ( p

1 (x,y) ∧ p

2 (x,y) → p

3 (x,y) ∨ p

4 (x,y) ).

Page 161: Livro - Introdução a Lógica para Ciências da Computação

161

c) x y z ( q1 (x) ∧ q

2 (x,y) → q

3 (x,y,z) ).

d) x y z ( p(x,y,z) ∧ q(x,z,y) → q2 (z,x,y) ∨ p

3 (z,y,x) ).

e) x y ( p(x) ∧ r(y,z) ∧ q(x,y,z) → q(y) ∨ p4 (x,y,z) ).

f) x y z ( ( pai(x,y) ∧ pai(z,x) ) → avô(z,y) ). g) x ( ( febre(x) ∧ manchas-vermelhas(x) ) → sarampo(x) ).

2) Dadas as seguintes cláusulas de Horn, escreva-as na forma original dedisjunção. Considere x, y, z as variáveis envolvidas. a) A ← B, C. b) p(x)←. c) q(x) ← r(x,y), s(x,y,z). d) ← r(x,y,z), s(x,y,z). e) q

2(x,y,z) ←.

f) q1(x,z,y) ← q

2(x,y,z), p

3(x,y).

g) ← p2(x,y).

3) Escreva as seguintes implicações na notação clausal. a) x ( p

1(x) ∧ p

2(x) ∧ p

3(x) → q

1(x) ∨ q

2(x) ).

b) x y ( p6(x) ∧ p

5(x,y) ∧ p

4(x,y) → q

3(y) ∨ q

4(x) ).

c) x y z ( p7(x,y,z) ∧ p

8(x,y) → q

5(z) ∨ q

7(y) ).

d) x y ( r (x,y) ∧ s(x,z) → t(y,z) ). e) x y z ( p(x,y,z) → q(x,y,z) ∨ r(x) ∨ s(y) ). f) x ( ( gripe(x) ∧ toma-chuva(x) ) → pneumonia(x) ). g) x ( ( estrada(x,y) ∧ estrada(y,z) ) → estrada(x,z) ).

4) Dadas as seguintes cláusulas de Horn, escreva-as na forma original dedisjunção. Considere x,y,z e w as variáveis envolvidas. Também diga se sãocláusulas condicionais, incondicionais ou gol. a.) C, D, E ← A, B, F. b.) ← p(x), q(y,z), r(y,x). c.) s(y) ←. d.) p(x) ← q(y), r (x,y,z). e.) q(x,y,z) ← r(x,y), s(x,z). f.) q

2(x,y,z,w), q

4(y,x,w), q

5(x) ← q

6(x,y,w,z).

g.) ← p(x,y,z), q5(y,x,w,z). h.) r

2(x,y,z,w) ←.

i.) ← p4(x,y,w,z), q4(x,y), r4(x).

sobrinho(x,y) ← pai(z,x),irmãos(z,y)

3.12 - Programas lógicos e teorias.Na última seção estudamos as cláusulas de Horn que constituem

uma das ferramentas básicas da programação em lógica. O objetivo principaldesta seção é introduzir programas lógicos bem como métodos para acomputação dos mesmos. Para tanto, inicialmente vamos estudar algunsexemplos de programas lógicos de uma maneira informal. Após essesexemplos, estudaremos alguns outros conceitos relacionados com acomputação de programas lógicos.

Page 162: Livro - Introdução a Lógica para Ciências da Computação

162

4.13 - Programa Lógico

Um programa lógico é um conjunto finito de cláusulas de programa.Vejamos alguns exemplos de programas lógicos:

Exemplos: 1.)- Programa P1.(1) p(a) ←.(2) q(b) ←.(3) q(x) ← p(x).

2.) - Programa P2.

(1) p(a,b)←.(2) q(a,b)←.(3) r(x,y)← p(x,y).(4) s(x,y)← q(y,x).

3.) - Programa P3.

(1) p(a,b) ←.(2) q(b,c) ←.(3) r(x,z) ← p(x,y), q(y,z).

4.) - Programa P4.

(1) p(x) ← p(x).(2) p(a) ←.(3) q(c) ←.(4) p(b) ←.

Daqui em diante, em nome da simplicidade, escreveremos“programa” ao invés de “programa lógico”.

Comentamos na seção anterior que um programa é constituído porum conjunto finito de axiomas sobre os quais podemos aplicar modus ponense particularização (4.3.1) como regras de inferência. Observemos o programaP

1 do exemplo 1 acima.

Podemos dizer que:

• p(a) é axioma; • q(b) é axioma; • Para todo x, se ¬q(x) é verdadeiro então ¬p(x) é verdadeiro.

Estranho! Ao invés de escrever “para todo x, se p(x) é verdadeiroentão q(x) é verdadeiro” conforme a linha (3) de P

1, escrevemos a sua

contrapositiva. Bem, não há nenhum problema pois a cláusula de programaescrita na linha (3) e a sua contrapositiva são logicamente equivalentes. Omotivo por havermos escrito a contrapositiva ficará mais claro adiante.

Page 163: Livro - Introdução a Lógica para Ciências da Computação

163

Juntamente com esses três axiomas, podemos considerar:

• A regra de modus ponens e • A regra de particularização.

Notemos que com esses cinco itens, temos uma teoria formalaxiomática fornecida pelo programa P

1. Então, dado qualquer programa,

podemos construir uma teoria formal axiomática a partir dele de acordo coma Figura 6 e dizemos que essa teoria formal axiomática foi fornecida peloprograma.

Figura 6: Construção de uma teoria formal axiomática a partir de umprograma.

Podemos demonstrar teoremas na teoria T acima. Dada uma fórmulaatômica F de T, por exemplo, podemos tentar demonstrar F em T. A fórmulaF, neste caso, é chamada de consulta ao programa P. Se F for teorema em Tdizemos que F foi deduzida a partir do programa P.

3.13 - Computação de gols

A computação de um gol consiste em tentarmos provar que umaconsulta a um programa é um teorema na teoria axiomática que o programafornece, tal como na Figura 6. No nosso texto, vamos só considerar asconsultas que são fórmulas atômicas ou fórmulas que são conjunções defórmulas atômicas. A seguir, descrevemos um método para computar golsque utiliza a idéia da demonstração por absurdo. Dado um programa P e uma

Page 164: Livro - Introdução a Lógica para Ciências da Computação

164

consulta F, podemos executar os seguintes passos para verificar se F podeser deduzida a partir de P:

Método para computação de gols:

Passo 1 : construção de T: construimos T conforme a Figura 6;

Passo 2 : construção do gol F’: a partir de F, construimos o gol F’ ≡ ← F.Notemos que F’ é a negação de F, conforme a seção 4.3.6;

Passo 3 : obtenção de contradição: assumimos F’como verdadeira em T etentamos demonstrar através dos axiomas e das regras de inferência de Tque a cláusula gol F’ implica em uma contradição em T (computação de golsvia demonstração por absurdo).

Passo 4 : término da computação : se conseguirmos deduzir que F’ implicaem uma contradição, conseguimos provar que F é um teorema em T que é omesmo que dizer que F foi deduzida a partir de P.

Caso contrário, se ao longo da tentativa de deduzir uma contradiçãoobtivermos uma fórmula F’’ tal que: • F’’ não está na lista de axiomas ou • Não podemos aplicar regras de inferência em F’’ e mais outro axiomaentão dizemos que F não é um teorema de T e, portanto, F não pode serdeduzida a partir de P.

Agora ficou mais claro porque chamamos de computação de gols ométodo de tentar provar teoremas na teoria T fornecida pelo programa P:simplesmente porque construímos uma cláusula gol com a consulta F“candidata” à teorema em T. De acordo com o passo 2 do método acima, F’é a negação de F. De acordo com o passo 3, tomaremos F’ como verdadeirae utilizaremos os axiomas e regras de inferência para tentar deduzir umacontradição. Também dizemos que a computação do gol F’ foi bem sucedida.

Sem mais discussões, vamos dar uma olhada nos exemplos da sub-seção anterior. Tínhamos o programa P

1 do exemplo 1 que transcrevemos:

Exemplos: Exemplo 1) - Programa P

1.

p(a) ←. q(b) ←. q(x) ← p(x).

Seguindo o passo 1 do método descrito acima, temos a seguinteteoria fornecida por P

1:

Teoria T1.

Axiomas:(A

1). p(a) ←

(A2). q(b) ←

(A3). ( ¬q(x) → ¬p(x) )

Regras de inferência:

Page 165: Livro - Introdução a Lógica para Ciências da Computação

165

• Modus ponens; • Particularização.

Ok! Agora, consideremos algumas consultas a P1. Para computar gols, vamos

utilizar o método descrito acima.

Consulta 1 - F ≡ p(a).

Passo 1: Teoria T1 já foi construída;

Passo 2: Podemos construir a cláusula gol F’ ≡ ←p(a). Lembremos que acláusula gol F’ é a negação de F e, portanto, F’ ≡ ¬ p(a);

Passo 3: Vamos assumir que F’ é verdadeira em T1. Notemos que F’ por si

mesma já contradiz (A1). Portanto, F’ implica em uma contradição em T

1;

Passo 4: Então F é teorema em T1 que é o mesmo que dizer que F foi deduzida

a partir de P1.

Consulta 2 - F ≡ q(a).

Passo 1: Teoria T1 já foi construída;

Passo 2: Podemos construir a cláusula gol F’ ≡ ← q(a) que significa ¬q(a);

Passo 3: Vamos assumir que F’ é verdadeira em T1. Observamos (A

1) e (A

2) e

não podemos utilizá-los para q(a) (o bom seria que ou (A1) ou (A

2) fosse um

axioma do tipo q(a) e aí já teríamos uma contradição!) porém podemos utilizaro (A

3) com particularização. Temos que:

¬q(a) → ¬ p(a).

Utilizando a regra de modus ponens, temos:

¬q(a). ¬q(a) → ¬ p(a).

¬ p(a).

Notemos que ¬p(a) é o mesmo que ← p(a) que é uma nova cláusulagol. De posse da nova cláusula gol, damos uma nova olhada nos axiomas.Ao observamos os axiomas de T

1, vemos que ¬p(a) contradiz o axioma (A

2).

Portanto, F’ implica em uma contradição em P1;

Passo 4: Então, F é teorema em T1 que é o mesmo que dizer que F foi deduzida

a partir de P1.

Consulta 3 - F ≡ p(b).

Passo 1: Teoria T1 já foi construída;

Passo 2: Podemos construir a cláusula gol F’ ≡ ← p(b) que significa ¬ p(b);

Passo 3: Vamos assumir que F’ é verdadeira em T1. Olhando para os axiomas

(A1) e (A

2) concluimos que não podemos utilizá-los para chegar a lugar

algum com ¬p(b). Olhando para o axioma (A3) concluímos que também não

Page 166: Livro - Introdução a Lógica para Ciências da Computação

166

podemos utilizá-lo;

Passo 4: Concluimos que F não é um teorema de T1 e, portanto, F não pode

ser deduzida de P1.

Vamos dar uma olhada no programa P2 do Exemplo 2 o qual transcreveremos:

Exemplo 2) - Programa P2.

p(a,b)←. q(a,b)←. r(x,y)← p(x,y). s(x,y)← q(y,x).

Construindo a teoria T2 associada ao Programa P

2 (Passo 1), temos:

Teoria T2.

Axiomas:(A

1) p(a,b) ←

(A2) q(a,b) ←

(A3) x y (¬r (x,y) → ¬p(x,y) )

(A4).↔x ↔y (¬s(x,y) → ¬q(y,x) )

Regras de inferência: • Modus ponens; • Particularização.

Consideremos algumas consultas a P2.

Consulta 1 - F ≡ r (a,b).

Passo 1: Teoria T2 já construída;

Passo 2: Considere a cláusula gol F’ ≡ ← r(a,b) que significa ¬ r (a,b);

Passo 3: Vamos assumir que F’ é verdadeira em T2. Ao olharmos para os

axiomas de T2 notemos que o único axioma que podemos utilizar é o (A

3).

Utili zando particularização em (A3) podemos escrever:

¬ r (a,b) → ¬ p(a,b).

Utilizando a regra de modus ponens, temos:

¬r (a,b) ¬r (a,b) → ¬p(a,b)

¬p(a,b).

Notemos que ¬p(a,b) é uma nova cláusula gol pois é o mesmo que← p(a,b). De posse da nova cláusula gol, damos uma nova olhada nosaxiomas. Podemos ver que a nova cláusula gol já contradiz o axioma (A

1).

Portanto F’ implica em uma contradição em T2;

Passo 4: Portanto, F é um teorema em T2 que é o mesmo que dizer que F foi

Page 167: Livro - Introdução a Lógica para Ciências da Computação

167

deduzida a partir de P2.

Consulta 2 - F ≡ s(a,b).

Passo 1: Teoria T2 já foi construída;

Passo 2: Considere a cláusula gol F’ ≡ ← s(a,b) que significa ¬s(a,b);

Passo 3: Vamos assumir que F’ é verdadeira em T2. Olhando para os axiomas

de T2, não podemos utilizar nenhum deles bem como não podemos utilizar

nenhuma regra de inferência;

Passo 4: Portanto, concluímos que F não é teorema de T2 que é o mesmo que

dizer que F não pode ser deduzida a partir de P2.

Exemplo 3) - Examinemos o programa P4 o qual é o seguinte:

Programa P4.

(A1) p(x) ← p(x).

(A2) p(a) ←.

(A3) p(b) ←.

(A4) q(c) ←.

Construindo a teoria T4 associada ao P

4 (através do Passo 1 do

Algoritmo 4.4.2.) , temos: Teoria T

4.

Axiomas:(A

1) p(x) ←p(x)

(A2) p(a)←.

(A3) q(c)←.

(A4) p(b)←.

Regras de inferência: • Modus ponens; • Particularização.

Consideremos algumas consultas a P4:

Consulta 1 - F ≡ p(a).

Passo 1: Teoria T4 já foi construída;

Passo 2: Consideremos a cláusula gol F’≡ ←p(a) que significa ¬p(a);

Passo 3: Vamos assumir que F’ é verdade em T4. Olhando para os axiomas,

podemos afirmar que ¬p(a) e o axioma (A2) já se contradizem em T

4;

Passo 4: Portanto, F é teorema em T4 que é o mesmo que dizer que F pode ser

deduzida a partir de P4.

Vamos supor que, por algum motivo, não “tenhamos visto” o axioma(A

2) mas sim o axioma (A

1): afinal, o axioma (A

1) é o primeiro axioma da lista

de axiomas e podemos utilizá-lo. Aplicando particularização em (A1) para x =

Page 168: Livro - Introdução a Lógica para Ciências da Computação

168

a, temos:

¬p(a) → ¬p(a)

e aplicando modus ponens, temos:

¬p(a).

Ah! Obtivemos ¬p(a) que é exatamente a cláusula gol inicial. Semproblemas! Continuemos a tentar obter uma contradição: devemos dar umanova olhada nos axiomas e verificar se podemos utilizar algum deles.Suponhamos que tenhamos escolhido o axioma (A

1) novamente (nem vimos

o axioma (A2)!). Vamos obter ¬p(a) novamente! Notemos que se insistirmos

em utilizar (A1), não pararemos a computação.

Note que podemos adotar certas estratégias para efetuarmoscomputação de gols. Vejamos que utilizar o primeiro axioma que aparece nalista de axiomas pode ser um mau negócio como vimos no exemplo acima:mesmo existindo o axioma (A

2) que já resolveria o problema, insistimos em

utilizar o axioma (A1) que nos levaria a uma computação sem término.

Em termos gerais, as computações de gol que fizemos aqui seresumiram no seguinte (já supondo a teoria fornecida pelo programa):

1. começávamos com uma cláusula gol (que na verdade era uma negaçãoque assumíamos como verdade);

2. utilizávamos a regra de modus ponens;

3. utilizávamos a regra de particularização que no fundo era a substituiçãoda variável no axioma por uma constante da teoria fornecida pelo programa;

4. obtínhamos uma nova cláusula gol que geralmente era originária daaplicação de modus ponens.

Com isso em mente, podemos dizer que para uma computação (finitaou infinita):

• Temos uma seqüência C0,C

1,... (finita ou infinita) dos axiomas da teoria

(fornecida pelo programa) que são usados. Notemos que um axioma podeaparecer várias vezes nesta seqüência, porém, podem estar particularizadospara constantes distintas;

• Temos uma seqüência G0, G

1,... (finita ou infinita) de cláusulas gol que

vão sendo obtidas a partir das regras de inferência;

• Temos uma seqüência S0, S

1,... (finita ou infinita) de substituições

decorrentes das particularizações.

Na seção 4.6, apresentaremos um novo método de computação degols chamado SLD-derivação. Este método vai nos poupar o trabalho determos que escrever a teoria fornecida pelo programa e poderemos fazerconsultas a ele diretamente. Além disso, é um método mais rápido e prático.No entanto, veremos que ao utilizarmos a SLD-derivação estaremosimplicitamente fazendo o mesmo serviço de demonstrar teoremas em uma

Page 169: Livro - Introdução a Lógica para Ciências da Computação

169

teoria fornecida por um programa. Antes disso, na seção 4.5 (a próximaseção) veremos alguns conceitos bem importantes relacionados à SLD-derivação.

Exemplo 4) Dado o programa abaixo e algumas consultas, escreva a teoria aele associada e faça a computação das cláusulas gol também dadas.

Programa P3.

p(a,b) ←. q(b,c) ←. r(x,z) ← p(x,y), q(y,z).

Construindo a teoria T3 associada a P

3 (passo 1 do Algoritmo 4.4.2. acima),

temos:

Teoria T3

Axiomas:

(A1) p(a,b)←.

(A2) q(b,c)←.

(A3) x y z ( ¬r(x,z) → ¬ ( p(x,y) ∧ q(y,z) ) ).

Regras de inferência:

• modus ponens; • particularização.

Vamos fazer algumas consultas a P3.

Consulta 1 - F ≡ r(a,c).

Passo 1: Teoria T3 já foi construída;

Passo 2: Devemos construir a cláusula gol F’≡←r(a,c). Lembremos, maisuma vez, que podemos escrever a cláusula F’do seguinte modo: F’ ≡ ¬r(a,c);

Passo 3: Vamos assumir que F’ é verdadeira em T3. Olhando para os axiomas,

notamos que podemos utilizar o axioma (A3). Utilizando três vezes, em seguida,

particularização, respectivamente, para x = a, y = b e z = c, temos:

¬r(a,c) → ¬ (p(a,b) ∧ q(b,c).

Note que a premissa da fórmula acima poderia ser vista como uma cláusulagol ← ( p(a,b) ∧ q(b,c) ).

Aplicando as leis de De Morgan, na fórmula acima, temos:

Page 170: Livro - Introdução a Lógica para Ciências da Computação

170

¬r(a,c) → (¬p(a,b) ∨ ¬q(b,c) ).

Utilizando modus ponens, temos:

¬r(a,c). ¬r(a,c) → (¬p(a,b) ∨ ¬q(b,c))

¬p(a,b) ∨ ¬q(b,c).

Notemos que ¬p(a,b) e ¬q(b,c) contradizem os axiomas (A1) e (A

2) de P

3;

Passo 4: Portanto concluímos que F é teorema de T3 que é o mesmo que dizer

que F pode ser deduzida de P3.

Consulta 2 - F ≡ r (c,a).

Passo 1: Teoria T3 já construída;

Passo 2: Considere a cláusula gol F’≡ ←r (c,a) que significa ¬r (c,a);

Passo 3: Vamos assumir que F’ é verdadeira em T3. Olhando para os axiomas

, mais uma vez, utilizaremos o axioma (A3). Utilizando particularização três

vezes respectivamente para x = c, y = b, z = a, temos: ¬r(c,a) → ¬(p(c,b) ∧ q(b,a) ).

Aplicando as leis de De Morgan na fórmula acima , temos:

¬r(c,a) → (¬p(c,b) ∨ ¬q(b,a) ).

Utilizando modus ponens, temos:

¬r(c,a). ¬r(c,a) → (¬p(c,b) ∨ ¬q(b,a) ).

¬p(c,b) ∨ ¬q(b,a).

Notemos agora que de posse de ¬p(c,b) e de ¬q(b,a) nãoencontramos nenhum axioma que possamos utilizar: os axiomas (A

1) e (A

2)

são fórmulas base bem como ¬p(c,b) e ¬q(b,a) e estas últimas duas fórmulasnão contradizem (A

1) e (A

2). Não podemos aplicar o axioma (A

3) pelo mesmo

motivo: pelo fato de ¬p(c,b) e ¬q(b,a) serem fórmulas base. Não obtivemosuma contradição e não podemos aplicar nem axiomas e nem regras deinferência;

Passo 4: Portanto, F não é um teorema de T3 o que é o mesmo que dizer que

F não pode ser deduzida a partir de T3.

Page 171: Livro - Introdução a Lógica para Ciências da Computação

171

Exercícios

5) Cada item abaixo contém um programa lógico. Para cada um deles, escre-va a teoria finita associada e faça a computação das cláusulas gol dadas.

a) Programa:

p(x)←q(x).q(a)←.

Consultas: p(a) , p(b) , p(c) , q(a) , q(b) , q(c).b) Programa:

p(x)←q(x,y),q(y,x).q(x,y)←r(x,y,z),r(x,z,y),q(y,z).r(x,y,z)←s(x,y).r(x,y,z)←r(y,x,z),s(y,z).q(a,a)←.q(b,b)←.s(a,b)←.p(b)←.

Consultas: p(b) , s(b,a) , s(a,b) , r (a,b,c) , q(a,b) , r (b,a,c).

c) Programa:

p(x)←p(y),q(x,y).q(x,y)←q(y,x).q(a,b)←.p(a)←.

Consultas: p(b) , p(a) , q(b,a) , q(a,b).

d) Programa:

p(x)←p(x).p(a)←.q(a)←.

Consultas : p(a) , p(b) , q(a) , q(b).

e) Programa:

p(x,z)←q(x,y,z), q(y,x,z).q(a,b,e)←.q(a,c,e)←.q(b,a,e)←.

Consultas: p(a,c) , p(c,a) , q(a,b,e) , p(a,e) , p(e,a).

Page 172: Livro - Introdução a Lógica para Ciências da Computação

172

f) Aplicação de programas lógicos em diagnóstico médico:

mal-estar(Pedro)←.temp-maior-37(Maria)←.bolhinhas(Maria)←.mal-estar(Maria)←.manchas-verm(Pedro)←.gland-inflam(Pedro)←.febre(x) ← temp-maior-37(x).gripe(x) ← mal-estar(x), febre(x).sarampo(x) ← manchas-verm(x),febre(x).caxumba(x) ← gland-inflam(x),febre(x).catapora(x) ← bolhinhas(x),febre(x),mal-estar(x).

Consultas: catapora(Pedro), catapora(Maria), sarampo(Pedro).

3.14 - Substituições e unificadoresNesta sub-seção, veremos os conceitos de substituição, unificador

e unificador mais geral. Terminaremos esta sub-seção apresentando oalgoritmo da unificação que será uma ferramenta importante para a próximasub-seção na qual veremos as SLD-derivações.

A idéia de utilizar os unificadores é bem intuitiva: quandoestávamos computando alguns gols na seção passada, nós tentávamosachar um axioma tal que, particularizado convenientemente, poderíamosusar modus ponens para esse axioma e para a cláusula gol.

Exemplo:Se tínhamos uma cláusula gol

¬p(a)

e tínhamos um axioma,

x ( ¬p(x) → ¬q(x) )

nós particularizávamos este axioma com a constante a para podermosaplicar modus ponens depois:

¬p(a)

¬p(a) → ¬q(a) (axioma particularizado)

¬q(a).

O que acabamos de fazer pode ser dito da seguinte maneirautilizando unificadores: “a fórmula ¬p(a) foi unificada com a fórmula x (p(x) → q(x) )” .

O intuito do algoritmo de unificação é fornecer um método mecânico

Page 173: Livro - Introdução a Lógica para Ciências da Computação

173

para que alguém possa decidir se duas fórmulas podem ser unificadas ounão. Além disso, se o algoritmo decidir que as duas fórmulas podem serunificadas ele também fornece o unificador mais geral, ou seja, a melhorparticularização possível para o axioma utilizado na computação.

3.15 - Substituição

Uma substituição α ?é um conjunto finito da forma

v1/t

1, v

2/t

2, ..., v

n/t

n

e

• cada vi é uma variável;

• cada ti é um termo distinto de v

i;

• as variáveis v1,...,v

n são distintas.

Cada elemento vi/t

i é chamado de ligação.

α é chamada de :

• substituição base se ti são todos termos que não contêm variáveis;

• substituição pura de variáveis se os termos ti são todos variáveis;

• renomeação se os termos ti são todos variáveis distintas.

• substituição identidade quando o conjunto de ligações for vazio.

Exemplos: (Substituições)1. α

1 = x

1/a , x

2/x

1 .

2. α2 = x

2/b , y/x

2 , z/x

1 .

3. α3 = x/y , z/y .

4. α4 = x/a , y/b , z/x

2 .

5. α5 = x

3/x

2 , x

4/y

2 , x

5/x

3 .

6. α6 = .

4.16 - Instância de uma substituição.

Seja β = v1/t

1, ..., v

n/t

n uma substituição e E uma expressão. Então

a instância de E por βββββ representada por Eβββββ é a expressão obtida de Esubstituindo simultaneamente cada ocorrência da variável v

i em E pelo termo

ti ( i = 1,2,...,n ). Se Eβ não contiver variáveis, então Eβ é chamada de instância

base de E.

Exemplos:1. Considere a expressão E

1 ≡ p(x,y) e a substituição β

1 = x/a , y/b .

Temos que E1β

1 ≡ p(a,b).

2. Considere a expressão E2 ≡ p(x,y) e a substituição β

2 = x/a .

Temos que E2β

2 ≡ p(a,y).

3. Considere a expressão E3 ≡ q

2(x,y,z) ∧ q

5(x,y) e a substituição β

3 = x/y , y/

Page 174: Livro - Introdução a Lógica para Ciências da Computação

174

z , z/x . Temos que E

3 ≡ q

2(y,z,x) ∧ q

5(y,z).

4. Considere a expressão E4 ≡ p(x,y) ∨ p

5(y,z,x,z

2) e a substituição β

4 = x/a ,

y/x , z/b , z2/y.

Temos que E4β

4 ≡ p(a,x) ∨ p

5(x,b,a,y).

3.17 - Composição de substituições

Considere duas substituições α = u1/s

1, ..., um/sm e β=v

1/t

1, ...,

vn/tn. A composição αβ de ααααα e βββββ é a substituição obtida pelo conjunto:

u1/s

1β, ..., u

m/s

mβ, v

1/t

1,..., v

n/t

n

de onde devemos retirar as eventuais ligações do tipo: • u

i/s

iβ para as quais u

i ≡ s

iβ e

• vj/t

j para as quais v

j ∈ u

1, ..., u

m .

Exemplos: (Composição de substituições)1. Considere as substituições α

1 = x/y , z/x

2 e α

2 = y/c , x

2/d .

Temos que α1α

2 = x/yα

2 , z/x

2 , y/c , x

2/d = x/c , z/d , y/c , x

2/d .

2. Considere as substituições α3 = x

2/z

2 , y

2/y

3 , z

3/x

1 e α

4 = y

3/b , z

2/x

2 , y

3/

y2 .

Temos que α2?α

4 = x

2/z

4 , y

2/y

4 , z

3/x

4 , y

3/b , z

2/x

2 , y

3/y

2 =

= x2/x

2 , y

2/b , z

3/x

1 , y

3/b , z

2/x

2 , y

3/y

2 =

= y2/b , z

3/x

1 , y

3/b , z

2/x

2 , y

3/y

2 =

= y2/b , z

3/x

1 , y

3/b , z

2/x

2 .

3. Considere as substituições α5 = x/y e α

6 = y/b , z/d .

Temos que α3 α

6 = x/yα

6 , y/b , z/d = x/b , y/b , z/d .

3.18 - Variante

Consideremos duas expressões E e F. Dizemos que E e F sãovariantes se existirem substituições α e β tais que E ≡ F α e F ≡ Eβ. Tambémdizemos que E é variante de F ou F é variante de E.

Exemplos:1. Considere as expressões E ≡ q(x,y,a) e F ≡ q(z,y

2,a). E e F são variantes pois

dadas as substituições:

α= z/x , y2/y e β?= x/z , y/y

2

temos que F ≡ E α e E ≡ Fβ.

2. Considere as expressões E ≡ p(x1,x

2,x

3,b) e F ≡ p(x

3,x

1,x

2,b). E e F são

variantes pois dadas as substituições:

Page 175: Livro - Introdução a Lógica para Ciências da Computação

175

γ = x3/x

1 , x

1/x

2 , x

2/x

3 e µ = x

1/x

3 , x

2/x

1 , x

3/x

2

temos que F ≡ E γ e E ≡ Fµ .

3. Considere as expressões E ≡ p2(x) ∧ q

3(y) ∨ q

5(x,z) e F ≡ q

3(x) ∧ p

2(z) ∨ q

5(z,y).

E e F são variantes pois dadas as substituições:

α= z/x , x/y , y/z e β = x/z , y/x , z/y

temos que F ≡ E α e E ≡ Fβ .

3.19 - Proposição

Para quaisquer substituições α, β e γ e uma expressão E, temos que: (i ) (αβ)γ ≡ αβγ (ii) (αβ)γ ≡ α(βγ )

Demonstração : Exercício 11.4.

4.20 - Substituição mais geral

Considere duas substituições α e β. Dizemos que ααααα é mais geralque βββββ se existir uma substituição γ tal que αγ = βγ.

Como exemplos de substituições mais gerais utilizaremos osexemplos dados no tópico 4.5.4. Observemos que:

1. α3 é mais geral que α

2 pois existe uma substituição α

4 tal que α

2 α

3=α

3.

2. α5 é mais geral que α

3 pois existe uma substituição α

6 tal que α

3 α

5 =α

5.

3.21 - Unificador

Considere duas expressões A e B e uma substituição α. Se tivermosque Aα ≡ Bα então dizemos que a substituição α é um unificador de A e B.Também podemos dizer que A e B são unificáveis.

Exemplos:Considere as expressões E ≡ q(x,y,a) e F ≡ q(z,y

2,a) e a substituição α = x/d

, y/e , z/d , y2/e . Aplicando a substituição em E e F, temos:

Eα≡ q(d,e,a) e Fα ≡ q(d,e,a).

Notemos que Eα ≡ Fα e, portanto, α é um unificador de E e F.

Considere as expressões E ≡ p(x,y) ∧ q(y,z) e F ≡ p(z,w) ∧ q(x2,x

3) e a

substituição β = x/z , y/w , x2/w , x

3/z . Aplicando a substituição em E e F,

Page 176: Livro - Introdução a Lógica para Ciências da Computação

176

temos:

Eβ ≡ p(x,w) ∧ q(w,z) e F? ≡ p(z,w) ∧ q(w,z).

Notemos que Eβ ≡ Fβ e, portanto, β é um unificador de E e F.

Considere as expressões E ≡ p2(x,y,z) e F ≡ p

2(x

2,y

2,z

2) e a substituição α =

x/x2 , y

2/y , z/z

2. Aplicando a substituição em E e F, temos:

Eα≡ p2(x

2,y,z

2) e Fα ≡ p

2(x

2,y,z

2).

Notemos que Eα ≡ Fα e, portanto, α é um unificador de E e F.

3.22 - Unificador mais geral - u.m.g.

Considere duas expressões A e B e um unificador α de A e B.Dizemos que α é um unificador mais geral (umg) de A e B se for (umasubstituição) mais geral do que qualquer outro unificador de A e B.

Dadas duas expressões E e F, para efetivamente encontrarmos umumg para elas (caso exista) devemos:

• achar uma substituição α tal que Eα ≡ Fα (unificador); • provar que para qualquer outra substituição β, α é mais geral que β(umg).

Dependendo da substituição, o segundo item pode proporcionarum certo trabalho! Para evitar isso, o próximo tópico apresenta o algoritmode unificação : é um algoritmo determina se duas fórmulas atômicas têm umumg ou não. Em caso afirmativo, o algoritmo também fornece o umg das duasfórmulas atômicas. Este algoritmo não unifica expressões em geral uma vezque o que nos importará é unificar apenas pares de fórmulas atômicas.

4.23 - Algoritmo de unificação

Aqui apresentamos um algoritmo que como entrada recebe um parde fórmulas atômicas A e B e diz se A e B têm um unificador mais geral ou não.Se ele disser que A e B têm um umg, o algoritmo também o fornece.

Algoritmo de unificação

Entrada: par de fórmulas atômicas (A , B). Saída: “não”, se não for possível obter um umg para A e B. “sim”, se for possível obter um umg para A e B além do próprio umgde A e B.

Passo 0 : se o símbolo de predicado de A for diferente do símbolo de

Page 177: Livro - Introdução a Lógica para Ciências da Computação

177

predicado de B então emitir “não” como saída e parar o algoritmo indicandouma falha, senão criar uma coleção P constituído por pares de termos (t

i, s

i)

(i = 1,2, ..., n ) tais que C ≡ p(t1, ..., t

n) e D ≡ p(s

1,..., s

n).

Passo 1 : escolher aleatoriamente um par (C , D) de P; Passo 2 : se C ≡ f(s

1,...,s

n) e D ≡ f(t

1,...,t

n) então remover o par (C , D) de P e

incluir os pares (s1,t

1), ..., (s

n, t

n) em P e voltar ao Passo 1, senão

Passo 3 : se C ≡ f(s1,...,s

n) e D ≡ g(t

1,...,t

m) então emitir “não” como saída e

parar algoritmo indicando uma falha, senão Passo 4 : se C ≡ D ≡ x (x variável) ou C ≡ D ≡ c ( c constante ) então removero par (C , D) de P e voltar ao Passo 1, e se C ≡ c (constante) e D ≡ d (constante) então emitir “não!” e parar o algoritmo indicando falha senão Passo 5 : se C ≡ t (t termo que não é variável) e D ≡ x (x variável) removero par (C , D) de P e incluir o par (D , C) em P e voltar ao Passo 1, senão Passo 6 : se C ≡ x (x variável) e D ≡ t ( t termo) e x ≠ t e x ocorre em algumpar de P Além disso, se x ocorrer em t, emitir “não”como saída e parar oalgoritmo indicando uma falha, senão substituir cada x pelo termo t em todosos outros pares de P e voltar ao Passo 1. Passo 7 : se nenhum passo anterior puder ser executado então emitir “sim”e parar o algoritmo. O umg de A e B é dado pela substituição cujas ligaçõessão dadas pelos pares (C , D) que pertencem ao conjunto P.

Exemplos: (Utilização do algoritmo de unificação)

Considere A ≡ p(x,y,z) e B ≡ q(x,y,z).

Passo 0 : o símbolo de predicado de A é diferente do símbolo de predicadode B. Portanto, o algoritmo emite “não!” (pois não é possível unificar A e B)e pára.

2. Considere A ≡ p(x,y,z) e B ≡ q(x2,y

2,z

5).

Passo 0 : Os símbolos de predicado de A e de B são o mesmo. Portanto,criamos a coleção P de pares:

P = (x , x2) ; (y , y

2) ; (z , z

5) .

Passo 1 : Escolhemos o primeiro par (x , x2).

Observemos que:

- não é possível aplicarmos o Passo 2 e o Passo 3 pois não há símbolofuncional; - não é possível aplicarmos o Passo 4 pois não temos que x ≡ x

2;

- não é possível aplicarmos o Passo 5 pois x2 é variável;

- não é possível aplicarmos o Passo 6 pois x não ocorre em outros paresde P.

Page 178: Livro - Introdução a Lógica para Ciências da Computação

178

Notemos que para o par ( x , x2 ) não pudemos fazer muita coisa.

Acontecerá o mesmo ao escolhermos o segundo ou o terceiro par. Notemosque P permanecerá inalterado e aí teremos:

Passo 7 : Portanto, o algoritmo de unificação emite “sim!” e fornece o umgpara A e B é a substituição cujas ligações são x/x

2 , y/y

2 e z/z

5.

3. Considere A ≡ p(x,g(a,y)) e B ≡ p(y,g (a,x)).

Passo 0 : Os símbolos de predicado de A e de B são o mesmo. Portanto,criamos a coleção P de pares:

P = (x,y) ; ( g(a,y) , g(a,x) ) .

Passo 1 : Escolhemos o primeiro par (x,y).

Notemos que:

- não é possível aplicarmos o Passo 2 e o Passo 3 pois não há símbolofuncional; - não é possível aplicarmos o Passo 4 pois não temos que x ≡ y; - não é possível aplicarmos o Passo 5 pois os dois elementos do par sãovariáveis;

Passo 6 : x é variável e y é termo (pois é uma variável). Devemos substituirx por y em outros pares em que x ocorra. Então temos que:

P = (x,y) ; ( g(a,y) , g(a,y) ) .

e voltamos ao Passo 1.

Passo 1 : já que trabalhamos anteriormente com o par (x,y), vamos escolhero par ( g(a,y),g(a,y) ).

Passo 2 : os dois elementos do par têm o mesmo símbolo funcional. PortantoP fica:

P = (x,y) ; (a,a) ; (y;y)

e voltamos ao Passo 1.

Passo 1 : escolhemos o par (a,a);

Notemos que não aplicamos o Passo 2 nem o Passo 3 pois não há símbolofuncional.

Passo 4 : removemos o par (a,a) e P fica:

Page 179: Livro - Introdução a Lógica para Ciências da Computação

179

P = (x,y) ; (y,y)

e voltamos ao Passo 1.

Ao escolhermos o par (y,y) aplicaremos o Passo 4 novamente eacabaremos por eliminar o par (y,y) de P. Portanto P fica:

P = (x,y) .

Assim, não poderemos mais aplicar nenhum dos 6 primeiros passose teremos o

Passo 7 : o algoritmo emite “sim!” e fornece o umg para A e B cuja únicaligação é x/y.

Exercícios Resolvidos.

10.1. Em cada item, dada a substituição ? e a expressão E, obtenha a instânciaE??

a) E ≡ p(x,y,z2 ) e α = x/y .

b) E ≡ q(x,y) ∧ r (x,z) ∧ p(x,y,z) e α = x/a , y/b , z/x .c) E ≡ q

4(x,y,z

2) e α = x/c , y/d .

d) E ≡ p(x,y,z) e α = .

Resolução:a) Temos que substituir todas as ocorrências de da variável x pela variável ye teremos Eα ≡ p(y,y,z

2).

b) Substituindo todas as ocorrências da variável x pela constante a, todas asocorrências da variável y pela constante b e todas as ocorrências da variávelz pela variável y, teremos que: Eα ≡ q(a,b) ∧ r(a,x) ∧ p(a,b,x).c) Substituindo todas as ocorrências da variável x pela constante c e todasas ocorrências da variável y pela constante d termos: Eα ≡ q

4 (c,d,z

2).

d) Aqui temos que α não possui nenhuma ligação pois é a substituiçãoidentidade. Temos que Eα ≡ p(x,y,z).

10.2. Em cada item serão dadas duas substituições α e β. Obtenha acomposição de α e β?a) α = x/a , y/b , z/x e β = a/c;b) α = y/b , z/x e β = y/z;c) α = x/y , z/y e β = x/a , y/b;d) α = x

1/z , y/z e β = z/c .

Resolução:a) Temos que a composição αβ= x/aβ , y/ bβ , z/xβ , a/c β = x/c , y/b , z/c , a/c ;b) Temos que a composição αβ = y/b z/x y/z = y/b , z/x , y/z ;c) Temos que a composição αβ = x/y z/y x/a , y/b = x/b , z/b , y/b ;

Page 180: Livro - Introdução a Lógica para Ciências da Computação

180

d) Temos que a composição αβ = x1 /z y/ z z/c = x

1 /c , y/c , z/c .

10.3. Em cada item será dado um par de expressões (E,F). Decida se E e Fsão variantes. Se forem, exiba também substituições α e β tais que E ≡ Fαe F ≡ Eβ.a) E ≡ p(x,y,z) e F ≡ p(y,z,x).b) E ≡ q(x) e F ≡ p(y).c) E ≡ p(x,y,z) ∧ q(x,y) e F ≡ q(y,x,z) ∧ q(z,x).d) E ≡ q(x

1 ,x

2 ) ∨ p(z,w) e F ≡ q(x,y) ∨ p(w,z).

Resolução:a) Temos que E e F são variantes pois tomando as substituições α = x/y , y/z , z/x e β= y/x , z/y , x/z teremos que Eα ≡ Fβ.b) Temos que E e F não são variantes pois não existem substituições α e βtais que Eα ≡ Fβ. Na verdade, o que realmente impede que E e F sejamvariantes é que o símbolo de predicado de E é diferente do símbolo depredicado de F.

c) Temos que E e F não são variantes pois não existem substituições α e βtais que Eα ≡ Fβ. Além disso, temos o mesmo problema do item anterior.

d) Temos que E e F são variantes pois tomando as substituições α= x1 /x, x

2/y , z/w , w/z e β = x/x

1 , y/x

2 , w/z , z/w teremos que Eα ≡ Fβ.

10.4. Em cada item serão dados: uma substituição α e duas expressões Ae B. Verifique se α é um unificador de A e B.a) A ≡ p(x,y,z) , B ≡ p(y

1 ,w,x

1 ) e α= x/a , y/b , z/w , y

1 /a , w/b , x

1 /w;

b) A ≡ q(x,y,f(w)) , B ≡ p(w,y,f(w)) e α= x/a , y/c ;c) A ≡ tio(x,z) ∧ pai(y,w) , B ≡ tio(w,z

1 ) ∧ pai(y,w) e α= x/b , z/c , y/x , w/y , w/

b , z1 /c , w/y;

Resolução:a) Aα ≡ p(a,b,w) e Bα ≡ p(a,b,w). Portanto, Aα ≡ Bα e α é um unificador paraA e B;b) Aα ≡ q(a,c,f(w)) e Bα ≡ p(w,c,f(w)). Portanto, α não é um unificador de Ae B;c) Aα ≡ tio(b,c) ∧ pai(x,y) e Bα ≡ tio(y,c) ∧ pai(x,y). Portanto, Aα ≡ Bα e α éum unificador para A e B;

Exercícios Propostos.

11.1. Em cada item, dada a substituição α e a expressão E, obtenha ainstância Eα.?

a) E ≡ p(x,y,z) ∧ q(y,x,z,w) ∨ r (x,y) e α = x/c, y/x ;b) E ≡ p1 (x,y,z

2 ) ∧ ¬q4(x,y) ∧ r (x,y,z) e α = z

2 /x , y/c , x/y ;

Page 181: Livro - Introdução a Lógica para Ciências da Computação

181

c) E ≡ tio(x,z) ∧ mãe(x) ∨ casados(x,w) e α= x/z , w/y;d) E ≡ casados(x,y) ∧ irmãos(x,w) e α = y/w , x/a ;e) E ≡ irmão(x,y) ∧ irmão(y,z) → irmão(x,z) e α = x/y , y/z , z/x ;f) E ≡ pai(x,y) ∧ irmão(x,z) → tio(z,y) e α = x/a , y/b , z/c ;g) E ≡ namorados(x,y) ∧ namorados(x,z) → problema(x,y,z) e α= x/y , z/x , y/z ;h) E ≡ p(x,y,z,w) ∧ q(x) e α = ;i) E ≡ q(x) ∧ p(y) e α = w/y , x

2 /a ;

j) E ≡ p(x,y,z) ∧ q(x,y,z) ∨ r(x,y) e α = z/a .

11.2. Em cada item serão dadas duas substituições α e β. Obtenha acomposição de α e β:?a) α = x/a , y/b , z/x, x

1 / z e β = x/c, y/z ;

b) α = y/b , z/x , x/y e β = y/z, x/a;c) α = y/z, x/y , z/y e β = w/c , x/a , y/b;d) α = x

1/z , y/z , z/x , w/x e β = y/a , z/c ;

e) α = x/y , y/z , z/w e β = y/w , x/w , z/y;f) α = x

2 /x , y

2/y

, z

2 /z e β = ;

g) α = x/y , y/w e β = w/x ;h) α = e β = ;i) α = y/w , x/y e β= y/a , z/c ;j) α = w

1 /w , x

2 / x e β= x

1 / z;

11.3. Em cada item será dado um par de expressões (E,F). Decida se E e Fsão variantes. Se forem, exiba também substituições α e β tais que E ≡ Fαe F ≡ Eβ.?a) E ≡ p(x) ∧ q(y) e F ≡ p(z) ∧ q(w);b) E ≡ q(x,y,z) e F ≡ p(x,y,z);c) E ≡ p(x

1 , x

2 , z ) e F ≡ p(y,x,z);

d) E ≡ pai(x,z) ∧ pai(x,y) e F ≡ pai(w,y) ∧ mãe (z,w);e) E ≡ p(x,y,z

3) ∨ q(x,y) e F ≡ p(w

1 ,w

2 ,w

3 ) ∨ q(x

1 ,x

2);

f) E ≡ pai(x,z) ∧ irmãos(x,y) e F ≡ pai(w1 , w

2 ) ∧ irmãos(x,y);

g) E ≡ p(x,y,z1 , z

2 ) e F ≡ q(x,y,z,w);

h) E ≡ filho (x,y) ∧ filho (z,y) e F ≡ filho ( x1 , y

1 ) ∧ filho ( z

1 , y

1 );

i) E ≡ q(y,x) e F ≡ q2 (x,y,z);j) E ≡ mãe(x,y) ∨ pai(z,y) e F ≡ mãe(y,x) ∨ pai(y,z).

11.4 Prove a Proposição 5.11.5 Utilize o algoritmo de unificação para obter um umg para os seguintespares de fórmulas:a) A ≡ p(x,y,z) e B ≡ p(f(y) ,w,x);b) A ≡ q(x,y,z) e B ≡ p(w,y,z);c) A ≡ q(x,g(y),z) e B ≡ q(w,g(y), x

1 );

d) A ≡ p6 (x,y,g(x,y) ) e B ≡ p

6 ( w,z, h(w,z) );

e) A ≡ p4 ( x,y,z,w) e B ≡ p4 (x,y,g(x),w));

f) A ≡ tio(x,y,g(x,y,z) ) e B ≡ tio (w1 , w

2 , g ( w

1 ,w

2 , w));

g) A ≡ colineares(x,g(x,y) ) e B ≡ colineares(w,g(w,x) );

Page 182: Livro - Introdução a Lógica para Ciências da Computação

182

Programas lógicos e a SLD-derivação.Nesta seção, apresentaremos o conceito de SLD-derivação. Con-

forme já havíamos adiantado anteriormente, este conceito vem a ser ummétodo de computação de gols tal que não temos a necessidade de escrevera teoria associada ao programa: as cláusulas gol podem ser diretamentesubmetidas ao programa.

3.24 - Resolvente

Seja P um programa lógico e G ≡ ← A1, ..., An uma cláusula gol.

Suponhamos que C ≡ A ← B1,...,Bk é uma cláusula de programa de P. Se para

algum i, 1≤ i ≤ n, podemos unificar A e Ai através de um umg α entãochamamos:

G’ ≡ ← ( A1,...,Ai-

1, B

1,..., Bk, Ai+

1, ..., An) α

de resolvente de G e C.

Em resumo, o resolvente de G e C vem a ser o produto da unificaçãodo corpo da cláusula gol e da cabeça de uma cláusula de programa de P.Podemos escrever um algoritmo para obter um resolvente de uma cláusula Ge de uma cláusula de programa C.

Algoritmo para obter resolventes.

Entrada : cláusula gol G e cláusula de programa C; Saída : resolvente G’ de G e C.

Passo 1: selecionar Ai em G (Ai está no corpo de G); Passo 2: unificar (se possível) A e Ai através de um umg de A e Ai (podemosutilizar o algoritmo de unificação). Notemos que A é a cabeça de C; Passo 3: se tivermos sucesso no Passo 2 então substituir Ai por B

1,..., Bk

em G obtendo uma cláusula gol G’’; Passo 4: aplicar o umg obtido no Passo 2 em G’’ obtendo uma cláusula G’que é o resolvente de G e C.

Exemplos: 1. Lembra do Programa P

1 da sub-seção 4.4.1?

Programa P1.

p(a) ←. (1) q(b) ←. (2) q(x) ← p(x) . (3)

e consideremos a cláusula gol G ≡ ← q(a).

Se tentarmos unificar q(a) de G com (1) ou (2), obteremos falha, ou

Page 183: Livro - Introdução a Lógica para Ciências da Computação

183

seja, q(a) não pode ser unificada nem com (1) (símbolo de predicado é dife-rente) nem com (2) (símbolo de predicado é o mesmo mas o argumento que éuma constante é diferente). A única cláusula de programa que poderá serunificada com q(a) é a (3).

Podemos considerar que:

• G ≡ ← p(a). e então temos que A1 ≡ p(a);

• C ≡ q(x) ← p(x) , A ≡ q(x) e B1 ≡ p(x);

• α ≡ x/a .

Agora, aplicando o algoritmo acima para G e C, temos que:

Passo 1 : selecionamos A1 ≡ p(a) (só temos ele!);

Passo 2 : podemos unificar A1 e A através de α ≡ x/a que é um umg para

A1 e A;

Passo 3 : já que achamos um umg de A1 e A, podemos substituir A

1 por B

1obtendo a cláusula gol

G’’ ≡ ← p(x);

Passo 4 : aplicar α em G’’ e obtemos:

G’ ≡ ← p(a).

que é o resolvente de G ≡ ←q(a) e de C ≡ q(x) ← p(x).

2. Ainda com base no Programa P1, vamos considerar a cláusula gol G ≡ ←

p(a). Observemos que G pode ser unificada com a cláusula de programa (1)de P

1.

Podemos escrever o seguinte:

• G ≡ ← p(a) e A1 ≡ p(a);

• C ≡ p(a) ←, A ≡ p(a) e B1 ≡ pois o corpo de C é vazio;

• α= que é a substituição identidade.

Agora, aplicando o algoritmo para calcular resolventes, temos:

Passo 1 : selecionamos A1 ≡ p(a) (aliás, só temos ele!);

Passo 2 : podemos unificar A1 e A através de α que é um umg para A

1 e A;

Passo 3 : já que achamos um umg de A1 e A, podemos substituir A

1 por B

1obtendo a cláusula gol G’’ ≡ ;

Passo 4 : aplicar α em G’’ e obtemos:

G’ ≡ .

Page 184: Livro - Introdução a Lógica para Ciências da Computação

184

que é o resolvente de G ≡ ←p(a) e de C ≡ p(a) ← .

Depois de fazer alguns exemplos, podemos notar que obterresolventes é um modo indireto de aplicar particularização e modus ponensnuma teoria fornecida por um programa sem ter que escrever a teoriapropriamente dita. As demonstrações de teoremas na teoria fornecida porum programa são feitas indiretamente pelas sucessivas obtenções deresolventes. Na verdade, a SLD-derivação é justamente isso: ela consiste,grosso modo, de utilizarmos sucessivamente o algoritmo para obtenção deresolventes para computar uma cláusula gol.

3.25 - SLD-derivação

Considere um programa P e uma cláusula gol G. Uma SLD-derivaçãode P ∪∪∪∪∪ G consiste de:

• uma seqüência (finita ou infinita) G=G0, G

1, G

2, ... de cláusulas gol;

• uma seqüência (finita ou infinita) C0, C

1, C

2, ... de cláusulas de programa

de P; • uma seqüência (finita ou infinita) ?? ?

1 ?

2 ??? de substituições

tais que para i = 0, 1, 2, ...

• Gi+1

é um resolvente de Gi e C

i;

• ?i é o umg mencionado no Passo 2 do algoritmo para obter resolvente;

• Ci não tem variáveis em comum com G

i.

Dizemos que uma SLD-derivação é finita quando as seqüências Gi,

Ci e α

i são finitas.Podemos representar através de um esquema gráfico o

processo de SLD-derivação:

Figura 7: Esquema de uma SLD-derivação.

Page 185: Livro - Introdução a Lógica para Ciências da Computação

185

Existe um jeito muito prático e útil de representar o esquemaacima. Ao efetuarmos um SLD-derivação, podemos representar os gols,cláusulas de programa e unificadores mais gerais do seguinte modo:

Figura 8: Modo mais prático de representar uma SLD-derivação.

Esse esquema nos permite escrever de uma maneira compacta eclara a SLD-derivação que estamos construindo. Na primeira linha temosque o gol G

0 (à esquerda) e a cláusula C

0 (à direita) são unificadas através do

umg α1 ?ao lado direito na altura do traço)e obtemos o resolvente G

1 que

escrevemos na linha seguite (à esquerda). Podemos ver que uma SLD-derivação é (como havíamos adiantado na sub-seção anterior) é a aplicaçãosucessiva do algoritmo de obtenção de resolventes. Como na sub-seção 4.4,o nosso objetivo na SLD-derivação é obter a cláusula vazia.

A seguir, veremos a SLD-refutação que, em poucas palavras, é acomputação bem sucedida de um gol.

3.26 - SLD-refutação

Considere um programa P e uma cláusula gol G. Uma SLD-refutaçãode P ∪∪∪∪∪ G é uma SLD-derivação finita de P ∪ G que tem a cláusula vazia como última cláusula gol da derivação. Se Gn = , dizemos que a SLD-refutaçãotem tamanho n. Neste caso dizemos que o gol G foi refutado, ou que acomputação de G foi bem sucedida. Já que uma cláusula gol F’ é a negação deuma outra fórmula F, quando refutamos F’, provamos F, ou seja, provamosque F pode ser deduzida a partir do programa.

Page 186: Livro - Introdução a Lógica para Ciências da Computação

186

Na próxima sub-seção, veremos apenas exemplos de programas ecomputaremos alguns gols a partir deles utilizando o novo conceito de SLD-derivação.

Exemplos.1. O Programa P

1 ataca novamente!

Programa P1.

p(a) ←. (1) q(b) ←. (2) q(x) ← p(x). (3)

Vamos considerar as mesmas cláusulas gol vistas na sub-seção4.4.2:

1. ← p(a). De acordo com o algoritmo de obtenção de resolventes, o objetivoé tentar unificar o corpo da cláusula gol com a cabeça de alguma cláusula deprograma de P

1. Notemos que podemos unificar ← p(a) com p(a)←. Podemos

representar isso através de um esquema parecido com a Figura 8:

← p(a) p(a)← G ≡ G0 ≡ ←p(a) e C ≡

C0 ≡ p(a)←;

umg α = G

1 ≡

Notemos que o resolvente é a cláusula vazia pois a cláusula deprograma tem o corpo vazio. Notemos também que já que obtivemos acláusula vazia como resolvente e então obtivemos uma SLD-refutação parao gol ←p(a) e isto significa que p(a) pode ser deduzida a partir de P

1. A partir

de agora, quando obtivermos uma SLD-refutação para um gol G, diremosapenas que refutamos o gol G.

2. ←q(a). O objetivo é tentarmos unificar o corpo da cláusula gol com acabeça de alguma cláusula de programa de P

1. Podemos unificar q(a) com

q(x) em (3). Então, representamos:

← q(a) q(x) ← p(x) G ≡ G0 ≡ ←q(a) e C ≡

C0 ≡ q(x) ← p(x)

umg α1 = x/a

← p(a). G1 ≡ ← p(a).

E temos uma nova cláusula gol ← p(a). De posse da nova cláusulagol, damos uma nova olhada nas cláusulas de programa de P

1 e tentamos

unificar o corpo da cláusula gol com a cabeça de alguma cláusula de programade P

1. Escolhemos a cláusula de programa (2) e temos:

← q(a) q(x) ← p(x) G ≡ G0 ≡ ←q(a) e C ≡ C

0 ≡

Page 187: Livro - Introdução a Lógica para Ciências da Computação

187

q(x) ← p(x) umg α

1 = x/a

← p(a) p(a)← G1 ≡ ← p(a) e C

1≡ p(a) ← umg α

2 =

G2 ≡

Portanto, refutamos o gol ←q(a).

3. ← p(b). O objetivo é tentar unificar o corpo da cláusula gol com acabeça de alguma cláusula de programa de P

1. Notemos que não há cláusula

com a qual poderíamos unificar ←p(b). Neste caso, como não conseguimosunificar uma cláusula gol com cláusula de programa alguma, não podemosdeduzir p(b) a partir de P

1 e portanto temos apenas que G ≡ G

0 ≡ ←p(b) e não

conseguimos refutar G.

Agora, examinemos o não menos famoso Programa P3:

Programa P3.

p(a,b) ←. (1) q(b,c) ←. (2) r(x,z) ← p(x,y), q(y,z). (3)

Vamos considerar as mesmas cláusulas gol que estudamos em4.4.2.

1. ← r (a,c). O objetivo é tentar unificar o corpo da cláusula com acabeça de alguma cláusula de programa de P

3. Podemos escolher a

cláusula de programa (3) e temos:

← r(a,c) r(x,z) ← p(x,y), q(y,z). G ≡ G0 ≡ ←r(a,c) e C ≡ C

0 ≡

r(x,z)←p(x,y),q(y,z)α

1=x/a, z/c

← p(a,y), q(y,c) G1 ≡ ←p(a,y),q(y,c).

Agora temos que unificar p(a,y) e q(y,c) com duas cláusulas de P3.

Ao olharmos as cláusulas de programa de P3, podemos escrever:

← r(a,c) r(x,z) ← p(x,y), q(y,z). G ≡ G0 ≡ ←r(a,c) e C ≡ C

0 ≡

r(x,z)←p(x,y),q(y,z) α

1=x/a, z/c

← p(a,y), q(y,c) p(a,b) ← G1 ≡ ←p(a,y),q(y,c) C

1 ≡ p(a,b)←.

α2= y/b

← q(y,c) q(b,c) ← G2 ≡ ←q(y,c) C

2 ≡ q(b,c)←.

α3= y/b

G3 ≡.

Page 188: Livro - Introdução a Lógica para Ciências da Computação

188

Portanto, conseguimos refutar o gol ←r (a,c).

2. ← r (c,a). O objetivo é tentar unificar o corpo da cláusula com a cabeça dealguma cláusula de programa de P

3. Podemos escolher a cláusula de programa

(3) e temos:

← r(c,a) r(x,z) ← p(x,y), q(y,z). G ≡ G0 ≡ ←r(c,a) e C ≡ C

0 ≡

r(x,z)←p(x,y),q(y,z)α

1=x/a, z/c

← p(c,y), q(y,a) G1 ≡ ←p(c,y),q(y,a).

Agora temos que unificar p(c,y) e q(y,a) com duas cláusulas de P3.

Ao olharmos as cláusulas de programa de P3, observamos que não podemos

unificar nem p(c,y) nem q(y,a) com alguma cláusula de P3. Portanto, não temos

uma SLD-refutação para ←r (c,a).

Estudo de caso: relações de parentesco.

Para ilustrar toda essa teoria de programação em lógica, vamos verum estudo de caso onde poderemos ver uma das aplicações de programaslógicos. Através de programas lógicos podemos armazenar informações sobreas relações de parentesco de pessoas dentro de uma família. Consideremos,por exemplo, a seguinte árvore de família:

José Maria

Fábio Sônia Ana Eduardo Carlos Mariana

Marcos Fátima Adriano Cláudia Mário Paula

Através dos predicados:

• homem(x) ≡ “x é do sexo masculino” e • mulher(y) ≡ “y é do sexo feminino”

podemos escrever:

homem(José)←. (1)homem(Fábio)←. (2)

Page 189: Livro - Introdução a Lógica para Ciências da Computação

189

(3) homem(Eduardo)←.4) homem(Carlos)←.(5) homem(Marcos)←.(6) homem(Adriano)←.(7) homem(Mário)←.

e

(8) mulher(Maria)←.(9) mulher(Sônia)←.(10) mulher(Ana)←.(11) mulher(Mariana)←.(12) mulher(Fátima)←.(13) mulher(Cláudia)←.(14) mulher(Paula)←.

Podemos definir os predicados:

pai(x,y) ≡ “x é pai de y”mãe(z,w) ≡ “z é mãe de w”

e continuar a escrever:

(15) pai(José,Fábio)←.(16) pai(José,Ana)←.(17) pai(José,Carlos)←.

(18) pai(Fábio,Marcos)←(19) pai(Fábio,Fátima)←.

(20) pai(Eduardo,Adriano)←.(21) pai(Eduardo,Cláudia)←.

22)pai(Carlos,Mário)←.(23)pai(Carlos,Paula)←.

(24)mãe(Maria,Fábio)←.(25)mãe(Maria,Ana)←.(26)mãe(Maria,Carlos)←.

(27) mãe(Sônia,Marcos)←.(28) mãe(Sônia,Fátima)←.

(29) mãe(Ana,Adriano)←(30) mãe(Ana,Cláudia)←.

(31) mãe(Mariana, Mário)←.(32) mãe(Mariana,Paula)←.

Page 190: Livro - Introdução a Lógica para Ciências da Computação

190

Tendo essas relações de parentesco básicas estabelecidas, podemosconstruir outros predicados baseados nesses mais básicos. Um exemploseria o predicado “irmão” . Como poderíamos estabelecer que duas pessoassão irmãs baseados nos predicados que temos até agora? Uma sugestãoseria o seguinte:

irmãos(x,y) ←pai(z,x),pai(z,y). (33)

Para duas pessoas x e y serem irmãs, podemos ter que existe umapessoa z tal que z é pai de x e z é pai de y. Dizer isto é sufuciente? Considereo programa P formado pelas cláusulas de (1) até (33). Façamos a seguinteconsulta: irmãos(Mário,Paula). Temos, então, o seguinte gol:

G ≡ ← irmãos(Mário,Paula)

e a seguinte SLD-derivação:

←irmãos(Mário,Paula) irmãos(x,y)←pai(z,x),pai(z,y) umg = x/Mário , y/Paula ←pai(z,Mário), pai(z,Paula) pai(Carlos,Mário)← umg = z/Carlos

Como a cláusula G foi refutada (obtivemos uma SLD-refutação)então irmãos(Mário,Paula) pode ser deduzida a partir de P. Portanto, Márioe Paula são irmãos.

Poderíamos definir outro predicado como, por exemplo, filho(x,y) ≡“x é filho de y”. Poderíamos definir este predicado do seguinte modo:

filho(x,y) ← pai(y,x),homem(x) (34)

que quer dizer : “para que x seja filho de y, y deve ser o pai de x e além dissox deve ser do sexo masculino”. Também poderíamos ter definido o predicadode filho (x,y) por:

filho(x,y) ← mãe(y,x),homem(x) (35)

que significa : “para que x seja filho de y, y deve ser a mãe de x e além dissox deve ser do sexo masculino”. Notemos que, no nosso caso, como paracada filho x temos uma cláusula do tipo pai(y,x) e uma cláusula do tipomãe(z,x) então qualquer uma das cláusulas (34) ou (35) serve. Vamos manteras duas cláusulas. Ao colocarmos todas as possibilidades de definição deum predicado, vamos obter informações de árvores de família que podemnão estar tão completas como no nosso exemplo.

Vamos considerar a cláusula gol G ≡ ←filho(Marcos,José). Só dando

Page 191: Livro - Introdução a Lógica para Ciências da Computação

191

uma olhada na árvore, já podemos dizer que esta cláusula gol não poderá serrefutada pois Marcos é, na verdade, neto de José. Vejamos:

←filho(Marcos,José) filho(x,y) ←pai(y,x),homem(x) umg = x/Marcos , y/José ←pai(José,Marcos),homem(Marcos) homem(Marcos)←. umg =

←pai(José,Marcos)

E aí não conseguimos mais continuar a SLD-derivação. Notemosque não obtivemos uma SLD-refutação da cláusula gol G. Portanto, nãopodemos deduzir filho (Marcos,José) a partir de P. Portanto, Marcos não éfilho de José.

Qual seria uma maneira de definir o predicado tio(x,y) ≡ “x é tio de y”Uma das maneiras seria:

tio(x,y) ← pai(z,y),irmãos(x,z) (36).

Considerando a cláusula gol G ≡←tio(Carlos,Marcos), vamos tentarobter uma SLD-refutação. Pela árvore de família, sabemos que Carlos é tio deMarcos.

←tio(Carlos, Marcos) tio(x,y) ← pai(z,y),irmãos(x,z) umg = x/Carlos , y/Marcos ←pai(z,Marcos),irmãos(Carlos,z) pai(Fábio,Marcos)←. umg = z/Fábio ←irmãos(Carlos,Fábio) irmãos(x,y)←pai(z,x),pai(z,y) umg = x/Carlos , y/Fábio ←pai(z,Carlos),pai(z,Fábio) pai(José,Carlos)← umg = z/José ←pai(José,Fabio) pai(José,Fábio)← umg =

E portanto o gol G pode ser deduzido a partir de P. Portanto, Carlosé tio de Marcos.

Outro modo de definir o predicado tio(x,y) é o seguinte:

tio(x,y) ← mãe(z,y),irmãos(x,z).

Exercícios Propostos.7.1. Considere o exercício proposto 4.4.4.1. Para cada item do exercício 4.4.4.1.faça a computação das cláusulas gol dadas diretamente a partir do programa.

Page 192: Livro - Introdução a Lógica para Ciências da Computação

192

7.2. Consideremos o problema de relações de parentesco. Cada item é umpredicado a ser definido. Para cada predicado, escreva todas as maneirascomo podemos defini-lo:a) tia(x,y) ≡ “x é tia de y”;b) sobrinho(x,y) ≡ “x é sobrinho de y”;c) sobrinha(x,y) ≡ “x é sobrinha de y”;d) avô(x,y) ≡ “x é avô de y”;e) avó(x,y) ≡ “x é avó de y”;f) neta(x,y) ≡ “x é neto de y”;g) neta(x,y) ≡ “x é neta de y”;h) primos(x,y) ≡ “x e y são primos”.

7.3. Considere a árvore da sua própria família. Primeiramente, faça um esboçodesta árvore: incluindo seus pais, tios, avós, primos, cônjuge, filhos. Escrevacláusulas incondicionais para relações de parentesco do tipo pai, mãe,etc.,como fizemos na sub-seção 4.6.5 e depois inclua as cláusulas condicionaisque definem os predicados vistos até gora.

3.27 - Um pouco de PROLOGO PROLOG, grosso modo, é o “concretizador” dos programas lógicos:

Fornecemos a ele um programa lógico e depois podemos fazer várias consultasao programa. O PROLOG ao ler a consulta, a transforma num gol e tenta umaSLD-refutação deste gol no programa lógico que ele tem dentro de si. Seconseguir, ele responde “sim!” o que significa que ele conseguiu refutar ogol que é o mesmo que dizer que a consulta pode ser deduzida a partir doprograma. Ele também pode responder “não!” quando um determinado golG

i da SLD-derivação não puder mais ser unificado com alguma das cláusulas

do programa. Além de “sim!” e “não!” o PROLOG pode “não respondernada”. Isso mesmo! Parece estranho mas é verdade!

Na sub-seção 7.1 vamos mostrar como escrever programas PROLOG.Por exemplo, não poderemos utilizar a nossa tradicional “←” para escreverprogramas PROLOG. Na sub-seção 7.2 veremos um pouco mais o queestávamos comentando no parágrafo anterior: a estratégia ingênua derefutação do PROLOG.

4.28 - A notação do PROLOG

A única diferença entre um programa lógico e um programa PROLOGé a notação. Vamos escrever o Programa P

1 da sub-seção 4.4.1 na notação de

PROLOG. Programa P

1 (notação de programa lógico).

p(a) ←.

Page 193: Livro - Introdução a Lógica para Ciências da Computação

193

q(b) ←. q(x) ← p(x).

Escrevendo P1 na notação de PROLOG, temos:

Programa P1 (notação de PROLOG).

p(a). q(b). q(X) :- p(X).

Observações: • constantes são representadas por letras minúsculas e as variáveis, porletras maiúsculas; • todas as cláusulas de programa são finalizadas com “.” (ponto final); • cláusulas de programa incondicionais não necessitam de “←←←←←” no final.Apenas devemos escrever a(s) fórmula(s) seguidas do ponto final; • o conectivo de implicação “←” das cláusulas de programa condicionaisé representado por “:-” (dois pontos seguidos de um hífen).

As consultas são representadas por ?-p(a) (por exemplo) ao invésde ←←←←←p(a).

Escrevendo o Programa P3 da sub-seção 4.4.1 na notação de

PROLOG, temos:

p(a,b). q(b,c). r(X,Z) :- p(X,Y),q(Y,Z).

E o Programa P4, fica:

p(X) :- p(X). p(a). q(c). p(b).

Conforme vimos na seção 4.4, o programa P4 tem uma peculiaridade:

ao considerarmos a consulta ?-p(a) ou seja, tentar refutar o gol ← p(a),tínhamos dois caminhos: já podíamos unificar o gol ←p(a) com a cláusulap(a)← diretamente e aí já obteríamos a cláusula vazia. Alternativamente,poderíamos unificar o gol ←p(a) com a primeira cláusula obtendo o mesmogol ←p(a) e acabaríamos por ter uma computação sem término. Cabe a nósescolher a cláusula de programa que nos leve mais facilmente à cláusulavazia. Tendo isso em mente, não escolheríamos a primeira cláusula para o gol←p(a) porém escolheríamos a segunda cláusula. Esse tipo de raciocínio quefizemos se constituiu numa estratégia, ou seja, fizemos uma espécie de análise

Page 194: Livro - Introdução a Lógica para Ciências da Computação

194

antes de escolher uma cláusula de programa.

Comentamos a estratégia que nós, humanos, adotaríamos para tentarrefutar gols em um programa lógico. Vimos que o PROLOG faz esse serviçopara nós. Será que ele possui a sua própria estratégia??? A resposta está napróxima sub-seção.

3.29 - A estratégia do PROLOG

Suponhamos que temos um programa P e as suas cláusulas deprograma são C

1, C

2, ..., Ck onde Ci é a cláusula de programa de P que está

escrita na i-ésima linha do programa. Dado Ci, dizemos que i é o índice dacláusula Ci. Suponhamos também que temos um gol G que desejamos refutara partir de P. Como já vimos, a idéia e achar um i tal que podemos unificar acabeça de C

i com o corpo de G.

Caso 1. pode ser que tais cláusulas não existam; Caso 2. pode ser que exista apenas uma cláusula e Caso 3. pode ser que existam várias cláusulas de programa de P cujascabeças podem ser unificadas com o corpo de G.

No Caso 1, o PROLOG (assim como nós) diremos que G não podeser refutado e paramos a computação. No Caso 2, suponhamos que a cláusulade programa de P cuja cabeça é unificável com o corpo de G é C

i. O PROLOG

(assim como nós) unificará G e Ci e obterá um resolvente. No Caso 3,

consideremos Q, o conjunto formado por mais de uma cláusula de programade P cuja cabeça é unificável com o corpo de G. Neste caso, nós, humanos,vamos escolher, através de algum julgamento, a melhor cláusula de Q queserá unificada com G. Já o PROLOG sempre escolherá a cláusula de programade Q de índice mínimo.

Este jeito de escolher a cláusula para unificação é muito importante:pode haver uma diferença de resposta entre nós, humanos, e o PROLOG.Lembra do Programa P

4?

Programa P4.

p(X):-p(X). (1) p(a). (2) q(c). (3) p(b). (4)

Se fizermos a consulta ?-p(a), nós, humanos, escolheríamos acláusula (2) para a unificação e já obteríamos a cláusula vazia, refutando ogol ←p(a) correspondente à consulta ?-p(a). Porém, o PROLOG escolherá (1)e obterá novamente o mesmo gol como resolvente, a saber , ←p(a). De possedo novo gol, o PROLOG lerá a lista de axiomas de P

4 e escolherá (1) novamente

Page 195: Livro - Introdução a Lógica para Ciências da Computação

195

para a unificação obtendo, como resolvente, o mesmo gol ←p(a) e assim pordiante. Enquanto que nós, humanos já obtemos uma refutação para o gol←p(a), o PROLOG prosseguirá a SLD-derivação sempre utilizando a cláusula(1) e não parará a computação. Neste caso de computação sem término, oPROLOG não emite resposta alguma.

Este modo através do qual o PROLOG escolhe as cláusulas paraunificação é um tipo de estratégia determinística que, grosso modo, é ummétodo precisamente definido de, no nosso caso, escolha de cláusulas. Já omodo com nós, humanos, escolhemos uma cláusula a ser unificada é um tipode estratégia não-determinística, ou seja, não existe uma regra ou um métodoprecisamente definido para a escolha de cláusulas de programa.

3.30 - Interpretador PROLOG

Para fazer com que o computador faça as SLD-derviações para nós,é necessário ter um interpretador PROLOG. Um interpretador é um programaque é capaz de ler programas lógicos e, ao ser perguntado, consegue fazer aSLD-derivação da cláusula gol que foi perguntada. Um interpretador PROLOGtradicional após ser chamado, exibirá o seguinte “prompt” :

?-

A partir desse “prompt” podemos pedir a ele que leia programaslógicos e uma vez que já temos o programa carregado, podemos fazerconsultas. Por exemplo, suponhamos que já temos o Programa P

1 (aquele

mesmo!) carregado pelo interpretador PROLOG. Podemos fazer as seguintesconsultas:

?- p(a).yes.

?-p(c).no.

Como carregar programas e outros detalhes técnicos são coisasespecíficas de cada interpretador PROLOG e deixamos o estudo destesdetalhes a cargo do leitor.

Estudo de caso: Alice, o Leão e o Unicórnio.

O problema que vamos estudar agora é uma passagem do livro “Aliceno país das maravilhas” de Lewis Carol. Poucas pessoas sabem que LewisCarol era um lógico. Se lermos o livro “Alice no país das maravilhas” maisatentamente perceberemos um certo conteúdo de lógica por trás do texto.

A passagem do texto é a seguinte: Alice entra em uma floresta e perdea noção dos dias da semana. O Leão e o Unicórnio eram duas das criaturas

Page 196: Livro - Introdução a Lógica para Ciências da Computação

196

que habitavam a floresta. Alice os encontra e deseja obter alguma informa-ção sobre o dia da semana. O problema é que o Leão mente em determinadosdias da semana e o mesmo acontece com o Unicórnio. Alice sabe que elesmentem e sabe em que dia cada um mente. Naquela época o Leão mentia àssegundas, terças e quartas e falava a verdade nos outros dias da semana. OUnicórnio mentia às quintas, sextas e sábados e falava a verdade nos outrosdias da semana.

Quando Alice os encontra o Leão diz:

Ontem foi um dos meus dias de mentir!

e o Unicórnio diz:

Ontem foi um dos meus dias de mentir!

A partir dessas informações, Alice descobriu o dia da semana. Qualera?

A idéia é implementar um programa lógico que dadas as informaçõessobre os dias que o Leão e o Unicórnio mentem, o programa determina emque dia Alice, o Leão e o Unicórnio se encontraram. Inicialmente, devemoscriar o predicado ontem cuja a função é fornecer a seqüência dos dias dasemana para o programa. Este predicado tem o seguinte formato:

ontem (x,y) ≡ “x é dia da semana que vem depois do y”.

Isto posto, podemos escrever:

ontem(domingo, sábado) .ontem(segunda, domingo) .ontem(terça, segunda) .ontem(quarta, terça) .ontem(quinta, quarta) .ontem(sexta, quinta) .ontem(sábado, sexta) .

Agora, precisamos criar um predicado que relacione o Leão e oUnicórnio aos dias em que eles mentem. O predicado mentira faz este serviço:

mentira (x, y) ≡ “x mente no dia y”

e temos que x pode ser o Leão ou o Unicórnio. A variável y é um dos dias dasemana. Podemos, de acordo com o que foi fornecido sobre os dias em queos dois mentem, escrever o seguinte:

mentira(leão, segunda).mentira(leão, terça).

Page 197: Livro - Introdução a Lógica para Ciências da Computação

197

mentira(leão, sábado).mentira(leão, domingo).

mentira(unicórnio, segunda).mentira(unicórnio, quarta).mentira(unicórnio, sexta).mentira(unicórnio, domingo).

Temos que o programa completo é:

ontem(domingo, sábado) .ontem(segunda, domingo) .ontem(terça, segunda) .ontem(quarta, terça) .ontem(quinta, quarta) .ontem(sexta, quinta) .ontem(sábado, sexta) .

mentira(leão, segunda).mentira(leão, terça).mentira(leão, sábado).mentira(leão, domingo).

mentira(unicórnio, segunda).mentira(unicórnio, quarta).mentira(unicórnio, sexta).mentira(unicórnio, domingo).

Este programa é suficiente para Alice determinar o dia em que elaconversou com o Leão e o Unicórnio porém devemos fazer as consultascorretamente para obtermos alguma resposta. Quando o Leão (ou o Unicórnio)diz que o dia anterior era um dos dias dele mentir ele pode estar mentindo.Como temos o Leão e o Unicórnio, temos quatro possibilidades: os doispodem estar mentindo no dia em que falam, um mentir, outro não e assim pordiante. Isto posto, podemos fazer as seguintes quatro consultas:

a) ontem(X,Y), mentira(leão,Y), verdade(leão,X) : o leão estámentindo no dia

em que ele conversa com a Alice e diz a verdade no dia anterior. Se aplicarmosa regra de resolução para esta consulta composta de três predicados,obteremos que X = qui e Y = qua.

a) ontem(X,Y), mentira(unic,Y), verdade(unic,X) : mesma situaçãoacima só

que para o unicórnio. Se aplicarmos a regra de resolução, obteremos X =dom e Y = sab;

Page 198: Livro - Introdução a Lógica para Ciências da Computação

198

a) ontem(X,Y), verdade(leão, Y), mentira(leão, X) : quando o leãofalou com

Alice ele disse a verdade sobre o dia anterior. Obtemos X = seg e Y = dom;

a) ontem(X,Y), verdade(unic, Y), mentira(unic, X) : mesma situaçãoacima para

o unicórnio. Obtemos X = qui e Y = qua.

Notemos que nas consultas a) e d) temos que X = qua e Y = qui e o diaem que os três conversaram foi quinta-feira.

3.31 - Assuntos relacionados à programação em lógica

O que fizemos neste capítulo foi apenas dar uma pequena introduçãoà programação em lógica e ao PROLOG. Na verdade, o PROLOG é apenas uminstrumento de concretização da teoria de programação em lógica.

A teoria de programação em lógica constitui a base para a construçãode sistemas especialistas. Estes sistemas especialistas são programasconstruídos para armazenar informações sobre um determinado assunto eser capaz de “responder perguntas” (consultas) sobre esse assunto quandoperguntado. O programa de relações de parentesco é um pequeno exemplode sistema especialista.

A teoria de programação em lógica que apresentamos é a teoria deprogramação em lógica clássica. Existem muitas lógicas não-clássicas, istoé, lógicas cujos valores verdade não são apenas V ou F. Em alguns casostambém temos teorias de programação em lógicas não-clássicas.

Exercícios Propostos.

4.1. Refaça o exercício 4.6.7.2. só que desta vez utililize a notação doPROLOG.

4.2. Refaça o exercício 4.6.7.3. utilizando a notação do PROLOG.

4.3. Refaça o exercício 4.6.7.3. e implemente o programa num interpretadorPROLOG. Para cada consulta, faça primeiro a SLD-derivação no papel edepois submeta a consulta ao interpretador PROLOG.

4.4. Alice encontra o Leão e ele diz:

“Eu menti ontem e mentirei amanhã.” .

Aproveitando a tabela de mentiras já colocada anteriormente, faça umprograma e construa consultas convenientes para Alice poder descobrir emque dia ela encontrou o Leão.

Page 199: Livro - Introdução a Lógica para Ciências da Computação

199

3.5. Desta vez o Unicórnio encontra Alice e diz:

“Eu menti antes de ontem e mentirei depois de amanhã.”.

Aproveitando a tabela de mentiras já colocada anteriormente, faça umprograma e construa consultas convenientes para Alice poder descobrir emque dia ela encontrou o Leão.

Page 200: Livro - Introdução a Lógica para Ciências da Computação
Page 201: Livro - Introdução a Lógica para Ciências da Computação

201

4 CIRCUITOS LÓGICOS DECHAVEAMENTO

Introdução

Neste capítulo abordaremos as aplicações da Lógica em circuitoselétricos e eletrônicos simulados por meio de chaves. A Lógica aplicada emcircuitos elétricos com chaves que impedem ou deixam passar sinais formaos chamados circuitos de chaveamento ou circuitos lógicos. Os circuitos dechaveamento permitem a elaboração de projetos e circuitos Lógicos paraserem utilizados em Sistemas digitais complexos aplicados em vários cam-pos da Engenharia.

Os circuitos de Chaveamento são aqueles representados por meiode chaves que ligam e desligam conforme o estado binário “Verdadeiro ouFalso” da sentença Lógica. Configurações destes circuitos vão formar asPortas Lógicas primitivas que irão representar as equações booleanas comutilização particular a cada situação.

Os circuitos estudados serão limitados àqueles chamadoscombinacionais, isto é, circuitos nos quais a saída depende apenas dosvalores das entradas, portanto não levam em consideração valores prévios(memorizados) utilizados nos circuitos chamados de seqüenciais.

4.1. A Álgebra da Lógica

As operações sobre proposições lógicas podem ser feitas atravésdas chamadas funções de verdade. As funções de verdade são aquelas quetrabalham com valores-verdade das proposições, valores estes ditos: falsoou verdadeiro. O estudo deste tipo de função que determina a veracidadeou a falsidade das proposições é chamado de calculo proposicional ou Lógi-ca Algébrica.

Representações das Funções

Para possibilitar a representação da função verdade por meio decircuitos de chaveamento são utilizados alguns dispositivos dos circuitoselétricos.

Page 202: Livro - Introdução a Lógica para Ciências da Computação

202

Entre estes dispositivos o mais importante é a Chave elétrica dotipo liga-desliga. São estas chaves que vão representar os estados lógicosdas proposições reconhecidas como sinais das entradas (A, B, C, etc..).

Uma chave é um dispositivo ligado à um ponto do circuito elétricoque pode assumir apenas um dos dois estados, aberto ou fechado. No esta-do aberto a chave permite que a corrente elétrica passe através do ponto eno estado fechado a chave impede a passagem da corrente.

Indicaremos uma chave por meio de símbolos correspondentes àsletras A, B, C, etc., onde cada uma das letras simboliza uma sentença.

Considerando uma chave como representante de uma sentença Atemos que: a chave estará fechada quando a sentença A for verdadeira eestará aberta quando sentença A for Falsa. Veja o símbolos na figura a seguironde as chaves A e B representam as proposições A e B, respectivamente.

Quando as chaves (A ou B) estiverem ligadas estarão representan-do estados lógicos Verdadeiros com valores iguais a 1 e quando desligadasrepresentam os estados lógicos Falsos com valores iguais a 0. As chaves Ae B são completamente independentes e podem ser interligadas em diferen-tes configurações representando as diferentes funções verdades.

Outros dispositivos utilizados no apoio das representações são:fontes de tensão contínua E (bateria ou pilha) que vai nos fornecer umadiferença de Potencial ou tensão elétrica proporcionando capacidade parafazer fluir uma corrente elétrica no circuito, Resistor R que permite a limitaçãode corrente evitando curtos-circuitos e lâmpadas L que acesas ou apagadasrepresentarão os estados Lógicos dos sinais de saída.

Os dispositivos que servirão para representar as funções com osmodos de representação estão apresentados nas próximas figuras.

A Fonte de tensão contínua E fornece a voltagem necessária parapossibilitar passagem pelo circuito de uma corrente elétrica I que vai acenderas lâmpadas. Uma corrente elétrica é um fluxo direcionado de elétrons. Oselétrons ao passarem no filamento da lâmpada sofrem resistência à suamovimentação e provocam atrito resultando em aquecimento eincandescência no material. O filamento incandescente produz a luz.

Em um circuito elétrico de chaveamento a lâmpada se acenderá

Chave A

Desligado A=0

Ligada A=1

Page 203: Livro - Introdução a Lógica para Ciências da Computação

203

quando as chaves elétricas estiverem fechadas e interligadas numa configu-ração tal que crie um caminho que permita a passagem da corrente de elétronsaté a lâmpada.

Resistência elétrica é a propriedade que certos materiais possuemde resistir à passagem da corrente elétrica. Por exemplo, o filamento da lâmpadafeito de tungstênio tem maior resistência à passagem dos elétrons do que osfios condutores que são feitos de cobre.

A resistência elétrica é uma grandeza física medida em Ohms (Ω). OResistor é um dispositivo que apresenta esta propriedade, portanto, uma dasua aplicação é ser inserido nos circuitos para limitar a passagem da corrente.

As lâmpadas vão representar os estados lógicos da saída S. O seuestado, acesas = 1 e apagada S= 0 são dependentes exclusivamente dasconfigurações das chaves que estão representando nos circuitos dechaveamento as funções verdade.

Na notação adotada, quando a lâmpada estiver acesa é porqueexiste uma corrente elétrica I fluindo pelo seu filamento. Portanto a lâmpadaacesa representa o estado lógico Verdadeiro de valor igual a 1.

Se a lâmpada estiver apagada, não existe corrente, portanto, o estadoLógico é Falso e tem valor 0.

R

Resistor

Page 204: Livro - Introdução a Lógica para Ciências da Computação

204

4.2. Negação Lógica - circuito não

Para construção dos circuitos de chaveamento que vão simular asfunções lógicas, vamos iniciar por aquele que representa a negação lógica.A negação lógica é o exemplo mais comum de uma operação com função deverdade.

Como vimos no capítulo 2, a negação Lógica é enunciada da se-guinte forma,:“Se A é uma proposição, sua negação ¬A, é verdadeira quando A é falsa efalsa quando A é verdadeira”.

A relação entre os valores verdade de A e de (¬A) pode ser repre-sentada através da seguinte tabela verdade:

A (¬A)1 00 1

Circuito Lógico

O circuito que representa uma função de negação Lógica éconhecido como inversor lógico e sua configuração é mostrada na figuraa seguir:

Lâmpada L S = 1

I

+ E - R

A

R

Tem corrente: Lâmpada acessa S=1

Lâmpada L

Não tem corrente: Lâmpada apagada S=0

I

Page 205: Livro - Introdução a Lógica para Ciências da Computação

205

Observação: No circuito do Inversor Lógico foi acrescido umresistor R para limitar a corrente elétrica evitando-se o curto-circuito nofechamento da chave A.

Funcionamento: Com a chave A aberta teremos o valor da Proposição repre-sentando Falsidade portanto, valor lógico A=0.

Considerando o sentido convencional da corrente elétrica, isto é, ofluxo ordenado de elétrons saindo do terminal positivo da bateria passandopelos componentes e retornando pelo terminal negativo, verificamos que acorrente impulsionada pela fonte de tensão E, passa pela Lâmpada L e peloresistor R.

A passagem da corrente de elétrons pela lâmpada produz o seuacendimento simbolizando uma saída S=1, portanto A=0 resulta em S=1.

Verifique a figura a seguir onde ocorre o fechamento da chave A:

A chave A ligada representa uma proposição com estado lógicoVerdadeiro, portanto, de valor lógico igual a 1. Nestas condições verifica-seque toda a corrente elétrica passa através da chave e vai direto para o resistorR. Como a corrente de elétrons sempre procura o caminho mais fácil, nosterminais da Lâmpada a intensidade da corrente elétrica é nula e ela estáapagada.

Sem a corrente elétrica passando pelo seu filamento, a lâmpada Lnão acenderá simbolizando uma saída S de estado lógico Falso, portanto devalor igual a 0.

Para facilitar a representação de circuitos de chaveamento que simuleequações lógicas com várias proposições, vamos utilizar na representaçãode uma negação Lógica a chave da proposição funcionando em conjuntocom uma chave especial. Esta chave especial é representada pelo símbolo denegação ¬, conforme mostra a figura a seguir.

I + E - R

A Lâmpada L S = 0

I

R

Page 206: Livro - Introdução a Lógica para Ciências da Computação

206

Este conjunto funcionará da seguinte forma:A chave ¬ da negação Lógica depende exclusivamente do estado

da chave que representa a Proposição. Se a proposição A for verdadeira oresultado do seu estado lógico é A=1 e a chave da negação Lógica estaráfechada, o que vai ocasionar o estado da Lâmpada desligada, isto é, oestado Lógico da saída é Falso com S = 0.

Caso a chave que representa a proposição A esteja aberta, simbo-liza um estado Lógico Falso (A=0). Nestas condições, chave da negaçãoLógica estará desligada e a Lâmpada estará acesa representando um estadoLógico Verdadeiro com S=1.

4.3. Conjunção Lógica - Circuito E

A Conjunção Lógica também pode ser representada por meio deconfigurações de chaves representativas de Proposições.

Conforme foi visto no capítulo 2, a conjunção Lógica é enunciadada seguinte forma:

“Se A e B são sentenças quaisquer em U, a forma conjuntiva (A ∧ B)é Falsa se, e somente se, A for Falsa ou B for Falsa ou ambas forem Falsas”.

O valor verdade de ( A ∧ B ) pode ser representada através da seguin-te tabela de valores verdade:

A B (A ∧ B)1 1 11 0 00 1 00 0 0

Na tabela podemos observar que as entradas representadas pelasproposições A e B podem ser relacionadas à saída recebendo as seguintesafirmativas:

“A saída S só é verdadeira se, e somente se, A e B forem verdadei-ras, em qualquer outro caso a saída S é Falsa. Em outras palavras, a saída sóterá nível Lógico 1 se ambas as entradas estiverem com nível Lógico 1”.

Basta que uma das entradas apresente nível Lógico “0” para produ-zir um nível Lógico “0” na saída.

O circuito E que representa uma função da conjunção Lógica podeser configurado por meio de chaves, conforme a figura a seguir:

x y A B

+ E -

S = 0

S = A Ë B

A B

Page 207: Livro - Introdução a Lógica para Ciências da Computação

207

Funcionamento: com as duas chaves desligadas representando as proposi-ções A e B como Falsas, não há passagem de corrente elétrica para a Lâmpa-da, ficando a mesma apagada. Neste caso, o estado Lógico resultante dasaída tem nível 0. Se apenas uma das chaves for ligada permanecendo aoutra desligada, não é o suficiente para permitir a passagem da correnteelétrica para a lâmpada. Como os elétrons vão circular por apenas um únicocaminho é condição necessária que as duas chaves sejam ligadas para per-mitir que a corrente flua para a lâmpada, acendendo-a e representando oestado lógico Verdadeiro com valor 1 na saída.

Conforme foi visto, no circuito de chaveamento lógico da Conjun-ção a corrente elétrica vai passar pelos pontos x e y se, e somente se (A ∧ B)é verdadeira. Diz-se que as duas chaves estão em série.

Este caso pode ser generalizado para qualquer número finito dechaves ligadas em série conforme mostra a próxima figura.

Na Conjunção a condição para a corrente elétrica passar através docircuito é a de (A

1 ∧ A

2 ∧ A

3 ∧ ... ∧ A

n ) ser Verdadeira.

O conectivo da conjunção é aquele onde, para se obter o estadológico da saída, liga-se as duas condições de entrada pela letra “e”. Por istoeste circuito é conhecido como “circuito Lógico E”, ou pelo termo originadoda língua inglesa, “circuito lógico AND”.

4.4. Disjunção Lógica - Circuito OU

No capítulo 2, a disjunção Lógica foi enunciada em linguagem natu-ral da seguinte forma:“Se A e B são sentenças quaisquer em U, a forma disjuntiva (A V B) é Falsase, e somente se, A for Falsa e B for Falsa”.

Como foi feito na conjunção Lógica, a disjunção pode ser representa-da por uma relação entre os valores verdade de A e B através da seguintetabela:

A B (A ∨ B)1 1 11 0 10 1 10 0 0

É verificado nos valores da tabela que as entradas representadas

An A3 A2

x A1

y

Page 208: Livro - Introdução a Lógica para Ciências da Computação

208

pelas Proposições A e B podem ser relacionadas à saída recebendo as se-guintes afirmativas:

“Para a saída S ser verdadeira basta que apenas uma das entradasA ou B sejam verdadeiras”.

“A saída S só será falsa se ambas as entradas A e B forem Falsas”.Em outras palavras, a saída terá nível Lógico S=1 se pelo menos

uma das entradas A ou B estiver com nível Lógico 1.O circuito OR que representa uma função da disjunção Lógica pode

ser configurado por meio de chaves, conforme mostra a figura a seguir:

Funcionamento: com as duas chaves desligadas representando as proposi-ções A e B como Falsas, não há passagem de corrente elétrica para a Lâmpa-da ficando a mesma apagada. Neste caso, o estado Lógico resultante dasaída tem nível 0. Se pelo menos uma das chaves A ou B for ligada é suficien-te para permitir a passagem da corrente elétrica para a lâmpada. Como oselétrons podem circular através das chaves por caminhos diferentes, não énecessário que as duas chaves estejam ligadas para permitir que a correnteflua para a lâmpada. Basta uma única chave ligada para acende-la e assimrepresentar o estado lógico verdadeiro com valor 1 na saída.

Conforme foi visto, no circuito da disjunção a corrente elétrica passaentre os pontos x e y se e somente se, (A V B) é verdadeira. Diz-se que aschaves estão ligadas em paralelo.Este exemplo pode ser generalizado para qualquer número finito de chavesligadas em paralelo. Veja a figura a seguir:

A B

+ E -

S = 0

S = (A V B)

An

A3

A2

x

A1

y

Page 209: Livro - Introdução a Lógica para Ciências da Computação

209

Na Disjunção condição para a corrente elétrica passar através docircuito é a de (A

1 ∨ A

2 ∨ A

3 ∨ ... ∨ A

n ) ser Verdadeira.

O conectivo da Disjunção é aquele onde para se obter o estadológico da saída, liga-se as duas condições de entrada pela letra “ou”. Por istoeste circuito é conhecido como “circuito Lógico OU”, ou pelo termo origina-do da língua inglesa “circuito lógico OR”.

4.5. Exemplos de aplicações

Exemplo 1 - Dada a equação lógica: [¬ (A ∧ B )] = S construa o circuito de chaveamento que simule a equação.

Resolução: A equação dada expressa uma negação de uma conjunção lógi-ca entre duas proposições A e B.

Isto significa que a saída S só é verdadeira ( S =1) se e somente se,a negação lógica da conjunção entre as proposições A e B for verdadeira.Esta condição é descrita pela equação: [¬ (A ∧ B )] =1.

Inicialmente elaboramos uma tabela verdade onde são considera-das todas as combinações possíveis entre as duas proposições e a suanegação.

Pela coluna do resultado final é visto que as situações 2,3 e 4 sãoaquelas que satisfazem a condição de S=1. Pode-se notar que, basta que umadas chaves esteja aberta para que a lâmpada seja acesa simbolizando umacondição Verdadeira. A partir desta análise é construído o circuito.

O diagrama do circuito de chaveamento é apresentado na próxima

A B (A Ë B) [¬ (A Ë B )] 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1

Estado Lógico da Saída S

Estados Lógicos intermediários

Condição 1 Condição 2 Condição 3 Condição 4

Page 210: Livro - Introdução a Lógica para Ciências da Computação

210

figura:

Exemplo 2 - Construa o circuito de chaveamento para a equação Lógica :

[¬ (A V B )] = SResolução: Esta equação expressa negação de uma disjunção lógica entreduas proposições A e B. Neste caso a negação da disjunção se caracterizapela afirmação de que a saída S só é verdadeira (S =1) se e somente se, anegação lógica da disjunção entre A e B for verdadeira, isto é: [¬ (AVB )] =1.

Usando do mesmo procedimento anterior, é elaborado primeiramenteuma tabela verdade onde são consideradas todas as combinações possíveisentre as proposições A e B e a sua negação Lógica.

É visto pela coluna do estado lógico resultante que nesta equaçãológica somente a situação 4, onde as duas proposições têm valor lógicoigual a 0, satisfaz a condição de S=1, portanto para que a lâmpada seja acesasimbolizando uma condição Verdadeira é necessário que as duas chavesestejam desligadas.

Com base nestas considerações é construído o circuito dechaveamento lógico apresentado a seguir:

+ E - R

A

¬

S = [¬ (AVB )]

B

+ E - R

B ¬ S =[¬ (AËB )]

A

11 1 0

1 0 0 1

0 1 0 1

0 0 0 1

A B (A B ) [ (A B )]

C o n d ica o 1~

C o n d ica o 2~

C o n d ica o 3~

C o n d ica o 4~

E sta do s L o g ico sin te rm e d ia rio s

E stad o L o g ic o sd a S a id a S

Page 211: Livro - Introdução a Lógica para Ciências da Computação

211

Exemplo 3 - Construa o circuito de chaveamento que simule a equação: [(¬ (A ∧ B ) ) ∧ (CVD)] = S

Resolução: O método utilizado para construção do circuito segue osprocedimentos anteriores:

1- Inicialmente é construído uma tabela verdade para analises dassituações entre as proposições A e B.

2- Em uma coluna, que é extensão da tabela anterior, são tambémanalisadas as situações entre as proposições C e D.

3- Em seguida na outra coluna são analisados logicamente e colocadosos resultados obtidos entre as duas análises das colunas anteriores.As análises são feitas obedecendo a equação e assim, obtém-se naúltima coluna o resultado final.

O circuito de chaveamento lógico que corresponde ao resultado databela verdade, portanto que simula a equação é mostrado na próxima figura.

Exemplo 4 - Considere um sistema de alarme residencial composto por três

+ E -

R

C

¬

D

BA

S

11 10

10 01

01 01

00 01

A B (A B ) ( (A B ))

11 1

10 1

01 1

00 0

C D ( C D ) [ ( (A B )) ( C D )]

S a ida S

Page 212: Livro - Introdução a Lógica para Ciências da Computação

212

sensores sA, sB, e sC, do tipo chave liga-desliga, instalados em três portasde entrada de um compartimento que se deseja proteger. Com o sistemaativo, na decorrência de um dos sensores ser ligado se acenderá uma lâmpadaacusando uma anormalidade.

Uma chave sD instalada do lado de fora do compartimento e emlocal secreto conhecido apenas pelo usuário, poderá ser ligada para deixar osistema inativo.

Com base na descrição acima elabore a equação Lógica e o Circuitode chaveamento Lógico do Sistema.

Resolução:Vamos considerar os sensores como sendo as proposições de entrada talque: Sensor sA = A Sensor sB, = B Sensor sC = C Chave secreta sD = D Lâmpada de alarme L = Saída S

Equação Lógica : Basta que uma das chaves A, B e C fique ligada para que aLâmpada acenda, portanto é uma disjunção do tipo: (AV BVC )= S

1Conforme a descrição do funcionamento do Sistema para a equação acimaser verdade é necessário que a chave D esteja desligada, isto é, a negaçãológica de D (¬D) tem que ser Verdadeira. Portanto esta condição é ligada àanterior pela conjunção lógica.

Deste modo a equação final que simula o sistema fica: [(AVBVC ) ∧ (¬ D)] = S

Tabela verdade:

D

A B C [(AVBVC)] 1 1 1 0 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1

A

B

C

S + E -

¬

R

11 10

11 01

1 0 11

1 0 0 1

0 1 11

0 1 0 1

0 0 11

0 0 0 1

A B A B C )C [ ]

Page 213: Livro - Introdução a Lógica para Ciências da Computação

213

Exemplo 5 - Considere que a administração de uma pequena empresa decidaquestões através de um comitê composto pelas seguintes pessoas:

a) O Presidente A.b) O Vice-Presidente B.c) O Gerente Industrial C.

Cada membro do Comitê tem em seu poder uma chave que é acionadasinalizando aprovação quando a proposta é de sua concordância, casocontrário, a chave permanece desligada.

Para indicar a aprovação ou não de cada proposta há uma lâmpadaque se acenderá caso a proposta tenha sido aprovada pela maioria dosvotos dos membros do comitê.

Pede-se: Elabore a equação Lógica, a tabela verdade e o circuito dechaveamento Lógico que simule este processo.

ResoluçãoO processo pode ser visualizado mais facilmente através da tabela verdademostrada a seguir:

Podemos verificar pela tabela verdade que as situações onde asaída é verdadeira são aquelas cujas equações Lógicas são descritas abaixo:

Situação 1 : A saída S só é Verdadeira quando A, B e C são

Situação 4

Situação 3

Situação 2

A B C S 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0

A saída S só é de valor Lógico 1 quando houver duas ou mais proposições de valor igual a 1.

Situação 1

Page 214: Livro - Introdução a Lógica para Ciências da Computação

214

Verdadeiras. Portanto é uma conjunção entre as três proposições: (A ∧B Ë∧).

Situação 2 : A saída S só é Verdadeira quando A e B são Verdadeiras.Portanto é uma conjunção entre as duas proposições: (A ∧ B ).

Situação 3 : A saída S só é Verdadeira quando A e C são Verdadeiras.Portanto é uma conjunção entre as duas proposições: (A ∧ C ).

Situação 4 : A saída S só é Verdadeira quando B e C são Verdadeiras.Portanto é uma Conjunção entre as duas proposições: (B ∧ C).

Da análise da tabela Verdade podemos concluir que “A Saída S éVerdadeira S=1 quando acontece uma das quatro situações descritasanteriormente, portanto entre estas quatro situações vai ocorrer umadisjunção”. Com esta análise podemos obter a equação final:

[(A ∧ B ∧ C) V ( A ∧ B) V (A ∧ C) V (B∧ C)] = S

O circuito de chaveamento lógico fica:

No circuito é visto que as chaves A, B e C formam um grupo emsérie no primeiro ramo. Este grupo está em paralelo com as chaves em série Ae B e A e C do segundo e terceiro ramo. No acionamento das chaves dogrupo do primeiro ramo (A, B e C em série) fica irrelevante para ofuncionamento do circuito, visto que ao serem acionadas estas chaves acorrente já passa pelos ramos de baixo.

Frente a isto o circuito pode ser minimizado retirando o ramoirrelevante.

A próxima figura apresenta o circuito minimizado

A

A

S

B C

B

A C

B C

+ E -

R

Page 215: Livro - Introdução a Lógica para Ciências da Computação

215

A equação minimizada fica : [( A ∧B) V (A ∧C) V (B ∧ C)] = S.Existem processos que utilizam métodos para minimização de

circuitos que infelizmente fogem do escopo deste livro.

Exercícios

1- Construa um circuito de chaveamento Lógico que simule a equação:

[(A ∧ B) ∧ ( C V D)] = S2- A partir da equação lógica [(¬ (A V B))] V [(C Ë D)] = S construa

uma tabela verdade onde são mostrados os valores Lógicosintermediários e os valores finais da equação. Através da tabelaverdade obtida construa o circuito de chaveamento Lógico.

3- Simule por meio de um circuito de chaveamento a equação lógica: [((¬ A) ∧ B) V C ] = S

mostre a tabela Verdade e o circuito obtido.4- Suponha um sistema de segurança que é construído com 4 sensores

normalmente fechados (chaves que ao serem acionadas abrem)denominados com as letras A, B, C e D. O funcionamento do sistemade alarme consiste no seguinte procedimento: caso um destes quatrosensores seja desligado uma buzina será acionada ( S=1) acusandoanormalidade. Para que o guarda da segurança possa entrar semacionar o alarme existe em seu poder uma chave (E) que quandoligada deixa sem ação apenas o sensor A instalado na porta principalpermitido que ele entre no recinto . Conforme a descrição acima,pede-se:

a) A equação Lógica do Sistema.b) A tabela Verdade do Sistema.c) O Circuito de chaveamento Lógico do Sistema.

5- Considere o mesmo enunciado do exercício anterior modificando ofato dos sensores A, B e C serem agora normalmente abertos (Chaves que fecham ao serem acionadas).

A B

+ E -

R

A C

B C

Page 216: Livro - Introdução a Lógica para Ciências da Computação

216

6- Considere que a administração de uma Indústria decida questõesrelativa à produção através de um comitê composto por cincopessoas:

a) O Presidente A.b) O Vice-Presidente B.c) O Gerente Industrial C.d) O Gerente de produção D.e) O Gerente de pessoal E.

Cada membro do Comitê tem em seu poder uma chave que é acionadasinalizando o voto de aprovação quando a proposta é de suaconcordância, caso contrário, a chave permanece desligada.

Para indicar a aprovação ou não de cada proposta há uma lâmpadaque irá se acender caso a proposta tenha sido aprovada pelo voto dopresidente ou pela maioria dos votos dos membros do comitê.

Pede-se: Elabore a equação Lógica, a tabela verdade e o circuito dechaveamento Lógico que simule este processo.

Page 217: Livro - Introdução a Lógica para Ciências da Computação

217

5 PORTAS LÓGICAS

Introdução

Para estudarmos os modos de representação das funções lógicas pormeio de circuitos elétricos foram utilizadas no capítulo anterior as chaves dotipo liga-desliga.

Para o emprego da lógica em computadores e Sistemas digitais di-versos, os circuitos de chaveamento lógicos, devem ser miniaturizados. Esteprocesso de miniaturização, traz inúmeras vantagens, tanto nas proprieda-des construtivas, relativo ao menor espaço ocupado, menor peso etc.., comonas propriedades físicas que traz maior rapidez nas respostas, menor perdaspor calor, etc.. Todas estas vantagens vão aumentar o rendimento do Siste-ma lógico quando no seu funcionamento para efetuar as suas análises lógi-cas.

Neste processo de diminuir as dimensões físicas dos sistemas digi-tais, os circuitos lógicos do Inversor e de outras funções lógicas que foramestudados por meio de chaves no capítulo anterior agora são geralmenteconstruídos com transistores. Os transistores são dispositivos eletrônicosde pequenas dimensões e que funcionam com pequenas intensidades detensão e corrente elétrica.

Nestes circuitos eletrônicos os transistores vão atuar como chavesconfiguradas de diversas formas, conforme determinados circuitos dechaveamento lógico. Nestes circuitos à transistor pequenos sinais de cor-rente aplicados nas entradas excitam os transistores que fecham e abremdeixando ou não passar corrente elétrica comportando-se como as chavesestudadas no capítulo anterior.

Através de tecnologia moderna empregada na construção dos cha-mados circuitos integrados (chips) consegue-se sistemas lógicos compos-tos de milhares de transistores de tamanho muito reduzido.

O funcionamento dos transistores, bem como os funcionamentosinternos destes circuitos, fogem do escopo deste livro, portanto, vamosestudar estes circuitos como um bloco onde só nos interessa os valoreslógicos dos sinais de entrada e os de saídas.

Os sinais elétricos aplicados às entradas do Bloco representam asproposições A, B, C, etc.. e os sinais elétricos resultantes nas saídas repre-sentam os estados lógicos das saídas S1, S2 , S3,... Sn resultantes das equa-ções representadas pelas funções verdades.

Page 218: Livro - Introdução a Lógica para Ciências da Computação

218

5.1. As Portas Lógicas Básicas

Quando os circuitos são representados por blocos recebem a de-nominação de Portas Lógicas (Logic Gates). Neste capítulo estudaremos asfunções lógicas através de blocos funcionais denominados de Portas Lógi-cas. Inicialmente vamos estudar as chamadas portas lógicas básicas ou pri-mitivas e a partir das combinações das portas lógicas básicas serão obtidasas representações de funções lógicas complexas.

5.2. Porta Lógica Inversora

A porta lógica que representa o circuito Inversor é aquela queinverte o estado lógico do sinal aplicado na sua entrada. Esta porta lógicatambém é conhecida como operador da negação lógica NÃO ( ou pelo termoinglês Operador NOT).

O símbolo da porta lógica Inversora e a sua tabela verdade é apre-sentado na figura a seguir:

Em alguns circuitos lógicos, para facilitar a representação simbólicaa porta lógica Inversora é representada apenas pelo símbolo simplificadoque consiste de um pequeno círculo inserido no circuito. Veja a figura aseguir:

É comum encontrar a representação da negação de A como sendoonde lê-se: “A barrado”.

Page 219: Livro - Introdução a Lógica para Ciências da Computação

219

5.3. Porta Lógica E

A porta Lógica E (ou utilizando o termo inglês, porta lógica AND)é um bloco constituído de circuitos elaborados com transistores cuja finali-dade é promover o chaveamento para simular eletricamente as funções daconjunção lógica. Uma porta Lógica E tem os sinais elétricos aplicados emsuas entradas representando o estado lógico das proposições. Na sua saídaé obtido o estado Lógico resultante de uma conjunção Lógica efetuada entreas proposições representadas pelos sinais aplicados.

O símbolo e a tabela verdade de uma porta E de duas variáveis deentrada é apresentado na figura a seguir.

É comum na bibliografia de circuitos digitais ser utilizado um ponto( . ) para representar a conjunção entre as proposições A e B. Por exemplo, aexpressão:

(S=A.B) é lida como, S é o resultado da expressão booleanaentre A e B.

Uma porta lógica E pode ter um número n finito de entradas onde né limitado pelas condições técnicas construtivas da porta.

5.4. Porta Lógica NÃO-E ( NAND)

Sabendo o comportamento da porta lógica Inversora e da portalógica E, pode-se a partir destas duas portas implementar a porta lógicaNÃO-E.

A porta lógica NÃO-E é obtida pela ligação em série de uma portalógica E com uma porta lógica Inversora NÃO. A próxima figura mostra estaligação, a tabela verdade e o símbolo da porta NÃO-E de duas entradas.

Page 220: Livro - Introdução a Lógica para Ciências da Computação

220

Com a configuração das duas portas, Inversora e E, é obtido comoresultado o sinal que representa a negação da conjunção entre as proposi-ções das entradas, portanto a negação da função E.

Uma notação muito utilizada em circuitos digitais é: S=, onde lê-se“S é igual a A e B barrados”.

5.5. Porta Lógica OU

A porta Lógica OU (ou utilizando o termo inglês OR) é um blococonstruído com transistores para simular eletricamente as funções dadisjunção lógica.

Uma porta Lógica OU possui, aplicados em suas entradas os sinaiselétricos representando os estados lógicos das proposições. Estes sinaissão tratados internamente através dos transistores e uma saída S vai apre-sentar o estado lógico resultante. O estado lógico resultante será umadisjunção lógica efetuada entre as proposições representadas pelos sinaisaplicados à entrada.

O símbolo e a tabela verdade de uma porta OU de duas variáveis deentrada é apresentado na figura a seguir.

Page 221: Livro - Introdução a Lógica para Ciências da Computação

221

É comum em bibliografia de circuitos digitais se encontrar um sinalde adição ( + ) para representar a disjunção entre as proposições A e B. Porexemplo a expressão:

S=A+B é lida como, S é o resultado da expres-são booleana entre A ou B.

Uma porta lógica OU pode ter um número n finito de entradas onden é limitado pelas condições técnicas construtivas da porta.

5.6. Porta Lógica NÃO-OU ( NOR)

A porta lógica NÃO-OU é obtida pela ligação em série de uma portalógica OU com uma porta lógica Inversora NÃO.

A próxima figura mostra esta ligação com a tabela verdade e o sím-bolo da porta NÃO-OU de duas entradas.

Page 222: Livro - Introdução a Lógica para Ciências da Computação

222

Com a configuração das duas portas lógicas, a porta OU e a portaInversora, é obtida como resultado o sinal que representa a negação dadisjunção entre as proposições das entradas. Portanto, a porta NÃO faz anegação da função OU.

Uma notação muito utilizada em circuitos digitais é: S= , onde lê-se“S é igual a A ou B barrados”.

5.7. Combinação de Portas Lógicas

É possível fazer várias combinações com as portas lógicas básicasvistas até aqui. Estas combinações servem para representar as funções lógi-cas estudadas nos capítulos anteriores.

Estas portas lógicas que na realidade são circuitos construídoscom transistores são inseridas em circuitos integrados CI (chip) que funcio-nam com tensões elétricas que representam os estados lógicos das proposi-ções.

Os valores típicos das tensões de um CI relacionado com os esta-dos lógicos representativos das proposições são:

+ 5 volts=1 0 volts=0

Nos controladores lógicos os CIs são convenientemente interliga-dos e instalados em circuitos impressos compondo Sistemas Lógicos Digi-tais de grande porte e complexidade.

Neste capítulo vamos utilizar as portas lógicas básicas para proje-tar circuitos que vão simular as equações lógicas estudadas. Nestas confi-gurações vamos utilizar as notações mais comuns dos circuitos digitais.

A figura a seguir mostra cada porta lógica básica estudada até aquicom as suas funções representadas pelas equações lógicas e respectivasnotações.

Page 223: Livro - Introdução a Lógica para Ciências da Computação

223

5.8. Exemplos de aplicação

Exemplo 1 - Dada a equação lógica: [¬ (A ∧ B )] V [ (C V D)] = S

a) Reescreva-a com a notação mais comumente utilizada em CircuitosDigitais.

b) Construa o circuito com portas lógicas que simule a equação.

Resolução:a) A equivalência das notações: ∧ = . Conjunção V = + Disjunção ¬ = Negaçãonos permite reescrever a equação da seguinte forma:

(AB )+ (C + D) = S

Para padronizar, vamos utilizar no decorrer deste capítulo todas asequações com esta notação.

Para construir o circuito com portas lógicas que simule esta equaçãodevemos inicialmente relacionar as portas lógicas equivalentes as equaçõesdentro dos parênteses,

No primeiro parênteses (AB) temos a equação de uma porta lógicaNÃO-E.

No segundo parênteses (C + D) temos a equação de uma portalógica OU.

As equações dentro dos dois parênteses são relacionadas atravésde uma disjunção +, portanto a representação é uma porta lógica OU.Com estas considerações o circuito fica construído da seguinte forma:

Exemplo 2 - Um sistema de alarme residencial é composto por 4 sensores sA,sB, sC e sD instalados em janelas. Cada sensor é instalado de modo que abrao contato caso a janela seja aberta indevidamente. A abertura do contatoprovoca o acionamento de uma lâmpada sinalizadora de alarme.

Page 224: Livro - Introdução a Lógica para Ciências da Computação

224

Uma chave sE instalada do lado de fora, e em local secreto conheci-do apenas pelo usuário, deixa o sistema inativo caso seja desligada.

Com base na descrição acima elabore a equação Lógica e o Circuitoconstruído com portas lógicas do Sistema de alarme.

Resolução: Vamos considerar os sensores como proposições de entrada talque: Sensor sA = A Sensor sB = B Sensor sC = C Sensor sD = D Chave secreta sE = E Lâmpada de alarme L = Saída S

Utilizando a notação dos circuitos digitais, conforme visto no exem-plo anterior, a equação dos sensores é a negação de uma conjunção do tipo: ABCD = S

1Resultando em uma porta Lógica NÃO-E de 4 entradas:

Com todos os sensores ligados (A=1, B=1, C=1 e D=1) a lâmpadadeve estar apagada. Isto significa que o estado lógico resultante de S é iguala 0. Para esta equação resultar em um estado lógico verdadeiro, isto é S=1-lâmpada acesa, basta que um dos sensores vá para o estado lógico 0.

Caso algum dos sensores esteja no estado lógico 0, significa quepelo menos uma das janelas foi aberta e o estado lógico da saída vai para ovalor 1 provocando o acendimento da lâmpada.

Como a finalidade da chave sE quando desligada (E=0) é deixarinativo o sistema de alarme, uma solução é a proposição E ser relacionadaatravés de uma porta lógica de conjunção “Porta E”. Esta porta E vai seranalisada com o sinal S

1 resultante das análises dos sensores.

Page 225: Livro - Introdução a Lógica para Ciências da Computação

225

Pelo circuito, verifica-se que se a proposição E tiver valor lógico 1,a saída S será dependente apenas do valor resultante de S1, caso a proposi-ção E estiver com valor lógico 0, significa que a chave está desligada e asaída S será obrigatoriamente igual a 0.

Exemplo 3 -Em uma indústria um comitê administrativo é composto por trêspessoas:

a) O Presidente A.b) O Vice-Presidente B.c) O Gerente Industrial C.

Este comitê decide questões relativas ao gerenciamento da fábrica comos seguintes critérios: 1- O voto do Presidente A tem prioridade em relaçãoaos demais membros,

2- Os votos da maioria têm poder de aprovar as resoluções, inde-pendente do voto do Presidente.

Cada membro do Comitê tem em seu poder uma chave que é acionadasinalizando um voto de aprovação quando a proposta é de sua concordân-cia, caso contrário, a chave permanece desligada.

Pede-se: Elabore a equação Lógica, a tabela verdade e o circuito deportas lógicas capaz de simular este processo.

Resolução: O circuito e a equação lógica são originados da tabela verdade. Primeiramente veremos como fica a coluna da saída referente àscondições possíveis para as três variáveis A, B e C:

Analisando a tabela verdade verifica-se que as 5 situações com as

Page 226: Livro - Introdução a Lógica para Ciências da Computação

226

condições de A, B e C sendo satisfeitas resulta verdadeira (S=1).Na situação 1- S é igual a 1 se, e somente se, A=1, B=1 e C=1.

Portanto, a situação 1 é representada pela equação da conjunção entre asproposições: A.B.C =S

Usando o mesmo raciocino para a situação 2 teremos S igual a 1se, e somente se, A=1, B=1 e C=0. Portanto: A.B.C=S

Para a situação 3 teremos: A.B.C =S

Para a situação 4 teremos: A.B.C =S

Para a situação 5 teremos: A.B.C =S

Na tabela verdade nota-se que basta uma destas equações, queforam elaboradas através das situações 1, 2, 3, 4 e 5, ter como resultado 1para que a proposta em pauta seja aprovada pelo comitê.

Para ligar entre si estas cinco equações é utilizado o conectivo dadisjunção que acontece entre as três proposições ligadas através de umaporta OU.

A Equação final e o circuito ficam conforme o exposto na próximafigura.

O circuito completo fica conforme a figura a seguir:

Page 227: Livro - Introdução a Lógica para Ciências da Computação

227

Obs. Existem em bibliografia de circuitos digitais modos de minimização decircuitos, que podem diminuir o número de portas utilizadas otimizandoprojetos mas estes procedimentos técnicos fogem do escopo deste livro.

Exemplo 4 -Os circuitos digitais, construídos com portas lógicas só trabalhamcom números binários. Os números binários são representados por apenasdois dígitos, 0 e 1, portanto para representar e efetuar operações algébricasutiliza-se a base 2. As portas lógicas quando convenientemente interligadasefetuam soma e subtração com números binários. Nos sistemas digitais,apesar de todas as operações serem feitas com números binários, osresultados destas operações algébricas devem ser apresentados na basedez, porque é o sistema decimal mais familiar ao homem.

Um dispositivo eletrônico utilizado para receber informações embinário e mostrar o resultado em decimal é o conhecido Decodificador ouDisplay de 7 segmentos. O Display de 7 segmentos é utilizado largamenteem vários aparelhos eletrônicos como, computadores, maquinas de calcular,radio, etc.. Este dispositivo é composto de 7 Diodos emissores de luz (LEDS)dispostos de uma forma particular.

Page 228: Livro - Introdução a Lógica para Ciências da Computação

228

Estes diodos têm a propriedade de, ao serem excitados por umacorrente elétrica apresentar emissão de luz. Dependendo dos diodos queserão ligados e dada a sua disposição no conjunto será formado visualmenteno decodificador de 7 segmentos um número ou uma letra. Veja os exemplosde visualização dos números 0 à 9 a seguir:

a) Com base no exposto acima elabore um circuito com portas lógicasque quando aplicado o equivalente binário 0000 apareça o númerozero no decodificador de 7 segmentos.

Page 229: Livro - Introdução a Lógica para Ciências da Computação

229

Resolução: Conforme é visto pela tabela, para aparecer o número decimal 0no Decodificador de 7 segmentos é necessário que os diodos a, b, c, d, e, festejam ativados com nível lógico 1.

Para o diodo a estar ativado, isto é a=1 devemos ter a condiçãoA=0, B=0, C=0, D=0. Se uma destas entradas estiver em nível lógico 1 a saídaa será igual a 0 e não haverá visualização. Isto nos dá para o diodo a umafunção verdade que é uma característica de uma porta lógica NÃO-OU.

Para isto basta relembrar a tabela verdade da porta NÃO-OU.

Para representar visualmente o número zero as mesmas condiçõesdeverão ser encontradas para as outras saídas de diodos (a, b, c, d, e, f ). Aúnica exceção no conjunto dos diodos é o diodo g que deverá estarnecessariamente desligado. Isto significa que serão necessários 6 circuitosimplementados com portas lógicas NÃO- OU, iguais ao obtido acima, paravisualizar o número zero.

A saída para o diodo g não poderá estar no estado lógico igual a 1,portanto para a saída g, uma das entradas deverá ser invertida através de um

Page 230: Livro - Introdução a Lógica para Ciências da Computação

230

operador de negação.A figura a seguir mostra a porta lógica para a saída g.

b) Deseja-se implementar um circuito para um Display de 7segmentos que ao ser aplicado os valores binários 0000 até 1001 serãovisualizados seus números decimais correspondentes, isto é, do número 0ao número 9 decimal.

Resolução: Deve-se interpretar cada situação através das 4 variáveisde entrada A, B, C, e D e fazer uma análise detalhada para implementar cadaporta lógica e as suas implicações nos resultados. Depois de ser encontradatodas as equações é então feita uma configuração conveniente para acenderos diodos no display de 7 segmentos na seqüência correta.

Uma tabela onde mostra o nível lógico dos diodos para cada situaçãopossível de existir numa variação binária de 0000 à 1001, é mostrado a seguir.

Cada diodo vai ser analisado independentemente. Neste exemplovamos construir o circuito apenas para o diodo a deixando os circuitos

seõçautiS oirániB lamiceD a b c d e f g

1 0000 0 1 1 1 1 1 1 02 1000 1 0 0 0 1 1 0 03 0100 2 1 0 1 1 0 1 14 1100 3 0 0 1 1 1 1 15 0010 4 0 1 0 1 1 0 16 1010 5 0 1 1 0 1 1 17 0110 6 1 1 0 0 1 1 18 1110 7 0 0 1 1 1 0 09 0001 8 1 1 1 1 1 1 101 1001 9 0 1 1 1 1 0 1

Page 231: Livro - Introdução a Lógica para Ciências da Computação

231

restantes como exercício.Verificando por exemplo a coluna do diodo a.As situações onde ele vai ficar ativo, isto é a=1, são:

Situação 1 - 0000 - A.B.C.D.Situação 3 - 0010 - A.B.C.D.Situação 7 - 0110 - A.B.C.D.Situação 9 - 1000 - A.B.C.D.

O diodo a será 1 quando uma destas (isto é, uma ou outra) quatrosituações ocorrerem, portanto vai ocorrer uma disjunção entre elas e aequação fica:

a= A.B.C.D.+ A.B.C.D. + A.B.C.D. + A.B.C.D.

Determinada a equação é então implementado o circuito com a configuraçãodas portas lógicas.A próxima figura mostra o circuito correspondente a esta equação.

Page 232: Livro - Introdução a Lógica para Ciências da Computação

232

Para obter o circuito completo a análise deve ser feita para cadacoluna da tabela.

Usando o processo da análise de cada situação para determinar aequação lógica e as configurações das portas, o circuito final vai ser compostopor um número muito grande de portas.

Existem vários métodos utilizados em projetos de circuitos digitaispara obtenção da minimização dos circuitos como, os teoremas de De Morgan,utilizando princípios de Identidade, ou os diagramas de Karnaugt.

Estes procedimentos não serão vistos aqui, mas são facilmenteencontrados nas bibliografias que tratam de projetos de circuitos digitais.

Exercícios

1- Utilizando os mesmos procedimentos do exemplo anterior (Exemplo 4.b)complete o circuito final implementando com configurações de portas lógicastodo o circuito que permita o display de 7 segmentos apresentar os númerosdecimais de 0 a 9. Faça a análises na tabela das colunas dos diodos b,c,d,e,fe g.

2- Dada a equação lógica: [(A ∧ B )] ∧ [¬ (C V D)] = S

a) Rescreva-a com a notação mais comumente utilizada em CircuitosDigitais.

b) Construa o circuito com portas lógicas que simule a equação.

3- Dada a equação lógica: S= A.B+CDa) Elabore a tabela verdade.b) Construa o Circuito com portas lógicas para simular esta equação.

4- A equação Lógica A.B + A.B. = S representa uma função lógica muitoimportante em circuitos digitais chamada de OU-Exclusivo.Elabore a tabela verdade desta equação e construa o circuito com portaslógicas.

Page 233: Livro - Introdução a Lógica para Ciências da Computação

233

5) Dada a equação lógica: S=(A.B) . (C+D)

a) Elabore a tabela verdade.b) Construa o Circuito com portas lógicas para simular esta equação.

6-Em uma fabrica um comitê administrativo é composto por quatro pessoas:

1- O Presidente A.2- O Vice-Presidente B.3- O Gerente Industrial C.4- O Gerente admistrativo D.

Este comitê decide questões relativas ao gerenciamento da fábrica comos seguintes critérios:

1- Os votos da maioria têm poder de aprovar as resoluções.2- No caso de empate vence o voto do presidente.

Cada membro do Comitê tem em seu poder uma chave que é acionadasinalizando um voto de aprovação quando a proposta é de sua concordância,caso contrário, a chave permanece desligada.

Elabore a equação Lógica, a tabela verdade e o circuito de portaslógicas capaz de simular este processo.

7- Utilizando os procedimentos de análise do exemplo 4.b elabore um circuitoque permita a partir de uma palavra com 4 dígitos (A, B, C, D) escrever noDisplay de 7 segmentos em seqüência as letras “A L O”.

Page 234: Livro - Introdução a Lógica para Ciências da Computação
Page 235: Livro - Introdução a Lógica para Ciências da Computação

235

APÊNDICE

1. ALGUMAS ESTRUTURAS ALGÉBRICAS

O objetivo deste apêndice é apresentar algumas estruturas algébricasfundamentais subjacentes a este trabalho.

Operação binária

Se G é um conjunto não vazio, uma operação binária sobre G é uma funçãoϕ : G × G → G.

Exemplos:1. A operação de adição sobre números naturais é uma operação binária: aum par de números (a, b) está associado um único número que é a soma dea com b;2. A operação de multiplicação sobre números naturais também é uma opera-ção binária: a um par de números (a, b) está associado um único número queé o produto de a e b.

Por comodidade, indiquemos por ⋅ uma operação binária sobre G.

Operação associativaUma operação binária ⋅ sobre G diz-se associativa se (a ⋅ b) ⋅ c = a ⋅ (b

⋅ c) para quaisquer elementos a, b, c de G.

Exemplos:1. a operação de adição sobre os números naturais é associativa;2. a operação de multiplicação sobre os números naturais é associativa;3. a operação de subtração sobre os números naturais não é associativa;4. a operação de adição sobre o conjunto das matrizes quadradas de ordem2 é associativa.

Operação Comutativa

Uma operação binária ⋅ diz-se comutativa se a ⋅ b = b ⋅ a para quaisquerelementos a e b de G.

Page 236: Livro - Introdução a Lógica para Ciências da Computação

236

Exemplos:1. A operação de adição e de multiplicação sobre os números naturais écomutativa;2. A operação de subtração sobre os números naturais não é comutativa;3. A operação de adição sobre as matrizes quadradas e ordem 2 écomutativa.

Semigrupo

Um semigrupo é um par ordenado (G, ⋅) tal que:1) G é um conjunto não vazio e2) ⋅ é uma operação binária associativa em G.

Exemplo:1. (N, +) é um semigrupo;2. (N, .) é um semigrupo;3. (Z, +) é um semigrupo;4. (Q, .) é um semigrupo.

Monóide

Um monóide é uma tripla ordenada (G, ⋅, e) tal que:1) G é um conjunto não vazio2) é uma operação binária sobre G3) e é o elemento neutro de G isto é, um elemento de G tal que e . a = a . e= a para todo elemento a de G.Exemplos:1. (N, +, 0) é um monóide;2. (N, ., 1) é um monóide;3. (Q, ., 1) é um monóide;4. (Q, +, 0) é um monóide.Observação:

Um monóide é dito comutativo se a operação binária . for comutativa.

Grupo

Um grupo é um semigrupo (G, ⋅) tal que:1) possui um elemento neutro e e2) para todo elemento a de G, existe um elemento b de G tal que a ⋅ b = e.Exemplos:1. (Q, .) é um grupo e o seu elemento neutro é o 1;2. (Q, +) é um grupo e o seu elemento neutro é o 0;3. (M, +) é um grupo. M é o conjunto das matrizes quadradas de ordem n.O elemento neutro de M é a matriz identicamente nula.Observação:

Um grupo (G, .) é dito abeliano se a operação . for uma operaçãocomutativa.

Page 237: Livro - Introdução a Lógica para Ciências da Computação

237

Semi-anel

Um semi-anel é uma quíntupla ordenada (A, +, . ,0, 1) tal que:1) A é um conjunto não vazio;2) + e . sao duas operações binárias em A;3) (A, +, 0) é um monóide comutativo;4) (A, . , 1) é um monóide;5) valem as seguintes leis distributivas:

a . (b + c) = a . b + a . c quaisquer a, b, c em A.(a + b) . c = a . c + b . c quaisquer a, b, c em A.

6) 0 . a = a . 0 = 0 qualquer a em A.

Exemplos:1. (Q, +, ., 0, 1) é um semi-anel;2. (R, +, ., 0, 1) é um semi-anel.Observação:

Um semi-anel é dito comutativo se a operação . for comutativa.

Anel

Um anel é uma quíntupla ordenada (A, +, ., 0, 1) tal que:1) (A, +) é um grupo Abeliano;2) . é uma operação associativa;3) valem as leis distributivas do semi-anel.

Exemplos: a.) (Q, +, ., 0, 1) é um anel; b.) (R, +, .,0, 1) é um anel.

Observação:1) dizemos que um anel é comutativo se a operação . é comutativa;2) dizemos que um anel é um anel com unidade se 1 é elemento neutro paraa operação . .

2. LÓGICA PROPOSICIONAL E ÁLGEBRA DE BOOLE

Damos uma visão da estrutura algébrica subjacente à lógicaproposicional. Veremos que tal estrutura consiste de uma álgebra de Booleconhecida com o nome de álgebra de Lindembaum.

Seja F o conjunto das fórmulas do cálculo proposicional. Definamos aseguinte relação sobre F:

A ≡ B def

se for teorema A ↔ B.

Pode-se provar que tal relação se constitui numa relação deequivalência (isto é , reflexiva, simétrica e transitiva). Podemos portantopassar ao quociente obtendo o conjunto quociente. Neste conjunto,definamos as seguintes operações e elementos distingüidos:

Sejam A e B fórmulas. Temos:

Page 238: Livro - Introdução a Lógica para Ciências da Computação

238

1. [A] ∧ [B] = def

[A ∧ B];2. [A] ∨ [B] =

def[A ∨ B];

3. [A] ’ = def

[¬A];4. 1 =

def [tautologia];

5. 0 = def

[contradição].Observação:

Pode-se mostrar que as operações acima definidas independe doselementos escolhidos, ou seja, essas operações estão bem definidas.

Teorema: (F, ∧, ∨, ’, 1 , 0) constitui uma álgebra de Boole.Demonstração: (Exercício).

Vemos assim um aspecto muito importante em lógica: ela podereceber diversas abordagens. Uma pessoa que esteja estudando lógica estáestudando uma estrutura basilar da matemática (anéis). Também, o alunoque estuda teoria dos anéis, sem saber está estudando lógica. Isto nosmostra uma faceta mágica da matemática e da lógica: a unidade que subjazessas disciplinas.

3. MODELOS DE HERBRAND

O objetivo deste apêndice é apresentar os modelos de Herbrandpor serem de grande utilidade na área de programação em lógica. Dado umprograma lógico P e uma consulta C, devemos provar C em P com base nosaxiomas que P fornece e além destes axiomas podemos utilizar modus ponense particularização. Podemos enxergar este processo que acabamos dedescrever através de uma outra visão: queremos saber se o programa Pfornece um “modelo” para a consulta C.

Os modelos de Herbrand são muito úteis por serem construtíveis ealém disso existem dois resultados importantes relacionando modelosquaisquer com os modelos de Herbrand. Inicialmente, na seção 2 desteapêndice damos algumas definições relacionadas com interpretações emodelos quaiquer, na seção 3, falamos sobre os objetos de Herbrand (base,universo, interpretação e modelo) e na seção 4 apresentamos dois resultadosimportantes sobre os modelos de Herbrand.

Interpretações e modelos

Pré-interpretação

Uma pré-interpretação de uma linguagem de primeira ordem Lconsiste do seguinte:

a.) Um conjunto não-vazio D, chamado de domínio da pré-interpretação; b.) Para cada constante em L está associado um elemento de D; c.) Para cada símbolo de função n-ária em L está associada uma aplicaçãode Dn em D.

Page 239: Livro - Introdução a Lógica para Ciências da Computação

239

Exemplo: Lembremos a definição de grupo vista no Apêndice 1.

Um grupo é um conjunto G não vazio munido de uma operaçãobinária * tal que:

1.) x,y,z , (x * y ) * z = x * ( y * z );2.) ∃ e ∈ G tal que x ∈ G, x * e = x;3.) para x ∈ G, ∃y ∈ G tal que x * y = e.

Notemos que os axiomas que definem um grupo formam umalinguagem de primeira ordem. O conjunto dos números inteiros Z munido daoperação de adição (+) é uma pré-interpretação para a definição de grupo.Notemos que a constante e é o zero de Z e a operação * é a operação deadição (+).

InterpretaçãoUma interpretação I de uma linguagem de primeira ordem L consiste

de uma pré-interpretação J com domínio D de L e além disso para cada símbolo depredicado em L está associada uma relação em Dn. Dizemos que I está baseadaem J.

Exemplo:Consideremos um grupo G qualquer. Seja o seguinte predicado em

G:

p(x,y) ≡ “x * y = y * x”.

Consideremos agora seguinte relação R em Z:

R = (x,y) ∈ Z X Z : x + y = y + x

A pré-interpretação do item anterior (o grupo (Z,+) ) mais a relação Rdefinida acima forma uma interpretação para a definição de grupo.

Associação de variáveis, termos e instâncias

Seja J uma pré-interpretação de uma linguagem de primeira ordem L. Umaassociação de variáveis é uma associação de cada variável de L a um elementodo domínio de J.

Seja uma pré-interpretação J com domínio D de uma linguagem de primeiraordem L e seja V uma associação de variáveis. A associação de termos dostermos de L é definida a seguir:

a.) cada variável é associada de acordo com V;b.) cada constante é associada de acordo com J;c.) se t

1´, ..., t

n´ são associações de termos de t

1 ,..., t

n e f ´ é a

associação do símbolo função f, então f ´ ( t1´ , ... , t

n´ ) ∈ D é a associação

de termos para f ( t1 , ..., t

n ).

Seja J uma pré-interpretação de uma linguagem de primeira ordem L, V uma

Page 240: Livro - Introdução a Lógica para Ciências da Computação

240

associação de variáveis e A uma fórmula atômica. Suponha que A é p(t1, ...,

tn ) e d

1, ..., d

n ∈ D são as associações de termos de t

1, ..., t

n . Dizemos que A

J,

V = p (d

1, ..., d

n ) é a J-instância de A.

Exemplos:Consideremos a seguinte fórmula atômica da linguagem de primeira ordem

dos grupos:

q(x,y, f(x,y) ) (1)

Consideremos a pré-interpretação (Z,+) com f sendo a operação demultiplicação (.). Seja também a seguinte associação de variáveis: x por 2, ypor 3. Temos que a (Z,+)-instância de (1) é p(2,3, 2 . 3).

Modelo para uma fórmula, para uma teoria e para um conjunto de fórmulas

Seja I uma interpretação de uma linguagem de primeira ordem L eseja F uma sentença de L. Dizemos que I é um modelo para F se F forverdadeira em I.

Seja T uma teoria de primeira ordem e seja L uma linguagem de TT.Um modelo para T é uma interpretação para L que é um modelo para cadaaxioma de T. Se T tem um modelo dizemos que T é consistente.

Seja S um conjunto de sentenças de uma linguagem de primeira ordem L eseja I uma interpretação de L. Dizemos que I é um modelo para S se I é ummodelo para cada fórmula de S. Notemos que se S = F

1, ..., F

n é um

conjunto finito de sentenças então I é um modelo para S se e somente se éum modelo para F

1∧ ... ∧ F

n.

Exemplo:Retomemos o exemplo da teoria dos grupos. Temos que (Z,+ ) é um

modelo para a teoria de primeira ordem dos grupos pois cada axioma dateoria dos grupos é verdadeira em (Z,+). Notemos que (Q, .) também é ummodelo para a teoria dos grupos de primeira ordem.

Satisfatibilidade e Validade

Seja S um conjunto de sentenças de uma linguagem de primeira ordem L.

a.) S é dita satisfatível se L tem uma interpretação que é modelo para S; b.) S é válida se toda interpretação de L é modelo para S; c.) S é insatisfatível se nenhuma interpretação de L é modelo para S; d.) S é inválida se L tem uma interpretação que não é um modelo para S.

Conseqüência Lógica

Seja S um conjunto de sentenças e F uma sentença de uma linguagemde primeira ordem L. Dizemos que F é uma conseqüência lógica de S se paratoda interpretação I de L tivermos que I é um modelo para S implica que I é ummodelo para F.

Page 241: Livro - Introdução a Lógica para Ciências da Computação

241

Interpretações e Modelos de Herbrand

Universo de Herbrand

Seja L uma linguagem de primeira ordem. O universo de HerbrandU

L para L é o

conjunto de todos os termos que são formados das constantes e dossímbolos de função que aparecem em L.

Consideremos o seguinte programa lógico P1:

p(a).p(b).q(X) :- p(X).

A nossa linguagem de primeira ordem são as cláusulas de programade P

1. Temos que o universo de Herbrand de P

1 é U

L = a, b .

Base de Herbrand

Seja L uma linguagem de primeira ordem. A base de Herbrand BL

para L é o conjunto de todos os átomos que podem ser formados utilizandoos símbolos de predicados de L com os termos do universo de Herbrandcomo argumentos.

Temos para o programa P1 acima que a base de Herbrand é B

L =

p(a), p(b), q(a),q(b).

Pré-interpretação de Herbrand

Seja L uma linguagem de primeira ordem. A pré-interpretação deHerbrand para L é a pré-interpretação dada como segue:

a.) O domínio para pré-interpretação é o universo de HerbrandU

L;

b.) Constantes em L são associadas a elas mesmas em UL;

c.) Se f é um símbolo de função n-ária em L, então a aplicação(U

L)n em U

Ldefinida por (t

1, ..., t

n ) → f(t

1, ..., t

n) está associada a f.

Temos para o programa P1 a pré-interpretação dada como segue:

Domínio = a, b .Constantes de P

1 são associadas a elas mesmas.

Função f de P1 associada a ela mesma.

Interpretação de Herbrand

Uma interpretação de Herbrand para L é uma interpretação baseada napré-interpretação de Herbrand para L.

Page 242: Livro - Introdução a Lógica para Ciências da Computação

242

Modelo de Herbrand para um conjunto de fórmulas

Seja L uma linguagem de primeira ordem e S um conjunto de fórmu-las de L. Ummodelo de Herbrand para S é uma interpretação de Herbrand para L que é ummodelo de S.

Consideremos novamente o programa P1 e seja S o conjunto

formado pelas suas cláusulas de programa. Vamos reescrever o programa:

p(a).q(b).q(X) :- p(X).

O domínio da pré-interpretação de Herbrand para este programa é a,b . Não temos funções. Consideremos os predicados p e q como predicadosda interpretação de Herbrand. A interpretação de Herbrand que acabamosde construir é um modelo de Herbrand para o programa acima pois todas ascláusulas de programa são verdadeiras nesta interpretação.

Dois resultados envolvendo os modelos de HerbrandOs seguintes dois resultados são muito importantes para a

programação em lógica: relacionam a satisfatibilidade de sentenças emmodelos quaisquer com os modelos de Herbrand que são construtíveis.

Proposição 1. Seja S um conjunto de cláusulas e suponha que S temum modelo. Então S tem um modelo de Herbrand.

Proposição 2. Seja S um conjunto de cláusulas. Então S éinsatisfatível se e somente se não tem modelos de Herbrand (ouequivalentemente, S é satisfatível se e somente se tem modelo de Herbrand).

Um programa lógico P é um conjunto de cláusulas. Se este programativer um modelo então ele terá um modelo de Herbrand. Como os modelos deHerbrand podem ser construídos sem muitas dificuldades podemos verificarse as consultas a P são interpretações do modelo de Herbrand associado a P.

4. A LÓGICA CLÁSSICA.

Introdução.

Neste parágrafo apresentamos, ainda que toscamente, uma visãopanorâmica, de como se encontra a Ciência instituída por Aristóteles.Restringir-nos-emos á Lógica Clássica, deixando para uma próximaoportunidade as considerações sobre os outros tipos de lógica.

Desde já advertimos o leitor incauto e os especialistas que aclassificação ou subdivisão que apresentamos é uma das muitas possíveis,quiçá até apresente incongruências; também não tencionamos sermos

Page 243: Livro - Introdução a Lógica para Ciências da Computação

243

completos, nem entraremos em detalhes, de modo óbvio num texto comoeste.

Lógica Dedutiva Clássica.

A Lógica Dedutiva Clássica se ocupa do que hoje conhecemos porCálculo de Predicados de Primeira Ordem com ou sem igualdade. Ela tem seestabelecido como sendo a parte nuclear da Lógica Clássica. Naturalmenteela engloba alguns sub-sistemas importantes como o cálculo proposicionalclássico, o cálculo implicativo clássico e outros.

A Lógica Dedutiva Clássica se subdivide nas seguintes teoriasprincipais:

• Teoria dos Conjuntos.• Teoria dos Tipos.• Lógicas de Ordem Superior.• Teoria das Categorias.• Teoria dos Topos.• Teoria das Alegorias.

1. A Teoria dos Conjuntos.A Teoria dos Conjuntos é uma das teorias mais importantes de toda a

Lógica, descoberta por G. Cantor no final do século passado. Porém, sendouma teoria recém descoberta, inúmeras dificuldades começaram a seremdescobertas. A mais importante, devida a B. Russell, leva seu nome: oParadoxo de Russell (vide na Introdução detalhes deste paradoxo). Suarestauração foi efetuada com o emprego do método axiomático. Um dosresultados surpreendentes que se constatou é que as diversas axiomáticasque resultaram não se mostraram equivalentes entre si, surgindo, pois, aindagação: qual a teoria axiomática que se aproxima mais da teoria intuitivade Cantor? Uma definição que podemos dar para a Teoria dos Conjuntos éque ela se constitui na disciplina que investiga matematicamente o símbolode pertença ∈.

A Teoria dos Conjuntos se subdivide em dois grandes tipos;

• Teoria dos Conjuntos Cantorianas.• Teoria dos Conjuntos Não-Cantorianas.

1.1 Teoria dos Conjuntos Cantorianas.A Teoria dos Conjuntos Cantorianas, também cognominada “Teoria

Clássica de Conjuntos” é a teoria em que valem certos princípios tais comoa Hipótese do Contínuo, o Axioma da Escolha, a Hipótese do Diamante ou aHipótese de Suslin.

Os principais sistemas Cantorianos são os seguintes

Page 244: Livro - Introdução a Lógica para Ciências da Computação

244

• Teoria de Zermelo-Fraenkel.• Esta teoria foi introduzida por E. Zermelo (1871-1953), melhorada

posteriormente por A. Fraenkel (1929- ) e chegou à uma teoria sensacionalcom T. Skolem (1887-1963). Talvez, a teoria ZF seja a teoria que mais seaproxime da teoria intuitiva de Cantor. É nesta teoria que se desenvolve aMatemática usual (espaços vetoriais, cálculo diferencial e integral,topologia, álgebra, etc.) ensinada de modo regular.

• Teoria de von-Neumann-Bernays-Gödel.• Sistema NF de Quine.• Sistema ML de Quine.• Sistema de Kelley-Morse.

1.2 Teoria dos Conjuntos Não-Cantorianas.Nestas não valem alguns dos princípios que citamos no caso

anterior. Podemos ter, então teorias de conjuntos em que não valem o Axiomada Escolha na sua forma geral, ou a Hipótese do Contínuo, ou outros. Hojesão célebres os trabalhos devidos a:

• Sistemas de Solovay.Neste modelo de teoria dos conjuntos não vale o Axioma da Escolha

na sua forma geral, mas uma forma particular conhecida como formaenumerável do Axioma da Escolha. Um resultado interessante num modelodessa teoria dos conjuntos é que todo subconjunto da reta real é Lebesguemensurável. Outra diferença, em relação à teoria cantoriana, é que todooperador num espaço de Hilbert é limitado e, por conseguinte, contínuo.Muitas teorias da Física Quântica estão estruturadas através do conceitode espaço de Hilbert e conceitos associados. Logo, advém uma indagaçãoassaz delicada: como fica uma mesma teoria física acomodada em modelosde teorias de conjuntos distintas? Qual é a “verdadeira” teoria dosconjuntos para a Física?

• Sistemas de CohenOs resultados de independência em Teoria dos Conjuntos

obtidos por Cohen permitiu que tomássemos conhecimento de modelos dateoria em que não são válidos certos princípios como, por exemplo, aHipótese do Contínuo que afirma que não há número cardinal entre oenumerável e o contínuo dos números reais. Tais considerações, também,deram origem a Matemáticas Não-cantorianas.

• 2 A Teoria dos Tipos.A Teoria dos Tipos inicialmente foi proposta pelo próprio B.

Russell para se superar a antinomia de Russell. Grosso modo, a Teoria dosTipos põe uma “tipificação” nos objetos que se referem na linguagem,evitando-se, assim a formação de conjuntos muito grandes na teoria deCantor, conjuntos esses, causadores dos paradoxos.

A Teoria dos Tipos se subdivide em:

Page 245: Livro - Introdução a Lógica para Ciências da Computação

245

2.1 Teoria dos Tipos Russellianas• Teoria Ramificada dos Tipos de Russell-Whitehead• Teoria Simples dos Tipos de Ramsey-Chwistek• Teoria Suplementar de Gödel• Teoria de Quine• Teorias Cumulativas

2.2 Teoria dos Tipos Não-Russellianas.Assim como existem as Teorias Russellianas podemos cultivar as

Não-Russellianas, teorias estas em que não valham certos princípios básicosda primeira.

3 Linguagens de Ordem Superior.As Linguagens de Ordem Superior predicam não somente os objetos

em si, porém, predicam predicados da linguagem em apreço; neste exemplo,dão origem a linguagens de segunda ordem. Muitos lógicos são de opiniãoque a verdadeira Matemática só é expressável nestas linguagens (de segundaordem). Quando se predica predicados de predicados, temos as linguagensde terceira ordem, e assim por diante.

4 Teoria das Categorias.A Teoria das Categorias surgiu da necessidade de se sistematizar

teoria de teorias. Ela foi introduzida por S. McLane no início da década detrinta. Como se discutiu anteriormente, se considerarmos a totalidade deuma certa teoria, por exemplo, a teoria dos grupos, esta não forma conjunto,e, por conseguinte, não é conveniente que se faça ali. Para a questão dafundamentação da Teoria das Categorias foram investigados por matemáticoscomo C. Ehressmann, Grothendieck, Houdebine, e outros, propondo sistemasfortes de teorias dos conjuntos.

5 Teoria dos Topos.

6 Teoria das Alegorias.

Esquema da sub-divisão

Page 246: Livro - Introdução a Lógica para Ciências da Computação

246

Page 247: Livro - Introdução a Lógica para Ciências da Computação

247

REFERÊNCIA BIBLIOGÁFICA[Abe & Papavero 92] ABE, J.M. & N. PAPAVERO, Teoria Intuitiva dosConjuntos. Makron Books, 1992.

[Iséki & Abe 01] ISÉKI, K., & J.M. ABE, Lógica Matemática e Aplicações,2001, em preparo.

[Da Costa 80] DA COSTA, N. C. A., Introdução aos Fundamentos da Lógi-ca. Hucitec, 1980.

[Halmos 62] HALMOS, P., Algebraic Logic, Chelsea, 1962.

[Kleene 52] KLEENE, S. C., Introduction to Metamathematics. Van Nostrand,1952.

[Kneale & Kneale 68] KNEALE, W & M. KNEALE, O Desenvolvimento daLógica. Fundação Calouste Gulbenkian, 3a edição, 1968.

[Lloyd 84] LLOYD, J. W., Foundations of Logic Programming. Springer-Verlag, 1984.

[Mendelson 87] MENDELSON, E., Introduction to Mathematical Logic.Wadsworth &Brooks, 3a edição, 1987.

[Mendelson 77] MENDELSON, E., Álgebra Booleana e Circuitos deChaveamento. McGraw-Hill do Brasil Ltda, 1977.

[Shoenfield 67] SHOENFIELD, J. R., Mathematical Logic. Addison-Wesley,1967.

[Suppes 57] SUPPES, P., Introduction to Logic. Van Nostrand, 1957.

Page 248: Livro - Introdução a Lógica para Ciências da Computação