© Éditions H&K Publié dans lesAnnales des Concours 1/17
X Informatique MP 2013 — Corrigé
Ce corrigé est proposé par Guillaume Batog (Professeur en CPGE) ; il a été relu par Benjamin Monmege (ENS Cachan) et Vincent Puyhaubert (Professeur en CPGE).
En logique propositionnelle, on décrit lasyntaxe des formules construites à partir d’un ensemble de variables et à l’aide des connecteurs logiques¬,∨,∧. Puis on définit lasémantiquede ces formules à l’aide d’une relation de satisfiabilité d’une valuation des variables sur une formule. Dans la logique temporelle présentée dans ce problème, on ajoute des connecteurs temporels X (juste après), G (désormais), F (un jour) etU(jusqu’à) dont la sémantique est précisée par une relation de satisfiabilité d’un mot u sur une formule ϕ. Ce sujet a pour objectif d’étudier les langages de mots reconnus par une formule de cette logique. Il est composé de 4 parties, qu’il est préférable de traiter dans l’ordre.
• La première partie, préliminaire, permet de se familiariser avec la logique tem- porelle. Elle doit être traitée assez rapidement mais avec rigueur car les ques- tions, faciles en apparence, recèlent des cas particuliers cachés.
• Dans la deuxième partie, on transforme toute formule en une formule normalisée (sans connecteursFetG) qui lui est logiquement équivalente (c’est-à-dire ayant le même langage de mots). Puis on écrit une fonction vérifiant si un mot satisfait une formule normalisée. L’algorithmique sous-jacente consiste simplement à parcourir des arbres représentant les formules. La dernière question, portant sur une étude de complexité, est la plus ardue du problème.
• La troisième partie présente une méthode plus efficace pour vérifier si un mot satisfait une formule. On montre en fin de partie qu’elle peut être vue comme l’exécution d’un mot sur un automate, qui peut être construit à partir de la formule.
• La quatrième partie débute par deux questions classiques sur les automates.
Elles apportent une aide précieuse pour écrire ensuite une fonction décidant si une formule est satisfiable (c’est-à-dire si son langage de mots est non vide).
Pour traiter cette question, il est nécessaire d’avoir bien compris les ressorts de la troisième partie. Enfin, la dernière question, indépendante de tout le reste, propose un exemple de langage rationnel qui n’est pas un langage de mots satisfaisant une formule de la logique temporelle.
Outre que les notions abordées sont nouvelles aux concours, la difficulté de ce sujet tient au fait qu’il est impossible de traiter les questions de programmation sans avoir réussi à répondre aux questions théoriques qui les précèdent, excepté pour les fonctions faciles qui ne rapportaient que peu de points. L’intrication (naturelle) entre logique et automates en fait un sujet intéressant pour qui souhaite avoir un aperçu d’un domaine d’étude de l’informatique théorique appliquée à la vérification de programmes.
Téléchargé gratuitement surDoc-Solus.fr
© Éditions H&K Publié dans lesAnnales des Concours 2/17
Indications
Partie I
3 Rappelons que la formuleVRAI n’est vraie que pour les positions de mot.
5 Une lettre b d’un tel mot est toujours suivie de la lettre a sauf s’il s’agit de la dernière lettre du mot.
7 Écrire la sémantique de u|=ϕUψ et distinguer les casj = 0 etj 6= 0puisi= 0 et i 6= 0 dans la définition donnée par l’énoncé. Le but est de faire apparaître (u,1)|=ϕUψ.
Partie II 9 Utiliser l’opérateurU.
10 Trouver un lien entreFetG
11 La fonctionveriteNs’appuie sur les règles sémantiques de l’énoncé et sur l’équi- valence logique de la question 7.
Montrer la terminaison de la fonction par récurrence forte sur (n, k), élément deN∗×Nmuni de l’ordre lexicographique, oùndésigne la taille de la formule en argument etk le nombre de lettres du mot à partir de la position donnée.
Pour obtenir la complexité de la fonction, poserT(ϕ, k)le nombre d’appels récur- sifs pour une formule ϕ, un mot uet une position|u| −kpuis établir l’inégalité de récurrence
T(ϕ, k)62 + Pk
j=1
hT(ϕ1, j) + T(ϕ2, j)i
où ϕ1 et ϕ2 sont les sous-formules (éventuellement vides) du connecteur à la racine de ϕ. Enfin, montrer que T(ϕ, k) 6 λk |ϕ|k avec λk indépendant de ϕ à déterminer.
Partie III
13 Démontrer la propriété par induction structurelle sur la formuleϕ.
14 Effectuer la mise à jour de bas en haut en suivant les règles obtenues au cours de la question 13.
17 Considérermajcomme la fonction de transition d’un automate.
Partie IV
20 Montrer que le plus petit mot reconnu par un automate ànétats (reconnaissant un langage non vide) est de taille au plusn−1.
21 Implémenter l’algorithme de la question 19 en utilisant l’automate décrit à la question 17.
22 Démontrer par induction structurelle surϕque toute formuleϕappartient à un ensembleV(N)ouF(N) avecN∈N∗ où
V(N) ={ϕ| ∀n>N an |=ϕ} et F(N) ={ϕ| ∀n>N an 6|=ϕ}
Téléchargé gratuitement surDoc-Solus.fr
© Éditions H&K Publié dans lesAnnales des Concours 3/17
I. Préliminaires
1 NotonsP(x)la propriété de la question (x).
• P(a)estvraiecar le motun’est constitué que des lettresaetbà partir de la position 4.
• P(b) est faussecar elle équivaut à la propriété (u,3) |= G(pa∨pc)qui est fausse puisquea4=b /∈ {a, c}.
• P(c)estvraiecarP(a)est vraie.
• P(d)est vraiecara3=c et toutes les lettres précédanta3sont aoub.
2 Un mot upossède une lettrexsi et seulement siu|=Fpx. Ainsi,
Le motucontient unasuivi plus tard d’un bsi et seulement siu|=F(pa∧Fpb).
D’autres formules peuvent être trouvées pour cette question et les suivantes.
Elles sont « logiquement équivalentes » entre elles (cf. question 7). Celle pro- posée ici a l’avantage de la concision.
3 Excepté dans le cas où l’entier i ne correspond pas à une position du mot u, la formuleVRAI est toujours satisfaite par(u, i), d’où
i=|u| −1 ⇐⇒ i6|u| −1 et i+ 1>|u|
⇐⇒ (u, i)|=VRAI et (u, i+ 1)6|=VRAI i=|u| −1 ⇐⇒ (u, i)|=VRAI∧ ¬X(VRAI)
Ainsi, Fin =VRAI∧ ¬X(VRAI)
4 Puisque le motusatisfait la formuleFinuniquement à la dernière position, use termine par unasi et seulement siu|=F(pa∧Fin).
5 Décrivons un motude(ab)+:
• la première lettre est una, soitu|=pa;
• la dernière lettre est unb, soit u|=F(pb∧Fin)(question 4) ;
• pour toutitel que06i6|u| −1,
◦ ai vautaoub, soit(u, i)|=pa∨pb;
◦ siai=aalorsai+1 =b, soit(u, i)|= (¬pa)∨Xpb;
◦ si ai = b et ai n’est pas la dernière lettre de u, alors ai+1 = a, soit (u, i)|= ¬(pb∧ ¬Fin)
∨Xpa.
Finalement,u∈(ab)+ si et seulement siu|=ϕavec
ϕ=pa∧F(pb∧Fin)∧G
(pa∨pb)∧ (¬pa)∨Xpb
∧ (¬pb)∨Fin∨Xpa
Téléchargé gratuitement surDoc-Solus.fr
© Éditions H&K Publié dans lesAnnales des Concours 4/17
6 Un motusatisfait la formuleϕsi, et seulement si, il existej6|u|−1(opérateurF) tel que :
• la lettreaj est una(formulepa) ;
• le suffixeaj+1. . . a|u|−1 ne contient pas la lettrea(formuleX(G(¬pa))) ;
• le suffixeaj. . . a|u|−1 contient le motifbc(formuleF(pb∧Xpc)).
L’automate suivant reconnaît le langageLϕ: a, b, c
a b, c
b c
b, c
7 Soituun mot de longueurn∈N. Montrons la propriété u|=ϕUψ ⇐⇒ u|=ψ∨ ϕ∧(X(ϕUψ))
Puisque le mot vide ne satisfait aucune formule, cette propriété est vraie pour le mot vide. Considérons un motunon vide (n>1). Par définition,
u|=ϕUψ ⇐⇒ ∃j6n (u, j)|=ψ et ∀i < j (u, i)|=ϕ Distinguons les casj = 0etj>1:
u|=ϕUψ ⇐⇒ (u,0)|=ψ
ou
∃16j6n (u, j)|=ψ et ∀i < j (u, i)|=ϕ Distinguons les casi= 0eti>1:
∀i < j (u, i)|=ϕ ⇐⇒ (u,0)|=ϕ et ∀16i < j (u, i)|=ϕ d’où u|=ϕUψ ⇐⇒ u|=ψ ou
u|=ϕ et ∃16j6n
(u, j)|=ψ et ∀16i < j (u, i)|=ϕ
On reconnaît la sémantique deϕUψà partir de la position 1 du motu: u|=ϕUψ ⇐⇒ u|=ψ ou
u|=ϕ et (u,1)|=ϕUψ soit u|=ϕUψ ⇐⇒ u|=ψ∨ ϕ∧(X(ϕUψ))
pour tout motu. Autrement dit,
ϕUψ≡ψ∨ ϕ∧(X(ϕUψ))
Une paraphrase du type « un mot usatisfaitϕUψ si, et seulement si, il sa- tisfait ψ ou s’il satisfait ϕ et si le suffixe de u obtenu en supprimant sa première lettre satisfait ϕUψ» est une justification sans doute insuffisante à un concours comme l’X.
Téléchargé gratuitement surDoc-Solus.fr