Calculadora lógica

108 views
Skip to first unread message

Daniel Durante

unread,
Jul 13, 2025, 6:43:46 PM7/13/25
to Lista Lógica
Colegas,

Não escrevo uma linha de código desde o milênio passado, mas estava vendo meus alunos sofrerem com as opções disponíveis online de calculadoras lógicas proposicionais. É que pedi, como tarefa, para eles resolverem, via formalização de argumentos, algumas charadas ao estilo dos livros do Smullyan, e as tabelas ficam bem grandes. A tarefa é simbolizar (programar) e não resolver tabelas de verdade.

Então usei os robozinhos programadores do Google e pedi para eles fazerem uma para mim. Deu certo. Não sei a que custo ambiental!

Tinha que funcionar tanto em computadores quanto em celulares, porque computadores estão caindo em desuso entre a meninada.

Não é uma brastemp, mas resolveu meus problemas. Deixo aqui o link disponível para quem quiser usar e aperfeiçoar. 

Saudações,
Daniel.
-----
Departamento de Filosofia - (UFRN)
http://danieldurante.weebly.com

Marcelo Finger

unread,
Jul 13, 2025, 8:53:28 PM7/13/25
to Daniel Durante, Lista Lógica
Oi Daniel.

Fantástico!

Você poderia disponibilizar também o código?  E, se possível, os prompts que você usou para que a inteligência gerativa gerasse esse código.

[]s


--
LOGICA-L
Lista acadêmica brasileira dos profissionais e estudantes da área de Lógica <logi...@dimap.ufrn.br>
---
Você recebeu essa mensagem porque está inscrito no grupo "LOGICA-L" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para logica-l+u...@dimap.ufrn.br.
Para ver esta conversa, acesse https://groups.google.com/a/dimap.ufrn.br/d/msgid/logica-l/E25D0052-EC1D-41EA-A1E0-55CFC20F695C%40gmail.com.


--
Marcelo Finger
 Departament of Computer Science, IME-USP   
 http://www.ime.usp.br/~mfinger
 ORCID: https://orcid.org/0000-0002-1391-1175
 ResearcherID: A-4670-2009

Instituto de Matemática e Estatística,

Universidade de São Paulo

Rua do Matão, 1010 - CEP 05508-090 - São Paulo, SP

Daniel Durante

unread,
Jul 14, 2025, 10:39:09 AM7/14/25
to LOGICA-L, Marcelo Finger, Lista Lógica
Oi, Marcelo,

É um html simples, então dá para exibir o código fonte direto no navegador, no link da calculadora

(https://chimerical-melomakarona-514190.netlify.app/)

No Chrome é:
Veiw > Developer > View Source

Eu fiz, como prompt, uma espécie de manual de uso, detalhado. Claro que deu tudo errado nas primeiras vezes e eu, com bastante paciência, fui corrigindo, e fiz MUITAS versões intermediárias, onde fui melhorando, modificando, incluindo e corrigindo coisas. Deixo o primeiro prompt aqui embaixo.

Ah. Eu fiz no 
https://aistudio.google.com/

Um abraço,
Daniel.

________
Crie uma página web que implemente uma calculadora de tabelas de verdade para a lógica clássica proposicional de acordo com o seguinte manual de funcionamento. A calculadora deve ser operacional tanto em computadores, quanto em tablets em telefones celulares, portanto, deve ter um teclado virtual parecido com este [** eu enviei um print da calculadora do Logic Calc como modelo (www.votsis.org/logic) **]  

Manual de Funcionamento para uma Calculadora de Tabela-Verdade de Estilo Direto

1. Introdução e Filosofia de Apresentação

O objetivo desta calculadora é gerar tabelas-verdade de uma maneira limpa, intuitiva e que espelhe o método de avaliação manual usado no livro de lógica "Para Todxs:Natal", entre outros. A principal característica é a ausência de colunas intermediárias para subfórmulas. Em vez disso, os valores-verdade (Verdadeiro/Falso, ou V/F) são exibidos diretamente sob os componentes que os geram: as proposições atômicas e os operadores lógicos.

Isso resulta em uma tabela mais compacta e com o resultado final de cada linha destacado sob o operador lógico principal da fórmula.

2. O Método de Apresentação da Tabela-Verdade

A tabela é construída seguindo uma hierarquia visual:

Colunas de Base: No lado esquerdo da tabela, são apresentadas as colunas para cada proposição atômica (ex: P, Q, R), listando todas as combinações possíveis de valores-verdade.

Colunas de Fórmulas: Para cada fórmula, conjunto de fórmulas ou argumento inserido, uma única área de resultado é criada à direita das colunas de base.

Avaliação Direta: Dentro da área da fórmula:
    1.  Os valores-verdade de cada proposição atômica (P, Q, etc.) são repetidos diretamente abaixo de cada ocorrência daquela letra na fórmula.
    2.  O resultado da operação de cada conectivo lógico (negação, conjunção, disjunção, condicional, bicondicional) é calculado e exibido diretamente sob aquele símbolo.
    3.  A avaliação segue a ordem de precedência dos operadores (geralmente: negação, conjunção/disjunção, condicional, bicondicional), com parênteses definindo a ordem.
    4.  O valor-verdade final de toda a fórmula para cada linha é o valor que aparece sob o operador lógico principal daquela fórmula. Este é o resultado mais importante e deve ser destacado visualmente (por exemplo, em negrito).

Exemplo para uma única fórmula: `(P → Q) ↔ (¬P ∨ Q)`

                        ↓
| P | Q ‖ (P | → | Q) | ↔ | (¬ | P | ∨ | Q) |
|---|---‖----|---|----|---|----|---|---|----|
| V | V ‖  V | V | V  | V |  F | V | V | V  |
| V | F ‖  V | F | F  | V |  F | V | F | F  |
| F | V ‖  F | V | V  | V |  V | F | V | V  |
| F | F ‖  F | V | F  | V |  V | F | V | F  |

(deve aparecer desformatada, mas com uma fonte monoespaçada fica certinha!)

Neste exemplo, os valores sob os conectivos e as letras sentenciais são resultados intermediários, e a coluna de valores sob o bicondicional (↔), marcada com a seta vertical, que é o operador principal, é o resultado final da sentença, mostrando que ela é uma tautologia.

3. Como a Calculadora Deve Operar

A calculadora deve ser capaz de analisar três tipos de entrada:

a) Fórmulas Individuais:

