c
Éditions H&K Publié dans les Annales 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 la syntaxe des formules construites à partir
d’un ensemble de variables et à l’aide des connecteurs logiques ¬,,. Puis on définit
la sémantique de 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)
et U(jusqu’à) dont la sémantique est précisée par une relation de satisfiabilité d’un
mot usur 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 connecteurs Fet G) 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 sur www.Doc-Solus.fr .
c
Éditions H&K Publié dans les Annales des Concours 2/17
Indications
Partie I
3 Rappelons que la formule VRAI n’est vraie que pour les positions de mot.
5 Une lettre bd’un tel mot est toujours suivie de la lettre asauf s’il s’agit de la
dernière lettre du mot.
7 Écrire la sémantique de u|=ϕUψet distinguer les cas j= 0 et j6= 0 puis i= 0
et i6= 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érateur U.
10 Trouver un lien entre Fet G
11 La fonction veriteN s’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
de N×Nmuni de l’ordre lexicographique, où ndésigne la taille de la formule en
argument et kle nombre de lettres du mot à partir de la position donnée.
Pour obtenir la complexité de la fonction, poser T(ϕ, 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 +
k
P
j=1hT(ϕ1, j) + T(ϕ2, j)i
ϕ1et ϕ2sont les sous-formules (éventuellement vides) du connecteur à la
racine de ϕ. Enfin, montrer que T(ϕ, k)6λk|ϕ|kavec λkindé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érer maj comme 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 plus n1.
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
ensemble V(N) ou F(N) avec NN
V(N) = {ϕ| n>Nan|=ϕ}et F(N) = {ϕ| n>Nan6|=ϕ}
Téléchargé gratuitement sur www.Doc-Solus.fr .
c
Éditions H&K Publié dans les Annales des Concours 3/17
I. Préliminaires
1Notons P(x)la propriété de la question (x).
P(a)est vraie car le mot un’est constitué que des lettres aet bà partir de la
position 4.
P(b)est fausse car elle équivaut à la propriété (u, 3) |=G(papc)qui est
fausse puisque a4=b /∈ {a, c}.
P(c)est vraie car P(a)est vraie.
P(d)est vraie car a3=cet toutes les lettres précédant a3sont aou b.
2Un mot upossède une lettre xsi et seulement si u|=Fpx. Ainsi,
Le mot ucontient un asuivi plus tard d’un bsi et seulement si u|=F(paFpb).
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.
3Excepté dans le cas où l’entier ine correspond pas à une position du mot u,
la formule VRAI est toujours satisfaite par (u, i), d’où
i=|u| − 1i6|u| − 1et 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)
4Puisque le mot usatisfait la formule Fin uniquement à la dernière position,
use termine par un asi et seulement si u|=F(paFin).
5Décrivons un mot ude (ab)+:
la première lettre est un a, soit u|=pa;
la dernière lettre est un b, soit u|=F(pbFin) (question 4) ;
pour tout itel que 06i6|u| − 1,
aivaut aou b, soit (u, i)|=papb;
si ai=aalors ai+1 =b, soit (u, i)|= (¬pa)Xpb;
si ai=bet ain’est pas la dernière lettre de u, alors ai+1 =a, soit
(u, i)|=¬(pb∧ ¬Fin)Xpa.
Finalement, u(ab)+si et seulement si u|=ϕavec
ϕ=paF(pbFin) G(papb)(¬pa)Xpb(¬pb)Fin Xpa
Téléchargé gratuitement sur www.Doc-Solus.fr .
c
Éditions H&K Publié dans les Annales des Concours 4/17
6Un mot usatisfait la formule ϕsi, et seulement si, il existe j6|u|−1(opérateur F)
tel que :
la lettre ajest un a(formule pa) ;
le suffixe aj+1 ...a|u|−1ne contient pas la lettre a(formule X(G(¬pa))) ;
le suffixe aj...a|u|−1contient le motif bc (formule F(pbXpc)).
L’automate suivant reconnaît le langage Lϕ:
a, b, c
a
b, c
b c
b, c
7Soit uun mot de longueur nN. 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 mot unon vide (n>1). Par définition,
u|=ϕUψ j6n(u, j)|=ψet i < j (u, i)|=ϕ
Distinguons les cas j= 0 et j>1:
u|=ϕUψ(u, 0) |=ψ
ou 16j6n(u, j)|=ψet i < j (u, i)|=ϕ
Distinguons les cas i= 0 et i>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 mot u:
u|=ϕUψu|=ψou u|=ϕet (u, 1) |=ϕUψ
soit u|=ϕUψu|=ψϕ(X(ϕUψ))
pour tout mot u. 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 uobtenu en supprimant sa
première lettre satisfait ϕUψ» est une justification sans doute insuffisante
à un concours comme l’X.
Téléchargé gratuitement sur www.Doc-Solus.fr .
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !