Source: https://ecariou.perso.univ-pau.fr/cours/archi/cours-2-boole.pdf