Introducao A Logica Matematica - Rogerio Miguel Coelho.pdf

  • Uploaded by: wylton tadd
  • 0
  • 0
  • January 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Introducao A Logica Matematica - Rogerio Miguel Coelho.pdf as PDF for free.

More details

  • Words: 21,049
  • Pages: 205
Loading documents preview...
Introdução à Lógica Matemática Rogério Miguel Coelho 1º edição Vitória 2014

Copyright © 2014 - Rogério Miguel Coelho Todos os direitos reservados. ISBN13: 978-85-920580-0-5

DEDICAÇÃO

Este livro é dedicado a todos meus alunos que me incentivaram a escrever um livro sobre Lógica e ao meu eterno orientador Prof. Dr. Luiz Fernando Gomes Soares.

Homenagem in memoriam Ary Ferraço Coelho

Agradecimentos Em primeiro lugar gostaria de agradecer a Deus por todas as dádivas que vem me fornecendo ao longo da vida. Sem sombras de dúvidas o agradecimento a todos os meus alunos pelo incentivo, entusiasmo e bom humor compartilhado em sala de aula ao longo destes anos. Aos colegas de licenciatura da FAESA (Faculdades Integradas Espírito Santenses) pelas sugestões, ao coordenador do curso de Ciência da Computação Prof. Rober Marcone Rosi pelo apoio. Não poderia deixar de mencionar os colegas de trabalho da Petrobras pelas sugestões de exercícios voltados para área da computação, em particular ao Camilo Calvi pela revisão do livro. Agradecimento especial a minha esposa Isabel pelo amor e dedicação. Por fim, minha mãe e irmãs Lorena e Juliana por toda ternura e carinho ao longo da minha vida.

Autor Rogério Miguel Coelho é professor do Departamento de Informática da FAESA (Faculdades Integradas Espírito Santenses) desde 2008. É graduado em Engenharia de Computação pela UFES (Universidade Federal do Espírito Santo) com mestrado em Informática pela PUC-Rio (Pontifícia Universidade Católica do Rio de Janeiro). Leciona Lógica Matemática para os cursos de Ciência da Computação e Sistema de Informação na qual tem pesquisado novas ferramentas colaborativas para o ensino de Lógica Matemática. Adicionalmente, no meio corporativo trabalha como Analista de Sistemas desde 2002, atuando nas áreas de Desenvolvimento de Sistemas, TV-Digital (Participação do comitê Brasileiro de TV-Digital - Ginga), Modelagem de Processos, Governança de Tecnologia da Informação, Gerenciamento de Infraestrutura de TI e Prospecções de Novas Tecnologias. Trabalhou em algumas empresas, tais como: EscelsaNet, Accenture e, atualmente, trabalha na Petrobras desde 2006. Contato com o autor pode ser realizado através de email [email protected] .

Índice 1 - Introdução à Lógica 1.1 - Argumento Dedutivo e Argumento Indutivo 1.2 - Lógica Dedutiva 1.3 – Postulados Clássicos 1.4 - Proposições 1.5 - Resumo 1.6 - Exercícios 1.7 - Respostas 2 - Conectivos Lógicos 2.1 - Conectivos Lógicos 2.2 - Conectivo: Negação 2.3 - Conectivo: E 2.4 - Conectivo: Ou (Disjunção Inclusiva) 2.5 - Conectivo: Ou Exclusivo (Disjunção Exclusiva) 2.6 - Conectivo: Condicional 2.7 - Conectivo: Bicondicional 2.8 - Representação dos Conetivos Lógicos 2.9 - Fórmulas Matemáticas Bem Formadas (fmbf) 2.10 - Comprimento de Fórmulas Matemáticas Bem Formadas 2.11 - Resumo 2.12 - Exercícios 2.13 - Respostas 3 - Tabela Verdade 3.1 - Precedência de Operadores 3.2 - Resolução através de Tabela Verdade

3.3 - Exemplos de Construção de Tabelas Verdades 3.4 - Tautologia, Falácia e Contingência. 3.5 - Resumo 3.6 - Exercícios 3.7 - Respostas 4 - Equivalências Tautológicas 4.1 - Principais Equivalências Tautológicas 4.2 - Resumo 4.3 - Exercícios 4.4 - Respostas 5 - Regras de Inferência 5.1 - Argumento Válido 5.2 - Modus Ponens (MP) 5.3 - Modus Tollens (MT) 5.4 - Adição (A) 5.5 - Simplificação (S) 5.6 - Conjunção (C) 5.7 - Silogismo Disjuntivo (SD) 5.8 - Silogismo Hipotético (SH) 5.9 - Resumo 5.10 - Exercícios 5.11 - Respostas 6 - Lógica dos Predicados 6.1 - Variável, Constante, Termo e Predicado 6.2 - Função Proposicional 6.3 - Quantificadores: Universal e Existencial 6.4 - Formalização do Cálculo de Predicados 6.5 - Equivalência entre os Quantificadores:

6.6 - Regras de Formação do Cálculo de Predicado 6.7 - Predicados Binários 6.8 - Validade de Argumentos com Quantificadores 6.9 - Particularização Universal 6.10 - Particularização Existencial 6.11 - Generalização Universal 6.12 - Generalização Existencial 6.13 - Resumo 6.14 - Exercícios 6.15 - Respostas 7 - PROLOG 7.1 - A Linguagem PROLOG 7.2 - Sintaxe da Linguagem PROLOG 7.3 - Sintaxe dos Conectores Lógicos em PROLOG 7.4 - Sintaxe dos Operadores Matemáticos em PROLOG 7.5 - Listas em PROLOG 7.6 - Resumo 7.7 - Exercícios 7.8 - Respostas 8 - Referências Bibliográficas

1 - Introdução à Lógica A busca por soluções de problemas de nosso cotidiano através da Lógica relatam desde a antiguidade quando grandes mestres da Grécia tinham interesse em formular normas do uso correto da razão. Podemos dizer que a Lógica Computacional teve suas origens por volta de 1750 quando o matemático Euler introduziu a representação gráfica das relações entre sentenças. Com base neste trabalho de Euler, outro matemático, Venn, estabeleceu uma forma de representação gráfica das intersecções e uniões de conjuntos, conhecido hoje como Diagrama de Venn. Em 1847, O matemático DeMorgan escreveu um trabalho Formal Logic (Lógica Formal) onde estabeleceu uma lei com seu nome (Lei DeMorgan) que é utilizada amplamente na Lógica até os dias de hoje. Veremos essa lei e sua prova no Capítulo 4. Paralelamente ao trabalho do matemático DeMorgan, outro grande matemático conhecido como Boole escreveu o livro An Investigation of the laws of thought (Uma Investigação das Leis do Pensamento). Este livro aborda a “Álgebra de Boole” em que são definidas as principais relações entre os Operadores Lógicos (E, OU, SE p ENTÃO q e etc). No Capítulo 3 serão apresentados os principais Operadores Lógicos e suas relações em detalhes. Vale destacar que a Álgebra de Boole só teve aplicação realmente prática por volta de 1938, quando Claude E. Shannon provou que a análise de circuitos de relés pode ser realizada através da Álgebra de Boole, servindo de base para a Teoria de Interruptores. Atualmente, o estudo da Lógica Matemática ajuda as pessoas na resolução de problemas de nosso cotidiano através da modelagem conceitual e suas regras de soluções. Estudantes da área do Direito estudam Lógica para definir a melhor abordagem perante os jurados para chegarem a uma conclusão de culpado ou inocente. Militares estudam Lógica com a intenção de elaborar as melhores estratégias de guerras através de ameaças e evidências. Estudantes da área de filosofia estudam Lógica para aumentar sua capacidade de argumentação em seus discursos questionadores.

Já estudantes da área da Ciência da Computação estudam Lógica Matemática com o objetivo de aumentar sua capacidade de verificação formal de programas, provas automáticas de teoremas e Inteligência Artificial. Este capítulo tem como objetivo introduzir os conceitos básicos de Lógica Matemática, os principais Postulados da Lógica e o Conceito de Proposições.

1.1 - Argumento Dedutivo e Argumento Indutivo Todo estudo contemplado neste livro foca exclusivamente na investigação da validade de uma conclusão utilizando como base um conjunto de fatos. Um Argumento pode ser entendido como um conjunto de fatos (premissas) e uma única conclusão (verdadeira ou falsa). Vejamos dois exemplos de Argumentos: Todo servidor possui memória. Deep Blue é um servidor. Logo, Deep Blue possui memória. É comum o sistema não funcionar após a atualização da versão. O sistema foi atualizado. Logo, o sistema não funcionará. O primeiro exemplo de Argumento é considerado um Argumento Dedutivo, pois o conjunto de fatos (premissas) verdadeiros é suficiente para saber que a conclusão é verdadeira. Vejamos a análise do primeiro Argumento: Premissa 1: Todo servidor possui memória. Premissa 2: Deep Blue é um servidor. Conclusão: Deep Blue possui memória. Explicação: Se todo servidor tem memória e Deep Blue é um servidor, logo Deep Blue tem memória. O próximo exemplo de Argumento é considerado um Argumento Indutivo, pois o conjunto de fatos (premissas) verdadeiros não é suficiente para saber se a conclusão é verdadeira ou falsa. Análise do segundo Argumento: Premissa 1: É comum o sistema não funcionar após a atualização da versão.

Premissa 2: O sistema foi atualizado. Conclusão: Logo, o sistema não funcionará. Explicação: A palavra comum não nos dá garantia total do sistema não funcionar após o mesmo ser atualizado. Assim, não podemos afirmar com 100% de certeza que o Argumento é válido. O escopo deste livro engloba apenas o estudo de Lógica de Argumentos Dedutivos, pois nos possibilitará determinar com exatidão se um argumento é verdadeiro ou falso. O estudo de Argumentos Indutivos pode ser aprofundado através da teoria da probabilidade.

1.2 - Lógica Dedutiva A Lógica Dedutiva é a parte da Lógica que faz uso da dedução matemática para obter uma conclusão a respeito de determinadas premissas. Na Lógica Dedutiva, um axioma ou postulado é uma sentença ou proposição que não é provada ou demonstrada, pois é considerada como óbvia ou como um consenso inicial necessário para a construção ou aceitação de uma teoria. Por essa razão, é aceito como verdade e serve como ponto inicial para dedução e inferências de outras verdades (dependentes de teoria). Na Lógica Matemática, um axioma é uma hipótese inicial de onde outros enunciados são logicamente derivados. Pode ser uma sentença, uma proposição, um enunciado ou uma regra que permite a construção de um sistema formal. Diferentemente de teoremas, axiomas não podem ser derivados por princípios de dedução e nem são demonstráveis por derivações formais, simplesmente porque eles são hipóteses iniciais. Isto é, não há mais nada a partir do que eles seguem logicamente (em caso contrário eles seriam chamados teoremas). Em muitos contextos, "axioma" e "postulado" são usados como sinônimos. Exemplo de um postulado: “Quando é retirada uma de duas quantias iguais, sobra uma quantia igual a que foi retirada.”. Isso é claro e não precisa de prova, por isso é definido como postulado.

1.3 – Postulados Clássicos O estudo da Lógica Dedutiva inicia-se através de três postulados clássicos. São eles: Princípio da Identidade: Um ser é sempre igual a si mesmo. Princípio da Não-Contradição: Garante ser impossível uma afirmação ser verdadeira e falsa ao mesmo tempo, ou seja, uma afirmação não pode ser simultaneamente verdadeira e falsa na Lógica Clássica. Uma ocasião onde esse princípio pode ser aplicado é quando diferentes pessoas ou mesmo teorias fazem afirmações contraditórias. Por exemplo, um cientista afirma que existe vida inteligente no universo. Já outro cientista afirma que não existe vida inteligente no universo. Ora, ambos não podem estar falando a verdade ao mesmo tempo. Isso não quer dizer que saibamos qual deles está certo, podemos em algumas situações não ter evidências ou indícios suficientes para decidir, mas podemos afirmar que duas afirmações opostas nunca serão ambas verdadeiras ou ambas falsas. Um caso interessante pode ser a crença em vida após a morte: algumas pessoas acreditam que existe vida após a morte, outras que não. De acordo com o princípio, não pode ser o caso de que ambos os lados estejam falando a verdade. Nesse caso, parece que não temos evidências nem para um nem para outro. Mesmo assim, podemos saber com certeza e de antemão que as duas coisas não podem ser ambas verdadeiras. É importante destacar a definição de paradoxo em conjunto com este postulado. A palavra paradoxo vem do latim (paradoxum) e do grego (paradoxos). O prefixo “para” quer dizer contrário a, ou oposto de, e o sufixo “doxa” quer dizer opinião. Vejamos a seguinte frase: “A sentença escrita

neste livro é falsa.”. Ora, se esta sentença é falsa então ela verdadeira. Mas, se está escrita que ela é falsa como pode ser verdadeira? Esse é um caso de um paradoxo. Assim, podemos concluir que um paradoxo nada mais é que é uma declaração aparentemente verdadeira que leva a uma contradição lógica. Um exemplo clássico de paradoxo é o seguinte: O barbeiro é um homem da cidade que faz a barba de todos os homens da cidade que não barbeiam a si mesmos. Você deve estar se perguntado: Quem barbeia o barbeiro? Esta questão leva a um paradoxo porque, de acordo com a afirmação acima, ele pode ser barbeado por: ele mesmo ou o barbeiro (que passa a ser ele mesmo). No entanto, nenhuma destas possibilidades são válidas, pois: se o barbeiro barbear-se a si mesmo, então o barbeiro (ele mesmo) não deve barbear a si mesmo. Se o barbeiro não se barbeia a si mesmo, então ele (o barbeiro) deve barbear a si mesmo. Como isso é possível sem quebrar a regra inicial? Vejamos mais um exemplo de paradoxo, só que agora veremos um paradoxo semântico, a famosa frase de Camões: “O Amor é ferida que dói e não se sente”. O paradoxo semântico existe nessa frase porque o poeta diz que “dói” e ao mesmo tempo “não sente”. Ora: como pode saber se dói ou não, se ele não sente? Ou, como é possível não sentir o que dói? Princípio do Terceiro Excluído: Toda proposição ou é falsa ou verdadeira, ou seja, não existe dúvida e nem outra opção. Por exemplo, uma moeda tem duas faces (cara e coroa). Podemos atribuir o valor lógico verdadeiro para a face cara e o valor lógico falso para a face coroa. Sempre que jogarmos uma moeda no chão o resultado será cara (V) ou coroa (F), ou seja, nunca um resultado poderá ser outro resultado além de V e F.

Esses postulados são a base de todas as deduções lógicas para Argumentos Dedutivos.

1.4 - Proposições A Lógica Formal pode representar as afirmações que fazemos em linguagem cotidiana para apresentar fatos ou transmitir informações. Uma Proposição (ou declaração) é uma sentença simples que temos como deduzir com certeza se ela é falsa ou verdadeira. As proposições serão representadas por letras minúsculas (p, q, r, s, t etc) ao longo deste livro. Exemplos de Proposições: Dois é um número par. (Verdade). O Google é uma ferramenta de busca na internet. (Verdade). Não existe vírus para o sistema operacional Windows. (Falso). Exemplos que não são Proposições: Aquele aluno é muito talentoso. (Não temos como saber se é verdade, pois não sabemos qual é o aluno!). Como você está? (Não é uma afirmação verdadeira ou falsa). Vale destacar que todas as sentenças interrogativas e exclamativas não são proposições. Abaixo, temos as seguintes representações Matemáticas para as proposições anteriores: p: Dois é um número par. (Verdade). p = V (Valor lógico de p). q: O Google é uma ferramenta de busca na internet. (Verdade). q = V (Valor lógico de q). r: Não existe vírus para o Sistema Operacional Windows. (Falso). r = F (Valor lógico de r). É importante destacar que o mapeamento das proposições da Linguagem

Natural em Linguagem Matemática sempre acontecerá através de proposições. Com o objetivo de aumentar nossa capacidade de representação de Linguagem Natural para Linguagem Matemática precisaremos de conectores lógicos para relacionar várias proposições, tais como: “OU”, “E”, “NEGAÇÃO”, “SE p ENTÃO q”, “SE E SOMENTE SE” e etc. No próximo capítulo veremos esses conectores lógicos e seus valores lógicos (verdadeiro ou falso).

1.5 - Resumo 1) Um Argumento pode ser entendido como um conjunto de premissas com uma conclusão. 2) Argumento Dedutivo: é válido quando suas premissas, se verdadeiras, a conclusão é também verdadeira. 3) Argumento Indutivo: a verdade das premissas não basta para assegurar a verdade da conclusão. 4) Axioma ou Postulado é uma sentença ou proposição que não é provada ou demonstrada, pois por natureza é considerada como um consenso inicial necessário para a construção ou aceitação de uma teoria. 5) Princípio da Identidade: Um ser é sempre igual a si mesmo. 6) Princípio da não-contradição: Garante ser impossível uma coisa ser e não ser ao mesmo tempo. 7) Princípio do Terceiro Excluído: Toda proposição ou é falsa ou verdadeira, ou seja, não existe dúvida. 8) Um paradoxo é uma declaração aparentemente verdadeira que leva a uma contradição lógica. 9) Uma proposição em Lógica são afirmações que podemos determinar seu valor lógico (verdadeiro ou falso) e são representadas por letras minúsculas.

