Introdução a computação 0 Curso Superior de Tecnologia em Gestão da Tecnologia da Informação Coordenador: Emerson dos Santos Paduan Autor(a): Daniel Gomes Ferrari São Paulo - 2016 1 Sumário 1. Lógica Matemática ...................................................................................................... 3 1.1. Proposição ............................................................................................................................. 4 1.2. Conectivos Lógicos ............................................................................................................. 5 1.3. Tabelas Verdades ................................................................................................................ 6 1.4. Tautologias, Contradições e Contingências ............................................................. 10 2. Lógica Proposicional ................................................................................................ 12 2.1. Fórmulas .............................................................................................................................. 12 2.1.1. Ordem de precedência ................................................................................................ 11 2.1.2. Comprimento de fórmula ........................................................................................... 15 2.1.3. Subfórmulas .................................................................................................................... 15 2.2. Semântica ............................................................................................................................ 16 2.2.1. Interpretação .................................................................................................................. 17 2.2.2. Procedimentos para interpretar fórmulas ............................................................. 18 2.2.3. Tabela Verdade .............................................................................................................. 19 Bibliografia a ser acessada.......................................................................................... 20 Bibliografia Complementar ......................................................................................... 21 2 1. Lógica Matemática A lógica ligada ao pensamento é um campo de estudo da Filosofia. Seus estudos iniciais são atribuídos ao filósofo Aristóteles (384-322 a.C.), considerado o pai das Ciências. É bastante comum utilizarmos a lógica em nossas conversas corriqueiras, como, por exemplo: É lógico que eu vou ao teatro. Se não parar de chover, não irei sair de casa. Como você se preparou para a prova, é lógico que irá tirar uma boa nota. Agora, qual será a melhor definição para a palavra “lógica”? Para Aristóteles a lógica representa as leis do pensamento (GERSTING, 2004), mas pensamentos coerentes e racionais, não pensamentos desordenados ou confusos. Na computação, a lógica deve ser utilizada para que um programa seja escrito e funcione corretamente. Um programa é como uma receita, um passo a passo das tarefas que o computador deve realizar. Nas tarefas simples do dia a dia, também utilizamos a lógica. Por exemplo, para escovar os dentes, devemos seguir alguns passos na ordem correta: 1. Pegar a escova de dente 2. Pegar o creme dental 3. Abrir o tubo de creme dental 4. Colocar creme dental na escova de dente 5. Molhar a escova de dente na torneira 6. Levar a escova à boca Essa é a maneira lógica de executar a tarefa de escovar os dentes. Imagine se em vez disso, você mudasse a ordem dos passos: 3 1. Levar a escova à boca 2. Abrir o tubo de creme dental 3. Pegar a escova de dente 4. Pegar o creme dental 5. Molhar a escova de dente na torneira 6. Colocar creme dental na escova de dente Observe que os passos são exatamente os mesmos, mas a ordem está trocada. Se um programa de computador for escrito dessa forma, mesmo que os comandos estejam corretos, certamente não irá funcionar. Por isso, vamos, inicialmente, estudar as proposições lógicas. Elas são essenciais para a construção do raciocínio lógico. 1.1. Proposição Proposição é um conjunto de palavras ou símbolos que exprimem um pensamento de sentido completo. Uma proposição representa uma sentença que pode assumir o valor lógico verdadeiro ou falso. As proposições são representadas por letras minúsculas (p, q, r, s, ...). Veja: Sentença Valor Lógico Símbolo 100 > 10 VERDADEIRO p A terra é quadrada. FALSO q O fogo é gelado. FALSO r O carvão é preto. VERDADEIRO s Tabela 1 (Fonte: Autor) Nem todas as sentenças são proposições, pois não possuem valor lógico. Por exemplo: Oi, tudo bem? 4 Você vai à praia? A Lógica matemática adota duas regras fundamentais do pensamento, os dois seguintes princípios: 1) PRINCÍPIO DA NÃO CONTRADIÇÃO: uma proposição não pode ser verdadeira e falsa ao mesmo tempo. 2) PRINCÍPIO DO TERCEIRO EXCLUÍDO: toda proposição ou é verdadeira ou é falsa, isto é, verifica-se sempre um desses casos e nunca um terceiro. 1.2. Conectivos Lógicos Os conectivos lógicos são utilizados para conectar duas (ou mais) proposições e, assim, formar as chamadas proposições compostas. Para verificar se uma proposição composta é verdadeira ou falsa, devemos observar duas coisas: o valor lógico das proposições componentes e o tipo de conectivo que as une. Observe: Sentença Valor Lógico Símbolo Os cavalos têm quatro patas. VERDADEIRO p As focas gostam de peixes. VERDADEIRO q Tabela 2 (Fonte: Autor) Usando as proposições simples (p, q), formamos proposições compostas como os conectivos e, ou, se... então. Conforme segue: 5 Proposição Conectivo Proposição Proposição Composta p e q Os cavalos têm quatro patas E as focas gostam de peixes. p ou q Os cavalos têm quatro patas OU as focas gostam de peixes. q SE os cavalos têm quatro patas, ENTÃO as focas gostam de peixes. p se...então Tabela 3 (Fonte: Autor) Na lógica matemática, cada conectivo é representado por um símbolo. Observe: Conectivo Lógico Significado Símbolo Negação Não - Conjunção E ^ Disjunção Ou v Disjunção Exclusiva Ou exclusivo ⊕ Condicional Se...então Bicondicional Se, somente se Tabela 4 (Fonte: Autor) Para formular proposições compostas, sempre devemos utilizar um conectivo. Observe: (a b) → c : errado, falta o conectivo entre a e b; (a b) → c : correto. 1.3. Tabelas Verdades Para avaliar proposições lógicas, utilizamos o recurso chamado tabelas verdade. Elas avaliam uma proposição em função de todas as entradas possíveis. A quantidade de linhas de uma tabela verdade irá depender do número de proposições simples contidas na proposição composta, seguindo a seguinte regra: 6 Nº de linhas da Tabela Verdade = 2nº de proposições simples Ou seja: se estivermos trabalhando com duas proposições p e q, então a tabela verdade terá 4 linhas, 22 = 4. Podemos fazer a seguinte leitura, considerando as proposições simples como variáveis e as proposições compostas como expressões: Expressões Número de variáveis Número de linhas da tabela verdade (a ^ b) (a ^ b) ↔ c 2 3 22 = 4 23 = 8 (a ^ b) ↔ (c ^ d) 4 24 = 16 Tabela 5 (Fonte: Autor) Na construção de uma tabela verdade, precisamos avaliar todas as possibilidades de valores para cada proposição simples. Observe: a b a^b V V V V F F F V F F F F Tabela 6: Verdadeiro = V e Falso = F. (Fonte: Autor) Existe uma tabela verdade para cada conectivo lógico. Assim, a tabela verdade do conectivo lógico de Negação é simbolizada por −p (não p), e representada do seguinte modo: p -p V F F V Tabela 7 (Fonte: Autor) Exemplificando: p = Hoje está chovendo. –p = Hoje não está frio. 7 As proposições compostas do tipo p q são chamadas de conjunção: lê-se p e q. Observe a tabela verdade: p q p^q V V V F V F F V F F F F Tabela 8 (Fonte: Autor) Exemplificando: p = Antônio é forte. q = Antônio faz academia. p q = Antônio é forte e Antônio faz academia. As proposições compostas do tipo p q são chamadas de disjunção: lê-se p ou q. Observe a tabela verdade: p q pvq V V V V F V F F V F V F Tabela 9 (Fonte: Autor) Exemplificando: p = Hoje vou à praia. q = Hoje vou à escola. p q = Hoje vou à praia ou hoje vou à escola. Representamos a disjunção exclusiva pelo símbolo , também chamada de ou exclusivo e representada na tabela verdade da seguinte forma: 8 p q p⊕q V V V F F V F V V F F F Tabela 10 (Fonte: Autor) Exemplificando: p = Marta é linda. q = Marta é inteligente. p q = Ou Marta é linda ou Marta é inteligente. Também podemos combinar as proposições: “se proposição p, então proposição q”, e a representamos através do símbolo . A denotação da preposição composta é p q (p implica q). Esse conectivo é chamado de condicional, ou implicação. A tabela verdade da forma condicional é representada da seguinte forma: p q p q V V V V F F F F V F V V Tabela 11 (Fonte: Autor) Exemplificando: p = Hoje é feriado. q = Hoje vou à praia. p q = Se hoje é feriado, então hoje vou à praia. Temos também o conectivo bicondicional, ou equivalência, simbolizado por . A expressão “p q” é uma abreviatura de (p q) (q p); dessa forma, a tabela verdade é definida conforme abaixo: 9 p q pq V V V V F F F F V F F V Tabela 12 (Fonte: Autor) Exemplificando: p = João tirará boas notas na escola. q = João é estudioso. p ↔q = João tirará boas notas na escola, se e somente se for estudioso. Em resumo, temos as seguintes tabelas verdades para os principais conectivos: p q p^q pvq p⊕q p q pq V V V V F V V V F F V V F F F V F V V V F F F F F F V V Tabela 13 (Fonte: Autor) 1.4. Tautologias, Contradições e Contingências Os resultados das tabelas verdade podem ser classificados de acordo com três critérios: Tautologia: quando o resultado da tabela verdade apresenta apenas valores verdadeiros (V). Contradição: quando o resultado da tabela verdade apresenta apenas valores falsos (F). 10 Contingência: quando o resultado da tabela verdade apresenta valores verdadeiros (V) e valores falsos (F). Exemplo: seja p a proposição “faz Sol” e −p sua negação “não faz Sol”. “faz Sol” ou “não faz Sol” é uma tautologia, pois o resultado da tabela verdade é sempre verdadeiro. p -p p v -p V F F V V V Tabela 14 (Fonte: Autor) “faz Sol” e “não faz Sol” é uma contradição, pois o resultado da tabela verdade é sempre falso. p -p p ^ -p V F V F V V Tabela 15 (Fonte: Autor) Se “faz Sol” então “não faz Sol” é uma contingência, pois o resultado da tabela verdade possui valores verdadeiros e falsos. p -p p -p V F V F V V Tabela 13 (Fonte: Autor) 11 2. Lógica Proposicional A lógica proposicional é um formalismo matemático por meio do qual podemos abstrair a estrutura de um argumento, eliminando a ambiguidade existente na linguagem natural. Esse formalismo é composto por uma linguagem formal e por um conjunto de regras de inferência que nos permitem analisar um argumento de forma precisa e decidir a sua validade. O alfabeto da Lógica proposicional é definido pelos símbolos a seguir: Símbolos de pontuação: ( , ) Símbolos de verdade: true, false Símbolos proposicionais: p, q, r, s, p1, q1, r1, s1, p2, q2, ... O alfabeto da linguagem lógica proposicional é constituído de infinitos símbolos. Os conectivos proposicionais são símbolos utilizados também na lógica matemática, com as seguintes denominações: Símbolo Significado - Não ^ E v Ou ⊕ Ou exclusivo Se...então Se, somente se Tabela 14 (Fonte: Autor) 2.1. Fórmulas A construção das fórmulas na lógica proposicional é feita através da concatenação dos símbolos do alfabeto, observando-se as seguintes regras: 12 1) Todo símbolo de verdade é uma fórmula. 2) Todo símbolo proposicional é uma fórmula. 3) Se p é uma fórmula, então (−p), a negação de p, é uma fórmula. 4) Se p e q são fórmulas, então (p q) é uma fórmula. Esta fórmula é a disjunção das fórmulas p e q. 5) Se p e q são fórmulas, então (p q) é uma fórmula. Esta fórmula é a conjunção das fórmulas p e q. 6) Se p e q são fórmulas, então (p q) é uma fórmula. Neste caso, p é o antecedente e q o consequente da fórmula. 7) Se p e q são fórmulas, então (p q) é uma fórmula. Neste caso, p é o lado esquerdo e q o lado direito da fórmula. As fórmulas mais elementares da Lógica Proposicional são os símbolos de verdade e proposicionais. Utilizando as outras regras, é possível elaborar um conjunto infinito de fórmulas a partir das duas primeiras. Os símbolos de pontuação são utilizados na formação das células. Exemplo: p, q e r são fórmulas; a partir das fórmulas p e q, construímos a fórmula (p q); utilizando a fórmula (p q) e r, temos a seguinte fórmula: ((p q) r) Seguindo esse raciocínio podemos criar infinitas fórmulas. Notação: Os parênteses podem ser omitidos, caso essa omissão não cause problemas na interpretação da fórmula. Observe: 13 (((p r) → s) (q s)) Pode ser reescrita como: (p r) → s ↔ q s 2.1.1. Ordem de precedência Assim como na matemática, na lógica proposicional os conectivos têm uma ordem de precedência – a utilização dessa ordem permite a simplificação das fórmulas com a eliminação de símbolos de pontuação. Ordem de precedência dos conectivos proposicionais: Maior precedência: − Precedência intermediária: , Menor precedência: , Exemplificando: Os conectivos , não possuem precedência de um sobre o outro, então na seguinte fórmula há duas interpretações distintas: pqr ((p q) r) ou ((p (q r)) Além da precedência, existem as regras de associatividade, que servem para definir a prioridade na fórmula para conectivos de mesma precedência: Conectivos associativos à esquerda: , Conectivos associativos à direita: , Exemplo: 14 pqr fica como (p q) r pqr fica como p (q r) 2.1.2. Comprimento de fórmula O comprimento de uma fórmula proposicional h, denotado por comp [h], é definido da seguinte forma: Se h é um símbolo proposicional ou de verdade, então comp [h] = 1 Se h e g são fórmulas da lógica proposicional, então: comp [−h] = comp [h] +1 comp [h g] = comp [h] + comp [g] + 1 comp [h g] = comp [h] + comp [g] + 1 comp [h g] = comp [h] + comp [g] + 1 comp [h g] = comp [h] + comp [g] + 1 Os símbolos de pontuação não são considerados no cálculo do comprimento. O comprimento da fórmula é obtido contando os símbolos proposicionais, os de verdade e os conectivos. Exemplificando: nas fórmulas: (p q) e ((p q) r), o comprimento é 3 e 5, respectivamente. 2.1.3. Subfórmulas Uma subfórmula é um pedaço de uma fórmula, um conjunto formado de subfórmulas. Contém todos os pedaços válidos dessa fórmula, inclusive ela mesma. Observe: 15 Sendo h uma fórmula, uma subfórmula de h é definida por: h é uma subfórmula de h. Se h = (−g), então g é uma subfórmula de h. Se h é uma fórmula do tipo: (p q), (p q), (p q) ou (p q), então p e q são subfórmulas de h. Se g é subfórmula de h, então toda subfórmula de g é subfórmula de h. 2.2. Semântica É na semântica da lógica proposicional que se associa a cada objeto sintático um significado. O resultado da fórmula (p q) somente pode ser considerado verdadeiro ou falso quando atribuímos significado a p e q. Observe: p = “Está chovendo”. q = “A rua está molhada”. Considerando o conectivo “” com o significado de inclusão dos fatos, para a fórmula ser verdadeira, os significados de p e q devem ser verdadeiros. No caso, isso irá depender das condições climáticas do dia, que irão determinar o valor falso ou verdadeiro para p. Indicamos da seguinte forma: I[p] = V ou I[p] = F e também se I[q] = V ou I[q] = F No caso em que I[p] = V, I[q] = F e é interpretado como conjunção dos fatos, então: I[(p q)] = F. Se modificarmos o significado de p e q, podemos obter outros resultados. Observe: 16 p = “Há dez reais no cofre”. q = “NÃO há dez reais no cofre”. Dessa forma, a fórmula (p q) é falsa e a fórmula (p q) é verdadeira. Os símbolos sintáticos, que, neste caso, estão associados a significados semânticos, definem as fórmulas. 2.2.1. Interpretação A lógica proposicional clássica é denominada lógica bivalente. Isso porque as suas fórmulas possuem somente dois valores, o “verdadeiro” e o “falso”. O significado ou semântica dos elementos sintáticos da linguagem da lógica proposicional é determinado por uma função I (função binária total) denominada interpretação. Definição (função binária): uma função é binária e seu contradomínio possui apenas dois elementos. Definição (interpretação): uma interpretação I, na Lógica Proposicional, é uma função binária tal que: O domínio de I é constituído pelo conjunto das fórmulas da lógica proposicional; O contradomínio de I é o conjunto {V,F}; O valor da interpretação I, tendo como argumentos os símbolos de verdade é dado por I[true] = V e I[false] = F; Dado um símbolo proposicional p, então I[p] E {V,F} 17 A interpretação das fórmulas na lógica proposicional é feita seguindo um conjunto de regras semânticas, obtidas a partir dos significados dos símbolos proposicionais, dos de verdade e dos conectivos proposicionais. 2.2.2. Procedimentos para interpretar fórmulas Dada a fórmula p e uma interpretação I, então o significado de s, indicado por I[p], é determinado pelas regras: Se p = q, onde q é um símbolo proposicional, então I[p] = I[q], e I[q] E {V,F}. Se p = true, então I[p] = I[true] = V. Se p = false, então I[p] = i[false] = F. Sejam h e g duas fórmulas. Se p = −h, então I[p] = I[−h] = V se I[h] = F, e I[p] = I[−h] = F se I[h] = V. Se p = (h g), então I[p] = I[h g] = V se I[h] = V e/ou I[g] = V, e I[p] = I[h g] = F se I[h] = F e I[g] = F. Se p = (h g), então I[p] = I[h g] = V se I[h] = V e I[g] = V, e I[p] = I[h g] = F se I[h] = F e/ou I[g] = F. Se p = (h g), então I[p] = I[h g] = V se I[h] = F e/ou I[g] = V, e I[p] = I[h g] = F se I[h] = V e I[g] = F. Se p = (h g), então I[p] = I[h g] = V se I[h] = I[g], e I[p] = I[h g] = F se I[h] ≠ I[g]. 18 2.2.3. Tabela Verdade As regras semânticas também podem ser representadas por tabelas verdade. As tabelas verdade associadas aos conectivos proposicionais já foram vistas no item 1.3 desta unidade. Vamos ver uma tabela verdade associada a uma fórmula. Observe: h = (−p q) (q p) p q -p -pvq q^p h V V F V V V V F F F F V F V V V F F F F V V F F Tabela 15 (Fonte: Autor) 19 Bibliografia a ser acessada: Livro: Fundamentos de Informática – Lógica para Computação, Capítulo 1 https://integrada.minhabiblioteca.com.br/#/books/978-85-216-21980/cfi/18!/4/2@100:0.00 20 Referências bibliográficas ALENCAR FILHO, Edgar de. Iniciação à Lógica Matemática. São Paulo: Nobel, 2002. GERSTING, J. Fundamentos Matemáticos para a Ciência da Computação. São Paulo: LTC Editora, 2004. SOUZA, João Nunes de. Lógica para ciência da computação: fundamentos da linguagem, semântica e sistemas de duração. Rio de Janeiro: Elsevier, 2002. BARBIERI FILHO, P.; HETEM Jr., A. Fundamentos de Informática – Lógica para Computação. Rio de Janeiro: LTC Editora, 2013. (Biblioteca virtual: Minha Biblioteca). 21