• Aucun résultat trouvé

La logique monadique du second ordre (MSO) est une généralisation de la logique FO. Les formules de logique MSO sont construites comme celles de FO. De plus, MSO autorise l’utilisation de variables dites du second ordre souvent notées par des lettres majuscules X, Y, Z . . . potentiellement indicées. Ces va-riables du second ordre peuvent êtres quantifiées de façon existentielle (∃) ou universelle (∀). Nos formules MSO sont construites sur la signature

LM SO=LF O∪ {X(x)}

La formule X(x) est une formule atomique de MSO où X est une variable du second ordre et x une variable du premier ordre. Aussi, si ψ est une for-mule MSO alors ∃X ψ est une forfor-mule MSO. Similairement aux forfor-mules FO ∀X ψ ≡ ¬∃X¬ψ. L’ensemble F V (ψ) des variables libres d’une formule MSO est définie exactement comme dans la Définition 3.1.3 à laquelle est ajoutée la règle suivante :

si ψ est de la forme ∃X ψ0 alors F V (ψ) = F V (ψ0) \ {X}

Toujours pour éviter toute confusion, nous supposons qu’aucune formule de logique monadique du second ordre n’utilise le même nom de variable pour deux variables différentes. On note par ψ(x1, . . . , xn, X1, . . . , Xn) une formule MSO ψ dans laquelle les variables du premier ordre x1, . . . , xnet les variables du second ordre X1, . . . , Xnsont des variables libres, pour n, n0∈ N. Similairement aux formules FO, une formule MSO sans variables libres est une formule close ou un énoncé.

Exemple 3.2.1. Soit A = {a, b} un alphabet. La formule suivante :

φ ≡ ∃Y ∃Z ∀x1(Y (x1) ∨ Z(x1))

∧ ∀x2((Y (x2) =⇒ ¬Z(x2)) ∧ (Z(x2) =⇒ ¬Y (x2))) ∧ ∀y∀z((Y (y) ∧ Z(z)) =⇒ y < z ∧ a(y) ∧ b(z))

3.2 - Logique monadique du second ordre 3 - Logique

Revenons à la sémantique que nous donnons aux formules de logique MSO. Cela induira la sémantique donnée aux formules FO automatiquement. L’uni-vers d’interprétation de nos formules de logique MSO est la classe des posets série-parallèles étiquetés. Nos formules de logique MSO formalisent ainsi les

propriétés de sous-ensembles de SP(A) pour un alphabet A. Les variables du

premier ordre utilisées dans une formule MSO représentent des éléments des posets qu’on veut caractériser. Les variables du second ordre représentent des ensembles d’éléments de posets qu’on veut caractériser. La formule atomique

X(x), qu’on a tendance à écrire x ∈ X, est interprétée comme : l’élément d’un

poset représenté par la variable du premier ordre x appartient à l’ensemble d’éléments d’un poset représenté par la variable du second ordre X. Dans une formule MSO, le prédicat x < y signifie que x et y représentent deux éléments d’un poset P et x < y dans P . Le prédicat a(x) signifie que x représente un élément d’un poset P étiqueté par la lettre a ∈ A.

Exemple 3.2.2. Reprenons la formule du premier ordre ψ de l’Exemple 3.1.5 :

ψ = ∀x a(x) =⇒ ∃y x < y ∧ b(y)

Cette formule est lue de la manière suivante :

Pour tout élément x d’un poset P , si x est étiqueté par a dans P alors il existe un élément y de P tel que x < y dans P et y est étiqueté par b.

Ainsi, tout poset P dont tout élément étiqueté par a est suivi par un élément étiqueté par b satisfait la formule ψ. Remarquons que, pour tout élément x éti-queté par a dans un poset satisfaisant ψ, l’élément étiéti-queté par b qui le suit n’est pas forcément successeur de a. Les posets , b, bb, aaab, (a k b)b par exemple satisfont ψ. Les posets a, aba, a k a, a k b par exemple ne satisfont pas ψ.