Entrada: O usuário insere uma única fórmula lógica bem-formada, como `P & (Q → P)`.

Saída: A calculadora gera a tabela-verdade no estilo direto, como descrito acima. Ao final, ela deve classificar a fórmula como sendo uma Tautologia (todas as linhas resultam em 'V' sob o operador principal), Contradição (todas as linhas resultam em 'F') ou Contingência (a coluna do operador principal contém tanto 'V' quanto 'F').

b) Conjuntos de Fórmulas:

Entrada: O usuário insere um conjunto de fórmulas, separadas por vírgulas e delimitadas por chaves. Exemplo: `{P → Q, P, Q}`, ou uma por linha, diretamente.

Saída: A calculadora gera uma tabela-verdade que contém colunas para cada fórmula no conjunto. A análise principal aqui é a de consistência.

Análise de Consistência: A calculadora deve verificar se existe pelo menos uma linha na tabela onde todas as fórmulas do conjunto são verdadeiras simultaneamente.

 * Se existir tal linha, a calculadora deve exibir a mensagem: "O conjunto é Consistente".
   
 * Se não existir nenhuma linha onde todas as fórmulas são verdadeiras, a mensagem deve ser: "O conjunto é Inconsistente".

c) Argumentos:

* Entrada: O usuário insere um argumento, que consiste em um conjunto de premissas (delimitado por chaves e separado por vírgulas) seguido pelo símbolo de consequência lógica (por exemplo, `╞` ou `|=` ou '∴') e a conclusão. Exemplo: `{P → Q, P} ╞ Q`. Ou uma sentença por linha, diretamente, indicando a última sentença como conclusão.

* Saída: A calculadora gera uma tabela-verdade com colunas para cada premissa e uma coluna para a conclusão.

* Análise de Validade: A calculadora deve analisar a tabela para determinar a validade do argumento. Um argumento é válido se, e somente se, não houver nenhuma linha na qual todas as premissas são verdadeiras e a conclusão é falsa.

    * A calculadora deve examinar todas as linhas. Se encontrar uma linha com todas as premissas 'V' e a conclusão 'F' (um contraexemplo), deve exibir a mensagem: "O argumento é Inválido".

    * Se, após verificar todas as linhas, não encontrar nenhum contraexemplo, a mensagem deve ser: "O argumento é Válido".

Marcelo Finger

unread,
Jul 14, 2025, 11:18:34 AM7/14/25
to Daniel Durante, LOGICA-L
Olá Daniel.

Obrigadíssimo por mandar essas informações.  

Estou pensando em adaptar o que você fez para um trabalho de curso que utilize essas ferramentas para geração de código, quem sabe melhorar um pouco a interface, as respostas ou a edição.  É um curso que vai se iniciar agora no segundo semestre.

Se tiver resultados interessantes, ou não, informarei nessa lista.

[]s

Hermógenes Oliveira

unread,
Jul 14, 2025, 1:25:09 PM7/14/25
to LOGICA-L
Olá, Daniel.

Bastante útil. Obrigado por compartilhar!

Saudações,

--
Hermógenes Oliveira
Reply all
Reply to author
Forward
0 new messages