Aller au contenu

Le type boolĂ©en⚓

En 1847, George Boole invente une algÚbre pour formaliser la logique. Il définit trois opérateurs de base, qui vont permettre de traiter tous les problÚmes de logique.

I. Exemples de propositions et opĂ©rateurs de bases⚓

Exemple

a : Au self, il y a des frites tous les jours
b : Il est interdit de fumer dans le lycée

Une proposition peut ĂȘtre vraie ou fausse

Vrai : True ou 1
Faux : False ou 0

Donner la valeur de vérité des propositions a et b

a : Au self, il y a des frites tous les jours
b : Il est interdit de fumer dans le lycée

a est une proposition ...

b est une proposition ...

Opérateur ou

a : Au self, il y a des frites tous les jours
b : Il est interdit de fumer dans le lycée
a ou b est une proposition ...

On peut noter a or b, ou a \(\vee\) b (correspond au symbole \(\cup\))

a ou b est une proposition ...

Opérateur et

a : Au self, il y a des frites tous les jours
b : Il est interdit de fumer dans le lycée
a et b est une proposition ...

On peut noter a and b, ou a \(\wedge\) b (correspond au symbole \(\cap\))

a et b est une proposition ...

Opérateur non

a : Au self, il y a des frites tous les jours
b : Il est interdit de fumer dans le lycée
non a : ...
non b : ...

On peut noter not a ou \(\neg\)a

non a est une proposition ...

non b est une proposition ...

II. Tables de vĂ©ritĂ©s⚓

On jette deux dés

Des propositions peuvent ĂȘtre vraies ou fausses.
Par exemple : on jette deux dés.
x : le résultat du premier dé est pair
y : le résultat du deuxiÚme dé est pair

Arbre de toutes les possibilités :

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

Présentation des tables de vérités

La présentation usuelle reprend l'ordre trouvé avec l'arbre ci-dessus :

  • Pour une seule proposition x:
x ...
0 ...
1 ...
  • Pour deux propositions x et y
x y ...
0 0 ...
0 1 ...
1 0 ...
1 1 ...
Table de vérité de l'opérateur non

Compléter la table de vérité

\(x\) \(\overline{x}\)
0 ...
1 ...
Table de vérité de l'opérateur ou

Compléter la table de vérité

x y x \(\vee\) y
0 0 ...
0 1 ...
1 0 ...
1 1 ...

parallele

On peut faire l'analogie avec des interrupteurs en parallĂšle.

Table de vérité de l'opérateur et

Compléter la table de vérité

x y x \(\wedge\) y
0 0 ...
0 1 ...
1 0 ...
1 1 ...

serie

On peut faire l'analogie avec des interrupteurs en série.

Remarque

On peut écrire toutes les tables de vérités en remplaçant les 0 par des F (pour Faux), et les 1 par des V (pour Vrai)

III. Exemples d’expressions boolĂ©ennes :⚓

1. non (a et b)⚓

non (a et b)

Démontrer en utilisant des tables de vérité que les expressions booléennes suivantes sont équivalentes :

  • not (a and b)
  • not a or not b

Pour cela recopier et remplir les tables de vérités suivantes :

a b a et b non (a et b)
... ... ... ...
... ... ... ...
... ... ... ...
... ... ... ...
a b non a non b (non a) or (nonb)
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...

Les derniĂšres colonnes de ces deux tableaux sont \(\hspace{7em}\), ce qui prouve ...

2. non (a ou b)⚓

non (a ou b)

Démontrer en utilisant des tables de vérité que les expressions booléennes suivantes sont équivalentes :

  • not (a or b)
  • not a and not b

Pour cela recopier et remplir les tables de vérités suivantes :

a b a ou b non (a ou b)
... ... ... ...
... ... ... ...
... ... ... ...
... ... ... ...
a b non a non b (non a) and (nonb)
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...

Les derniĂšres colonnes de ces deux tableaux sont \(\hspace{7em}\), ce qui prouve ...

Remarque : ces deux propriétés sont connues sous le nom de lois de De Morgan.

IV. Un opĂ©rateur supplĂ©mentaire : xor⚓

Fromage ou dessert ?