Exemple 3.2.3. Reprenons l’énoncé φ de l’Exemple 3.2.1.

— la première ligne de la formule s’assure que tous les éléments du poset analysé sont soit dans l’interprétation Y ou dans celle de Z ;

— la deuxième ligne vérifie que tout élément se trouvant dans l’interprétation de Y ne se trouve pas dans l’interprétation de Z et inversement ;

— la troisième ligne indique que les éléments de l’interprétation de Y sont tous inférieurs aux élément de l’interprétation de Z, et que tous les élé-ments de l’interprétation de Y sont étiquetés par a et ceux de l’interpré-tation de Z par b.

Les deux premières lignes de la formule partitionnent tout poset P analysé en deux sous-posets Y et Z. Cette partition n’est pas au sens mathématique du terme puisque Y ou Z peuvent être vides. La troisième vérifie en particulier que P = Y + Z. Par conséquent tout poset P ayant une factorisation séquentielle potentiellement triviale P1· P2 où tous les éléments de P1 sont étiquetés par a et ceux de P2 sont étiquetés par b satisfait la formule φ. En particulier, le poset vide satisfait φ et tous les posets dont tous les éléments sont étiquetés par a (resp. b) satisfont φ.

Lorsque une formule MSO ψ est close, il n’y a pas de confusion quant à l’ensemble de posets dont la formule ψ liste les propriétés, comme vu dans

les exemples précédents. Toutefois, la confusion subsiste quand F V (ψ) 6= ∅. Lorsqu’on écrit

ψ = ∀x a(x) =⇒ ∃y x < y ∧ b(y)

on décrit l’ensemble de tous les posets dont tout élément étiqueté par a est suivi d’un élément étiqueté par b. Tandis que dans

ψ0(x, y) = a(x) =⇒ x < y ∧ b(y)

on ne sait pas à quels éléments de posets les variables x et y (qui sont libres dans ce cas) font références. L’ensemble des posets caractérisé par cette dernière formule dépend de l’interprétation donnée à x et y. Le poset P = a · a · b satisfait les propriétés décrites par la formule ψ puisqu’il existe bien un élément dans P étiqueté par b qui suit tous les éléments de P étiqueté par a. Cependant, notons

que P satisfait ψ0 seulement dans le cas où x désigne un élément de P étiqueté

par a et y celui étiqueté par b ou quand les deux désignent l’élément étiqueté par b. Dans le cas où x désigne l’élément étiqueté par b et y un élément étiqueté par a, P ne satisfait pas ψ0. Idem dans le cas où x et y désignent tous les deux un élément étiqueté par a.

Quand un poset P satisfait les propriétés formalisées dans une formule close ψ on dit que P est un modèle pour ψ ou que P satisfait ψ, noté P |= ψ. Inversement, P 6|= ψ si P ne satisfait pas les propriétés formalisées dans ψ. Puisqu’une formule MSO close est construite inductivement à partir de formules MSO potentiellement non closes, il va falloir définir formellement la notion de modèle d’une formule de logique non close. Lorsque ψ a des occurrences de va-riables libres x1, . . . , xn, X1, . . . , Xm, pour n, m ∈ N qui ne sont pas tous les deux égaux à 0, la notion de modèle pour ψ(x1, . . . , xn, X1, . . . , Xm) est définie relativement à l’interprétation donnée aux variables libres de ψ dans un poset. L’interprétation d’une variable libre du premier ordre (resp. second ordre) est une valeur concrète donnée à cette variable correspondant à un élément (resp. ensemble d’éléments) d’un élément de l’univers d’interprétation.

Dans la suite nous définissons formellement par induction sur la structure de ψ la notion de modèle d’une formule MSO ψ. Soient U1 = {x1, . . . , xn} un ensemble de variables du premier ordre et U2= {X1, . . . , Xm} un ensemble de variables du second ordre, pour n, m ∈ N. Soit ψ une formule MSO dont les les variables du premier (resp. second) ordre sont toutes dans U1 (resp. U2). Soit P un poset étiqueté par un alphabet A et soient µ1: V1 → P et µ2: V2P(P )

