• Aucun résultat trouvé

pest une prop. indexée j∈[min(Ei+q(s));max(Ei+q(s))]

pn−q2−k+j∧ ¬pn−q2−k+j

(Lk)k∈Nest clairement fini à un décalage près. Ainsi(L[nk/i])k∈N, et donc finalement(Lk)k∈N, est fini à un décalage près avec l’extension du littéral pur. De plus tout indice contenantna bien la forme n−k+q oùq∈Zappartient à un intervalle borné indépendamment de k.

Au final, toutes les suites sont finies à un décalage près. De plus elles sont toutes à translation bornée à partir d’un certain rang et toute expression contenantnest de la formen−k+qoùq∈Zappartient à un intervalle borné indépendamment dek. Ainsi ces trois suites vérifient les conditions d’applications du corollaire 5.25. Nous pouvons donc appliquer ce dernier pour “combiner” toutes ces suites. Nous en concluons que l’ensemble des schémas apparaissant dans la branche infinie est fini à un décalage près. Par conséquent la règle de bouclage s’applique nécessairement, ce qui contredit le fait que la branche est infinie.

6.3 SchAut

Comme les schémas réguliers ont une forme très particulière, nous pouvons, plutôt qu’utiliser Stab, définir une procédure de preuve dédiée aux schémas réguliers. Ceci est particulièrement utile pour pou-voir étudier simplement la complexité du problème de la satisfaisabilité comme nous le ferons en 6.4. Ainsi nous définissons SchAut (pour Schema Automaton) une procédure qui, à partir d’un schéma, construit un automate dont le langage est vide ssi le schéma est insatisfaisable. Un point intéressant des schémas réguliers est que toutes leurs itérations ont la même longueur. Ainsi SchAutva construire un automate qui prend en entrée un entier représentant cette longueur et l’accepte ssi l’instance correspon-dante du schéma a un modèle propositionnel. Cela permet en particulier de se débarrasser des formules arithmétiques ce qui simplifie grandement le système.

Cependant, cette simplicité a un prix : si un schéma régulier aligné sur[q1;n−q2]est fourni en entrée deSchAut, alors sa contrainte doit être égale àn−q2≥q1−1. Cette restriction revient à imposer que la longueur des itérations soit positive ou nulle. Ceci n’est pas très contraignant en pratique : il semble naturel de considérer des itérations dont la longueur soit uniquement positive.6 À partir de maintenant, nous ne considérons donc que des schémas dont les itérations sont alignées sur [q1;n−q2] et dont la contrainte a la formen−q2≥q1−1oùn est le paramètre du schéma.

Les deux opérations suivantes sont nécessaires à la définition deSchAut: Definition 6.14. Soit un schéma régulierm&n−q2≥q1−1.

la basedem, notéebase(m), est définie parbase(m)def

=m[q2+q1−1/n];

6

Par ailleurs, nous pouvons souvent nous ramener à un schéma dont la contrainte a cette forme, par élimination des quantificateurs et en s’aidant de la transformation évoquée en note de pied de page p.58.

6.3. SCHAUT 65 l’induction de m, notéeind(m), est obtenue en remplaçant chaque itération Πnq2

i=q1m′ par m′[n− q2/i]ΠΠnq2−1

i=q1 m′ (le schéma obtenu alors est notéind(m)) puis en remplaçant chaque occurrence denparn+ 1, oùΠest le connecteur deΠ.

Example 6.15. Soit l’exemple récurrentsdef

=p0∧(Vni=01pi⇒pi+1)∧ ¬pn&n≥0, alorsq1= 0,q2= 1,

base(s) =p0∧ ¬p0 etind(s) =p0∧(Vni=01pi⇒pi+1)∧pn+1⇒pn+2∧ ¬pn+2.

Nous pouvons maintenant définirSchAut: cette procédure construit un automate prenant en entrée un entier représenté par un mot sur l’alphabet{0,s}. Par exemple, 5 est représenté pars·s·s·s·s·0. Dès lors l’automateasgénéré à partir du schémasest conçu de façon à accepter un entierkssi l’instance de s obtenue en fixant la longueur des itérations à k est (propositionnellement) satisfaisable, c.-à-d. ssi hsi{n7→k+q1+q2−1} est satisfaisable. Par conséquent s est insatisfaisable ssi le langage reconnu par l’automate est vide (problème dont la décidabilité est triviale).

Comme nous allons le voir,SchAut est très proche deStab : en fait, en supprimant les cycles de l’automate, nous obtenons un arbre qui peut être interprété comme un tableau de Stab. Les cycles correspondent précisément aux applications de la règle de bouclage. Dans Stab chaque nœud était étiqueté par des motifs et des contraintes. Ici, les propriétés des schémas réguliers font que nous pouvons nous passer des contraintes. Les états de l’automate sont donc des ensembles de motifs uniquement. Definition 6.16(SchAut). Soit un schéma réguliersdef=m&n−q2≥q1−1. Nous notonsasl’automate construit par SchAutà partir de s. L’alphabet d’entrée deas est{0,s} et ses états sont des ensembles de motifs7 alignés sur le même intervalle [q1;n−q2].

