L'écriture des fonctions logiques s'effectue automatiquement à partir des tables de vérités décrivant l'application. La méthode s'appuie sur le fait qu'une fonction logique ne peut prendre que deux valeurs 0 ou 1. En conséquence, une fonction logique d'une variable ne peut être égale qu'à la variable ou à son complément :
f(a) = a ou f(a) = a
soit f(a) = C0.a + C1.a
La détermination des constantes C0 et C1 dépend des valeurs de la fonction ainsi si la fonction est :
a | f(a) |
0 | 0 |
1 | 1 |
soit f(a) = a. La constante C0 est égale à f(1) mais si la fonction s'écrit :
a | f(a) |
0 | 1 |
1 | 0 |
soit f(a) = a. La constante C1 est alors égale à f(0). La forme générale de la fonction f(a) est alors :
f(a) = f(1).a + f(0).a
Cette écriture peut être généralisée à deux variables ou plus. Ainsi, la fonction f(a,b) peut s'écrire :
f(a,b) = C0.a + C1.a
Si a est égal à 0, il vient : f(0,b) = C1 et si a est égal à 1, f(1,b) est égal à C0. La fonction f(a,b) peut s'écrire alors :
f(a,b) = f(1,b).a + f(0,b).a
En faisant le même raisonnement avec f(1,b) et f(0,b), il vient :
f(1,b) = f(1,1).b + f(1,0).b
f(0,b) = f(0,1).b + f(0,0).b
soit pour f(a,b) :
f(a,b) = f(1,1).a.b + f(1,0).a.b + f(0,1).a.b + f(0,0).a.b
Ce résultat peut être généralisé à trois variables :
f(a,b,c) = f(1,1,1).a.b.c + f(1,1,0).a.b.c + f(1,0,1).a.b.c + f(1,0,0).a.b.c + f(0,1,1).a.b.c
+ f(0,1,0).a.b.c + f(0,1,0).a.b.c + f(0,0,0).a.b.c
Considérons la table de vérité suivante :
a | b | c | f(a,b,c) |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 |
Sachant que le 0 est un élément absorbant et que le 1 est l'élément neutre du ET seul les termes où la fonction prend la valeur 1 interviennent dans la fonction, il vient donc :
|
f(a,b,c) = a.b.c + a.b.c + a.b.c + a.b.c + a.b.c |