1.6 - Exercícios 1 - Qual das frases abaixo são proposições válidas? a) O número 2 mais 3 é maior do que 7. b) Como está o seu computador? c) O consumo de CPU do servidor vai subir amanhã. d) Rogério Coelho é professor de Lógica Matemática. e) Existe vida em outro planeta. 2 - Qual postulado clássico pode ser aplicado nas frases abaixo de Aristóteles. a) "Efetivamente, é impossível a quem quer que seja acreditar que uma mesma coisa seja e não seja". b) "Quem diz de uma coisa que é ou que não é, ou dirá o verdadeiro ou dirá o falso. Mas se existisse um termo médio entre os dois contraditórios nem do ser nem do não ser poder-se-ia dizer que é ou que não é". c) “Todo ser é igual a si mesmo”. 3 – Qual das afirmações abaixo não atende aos postulados clássicos de Lógica? a) Penso logo existo. b) Ao jogar uma moeda para alto o resultado do lançamento sempre será cara ou coroa, não existe outra possibilidade. c) Um formulário no qual pergunta o sexo existe apenas duas opções: masculino ou feminino. d) Na computação quântica um bit pode, ao mesmo tempo, ter o valor igual a 0 e 1. e) z igual a z.

4 – Qual das afirmações abaixo não atende aos postulados clássicos de Lógica? a) (5 + 3 – 2 +2) / (5 -3) + 2 = (5 + 3 – 2 +2) / (5 -3) + 2. b) Estava na rua e vi João com uma luneta. c) Todo homem é mortal. d) A honra do ser humano é intocável. e) Os cientistas da área de computação sabem montar o cubo mágico. 5 – Qual frase abaixo não é um paradoxo? a) “O Amor é ferida que dói e não se sente.”. b) Pinóquio disse: “O meu nariz vai crescer”. c) 1 = -1 pois (1)2 = (-1)2 d) “Quanto mais damos mais temos.”. e) “O melhor improviso é aquele que é melhor preparado”. 6 - Dada as definições abaixo relacione com as sentenças seguintes. a – Axioma. b – Teorema. c – Princípio da Identidade. d – Princípio da Não-Contradição. e – Princípio do Terceiro Excluído. f – Paradoxo. i) Você deve escolher qual é seu time de futebol aqui no Espírito Santo: Rio Branco ou Desportiva, não tem nenhuma outra opção. ii) Se traçarmos num triângulo uma linha que seja paralela a algum dos seus lados, obtemos dois triângulos semelhantes.

iii) Uma sentença ou proposição que não é provada ou demonstrada e é considerada como óbvia ou como um consenso inicial necessário para a construção ou aceitação de uma teoria. iv) “Eu fujo ou não sei não, mas é tão duro este infinito espaço ultra fechado”. Carlos Drummond de Andrade. v) Algumas pessoas acreditam em vida após a morte e outras não. vi) Dada as seguintes expressões “x+5=7” e “y-5=7” podemos concluir que ambas são... 7 - Dada a seguinte frase: O barbeiro é um homem da cidade que faz a barba de todos os homens da cidade que não barbeiam a si mesmos. Tal frase pode ser classificada como um paradoxo? Justifique sua resposta.

1.7 - Respostas 1) a) É uma proposição válida. b) Não é uma proposição válida. Perguntas não são premissas. c) Não uma proposição válida. Não sabemos qual é o servidor. d) É uma proposição válida. e) É uma proposição válida. Pois mesmo que eu não saiba agora se existe vida em outro planeta no futuro saberemos se essa afirmação será verdade ou falsa. 2) a) Princípio da Não-Contradição. b) Princípio do Terceiro Excluído. c) Princípio da Identidade. 3) d . Princípio da Não-Contradição. 4) b . Observe que a frase é ambígua, pois não sabemos se João estava com uma luneta ou se eu vi João utilizando uma luneta. 5) c. Pois não é um paradoxo e sim uma prova inválida. 6) i - e ; ii - b (Teorema de Tales) ; iii - a ; iv - f ; v - d ; vi - c. 7) Sim. A Pergunta chave para a prova do paradoxo é: Quem faz a barba do barbeiro? Não pode ser ele mesmo pois o Barbeiro só faz a barba de quem não se barbeia. Mas, se ele não faz a barba de si mesmo então o barbeiro poderá fazer.

2 - Conectivos Lógicos Durante um diálogo, utilizamos várias proposições para apresentarmos nossos pensamentos, evidências e fatos. Muitas vezes, essas representações de fatos e evidências necessitam se relacionar com diferentes afirmações que podem ser verdadeiras ou falsas (proposições). Para a representação das relações entre diferentes proposições são necessários os Conectivos Lógicos. Este capítulo tem como objetivo apresentar os principais conectores de Lógica, os valores lógicos de cada conector, a definição de fórmulas matemáticas válidas e, por fim, a representação de Linguagem Natural em Linguagem Matemática.

2.1 - Conectivos Lógicos Os principais Conectivos Lógicos e as suas representações simbólicas abordadas neste livro são:

Veremos a seguir alguns exemplos de frases em Linguagem Natural representados em Linguagem Matemática através das proposições utilizando conectivos.

2.2 - Conectivo: Negação O Conectivo Negação (~) é utilizado para negar uma sentença. É importante destacar que embora na Linguagem Natural a negação esteja no meio da frase, a representação da negação em Linguagem Matemática estará sempre antes da frase. Assim, a interpretação da frase: O Linux não tem vírus é analisada conforme abaixo. Frase: O Linux não tem vírus. Proposição p: Linux tem vírus. Representação Matemática: ~p. Dada uma proposição p, podemos deduzir outra proposição denominado de negação de p através do conectivo ~. Assim, se p for uma proposição verdadeira ~p é falso, e se p for falso, então ~p é verdade. Abaixo, temos a representação da negação de uma Tabela Verdade de apenas uma proposição.

Tabela 1 Conectivo Negação

Os valores V e F representam respectivamente o valor lógico verdadeiro e falso. Devemos ter cuidado ao negar uma premissa para que sua negação não tenha interpretação errada. Vejamos o seguinte exemplo clássico: Todo homem é mortal. A negação intuitiva desta frase seria: Nem todo homem é mortal. Mas, observe que se escrevo desta forma estou afirmando que existem ainda homens que sejam mortais, ou seja, a negação não realizada em toda a sua completude! O correto seria: Não é verdade que: Todo homem é mortal.

Vejamos mais um exemplo: p: Rogério leciona de segunda a sexta. ~p: Rogério não leciona de segunda a sexta. Você não poderia dizer que a negação de p seria: Rogério leciona no final de semana, pois isso não faz parte do escopo e não é dedutível. Obs: Embora na Linguagem Natural a negação esteja no meio da frase, a representação da negação em Linguagem Matemática estará sempre antes da frase. Assim, a interpretação da frase acima seria: Não é verdade que: o Linux tem vírus. (~p). Devemos ter cuidado ao negar uma premissa para que sua negação não tenha interpretação errada. Vejamos o seguinte exemplo clássico: Todo homem é mortal. A negação intuitiva desta frase seria: Nem todo homem é mortal. Mas, observe que se escrevo desta forma estou afirmando que existem ainda homens que sejam mortais, ou seja, a negação não realizada em toda a sua completude! O correto seria: Não é verdade que: Todo homem é mortal.

2.3 - Conectivo: E O conectivo E (^) passa a ideia de dois fatos estarem ocorrendo simultaneamente. Assim, dadas duas proposições (p , q) , podemos obter uma terceira proposição (p ^ q) , denominada de Conjunção das duas proposições da seguinte forma: Proposição p: Linux tem código fonte aberto. Proposição q: Linux é de graça. Representação Matemática: p ^ q. Frase: O Linux tem código fonte aberto e é de graça. A Tabela verdade do conectivo E (^) está representada abaixo:

Tabela 2 Conectivo E

Vale destacar que a proposição composta p ^ q só será verdade quando todas as proposições individuais (p , q) forem verdadeiras. Exemplo 1: p: Camilo gosta de Matemática (p = Verdade). q: Camilo gosta de Lógica (q = Verdade). Logo, podemos deduzir que: Camilo gosta de Matemática e Lógica como

verdade, pois p ^ q = V ↔ V ^ V = V. Exemplo 2: p: Camilo gosta de Matemática (p = Verdade). q: Camilo gosta de ir para academia (q = Falso). Logo, podemos deduzir que: Camilo gosta de Matemática e gosta de ir para academia é falso, pois p ^ q = F ↔ V ^ F = F.

2.4 - Conectivo: Ou (Disjunção Inclusiva) O conectivo Ou (v) passa a ideia de se um fato for atendido todo o conjunto será satisfeito. Assim, dadas duas proposições (p , q) , podemos obter uma terceira proposição (p v q) , denominada de Disjunção Inclusiva das duas proposições da seguinte forma: Proposição p: Linux pode ser baixado no site da RedHat. Proposição q: Linux pode ser baixado no site do Ubuntu. Representação Matemática: p v q. Frase: O Linux pode ser baixado no site da RedHat ou no site do Ubuntu. A Tabela verdade do conectivo Ou (v) está representada abaixo:

Tabela 3 Conectivo Ou

Vale destacar que a proposição composta p v q só será falsa quando todas as proposições individuais (p , q) forem falsas. Vejamos o exemplo abaixo: p: Luiz Fernando Gomes Soares é professor de Redes. (p = Verdade) q: Luiz Fernando Gomes Soares é professor de Sistemas Multimídias. (q =

Verdade) Logo, podemos deduzir que: Luiz Fernando Gomes Soares é professor de Redes de Computadores ou Sistemas Multimídias. (p v q = V ↔ V v V = V).

2.5 - Conectivo: Ou Exclusivo (Disjunção Exclusiva) Existe um caso particular da Disjunção que é denominado de Ou Exclusivo (#), na qual embora tenhamos duas opções ou mais opções só podemos escolher uma. Assim, o Ou Exclusivo, também conhecido como Disjunção Exclusiva, só será verdade quando apenas uma das proposições for verdadeira. Pode ser entendido também como Um Dos Dois. Vejamos a tabela do ou exclusivo:

Tabela 4 Conectivo Ou Exclusivo

Exemplo do Ou Exclusivo: Frase: Igor servirá na Marinha ou no Exército ou na Aeronáutica quando completar 18 anos. Observe que nunca o Igor poderá servir ao mesmo tempo no Exército e na Marinha. É importante destacar que um argumento ao ser transformado para Linguagem Matemática a interpretação do conectivo OU deve ser analisada se é o caso da disjunção ser Inclusiva (v) ou Exclusiva (#).

2.6 - Conectivo: Condicional De todos os conectores lógicos o que apresenta maior dificuldade de entendimento por parte dos alunos é o conector Condicional, representado pelo símbolo (→). O problema da interpretação do conector Condicional (Se p Então q) é que a implicação em português geralmente está associada a uma relação de causa e efeito, o que não necessariamente ocorre no estudo da Lógica Matemática, pois o valor semântico do conector Condicional (→) está relacionado a implicação matemática. Uma proposição condicional (p → q) é falsa (F) apenas quando a premissa antecedente (p) for verdadeira (V) e a premissa consequente (q) for falsa (F). Abaixo, a representação Lógica do conector Condicional:

Tabela 5 Conectivo Condicional

Para melhor entendimento da tabela do Condicional vejamos o exemplo a seguir: As seguintes premissas foram definidas: p: x é um número maior que 10. q: x2 é um numero maior que 100. Análise da primeira linha da Tabela 5 - Conectivo Condicional:

Dado que x = 11, então temos: p: 11 é um número maior que 10. (p = V). q: (11)2 é um número maior que 100. (q = V). Assim, podemos afirmar que a variável x com o valor igual a 11 resulta em uma premissa p com valor lógico verdadeiro, pois 11 é maior que 10. Temos também que a mesma variável x = 11 implica matematicamente em uma premissa q com valor lógico verdadeiro, pois 121 é maior que 100. A conclusão que temos neste caso é que uma premissa p verdadeira implica matematicamente em uma premissa q verdadeira. Logo, o conector Condicional neste caso é VERDADEIRO, primeira linha da Tabela 5 Conectivo Condicional. Análise da segunda linha da Tabela 5 - Conectivo Condicional: É impossível encontrar um número x que satisfaça a premissa p: x é um número maior que 10 e, AO MESMO TEMPO, ESSE MESMO NÚMERO PARA X NÃO SATISFAÇA a premissa q: x2 é um numero maior que 100. Por isso, a segunda linha da Tabela 5 - Conectivo Condicional é FALSO. Análise da terceira linha da Tabela 5 - Conectivo Condicional: Dado que x=-20, então temos: p: -20 é um número maior que 10. (p = F). q: (-20)2 é um número maior que 100. (q = V). Assim, podemos afirmar que x com o valor igual a -20 atribui p com um valor lógico falso que implica matematicamente em um q com um valor lógico verdadeiro. Logo, isso é possível! Por isso, a terceira linha da Tabela 6 - Conectivo Condicional é VERDADE.

Análise da quarta linha da Tabela 5 - Conectivo Condicional : Dado que x =5, então temos: p: 5 é um número maior que 10. (p = F). q: (5)2 é um número maior que 100. (q = F). Assim, podemos afirmar como verdade que x com o valor igual a 5 atribui um p com um valor lógico falso que implica matematicamente em um q com um valor lógico falso. Logo, isso é possível! Por isso, a quarta linha da Tabela 6 - Conectivo Condicional é VERDADE. Entendendo os valores lógicos do conector Condicional é interessante saber a variações com mesmo significado em Linguagem Natural. Dado que: p: Está chovendo. q: A rua está molhada. Abaixo, todas as representações da Linguagem Natural da representação matemática (p → q) com o mesmo significado semântico. 1) Se está chovendo, então a rua está molhada; 2) Se está chovendo, a rua está molhada; 3) Estar chovendo é condição suficiente para que a rua esteja molhada; 4) A rua molhada é condição necessária para que esteja chovendo; 5) A rua está molhada, se está chovendo. No exemplo acima a proposição p é denominada de antecedente e a proposição q é denominada consequente.

2.7 - Conectivo: Bicondicional O conectivo Bicondicional (Se e Somente Se), representado pelo símbolo (↔), tem como objetivo representar a equivalência de duas premissas. Assim, pode-se fazer uma análise de duas proposições através do conector bicondicional com os seguintes valores Lógicos.

Tabela 6 Conectivo Bicondicional

Vejamos a seguinte sentença: Igor será classificado em um concurso se e somente se obter um resultado maior que 70% da prova. p: Igor é classificado no concurso público. q: Igor obter um resultado maior que 70% na prova. Assim a expressão p ↔ q representa: Igor será classificado no concurso público se e somente se, ele totalizar mais de 70% na prova. Isso é verdade!!! As equivalências serão analisadas em maiores detalhes no Capítulo 4.

2.8 - Representação dos Conetivos Lógicos Em alguns momentos será necessário utilizar os parênteses para representar de forma correta a Linguagem Natural em Linguagem Matemática. Vejamos o exemplo abaixo: Se Linux tem código fonte aberto e suporte mundial então ele é o melhor para minha empresa. Proposição p: Linux tem código fonte aberto. Proposição q: Linux tem suporte mundial. Proposição r: Linux é o melhor. Representação Matemática: (p ^ q) → r. Uma outra abordagem a ser trabalhada é: dada a representação na Linguagem de Matemática qual sua representação em Linguagem Natural. Por exemplo: Dada as seguintes proposições: p: Windows tem vírus. q: Windows é caro. Traduza a representação da Linguagem Matemática em Linguagem Natural. 1) ~p: Resposta: Windows não tem vírus. 2) p ^ q: Resposta: Windows tem vírus e Windows é caro. 3) p v q: Resposta: Windows tem vírus ou Windows é caro.

2.9 - Fórmulas Matemáticas Bem Formadas (fmbf) Uma Fórmula Matemática Bem Formada (fmbf) é aquele que faz sentido sua interpretação matemática. Basicamente, podemos dizer que uma fórmula matemática respeita as seguintes regras: 1. Todo valor lógico (verdade ou falso) é uma fórmula matemática bem formada. 2. Se p é uma fórmula matemática bem formada então ~p também é uma fórmula matemática bem formada. 3. Se p e q são fórmulas matemáticas bem formadas então qualquer relação entre elas devem ser representadas através dos conectores entre elas. Vejamos exemplos de Fórmulas Matemáticas Bem Formadas: a) V. b) p. c) ~p. d) p ^ q. e) q → p. f) ((p ^ q) v r) → t. g) (p ↔ q) → ~(r v s). Vejamos alguns exemplos de Fórmulas Matemáticas Mal Formadas: a) p →. b) ~. c) p v q → t ^.

