> Ce cours fournit une introduction à la logique booléenne et à la manière dont elle s'applique à l'informatique. Vous apprendrez non seulement les bases des opérations booléennes, mais vous comprendrez également comment ces opérations peuvent être utilisées pour créer des structures plus complexes, telles que des additions binaires, des multiplexeurs, des décodeurs et, finalement, un ordinateur entier.
Un système présentera un fonctionnement __logique combinatoire__ si l'état à un instant $`t`$ des variables de sortie ne dépend que de l'état des variables d'entrée au même instant $`t`$.
Une variable logique est un type de variable qui peut prendre uniquement l'une de deux valeurs, généralement désignées comme 0 (faux) et 1 (vrai). Ces deux valeurs sont souvent utilisées pour représenter deux états opposés. Par exemple :
Une fonction logique est une expression qui produit une valeur de vérité à partir d'autres valeurs de vérité. Par exemple, une fonction logique peut comporter des variables logiques $`n`$. Pour chacune de ces combinaisons, la fonction peut prendre une valeur 0 ou 1. Nous obtenons donc $`2^n`$ combinaisons pour ces $`n`$ variables.
Une porte logique est un dispositif qui effectue une opération logique sur un ou plusieurs signaux logiques produisant une sortie. Les portes logiques de base sont :
1.**Porte AND** : Cette porte a deux ou plusieurs entrées et une sortie. La sortie est vraie (1) si toutes les entrées sont vraies.
3.**Porte NOT** : Cette porte a une seule entrée et une sortie. La sortie est l'inverse de l'entrée. Si l'entrée est vraie (1), la sortie est fausse (0) et vice versa.
5.**Porte NAND (NON-ET)** : Cette porte a deux ou plusieurs entrées et une sortie. La sortie est fausse (0) uniquement si toutes les entrées sont vraies. C'est l'inverse de la porte AND.
6.**Porte NOR (NON-OU)** : Cette porte a deux ou plusieurs entrées et une sortie. La sortie est vraie (1) uniquement si toutes les entrées sont fausses. C'est l'inverse de la porte OR.
Système algébrique constitué de l'ensemble $`\{0, 1\}`$, muni des 3 opérateurs de base NON, ET, OU.
#### Propriétés
- __Associativité__ : Comme avec les opérations habituelles, certaines parenthèses sont inutiles. Exemple : $`( a \land b ) \land c = a \land (b \land c) = a \land b \land c`$
- __Commutativité__ : L'ordre est sans importance. Exemple : $`a \land b = b \land a`$
- __Distributivité__ : Exemple : $`a \lor ( b \land c ) = ( a \lor b ) \land ( a \lor c )`$
- __Idempotence__ : Exemple : $`a \land a \land a \land \dots \land a = a`$
### Forme canonique
Combinaison des variables de la fonction via les opérateurs de base de l’__algèbre de Boole__.
La fonction $`S`$ définie par :
```math
\begin{aligned}
S = 1 \text{ si} \left\{
\begin{array}{l}
a = 0 \text{ et } b = 1 \\
a = 0 \text{ et } b = 0 \\
a = 1 \text{ et } b = 0
\end{array}
\right.
\end{aligned}
```
$`S`$ s'écrit sous sa forme canonique : $`S= (\overline{a} \land b) \lor (\overline{a} \land \overline{b}) \lor (a \land \overline{b})`$
4. $`S(a, b, c) = (\overline{a} \land b) \lor (a \land c)`$
5. Communication = Émetteur ET Récepteur
6. Décrocher = (Sonnerie ET Décision de répondre) OU décision d'appeler
7. Bac = Avoir la moyenne OU (NON Avoir la moyenne ET rattrapage)
### Équivalence d'expressions booléennes
1. Montrer que $`(a \land b) = \overline{\overline{a} \lor \overline{b}}`$
2. Montrer que $`(a \lor b) = \overline{\overline{a} \land \overline{b}}`$
N.B : Deux expressions booléennes sont équivalentes si leurs tables de vérité le sont.
Autrement dit, si pour toutes les entrées des tables de vérité, l'ensemble des valeurs de sorties de ces mêmes tables sont équivalentes alors les expressions booléennes sont équivalentes.
### Déterminer une expression booléenne
| a | b | ssi(a, b) |
| :--: | :--: | :--: |
| 0 | 0 | __1__ |
| 0 | 1 | __0__ |
| 1 | 0 | __0__ |
| 1 | 1 | __1__ |
**Travail à effectuer** : Trouver l'expression booléenne, notée ssi(a, b) à partir de la table de vérité ci-dessus.
### Loi de De Morgan
Les __lois de De Morgan__ sont des identités entre propositions logiques. Elles ont été formulées par le mathématicien britannique Augustus De Morgan (1806-1871).
[NANDGAME](http://nandgame.com/) est un jeu en ligne gratuit où vous pouvez construire un ordinateur à partir de zéro en utilisant uniquement la porte logique NAND.
<arel="license"href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><imgalt="Licence Creative Commons"style="border-width:0"src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png"/></a><br/>Ce cours est mis à disposition selon les termes de la <arel="license"href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International</a>.