La construction de as est donnée par un système de réécriture. La notationM =x⇒M1&M =y⇒M2, M, M1, M2 sont des états, représente la règle hQ∪ {M}, q0, F, Ti → hQ∪ {M, M1, M2}, q0, F, T {(M, x, M1),(M, y, M2)}i, c.-à-d. que nous ajoutons à l’automate deux états M1 et M2 avec les tran-sitions (M, x, M1) et (M, y, M2). De même, M =x M représente la règle hQ∪ {M}, q0, F, Ti → hQ∪ {M, M}, q0, F, T ∪ {(M, x, M)}i. Nous définissons alors SchAut comme l’ensemble de règles suivant : ∧: M∪ {m1∧m2}=⇒ǫ M ∪ {m1, m2} ∨: M∪ {m1∨m2}=⇒ǫ M ∪ {m1}&M ∪ {m1∨m2}=ǫ⇒M∪ {m2} contradiction: M∪ {pe,¬pe}=ǫ⇒ {⊥} pure:

M∪pe=ǫ⇒M sipe est pur dans(VVVmMm) &n−q2≥q1−1

descente:

M =0⇒ {base(m)|m∈M}&M =⇒ {s ind(m)|m∈M} siM 6∈ {∅,{⊤},{⊥}}

Nous imposons de plus qu’une seule règle soit appliquée sur un état donné, et que descenten’est appliquée que si aucune autre règle ne peut l’être.

Nous notons alorsas une forme normale (arbitraire), par SchAut, de l’automate suivant : h{S},{ms},{∅},{(∅,0,∅),(∅,s,∅),({⊤}, ǫ,∅)}i

(nous montrerons en section 6.4 que SchAuttermine tout le temps).

Example 6.17. Soit l’exemple récurrent s def= p0∧(Vni=01pi pi+1)∧ ¬pn&n≥ 0 (la contrainte est bien équivalente à n−1≥0−1), un automate possible pouras est donné en figure 6.1.

n p0∧(Vn−1 i=0pi⇒pi+1)∧ ¬pn&n≥0o p0∧Vn−1 i=0pi⇒pi+1 ¬pn n o ( p0 Vn−1 i=0 pi⇒pi+1 ¬pn ) p0 ¬p0 ( p0 pn−1⇒pn∧Vn−2 i=0 pi⇒pi+1 ¬pn ) p0 pn−1⇒pn Vn−2 i=0 pi⇒pi+1 ¬pn p0 pn Vn−2 i=0 pi⇒pi+1 ¬pn n o p0 ¬pn−1 Vn−2 i=0pi⇒pi+1 ¬pn ǫ ǫ 0 ǫ contradiction s ǫ ǫ ǫ ǫ pure ǫ contradiction ǫ 0,s

Figure 6.1: Application deSchAutà p0∧(Vni=01pi⇒pi+1)∧ ¬pn&n≥0

Notons queSchAuttermine ssi l’ensemble d’états et de transitions ajoutés par la réécriture est fini. Quand SchAut termine, il peut y avoir plusieurs formes normales distinctes. Cependant ces formes normales ne sont distinctes que selon l’ordre desǫ-règles et selon l’ordre dans lequel nous décomposons les formules. Nous pourrions imposer une forme normale unique en donnant une priorité entre lesǫ-règles et les formules mais ce n’est pas nécessaire pour la suite.

Proposition 6.18. Soient un schéma s et un état M de as. Alors soit M appartient à {∅,{⊤},{⊥}}, soit M s’est vu appliqué une et une seule des règles de SchAut.

Si cette règle est∧(resp. ∨,contradiction,pure,descente),M est appelé un ∧-état (resp. ∨-état, c-état, p-état, d-état). Les ∧-états, ∨-états et p-états sont appelés des états propositionnels. Pour un d-étatM, M0et Msdésignent les états tels que(M,0, M0)et(M,s, Ms)sont les transitions ajoutées à as pardescente.

Enfin nous énonçons le théorème principal deSchAut:

Theorem 6.19. Soit un schéma régulier s de contrainte n−q2 q1−1. s[k+q1+q2−1/n] est satisfaisable ssik est accepté paras.

La preuve est similaire aux preuves de correction et complétude de Stab. Nous la présentons en annexe 6.A.

Remarquons que ce théorème est plus général que les résultats surStab (dans le cas des automates réguliers) car l’automate fournit une description explicite des valeurs du paramètre pour lesquelles le schéma est satisfaisable. A contrario, un tableau permet uniquement d’assurer l’existence d’une telle

7

6.4. COMPLEXITY 67