Lógica ternária

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

Lógica ternária (ou lógica trivalente) refere-se a qualquer sistema lógico polivalente em que há três valores verdade indicando verdadeiro, falso e algum terceiro valor. Em contraste, a forma mais comum de lógica é bivalente (como a lógica booleana) e fornece somente verdadeiro e falso.

Definições[editar | editar código-fonte]

Representação de valores[editar | editar código-fonte]

Assim como na lógica bivalente, os valores verdade da lógica ternária podem ser representados numericamente usando diversas representações do sistema ternário. Exemplos comuns incluem:

  • 1 para verdadeiro, 2 para falso e 0 para desconhecido, irrelevante ou ambos.[1]
  • 0 para falso, 1 para verdadeiro e um não-inteiro como # ou ½.[2]
  • −1 para falso, +1 para verdadeiro e um terceiro valor, o que pode ser simplificado para somente −, + e 0, respectivamente.[3]

Tabela verdade[editar | editar código-fonte]

Segue abaixo uma tabela verdade mostrando operações lógicas para a lógica de Kleene.

A B A \lor B A \land B \lnot A
verdadeiro verdadeiro verdadeiro verdadeiro falso
verdadeiro desconhecido verdadeiro desconhecido
verdadeiro falso verdadeiro falso
desconhecido verdadeiro verdadeiro desconhecido desconhecido
desconhecido desconhecido desconhecido desconhecido
desconhecido falso desconhecido falso
falso verdadeiro verdadeiro falso verdadeiro
falso desconhecido desconhecido falso
falso falso falso falso

Na tabela verdade acima, desconhecido significa um estado contendo ou verdadeiro ou falso, mas não há conhecimento sobre qual dos dois estados está representado. Algumas operações conseguem ser aplicadas envolvendo desconhecido sem que haja ambiguidade. Por exemplo, dado que tanto verdadeiro \lor verdadeiro quanto verdadeiro \lor falso resultam em verdadeiro, verdadeiro \lor desconhecido também é verdadeiro.

Uso[editar | editar código-fonte]

Aplicações de bancos de dados[editar | editar código-fonte]

A linguagem SQL implementa lógica ternária como uma forma de lidar com o conteúdo nulo de campos de registros, utilizando NULL para representar valores em falta num banco de dados. Se um campo não possui um valor definido, o SQL assume NULL, mas esse valor não é gravado no banco de dados. Entretanto, um valor em falta é diferente dum valor numérico zero (0) ou de uma cadeia de caracteres vazia (""). A comparação com NULL resulta num estado desconhecido chamado UNKNOWN. Por exemplo, a expressão SQL "Cidade = 'Porto Alegre'" retorna FALSE para um registro contendo "Rio de Janeiro" no campo Cidade, mas retorna UNKNOWN para um registro contendo NULL no mesmo campo.

Usando a lógica ternária, o SQL consegue usar UNKNOWN para resolver expressões booleanas. Considerando a expressão "Cidade = 'Porto Alegre' OR Balanco < 0.0". Essa expressão retorna TRUE para qualquer registro contendo um valor negativo no campo Balanco. A mesma expressão retorna TRUE para qualquer registro contendo "Porto Alegre" no campo Cidade. Já FALSE é retornado somente para um registro contendo explicitamente uma cadeia diferente de "Porto Alegre" e cujo campo Balanco é explicitamente não negativo. Em qualquer outro caso, o retorno é UNKNOWN.

Na linguagem de manipulação de dados do SQL, um retorno TRUE duma expressão inicia uma ação, enquanto UNKNOWN ou FALSE não iniciam ações. Dessa forma a lógica ternária é transformada em binária para o utilizador.

Referências

  1. Brian Hayes. Third Base (em inglês) American Scientist Sigma Xi, the Scientific Research Society. Visitado em 29 de julho de 2008.
  2. In: Penguin Books. The Penguin Dictionary of Mathematics. 2. ed. Londres: [s.n.]. 417 pp.
  3. Knuth, Donald E.. In: Addison-Wesley. The Art of Computer Programming Vol. 2. [S.l.: s.n.]. 190 pp.

Ver também[editar | editar código-fonte]