d) (p ↔ q) → ^ r v s. e) ^ ^ p → q. f) ~p ~ ↔ q.

2.10 - Comprimento de Fórmulas Matemáticas Bem Formadas Para calcular o comprimento de uma Fórmula Matemática Bem Formada é necessário seguir algumas regras. São elas: 1. Se a Fórmula Matemática for apenas um valor lógico (verdade ou falso) seu comprimento é igual 1. 2. Se a Fórmula Matemática for definida com alguma negação, por exemplo, ~p então seu comprimento é calculado da seguinte forma: Comprimento(~p) = Comprimento(p) + 1. 3. Se a Fórmula Matemática for definida por: (p qualquer conector q) então seu comprimento é calculado da seguinte forma: Comprimento(p qualquer conector q) = Comprimento(p) + Comprimento(q) + 1. É importante saber o comprimento de Fórmulas Matemáticas e suas subfórmulas pois futuramente utilizaremos esta informação na prova de teorema através de indução finita. Vejamos alguns exemplos de cálculo do comprimento de fórmulas. a) Comprimento(p → q) = Comprimento(p) + Comprimento(q) + 1 = 3. b) Comprimento((p ^ q) ↔ r) = Comprimento(p ^ q) + Comprimento(r) + 1 = Comprimento(p) + Comprimento(q) + 1 + Comprimento(r) + 1 = 5.

2.11 - Resumo i. Os principais conectores de Lógica são:

ii. Fórmulas Matemáticas Bem Formadas são aquelas que fazem sentido na representação respeitando suas regras de construção. iii. É importante saber o comprimento de Fórmulas Matemáticas e suas subfórmulas pois futuramente utilizaremos esta informação na prova de teorema através de indução finita. iv Saber a tabela de todos os conectores.

2.12 - Exercícios 1 - Dadas as seguintes proposições p: Rogério joga futebol e q: Rogério joga basquete. Escreva em Linguagem Natural as seguintes proposições: a) p v q. b) p ^ q. c) p ^ ~q. d) ~p v ~q. e) ~(~p). f) ~(~p ^ ~q). g) p → ~q. h) q ↔ p. i) ~(~q → ~p).

2 - Escreva cada uma das proposições compostas a seguir em Linguagem Matemática dado que: p: Louise é bonita. q: Louise é elegante. a) Louise é bonita e elegante. b) Louise é bonita, mas não elegante. c) Não é verdade que Louise não é bonita ou elegante. d) Louise não é bonita nem elegante. e) Louise é bonita ou não é bonita e elegante.

f) É falso que Louise não é bonita ou que não é elegante. g) Louise é bonita se e somente se é elegante. h) Se Louise não é elegante então ela não é bonita.

3 - Escreva cada uma das proposições compostas a seguir em Linguagem Matemática dado que: p: carro estiver ajustado. q: piloto vencerá. r: tecnologia for de ponta. a) Se o carro estiver ajustado, o piloto vencerá. b) O piloto vencerá apenas se o carro estiver ajustado e a tecnologia for de ponta. c) Um carro ajustado é uma condição necessária para o piloto vencer. d) O piloto vencerá se e somente se a tecnologia for de ponta. e) Uma condição suficiente para o piloto vencer é que a tecnologia seja de ponta ou o carro esteja ajustado.

4 - Diga quais das fórmulas abaixo são válidas. a) ~~p. b) p q ^. c) (p ^ q) → ((q ↔ p) v ~~r). d) ^ q.

5 - Calcule o comprimento das Fórmulas Matemáticas Bem Formadas abaixo.

a) F. b) ~p. c) p v q. d) (p → q) v r.

6 - Considerando que p: José fala francês, q: José fala inglês e r: José fala alemão, a alternativa que simboliza a expressão: “É falso que José fala inglês ou alemão, mas que não fala francês.”. a) ~q v ~r ^ ~p. b) ~((q v r) ^ ~p). c) ~(q v r) ^ ~p. d) ~q v (r ^ ~p). e) ~(q v r) ^ p.

7 - Se a proposição p é verdadeira (V) e a proposição q é falsa (F), qual das opções abaixo retornará o valor lógico V? a) ~p. b) p # q. c) p ↔ q. d) ~p v q. e) p → q.

8 - Só ganharás dinheiro se completares o trabalho. Dados: p: ganhar dinheiro. q Completar o trabalho. Qual representação é correta?

a) p → q. b) q → p. c) p # q. d) q ↔ p. e) p ↔ q.

9 - Dado que p: Rogério é alto e q: Rogério é elegante. Escolha a opção correta que traduz para a linguagem simbólica a seguinte proposição: Rogério é alto ou é baixo e elegante. a) p v p ^ q. b) p ^ (~p v q). c) p v (~p v q). d) p v (~p ^ q). e) p v (~p ^ ~q).

10 - Dado que p: Rogério é alto e q: Rogério é elegante. Escolha a opção correta que traduz para a linguagem simbólica a seguinte proposição: É falso que Rogério é baixo ou que não é elegante. a) ~(~p v ~q). b) ~(~p ^ ~q). c) ~(~p v q). d) ~(p v q). e) ~(~p v q). 11 - Considerando as proposições p: Está frio, q: Não está chovendo e r: Irei

jogar futebol, traduzir para a linguagem simbólica a seguinte proposição: Se está calor e não está chovendo, então irei jogar futebol. a) (~p ^ q) → r. b) (~p ^ ~q) → r. c) (p ^ q) → r. d) p ^ q ↔ r. e) (~p v q) → r.

12 - Se tomarmos café ou comermos algo, chegaremos atrasados a conferencia, mas, se isso for um problema, é melhor nos despedirmos agora. Dados t: tomarmos café; c: comermos algo; a: chegarmos atrasados a conferencia; p: isso e um problema; d: melhor nos despedirmos agora. A representação da frase será? a) ( ( t v c → a ) v ( p → d ) ). b) ( ( t v c → a ) v ( p ↔ d ) ). c) ( ( t v c → a ) ^ ( d → p ) ). d) ( ( t v c → a ) ^ ( p → d ) ). e) ( ( t v c → a ) v ( d → p ) ).

13 - Passe para Linguagem Matemática seguinte sentença: x é menor que 3 e maior que 0, ou, x não é igual a 7. a) ( ( x < 3) ^ (x < 0) ) v ( x = 7). b) ( ( x < 3) ^ (x > 0) ) v ( x = 7). c) ( ( x < 3) ^ (x > 0) ) ^ ~( x = 7).

d) ( ( x < 3) v (x > 0) ) v ~( x = 7). e) ( ( x < 3) ^ (x > 0) ) v ~( x = 7).

14 - Dado que a: Luiz é administrador; b: Alfredo é bancário; c: Maria e comerciante. Traduza para a linguagem matemática a seguinte frase: É mentira que Luiz é um administrador, que Alfredo é bancário ou que Maria seja comerciante. a) ~( a ^ (b v c)). b) ~( a ~ (b v (~c)). c) ~( a ^ ( ~b v (~c))). d) ~a ^ ~b v ~c. e) ~ a ^ (~(b v c))).

15 - Qual fórmula não é bem formada? a) (~ (p v q) → (q # r) v q). b) a ^ (b v c) v (d v (~e))). c) (p v q) → (q # r) v q. d) ~(a ~(b ^ (c v c))). e) ( ( x < 3) ^ (x > 0) ) v ~( x = 7).

16 - Considere as seguintes premissas abaixo como verdadeiras: “Cláudia é bonita e inteligente, ou Cláudia é simpática.”. “Cláudia não é simpática.”. A partir dessas premissas verdadeiras, podemos concluir que Claudia:

a) É bonita ou inteligente. b) É bonita e inteligente. c) É bonita e não é inteligente. d) Não é bonita e não é inteligente. e) Não é bonita.

17 - Considere as seguintes premissas abaixo como falsas: “Se Rogério é astuto e inteligente então Rogério elabora questões impossíveis”. “Rogério elabora questões impossíveis.”. A partir dessas premissas falsas, podemos concluir como verdade que Rogério: a) Rogério não é inteligente nem astuto. b) Rogério elabora questões impossíveis. c) Se Rogério é inteligente então ele não é astuto. d) Rogério é astuto. e) Rogério é inteligente se e somente se ele não for astuto.

18 - Se Rogerio estuda História, então Lorena estuda Matemática. Se Helena estuda Filosofia, então Jorge estuda Medicina. Ora, Rogerio estuda História ou Helena estuda Filosofia. Logo, segue-se necessariamente que: a) Lorena estuda Matemática ou Jorge estuda Medicina. b) Lorena estuda Matemática e Jorge estuda Medicina. c) Se Rogerio não estuda História, então Jorge não estuda Medicina.

d) Helena estuda Filosofia e Lorena estuda Matemática. e) Lorena estuda Matemática ou Helena não estuda Filosofia.

2.13 - Respostas 1) a) Rogério joga futebol ou Rogério joga basquete. b) Rogério joga futebol e Rogério joga basquete. c) Rogério joga futebol e não Rogério joga basquete. d) Rogério não joga futebol ou Rogério não joga basquete. e) Rogério joga futebol. f) É falso afirmar que: Rogério não joga futebol e Rogério não joga basquete. g) Se Rogério joga futebol então Rogério não joga basquete. h) Rogério joga basquete se e somente se Rogério joga futebol. i) É falso afirmar que: Se Rogério não joga basquete então Rogério não joga futebol. 2) a) p ^ q. b) p ^ ~q. c) ~(~p v q). d) ~p ^ ~q. e) p v ~p ^ q. f) ~(~p v ~q). g) p ↔ q. h) ~q → ~p. 3)

a) p → q. b) q → p ^ r. c) q → p. d) q ↔ r. e) r v p → q. 4) a) É uma Fórmula Matemática bem Formada. b) Não é uma Fórmula Matemática bem Formada. c) É uma Fórmula Matemática bem Formada. d) Não é uma Fórmula Matemática bem Formada. 5) a) 1. b) 2. c) 3. d) 5. 6) b. 7) b. 8) e. 9) d. 10) a. 11) a. 12) d.

13) e. 14) a. 15) b, tem um parênteses a mais. 16) b. 17) d. 18) a.

3 - Tabela Verdade Um dos principais objetivos do estudo de Lógica é poder concluir se um conjunto de premissas (proposições) relacionadas entre si através de conectores lógicos chegam a uma conclusão verdadeira. Neste capítulo temos como objetivo principal apresentar a primeira técnica para solução de problemas de Lógica Matemática através da Tabela Verdade. Para utilizarmos a Tabela Verdade na resolução de problemas, precisamos conhecer os valores lógicos dos conectivos, a precedência de conectores e, por fim, a técnica de montagem e resolução da Tabela Verdade. Além disso, neste capítulo serão apresentados os conceitos de TAUTOLOGIA, FALÁCIA e CONTINGÊNCIA para proposições compostas. Veremos que a Tabela Verdade é uma técnica muito boa de resolver problemas de poucas premissas (até quatro premissas), pois a complexidade de sua resolução aumenta exponencialmente com o número de premissas.

3.1 - Precedência de Operadores Formalmente, não haveria necessidade de definir precedência entre conectivos lógicos, pois as proposições sintaticamente corretas deveriam utilizar tantos parênteses quanto necessários. No entanto, para permitir a escrita de proposições mais ‘curtas’ (sem os parênteses), foi estabelecido as seguintes relações de precedência entre os conectores:

.

Assim, em uma equação devemos primeiro resolver a parte da equação que está dentro dos parênteses, depois a negação (~), a seguir o conector E (^) e assim sucessivamente até o conector Se somente Se (<->) com menor precedência. Caso tenhamos na mesma equação dois conectores iguais, a ordem de resolução destes conectores não altera o resultado final. Vejamos o exemplo da equação: (p → q) v q ^ r. Maior precedência: (p → q). Segunda maior precedência: q ^ r. Terceira maior precedência: (p → q) v q ^ r. Observe que no exemplo acima a segunda maior precedência é q ^ r e não (p → q) v q. Vale destacar que alguns autores consideram a precedência de operadores E (^) e OU (v) do mesmo nível, ou seja, em uma equação que apresenta o conector E (^) e OU (v) no mesmo nível (sem parênteses) será necessário a inserção de parênteses para informar qual deve ser realizado primeiro, caso

contrário teremos uma solução ambígua. Com o objetivo de evitar ambiguidade em equações e a inserção em demasia de parênteses fica estabelecido pelo autor deste livro que o conector E (^) tem prioridade sobre o conector OU (v) quando ambos estejam no mesmo nível. Caso esta regra de precedência do conetor E (^) sobre o operador OU(v) não esteja estabelecida pelo autor será necessário a inserção de parênteses para evitar ambiguidade nas equações. Assim, a equação anterior (p → q) v q ^ r necessariamente seria representada por (p → q) v (q ^ r) ou ((p → q) v q) ^ r dando prioridade ao conector E (^) ou ao conector OU (v).

3.2 - Resolução através de Tabela Verdade Para montar a Tabela Verdade de uma proposição composta, siga os seguintes passos: 1) Identificar quais são as proposições simples. 2) Calcular o total de linhas da sua Tabela Verdade. O cálculo deve ser realizado através da seguinte fórmula matemática: 2n + 1, onde n é igual o número de proposições simples. Vale destacar que este “+1” está relacionado à linha de cabeçalho da Tabela Verdade (primeira linha que terá as proposições simples e compostas) e não as linhas de resolução da Tabela Verdade. 3) Criar as primeiras colunas da primeira linha apenas com proposição simples da equação. 4) Criar as demais colunas da esquerda para direita respeitando a precedência dos operadores até que toda a equação seja montada na última coluna. 5) Inserir as combinações possíveis de valores lógicos (V ou F) para todas as proposições simples. 6) Calcular os valores lógicos (V ou F) das próximas colunas da esquerda para direita até a última coluna.

3.3 - Exemplos de Construção de Tabelas Verdades Nesta seção serão apresentados alguns exemplos de construção de Tabela Verdade passo a passo. Montar a Tabela Verdade da equação (p → q) ^ (q → p). Seguindo os passos, temos: 1) Identificar quais são as proposições simples. p e q. 2) Calcular o total de linhas da sua Tabela Verdade. O cálculo deve ser realizado através da seguinte fórmula matemática: 2n + 1 (dois elevado a n), onde n é igual ao número de proposições simples. n = 2 (p e q). Total de linhas = 2n + 1. Total de linhas = 22 + 1. Total de linhas = 5. 3) Criar as primeiras colunas da primeira linha onde cada coluna corresponderá apenas a uma proposição simples.

4) Criar as demais colunas da esquerda para direita respeitando a precedência dos operadores até que toda a equação seja montada na última coluna.

5) Inserir as combinações possíveis de valores lógicos (V ou F) para as proposições simples.

6) Calcular os valores lógicos (V ou F) das colunas da esquerda até a última coluna.

Montar a Tabela Verdade da equação p → q ↔ ~p v q. 1) Identificar as proposições simples. p e q. 2) Calcular o total de linhas da sua Tabela Verdade. O cálculo deve ser realizado através da seguinte fórmula matemática: 2n + 1 (dois elevado a n), onde n é igual ao número de proposições simples. n = 2 (p e q). Total de linhas = 2n + 1. Total de linhas = 22 + 1. Total de linhas = 5.

3) Criar as primeiras colunas da primeira linha apenas com proposição simples da equação.

4) Criar as demais colunas da esquerda para direita respeitando a precedência dos operadores até que toda a equação seja montada na última coluna.

5) Inserir as combinações possíveis de valores lógicos (V ou F) para todas as proposições simples.

6) Calcular os valores lógicos (V ou F) das próximas colunas da esquerda para direita.

Montar a Tabela Verdade ~p ^ q → ~r v p. 1) Identificar as proposições simples. p,q,r. 2) Calcular o total de linhas da sua Tabela Verdade. O cálculo deve ser realizado através da seguinte fórmula matemática: 2n + 1 (dois elevado a n), onde n é igual ao número de proposições simples. n = 3 (p , q e r). Total de linhas = 2n + 1. Total de linhas = 23 + 1. Total de linhas = 9.

3) Criar as primeiras colunas da primeira linha apenas com proposição simples da equação.

4) Criar as demais colunas da esquerda para direita respeitando a precedência dos operadores até que toda a equação seja montada na última coluna.

5) Inserir as combinações possíveis de valores lógicos (V ou F) para todas as proposições simples.

6) Calcular os valores lógicos (V ou F) das próximas colunas da esquerda para direita.

3.4 - Tautologia, Falácia e Contingência. Na Lógica, definimos uma TAUTOLGIA como uma verdade absolta, ou seja, independente dos valores lógicos (V ou F) das proposições simples, a proposição composta formada pela relação destas proposições simples sempre será verdade. Podemos verificar isso analisando a última coluna da Tabela Verdade