Lorsqu’au restaurant on vous demande « fromage ou dessert ? », quels sont les possibilitĂ©s auxquelles vous avez le droit ?

On peut choisir ...

Il s’agit du « ou » exclusif, notĂ© xor.

Exemple du jardinier

Un jardinier doit Ă©laguer tous les arbres qui mesurent plus de 10 mĂštres ou qui ont plus de 10 ans. Peut-il tailler des arbres qui mesurent plus de 10 mĂštres et ont plus de 10 ans ?

Il ...

Il s’agit du « ou » inclusif, notĂ© or.

Table de vérité de l'opérateur xor

Recopier et compléter la table de vérité

x y x xor y
... ... ...
... ... ...
... ... ...
... ... ...

V. Variables boolĂ©ennes et Python⚓

1. Les variables boolĂ©ennes⚓

Tester en console

Que s'affiche-t-il dans la console ?

🐍 Console Python
>>> 3 == 5

>>> 3 == "3"

>>> 3 < 5

>>> 3 != 5

Des variables booléennes

Souvent les variables booléennes sont le résultat de tests :

Que s'affiche-t-il dans la console ?

🐍 Console Python
>>> a = -3**2 == -9

>>> type(a)

>>> a

>>> a = (-3)**2 == -9

>>> a

2. Python et les opĂ©rateurs⚓

Les booléens en Python

En Python, les booléens peuvent prendre les valeurs True et False.

Les opérations booléennes de bases sont and, or et not.

Tester en console

Que s'affiche-t-il dans la console ?

🐍 Console Python
>>> True and False

>>> True or False

>>> not True

Les priorités

Comme pour les opérations mathématiques, il y a des priorités sur les opérations booléennes.

Que s'affiche-t-il dans la console ?

🐍 Console Python
>>> True or True and False

>>> (True or True) and False

>>> True or (True and False)

Les priorités

Le ... est prioritaire sur le ... . De mĂȘme, ... est prioritaire sur les autres opĂ©rations.

Que s'affiche-t-il dans la console ?

🐍 Console Python
>>> not False and False

>>> not (False and False)

>>> (not False) and False

Attention

Pour Ă©viter toute confusion, il est vivement recommandĂ© d’utiliser des parenthĂšses.

3. Exemples⚓

Question 1

Expliquer pourquoi l’expression 3 == 3 or x == y est vraie pour toute valeur de x et de y.

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

Question 2

Expliquer pourquoi l’expression 1 == 2 and x == y est fausse pour toute valeur de x et de y.

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

VI. CaractĂšre sĂ©quentiel de certains opĂ©rateurs boolĂ©ens.⚓

Python paresseux

Lorsque Python Ă©value une expression boolĂ©enne, il le fait de façon paresseuse. C’est Ă  dire que si la partie gauche d’un or est vraie, il n’évalue pas la partie droite. De mĂȘme si la partie gauche d’un and est fausse, la partie droite n’est pas Ă©valuĂ©e.

Tester les Ă©valuations paresseuses

Que s'affiche-t-il dans la console ?

🐍 Console Python
>>> x = 0

>>> x == 0 or 0 < 1/x < 1

>>> x !=0 and 0 < 1/x < 1

Diviser par 0 ?

Si la division 1/x Ă©tait Ă©valuĂ©e, il y aurait une erreur, puisque l’on ne peut pas diviser par 0.

Python paresseux

Dans les deux cas, l’évaluation n’est pas faite puisque le rĂ©sultat de l’expression a dĂ©jĂ  pu ĂȘtre dĂ©terminĂ© grĂące Ă  la partie gauche.

VII. Exercices⚓

Exercice 1

Déterminer la table de vérité de : a ou (non b)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

Exercice 2

Déterminer la table de vérité de : (non a) et b

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

Exercice 3 Ă  utiliser pour les exercices suivants

Faire un arbre de toutes les possibilitĂ©s avec trois propositions a, b et c comme nous l’avons fait en cours pour deux propositions.

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

Exercice 4

Déterminer la table de vérité de : (a ou b) et c

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

Exercice 5

Déterminer la table de vérité de : (a et b) ou c

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

Exercice 6

DĂ©montrer que a xor b est Ă©quivalent Ă  : (a ou b) et (non (a et b))

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)

\(\hspace{5em}\)