des applications appelées interprétations de respectivement U1 et U2 dans P .

Soient v1, . . . , vn ∈ P et V1, . . . , Vm⊆ P tels que µ1(xi) = vi pour tout i ∈ [n] et µ2(Xj) = Vj pour tout j ∈ [m]. Alors, le poset P est un modèle pour ψ avec les interprétations µ1 et µ2 noté

P, (x1, v1), . . . , (xn, vn), (X1, V1), . . . , (Xm, Vm) |= ψ si

— ψ = x1< x2 et v1< v2dans P ;

— ψ = a(x1) et v1 est étiqueté par a dans P , pour a ∈ A ; — ψ = X1(x1) et v1∈ V1;

— ψ est de la forme ψ1∨ ψ2 et

3.2 - Logique monadique du second ordre 3 - Logique

ou

P, (x1, v1), . . . , (xn, vn), (X1, V1), . . . , (Xm, Vm) |= ψ2

— ψ est de la forme ¬ψ0 et

P, (x1, v1), . . . , (xn, vn), (X1, V1), . . . , (Xm, Vm) 6|= ψ1

— ψ est de la forme ∃x1 ψ0 et il existe v01∈ P tel que

P, (x1, v10), (x2, v2), . . . , (xn, vn), (X1, V1), . . . , (Xm, Vm) |= ψ0

— ψ est de la forme ∃X1 ψ0 et il existe V10 ⊆ P tel que

P, (x1, v1), . . . , (xn, vn), (X1, V10), (X2, V2), . . . , (Xm, Vm) |= ψ0

Remarquons que les valeurs données par µ1 et µ2 aux variables du premier

et du second ordre qui ne sont pas libres dans ψ n’ont pas vraiment d’intérêt. Par conséquent, si ψ est une formule MSO close alors P est un modèle pour ψ si

P, (x1, µ1(x1)), . . . , (xn, µ1(xn)), (X1, µ2(X1)), . . . , (Xm, µ2(Xm)) |= ψ

pour n’importe quelles µ1et µ2. Dans ce cas, on écrit tout simplement P |= ψ. De plus, dans le cas où F V (ψ) = {x01, . . . , x0n0, X10, . . . , Xm0 0} ⊆ U1∪ U2, pour

n0, m0∈ N tels que ψ n’est pas close, alors on écrit

P, (x01, v01), . . . , (x0n0, vn00), (X10, V10), . . . , (Xm0 0, Vm00) |= ψ(x01, . . . , x0n0, X10, . . . , Xm0)

pour v01, . . . , v0n0 ∈ P et V0

1, . . . , Vm00 ⊆ P s’il existe deux interprétations µ1 et

µ2 de respectivement U1 et U2 dans P tel que P est un modèle pour ψ avec µ1

et µ2, pour tout i ∈ [n0], µ1(x0i) = vi0 et, pour tout j ∈ [m0], µ2(Xj0) = Vj0. On appelle v1, . . . , vn et V1, . . . , Vml’interprétation donnée aux variables x1, . . . , xn

et X1, . . . , Xm dans P .

Exemple 3.2.4. Soit la formule de logique

ψ0(x, y) = a(x) =⇒ x < y ∧ b(y)

et soit le poset P = aab qu’on détaille par

P = ({x1, x2, x3}, x1< x2< x3, {(x1, a), (x2, a), (x3, b)}) Alors P, (x, x3), (y, x3) |= ψ0(x, y) P, (x, x3), (y, x2) |= ψ0(x, y) P, (x, x1), (y, x3) |= ψ0(x, y) P, (x, x2), (y, x3) |= ψ0(x, y) P, (x, x2), (y, x1) 6|= ψ0(x, y) P, (x, x1), (y, x2) 6|= ψ0(x, y)