Veja o exemplo abaixo: p → (p v q).

Observe que independente dos valores lógicos de p e q (V ou F) a proposição composta, p → (p v q), sempre será verdade.

Definimos uma FALÁCIA como uma mentira absoluta, ou seja, independente dos valores lógicos (V ou F) das proposições simples a proposição composta formada pela relação destas proposições simples sempre será falsa. Veja o exemplo: ~(p v q) ^ p. Observe que independente dos valores lógicos de p e q (V ou F), a proposição composta ~(p v q) ^ p sempre será falsa.

Por fim, definimos como CONTINGÊNCIA quando uma proposição composta pode ser verdade ou falsa dependendo diretamente dos valores lógicos (V ou F) das proposições simples. Veja o exemplo abaixo: p v q → p.

Observe que dependendo dos valores lógicos de p e q (V ou F), a proposição composta ~(p v q) ^ p pode ser falsa ou verdadeira.

3.5 - Resumo Para resolver problema de Tabela Verdade, primeiro temos que saber a precedência de operadores conforme a tabela abaixo:

Além disso, para montar a Tabela Verdade é necessário seguir os seguintes passos abaixo: 1. Identificar quais são as proposições simples. 2. Calcular o total de linhas da sua Tabela Verdade. O cálculo deve ser realizado através da seguinte fórmula matemática: 2n + 1 (dois elevado a n), onde n é igual ao número de proposições simples. 3. Criar as primeiras colunas da primeira linha apenas com proposição simples da equação. 4. Criar as demais colunas da esquerda para direita respeitando a precedência dos operadores até que toda a equação seja montada na última coluna.

5. Inserir as combinações possíveis de valores lógicos (V ou F) para todas as proposições simples. 6. Calcular os valores lógicos (V ou F) das próximas colunas da esquerda para direita até a última coluna. Vimos que uma proposição composta pode ser classificada como TAUTOLOGIA quando sua Tabela Verdade for sempre verdadeira. Caso a Tabela Verdade seja sempre falsa classificamos como uma FALÁCIA. Por fim, se a Tabela Verdade apresentar valores lógicos verdadeiros ou falsos a proposição composta será classificada como uma CONTIGÊNCIA.

3.6 - Exercícios 1) Construa a Tabela Verdade das equações abaixo, iniciando as colunas da tabela verdade por ordem alfabética das premissas simples: a) p v ~q ^ ~p. b) (p v q) → (r ^ ~q). c) p → q ↔ ~p v q. d) (p → (q → (q → p) ) ). e) ~( (~p → ~q) ^ q → p). f) ~(c # b) → ~a v c ^ b. g) (p → q) ↔ ( (p v r) → q).

2) Qual é a Tabela Verdade da expressão (p -> q) -> p ^ q, iniciando as colunas da tabela verdade por ordem alfabética das premissas simples. a) V V V F. b) V V V V. c) F F F F. d) V F F V. e) V V F F.

3) Qual é a Tabela Verdade da expressão: ~ (p ^ q) v ~ (q <-> p) , iniciando as colunas da tabela verdade por ordem alfabética das premissas simples. a) V V V V. b) F F F F.

c) F V V V. d) F V V F. e) V F F V.

4) Qual é a Tabela Verdade da expressão: (( p -> q ) -> r ) -> (p -> (q -> r)) , iniciando as colunas da tabela verdade por ordem alfabética das premissas simples. a) V V V V V V V V. b) V F V V V V V V. c) V V F V V V V V. d) V V V V V F V V. e) V V V F V V V V.

5) Qual é a Tabela Verdade da expressão: ~ (p v ~q ) ^ (~p v r) , iniciando as colunas da tabela verdade por ordem alfabética das premissas simples. a) F F F F F F F F. b) F F F F V V F F. c) V V F F F F F F. d) F F F F V V V V. e) V F F V F F F F.

6) Qual é a Tabela Verdade da expressão: p v ~r -> q ^ ~r, iniciando as colunas da tabela verdade por ordem alfabética das premissas simples. a) F F F F F F F F.

b) F V F V V V V F. c) F V F F V V V V. d) F F F F V V V V. e) F V F F V V V F.

7) Qual é a Tabela Verdade da expressão: (p ^ q) ^ ~ (p v q) , iniciando as colunas da tabela verdade por ordem alfabética das premissas simples. a) V V V V. b) V F F F. c) F V V V. d) F V V F. e) F F F F . 8) Qual é a Tabela Verdade da expressão: ~((~p -> ~q) ^ q -> p) , iniciando as colunas da tabela verdade por ordem alfabética das premissas simples. a) F F F F. b) V F F F. c) F V V V. d) F V V F. e) F F F V. 9) Qual é a Tabela Verdade da expressão: (a -> b) ^ (b -> a) , iniciando as colunas da tabela verdade por ordem alfabética das premissas simples. a) F F F F. b) V F F V. c) V V F V.

d) V F F F. e) F F F V. 10) Qual é a Tabela Verdade da expressão: p v ~q ^ ~p, iniciando as colunas da tabela verdade por ordem alfabética das premissas simples. a) V V F V. b) F V F V. c) V F F V. d) V F F F. e) F F F V. 11) Qual é a Tabela Verdade da expressão: ~(c ^ b) -> ~a v c ^ b, iniciando as colunas da tabela verdade por ordem alfabética das premissas simples. a) F V F F V V V V. b) V F F F F V V V. c) V F F F V V V V. d) V V V F V V V V. e) V F F F F F V V. 12) Seja * um novo conector lógico tal que p * q é verdade apenas quando p e q são ambas falsas. Faça a tabela verdade de ( p * q ) v ~q ^ p # ~r, iniciando as colunas da tabela verdade por ordem alfabética das premissas simples. 13) Chama-se tautologia a toda proposição que é sempre verdadeira, independentemente da verdade dos termos que a compõem. Um exemplo de tautologia é: a) se João é alto, então João é alto ou Guilherme é gordo. b) se João é alto, então João é alto e Guilherme é gordo. c) se João é alto ou Guilherme é gordo, então Guilherme é gordo. d) se João é alto ou Guilherme é gordo, então João é alto e Guilherme é

gordo. e) se João é alto ou não é alto, então Guilherme é gordo.

3.7 - Respostas 1) a) p v ~q ^ ~p.

b) (p v q) → (r ^ ~q).

c) p → q ↔ ~p v q.

d) (p → (q → (q → p))).

e) ~((~p → ~q) ^ q → p).

f) ~(c # b) → ~a v c ^ b. Lembrando que definimos que quando não tem parênteses o conector E ( ^ ) tem prioridade sobre o conector OU ( v ).

g) (p → q) ↔ ( (p v r) → q).

2) e. 3) c. 4) a. 5) b. 6) e. 7) e. 8) a. 9) b. 10) a. 11) c. 12) F V V F F V V F. 13) a.

4 - Equivalências Tautológicas Em algumas situações, na resolução de problemas de Lógica, será interessante mudar algumas proposições compostas por outras com o mesmo valor tautológico para facilitar a resolução de problemas. Para isso é preciso conhecer as principais Equivalências Tautológicas ou saber deduzi-las. Neste capítulo será apresentado as principais Equivalências Tautológicas e como as deduzir.

4.1 - Principais Equivalências Tautológicas Para saber se duas proposições são equivalentes tautologicamente basta verificar se o conector “se e somente se (↔)” entre as duas proposições compostas é uma tautologia. Para demonstrar e provar as Equivalências Tautológicas será utilizado a Tabela Verdade. Vamos provar as equivalências da seguinte forma: 1.- Construa a tabela da verdade da primeira proposição composta. 2 - Construa a tabela da verdade para a segunda proposição composta. 3 - Verifique se as tabelas da verdade das duas proposições são idênticas (conector “se e somente se (↔)”) para cada combinação de valores (verdade ou falso). Se forem iguais então as proposições são equivalentes logicamente, caso contrário não. Abaixo, as principais Equivalências Tautológicas que serão utilizadas em nosso livro: 1 – Dupla Negação: p ↔ ~(~p). Tabela Verdade:

2 – Lei Idempotente: a) p v p ↔ p. b) p ^ p ↔ p. Tabela Verdade: p v p ↔ p.

3 – Lei Comutativa: a) p v q ↔ q v p. b) p ^ q ↔ q ^ p. Tabela Verdade: p v q ↔ q v p.

4 – Lei Associativa: a) p v (q v r) ↔ (p v q) v r. b) p ^ (q ^ r) ↔ (p ^ q) ^ r. Tabela Verdade: p v (q v r) ↔ (p v q) v r.

5 – Lei de Morgan: A Lei de Morgan foi elaborada pelo inglês Augustus De Morgan e tem ampla utilização na Lógica para prova de diversos argumentos e Equivalências Lógicas. É comum em muitos concursos em que englobam o conteúdo de questões de raciocínio lógico a Lei de Morgan seja explorada. Vejamos a Lei de Morgan na sua definição: Sendo p e q duas proposições e os conectores Não (~), E (^) e OU (v), a Lei de Morgan pode ser apresentada simbolicamente por: 1. ~ (p ^ q) ↔ ~p v ~q cujo significado é: "Negar a simultaneidade de p e q é afirmar pelo menos não p ou não q". 2. ~ (p v q) ↔ ~p ^ ~q cujo significado é: "Negar a ocorrência de pelo menos p ou q é afirmar nem p nem q". Atenção, a Lei de Morgan pode ser aplicada em ambos os sentidos, ou seja, dada a proposição ~p v ~q aplicando a Lei de Morgan temos: ~(p ^ q). Abaixo, a Tabela Verdade da lei de Morgan e a prova da equivalência: ~(p ^ q) ↔ ~p v ~q.

Analise a seguinte frase: “Vou excluir esse vírus do meu computador ou não me chamo Rogério”. A negação da frase acima seria: “Não vou excluir esse vírus do meu computador e me chamo Rogério”, observe que o conector de

ligação das duas premissas é o E (^) e não o OU (v). Prova: p: Vou excluir esse vírus do meu computador. q: me chamo Rogério. Premissa : Vou excluir esse vírus do meu computador ou não me chamo Rogério. Representação: p v ~q A negação de p v ~q é ~(p v ~q) que é equivalente pela Lei de Morgan a: ~p ^ ~(~q), ou seja, Não vou excluir esse vírus do meu computador e me chamo Rogério. Adicionalmente, podemos aplicar a Lei de Morgan conforme abaixo: 3. ~ (~p ^ q) ↔ p v ~q. 4. ~ (p ^ ~q) ↔ ~p v q. 5. ~ (~p ^ ~q) ↔ p v q. 6. p v q ↔ ~ (~p ^ ~q). 7. p v ~q ↔~ (~p ^ q). 8. ~p v q ↔~ (p ^ ~q). 9. ~ (~p v q) ↔ p ^ ~q. 10. ~ (p v ~q) ↔ ~p ^ q. 11. ~ (~p v ~q) ↔ p ^ q. 12. p ^ q. ↔ ~ (~p v ~q). 13. ~p ^ q. ↔ ~ (p v ~q). 14. p ^ ~q. ↔ ~ (~p v q). Vejamos agora uma questão clássica de concurso utilizando Lei de Morgan: É falso afirmar que: Linux não tem vírus e Windows tem vírus é equivalente a: a) Linux não tem vírus e Windows não tem vírus. b) Linux tem vírus e Windows não tem vírus.

c) Linux tem vírus ou Windows não tem vírus. d) Linux não tem vírus ou Windows tem vírus. e) Nem Linux nem Windows tem vírus. Resolução: p: Linux tem vírus. q: Windows tem vírus. Representação da premissa: É falso afirmar que: Linux não tem vírus e Windows tem vírus = ~ (~p ^ q). Aplicando Lei de Morgan em ~ (~p ^ q) ↔ p v ~q. Assim, p v ~q em Linguagem Natural representa: Linux tem vírus ou Windows não tem vírus, letra c.

6 – Lei Distributiva: a) p ^ (q v r) ↔ (p ^ q) v (p ^ r). b) p v (q ^ r) ↔ (p v q) ^ (p v r). Tabela Verdade: p ^ (q v r) ↔ (p ^ q) v (p ^ r).

7 – Transposição Para explicar a transposição vamos analisar as seguintes premissas: p: Apple é a empresa que tem o maior centro de inovação em computação. q: Apple é a empresa que tem o maior lucro. Podemos dizer que: “Se Apple é a empresa que tem o maior centro de inovação em computação então Apple é a empresa que tem o maior lucro.” é a mesma coisa que dizer que: “Se Apple não é a empresa que tem o maior lucro então Apple não é a empresa que tem o maior centro de inovação em computação.”. Assim, temos: p → q ↔ ~q → ~p. Tabela Verdade: p → q ↔ ~q → ~p.

8 – Implicação Material A Implicação Material pode ser interpretada da seguinte forma: p: Rogério chegar cedo. q: Rogério lecionará.

Dizer que: “Se Rogério chegar cedo então lecionará.” é o mesmo que: “Rogério não chega cedo ou lecionará.”. p → q ↔ ~p v q.

4.2 - Resumo Abaixo as principais Equivalências Tautológicas:

4.3 - Exercícios 1 – Prove as seguintes Equivalências Tautológicas. a) p ^ p ↔ p. b) p ^ q ↔ q ^ p. c) p ^ (q ^ r) ↔ (p ^ q) ^ r. d) ~(p v q) ↔ ~p ^ ~q. e) p v (q ^ r) ↔ (p v q) ^ (p v r). f) p → q ↔ ~p v q. 2 – Prove a Lei de Morgan para 3 proposições. 3 – Verifiquem se a Lei de Morgan pode ser aplicada ~(p # q) ↔ (~p ↔ ~q). 4 - Dizer que: “Andre é artista ou Bernardo não é engenheiro” é equivalente a dizer que: a) Andre é artista se e somente se Bernardo não é engenheiro. b) Se Andre é artista, então Bernardo não é engenheiro. c) Se André não é artista, então Bernardo é engenheiro. d) Se Bernardo é engenheiro, então Andre é artista. e) Andre não é artista e Bernardo é engenheiro. 5 - Com relação a Lei de Morgan para três componentes ~(p ^ q ^ r) temos a equivalência ~p v ~q v ~r. Podemos afirmar que: a) A sentença acima é verdadeira. b) A sentença acima é falsa. c) A Lei de Morgan só se aplica para dois componentes.

d) Morgan com três componentes não altera o conector. 6 - Dada a equação p -> q ^ r qual equação é equivalente? a) (p -> q) v (p -> r). b) (q -> p) v (p -> r). c) (p -> q) ^ (p -> r). d) (q -> p) ^ (r -> r). e) (p -> q) ^ (r -> p). 7 - Dada a equação p -> q qual equação é equivalente? a) q -> ~p. b) ~q -> ~p. c) ~(~q -> p). d) ~(~q -> ~p). e) ~q -> p. 8 - Dada a equação p -> q v r qual equação é equivalente? a) (p -> q) ^ (p -> r). b) (p -> q) ^ (r -> p). c) (q -> p) v (r -> p). d) (r -> q) v (p -> r). e) (p -> q) v (p -> r). 9 - Dada a equação p ^ (q v r) qual equação é equivalente? a) (p ^ q) v (p v r). b) (p v q) v (p v r).

c) (p ^ q) ^ (p ^ r). d) (p ^ q) v (p ^ r). e) (p v q) v (p ^ r). 10 - Dada a equação p v (q ^ r) qual equação é equivalente? a) (p ^ q) v (p v r). b) (p v q) v (p v r). c) (p ^ q) ^ (p ^ r). d) (p ^ q) v (p ^ r). e) (p v q) ^ (p v r). 11 - A negação da sentença: “Ana não voltou e foi ao cinema” é: a) Ana voltou ou não foi ao cinema. b) Ana voltou e não foi ao cinema. c) Ana não voltou ou não foi ao cinema. d) Ana não voltou e não foi ao cinema. e) Ana não voltou e foi ao cinema.

12 - Com relação às afirmações abaixo sobre as Leis De Morgan: I. Negar que duas dadas proposições são ao mesmo tempo verdadeiras equivale a afirmar que uma pelo menos é falsa. II. Negar que uma pelo menos de duas proposições é verdadeira equivale a afirmar que ambas são falsas. III. A negação transforma a conjunção em condicional e o condicional em conjunção.

Podemos afirmar como correta(s): a) As afirmações I e III. b) As afirmações I e II. c) As afirmações II e III. d) Todas as afirmações. e) Todas as afirmações são falsas.

4.4 - Respostas 1– a) p ^ p ↔ p.

b) p ^ q ↔ q ^ p.

c) p ^ (q ^ r) ↔ (p ^ q) ^ r.

d) ~(p v q) ↔ ~p ^ ~q.

e) p v (q ^ r) ↔ (p v q) ^ (p v r).

f) p → q ↔ ~p v q.

