Lógica ternária
Lógica ternária (ou lógica trivalente) refere-se a qualquer sistema lógico polivalente em que há três valores verdade indicando
,
e algum terceiro valor. Em contraste, a forma mais comum de lógica é bivalente (como a lógica booleana) e fornece somente
e
.
Índice |
Definições [editar]
Representação de valores [editar]
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
, 2 para
e 0 para
,
ou
.1 - 0 para
, 1 para
e um não-inteiro como # ou ½.2 - −1 para
, +1 para
e um terceiro valor, o que pode ser simplificado para somente −, + e 0, respectivamente.3
Tabela verdade [editar]
Segue abaixo uma tabela verdade mostrando operações lógicas para a lógica de Kleene.
![]() |
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|---|
| 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,
significa um estado contendo ou
ou
, mas não há conhecimento sobre qual dos dois estados está representado. Algumas operações conseguem ser aplicadas envolvendo
sem que haja ambiguidade. Por exemplo, dado que tanto
quanto
resultam em
,
também é
.
Uso [editar]
Aplicações de bancos de dados [editar]
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
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
- ↑ Brian Hayes. Third Base (em inglês). American Scientist. Sigma Xi, the Scientific Research Society. Página visitada em 29 de julho de 2008.
- ↑ Penguin Books, The Penguin Dictionary of Mathematics, 2, 417, Londres: 1998
- ↑ Knuth, Donald E. , Addison-Wesley, The Art of Computer Programming Vol. 2, 190, 1981
ou
.