Exemple 3.2.5. Soit

ψ(y, z, Y, Z) = ((Y (y) ∧ Z(z)) =⇒ y < z ∧ a(y) ∧ b(z))

une sous-formule de la formule close φ de l’Exemple 3.2.1 et soit le poset

P = ({x1, x2, x3, x4}, {(x1, x2), (x1, x3), (x1, x4), (x2, x4), (x3, x4)}, l)

ayant la fonction d’étiquetage l = {(x1, a), (x2, b), (x3, b), (x4, a)}. Le poset P s’écrit plus simplement a(b k b)a. Remarquons que

P, (y, x1), (z, x2), (Y, {x1}), (Z, {x2, x3}) |= ψ(x, y, X, Y )

P, (y, x4), (z, x2), (Y, {x1}), (Z, {x3}) |= ψ(x, y, X, Y )

P, (y, x4), (z, x3), (Y, ∅), (Z, {x3}) |= ψ(x, y, X, Y )

P, (y, x4), (z, x3), (Y, {x1, x4}), (Z, {x3}) 6|= ψ(x, y, X, Y )

P, (y, x2), (z, x4), (Y, {x1, x2, x4}), (Z, {x1, x3}) 6|= ψ(x, y, X, Y )

Remarquons aussi que P 6|= φ.

On peut aussi voir les formules de logique comme étant des formules expri-mant les propriétés d’un ensemble de posets sur un alphabet étendu. On appelle ces posets des posets marqués par extension de la notion de mot marqué définie par exemple dans [69] ou [82].

Définition 3.2.6. Soit A un alphabet et soit ψ(x1, . . . , xn, X1, . . . , Xm) une

formule MSO ayant un ensemble V1 = {x1, . . . , xn} de variables du premier

ordre libres et un ensemble V2 = {X1, . . . , Xm} de variables du second ordre

libres. Un (V1, V2)-poset (ou poset marqué par V1 et V2) étiqueté par A est un poset (P, <, l) étiqueté par A ×P(V1) ×P(V2) tel que pour tout i ∈ [n] il existe

exactement un seul p ∈ P tel que xi∈ π2(l(p)).

Remarquons qu’à partir de tout poset étiqueté par A, on peut construire un (∅, ∅)-poset étiqueté par A et réciproquement. Dans la suite nous confondrons les deux notions. Remarquons aussi qu’une interprétation des variables libres

x1, . . . , xn, X1, . . . , Xmdans un poset (P, <, l) étiqueté par A induit un unique (V1, V2)-poset (P0, <0, l0) étiqueté par A ×P(V1) ×P(V2) et réciproquement :

— les posets (P, <) et (P0, <0) sont isomorphes ; — pour tout v ∈ P , π1(l0(v)) = l(v) ;

— chaque variable libre x du premier ordre apparaît dans la deuxième compo-sante de l’étiquette d’un élément v ∈ P0 si et seulement si l’interprétation de x dans P est v ;

— chaque variable libre X du deuxième ordre apparaît dans la troisième

composante de l’étiquette d’un élément v ∈ P0 si et seulement si v est un

élément de l’interprétation de X dans P .

Pour ne pas alourdir la notation, souvent on ne fera pas de différence entre une variable du second ordre et son interprétation. Un (V1, V2)-poset est aussi noté P (x1, . . . , xn, X1, . . . , Xm) quand V1= {x1, . . . , xn} et V2= {X1, . . . , Xm}. On peut maintenant définir la notion de satisfaction d’une formule de

lo-gique ψ par un poset marqué. Soient A un alphabet, V1un ensemble de variables

du premier ordre, V2 un ensemble de variables du second ordre, ψ une formule

MSO dont les variables du premier (resp. second) ordre sont dans V1(resp. V2) et soit (P, <, l) un (V1, V2)-poset. Alors P |= ψ si et seulement si :