4) d. 5) a. 6) c. 7) b. 8) e. 9) d. 10) e. 11) a. 12) b.

5 - Regras de Inferência Um dos principais objetivos do estudo de Lógica é o de estabelecer métodos e técnicas que permitam distinguir os raciocínios corretos dos incorretos. Em um tipo especial de raciocínio denominado RACIOCÍNIO DEDUTIVO OU DEDUÇÃO, faz-se necessário o exame da relação existente entre uma determinada conclusão e as razões que lhes serviram de “apoio”. Assim, nosso objetivo neste capítulo será verificar se um argumento é válido, ou seja, se o conjunto de premissas verdadeiras deriva em uma conclusão válida. Para isso é fundamental o entendimento da relação entre as proposições, as equivalências tautológicas e as regras de inferência.

5.1 - Argumento Válido Definimos no Capítulo 1 como ARGUMENTO uma sequência finita de premissas, em que estas “apoiam” ou “servem de evidência” para a conclusão. Essa conclusão pode ser entendida como Dedução Lógica. Um ARGUMENTO É VÁLIDO quando é impossível que a conclusão seja falsa partindo-se de premissas verdadeiras, ou seja, quando a conclusão é consequência lógica das premissas. Caso contrário, o argumento é dito DEDUTIVAMENTE INVÁLIDO. Evidentemente, o foco do nosso estudo será apenas o estudo dos argumentos dedutivamente válidos. Vejamos o seguinte exemplo: dado que p → q (Se p então q) é verdade e partindo do suposto que p (antecedente) é verdade por dedução q (consequente) também é verdade. Assim temos: p = premissa verdadeira. p → q é verdade.

Podemos deduzir que q (consequente) também é verdade. Veja a tabela do conector → (Se p Então q):

Observe que quando p → q é verdade e p também é verdade o q (consequente) só pode ser verdade conforme a Tabela Verdade acima. Vamos supor agora a seguinte expressão: p ^ q → r é verdade e que p e q também são verdades logo r necessariamente também é verdade pelo mesmo motivo anterior! Uma outra forma de definir um ARGUMENTO VÁLIDO é quando um conjunto de proposições (p, q, r, t,...) são verdadeiras interligadas pelo conector “E” (^) a sua conclusão (z) também é verdade desde que premissas (p, q, r, t,...) implicam na conclusão (z). Assim, temos como a representação de um Argumento Válido: p ^ q ^... ^ y → z desde que as premissas (p ^ q ^ ... ^ y) implicam na conclusão (z). A representação Matemática de Argumento Válido mais utilizada é: p1 ^ p2 ^ p3 ^ ... ^ pn-1 → pn, onde n pertence aos números Naturais, ou seja, um conjunto de premissas finitas (p1, p2, p3, ... , pn-1) interligadas através do conector e (^) (p1 ^ p2 ^ p3 ... pn-1) será um argumento válido desde que estas premissas (p1, p2, p3, ... , pn-1) impliquem na conclusão (pn). Argumento Válido: p1^p2^p3^...^pn-1→pn

Por fim, também podemos verificar se um argumento é válido construindo a Tabela Verdade do argumento e verificar se a Tabela Verdade é uma TAUTOLGIA. No entanto, quando tivermos uma quantidade grande de premissas a Tabela Verdade se torna muito trabalhosa e acaba não sendo a técnica de verificação mais adequada para provar se um argumento é válido. Por exemplo, verificar se o argumento (~b v ~c) ^ (~a ^ c → d) ^ (a v ~c → b ^ c) → ~(~d ^ e) é válido por Tabela Verdade se torna um trabalho realmente exaustivo, pois a quantidade de linhas da Tabela Verdade será 32. Na próxima seção veremos a técnica da prova direta, que utilizam Regras de Inferências e Equivalências Tautológicas sem a necessidade de construir a Tabela Verdade. As regras de inferência são argumentos válidos simples (TAUTOLOGIAS) e podem ser utilizadas para verificar se um argumento complexo é válido através da utilização das mesmas.

5.2 - Modus Ponens (MP) Modus Ponens em Latim quer dizer modo de afirmar. A regra do Modus Ponens afirma que o Argumento (p → q) ^ p → q é válido. Podemos provar a regra do Modus Ponens (p → q) ^ p → q como uma TAUTOLOGIA através da Tabela Verdade.

Vejamos a Tabela Verdade:

TAUTOLOGIA. Assim, o Argumento (p→q) ^ p → q é válido devido à regra de Modus Ponens. Podemos aplicar a regra do Modus Ponens para provar qualquer argumento desta natureza. Abaixo a forma que se utiliza a regra do Modus Ponens: Premissa 1: p→q. Premissa 2: p

.

Premissa 3: q

P1, P2 - Modus Ponens.

A representação acima informa que dado que a Premissa 1 (p → q) e a Premissa 2 (p) são verdadeiras, a Premissa 3 (q) também é verdadeira através da regra do Modus Ponens. Lembrando: Um argumento é válido quando um conjunto de premissas relacionadas entre si através do conector “E” (^) implicam em uma conclusão verdadeira. Representação do Argumento Válido: Premissa 1 (p →q) ^ Premissa 2 (p) → Conclusão (q) é válido neste caso, pois através da relação de Modus Ponens

sobre Premissa 1 e Premissa 2, uma terceira Premissa é obtida (q), que é justamente igual à conclusão (q) do argumento. Assim, o argumento é válido. Vejamos o seguinte exemplo da aplicação da regra de Modus Ponenes (MP) para verificarmos se um argumento é válido. Argumento: Se compro uma casa, então gasto muito dinheiro. Comprei uma casa. Logo, gastei muito dinheiro. p = compro uma casa. q = gasto muito dinheiro. Representação Matemática do Argumento: (p → q) ^ p → q. Abaixo minhas premissas: P1: (p→q). P2: p

.

P3: q

P1,P2 Modus Ponens (MP).

Pela Regra de Modus Ponens aplicada nas premissas P1 e P2, podemos inferir P3=q como verdade que é justamente a conclusão do argumento, logo o argumento é válido.

5.3 - Modus Tollens (MT) Em Latim Modus Tollens quer dizer modo de negação. A regra do Modus Tollens afirma que o Argumento (p → q) ^ ~q → ~p é válido. Podemos provar a regra do Modus Tollens (p → q) ^ ~q → ~p como uma TAUTOLOGIA através da Tabela Verdade.

TAUTOLOGIA Assim, o Argumento (p→q) ^ ~q → ~p é válido devido à regra de Modus Tollens. Podemos aplicar a regra do Modus Tollens para provar qualquer argumento desta natureza. Abaixo a forma que se utiliza a regra do Modus Tollens: Premissa 1: p→q. Premissa 2: ~q . Premissa 3: ~p P1, P2 - Modus Tollens. A representação acima informa que dado que a Premissa 1 (p → q) e a Premissa 2 (~q) são verdadeiras, a Premissa 3 (~p) também é verdadeira através da regra do Modus Tollens. Vejamos o seguinte exemplo da aplicação da regra de Modus Tollens (MT)

para verificarmos se um argumento é válido. Argumento: Se o palhaço vir dois chapéus vermelhos, então poderá dizer a cor do seu chapéu. O palhaço não soube dizer a cor do seu chapéu. Portanto, o palhaço não viu a cor de dois chapéus vermelhos. p: o palhaço ver dois chapéus vermelhos. q: o palhaço dizer a cor do seu chapéu. P1: p → q. P2: ~q

.

P3: ~p

P1,P2 – Modus Tollens (MT)

5.4 - Adição (A) A regra da Adição afirma que se a premissa p é verdade, então qualquer outra premissa interligada com p através do conector “OU” também será verdade. Vejamos o seguinte exemplo da aplicação da regra da Adição (A). Argumento: Rogério Coelho é autor do livro de Lógica Matemática, logo Rogério Coelho é autor do livro de Lógica Matemática ou é autor do livro de Processo Estocástico. p: Rogério Coelho é autor do livro de Lógica Matemática. (V). q: Rogério Coelho é autor do livro de Processo Estocástico. (F). P1: p

.

P2: p v q P1– Adição (A) – Verdade. Observe que: Rogério Coelho não é autor do livro de Processos Estocásticos, mas a junção desta premissa (q) com a premissa (p) Rogério Coelho é autor do livro de Lógica Matemática através do conector “OU” será verdade, pois no conectivo “OU” basta que apenas uma premissa seja verdadeira para que o resultado da junção de ambas seja verdadeiro. É importante destacar nesta regra que sempre que você obter uma premissa verdadeira a junção da mesma com qualquer outra premissa através do operador “OU” também será verdade, mesmo que esta última premissa seja falsa. Abaixo, a Tabela Verdade do operador “OU”.

5.5 - Simplificação (S) A regra da Simplificação diz que se um argumento composto de duas premissas interligadas através do conector “E” é verdade, então posso desmembrar o argumento em duas premissas simples verdadeiras. Abaixo, um exemplo da aplicação da regra da Simplificação (S). Argumento: A Apple é a empresa de tecnologia de maior valor de mercado e possui a marca mais cara do mundo na área de tecnologia. p: A Apple é a empresa de tecnologia de maior valor de mercado. q: A Apple possui a marca mais cara do mundo na área de tecnologia. Abaixo, como podemos utilizar a regra da Simplificação. P1: p ^ q . P2: p

P1 – Simplificação (S).

P3: q

P1 – Simplificação (S).

Ora se sabemos que o argumento é verdade e o mesmo é composto por duas premissas (p e q) interconectadas pelo operador “E”, então ambas as premissas (p e q) individualmente necessariamente precisam ser verdadeiras. Abaixo a tabela verdade do operador “E”.

5.6 - Conjunção (C) Se duas premissas são verdadeiras individualmente, ao junta-las em uma premissa composta utilizando o conector “E”, teremos uma nova premissa composta verdadeira. Abaixo, um exemplo da aplicação da regra da Conjunção (C). p: A Oracle possui o melhor banco de dados do mundo. (Verdade). q: A Amazon disponibiliza o melhor serviço de nuvem no mundo. (Verdade). Podemos deduzir como verdade que: A Oracle possui o melhor banco de dados do mundo e a Amazon disponibiliza o melhor serviço de nuvem no mundo. P1: p P2: q . P3: p ^ q P1,P2 – Conjunção (C).

5.7 - Silogismo Disjuntivo (SD) Dado que a negação de uma premissa é verdade e a afirmação desta premissa interligada com outra premissa através do conector “OU” (v) também é verdade, podemos deduzir que esta outra premissa é verdade. Abaixo, como podemos utilizar a regra do Silogismo Disjuntivo. P1: ~p. P2: p v q . P3: q

P1,P2 – Silogismo Disjuntivo (SD).

Vejamos o exemplo: Rogério não está lecionando na sala 1. Rogério está lecionando na sala 1 ou na sala 2. Logo, Rogério está lecionando na sala 2. p: Rogério está lecionando na sala 1. q: Rogério está lecionando na sala 2. Então, temos: P1: ~p. P2: p v q . P3: q

P1,P2 – Silogismo Disjuntivo (SD).

5.8 - Silogismo Hipotético (SH) Se uma premissa p implica em q e se esta premissa q implica em r, então p implica em r. Abaixo, como podemos utilizar a regra do Silogismo Hipotético. P1: p → q P2: q → r . P3: p → r

P1,P2 – Silogismo Hipotético (SH).

Argumento: Se Rogério ensina Lógica, então ele estuda muito. Se Rogério estuda muito, então ele é inteligente. Portanto, se Rogério ensina Lógica Matemática, então ele é inteligente. p: Rogério ensina Lógica. q: Rogério estuda muito. r: Rogério é inteligente. Então temos: P1: p → q P2: q → r . P3: p → r P1,P2 - Silogismo Hipotético (SH).

5.9 - Resumo ARGUMENTO é uma sequência finita de premissas, em que estas “apoiam” ou “servem de evidência” para a conclusão. Essa conclusão pode ser entendida como Dedução Lógica. ARGUMENTO É VÁLIDO quando é impossível que a conclusão seja falsa partindo-se de premissas verdadeiras, ou seja, quando a conclusão é consequência lógica das premissas. Caso contrário, o argumento é dito DEDUTIVAMENTE INVÁLIDO. Argumento Válido: p1 ^ p2 ^ p3 ^ ... ^ pn-1 → pn. Abaixo as principais regras de inferências:

5.10 - Exercícios 1 – Verifique se os argumentos abaixo são válidos usando regras de inferências, equivalências tautológicas e implicações tautológicas: a) (p → q) ^ p → q v r. b) (q → p) ^ ~p → ~q v t. c) (p → q) ^ ~s ^ p ^ (r → s) → q ^ ~r. d) (p v r) ^ (p → q) ^ ~q → r. e) (~p v s) ^ ~(~p v ~t) → s. f) (q → r) ^ ~(~p v ~q) → q ^ r. g) (~p → r) ^ ~(~q v r) → p v s. h) p ^ (p ^ ~r → ~q) ^ ~r → ~q. i) (~q v ~r) ^ (~p ^ r → s) ^ (p v ~r → q ^ r) → ~(~s ^ t). j) p ^ (q → r) ^ ((p ^ q) → (s v ~r)) ^ q → s. k) (p→q) ^ ~(r v ~t) ^ (q → r) → t ^ ~p. 2 – Prove que os argumentos abaixo são verdadeiros através de regras de inferências, equivalências tautológicas e implicações tautológicas. a) Se Windows ou Linux funciona no desktop, então Solaris e HP-UX não funcionam. Windows foi instalado no desktop. Portanto, Solaris não pode ser instalado. b) Se o programador tivesse feito tratamento de exceção no programa, o erro seria tratado e o programador saberia onde foi seu erro. O programador não sabe onde foi seu erro. Portanto, o programador não fez tratamento de exceção no programa.

c) Se continuar chovendo, Vila Velha-ES ficará alagada. Se continuar chovendo e Vila Velha-ES alagar, haverá engarrafamento. Se houver engarrafamento, então a culpa é do prefeito. Continua chovendo. Logo, a culpa é do prefeito. d) Se Dirceu usurpou o dinheiro que não lhe cabia, então deve ser condenado. Ou o Dirceu foi um político exemplar ou usurpou o dinheiro que não lhe cabia. Dirceu não foi um político exemplar. Portanto, deve ser condenado. e) O programa é bom mas não tem desempenho adequado. Se houver muito consumo de memória RAM ou se não houver muitos usuários simultâneos então o programa tem desempenho adequado. Portanto, o programa é bom e tem muitos usuários simultâneos. f) Não é verdade dizer que: ou Rogério é sábio ou não é inteligente. Rogério é sábio ou gosta de Matemática. Se ele é inteligente então é belo. Se gosta de Matemática e é belo então ele é feliz e belo. Portanto Rogério é belo e feliz. g) Se Maria disse a verdade, João mentiu e Carlos também mentiu. Se Carlos mentiu, Regina falou a verdade. Se Regina falou a verdade, então Lógica Matemática é difícil. Ora, Lógica Matemática não é difícil. Logo, podemos concluir que Maria mentiu e Regina também mentiu. h) Se Rogério veleja então ele pratica esporte. Se Rogério não veleja então ele combate a pesca ilegal. Se Rogério veleja ou combate a pesca ilegal então Rogério está fazendo o que gosta. Logo, Rogério está fazendo o que gosta. 3 – Diga o nome da Regra de Inferência para a seguinte sentença: Se chover, a grama molha. Hoje choveu. Logo, a grama molhou. a) Modus Tollens. b) Modus Ponens. c) Silogismo Disjuntivo.

d) Silogismo Hipotético. e) Simplificação. 4 – Sabendo que a afirmação “No ovo de páscoa ou tem amendoim, ou tem avelã. Logo, é falso afirmar que não tem amendoim e não tem avelã.” é correta, podemos dizer que podemos aplicar para a prova? a) Modus Ponens. b) Modus Tollens. c) Lei de Morgan. d) Silogismo Hipotético. e) Silogismo Disjuntivo. 5 - Diga o nome da regra de Inferência para a seguinte sentença: Se chover a terra fica molhada. Se a terra ficar molhada as plantas gostam. Então, concluir que se chover a plantas gostam. a) Modus Ponens. b) Modus Tollens. c) Lei de Morgan. d) Silogismo Hipotético. e) Silogismo Disjuntivo. 6 - Diga o nome da regra de Inferência ou equivalência para a seguinte sentença: Se eu não estudar Lógica Matemática, vou ser reprovado. Logo, ou eu estudo Lógica Matemática ou eu serei reprovado! a) Modus Ponens. b) Modus Tollens. c) Lei de Morgan.

d) Silogismo Disjuntivo. e) Implicação Material.

7 - Verifique se o seguinte argumento seguinte é uma tautologia: Se Rogerio não joga futebol e basquete então veleja. Rogério não joga vôlei ou não joga basquete. Se Rogério joga bola ou não joga basquete então Rogério joga vôlei e basquete. Portanto, Não é verdade que: Rogério não veleja e Rogério faz prova difícil. p: Rogério joga bola. q: Rogerio joga vôlei. r: Rogério joga basquete. s: Rogerio veleja. t: Rogerio é faz prova difícil.

