Produisez les tables de vérité pour les opérations suivantes:
NAND : P NAND Q=!(P&Q)
NOR : P NOR Q=!(P∥Q)
XOR : PXORQ=(P&!Q)∥(!P&Q)
Produire des tables de vérité pour :
P&!Q
!P&!Q
!P∥!Q
P&Q&R
!P&!Q&!R
P&Q&R∥P&!Q&R
Expressions équivalentes
Savoir-faire: Utiliser une table de vérité pour montrer que deux expressions logiques sont
équivalentes
Montrer que:
P∥(!P&Q)=P∥Q
Utiliser une table de vérité pour démontrer la propriété d’absorption de l’algèbre de Boole:
P∥P&Q=P
Montrer que:
P∥Q&R=(P∥Q)&(P∥R)
Simplifications d'expressions booléennes
Utilisez les lois de l'algèbre de Boole (ne les apprenez pas!) pour simplifier ces expressions.
Simplifier l'expression:
(P∥Q)&(P∥!Q)
Vérifier votre résultat avec une table de vérité.
Démontrer l'expression de XOR utilisée dans l'exercice 1: PXORQ=(P&!Q)∥(!P&Q):
Pour cela commencer par remarquer que:
0XORQ1XORQ=Q=!Q
Vérifier votre résultat avec une table de vérité.
Recherche d'expressions équivalentes (Plus dur)
Exprimer sous forme simplifiée les expressions suivantes:
P&Q&(R∥S)
(P∥Q)&(R∥S∥T)
(!P∥Q)&(P∥Q∥S)&!S
P&!Q&!R∥P&!Q&R∥P&Q&R
!P&R&!(!P&Q&S)∥!P&Q&!R&!S∥P&!Q&R
Vous pouvez vérifier vos résultats en Python en utilisant la bibiothèque sympy qui propose la
fonction simplify_logic(Attention la syntaxe utilisée est: ET: &, OU: | et NON:~`).
from sympy import symbols
from sympy.logic import simplify_logic
P, Q, R, S, T = symbols('P Q R S T')
simplify_logic((~P|Q)&(P|Q|S)&~S)# renvoie Q & ~S
La fonction propose deux modes de simplifications:
Produit(ET) de sommes(OU): simplify_logic(expr, 'cnf')
Somme(OU) de produit(ET): simplify_logic(expr, 'dnf')