• Aucun résultat trouvé

Pour un alphabet infini dénombrableΣ, et afin d’exprimer des propriétés plus naturelles sur les éléments deΣ∗, nous introduisonsla structure des différenceset nous montrons la déci-dabilité de ses théories du premier ordre. Pour mieux comprendre la preuve, des exemples pourΣ =Nsont donnés au fur et à mesure.

À partir du prédicatcloneon peut facilement définir le prédicatdiff2qui exprime qu’un mot se termine par deux lettres différentes comme suit :

Pourx∈Σ : diff2(x)⇔ ¬clone(x)

Cependant, pour i > 2, on veut exprimer le prédicat diffi qui exprime qu’un mot se termine parilettres différentes, ce qui ne semble pas possible d’exprimer dans les structures étudiées précédemment. Ainsi, afin d’étendre la structure du clone, tout en maintenant la décidabilité de sa théorie, nous introduisons la structure des différences :

S3= (Σ;≺,clone,{diffi|i >2},∼)

caractérisée par la généralisation du prédicatclonepar la famille des prédicats{diffi |i >2}.

Nous montrons dans cette section, laM-automaticité de la structure des différences puis la décidabilité de sa théorie logique du premier ordre.

Définition 21. On noteS3 = (Σ∗;≺,clone,{diffi |i > 2},∼)lastructure des différences, telle que :

1. Σdésigne un ensemble infini dénombrable,

2. le prédicatdiffi(x)est vrai si, et seulement si,xse termine parilettres distinctes :

diffi(x)⇔x=ua1a2. . . aiavecu∈Σeta1, a2, . . . , ai ∈Σetpq : p6=q ap 6=aq

Exemple 14. Soientx, ydes mots deΣ.

1. Pourx= [1,2,5,2,3]ety = [1,2,5,2,3,4,4]: 2. xy,diff3(x)etclone(y)sont vrais.

2.4. Structure des différences 39

Définition 22. Nous appelons structure des différences d’ordre kla structure définie comme suit :

Dk= (Σ;≺,clone,{diffi|2< ik},∼)

Théorème 10. La structureDkestM-automatique avecM= (Z;−1,−2, . . . ,−(k−1)).

Avant de détailler la preuve de ce théorème, nous introduisons un codageµk qui établit la M-automaticité du domaine de la structure et la M-automaticité des prédicats : clone, même longueur et des différences.

Définition 23. Soitx=x0x1. . . xn1un mot surΣ∗ de longueurn. L’ensemble deskvoisins

de la lettrexi est l’ensemble desklettres qui précèdentxi s’il existe au moinsklettres avant

xi, autrement, s’il y a moins deklettres avantxi, l’ensemble deskvoisins de la lettrexi est l’ensemble de toutes les lettres qui précèdentxi:

