Prévia do material em texto
LÓGICA COMPUTACIONAL OBJETIVOS DE APRENDIZAGEM > Definir lógica proposicional. > Construir sentenças declarativas. > Reconhecer a linguagem da lógica proposicional. Introdução A lógica computacional utiliza proposições para estruturar suas sentenças lógicas e, com isso, conectivos lógicos podem ser utilizados a fim de testar expressões lógicas. Para a construção de sentenças mais complexas, deve-se utilizar a lin- guagem da lógica proposicional. Neste capítulo, vamos apresentar a definição da lógica proposicional, de que forma são construídas as sentenças declarativas e, por fim, utilizar as técnicas da linguagem da lógica proposicional para fazer testes e gerar valores lógicos em suas saídas. Conceitos fundamentais Ao trabalharmos com lógica, é necessário que tenhamos ferramentas para poder expressar pensamentos mais complexos, e por isso utilizamos as pro- posições. Mas de que se trata, de fato, uma proposição? Segundo o dicionário Aurélio (FERREIRA, 2014), proposição é definida como o ato ou o efeito de propor, como uma expressão verbal do pensamento e como máxima, sentença, asserção. Já segundo Carnielli e Epstein (2006), trata-se de um conjunto de palavras e de símbolos combinados no intuito de transmitir pensamentos completos e não ambíguos, de forma que o resultado da sentença, após Lógica proposicional Sergio Eduardo Nunes interpretada, retorne resultados VERDADEIRO ou FALSO. Para compreender melhor, observe os exemplos a seguir. � Brasília é a capital do Brasil. � 10 < 4. � Uva é uma fruta. � 17 é um número ímpar. Talvez você esteja questionando a segunda proposição, que afirma que o número 10 é menor do que quatro. Porém, lembre-se de que os pensamentos das sentenças proposicionais podem gerar VERDADEIRO ou FALSO. Nesse exemplo, é gerado um valor FALSO. Para deixar ainda mais claro, vejamos exemplos de expressões que não são proposições. � Ele caiu no balcão. � Será divertido. � O time perdeu. Veja que são expressões ambíguas e que, portanto, não permitem retornar VERDADEIRO ou FALSO. Conforme defendem Carnielli e Epstein (2006), a lógica matemática e com- putacional possui três princípios, conhecidos como axiomas (termo utilizado por Aristóteles para a ciência do raciocínio lógico). Vejamos. 1. Princípio da identidade: se uma proposição é VERDADEIRA, ela será VERDADEIRA. Podemos dizer que uma coisa é o que ela é e não se confunde com qualquer outra. 2. Princípio de não contradição: uma proposição jamais poderá assumir valores VERDADEIRO e FALSO ao mesmo tempo. Em outras palavras, não é possível assumir dois estados ao mesmo tempo. 3. Princípio do terceiro excluído: a afirmação pode ser VERDADEIRA ou sua negação é VERDADEIRA. Podemos compreender que uma expressão será VERDADEIRA, e se sua negação resultar em VERDADEIRO, então essa expressão é FALSA. Outra característica da proposição é a utilização de letras para expres- sar as proposições. Segundo Silva, Finger e Melo (2017), as proposições são Lógica proposicional2 divididas em simples e complexas, e a representação por meio das letras foi convencionada conforme pode ser observado a seguir. � Proposição simples: não permite der subdividida em outras expressões. Por exemplo, “João é careca”. As proposições simples são representadas por letras latinas em caixa-baixa (minúsculas), iniciando pela letra “p”; ou seja, são utilizadas as letras p, q, r, s, t, ..., z. � Proposição complexa: são expressões formadas pela combinação de duas ou mais proposições. Por exemplo, “João é careca e Paula é gaúcha”. As proposições complexas utilizam as letras maiúsculas; ou seja, P, Q, R, S, T, ..., Z. Para melhor compreensão, observe o exemplo a seguir: p: Hoje eu vou para a faculdade. q: Se chover, então irei ao cinema. P: Hoje eu vou para a faculdade; se chover, então irei ao cinema. Nesse exemplo, foram declaradas duas proposições simples: p e q. A partir das duas proposições simples, foi formada uma proposição composta: P. Essa expressão P também é conhecida como fórmula proposicional. Você percebeu que, para as duas proposições simples serem combinadas em uma composta, foi necessário fazer uma conexão? Isso foi feito pela partícula SE, que atua, portanto, como conectivo. Conforme afirmam Silva, Finger e Melo (2017), os conectivos são palavras utilizadas para formar novas proposições a partir de outras. Conforme o dicionário Aurélio (FERREIRA, 2014), o termo conectivo é o que liga ou une, um vocábulo que estabelece conexão entre palavras ou entre partes de uma frase. Carnielli e Epstein (2006) determinam que os conectivos utilizados nas expressões da lógica matemática e computacional são os seguintes. � NÃO: utilizado para negar uma expressão proposicional. Por exemplo: “O sol é uma estrela; o sol NÃO é uma estrela”. � E: também conhecido como conjunção, é utilizado para realizar a co- nexão entre duas proposições. Por exemplo: “O número 20 é par E o número 13 é ímpar”. � OU: utilizado para expressar uma disjunção entre as proposições sim- ples. Por exemplo: “No aniversário, eu vou comer doce OU salgado”. Lógica proposicional 3 � SE... ENTÃO: expressa uma condição para que algo ocorra ou não. Por exemplo: “SE Iago é cozinheiro, ENTÃO sabe fazer macarrão”. � SE E SOMENTE SE: trata-se de uma condição que expressa uma condição única de determinada ocorrência. Por exemplo: “Portugal é na Europa SE E SOMENTE SE O Sol é uma estrela”. Para facilitar a escrita de uma proposição complexa, são utilizados sím- bolos. Para expressar os conectivos na lógica matemática e computacional, são utilizados os símbolos demonstrados no Quadro 1. Quadro 1. Símbolos utilizados para expressar os conectivos lógicos Conectivo Símbolo NÃO ~ E ^ OU v SE... ENTÃO → SE E SOMENTE SE ↔ Fonte: Adaptado de Alencar Filho (2002, p. 75). Construção de sentenças declarativas Agora que você já reconhece os tipos de proposições e os conectivos lógicos, é possível avançarmos na construção de sentenças. O intuito, nesse mo- mento, é utilizar expressões literais, letras e símbolos, de forma a construir as expressões proposicionais. Segundo Carnielli e Epstein (2006), a construção das sentenças decla- rativas, em que são utilizadas as técnicas e demais ferramentas da lógica matemática computacional, demanda atenção a algumas regras, pontuadas a seguir. � São utilizados símbolos proposicionais (letras minúsculas) para a expressão das proposições simples. � Podem ser utilizados mais de um conector lógico em uma mesma proposição complexa. Lógica proposicional4 � Os parênteses priorizam as proposições em seu interior. � Uma fórmula proposicional é composta por afirmações lógicas e co- nectivos lógicos. A compreensão do raciocínio lógico em que sejam utilizados textos (expressões) é uma forma de construir expressões lógicas. Digite, em seu motor de busca preferido, “Raciocínio lógico na compreensão de texto” para ter acesso a artigo de mesmo nome que demonstra como as sentenças são tratadas com as proposições. Para que você possa compreender como é efetuada a construção das sentenças, observe, abaixo, os exemplos com cada um dos conectivos lógicos. 1. Conectivo NÃO: a negação de uma proposição é conhecida por um ~p (deve ser lido como “não p”). Sempre que uma afirmativa for VER- DADEIRA, sua negação resultará em uma afirmação FALSA; quando uma afirmativa for FALSA, sua negação resultará em uma afirmação VERDADEIRA. Acompanhe o exemplo a seguir. p: Mateus é jogador de futebol. ~p: NÃO é verdade que Mateus é jogador de futebol. Outra forma de expressar uma negação pode ser observada a seguir. ~p: É FALSO que Mateus é jogador de futebol. 2. Conectivo E: trata-se da conjunção de duas proposições p E q, em que o resultado sempre será VERDADEIRO quando as proposições p E q forem verdadeiras; caso contrário, será FALSA. Observe os exemplos a seguir. p: A terra é redonda. q: 3 < 15. p ^ q: A terra é redonda E 3 < 15, sendo essa sentença VERDADEIRA.r: O sol é verde. s: Uruguai fica na América do Sul. r ^ s: O sol é verde E o Uruguai fica na América do Sul, sendo essa sentença FALSA. Para que você entenda melhor o conectivo E, observe a Figura 1. Lógica proposicional 5 Figura 1. Diagrama de Venn para o E lógico. 3. Conectivo OU: efetua a disjunção de duas proposições p OU q. O valor lógico gerado será VERDADEIRO quando uma das proposições forem verdadeiras. Caso uma das proposições for falsa, então o valor lógico gerado será FALSO. Para compreender melhor, observe os exemplos a seguir. p: Tóquio é a capital da Bolívia. q: 0,595 é um número inteiro. p v q: Tóquio é a capital da Bolívia OU 0,595 é um número inteiro, pois ambas as afirmações são FALSAS. r: A água do mar é doce. s: 5 + 7 = 12. r v s: A água do mar é doce OU 5 + 7 = 12, pois, no caso, a primeira afirmação é FALSA e a segunda é VERDADEIRA (uma delas sendo VERDADEIRA basta para validar a relação entre as afirmativas). 4. Conectivo SE... ENTÃO: trata-se de uma proposição para condicionais. Lê-se “SE p ENTÃO q”. O valor lógico gerado somente será FALSO se p VERDADEIRO e q FALSO; nos demais casos, será sempre VERDADEIRO. Observe alguns exemplos. p: O ano tem 12 meses. q: São Paulo fica no Sul. p → q: SE o ano tem 12 meses, ENTÂO São Paulo fica no Sul, pois essa sentença FALSA. r: 2 é um número real. s: Pizza é um alimento. r → s: SE 2 é um número real, ENTÂO pizza é um alimento, pois essa sentença é VERDADEIRA. Lógica proposicional6 5. Conectivo SE E SOMENTE SE: trata-se de uma bicondicional e deve ser lida como “p SE E SOMENTE SE q”. O valor lógico gerado será VERDADEIRO quando ambas as sentenças p e q forem verdadeiras ou quando ambas forem falsas. Nos demais casos, será sempre FALSO. p: Python é uma linguagem de programação. q: MySQL é um sistema de gerenciamento de banco de dados. p ↔ q: Python é uma linguagem de programação SE E SOMENTE SE MySQL é um sistema de gerenciamento de banco de dados., sendo essa sentença VERDADEIRA. r: 4 é um número par. s: 5 / 3 = 3. r ↔ s: 4 é um número par SE E SOMENTE SE 5 / 3 = 3, sendo essa sentença FALSA. Você percebeu como são feitas as construções das sentenças declarati- vas? Porém, não é muito viável utilizarmos as sentenças para fazer os testes lógicos. Isso porque, conforme formos evoluindo nos estudos acerca da lógica computacional, carregar frases inteiras e fazer a junção com símbolos pode tornar o trabalho muito complicado. Para resolver essa questão, vamos compreender como utilizar a linguagem da lógica proposicional. Linguagem da lógica proposicional Agora que você sabe como as sentenças são construídas, podemos começar a substituir as sentenças por letras e, assim, tornar a análise mais simplificada. O que faremos, agora, é utilizar simbolismos para criar expressões lógicas, mas ainda com a utilização das sentenças para a determinação de seu valor lógico. Segundo Souza (2008), a linguagem da lógica proposicional se trata de uma linguagem com regras específicas que utiliza as variáveis proposicionais e os conectivos lógicos para formar expressões. A fim de se reforçar alguns pontos da linguagem lógica proposicional, vejamos algumas de suas características. � Uma expressão p conectivo q pode ser representada por uma propo- sição composta P. � Uma proposição composta P pode fazer parte de uma expressão lógica P conectivo Q. Lógica proposicional 7 � Sentenças com mais de um conectivo lógico devem observar a seguinte ordem de precedência. ■ Maior precedência: ~ (NÃO). ■ Precedência intermediária: →(SE... ENTÃO), ↔ (SE E SOMENTE SE). ■ Menor precedência: ^ (E), v (OU). Caso os operadores sejam de mesmo nível de precedência, ou iguais, a ordem de precedência segue da esquerda para a direita. Na construção das expressões por meio da linguagem da lógica proposicional, as ordens de precedência dos conectivos lógicos podem interferir no resultado. Por exemplo, p: V, q: V, r: F. Para resolver P: p q ^ r, deve-se fazer primeiro o q ^ r, e p com o resultado gerado. Dessa forma: P: V V ^ F P: V V P: V Agora, se erroneamente foram resolvidas as expressões da esquerda para a direita, o resultado gerado será: P: V V ^ F P: V ^ F P: F Com isso, para que você compreenda como é utilizada a linguagem da lógica proposicional, acompanhe os exemplos a seguir. Para tal, considere as proposições simples: p: 3 × 5 = 15 q: 9 / 3 < 2 r: 14 – 9 = 4 s: 7 × 7 = 72 Lógica proposicional8 Com base nas proposições simples e com o uso da linguagem lógica pro- posicional, observe a seguir. P: (p v q) ^ ~ r Para que isso seja resolvido, vamos, primeiramente, verificar os valores lógicos gerados pelas proposições p, q e r: p: 3 × 5 = 15. VERDADEIRO q: 9 / 3 < 2. FALSO r: 14 – 9 = 4. FALSO s: 7 × 7 = 72. VERDADEIRO Dessa forma, a expressão gerada será: P: (VERDAVEIRO v FALSO) ^ ~ FALSO P: (VERDADEIRO) ^ VERDADEIRO P: VERDADEIRO ^ VERDADEIRO P: VERDADEIRO Repare que, inicialmente, foi resolvido o teste lógico dentro dos parênteses e, na mesma linha, foi resolvido o NÃO lógico; por fim, o teste com o E lógico. Para simplificarmos ainda mais, vamos substituir o valor lógico VERDADEIRO por V e o valor lógico FALSO por F. Com isso, ainda utilizando as proposições simples p, q, r e s, vamos utilizar a linguagem lógica proposicional para mais um teste, conforme pode ser observado a seguir. P: (s → r) Q: (p ↔ q) R: Q v ~ P Dessa forma, vamos resolver as proposições complexas em separado: P: (V → F) P: F Q: (V ↔ F) Q: F Lógica proposicional 9 R: Q v ~ P R: F v ~ F R: F v V R: V Portanto, a expressão R: Q v ~ P vai gerar um valor lógico VERDADEIRO. A linguagem lógica proposicional é uma ferramenta computacio- nal muito aplicada no desenvolvimento de sistemas. Vamos, neste exemplo, compreender como ocorre essa relação. Determinado programa deve verificar três parâmetros: se o cliente é asso- ciado, se possui mais de 60 anos e se a mensalidade está em dia. Se tudo for atendido, o desconto será concedido. Para isso, vamos construir um caso com determinado cliente: p: João é um associado. q: João tem 62 anos. r: João está com todas as mensalidades em dia. s: João terá um desconto de 50%. P: (p ^ q ^ r) → s Dessa forma, vamos analisar se ele atende aos requisitos nas proposições para gerar os valores lógicos: p: João é um associado. VERDADEIRO. q: João tem 62 anos. VERDADEIRO. r: João está com todas as mensalidades em dia. VERDADEIRO. s: João terá um desconto de 50%. VERDADEIRO. Com isso: P: (p ^ q ^ r) → s P: (V ^ V ^ V) → V P: (V ^ V) → V P: V → V P: V Dessa forma, o programa vai retornar VERDADEIRO, pois o cliente atende a todos os requisitos. Lógica proposicional10 Percebeu como a linguagem da lógica proposicional é altamente aplicável na área de desenvolvimento? Essa ferramenta da lógica computacional possui diversas aplicabilidades e visa facilitar a construção dos algoritmos. Referências ALENCAR FILHO, E. de. Iniciação à lógica matemática. 2. ed. São Paulo: Nobel, 2002. CARNIELLI, W.; EPSTEIN, R. L. Computabilidade, funções computáveis, lógica e os fun- damentos matemáticos. São Paulo: UNESP, 2006. FERREIRA, A. B. de H. Mini Aurélio: o mini dicionário da língua portuguesa. 8. ed. Rio de Janeiro: Positivo, 2014. SILVA, F. S. C. da; FINGER, M.; MELO, A. C. V. de. Lógica para computação. 2. ed. São Paulo: Cengage Learning, 2017. SOUZA, J. N. de. Lógica para ciência da computação: uma instrução concisa. 2ª Ed. – Rio de Janeiro: Elsevier, 2008. Leitura recomendada TASINAFFO, P. M. Um breve histórico do desenvolvimento da lógica matemática e o surgimento da teoria da computação. In: ENCONTRO DE INICIAÇÃO CIENTÍFICA E PÓS- -GRADUAÇÃO DO ITA, 14., 2008, São José dos Campos. Anais eletrônicos [...]. Disponível em: http://www.bibl.ita.br/xivencita/COMP07.pdf. Acesso em: 17 dez. 2020. Os links para sites da web fornecidos neste capítulo foram todos testados, e seu funcionamento foi comprovado no momento da publicação do material.No entanto, a rede é extremamente dinâmica; suas páginas estão constantemente mudando de local e conteúdo. Assim, os editores declaram não ter qualquer responsabilidade sobre qualidade, precisão ou integralidade das informações referidas em tais links. Lógica proposicional 11