Logique ternaire
|
|
Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.
|
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é [modifier]
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 [modifier]
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 [modifier]
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.