- Logique ternaire
-
La logique ternaire, ou logique 3 états, est une branche du calcul des propositions qui étend l'algèbre de Boole, en considérant en plus des états VRAI et FAUX l'état INCONNU.
Sommaire
Tables de vérité
Dans la logique ternaire de Stephen Cole Kleene, les tables de vérité des fonctions de base sont les suivantes :
A B A OU B A ET B NON A A implique B Vrai Vrai Vrai Vrai Faux Vrai Vrai Inconnu Vrai Inconnu Faux Inconnu Vrai Faux Vrai Faux Faux Faux Inconnu Vrai Vrai Inconnu Inconnu Vrai Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Inconnu Faux Inconnu Faux Inconnu Inconnu Faux Vrai Vrai Faux Vrai Vrai Faux Inconnu Inconnu Faux Vrai Vrai Faux Faux Faux Faux Vrai Vrai D'une certaine manière, ces propriétés correspondent à l'intuition : par exemple, si on ignore si A est vrai ou faux, son inverse est tout aussi incertain.
Les autres fonctions logiques se déduisent de par leur définition, la distributivité continuant à s'appliquer. Par exemple A NAND B, si A est Faux et B Inconnu, vaut NON(A ET B), soit NON(Faux), donc Vrai.
En électronique
En électronique numérique, une sortie vaut 0 quand elle est connectée à la masse, 1 quand elle est connectée à la source de tension. Une sortie à trois états prend en compte la possibilité d'un troisième état, l'état de haute impédance, qui se produit quand physiquement, la sortie n'est plus connectée à rien, ce qui donne une tension indéterminée.
En VHDL, le type de variable std_logic (qui reflète la norme IEEE 1164) prévoit pas moins de 9 valeurs : 0, 1, X (inconnu à cause d'un conflit), U (non initialisé), Z (haute impédance), L, H (signaux faibles respectivement déterminés comme valant 0 et 1), W (signal faible ne pouvant être déterminé), et - (indifférent, ce qui signifie que cette valeur peut être choisie à la valeur qui convient pour simplifier les équations)[1].
En informatique
En SQL, les variables de type booléen peuvent prendre, en plus des valeurs vrai et faux, la valeur NULL. Une variable booléenne non initialisée, ou une opération avec une variable numérique elle-même non initialisée (dont la valeur est aussi appelée NULL) renvoient le booléen NULL (4<NULL, NULL étant ici le NULL des nombres, renvoie le NULL des booléens).
Quand on manipule un NULL booléen dans les opérations logiques, la logique ternaire s'applique. "IF A THEN [instructions]" conduit à ne pas exécuter les instructions si A est NULL.
Voir aussi
Références
Wikimedia Foundation. 2010.