5.11 - Respostas 1a) (p → q) ^ p → q v r. P1: (p → q). P2: p. P3: q

P1, P2 -Modus Ponens.

P4: q v r P3 – Adição.

b) (q → p) ^ ~p → ~q v t. P1:q → p. P2:~p. P3:~q

P1, P2 – Modus Tollens.

P4: ~q v t P3 – Adição.

c) (p → q) ^ ~s ^ p ^ (r → s) → ~r ^ q. P1: p → q. P2: ~s. P3: p. P4: r → s. P5: q P1,P3 – Modus Ponens. P6: ~r

P2,P4 – Modus Tollens.

P7: ~r ^ q P6,P5 – Conjunção.

d) (p v r) ^ (p → q) ^ ~q → r. P1: p v r. P2: p → q. P3: ~q. P4: ~p P2, P3 – Modus Tollens. P5: r P1, P4 – Silogismo Disjuntivo.

e) (~p v s) ^ ~(~p v ~t) → s. P1: ~p v s. P2: ~(~p v ~t). P3: p ^ t P2 – Lei de Morgan. P4: p P3 – Simplificação. P5: t P3 – Simplificação. P6: s P1, P4 – Silogismo Disjuntivo.

f) (q → r) ^ ~(~p v ~q) → q ^ r. P1: q → r. P2: ~(~p v ~q). P3: p ^ q P2 - Lei de Morgan. P4: p P3: Simplificação. P5: q P3: Simplificação. P6: r P1, P5: Modus Ponens. P7: q ^ r P5, P6: Conjunção.

g) (~p → r) ^ ~(~q v r) → p v s. P1: ~p → r. P2: ~(~q v r). P3: q ^ ~r P2: Lei de Morgan. P4: q P4:Simplificação. P5: ~r P4: Simplificação. P6: p P1,P5 Modus Tollens. P7: p v s P7 Adição.

h) p ^ (p ^ ~r → ~q) ^ ~r → ~q. P1: p. P2: p ^ ~r → ~q. P3: ~r. P4: p ^ ~r P1, P3 Conjunção. P5: ~q P2,P4 Modus Ponens.

i) (~qv~r)^(~p^r→s)^(pv~r→q^r)→~(~s^t). P1: ~q v ~r. P2: ~p ^ r → s. P3: p v ~r → q ^ r. P4: ~(q ^ r) P1: Lei de Morgan. P5: ~(p v ~r) P3, P4 Modus Tollens. P6: ~p ^ r P5 Lei de Morgan. P7: s

P2, P6 Modus Ponens.

P8: s v ~t P7: Adição. P9: ~(~s ^ t) P8: Lei de Morgan.

j) p^(q→r)^((p^q)→(sv~r))^q→s. P1: p. P2: q → r. P3: (p ^ q) → (s v ~r). P4: q. P5: r P2, P4 – Modus Ponens. P6: p ^ q P1, P4 – Conjunção. P7: s v ~r P3, P6 – Modus Ponens. P8: s P5, P7 – Silogismo Disj.

k) (p→q)^~(rv~t)^(q→r)→t^~p. P1: p→q. P2: ~(r v ~t). P3: q → r. P4: ~r ^ t P2 – Lei de Morgan. P5: ~r P4 – Simplificação. P6: t P4 – Simplificação. P7: p → r P1, P3 – Silogis. Hipot. P8: ~p P5, P7 – Modus Tollens. P9: t ^ ~p P6, P8 – Conjunção.

2– a) Se Windows ou Linux funciona no desktop, então Solaris e HP-UX não funcionam. Windows foi instalado no desktop. Portanto, Solaris não pode ser instalado. w: Windows instalado no desktop. l: Linux instalado no desktop. s: Solaris instalado no desktop. h: HP-UX instalado no desktop. Argumento: ((w v l) → ~s ^ ~h) ^ w → ~s. P1: (w v l) → ~s ^ ~h. P2: w. P3: w v l P2 – Adição. P4: ~s ^ ~h P1,P3 – Modus Ponens. P5: ~s P4 – Simplificação.

b) Se o programador tivesse feito tratamento de exceção no programa, o erro seria tratado e o programador saberia onde foi seu erro. O programador não sabe onde foi seu erro. Portanto, o programador não fez tratamento de exceção no programa. s: Programador fez tratamento de exceção. a: O erro seria tratado. b: Programador sabe onde foi seu erro. Argumento: (s → a ^ b) ^ ~b → ~s. P1: s → a ^ b. P2: ~b. P3: ~b v ~a P2 – Adição. P4:~(b ^ a) P3 – Lei de Morgan. P5: ~s P1, P4 – Modus Tollens.

c) Se continuar chovendo, Vila Velha-ES ficará alagada. Se continuar chovendo e Vila Velha-ES alagar, haverá engarrafamento. Se houver engarrafamento, então a culpa é do prefeito. Continua chovendo. Logo, a culpa é do prefeito. c: Continuar chovendo. a: Vila Velha-ES ficará alagada. e: Haver engarrafamento. p: A culpa é do prefeito. Argumento: (c→a)^((c^a)→e)^(e→p)^c→p. P1: c→a. P2: (c ^ a) → e. P3: e → p. P4: c. P5: a P1, P4 – Modus Ponens. P6: c ^ a P4, P5 – Conjunção. P7: e P2, P6 – Modus Ponens. P8: p P3, P7 – Modus Ponens.

d) Se Dirceu usurpou o dinheiro que não lhe cabia, então deve ser condenado. Ou o Dirceu foi um político exemplar ou usurpou o dinheiro que não lhe cabia. Dirceu não foi um político exemplar. Portanto, deve ser condenado. d: Dirceu usurpou dinheiro que não lhe cabia. c: Dirceu deve ser condenado. p: Dirceu foi um político exemplar. Argumento: (d → c) ^ (p v d) ^ ~p → c. P1: d → c. P2: p v d. P3: ~p. P4: d P2, P3 – Silogismo Disj. P5: c P1, P4 – Modus Ponens.

e) O programa é bom mas não tem desempenho adequado. Se houver muito consumo de memória RAM ou se não houver muitos usuários simultâneos então o programa tem desempenho adequado. Portanto, o programa é bom e tem muitos usuários simultâneos. c: O programa é bom. a: O programa tem desempenho adequado. r: Há muito consumo de memória RAM. s: Há muitos usuários simultâneos. Argumento:(c^~a)^((r v ~s)→a)→(c^s). P1: c ^ ~a. P2: (r v ~s) → a. P3: ~a P1 – Simplificação. P4: c P1 – Simplificação. P5: ~(r v ~s) P2, P3 – Modus Tollens. P6: ~r ^ s P5 – Lei de Morgan. P7: s

P6 – Simplificação.

P8: c ^ s

P4, P7 – Conjunção.

f) Não é verdade dizer que: ou Rogério é sábio ou não é inteligente. Rogério é sábio ou gosta de Matemática. Se ele é inteligente então é belo. Se gosta de Matemática e é belo então ele é feliz e belo. Portanto Rogério é belo e feliz. p: Rogério é Sábio. q: Rogério é inteligente. m: Rogério gosta de matemática. b: Rogério é belo. f: Rogério é feliz. Argumento: ~(p v ~q)^(p v m)^ (q→b)^((m^b) → (f^b)) →f^b. P1: ~(p v ~q). P2: (p v m). P3: (q → b). P4: (m ^ b) - > (f ^ b). P5: ~p ^ q P1 – Lei de Morgan. P6: ~p

P5 – Simplificação.

P7: q

P5 – Simplificação.

P8: m P6, P2 – Silog. Disjuntivo. P9: b P3, P7 – Modus Ponens. P10: m ^ b P8, P9 – Conjunção. P11: f ^ b P4, P10 – Modus Ponens. g) Se Maria disse a verdade, João mentiu e Carlos também mentiu. Se Carlos mentiu, Regina falou a verdade. Se Regina falou a verdade, então Lógica

Matemática é difícil. Ora, Lógica Matemática não é difícil. Logo, podemos concluir que Maria mentiu e Regina também mentiu. m: Maria diz a verdade. c: Carlos Mentiu.

j: João mentiu.

r: Regina fala verdade.

l: Lógica Matemática é difícil. Argumento:(m→(j^c))^(c→r)^(r→l)^~l→ (~m^~r). P1. m → (j ^ c). P2. c → r. P3. r → l. P4. ~l. P5. ~r

P3, P4 – Modus Tollens.

P6. ~c

P2, P5 – Modus Tollens.

P7. ~c v ~j

P6 – Adição.

P8. ~j v ~c

P7 – Comutatividade.

P9. ~(j ^ c)

P8 – Lei de Morgan.

P10. ~m P11. ~m ^ ~r

P1, P9 – Modus Tollens. P5, P10 – Conjunção.

h) Se Rogério veleja então ele pratica esporte. Se Rogério não veleja então ele combate a pesca ilegal. Se Rogério veleja ou combate a pesca ilegal então Rogério está fazendo o que gosta. Logo, Rogério está fazendo o que gosta. a: Rogério Veleja. b: Rogerio pratica esporte. c: Rogério combate a pesca ilegal.

d: Rogério está fazendo o que gosta. (a → b) ^ (~a → c) ^ (b v c → d) → d P1: a → b P2: ~a → c P3: b v c → d P4: ~b → ~a

Contraposição P1

P5: ~b → c

SH P4,P2

P6: b v c

Condicional P5

P7: d

MP P6,P3

3 – B. 4 – C. 5 – D. 6 – E. 7 – Verifique se o seguinte argumento seguinte é uma tautologia: Se Rogerio não joga futebol e basquete então veleja. Rogério não joga vôlei ou não joga basquete. Se Rogério joga bola ou não joga basquete então Rogério joga vôlei e basquete. Portanto, Não é verdade que: Rogério não veleja e Rogério faz prova difícil. p: Rogério joga bola. q: Rogerio joga vôlei. r: Rogério joga basquete. s: Rogerio veleja. t: Rogerio é faz prova difícil. Argumento: (~p ^ r → s) (~q v ~r) ^ ( p v ~r → q ^ r) → ~(~s ^ t) Resolução similar do Exercício 1 letra i.

6 - Lógica dos Predicados A Lógica Proposicional é baseada em frases declarativas (premissas) sobre o mundo a que se pode atribuir um valor lógico. No entanto, tais declarações são limitadas no que se refere à codificação de frases declarativas naturais, pois ela trata de maneira bastante satisfatória os componentes de frases do tipo não, e, ou, se ... então etc. Mas, sabemos que aspectos Lógicos Matemáticos relacionados a Linguagens Naturais e Artificiais são muito mais que isso. Como tratar e trabalhar com os modificadores do tipo: Existe um, Todos os, Entre um conjunto de, Apenas um dos...? Neste sentido nos deparamos com as limitações da Lógica Proposicional. Assim, foi iniciado o estudo da Lógica dos Predicados, que pode ser entendido como uma extensão da Lógica Proposicional, pois tudo que foi definido em Lógica Proposicional também pode ser aplicada em Lógica dos Predicados em conjunto com as novas definições que veremos a seguir.

6.1 - Variável, Constante, Termo e Predicado Nesta seção vamos definir os principais elementos da Lógica dos Predicados. Uma proposição simples é composta de dois elementos: o termo e o predicado. O termo é o sujeito da sentença e o predicado o que se declara sobre o termo. No exemplo: O funcionário de TI é responsável por aplicar o patch de segurança. Temos: Termo: O funcionário de TI. Predicado: é responsável por aplicar o patch de segurança. Uma variável é uma entidade capaz de representar um elemento utilizado na determinação das respostas dos programas. Em Lógica dos Predicados a variável será utilizada para representar um termo do conjunto de termos válidos (representado por Ω). No exemplo anterior podemos definir a variável x = Rogério onde Rogério é um funcionário de TI e Ω será um conjunto formado por funcionários de uma empresa de diferentes setores, por exemplo: Ω ={Rogerio, Camilo, Andre, Louise, Lorena}. Já as constantes são valores fixos que não podem ser alteradas ao longo da análise de um argumento. Exemplo: MEMORIA_MAXIMA = 32Gb.

6.2 - Função Proposicional Seja Ω um conjunto de termos que delimitam o escopo do problema. Uma função proposicional em Ω é um predicado P associado a um termo x presente em Ω que não pode ser qualificado como verdadeiro ou falso. Tal definição será possível apenas quando P(x) for definido onde x representa pelo menos um ou todos os elementos de Ω. Exemplo: P(x) = x é um funcionário de TI. Ω = Funcionários da empresa de vários departamentos. Ω = {Rogério, Camilo, Andre, Louise, Lorena}. Sabemos que apenas Rogério e Camilo trabalham na TI. Assim, P(x) será verdadeiro apenas quando x for igual ao termo Rogério ou Camilo. Observe que um predicado para ser verdadeiro deve-se avaliar o valor que x pode assumir em Ω, ou seja, o valor que x pode assumir no escopo do problema. Vejamos a seguinte função: x – 5 > 3, onde x faz parte do conjunto dos números inteiros Z. Esta função só será verdadeira quando x > 8, caso contrário, a função será falsa. Assim, podemos concluir que dependendo do valor de x uma função pode ser verdadeira ou falsa. Em outras palavras, uma função na Lógica dos Predicados para ser verdadeira ou falsa é necessário analisar o escopo do problema (espaço amostral do predicado, conjunto de termos de Ω). Considere a seguinte sentença: Todos os alunos são inteligentes. Nesse caso, para saber se ela é verdadeira, ou falsa, é necessário, pelo menos, saber de quais alunos estamos falando (espaço amostral do predicado). Se forem alunos do Prof. Rogério Coelho aprovados na disciplina de Lógica certamente temos uma sentença verdadeira! Mas, se considerarmos todos os alunos de curso superior do Espírito Santo, não teremos o mesmo resultado.

Portanto, para interpretar uma sentença como essa, é necessário saber algo que deve estar implicitamente representado na própria estrutura da sentença, ou seja, precisamos deixar claro de quais alunos estamos falando. Precisamos saber qual é o escopo. Veremos na próxima seção que, dependendo do quantificador (Existencial ou Universal), um predicado também poderá ser definido como verdadeiro ou falso.

6.3 - Quantificadores: Universal e Existencial Quantificadores são operadores lógicos que delimitam as funções proposicionais no conjunto de termos (Ω). Assim, definindo um conjunto de termos (Ω), uma função proposicional deverá ser analisada em conjunto com os quantificadores. Com isso, obtémse uma proposição na Lógica dos Predicados, ou seja, uma sentença declarativa que pode ser considerada verdadeira ou falsa. O Quantificador Universal é representado pelo símbolo ∀, que significa: Para todo x, Qualquer que seja x etc. Geralmente, o Quantificador Universal vem associado ao conector Se ... Então (→) para representar a relação entre termo e predicado. O Quantificador Existencial é representado pelo símbolo ∃, que significa: Existe um x, Há um x, Algum x etc. Geralmente, o Quantificador Existencial vem associado ao conector E (^) para representar a relação entre termo e predicado.

6.4 - Formalização do Cálculo de Predicados Nas funções proposicionais, os termos de um conjunto Ω serão representados por letras minúsculas. Já os predicados serão representados por letras maiúsculas, estas colocadas a esquerda do termo. Os quantificadores serão representados pelos símbolos ∀ (Universal) e ∃ (Existencial) e serão colocados sempre antes da função proposicional, que deve estar entre parênteses. Exemplo 1: Todo Homem é mortal. Ω = {Seres humanos}. Quantificador: Universal (∀). Termo h: Homem. Predicado M: é mortal. Representação: ∀x (h(x) → M(x)) Leitura da equação ∀x (h(x) → M(x)): Para Todo x, Se x é homem, então x é mortal. Vale destacar que x pode ser qualquer ser humano conforme definido em Ω. Exemplo 2: Alguns Programadores são inteligentes. Ω = {Programadores formados na Índia}. Quantificador: Existencial (∃). Temo p: Programadores. Predicado I: é inteligente. Representação: ∃x (p(x) ^ I(x)) Leitura da equação ∃x (p(x) ^ I(x)): Existe um x, tal que x é programador e x é inteligente. Vale destacar que x pode ser apenas programadores formados na Índia.

