Uma tabela verdade apresenta todas as combinações possíveis de valores verdadeiros/falso para as variáveis de uma expressão lógica e mostra a saída resultante para cada uma delas — a base da lógica proposicional, projeto de circuito digital e provas formais. Esta calculadora cria essa tabela para qualquer expressão digitada, usando um analisador seguro escrito à mão em vez de um atalho de execução de código dinâmico, e classifica automaticamente o resultado como tautologia, contradição ou contingência.
Como funciona a calculadora
Sua expressão é lida em uma pequena árvore de análise que já codifica a precedência do operador: NOT vincula mais firmemente, depois AND, depois XOR, depois OR, depois IMPLIES e, finalmente, IFF (o bicondicional), que vincula mais livremente — a mesma convenção usada na maioria dos livros didáticos de lógica. Cada variável distinta de uma única letra é coletada automaticamente e a calculadora gera todas as 2ⁿ combinações possíveis de verdadeiro/falso para n variáveis, avaliando a árvore de análise uma vez por linha. Nenhum eval() ou execução de código dinâmico é usado em qualquer lugar — o analisador reconhece apenas variáveis, os operadores suportados e parênteses, portanto, nada que você digita pode ser executado como código.
Lendo a sintaxe de entrada
As variáveis devem ter letras únicas (A, B, C…) e os operadores podem ser digitados de três maneiras: como uma palavra-chave (AND, OR, NOT, XOR, IMPLIES ou THEN, IFF), como um alias ASCII (&&, ||, !, ->, <->), ou como o símbolo formal (∧ ∨ ¬ ⊕ → ↔) — todas as três formas podem ser misturadas livremente na mesma expressão. Os parênteses substituem a precedência padrão exatamente como na aritmética, então A OR (B AND NOT C) e (A OR B) AND NOT C produzem tabelas diferentes.
Limites e casos extremos
O analisador rejeita qualquer coisa que não seja uma variável de uma única letra, um operador compatível ou um parêntese — identificadores de múltiplas letras (como foo) geram um erro claro em vez de serem ignorados silenciosamente, já que apenas letras únicas são tratadas como variáveis. Para manter a tabela legível e o cálculo instantâneo, as expressões são limitadas a 8 variáveis distintas (256 linhas) e 300 caracteres; ultrapassar qualquer um dos limites retorna um erro de linguagem simples em vez de uma tabela errada ou truncada.