Vk(xi) = min(i,k) [ j=1 {xij}= min(i,k) [ j=1 {vj}avecvj =xij

Nous appelonsjièmevoisin de la lettrexiet on notevj la lettre qui correspond à lajièmelettre qui précède xi. S’il y a moins deklettres avant la lettre xi, le nombre devj est égal àk, le cardinal de l’ensembleVk(xi), est au plusk, et atteintklorsque lesvj sont distincts.

Notre codage est décrit comme suit. Pour chaque lettrexidexnous regardons l’ensemble desk−1lettres qui précèdentxi, sixiest égal à son premier voisin, nous codonsxi par un -1, sinon, sixi est égal à son deuxième voisin, nous codonsxi par un -2, sinon, sixi est égal à son troisième voisin, nous codonsxi par un -3, etc. Sinon, si, xi est différent de tous ses

k−1voisins, dans ce cas,xi est codé par son indice dans l’ensembleΣ\Vk1(xi). Voici la définition formelle du codage.

Définition 24. Le codageµkd’un motx=x0x1. . . xn1est aussi un mot, défini par :

µk: Σ Σ µk(x) = x0y1. . . yi. . . yn1avecyi∈Σet : yi = ( −min{j|xi =vj,1≤j≤min(i, k−1)} sixi Vk1(xi), IΣxi \Vk−1(xi) sinon.

Par conventionµk(ε) =ε. Voir la définition 18 pour la fonctionI.

Exemple 15. Voici un exemple pourk= 4et un motw∈N.

w= 3,0,6,0,1,2,5,2,4,5,5, b z}|{ 5 ,3,4, a z}|{ 8 −→µk [4,1,5,−2,1,1,3,−2,4,−3,−1,−1,4,4,6]

Considéronsal’avant dernière lettre dewqui est de valeur8. Le voisinage de cette lettre est les trois lettres qui la précèdent{5,3,4}. La lettreaest donc codée par l’indice du nombre

Considérons maintenantbla dernière lettre dewde valeur5. Le voisinage de cette lettre est les trois lettres qui la précèdent dont deux qui sont égaux. Donc le voisinage de b est l’ensemble{4,5}. La lettrebest égal à la fois à son premier et à son deuxième voisin. Notre codage code cette lettre par1qui veut dire quebfait référence à son première voisin. Nous interdisons que la lettrebsoit codée par2qui veux dire quebfait référence à son deuxième voisin.

Chaque mot de Σ∗ est codé par un unique mot de Σ∗ mais pas l’inverse. Ils existent des mots Σ qui sont des mots non valides au sens de notre codage. Ces mots interdits sont facilement reconnaissables. Expliquons : dans l’exemple 15 la lettre b est égal à son premier et son deuxième voisin, implicitement son premier voisin est égal à son deuxième voisin. Si le codage a été bien calculé jusqu’au premier voisin de balors le premier voisin est nécessairement codé par1. Ceci veut dire qu’une lettre codée par1interdit le codage de la lettre suivante par2. De même une lettre codée par2interdit le codage de la lettre suivante par3. Pourk = 4on peut facilement voir qu’un mot correspond à un code si et seulement s’il ne contient aucun des motifs de facteurs suivants :

1. [−1,−2]ce facteur est interdit car il veut dire qu’une lettre est égal à son premier et à son deuxième voisin mais elle fait référence à son deuxième voisin.

2. [−2,−3]ce facteur est interdit car il veut dire qu’une lettre est égal à son premier et à son troisième voisin mais elle fait référence à son troisième voisin.

3. [−1, x,−3]pourxquelconque, ce motif est interdit car il veut dire qu’une lettre est égal à son deuxième et à son troisième voisin mais elle fait référence à son troisième voisin. De même pour unkquelconque on peut facilement construire la liste de tous les des motifs interdits. Il est claire que le nombre de motifs interdits est fini, car k est borné. Ainsi on peut construire pour unkdonné unM-automate permettant de reconnaître les mots qui ne contiennent aucun des facteurs interdits.

Démonstration. Pour prouver que la structure des différences d’ordrekestM-automatique, nous utilisons le codageµk. L’image µk) du domaine de Dk est M-reconnaissable car, comme expliqué dans l’exemple précédent,kest borné et le nombre de motifs de facteurs inadéquats avec notre codage sont finis et reconnaissable par unM-automate avec M = (Z;−1,−2, . . . ,−(k−1)).

Avec le codage µk nous pouvons aussi construire desM-automates qui peuvent véri-fier si un mot est clone, si deux mots ont la même longueur, et encore si les prédicats des différences sont vérifiés ou pas pour un mot donné. On donne par exemple les automates

Aµ(clone),Aµ(diff3),Aµ(diff4)etAµ(diffi).

L’automateAµ(clone)vérifie que la dernière lettre est codée par -1 qui veut dire qu’elle est égal à son premier voisin.

2.4. Structure des différences 41

ϕ1(x) :x=−1

ϕ0(x) :⊤

Sf

S0

FIGURE2.8 – L’automateAµ(clone).

L’automate Aµ(diff3) vérifie que la dernière lettre n’est pas codée par 1 ni par 2 qui veut dire qu’elle est différente de ses deux premiers voisins. Il vérifie aussi que l’avant der-nière lettre n’est pas codée par1qui veut dire que l’avant dernière lettre est différente de son premier voisin (ce voisin est aussi le deuxième voisin de la dernière lettre). Ces deux vérifications permettent de savoir si le mot se termine par trois lettres différentes.

x6=−1 x6=−1,−2 S2 S1 S0

FIGURE2.9 – L’automateAµ(diff3).

L’automateAµ(diff4)vérifie que la dernière lettre n’est pas codée par1ni par2ni par

−3qui veut dire qu’elle est différente de ses trois premiers voisins. Il vérifie aussi que l’avant dernière lettre n’est pas codée par1ni par2qui veut dire que l’avant dernière lettre est différente de ses deux premiers voisins. Il vérifie aussi que l’avant avant dernière lettre n’est pas codée par1qui veut dire que l’avant avant dernière lettre est différente de son premier voisin. Ces trois vérifications permettent de savoir si le mot se termine par quatre lettres différentes. x6=−1,−2,−3 x6=−1 x6=−1,−2 S3 S2 S1 S0

x6=−1, . . . ,−(i−2) x6=−1 x6=−1, . . . ,−(i−1) x6=−1,−2 Si2 · · · S1 S0 Si1

FIGURE2.11 – L’automateAµ(diffi).

On a le corollaire suivant.

Corollaire 8. La théorie du premier ordre de la structure des différences d’ordre k, FO(Dk) est décidable.

Démonstration. On peut montrer sans difficulté queMest automatique et donc sa théorie de premier ordreFO(M)est décidable. Le théorème 4 et la M-automaticité de a structure Dk

démontrée dans le théorème 10 permettent de conclure.

Corollaire 9. La théorie du premier ordre de la structureS3est décidable.

Démonstration. Pour montrer que la théorie de la structureS3 est décidable, il suffit de re-marquer que tout énoncéϕdans la signature deS3 contient un nombre fini d’occurrences de prédicats de différences :

diffi1,diffi2, . . . ,diffir

Par conséquent, déciderϕdansS3 revient à déciderϕdansDkaveck= max(i1, i2, . . . , ir). Or la théorie du premier ordre deDkest décidable d’après le corollaire 8.

Documents relatifs