6.5 - Equivalência entre os Quantificadores: Assim como na Lógica Proposicional existe equivalência entre as proposições na Lógica dos Predicados temos também equivalência entre os quantificadores. A primeira equivalência entre quantificadores é: ~∃x(P(x)) ↔ ∀x ~(P(x)), ou seja, “Não existe um termo x associado ao predicado P(x)” é equivalente a “Todo termo x não está associado ao predicado P(x)”. A segunda equivalência entre quantificadores é: ~∀x (P(x)) ↔ ∃x ~(P(x)), ou seja, “Não é todo x que está associado ao predicado P(x)” é equivalente a “Existe pelo menos um x que não está associado a P(x)”. Exemplo: Não existe um aluno que seja irresponsável. Ω = {Alunos do curso de Lógica Matemática}. Quantificador: Existencial (∃x). Termo a: aluno. Predicado I: é irresponsável. Representação: ~∃x ( a(x) ^ I(x)) é equivalente a ∀x (a(x) → ~I(x)). Todos os alunos não são irresponsáveis. Vale destacar que x pode ser apenas um dos alunos presentes em Ω = {Alunos do curso de Lógica Matemática}. Embora a representação com negação do quantificador esteja correta na prova de argumentos é conveniente que os quantificadores não estejam negados. Assim, neste livro vamos sempre representar o quantificador sem negação. Exemplo: Nem todos os alunos serão aprovados. Ω = {Alunos de Cálculo I}. Quantificador: Universal ∀x, mas vamos usar o Existencial (∃x) negando o predicado. Termo a: aluno. Predicado P: é aprovado. Representação: ∃x (a(x) ^ ~P(x)).

6.6 - Regras de Formação do Cálculo de Predicado Uma fórmula matemática bem formada (fmbf) para o cálculo de predicados deve atender as seguintes regras de formação: 1 – Um predicado P seguido de um termo x é uma fórmula bem formada simbolizada por P(x); 2 – Se P(x) é uma fórmula matemática bem formada então ~P(x) também é uma fmbf; 3 – Se P(x) e Q(x) são fórmulas bem formadas, então serão fórmulas bem formadas: P(x) ^ Q(x). P(x) v Q(x). P(x) # Q(x). P(x) → Q(x). P(x) ↔ Q(x). 4 – Se P(x) é uma fórmula bem formada, então também será uma fórmula bem formada: ∀x P(x). ∃x P(x). Exemplos de Fórmulas Matemática Bem Formadas (fmbf): a) ∀x(P(x)). b) ∃x(P(x) ^ Q(x)) -> ~∀x(P(x)). c) (∀x(P(x)) v ~∃x(P(x))) ^ ~(~∀x(Q(x)). Exemplos de Fórmulas Matemática Mal Formadas: a) ∀x (P(x) ^ Q(x). Justificativa: Está faltando o fechamento do parênteses. b) ∃x(P(x) ~ ^ Q(x)) -> ~∀x(P(x)).

Justificativa: A negação (~) está antes do conector ^. c) ∀x(P(x) -> Q(x)) ^ ∃x. Justificativa: Está faltando predicado no final da equação.

6.7 - Predicados Binários Os predicados que vimos até agora englobam apenas uma única variável, ou seja, predicados unários. Os predicados podem ser binários, envolvendo duas variáveis, e ternários, envolvendo três variáveis. Representações Binárias podem conter ao mesmo tempo o Quantificador Universal e Existencial juntos. Abaixo um resumo do uso dos Quantificadores e seus conectores quando necessários para relacionar o termo com o predicado. Atenção: A tabela abaixo é uma sugestão. Dependendo da frase o conector pode ser outro.

.

Onde R(x,y) é predicado binário Exemplo: Usando os símbolos predicados indicados e quantificadores apropriados, escreva cada declaração em português como uma fórmula bem formada predicada: U = Ambiente Computacional. V(x): x é vírus. C(y): y é computador. R(x,y): x rouba dados de y. a) Alguns vírus roubam dados de alguns computadores. Resposta: ∃x∃y(V(x)^(C(y)^R(x,y))). b) Alguns vírus roubam dados de todos os computadores. Resposta: ∃x∀y(V(x)^(C(y)→R(x,y))). c) Todos os vírus roubam dados de alguns computadores. Resposta: ∀x∃y(V(x)→(C(y)^R(x,y))). d) Todos vírus roubam dados de todos computadores. Resposta: ∀x∀y((V(x)^C(y))→R(x,y)).

6.8 - Validade de Argumentos com Quantificadores Todas as regras apresentadas em Lógica Proposicional para prova de argumentos também se aplicam na Lógica dos Predicados, assim como as equivalências tautológicas. Para provar argumentos com predicados é necessário primeiro eliminar os quantificadores transformando o Argumento de Lógica dos Predicados em Lógica Proposicional e, posteriormente, voltar o argumento em Lógica dos Predicados. Para isso vamos apresentar quatro novas regras.

6.9 - Particularização Universal Se P(x) é verdadeiro para todos os elementos do meu universo, então podemos atribuir uma variável “a”, que referencia qualquer um dos elementos do universo, que teremos que P(a) sempre será verdadeira, pois todos os elementos do meu universo atendem o predicado. Isso é Lógico!!! Assim, temos: Se ∀xP(x) é verdade, então podemos deduzir P(a) também é verdade em que “a” é uma variável ou constante que referencia um elemento do universo. Exemplo: U = {Todos os softwares}. P(x) = Ser um Sistema Operacional. ∀xP(x) = V. Então podemos deduzir que: Se a = Linux Então P(a) = V, pois Linux é um Sistema Operacional e pertence ao universo de softwares. Observe que qualquer que seja o valor de a = (Linux, Unix, Windows, IOS, etc) sempre P(a) será verdadeiro.

6.10 - Particularização Existencial Se P(x) é verdadeiro para pelo menos um elemento do meu universo, então podemos atribuir uma variável “a”, que referencia este(s) elemento(s) do universo, que teremos que P(a) será verdadeira, pois “a” esta referenciando um elemento do meu universo que atende o predicado. Assim, temos: Se ∃xP(x) é verdade, então podemos deduzir P(a) também é verdade em que “a” é uma variável ou constante que referencia o elemento do universo que atende ao predicado. Vale destacar que podemos ter mais de um elemento do meu universo que atende o meu Predicado. Dependendo, pode ser que todos os elementos do universo atenda ao predicado. Mas, o que posso confirmar com certeza que PELO MENOS um elemento do meu universo atenderá o predicado quando o quantificador for existencial. Exemplo: U = {animais}. P(x) = Pertencer ao grupo dos mamíferos. ∃xP(x) = V. Então podemos deduzir que: Se a = cachorro Então P(a) = V, pois “a” está referenciado o grupo de cachorros que são mamíferos. Por outro lado, se a = sapos então P(a) = F. É muito importante destacar que agora precisamos avaliar o universo para saber se um argumento é falso ou verdadeiro e qual é o valor da minha variável “a”.

6.11 - Generalização Universal Se soubermos que P(x) é verdadeiro e que x é um elemento absolutamente arbitrário, isto é, que x pode ser qualquer elemento no conjunto universo, então podemos concluir que ∀xP(x) é verdadeiro. Vejamos o seguinte exemplo: U = {2,4,6,8,10}. P(x) = x é um número par. Se P(x) é verdade para todos os elementos do meu universo, ou seja, se x for igual = 2, 4, 6, 8, 10, então posso escrever que ∀xP(x) é verdadeiro.

6.12 - Generalização Existencial Se soubermos que P(x) é verdadeiro, então existe pelo menos um x que a sentença P(x) é verdadeira, logo podemos deduzir que ∃xP(x) que é verdadeiro. Vejamos o seguinte exemplo: U = {2,4,6,7,8,10}. P(x) = x é um número par. Se P(x) é verdade para pelo menos um dos elementos do meu universo, ou seja, se x = {2, 4, 6, 7, 8, 10}, então posso escrever que ∃xP(x) é verdadeiro. Veja que se meu universo fosse U = {2,4,6,8,10} eu poderia dizer que ∃xP(x) é verdade e ∀xP(x) também é verdade! O que o leitor precisa ficar atento é que agora o escopo do universo pode determinar qual generalização a ser aplicada!

6.13 - Resumo Abaixo um resumo do uso dos Quantificadores e seus conectores quando necessários para relacionar o termo com o predicado.

.

Onde R(x,y) é predicado binário

.

O Universo deve ser levado em consideração nas deduções.

6.14 - Exercícios 1 - Usando os símbolos predicados indicados e os quantificadores apropriados, escreva cada declaração português. U = Servidores do CPD. S(x): x está com alto consumo de CPU. C(x): x está com alto consumo de memória. M(x): x é um servidor de Banco de Dados. T(x): x é um servidor Web. a) Todos os servidores estão com alto consumo de CPU. b) Alguns servidores estão com alto consumo de memória. c) Alguns servidores estão com alto consumo de CPU e memória. d) Todos os servidores de banco estão com alto consumo de memória. e) Alguns servidores Web estão com alto consumo de CPU e memória. f) Nenhum servidor está com alto consumo de CPU. g) Todos os servidores de Banco e Web estão com alto consumo de CPU. h) Todos os servidores que não estão com alto consumo de CPU estão com alto consumo de memória. 2 - Traduza as seguintes sentenças em linguagem corrente para uma notação simbólica usando termos, predicados, quantificadores e conectivos sentenciais: U: Pessoas. E(x): x é estudante. I(x): x é inteligente. A(x): x é aluno. G(x): x gosta de programar. D(x): x é digno. B(x): x é bom.

Gm(x): x gosta de Lógica Matemática. Ga(x): x gosta de Algoritmo. S(x): x é sério. a) Todos os estudantes são inteligentes. b) Alguns estudantes são inteligentes. c) Nenhum estudante é inteligente. d) Alguns alunos gostam de programar. e) Todos os estudantes são dignos. f) Alguns alunos são bons. g) Alguns alunos são bons e dignos. h) Alguns alunos que não são sérios gostam de Lógica Matemática. i) Todos os alunos que gostam de Algoritmo são bons. 3 - Determine o valor lógico (Verdadeiro ou Falso) de cada uma das sentenças a seguir. Use a interpretação: U = conjunto dos números inteiros. P(x): x é par. G(x): x > 10. a) ∃xP(x). b) ∀x(G(x) → P(x)). c) ∃x(P(x) ^ G(x)). d) ∀x(P(x) v G(x)). 4 - Usando os símbolos dos predicados indicados e os quantificadores apropriados, escreva cada declaração em português como uma representação matemática predicada: U = Sistemas Operacionais.

L(x): x é Linux. W(y): y é Windows. M(x,y): x é mais robusto y. a) Todos os Sistemas Operacionais Linux são mais robustos que todos os Sistemas Operacionais Windows. b) Alguns Sistemas Operacionais Linux são mais robustos que todos os Sistemas Operacionais Windows. c) Todas os Sistemas Operacionais Linux são mais robustos que alguns Sistemas Operacionais Windows. d) Alguns Sistemas Operacionais Linux são mais robustos que alguns Sistemas Operacionais Windows. 5 - Usando os símbolos predicados indicados e quantificadores apropriados, escreva cada declaração em português como uma fórmula bem formada predicada: U: todas as variáveis globais de um programa de computador. M(x,y): x é maior que y. I(x): x é uma variável do tipo inteira. S(x): x é uma variável do tipo string. R(x): x é uma variável do tipo real. C(x): x é menor do que 100. a : é a variável denominada ‘a’. a) Todas as variáveis são menores do que 100. b) Existem variáveis do tipo string. c) Todas as variáveis ou são inteiras, ou reais ou string. d) Existem variáveis inteiras que são maiores do que todas reais. e) Apenas variáveis menores que 100 são reais. f) A variável ‘a’ é do tipo string ou real. g) Nenhuma variável é menor do que 100.

h) Todas as variáveis reais são maiores do que a variável ‘a’. 6 - Prove o seguinte argumento: Alguns Sistemas Operacionais tem falhas de seguranças. Todas as falhas de segurança tem alto custo para indústria. Portanto, alguns Sistemas Operacionais tem alto custo para indústria. U = Todos os Sistemas Operacionais. S(x): x é um Sistema Operacional. F(x): x tem falha de segurança. A (x): x tem alto custo para indústria.

7 - Prove o seguinte argumento: Existe um programador que não conhece a IDE (Integrated Development Enviroment) Eclipse. Todo mundo que programa em JAVA conhece a IDE Eclipse. Além disso, todo mundo ou programa em JAVA ou em C++. Portanto existe um programador que programa em C++. U = Todas as pessoas. P(x): x é programador. E(x): x conhece a IDE Eclipse. J(x): x programa em JAVA. C(x): x programa em C++. 8 - Prove o seguinte argumento: Todos os professores vêm da indústria ou do governo. Todos que vêm do governo e são Analistas de Sistemas são a favor de provas de certificação. Rogério não vem da indústria mas é Analista de Sistemas. Rogério é um professor. Portanto Rogério é a favor de provas de certificação. U = Todas as pessoas. A(x): x é professor. B(x): x vem da indústria. C(x): x vem do governo. D(x): x é analista de sistemas. E(x): x é a favor de provas de certificação. r: Rogério. 9 - Prove o seguinte argumento: Existe um professor que é mais inteligente que todo mundo. Qualquer pessoa que é mais inteligente do que todo mundo trabalha mais do que todo mundo. Portanto existe um professor que trabalha mais do que todo mundo. U = todas as pessoas.

A(x): x é professor. R(x,y): x é mais inteligente que y. I(x,y): x trabalha mais que y. 10 - Prove o seguinte argumento: Todo estudante de Ciência da Computação trabalha mais do que algumas pessoas. Todo mundo que trabalha mais do que qualquer pessoa, dorme menos do que essa pessoa. Maria é uma estudante de Ciência da Computação. Portanto, Maria dorme menos do que alguém. U = todo mundo. C(x): x é estudante de Ciência da Computação. T(x,y): x trabalha mais que y. D(x,y): x dorme menos que y. m: Maria.

6.15 - Respostas 1) a) (∀x) S(x). b) (∃x) C(x). c) (∃x) ( S(x) ^ C(x) ). d) (∀x) ( M(x) → C(x) ). e) (∃x) ( T(x) ^ S(x) ^ C(x) ). f) (∀x) ~S(x). g) (∀x) ( M(x) ^ T(x) → S(x) ). h) (∀x) (~S(x) → C(x)). 2) a) (∀x) (E(x) → I(x)). b) (∃x) (E(x) ^ I(x)). c) (∀x) (E(x) → ~I(x)). d) (∃x) (A(x) ^ G(x)). e) (∀x) (E(x) → D(x)). f) (∃x) (B(x) ^ A(x)). g) (∃x) (A(x) ^ B(x) ^ D(x)). h) (∃x) (A(x) ^ ~S(x) ^ Gm(x)). i) (∀x)((A(x)^Ga(x))→B(x)).

3) a) Verdadeiro. b) Falso. c) Verdadeiro. d) Falso.

4) a) ∀x∀y ( ( L(x) ^ W(y) ) → M(x,y) ). b) ∃x∀y ( L(x) ^ (W(y) →M(x,y) ) ). c) ∀x∃y ( L(x) → (W(y) ^ M(x,y) ) ). d) ∃x∃y ( L(x) ^ (W(y) ^ M(x,y) ) ). 5) a) (∀x) C(x). b) (∃x) S(x). c) (∀x) (I(x) v R(x) v S(x)). d) (∃x) (∀y) ( I(x) ^ ( R(y) → M(x,y) ) ). e) (∀x) (C(x) → R(x)). f) S(a) v R(a). g) (∀x) ~C(x). h) (∀x) (R(x) → M(x,a)). 6) (∃(x) S(x) ^ F(x) ) ^ (∀(x) F(x) → A(x) ) → (∃(x) S(x) ^ A(x)). 1. ∃(x) S(x) ^ F(x). 2. ∀(x) F(x) → A(x). 3. S(w) ^ F(w) - Part. Exis.1 (w = Windows). 4. F(w) → A(w) - Part.Univ. 2 (w = Windows). 5. S(w) - Simplificação 3. 6. F(w) - Simplificação 3. 7. A(w) - Modus Ponens 4,6. 8. S(w) ^ A(w ) - Conjunção 6,7. 9. ∃(x) S(x) ^ A(x) - Generalização Existencial.

7) ∃(x)(P(x) ^ ~E(x)) ^ ∀(x)(J(x) → E(x)) ^ ∀(x)(J(x) v C(x)) → ∃(x) P(x) ^ C(x). 1. ∃(x) [P(x) ^ ~E(x)]. 2. ∀(x) [J(x) → E(x)]. 3. ∀(x) [J(x) v C(x)]. 4. P(r) ^ ~E(r) -Part. Exist. 1 (r=Rogerio). 5. J(r) → E(r) -Part. Univ 2 (r=Rogerio). 6. J(r) v C(r) -Part. Univ. 3 (r=Rogerio). 7. P(r) - Simplificação 4. 8. ~E(r) - Simplificação 4. 9. ~J(r) - Modus Tollens 5, 8. 10. C(r) - Silog. Disjuntivo 6, 9. 11. P(r) ^ C(r) - Conjunção 7, 10. 12. ∃(x)P(x)^C(x) - Generalização Existencial.

