Corrigé Mines-Ponts 2026 Informatique I MPI — Partie 5 (Q23 à Q30) : Réduction depuis SAT, des formules aux automates : décidabilité
Sujet officiel du concours Mines-Ponts, session 2026, épreuve Informatique I MPI. Corrigé rédigé par Ibrahim Alame.
Sujet officiel (PDF, site du concours)
Énoncé
Tautologie-Presburger : entrée, une formule de Presburger sans variable libre ; sortie, sa valeur de vérité. Sat-Cnf : entrée, une formule propositionnelle (sans quantificateur) sous forme normale conjonctive ; sortie, un booléen indiquant si est satisfiable.
On reprend le type automate et les fonctions des parties 1 et 2. On note la lettre de dont toutes les lignes valent . Pour et ,
(les mots de dont on a oublié la ligne ). On dispose de automate_somme n i j k, qui reconnaît (pour ), de automate_egalite n i j, qui reconnaît , et de sans_zero : automate -> automate, qui renvoie une copie de l'automate dont les états finaux sont les états menant à un état final par une suite de transitions étiquetées . Pour sous forme simple sur , donne à chaque variable libre la valeur , et . Types du sujet :
type terme = V of int | Plus of int*int
type formule =
|Existe of int * formule
|Et of formule * formule
|Non of formule
|Egale of terme * terme
Q23. Montrer que Sat-Cnf se réduit polynomialement à Tautologie-Presburger.
Q24. Pour , donner .
Q25. Écrire automate_existe : automate -> int -> automate reconnaissant .
Q26. Expliquer le principe d'un algorithme qui, pour sous forme simple et l'indice de sa plus grande variable, renvoie un automate reconnaissant .
Q27. Le faire tourner à la main, automates intermédiaires compris, sur .
Q28. Écrire automate_formule : formule -> int -> automate.
Q29. Démontrer la correction de cet algorithme.
Q30. En déduire est_vraie : formule -> int -> bool qui décide si une formule sous forme simple sans variable libre est vraie.
Corrigé
Q23. Il s'agit de construire, en temps polynomial, une fonction qui à toute formule sous forme normale conjonctive associe une formule de Presburger close telle que est satisfiable si et seulement si est vraie : c'est .
Construction. Soit sur les variables propositionnelles . On choisit variables de Presburger distinctes et l'on remplace chaque variable propositionnelle par un atome de Presburger qui dit « est nul » (Q18) :
les et étant conservés. On obtient une formule de variables libres , et l'on pose
C'est une formule de Presburger (chaque n'est quantifiée qu'une fois), et elle est close. Si la forme normale contient des constantes, on traduit par et par ( nouvelle) ; une clause vide vaut et une conjonction vide .
Correction. À une assignation de , associons la valuation définie par si et seulement si . Par induction sur , : pour un atome, est vraie si et seulement si , c'est-à-dire , c'est-à-dire ; les connecteurs ont la même table des deux côtés.
- Si est vraie, il existe avec vraie, donc satisfait .
- Si une valuation satisfait , on pose si et sinon ; alors , est vraie et est vraie.
Coût. se calcule en un parcours de : chaque littéral devient un atome de taille constante, et l'on ajoute quantificateurs. La taille de et le temps de calcul sont en , donc polynomiaux : . (Remarque, hors question : Sat-Cnf étant -complet, Tautologie-Presburger est -difficile ; la suite du sujet montre qu'il est décidable.)
(Contrôle exécuté : sur formes normales conjonctives tirées au hasard, de à variables, la satisfiabilité calculée par table de vérité coïncide avec la valeur de calculée par évaluation directe, quantificateurs parcourant , ce qui suffit puisque ne dépend que des nuls ; et est_vraie de Q30, appliquée à la forme simple de , répond juste pour , et .)
Ce que le correcteur attend : le bon sens de la réduction (, et non l'inverse), la traduction des variables propositionnelles en atomes de l'arithmétique (le jury précise que quantifier les variables d'une formule propositionnelle ne donne pas une formule de Presburger), la preuve de l'équivalence dans les deux sens et le caractère polynomial.
Q24. On garde les lignes 1 et 3 de chaque mot de et l'on laisse la ligne 2 libre, avec la même longueur. Le mot vide donne ; la lettre donne deux mots ; le mot de longueur en donne :
100 % gratuit
La suite du corrigé est sur Adloun
Le corrigé rédigé en entier, question par question, et le tuteur pour poser des questions sur ce sujet.
Voir le corrigé complet, gratuitementInscription gratuite en 30 secondes (e-mail, nom d'utilisateur, mot de passe, classe ou profil), sans carte bancaire : arrivée directe sur le corrigé.