MathLvl
Question transversaleMathsNSILogique et calculabilité

Pourquoi « non (a et b) » ne veut-il pas dire « non a et non b », et pourquoi cette erreur cause-t-elle tant de bugs ?

Les lois de De Morgan affirment que non (a et b) = (non a) ou (non b), et non (a ou b) = (non a) et (non b). Une table de vérité à 4 lignes le démontre. Mal nier une condition, comme « tant que non (trouvé ou fin) », produit des boucles infinies ou des tests faux.

Grand oral session 2027 : exposé de 10 minutes debout, puis 10 minutes d'échange, sans calculatrice. Plan prévu pour 9,5 min.

Pourquoi cette question : un modèle d'introduction

Le jury attend que vous expliquiez pourquoi vous avez choisi la question. Inspirez-vous de ce modèle, mais racontez votre propre parcours.

En NSI, j'ai écrit une boucle censée continuer « tant qu'on n'a pas trouvé l'élément et qu'on n'est pas à la fin », et elle ne s'arrêtait jamais. J'avais mal traduit la négation de ma condition d'arrêt. Mon professeur m'a parlé des lois de De Morgan, que j'ai retrouvées en mathématiques pour le complémentaire d'une intersection. J'ai voulu comprendre pourquoi notre intuition se trompe si souvent.

L'enjeu et les notions du programme

Démontrer une équivalence logique par une table de vérité et par les ensembles, et l'appliquer à l'écriture correcte de conditions.

Mathématiques

  • Logique : négation d'une conjonction, d'une disjonction (seconde)
  • Ensembles : intersection, réunion, complémentaire (seconde)
  • Probabilités : événement contraire de A ∩ B (première)

Numérique et sciences informatiques

  • Booléens, expressions conditionnelles (première)
  • Boucles « tant que », conditions d'arrêt (première)

Le plan de l'exposé en 9,5 min

  1. 1. Introduction

    1 min

    Dans un programme, on doit souvent écrire le contraire d'une condition : la boucle continue tant que la condition d'arrêt n'est pas remplie. Problématique : comment nier correctement « a et b » ou « a ou b » ?

  2. 2. Mathématiques : deux démonstrations

    4 min

    Table de vérité : pour les 4 couples (a;b), on compare neg(awedge b) et neg aveeneg b. Pour (V;V) : F et F. Pour (V;F) : V et V. Pour (F;V) : V et V. Pour (F;F) : V et V. Les colonnes sont identiques : les deux expressions sont équivalentes. En revanche, neg awedgeneg b vaut F pour (V;F) : ce n'est pas la négation de awedge b.

    Version ensembliste : le complémentaire de A∩ B est bar A∪bar B (ne pas être dans les deux, c'est manquer au moins l'un), et le complémentaire de A∪ B est bar A∩bar B. En probabilités : P(A∩ B̅)=P(bar A∪bar B).

    Exemple : la négation de « il pleut et il fait froid » est « il ne pleut pas ou il ne fait pas froid ». Dire « il ne pleut pas et il ne fait pas froid » est beaucoup plus fort.

  3. 3. NSI : écrire des conditions justes

    3 min

    Une recherche s'arrête quand on a trouvé l'élément ou atteint la fin : condition d'arrêt « trouve or i == n ». La boucle continue donc tant que « not (trouve or i == n) », c'est-à-dire « not trouve and i < n ». Écrire « not trouve or i < n » ferait continuer la boucle même après avoir trouvé l'élément, tant qu'on n'est pas à la fin, et l'écrire avec « and » à la place de « or » dans la condition d'arrêt changerait tout le comportement.

    En SQL, la clause « WHERE NOT (age > 18 AND ville = 'Lyon') » sélectionne les personnes mineures ou hors de Lyon. Les lois de De Morgan servent aussi à simplifier les circuits et à transformer un test pour le rendre plus lisible.

  4. 4. Conclusion

    1,5 min

    Nier « a et b » donne « non a ou non b » : la négation échange ET et OU. Une table de vérité ou un dessin d'ensembles suffit à le démontrer, et cette règle évite des boucles infinies et des requêtes fausses. J'ouvre sur la négation des quantificateurs : la négation de « pour tout » est « il existe ».

Ce que j'écris au tableau

Pas de calculatrice ni de support numérique : un calcul clé écrit au tableau rend l'exposé concret et montre la solidité des connaissances.

neg(awedge b)≡neg aveeneg b neg(avee b)≡neg awedgeneg b
A∩ B̅=bar A∪bar B arrêt : trouve or i=n ⇒ continuer : not trouve and i<n

Conclusion : la réponse à la question

La négation échange ET et OU : c'est un résultat de logique élémentaire, démontrable en quatre lignes, et pourtant source fréquente de bugs. Le savoir, c'est écrire des conditions justes du premier coup.

Les questions probables du jury

Pendant les 10 minutesd'échange, le jury vous fait préciser et approfondir, sur tout le programme de vos spécialités en lien avec la question.

Niez « tous les élèves ont rendu leur devoir ».

« Au moins un élève n'a pas rendu son devoir. »

Simplifiez not (x < 0 or x > 10).

x >= 0 and x <= 10, c'est-à-dire 0 ≤ x ≤ 10.

Combien de lignes faut-il pour vérifier une équivalence à 3 variables ?

2³=8 lignes.

Traduisez P(Ā ∪ B̄) à l'aide de P(A ∩ B).

P(bar A∪bar B)=1-P(A∩ B).

Que fait la boucle « while not trouve or i < n » ?

Elle continue tant qu'une des deux conditions est vraie : même après avoir trouvé, elle avance jusqu'à la fin.

Les pièges qui coûtent des points

  • Nier chaque terme sans échanger ET et OU.
  • Confondre « ne pas être dans A et B » et « n'être ni dans A ni dans B ».
  • Oublier que la négation de « < » est « ≥ ».

Revoir les notions

Autres questions : logique et calculabilité

Toutes les questions maths-nsi →

Préparer l'oral, pas seulement le contenu

Gestion des 20 minutes de préparation, usage du tableau, posture debout, réponses au jury : la méthode complète, conforme aux règles de la session 2027.

Méthode : traiter une question de Grand oral →