8) ∀(x) (A(x) → B(x) v C(x)) ^ ∀(x) (C(x) ^ D(x) → E (x)) ^ (~B(r) ^ D(r)) ^ A(r) → E(r). 1. ∀(x)A(x) → B(x) v C(x). 2. ∀(x) C(x) ^ D(x) → E(x). 3. ~B(r) ^ D(r). 4. A(r). 5. A(r) → B(r) v C(r)- Part. Universal 1. 6. C(r) ^ D(r) → E(r) -

Part. Universal 2.

7. B(r) v C(r) - Modus Ponens 4,5. 8. ~B(r) - Simplificação 3. 9. C(r) - Silogismo Disjuntivo 7,8. 10. D(r) - Simplificação 3. 11. C(r) ^ D(r) - Conjunção 9,10. 12. E(r) - Modus Ponens 6,11.

9) (∃(x)∀(y) (A(x) ^ R(x,y))) ^ (∀(x)∀(y) (R(x,y) → I(x,y))) → (∃(x)∀(y) (A(x) ^ I(x,y))). 1. ∃(x)∀(y) A(x) ^ R(x,y). 2. ∀(x)∀(y) R(x,y) → I(x,y). 3. A(a) ^ R(a,b) - Part. Existen. 1 Part Universal. 4. R(a,b) → I(a,b) - Part. Universal 2 (2 vezes). 5. R(a,b) -

Simplificação 3.

6. A(a) - Simplificação, 3. 7. I(a,b) - Modus Ponens 4, 5. 8. A(a) ^ I(a,b) - Conjunção 6, 7. 9. ∃(x) A(x) ^ I(x,b) - General. Existencial 8. 10. ∃(x)∀(y) A(x) ^ I(x,y) - General. Universal 9.

10) ∀(x)∃(y) (C(x) → T(x,y)) ^ ∀(x)∀(y) (T(x,y) → D(x,y)) ^ C(m) → ∃(x) D(m,x). 1. ∀(x)∃(y) [C(x) → T(x,y)]. 2. ∀(x)∀(y) [T(x,y) → D(x,y)]. 3. C(m). 4. ∀(x) [C(x) → T(x,a)] - Part. Existencial 1. 5. C(m) → T(m,a) - Part. Universal 4. 6. T(m,a) → D(m,a) - Part. Unive. 2 (2 vezes). 7. C(m) → D(m,a) - Silogismo Hipot. 5, 6. 8. D(m,a) - Modus Ponens 3,7. 9. ∃(x) D(m,x) - General. Existencial 8.

7 - PROLOG Neste capítulo será apresentada uma introdução à Linguagem de Programação PROLOG (PROgramming in LOGic). A versão de Prolog descrita neste livro baseia-se na sintaxe do interpretador do SWI-Prolog. Com pequenas alterações de sintaxe, as codificações apresentadas podem ser convertidas para outros dialetos PROLOG. Utilizaremos PROLOG para verificar algumas tautologias relacionadas diretamente à Lógica dos Predicados, fazer pequenos programas para tomadas de decisões, trabalhar com listas e etc. Na área da Ciência da Computação, PROLOG é amplamente utilizado para prova automática de teoremas, Inteligência Artificial, construção de compiladores etc. O primeiro interpretador de PROLOG foi escrito por Colmerauer e seu Grupo de Inteligência Artificial (GIA), na Universidade de Marseille, na linguagem ALGOL-W. Com o passar dos anos novos interpretadores foram desenvolvidos até os dias de hoje. Para reforçar o aprendizado deste capítulo é fortemente recomendado o leitor baixar e instalar o software livre SWI-Prolog que pode ser encontrado em http://www.swi-prolog.org/Download.html .

7.1 - A Linguagem PROLOG PROLOG é uma linguagem interativa que permite resolver problemas que envolvem representação simbólica de objetos e seus relacionamentos. A linguagem evita que o programador descreva procedimentos para obter a solução de um problema, permitindo que ele expresse declarativamente apenas a estrutura lógica do problema através de termos, fórmulas atômicas e cláusulas. Um programa em PROLOG é também uma coleção de fatos verdadeiros (regras, premissas, assertivas) que tratam esses fatos definidos a fim de checar se algum outro fato é uma derivação do primeiro do conjunto de fatos, ou seja, se esse novo fato é uma Tautologia. Seguindo esta breve descrição, um programa em PROLOG pode ser visto como um tipo de base de dados sofisticado, onde alguns dos itens de dados são armazenados imediatamente como fatos verdadeiros (regras, premissas, assertivas) e outros itens de dados podem ser adquiridos aplicando regras de inferência. Esta base de dados é criada pelo programador e, futuramente, processada pelo interpretador Prolog (ou compilador) no decorrer da execução do programa Prolog.

7.2 - Sintaxe da Linguagem PROLOG Nesta seção abordaremos a sintaxe da linguagem PROLOG com todas as definições necessárias. 1) Alfabeto O alfabeto do Prolog básico é definido por: pontuação: ( , ) , . , ', "; letras: a, b, ... z, A, B, ... Z; dígitos: 0, 1, 2, 3, ... 9; operadores: *, +, - , / ... 2) Variável Uma variável é uma cadeia de letras e de dígitos iniciado com uma LETRA MAIÚSCULA. Exemplo: A, B, C, D, Temperatura, Nome, RESPOSTA, X, Y, Z. 3) Predicados Predicado é uma construção usada para declarar algo a respeito de objetos. Um predicado é uma cadeia de letras e de dígitos iniciado com uma letra minúscula. Exemplos: homem(rogerio). pai(jose, maria). O primeiro exemplo acima está representando a seguinte frase em português: rogério é homem. O segundo exemplo quer dizer: José é pai de Maria. Estes tipos de predicados são classificados como predicado unitário. Já predicados do tipo: computador(X):-processa(X,Y), dados(Y) é considerado como predicado não-unitário em Prolog. A representação em português: Computador é o que processa dados. Veremos mais a frente como tratar melhor este tipo de cláusulas. 4) Fatos, Assertivas, Regras e Premissas

Para que o interpretador Prolog tenha sucesso é fundamental a presença de fatos na sua base de dados. Os fatos representam o relacionamento formal entre estes objetos. Exemplo: gosta (rogerio, isabel). Neste exemplo gosta é um predicado definido pelo programador. Vamos considerar que o predicado assume o valor verdadeiro (true) para os fatos definidos pelo programador e false caso contrário. O interpretador Prolog pode satisfazer algumas questões, utilizando a base de dados, contudo é necessário fazer uma pergunta relacionada com a base de dados. Exemplo: gosta(rogerio,X). O Prolog responde X = isabel. homem(rogerio). O Prolog responde true. homem(isabel). O Prolog responde false. Atenção: Dependendo do interpretador Prolog todos fatos devem ser definidos diretamente sem alternância. Correto no programa SWI-Prolog. pais(rogerio,thor). pais(isabel,thor). filhos(thor,rogerio). filhos(thor,isabel). Errado no programa SWI-Prolog. pais(rogerio,thor). filhos(thor,rogerio). pais(isabel,thor).

filhos(thor,isabel).

7.3 - Sintaxe dos Conectores Lógicos em PROLOG Abaixo a sintaxe dos conectores de Prolog associados com os conectores lógicos.

Veja o seguinte exemplo: Zumbi é quem come gente. Lógica dos Predicados: A(x): x é gente. B(x): x é zumbi. C(x,y): X come Y. Representação: ∀x∀y (C(x,y) ^ A(y) → B(x)) Prolog: zumbi(X):-come(X,Y), gente(Y). Observe a tabela dos operadores em Prolog.

7.4 - Sintaxe dos Operadores Matemáticos em PROLOG Os Operadores Matemáticos (Aritméticos) da Linguagem Prolog são:

As operações matemáticas em Prolog podem ser realizadas da seguinte forma: ?- X is 3 + 5. X = 8. soma(A,B,C):- A is B + C. ?- soma(X,4 ,7). X = 11. Exercício: Faça um programa em Prolog que calcule a área de uma sala passando como parâmetro Largura e Comprimento. area(Resposta, Largura,Comprimento):- Resposta is Largura * Comprimento. ?- area(Resposta,20,30). Resposta = 600.

Fazer um programa em Prolog que calcule o MDC (Máximo Divisor Comum) de dois números. OBS: dados dois inteiros positivos, X e Y, o MDC pode ser encontrado através das seguintes regras: i) decompomos os números em fatores primos; ii) o MDC é o produto dos fatores primos comuns. Acompanhe o cálculo do MDC entre 36 e 90: 36 = 2 x 2 x 3 x 3. 90 = 2 x 3 x 3 x 5. O MDC é o produto dos fatores primos comuns => MDC(36,90) = 2 x 3 x 3. Portanto MDC(36,90) = 18. Dicas: Em computação temos a seguinte regra para calcular o MDC. (1) Se X e Y são iguais, então MDC é igual a X; (2) Se X < Y, então MDC é igual ao MDC entre X e a diferença Y-X; (3) Se X > Y, então voltamos ao mesmo caso 2, com X substituído por Y e vice-versa. mdc(X, X, X). mdc(X, Y, Resposta) :- X < Y, Y1 is Y-X, mdc(X, Y1, Resposta). mdc(X, Y, Resposta) :- X > Y, mdc(Y, X, Resposta). Veja abaixo como o Prolog processa a informação: Exemplo: mdc(36,90,Resposta). mdc(36,54, Resposta). mdc(36,18, Resposta). mdc(18,36, Resposta). mdc(18,18, Resposta). Resposta = 18.

7.5 - Listas em PROLOG Uma lista em PROLOG é uma sequência de termos separados por vírgula e delimitados por colchetes. Exemplos de Listas: [a,b,c]. [] (lista vazia). [1,2,3]. [a,1,'casa cheia']. Os principais predicados e seus argumentos para manipulação de listas são os seguintes: 1) member(X, Lista): é verdade se X é um dos elementos da Lista. Exemplos: ?- member(b,[a,b,c]). true. ?- member(X,[a,b,c]). X = a. X = b. X = c. 2) append( Lista1, Lista2, Lista3): é verdade se a Lista3 é a junção dos elementos da Lista1 com a Lista2. Além disso, a função append pode ser utilizada para gerar uma terceira Lista que é justamente a junção da Lista1 com a Lista2. Exemplos: ?- append([1,2], [0,3], [0,1,2,3]). false. ?- append([1,2], [0,3], [1,2,0,3]). true. ?- append([1,2], [0,3], L).

L = [1,2,0,3]. ?- append([a,b,c], L, [a,b,c,d,e]). L = [d,e]. 3) delete(Lista1, Elemento, Lista2): é verdade se a Lista2 é a Lista1 sem o Elemento. Além disso, a função delete pode ser utilizada para gerar uma lista sem o elemento. Exemplos: ?- delete([a,b,c], b, [a,c]). true. ?- delete([a,b,c],b,L). L = [a,c]. ?- delete([a,b,b,c],b,L). L = [a, c] . 4) length(Lista, Inteiro): é verdade se o número de elementos da Lista é igual ao Inteiro. Exemplos: ?- length([a,b,c],2). false. ?- length([a,b,c], X). X = 3. 5) nth1(Inteiro, Lista, Elemento): é verdade se Elemento está na posição Inteiro da Lista (considerando a primeira posição como sendo 1). Além disso, retorna o elemento da posição solicitada. Exemplos: ?- nth1(2,[a,b,c],X). X = b. ?- nth1(X,[a,b,b,c],b). X = 2. 6) sort(Lista1, Lista2): é verdade se Lista2 tem os elementos da Lista1

ordenados. Além disso, uma nova lista pode ser gerada ordenada. Exemplos: ?- sort([a,b,c],[a,b,c]). true. ?- sort([c,z,a,b],X). X = [a,b,c,z]. 7) findall(X, predicado(X), Lista2): Cria uma lista com todos os valores de X que satisfazem o predicado. Exemplo: Carregue os seguintes fatos no arquivo lista.pl animal(homem). animal(pato). animal(urso). animal(peixe). come(homem, pato). come(urso, peixe). carnivoro(X):-come(X,Y), animal(Y). No Prolog digite o comando: findall(X,carnivoro(X),L). L = [homem, urso]. 8) Unificação de Listas (=): O operador de unificação (=) permite obter vários tipos de informação de uma lista. Exemplos: [a,b,c] = L. (L unifica com toda a lista). [a,b,c] = [X1,X2,X3]. (cada variável unifica com cada elemento da lista). [a,b,c] = [C|R]. (C unifica com a cabeça da lista, o “a”, e R unifica com o restante da lista, a lista “[b,c]”. O caractere “|” distingue a cabeça da lista do restante).

7.6 - Resumo Um programa em PROLOG é também uma coleção de fatos verdadeiros (regras, premissas, assertivas) que tratam esses fatos definidos a fim de checar se algum outro fato é uma derivação do primeiro do conjunto de fatos, ou seja, se esse novo fato é uma Tautologia. Os conectores lógicos da Linguagem PROLOG são:

Os operadores aritméticos são:

As principais funções de listas são:

7.7 - Exercícios 1 - Escreva um programa em PROLOG, utilizando a árvore genealógica abaixo, para representar as relações de: pais, filhos e avós. Rogério é casado com Isabel e tiveram dois filhos: Thor e Ana. Ana casou com Carlos e teve apenas um filho Maria. 2 - Faça um programa em PROLOG que valide a seguinte cadeia alimentar: Leão come homem e peixe. O homem come peixe e algas. Já o peixe come apenas algas. Planta carnívora come insetos. Os predicados são: come(x,y). animal(x). planta(y). 3 - Com base nos predicados criados no exercício 2 defina os seguintes predicados: a) Carnivoro é quem come animal. b) Herbívoro é quem come planta e não come animal. c) Predador é carnívoro e também é animal. d) Presa é quem é comido por predador e também é animal. e) Caçado é quem é presa. 4 - Escreva um predicado validaCompra que verifica se uma compra de um cliente é válida. Os argumentos do predicado validacompra devem ser o nome do cliente, o item e a quantidade solicitada. O predicado validacompra deve ter sucesso apenas se o cliente for um cliente existente na base dados. Se este cliente tem crédito superior ao valor da sua compra (preço do item vezes a quantidade do item) e, por fim, se o item desejado para compra exista em

quantidade suficiente no estoque disponível. Trabalhe com os seguintes predicados para resolver o problema. cliente(nomeCliente,credito). item(nomeItem,QtdEstoque,Preco). validacompra(nomeCliente,Item,Qtdsol):- TERMINAR A LOGICA

7.8 - Respostas 1) pais(rogerio,thor). pais(isabel,thor). pais(rogerio,ana). pais(isabel,ana). pais(carlos,maria). pais(ana,maria). filhos(thor,rogerio). filhos(thor,isabel). filhos(ana,rogerio). filhos(ana,isabel). filhos(maria,carlos). filhos(maria,ana). avo(rogerio,maria). avo(isabel,maria). 2) animal(leao). animal(homem). animal(peixe). animal(inseto). planta(algas). planta(plantaCarnivora) come(leao,homem). come(leao,peixe). come(homem, peixe).

come(homem,algas). come(peixe,algas). come(plantaCarnivora,algas). 3) a)carnivoro(X):-come(X,Y), animal(Y). b)herbívoro(X):-come(X,Y),planta(Y),\+carnívoro(X). c)npredador(X):-carnívoro(X),animal(X). d)presa(X):-come(Y,X),predador(Y),animal(X). e)caçado(X):-presa(X).

4) cliente(joao,700). cliente(maria,1000). item(sabao,20,5). item(bombril,80,10). validacompra(Cli,Item,Qtdsol):- cliente(Cli,Cred), item(Item,Qtd,Preco), Qtdsol =< Qtd,(Qtdsol*Preco) =< Cred.

8 - Referências Bibliográficas [Alencar,1986] E. Alencar Filho, Iniciação à Lógica Matemática, Editora Nobel, 1986. [CasaNova, 1987] M. A. Casanova, Programando em Lógica e a Linguagem Prolog, Edigard Blucher, 1987. [Coelho, 1988] H. Coelho, J. C. Cotta, PROLOG by example, Springer Verlag, 1988. [Costa, 1988] N.C.A. Costa, R. Cerrion, Introdução a Lógica Elementar, Editora da Universidade Federal do Rio Grande do Sul, 1988. [Daghlian,1995] J. Daghlian, Lógica e Álgebra de Boole, Atlas, 1995. [Mortari, 2001] C.A. Mortari, Introdução à Lógica, Editora Unesp, 2001. [Palazzo, 1997] L.A.M., Palazzo, Introdução à Programação PROLOG, Editora da Universidade Católica de Pelotas, EDUCAT,1997. [Salmon, 1984] W.C. Salmon, Lógica, Editora Prentice Hall do Brasil, 1984. [Silva, 2006] Silva, F.S.C., Finger, M., Melo, A. C. V., Lógica para Computação, Thomson Pioneira, 2006. [Souza,2008] J.N de Souza, Lógica para Ciência da Computação, Editora Campus, 2002.

Related Documents


More Documents from "Thalis Antunes"