Nous avons déjà vu en logique des propositions comment se comporte l'opérateur de négation par rapport aux autres connecteurs.
Nous allons voir maintenant comment peuvent s'exprimer les négations d'expressions quantifiées.
L'énoncé ∀x P(x) signifie que tout x possède la propriété P.
Pour que cet énoncé soit faux il suffit qu'existe (au moins) un  x qui ne possède pas cette propriété.
Donc
¬(∀x P(x))  ⇔ ∃x (¬ P(x))
Réciproquement
¬(∃x P(x)) ⇔ ∀x ¬P(x)
Ce qui a pour implication que toutes les expressions quantifiées peuvent s'exprimer (au moyen de la double négation) au moyen du seul quantificateur universel (ou bien du seul quantificateur existentiel).
Lorsque les termes sont complexes la négation peut être un peu plus ardue. Dans tous les cas il suffit d'appliquer les règles à répétition.
Exemples:
¬(∀x P(x)∧Q(x)) ⇔ ∃x (¬ P(x))∨(¬ Q(x))
¬(∀x (∃y P(x,y)) ⇔ ∃x (∀y (¬ P(x,y)))

Café Python

Voici un petit programme qui vérifie cette loi dans quelques cas simples.