Automates d arbres avec visibilité : rapport de stage de licence (L3)



Documents pareils
Synthèse de cours (Terminale S) Calcul intégral

LANGAGES - GRAMMAIRES - AUTOMATES

Théorème de Poincaré - Formule de Green-Riemann

Notes de révision : Automates et langages

Correction de l épreuve CCP 2001 PSI Maths 2 PREMIÈRE PARTIE ) (

Chapitre 11 : L inductance

Chapitre 2 Le problème de l unicité des solutions

STI2D Logique binaire SIN. L' Algèbre de BOOLE

ANALYSE NUMERIQUE NON-LINEAIRE

/HVV\VWqPHVFRPELQDWRLUHV

Université Paris-Dauphine DUMI2E. UFR Mathématiques de la décision. Notes de cours. Analyse 2. Filippo SANTAMBROGIO

semestre 3 des Licences MISM annnée universitaire

Chapitre VI Contraintes holonomiques

3- Les taux d'intérêt

Introduction à la modélisation et à la vérication p. 1/8

Séquence 8. Probabilité : lois à densité. Sommaire

LICENCE DE MATHÉMATIQUES DEUXIÈME ANNÉE. Unité d enseignement LCMA 4U11 ANALYSE 3. Françoise GEANDIER

Module 2 : Déterminant d une matrice

L'algèbre de BOOLE ou algèbre logique est l'algèbre définie pour des variables ne pouvant prendre que deux états.

COURS D ANALYSE. Licence d Informatique, première. Laurent Michel

Statuts ASF Association Suisse Feldenkrais

Tout ce qu il faut savoir en math

Influence du milieu d étude sur l activité (suite) Inhibition et activation

Guide d'utilisation Easy Interactive Tools Ver. 2

Sommaire. 6. Tableau récapitulatif Sophos NAC intégré Vs. NAC Advanced - 17 Février

Cours d Analyse IV Suites et Séries de fonctions

Licence M.A.S.S. Cours d Analyse S4

Pour développer votre entreprise. Compta LES LOGICIELS EN LIGNE, VOUS ALLEZ DIRE OUI!

LITE-FLOOR. Dalles de sol et marches d escalier. Information technique

Avant d utiliser l appareil, lisez ce Guide de référence rapide pour connaître la procédure de configuration et d installation.

Turbine hydraulique Girard simplifiée pour faibles et très faibles puissances

Toyota Assurances Toujours la meilleure solution

Techniques d analyse de circuits

Partie 4 : La monnaie et l'inflation

Guide des bonnes pratiques

Le canal étroit du crédit : une analyse critique des fondements théoriques

Algorithmes sur les mots (séquences)

Pour développer votre entreprise LES LOGICIELS EN LIGNE, VOUS ALLEZ DIRE OUI!

Conseils et astuces pour les structures de base de la Ligne D30

Chapitre 1 : Fonctions analytiques - introduction

LOGICIEL FONCTIONNEL EMC VNX

EnsEignEmEnt supérieur PRÉPAS / BTS 2015

AUTOUR D UN MÉMOIRE INÉDIT : LA CONTRIBUTION D HERMITE AU DÉVELOPPEMENT DE LA THÉORIE DES FONCTIONS ELLIPTIQUES. Bruno BELHOSTE (*)

Réalisation de sites Internet PME & Grandes entreprises Offre Premium. Etude du projet. Webdesign. Intégration HTML. Développement.

Classeur courtier d assurance. Comment organiser son activité et se préparer à un contrôle

Thèse Présentée Pour obtenir le diplôme de doctorat en sciences En génie civil Option : structure

- Phénoméne aérospatial non identifié ( 0.V.N.I )

ANALYSE : FONCTIONS D UNE VARIABLE RÉELLE

Bloc notes. a À faire tout de suite. Gardez secret votre code confidentiel. À conserver précieusement. Protégez votre carte

INSTRUCTIONS POUR L INSTALLATION ET LE FONCTIONNEMENT DES SERRURES À POIGNÉE BÉQUILLE

La pratique institutionnelle «à plusieurs»

Modification simultanée de plusieurs caractéristiques d un bien hédonique : une nouvelle méthode de calcul de la variation de bien-être des ménages

Commencer DCP-7055W / DCP-7057W /

Transfert. Logistique. Stockage. Archivage

ManSafe. pour les Utilitiés. La Protection antichute pour les Industries de l'energie. Français. TowerLatch LadderLatch

NEWS PRO ACTIV. [Juillet 2015] Ce mois-ci on vous parle de. L arrêté est applicable à compter du 1er Juillet 2015.

Université Paris-Dauphine DUMI2E 1ère année, Applications

Guide de l'utilisateur

SYSTEME DE TELEPHONIE

Intégrale et primitives

La mesure de Lebesgue sur la droite réelle

Electrovanne double Dimension nominale Rp 3/8 - Rp 2 DMV-D/11 DMV-DLE/11


La paye. La comptabilité. Comparez et choisissez votre logiciel. Comparez et choisissez votre logiciel. Paye Bâtiment Paye Agricole 2013

INSTALLATION DE DETECTION INCENDIE

Solutions IHM. Gammes Graphite et G3 Outils pour l'usine connectée

Baccalauréat S Asie 19 juin 2014 Corrigé

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

ANALYSE GÉNÉRALE - PROPOSITION DE CORRIGÉ. Exercice 1

Magister en : Génie Mécanique

Chapitre 2 Le problème de l unicité des solutions


Interview p.10. Francis Delpérée. Dossier pédagogique des Equipes Populaires Bimestriel n 154 Janvier-Février 2013

Problèmes de Mathématiques Filtres et ultrafiltres

Probabilités sur un univers fini

Compte rendu de la validation d'un observateur cascade pour la MAS sans capteurs mécaniques sur la plate-forme d'essai de l'irccyn

Déroulement de l épreuve de mathématiques

Santé et sécurité psychologiques en milieu de travail

Directives COV et alternative lipochimique : peintures, encres, nettoyage, dégraissage...

INTENTION LES PROCESSUS MATHÉMATIQUES

Intégration et probabilités TD1 Espaces mesurés Corrigé

Sciences Industrielles Précision des systèmes asservis Papanicola Robert Lycée Jacques Amyot

INFORMATIONS TECHNIQUES

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Titrages acidobasiques de mélanges contenant une espèce forte et une espèce faible : successifs ou simultanés?

Principe de symétrisation pour la construction d un test adaptatif

Calcul intégral élémentaire en plusieurs variables

Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur

FIG. 1 Module de stockage en position horizontale ; positionnement des jauges de déformation.

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Image d un intervalle par une fonction continue

Cours d Analyse. Fonctions de plusieurs variables

Dualité dans les espaces de Lebesgue et mesures de Radon finies

Livret de l étudiant

VIBRATIONS COUPLEES AVEC LE VENT

Probabilités sur un univers fini

Calcul fonctionnel holomorphe dans les algèbres de Banach

Théorème du point fixe - Théorème de l inversion locale

Les indices à surplus constant

Transcription:

Automtes d rbres vec visibilité : rpport de stge de licence (L3) Nicols Perrin ENS de Lyon Mître de stge : Hubert Comon-Lundh - LSV, ENS Cchn Autre encdrnt : Florent Jcquemrd - LSV, ENS Cchn Résumé Mon stge s est déroulé u Lbortoire de Spéciiction et de Vériiction de l ENS de Cchn, où tous les eorts sont tournés vers le développement de méthodes ormelles permettnt d ccroître l conince dns les logiciels critiques. Le problème est générlement le suivnt : on se donne un système (qui représente le progrmme), puis une spéciiction logique (souvent ormulée dns une logique temporelle), et on cherche à vérier lgorithmiquement si cette spéciiction reste vrie quelle que soit l évolution du système. L théorie des utomtes est lrgement utilisée dns ce cdre, et de nombreuses clsses d utomtes permettnt d border eiccement divers problèmes ont été, et continuent d être élborées. Une bonne clsse d utomtes doit être expressive (pour être utilisble dns de nombreux cs de igures), stble pr certines opértions (principlement pour voir une bonne correspondnce logique), et le problème de stisibilité (i.e. le vide du lngge reconnu) doit être décidble. C est une nouvelle clsse d utomtes que nous vons cherché à mettre u point lors de mon stge, vec ces trois objectis à l esprit. Dns [AM04], Rjeev Alur et Prthsrthy Mdhusudn introduisent les utomtes à une pile vec visibilité (VPA, Visibly Pushdown Automt), possédnt les bonnes propriétés d être à l ois clos pr union, intersection et complémentire, et déterminisbles. Dns le contexte de l nlyse de progrmmes, cel permet ux V PA d être utilisés pour l vériiction de propriétés sur les progrmmes récursis, y compris vec inspection de l pile. Notre objecti principl ser d étendre l expressivité de cette clsse d utomtes tout en conservnt ses bonnes propriétés de clôtures et de déterminisbilité. Dns un premier temps, nous montrerons que cette notion de visibilité peut s ppliquer ux utomtes d rbres à une mémoire : nous déinissons dns le prgrphe 2 une nouvelle clsse d utomtes d rbres (les utomtes d rbres vec visibilité, qui n ont rien à voir vec les visibly pushdown tree utomt de [ACM06], ces derniers étnt TOP-DOWN (les clculs s eectuent de l rcine de l rbre vers ses euilles), et ynt des piles pour mémoires) dont les utomtes à pile vec visibilité sur les mots sont un cs prticulier. Nous donnons un lgorithme de déterministion générlisnt celui de [AM04].

Puis, nous tenterons de rjouter une certine ctégorie de contrintes sur les mémoires (prgrphe 3), qui devr voir le bon goût de conserver les propriétés de clôtures et l déterminisbilité, ce qui ser le cs pour des contrintes dites structurelles. L décidbilité du vide, qunt à elle, ser étudiée dns le prgrphe 4. Nous verrons que si l lphbet des mémoires ne comporte qu un unique symbole, le vide reste décidble en joutnt des contrintes d églité et de diséglité sur les mémoires. Puis, dns le prgrphe 5, nous verrons que ces résultts tiennent toujours si on rjoute les mêmes contrintes, non ps sur les mémoires, mis sur des sous-termes rères de l rbre prcouru pr l utomte. Enin, dns le prgrphe 6, nous montrerons quelques exemples de lnguges reconnissbles pr l clsse d utomtes inlement obtenue, puis nous discuterons de ses pplictions potentielles dns le 7ème et dernier prgrphe. 1 Introduction 1.1 Automtes d rbres réguliers 1 Dns toutes l suite, les utomtes d rbres considérés seront scendnts, c est-à-dire qu un clcul de l utomte se er des euilles vers l rcine de l rbre. Soit Σ = Σ 0 Σ 1 Σ 2 Σ i Σ m un lphbet de symboles, les élements de Σ i étnt d rité i. Σ ser l lphbet des termes. Exemple : est un terme sur l lphbet {, b} {}. } {{ } }{{} Σ 0 Σ 2 b Un utomte d rbre ini non-déterministe est un qudruplet A = (Q, Σ, Q F, ), où Q est l ensemble des étts, Σ l lphbet des termes, Q F Q les étts inux, et un ensemble de règles de trnsition de l orme : (q 1 (x 1 ),..., q n (x n )) q((x 1,..., x n )) où x 1,..., x n sont des vribles, Σ n, et q, q 1,...,q n Q. Ces règles de trnsition permettent de déinir les clculs, ou runs de l utomte. Pr exemple, si A est un utomte sur {, b} {}, et que ses règles de } {{ } }{{} Σ 0 Σ 2 trnsitions sont : 1 On consulter les deux premiers chpîtres [CDG + 97] pour une plus solide introduction ux utomtes d rbres réguliers 2

1. q 2. b q b 3. (q (x), q (y)) q ((x, y)) 4. (q (x), q (y)) q ((x, y)) 5. (q (x), q b (y)) q ((x, y)) 6. (q (x), q b (y)) q b ((x, y)) Alors voici un run possible sur le terme : b 2 utilistions de l règle 1 : b q q Règles 4 (on urit pu choisir l règle 3) et 2 : q q b b Règle 6 : q b b Les propriétés des utomtes d rbres sont très similires à celles des utomtes inis sur les mots (déterministion, minimistion, lemme de pompge,...); on les trouver clirement présentées dns le premier chpître de [CDG + 97]. De l même mnière, les propriétés des lngges reconnus sont semblbles à celles des lngges réguliers sur les mots (c. chpître 2 de [CDG + 97]). 3

1.2 Automtes d rbres à une mémoire Les utomtes d rbres à une mémoire vec tests d églité des mémoires, proches des utomtes que nous llons déinir, sont introduits dns [CCM01]. Bsiquement, l idée et d étendre l expressivité des utomtes d rbres en leur permettnt de conserver, prllèlement à l étt, une inormtion non bornée qu est l mémoire (c est un rbre construit pendnt le run de l utomte), sur lquelle on peut ire certins tests et diverses opértions (seuls des tests locux sont possibles vec les utomtes d rbres à une mémoire stndrds, comme pr exemple vériier que l rcine de l mémoire est un A ; certins tests globux peuvent être rjoutés, comme pr exemple les tests d églité des mémoires : nous les ppelerons des contrintes). Nous présenterons pr l suite (2.1) les opértions sur les mémoires que nous nous utoriserons, mis voici déjà pour exemple un utomte à mémoire obtenu en modiint les règles de l utomte précédent : 1. : q 2 A 2. b : q b B 3. : q, q q m 1 (m 2 F(m 1, m 2 ) 4. : q, q q m 1 m 2 H(m 1, m 2 ) 5. : q, q b q m 1 m 2 m 2 q 6. :, q b q b H(m, m ) m F(m, m ) Le run sur le terme devient : b 2 Pr l suite, nous utiliserons réquemment l nottion¾ étt mémoire 4

2 utilistions de l règle 1 : b q A q A Règles 4 et 2 : q H(A, A) q b B b 5

Règle 6 : q b F(A, B) b 2 Déterminisbilité des utomtes d rbres vec visibilité Les utomtes à une pile de [AM04] sont des utomtes sur les mots, et ce qui permet leur déterministion, qui est impossible dns le cs générl, est l restriction suivnte : c est l lettre lue en entrée qui dicte l opértion à eectuer sur l pile : soit rjouter un crctère (mis le crctère jouté peut, lui, dépendre de l étt), soit en enlever un, etc. Cette idée peut être dptée ux utomtes d rbres à une mémoire (mémoire qui ser, précisons-le imméditement, un rbre et non une pile), et l lgorithme de déterministion est lors semblble, chcune des idées d Alur et Mdhusudn s dptnt sns réel problème. 2.1 Déinitions ormelles Dns toute l suite, nous ne considèrerons que des rbres binires ; nous verrons plus loins comment coder des symboles d rité supérieure à 2, ou égle à 1, pr des contextes. Nottions : Alphbet des termes : Σ 0 Σ 2 (symboles de constntes et symboles d rité 2) Q(A(B, C)) pour signiiction : à l lecture du terme A(B, C), l utomte psse (ou peut psser, dns le cs d un utomte nondéterministe) dns l étt Q, ce que l on représenter églement pr le dessin suivnt : 6

Q A B C Q Lorsque cet rbre est une mémoire, on écrit plutôt, ce qui A(B, C) l signiiction suivnte : il existe un terme qui it psser (ou peut ire psser) l utomte dns l étt Q vec pour mémoire A(B, C). On représenter l mémoire vide pr un symbole de constnte : ; insi tout symbole de mémoire C pourr être vu comme un symbole binire, l un de ses ils ou les deux pouvnt éventuellement être le symbole. Seul le symbole de mémoire vide ur un sttut spécil : son rité normle est nulle, mis on pourr dns certins cs considérer qu il est son propre ils droit ou guche, si on doit le dépiler. X X Alphbet des mémoires : Γ 2 { }. L notion de visibilité dns s orme l plus générle pour un utomte d rbre pourrit s énoncer de l mnière suivnte : pour tout terme t, on doit pouvoir svoir à l vnce quelle ser l orme de l mémoire, et quel noeud du terme déposé tel ou tel noeud de mémoire; cel ne doit ps dépendre des choix non-déterministes eectués lors de l lecture du terme. A chque symbole sont ssociées une ou plusieurs règles de l orme : : Q 1 Q 2 Q 3,, mémoire 1 mémoire 2 nouvelle mémoire l nouvelle mémoire étnt obtenue pr une opértion sur les deux premières mémoires. L visibilité requiert que toutes les règles ssociées à un symbole donné utilisent l même opértion de construction de l nouvelle mémoire. Pour obtenir l propriété de visibilité, on clsse donc les symboles des termes selon plusieurs ctégories (9 en tout), in d obtenir trois opértions principles sur les mémoires (les mêmes que celles introduites dns [AM04] : PUSH, 7

POP, et INTERNAL) : PUSH : symboles qui empilent les mémoires; les règles ont lors cette orme : PUSH : : Q 1, Q 2 Q 3 X(m 1, m 2 ) m 1 m 2 POP : symboles qui dépilent une des mémoires; en it l ctégorie POP correspond à qutre ctégories distinctes : POP 11 : : Q 1, Q 2 Q 3 A(x, y) m 2 x POP 12 : : Q 1, Q 2 Q 3 A(x, y) m 2 y POP 21 : : Q 1, Q 2 Q 3 m 1 A(x, y) x POP 22 : : Q 1 m 1 Q 2 Q 3, A(x, y) y Les règles POP testent le symbole de tête d une des mémoires puis grdent l un des ils 3 de ce symbole; celui-ci peut très bien être le symbole de mémoire vide, uquel cs l mémoire résultnt est nécessirement vide. INTERNAL : symboles qui choisissent une des mémoires et ne l modiient ps ; cettectégorie correspond à deux ctégories distinctes : INT 1 : : Q 1, Q 2 Q 3 INT 2 : : m 1 m 2 m 1 Q 1, Q 2 Q 3 m 1 m 2 m 2 Les règles de trnsitions correspondnt ux constntes sont spéciles, et on les clsse donc dns 2 ctégories supplémentires, selon que l on lisse l mémoire vide ou que l on empile un symbole : PUSH C : : Q X 3 Pr ils on entend le sous-rbre ils entier. 8

INT C : : Q On nommer identiquement une ctégorie (ensemble de symboles) et l ensemble des règles de cette ctégorie. Pr exemple, POP 11 désigne l ensemble des symboles de ctégorie POP 11, mis peut ussi désigner l ensemble des règles de ctégorie POP 11. Remrque : on urit éventuellement pu utoriser d utres opértions, mis celles-ci sont en générl simulbles pr l ssocition des trois opértions supr. Pr exemple, supposons que l on veuille l règle suivnte pour un symbole : : Q 1, Q 2 Q 3 A(x, y) B(y, m 2 ) m 2 On peut lors coder ce symbole pr un contexte : 0, x y 1 y x 2 où 2 est une constnte de ctégorie quelconque (seul l étt dns lequel elle mène compte), 1 un symbole de type POP 12, et 0 un symbole de type PUSH. Cet exemple ser repris plus loin (6.1). 2.2 Déterministion Théorème 1 - Déterminisbilité des utomtes d rbres vec visibilité. Si A est un utomte d rbre vec visibilité, lors il existe A det déterministe et complet tel que A et A reconnissent le même lngge. Le reste de ce prgrphe est conscré à l construction de A det et à l preuve de l églité des lngges reconnus pr A et A det. Soit donc A un utomte que l on souhite déterminiser, c est-à-dire : l lphbet des termes : Σ 0 Σ 2 (on réprtit les symboles dns les 9 ctégories mentionnées précedemment), insi que l lphbet des mémoires Γ 2 { }, lphbets que nous supposerons disjoints; l ensemble des étts de l utomte : Q, insi que l ensemble des étts inux Q F ; 9

pour chque symbole de Σ 0 Σ 2, les règles de trnsition de l utomte, dont l orme dépend de l ctégorie à lquelle pptient le symbole. Pour déterminiser A, on v devoir ugmenter considérblement le nombre d étts, insi que l tille de l lphbet de mémoire, qui n ur plus rien à voir vec le précédent. Concrètement, on ur : Q det = {0, 1} P(Q) P(Q) Q Γ det 2 = (PUSH PUSH c ) (Q det ) 2 Cel mérite quelques explictions... Prenons un terme t ; lors de l lecture de ce terme pr l utomte A, on est mené à ire des choix, mis en rison de l visibilité, l mnière dont l structure des mémoires évolue u cours du run de l utomte ne dépend ucunement de ces choix. Ainsi, l mémoire inlement obtenue toujours l même structure, et en outre, si celle-ci est non vide, c est toujours u même endroit dns le terme qu été déposée l rcine de l mémoire. Pr exemple, si K est une constnte PUSH C, et, g et h sont respectivement des symboles PUSH, POP 11 et POP 21, lors le terme : h K g K K K K K ur toujours une mémoire de l orme : X Pr illeurs, l rcine de l mémoire (donc ici l mémoire toute entière!) ser toujours déposée pr le symbole K doublement encdré. On lisse u lecteur le soin de vériier ces deux irmtions... Les remrques précédentes vont nous permettre d ssocier à chque terme une onction, déinie de mnière unique, et qui ser sns cesse mise à jour lors de l déterministion. Deux cs distincts sont à considérer : 10

¾ q 1. Premier cs : le terme t conduit à une mémoire non vide m. Alors, considérons le symbole dns t qui pose l rcine de m ; cette position déinit un sous-terme de t, ppelons-le s (on noter de plus t = C[s]), qui construit toute l mémoire m. En outre, hors de s, le contenu de cette mémoire m ne ser jmis observé. On peut considérer C comme une onction qui prend en rgument un étt q et une mémoire x m (censés être obtenus près un run de l utomte sur un sous-terme x s ), et renvoie l ensemble des étts q tteignbles en poursuivnt le run sur le contexte C. Avec l exemple précédent, x m m est l mémoire m et x s est le terme s ; le contexte ssocié est présenté sur l igure 1 (les cercles sont les points d entrée et de sortie ). ¾ q h K g K m K K K Fig.1. Contexte ne modiint ps l mémoire Puisque l mémoire x m n est jmis observée ni modiiée lors du run sur le contexte C, le résultt de C(q, x m ) ne dépend ps de x m, et on peut donc poser C(q, x m ) = S(t)(q) (S(t) cr le contexte C ne dépend que de t). 11

¾ q ¾ q S(t)(q) m h K g K m K K K Fig.2. S(t) est l onction de trnsition entre l endroit où est posé l rcine de l mémoire, et l rcine du terme Cette onction S(t) l vntge d être contenue dns un ensemble de tille bornée (P(Q) Q ), et de résumer l eet du contexte C, dont l tille n est ps bornée. Elle pourr insi être conservée dns l étt de l utomte déterministe. 2. Second cs : si le terme t conduit à une mémoire vide, et que E est l ensemble des étts que l on peut tteindre près un run de l utomte A sur t, lors on choisit S(t) comme étnt égle à l onction constnte : (q Q E). Remrque : dns ce qui suit, nous représenterons générlement un contexte sns eet sur l mémoire pr un tringle noir, et un terme quelconque pr un tringle blnc. 12

L étt obtenu pr le run de l utomte déterminisé sur un terme t quelconque est un triplet b, R, S qui devr vériier les 3 invrints suivnts : 1. b = 1 si l mémoire engendrée pr t est non vide, b = 0 sinon. 2. R est l ensemble des étts tteignbles pr un run de l utomte A sur le terme t. 3. S est l onction S(t) déinie supr. Montrons que l on peut choisir des règles de trnsitions permettnt de conserver inductivement ces invrints. On noter : Id Q = (q Q {q}); et pour R Q, S R = (q Q R). Tritons successivement toutes les ctégories de symboles possibles : INTC det : : 0, R, S R vec : q R = q Q : INT C PUSH det C : vec : : 1, R, Id Q X R = q Q Z Γ 2, : q INT C Z et : X =, 0, Q, S Q, 0, Q, S Q 4 On vériie sns peine qu vec ces 2 types de règles, près un run sur un terme réduit à un symbole de constnte INT C ou PUSH C, les 3 invrints sont vériiés. PUSH det : : b 1, R 1, S 1, b 2, R 2, S 2 (1, R, Id Q) m 1 m 2 X(m 1, m 2 ) vec : R = {q Q (H, q 1, q 2 ) Γ 2 R 1 R 2, r q1,q 2,q PUSH}, 4 On rppelle que Γ det 2 = (PUSH PUSH c) Q det Q det. 13

et : où r q1,q 2,q = : q 1, q 2 q y z H(y, z) X =, b 1, R 1, S 1, b 2, R 2, S 2 Si les ils guche et droit de l rcine () du terme t considéré vériient les hypothèses d induction, lors lors d un run de l utomte A sur t, on se trouve dns une sitution de l orme : y ¾ q ¾ q2 1 R 1 z R2 Fig.3. Le cs PUSH L règle ppliquée à l rcine lors du run sur t peut donc être l une quelconque des règles de (dns l utomte A) vériint q 1 R 1 et q 2 R 2, puisque le contenu de y et z est sns importnce. Donc l déinition donnée à R correspond bien à l ensemble des étts tteignbles pr un run de l utomte A sur t. Pr illeurs, comme l dernière règle utilisée est de type PUSH, c est l rcine du terme qui pose l rcine de l mémoire. L onction ssociée S(t) est donc bien égle à Id Q, cr le contexte correspondnt à t est réduit à une vrible : INT det 1 : vec : : b 1, R 1, S 1, b 2, R 2, S 2 b 1, R, S m 1 m 2 m 1 R = {q Q (q 1, q 2 ) R 1 R 2, r q1,q 2,q INT 1 }, où r q1,q 2,q = : q 1, q 2 q y z y 14

¾ q (S(t)(q) = {q}) m m ¾ q Fig.4. Contexte réduit à une vrible : l onction de trnsition ssociée est Id Q et : si b 1 = 0 : S = S R si b 1 = 1 : q in Q, on pose : S(q in ) = {q Q (q 1, q 2 ) S 1 (q in ) R 2, r q1,q 2,q INT 1 }, où r q1,q 2,q = : q 1, q 2 q y z y D près le même risonnement que pour les règles PUSH, R est bien le nouvel ensemble des étts tteignbles pr un run de A sur t. Pour ce qui est de S, on remrque que l on ne conserve que l mémoire du ils guche de, et que l on ne modiie ps l endroit où est posée l rcine de l mémoire. L propriété requise est évidemment vériiée si b 1 = 0. Le cs b 1 = 1 est décrit pr l igure 5. L déinition de S correspond lors bien à celle de l onction S(t). Les 3 invrints restent donc vériiés. Même principe pour les symboles INT 2. POP det 11 : 15

¾ q S(q) y ¾ q 1 S 1(q in) y z ¾ q 2 R 2 y ¾ q Fig.5. Fonction de trnsition dns le cs INT 1, l mémoire de guche étnt non vide : b 1, R 1, S 1, b 2, R 2, S 2 b, R, S g, Q α, Q β (x, y) z x vec 3 cs de igure possibles : Premier cs. Si g, Q α, Q β =, lors on pose b = 0, et S = S R, vec : R = {q Q (q 1, q 2 ) R 1 R 2, r q1,q 2,q POP 11 }, où r q1,q 2,q = : q 1, q 2 q (x, y) z x 16

Deuxième cs. Si g est un symbole PUSH C, lors cel signiie que x =, et donc on pose b = 0; on est dns x le cs présenté pr l igure 6. ¾ q ¾ q 1 S 1(q 0) A ¾ q 2 R 2 A ¾ q 0 g Fig.6. Cs POP 11, l mémoire de guche étnt réduite à s rcine et posée pr un symbole PUSH c : g 17

On pose donc : A Γ 2, R A = {q Q q 0 Q, (q 1, q 2 ) S 1 (q 0 ) R 2, r q0 PUSH C r q1,q 2,q POP 11 }, où r q0 = g : q 0, A et r q1,q 2,q = : q 1, q 2 q A(x, y) z x Alors : R = A Γ 2 R A et S = S R On vériie bien que les invrints sont conservés. Troisième et dernier cs. g PUSH. L construction des ensembles R et S est plus complexe, mis ressemble nénmoins à celle du cs précédent. On pose Q α = b α, R α, S α ) et Q β = b β, R β, S β, ces triplets correspondnt ux étts (de l utomte déterminisé) des ils guche et droit du symbole g ; l igure 7 résume cette sitution, et montre qu on peut eectivement recontruire R, le nouvel ensemble des étts tteignbles, grâce ux inormtions disponibles. Pour tout A Γ 2, on pose : R A = {q Q q 0 Q, (q 1, q 2 ) S 1 (q 0 ) R 2, (q α, q β ) R α R β, } r qα,q β,q 0 PUSH r q1.q 2,q POP 11, q α où r qα,q β,q 0 = g :,, x y A(x, y) et r q1,q 2,q = : q 1, q 2 q A(x, y) z x q β q 0 Alors : R = A Γ 2 R A 18

¾ q 1 S A(x,y) 1(q 0) x ¾ q z ¾ q 2 R 2 A(x,y) ¾ q 0 ¾ q ¾ qβ α R α x y g Rβ Fig.7. Cs POP 11, l rcine de l mémoire de guche étnt posée pr un symbole PUSH : g ; notons que le symbole posé pr g dns l utomte déterminisé permet de svoir si x est vide ou non 19

Ensuite, ou bien b α = 0, ce qui veut dire que x est l mémoire vide, et donc on pose b = 0, S = S R ; ou bien b α = 1 (donc b = 1), et dns ce cs on construit S de l même mnière que l on construit R : voir igure 8. Pour tout A Γ 2, pour tout q in Q, on pose : S A (q in ) = {q Q q 0 Q, (q 1, q 2 ) S 1 (q 0 ) R 2, (q α, q bet ) S α (q in ) R β, } r qα,q β,q 0 PUSH r q1,q 2,q POP 11, où r qα,q β,q 0 = g : q α, q β q 0, x y A(x, y) et r q1,q 2,q = : q 1, q 2 q A(x, y) z x Et enin : q Q, S(q) = A Γ 2 S A (q) Même principe pour les symboles de ctégorie POP 12, POP 21, POP 22. Ces règles conservent donc pr induction les invrints énoncés plus hut. L utomte A det insi créé est bien déterministe, et de plus complet, et si l on dit qu un étt (b, R, S) est inl lorsque R contient u moins un étt inl de l utomte A, lors, comme R est l ensemble des étts ccessibles pr un run de A, il est clir que les 2 utomtes reconnissent le même lngge. On peut donc déterminiser les utomtes d rbres vec visibilité! 2.3 Propriétés de clôture Les utomtes d rbres vec visibilité sont stbles pr union (bien sûr il ut que 2 mêmes symboles soient toujours de même ctégorie, et dns ce cs il suit de ire l union des règles), et pr intersection (une ois les 2 utomtes A 1 et A 2 déterminisés et complétés, on peut déinir l utomte produit (vec pour lphbet de mémoire le produit des lphbets de mémoire), et pour l ensemble des étts inux choisir le produit des ensembles des étts inux des deux utomtes A 1 et A 2 ). Ils sont ussi stbles pr complémentire : une ois l utomte déterminisé et complété, il suit d échnger étts inux et non-inux. 20

¾ q 1 S A(x,y) 1(q 0) x ¾ q z ¾ q 2 R 2 ¾ q α S α(q in) x A(x,y) ¾ q 0 g ¾ q β R β y x ¾ q in Fig.8. Représenttion grphique de l onction de trnsition lorsque POP 11, et que l rcine de l mémoire de guche est posée pr un symbole PUSH (g) 21

3 Ajout de contrintes Chngement de nottion : Soit A un utomte d rbre vec visibilité. Q Jusqu à présent, nous utilisions, pr souci de clrté, l nottion A(B, C) pour irmer l existence d un terme isnt ou pouvnt ire psser l utomte dns l étt Q vec A(B, C) pour mémoire. A prtir de mintennt, les ormules seront générlement moins obscures, et on noter donc Q(A(B, C)) cette même irmtion. 3.1 Générlités 5 Nous possédons à l heure ctuelle une clsse d objets stble pr union, intersection, et complémentire : les utomtes d rbres vec visibilité, que nous brègerons en AAV. Les bonnes propriétés de clôture sont là, mis peut-on encore ugmenter l expressivité? Pour cel, on souhite rjouter des contrintes entre les mémoires, en s inspirnt des utomtes d rbres à une mémoire vec tests d églité, présentés dns [CCM01]. Le principe générl est le suivnt : si R est une reltion binire quelconque, on peut choisir certines règles de l utomte, et jouter une condition sur les mémoires : certines composntes d entre-elles devront être en reltion selon R. Pr exemple, on pourrit éventuellement trnsormer l règle : en : PUSH : : Q 1 (m 1 ), Q 2 (m 2 ) Q 3 (X(m 1, m 2 )) PUSH : : Q 1 (m 1 ), Q 2 (m 2 ) R(m 1,m 2) Q 3 (X(m 1, m 2 )) Les contrintes posent des problèmes évidents : il ut que l clsse de contrintes que l on s utorise soit stble pr les 3 opértions booléennes,, et si on veut conserver l stblilité de l clsse d utomtes pr union, intersection et complémentire. Pr illeurs, nous voulons conserver l notion de visibilité pour les contrintes : c est le symbole qui ixe le test à eectuer, qui ne dépendr donc jmis des étts tteints ux ils guche et droit. Pr contre, le nouvel étt dépendr de l réussite ou non du test : un étt lorsque le test est réussi, un utre dns le cs contrire 5 Le chpître 4 de [CDG + 97] constitue une solide et générle introduction ux utomtes d rbres vec contrintes. 22

(générlement un étt poubelle). Cette çon de procéder ssure l stbilité pr complémentire. Le rjout d une contrinte pour un symbole donné multiplie donc pr deux le nombre de règles ssociées : pr exemple devient : PUSH : : Q 1 (m 1 ), Q 2 (m 2 ) Q 3 (X(m 1, m 2 )) PUSH : : Q 1 (m 1 ), Q 2 (m 2 ) R(m 1,m 2) PUSH : : Q 1 (m 1 ), Q 2 (m 2 ) R(m 1,m 2) Q 3 (X(m 1, m 2 )) Q P (X(m 1, m 2 )) 3.2 Ajouter des contrintes et conserver l déterminisbilité L première contrinte que l on pourrit vouloir rjouter est le test d églité, mlheureusement, déterminiser un utomte d rbre vec visibilité et contrintes d églité semble très diicile. En voici bsiquement l rison : Si et g sont deux symboles PUSH, empilnt toujours A, et g empilnt, A pour certines règles, B pour d utres. Supposons que l on teste l églité de 2 mémoires m 1 et m 2 comprennt en même position p, respectivement un symbole posé pr, et un symbole posé pr g. Alors, un run pourr éventuellement boutir à l églité de ces mémoires, mis il udr se souvenir que seules les règles de g empilnt A ont pues être utilisées en position p, insi que toutes les conséquences que cel sur l suite du run; ce cs de igure peut ppritre plusieurs ois dns les mémoires, qui ne sont ps de tille bornée...cel it donc éventuellemet une inormtion de tille non bornée à mémoriser à chque test d églité, ce que ne permettent ps les AAV! On peut trouver certines contrintes prticulières (comme pr exemple des contrintes qui ne peuvent s imbriquer qu un nombre borné de ois) qui lissent à l clsse d utomtes l déterminisbilité, mis u prix d une ugmenttion de l complexité de l lgorithme de déterministion. Comme cette complexité est déjà très élevée (même si l on peut déterminiser à l volée ), il serit préérble de ne ps l ugmenter violemment en rjoutnt des contrintes. C est pour cette rison que nous llons nous concentrer sur les contrintes structurelles, qui ne modiient ps l lgorithme de déterministion. En eet, nous vons vu qu vec l propriété de visibilité, les structures des mémoires obtenues lors de l lecture d un terme sont toujours identiques, quels que soient les choix non-déterministes eectués. En prticulier, comme un symbole donné ne chnge ps de ctégorie lors de l déterministion, cette structure est églement celle de l mémoire obtenue vec l utomte déterminisé. Donc, si un test sur les mémoires ne dépend que des structures de celles-ci, lors près l déterministion ce test rester le même : s il est vlidé c est qu il l étit déjà vec l utomte non-déterministe (quels que soient les choix eectués lors de l lecture du terme), et inversement si le test 23

échoue, c est qu il échouit déjà vec l utomte non-déterministe. Lorsqu il s ttquer ux règles à contrintes, l lgorithme de déterministion grder donc les mêmes tests, et considèrer d un côté l ensemble des règles utilisbles en cs de réussite, et de l utre celles utilisbles en cs d échec. Théorème 2 - Les AAV vec contrintes structurelles sont déterminisbles. Prmi les tests structurels, celui qui retiendr principlement notre ttention est le test d églité structurelle (nous n borderons ps les contrintes sur les huteurs des mémoires, même si celles-ci sont de prits exemples de contrintes structurelles). 4 Décision du vide Sns contrintes, le vide est décidble : pour chque étt Q, on peut créer en dexptime un utomte régulier qui reconnît les mémoires qui peuvent être celles de termes conduisnt (ou pouvnt conduire) l utomte de déprt à l étt Q. En it, lorsqu on considère les règles de trnsitions de l utomte, sns considérer les symboles de l lphbet des termes, on s perçoit qu elles déinissent ce qu on ppelle un utomte d rbres bi-directionnel lternnt, qui peut être réduit en un utomte régulier équivlent (voir chpître 7 de [CDG + 97]). Toutes ces règles peuvent églement être vues comme des xiomes (les règles de l orme...) et des règles de déduction (toutes les utres règles). 4.1 Déinition des Systèmes de Règles d Automtes d Arbres vec Visibilité Depuis [FSVY91], il est cournt de représenter un utomte d rbre pr un ensemble de cluses de Horn. On ppeler Système de Règles d Automte d Arbres vec Visibilité, ou encore SRAAV, tout ensemble ini de règles isnt intervenir uniquement des prédicts unires (les étts de l utomte) sur des termes, chque règle pprtennt à l une des 9 ctégories précédemment déinies (les règles sont donc toutes des cluses de Horn). Lorsqu on choisit certins prédicts inux (les étts inux), on pourr prler de lngge reconnu pr un SRAAV : ce sont tous les termes pprtennt à une interpréttion des ces prédicts dns le plus petit modèle de Herbrnd (les termes démontrbles ). Ainsi, tout AAV conduit à un SRAAV si on considère l ensemble de ses règles de trnsition, en supprimnt les symboles de l lphbet des termes. Pr exemple, l utomte suivnt : 24

PUSH C : : Q (A) PUSH C : b : Q b (B) PUSH : : Q (m 1 ), Q (m 2 ) Q (F(m 1, m 2 )) PUSH : : Q (m 1 ), Q (m 2 ) Q (H(m 1, m 2 )) conduit u SRAAV : Q (A) Q b (B) Q (m 1 ), Q (m 2 ) Q (F(m 1, m 2 )) Q (m 1 ), Q (m 2 ) Q (H(m 1, m 2 )) Les termes vériint un prédict Q x dns un SRAAV issu d un AAV A sont les mémoires possibles dns l étt Q x. Remrques : il est intéressnt de remrquer que dns les règles des SRAAV, l ordre des prédicts de guche est sns importnce; donc, on ne distingue plus les règles INT 1 des règles INT 2 : nous les regrouperons sous l ppeltion INT ; de même, les règles POP 11 et POP 21 se nommeront POP 1, et les règles POP 12 et POP 22 se nommeront POP 2. 4.2 Sur quelles règles jouter les contrintes? Lorsque l on eectue un test entre 2 mémoires, il ut en générl en lisser une déinitivement de côté. On n utoriser ps l ccès ux 2 mémoires près le test, cr, in de prouver l décidbilité du vide, notre but est de donner un lgorithme permettnt de créer, pour un utomte d rbres vec visibilité et contrintes donné, et quel que soit l étt inl choisi, un utomte d rbres régulier reconnissnt le lngge des mémoires ssocié. Or, en utorisnt l ccès ux deux mémoires près un test, pr exemple si tous les symboles d rité 2 sont des symboles P U SH vec test d églité structurelle, on peut reconnître les rbres binires complet, les mémoires ssociées étnt églement l ensemble des rbres de mémoire binires complets, ce qui n est ps un lngge régulier. En outre, cel dépend de l contrinte considérée, mis il réquent, si on s utorise le double ccès ux mémoires testées, de pouvoir simuler une mchine à 2 compteurs, et donc une mchine de Turing, ce que l on veut bien sûr éviter à tout prix. Nous ne pouvons donc ps rjouter de contrintes ux règles PUSH. 25

Pour simpliier, nous n utoriserons les contrintes que pour les symboles de ctégorie INT 1 ou INT 2 6. Voici donc l orme générle des AAV vec contrintes : pour toute contrinte R que l on veut utoriser, on joute ux 9 ctégories de symboles déjà déinies (voire plus si d utres contrintes ont déjà été introduites) 2 nouvelles ctégories : INT 1 R et INT 2 R. Pr conséquent, ce ne sont ps 2 mis 4 nouvelles sortes de règles qui sont introduites : les règles de ctégorie INT 1 R +, INT 1 R, INT 2 R +, et INT 2 R (qui dns les SRAAV se réduiront en 2 ctégories : INT R + et INT R ). Donc, si on joute k contrintes ux AAV stndrds, on obtient 9 + 4k ctégories de règles. Remrques : puisque de toutes çons les contrintes sont toujours utilisées dns le même sens, on peut se restreindre ux seuls jouts de contrintes symétriques (c est ce que l on er dns toute l suite). 4.3 Décidbilité du vide vec tests d églité et de diséglité structurelle Nottions : Nous désignerons pr AAV + {R} les AAV vec l contrinte R, et pr SRAAV + {R} les SRAAV vec en plus un nombre ini de règles INT R + et INT R. Dns les règles de type INT ou POP, nous quliierons de témoin le prédict dont l mémoire n pprît que dns les prémisses de l cluse. L mémoire de ce prédict ser églement quliiée de mémoire témoin, et on pourr prler de terme témoin en désignnt le terme ynt conduit à cette mémoire. Pr exemple, si est un symbole INT 1 présent dns un terme quelconque, le ils droit de un rôle de témoin, cr l mémoire à lquelle il conduit ser oubliée. Une restriction pour triter les tests d églité seuls Pour l instnt, nous considérons un SRAAV vec en plus un nombre ini de règles INT R +, où R est l églité structurelle. Notre souhit est de pouvoir construire, pour tout prédict choisi (pr exemple Q F ), un utomte d rbre régulier reconnissnt le lngge ccepté pr le système. L utilistion des techniques de résolution hbituelles (voir 6 Cette restriction s ccompgne d une légère perte de générlité, que l on ne chercher touteois ps à quntiier; prmi les trois mnières d jouter une contrinte ux règles POP, l une d entre elles (ex. : : Q 1(A(x,y)), Q 2(z) Q 3(x)) est R(x,y) une çon détournée de permettre le double ccès à deux mémoires testées, une utre (ex. : : Q 1(A(x,y)),Q 2(z) Q 3(x)) ser simulble pr l utilistion R(x,z) d une règle POP puis d une règle INT vec contrinte, mis l troisième (ex. : : Q 1(A(x,y)), Q 2(z) Q 3(x)), elle, ne semble ps pouvoir être obtenue à R(y,z) l ide de règles INT à contrintes. 26

[KKR90]) s vère délicte vec l églité structurelle dns le cs générl; ceci ser donc l objet de trvux ultérieurs. Pr contre, vec l vrie églité, et non ps l églité structurelle, l propriété recherchée est un résultt de [CCM01]. Or, si l lphbet des mémoires n qu un seul symbole, l églité structurelle correspond à l vrie églité, et le résultt est donc vlble. C est ce cs de igure que nous étudierons pr l suite : Γ 2 est un singleton. Alors, toutes les contrintes sont structurelles, et on peut omettre cet djecti : églité structurelle devient églité, diséglité structurelle devient diséglité. Supression des diséglités comme conséquence d un théorème plus générl D près le prgrphe précédent, nous pouvons, à prtir d un SRAAV + {= } n ynt ucune règle vec test de diséglité, nous rmener à des utomtes réguliers reconnissnt les lngges de mémoires. Notre objecti ser donc de montrer que l on peut éliminer successivement toutes les règles vec test de diséglité. Pour cel, nous llons même démontrer un résultt plus ort. Théorème 3 - Elimintion des contrintes négtives. Soit R une reltion d équivlence 7 binire, vériint les 2 propriétés suivntes : si on rjoute à un SRAAV un nombre ini de règles INT R +, lors il existe encore un lgorithme permettnt, quel que soit le prédict inl P choisi, de construire un utomte d rbre régulier qui ccepte exctement les termes vériint P. pour tout terme t l ensemble E des termes en reltion vec t (i.e. l clsse d équivlence de t) est de tille bornée, et on peut eectivement énumérer les éléments de cet ensemble. Avec ces hypothèses, pour tout SRAAV + {R}, quel que soit le prédict inl choisi, le lngge ccepté est reconnu pr un utomte d rbres stndrd que l on peut construire. Remrque : comme conséquence directe, le vide est décidble pour les AAV + {R} dès que R vériie les hypothèses de ce théorème. Démonstrtion. L preuve du théorème 3 se it pr récurrence sur le nombre règles INT R pprissnt dns le SRAAV + {R}. 0 règle : le résultt est imméditement conséquence de l première propriété vériiée pr R. 7 On peut iblir les hypothèses en supposnt simplement que R est symétrique, mis l preuve est lors nettement plus technique. 27

n règles, et le résultt est supposé vri pour n 1 règles. Nous llons tenter de supprimer l une quelconque de ces n règles, que nous noterons r 0 : Q 1 (x), Q 2 (y) R(x,y) Q 3 (x) (r 0 ) Etpe 1. Supposons que l on connisse k 0 mémoires m 1,..., m k vériint toutes Q 2 (m i ) (rppel : cel signiie que l étt Q 2 peut être tteint vec m i pour mémoire). Montrons lors qu à l seule condition qu elle existe, on peut créer une (k + 1)-ième mémoire vériint cette propriété. Notons E mi l ensemble des termes en reltion vec m i. Chque E mi étnt ini, on peut créer un utomte ini, vec de nouveux étts, reconnissnt exctement les termes qui ne sont ps dns E mi (on peut églement supposer que le seul étt inl est P i ). Cet utomte est équivlent à un SRAAV ne comportnt que des règles PUSH C et PUSH, et un seul prédict inl P i ; on rjoute ce système u SRAAV initil, sns ugmenter le nombre de règles à contrinte. On procède de l sorte pour chque E mi. Remrquons l propriété suivnte : R(x, m i ) x E mi y / E mi, R(x, y) (cr R est une clsse d équivlence) Donc, lorsque y = m i est un témoin vlble pour l règle Q 1 (x), Q 2 (y) R(x,y) Q 3 (x), celle-ci est équivlente à l règle : Q 1 (x), P i (y) Q 3 (x) R(x,y) Pour chque i 1,...,k, on rjoute l règle ci-dessus u SRAAV + {R}, ce qui ne modiie ps s sémntique, et surtout n ugmente ps le nombre de règles INT R. Dès lors, l règle Q 1 (x), Q 2 (y) Q 3 (x) n est utile que si le témoin R(x,y) y ne peut être ucun des m i, cr sinon on peut choisir une des règles Q 1 (x), P i (y) Q 3 (x). R(x,y) Cherchons lors une mémoire m k+1 vériint le prédict Q 2, diérente de tous les m i, et ynt une preuve de tille minimle, vec utilistion de l règle Q 1 (x), Q 2 (y) Q 3 (x) uniquement lorsque c est nécessire. R(x,y) En it, cette règle ne peut ps être utilisée dns l preuve, puisqu lors le témoin y correspondnt est diérent de tous les m i, ce qui en it une mémoire vlble, et vec une preuve plus courte. Donc, on peut oublier 28

cette règle pour rechercher m k+1. Ce isnt, on obtient un SRAAV + {R} à n 1 règles INT R. Pr hypothèse de récurrence, on peut construire un utomte d rbre reconnissnt les termes vériint le prédict Q 2, et on peut donc trouver m k+1 si une telle mémoire existe (remrque : on peut même éventuellement trouver plusieurs nouvelles mémoires : m k+1, m k+2, m k+3,...). Etpe 2. Si l étt Q 2 n est tteignble pr ucune mémoire (i.e. m 1 n existe ps (c. étpe 1)), lors l règle r 0 est inutile, et en l supprimnt on peut ire ppel à l hypothèse de récurrence qui nous grntit l existence eective, pour tout prédict Q, d un utomte d rbre qui reconnît les termes vériint Q. Dns le cs contrire, soit y = m 1 le premier témoin possible de l règle r 0 trouvé grâce à l méthode précédente. Désignons pr N l tille de s clsse d équivlence. En ppliqunt N ois de suite l procédure de l étpe 1, on boutit à 3 cs possibles : 1. On trouve strictement plus de N témoins (m 1 compris) possibles pour le y de l règle r 0. Alors u moins l un d entre eux (notons le m k ) n est ps dns l clsse d équivlence de m 1 et cel signiie que l règle r 0 peut se remplcer pr une ɛ-trnsition : Q 1 (x), Q 2 (y) Q 3 (x) Q 1 (x) Q 3 (x). R(x,y) R(x,y) En eet, quel que soit l mémoire x, soit elle pprtient à l clsse d équivlence de m 1, et dns ce cs m k est un témoin cceptble, soit elle n pprtient ps à l clsse d équivlence de m 1, et dns ce cs m 1 est un témoin cceptble. En chngent insi cette règle 8, on conserve l même sémntique, et on réduit le nombre de règles INT R à n 1. Pr hypothèse de récurrence, pour tout prédict choisi, on peut clculer un utomte d rbre reconnissnt les termes vériint ce prédict. CQFD. 2. On trouve moins de N témoins, mis l un d entre eux n est ps dns l clsse d équivlence de m 1. Idem. 3. On trouve k < N témoins, tous dns l clsse d équivlence de m 1. 8 Cette ɛ-trnsition n étnt ps de orme cceptble, on peut l chnger en une règle INT vec un étt Q que l on sit tteignble (pr exemple présent dns une règle PUSH C ou INT C) : Q 1(x) Q 3(x) Q 1(x),Q (y) Q 3(x) R(x,y) R(x,y) 29

Alors, c est qu une des procédures de l étpe 1 n ps bouti, et donc on connît toutes les mémoires vériint le prédict Q 2. En reprennt l construction de l étpe 1, on obtient un SRAAV + {R} dont l règle Q 1 (x), Q 2 (y) Q 3 (x) n est utile que si le témoin y R(x,y) ne peut ps être dns l clsse d équivlence de m 1 (sinon on utilise l règle Q 1 (x), P 1 (y) Q 3 (x)). Or, dns ce cs, un tel témoin R(x,y) n existe ps puisque tous les témoins potentiels pprtiennent à l clsse d équivlence de m 1...cette règle est donc inutile! Après s suppression, on peut ppliquer l hypothèse de récurrence, et conclure comme on l it plus hut. 5 Pour ller encore plus loin : jout d une utre clsse de contrintes Nous vons vu qu il est possible de rjouter des contrintes d églité et de diséglité sur les mémoires. On peut églement rjouter des contrintes d églités et de diséglité ne concernnt ps les mémoires, mis des sous-termes rères de l rbre prcouru pr l utomte. On rjoute exctement les mêmes contrintes entre rères que celles du prgrphe 4.3 de [CDG + 97], mis uniquement sur des règles INT (le double ccès ux mémoires près un test, même si celui-ci ne concerne ps les mémoires, cuse des problèmes identiques à ceux décrits dns le prgrphe 4.2). 2 nouveux types de symboles sont introduits : INT 1 (t1,t 2) R et INT 2 (t1,t 2) R. t 1 et t 2 désignent les termes ynt respectivement produit l mémoire m 1 et l mémoire m 2. Ces derniers ne nuisent en rien à l déterminisbilité, insi qu à l stbilité pr les divers opérteurs booléens. INT 1 (t1,t 2) R + : : Q 1(m 1 ), Q 2 (m 2 ) R(t 1,t 2) INT 1 (t1,t 2) R : : Q 1(m 1 ), Q 2 (m 2 ) R(t 1,t 2) Q 3 (m 1 ) Q P (m 1 ) INT 2 (t1,t 2) R + : : Q 1(m 1 ), Q 2 (m 2 ) R(t 1,t 2) INT 2 (t1,t 2) R : : Q 1(m 1 ), Q 2 (m 2 ) R(t 1,t 2) Q 3 (m 2 ) Q P (m 2 ) Lorsque l on psse u SRAAV, ces 4 nouvelles ctégories de règles ne sont plus que 2 : INT (t1,t 2) R + et INT 2 (t 1,t 2) R : INT (t1,t 2) R + : Q 1(m 1 ), Q 2 (m 2 ) Q 3 (m 1 ) R(t 1,t 2) INT (t1,t 2) R : Q 1(m 1 ), Q 2 (m 2 ) Q P (m 1 ) R(t 1,t 2) 30

On noter AAV + {R } + {R b } un AAV vec les contrintes R et R entre mémoires, et les contrintes R b et R b entre rères. Même chose pour les SRAAV. Dns notre cs, R b est l églité. Pour montrer que le vide est toujours décidble, même vec des tests d églité et diséglité entre rères, nous llons prouver un théorème plus générl. Théorème 4 - Production de termes à l demnde. Soit A un AAV + {=} + {=}, Q un étt, k un entier nturel. Alors, à l seule condition que ce soit possible, on sit exhiber k termes distincts mennt à l étt Q. Démonstrtion. 1. Cs de bse : A est un AAV + {=} (ucun symbole INT 1 (t1,t 2) = ou INT 2 (t1,t 2) =) Nous vons vu que l on peut svoir si oui ou non l étt Q est tteignble. Une réponse positive est donnée pr l construction d une preuve de Q(m) dns le SRAAV + {=} correspondnt, m étnt une mémoire. En exminnt cette preuve, on peut construire un terme mennt à l étt Q vec m pour mémoire, cr chque règle de déduction utilisée est ssociée à un symbole (prois, une règle ssociée u symbole été réduite à une ɛ-trnsition, mis on peut lors se souvenir des témoins justiint cette réduction, ce qui permet de compléter le terme, en donnnt eectivement les deux ils du symbole ). Souvent cette preuve permet de construire plusieurs termes (notmment lorsque plusieurs témoins sont vlbles), ou lors on trouve d utres mémoires permettnt d tteindre l étt Q (le lngge des mémoires est reconnu pr un utomte régulier que l on sit construire), et donc d utres termes. Mis ce n est ps toujours le cs : on dispose lors seulement d un terme t 1, et il nous ut svoir s il en existe un deuxième mennt à l étt Q. Dns ces conditions, on construit un AAV + {=} reconnissnt les termes mennt l utomte A à l étt Q, hormis t 0. On peut lors obtenir, si c est possible, un utre terme t 2. En recommençnt ce procédé utnt de ois qu on le souhite, on peut sns cesse créer de nouveux termes mennt l utomte à l étt Q, tnt qu il en existe en it. 2. Cs générl : A est un AAV + {=} + {=}. Pour commencer, on le déterminise. On souhite ensuite obtenir un nouvel utomte en trnsormnt les symboles INT 1 (t1,t 2) = en symboles INT 1 et les symboles INT 2 (t1,t 2) = en symboles INT 2, et ce en modiint les règles ssociées. Dns ce qui suit, nous ne considèrerons que des symboles INT 1 (t1,t 2) =, le cs des symboles INT 1 (t1,t 2) = étnt similire. Considérons tout d bord les règles vec test d églité : 31

Q 1 (m 1 ), Q 2 (m 2 ) t 1=t 2 Q 3 (m 1 ) Si le terme t 2 est égl à t 1, lors ces 2 termes conduisent u même étt (l utomte est déterministe), et donc l règle est inutilisble si Q 1 Q 2 : on l supprime. Restent les règles de l orme : Q(m 1 ), Q(m 2 ) t 1=t 2 Q (m 1 ) On conserve ces règles, en supprimnt les tests d églités : ce sont lors bien des règles de type INT 1. Pour ce qui est des tests de diséglité, remrquons déjà que pour les règles de l orme : Q 1 (m 1 ), Q 2 (m 2 ) t 1 t 2 Q P (m 1 ) vec Q 1 Q 2, on peut supprimer le test de diséglité, cr l utomte étnt déterministe, deux étts distincts ne peuvent être tteints que pr deux termes distincts. On supprime momentnément les utres règles vec test de diséglité. Appelons A l utomte (AAV + {=}) insi obtenu. Il est déterministe et possède l propriété suivnte : Quel que soit l étt inl choisi, si un terme t est reconnu pr A et ps pr A, lors on peut lui ssocier un terme reconnu pr A. Pour y prvenir, on prcourt le terme des euilles vers l rcine, et dès qu une règle correspondnt initilement à un test d églité (pr exemple Q(m 1 ), Q(m 2 ) Q (m 1 )) est utilisée, on remplce le ils droit pr le ils guche (donc on double le ils guche), ce qui rendrit l règle utilisble pr l utomte A. Le terme obtenu inlement est bien reconnu pr A. Il nous ut encore réintégrer les règles de l orme : Q(m 1 ), Q(m 2 ) t 1 t 2 Q P (m 1 ) Lorsque l on s pprête à utiliser une règle de ce type pour un symbole rencontré, le seul ils qui compte est le ils guche, puisque l mémoire du ils droit ser ensuite oubliée. On peut donc remplcer le ils droit pr un témoin vlble quelconque, sns que cel chnge l suite du run. Or, si on dispose de 2 termes distincts mennt chcun à l étt Q, l un des deux u moins est vlble (ils ne peuvent être tous deux égux u ils guche). On pourrit donc éventuellement chnger cette règle en règle INT 1 à condition de possèder 2 témoins distincts potentiels. Pr illeurs, si cette règle est 32

utilisée, elle donne utomtiquement deux témoins distincts, puisque les ils guche et droit doivent mener à l étt Q et être distincts. Biln : soit une règle de cette orme est inutilisble, et on l supprimer, soit on peut trouver 2 témoins potentiels, et on l trnsormer en une règle INT 1. Reste à trouver ces témoins, ou montrer qu ils sont introuvbles... Prmi toutes les règles de cette orme, on peut montrer que si l une u moins est utilisble, lors il existe deux termes témoins d une même règle qui ne ont ppel à ucune règle de ce type lors du run de l utomte (il suit de les choisir les plus petits possibles (u sens de l ordre sous-terme), cr l utilistion même d une de ces règles implique que les deux ils soient des témoins potentiels). Donc on peut les trouver pr le biis de A : en eet un terme reconnu pr A sns l utilistion de règles de l orme Q(m 1 ), Q(m 2 ) Q P (m 1 ) t 1 t 2 est nécessirement reconnu pr A. Voici donc l procédure à suivre : en supposnt que l règle Q(m 1 ), Q(m 2 ) t 1 t 2 Q P (m 1 ) soit eectivement utilisble, A étnt un AAV + {=}, nous pouvons tenter de construire des témoins reconnus pr A. Une ois le premier terme mennt à l étt Q créé, on le trnsorme en un terme t 1 mennt églement A à l étt Q, en ppliqunt l méthode décrite plus hut. Ensuite, en exminnt t 1, on détermine l ensemble E 1 des termes mennt A à l étt Q et se trnsormnt en t 0 (les seules modiictions sont les ils droit des symboles de type initil INT 1 (t1,t 2) =, ou les ils guche des symboles de type initil INT 1 (t1,t 2) =). Il est possible de modiier légèrement A in que les termes reconnus soient ceux mennt à l étt Q et n pprtennt ps à E 1. Alors, on peut construire un second témoin si ce dernier existe. Une ois les 2 témoins construits, on intègre l règle correspondnte, sns le test de diséglité (pr exemple Q(m 1 ), Q(m 2 ) Q P (m 1 )), à A. Il est possible que ce nouvel utomte soit non-déterministe, mis ce qui est importnt, ce sont les 2 propriétés essentielles qu il vériie encore, et qui serviront à trouver, si possible, 2 nouveux témoins (en eet on montre que si une utre règle de l orme en question est utilisble, lors il existe à nouveux 2 témoins d une même règle ne isnt ppel, lors du run de l utomte, à ucune règle de ce type, su éventuellement celle qui vient d être rjoutée) : Les témoins sont bien reconnus pr A : Un terme reconnu pr A sns l utilistion de règles de l orme Q(m 1 ), Q(m 2 ) t 1 t 2 Q P (m 1 ), su peut-être celle qui vient d être joutée, est nécessirement reconnu pr A. Propriétés permettnt de trouver les 2 témoins : Quel que soit l étt inl choisi, si un terme t est reconnu pr A et ps pr A, on peut lui ssocier un terme t reconnu pr A (en procédnt encore des euilles vers l rcines; si l règle qui vient d être joutée est utilisée, on remplce le ils droit pr un témoin vlble; si les deux témoins sont vlbles, le terme ssocié n est ps unique, ce qui nous rrnge puisque les 2 témoins seront trouvés directement). On peut de plus modiier A 33

in de reconnître uniquement les termes mennt à l étt Q, mis ne se trnsormnt ps en t. Cette dernière propriété permettr de créer un second témoin si besoin. Une ois les témoins trouvés, on intègre l nouvelle règle à A, et insi de suite jusqu à ce que l on ne puisse plus trouver un couple de témoins, ou que toutes les règles restntes soient intégrées à A. A ce stde, A possède une nouvelle propriété : quel que soit l étt inl choisi, tout terme reconnu pr A est églement reconnu pr A. Dns ces conditions, si le lngge reconnu pr A est vide, celui reconnu pr A est vide églement, et sinon, on construit un terme t reconnu pr A, que l on peut trnsormer en un terme t reconnu pr A. D illeurs, en modiint A comme on l déjà it précédemment (pour qu il reconnisse les termes mennt à un étt inl mis ne se réduisnt ps à t ), on peut créer un nouveu terme t 2 reconnu pr A, puis un utre, puis un utre,..., et ce, tnt qu il en existe! Ceci clos l démonstrtion du théorème 4. 6 Exemples de lngges reconnus pr les AAV + {=} + {=} Nous noterons l unique symbole de mémoire (excepté ). 6.1 Codge de ptterns plus générux Comme on l vu plus hut (2.1), on peut, si c est nécessire, coder des symboles de l lphbet des termes pr des contextes. Exemple g : Q 1 ( (x, y)), Q 2 (z) Q 3 ( (y, z)) Supposons que l on veuille ssocier à un symbole g de l lphbet des termes (Σ) des règles de cette orme, qui ne correspond ps à une orme licite (ni PUSH, ni POP, ni INT). Alors on modiie légèrement Σ, en remplçnt g pr plusieurs symboles (en it, on veut chnger g en un contexte de plusieurs symboles, ce qui permettr de combiner plusieurs règles). Dns notre cs, on remplce g pr g 0, g 1, et g 2 : PUSH C : g 0 : Q spec (K spec ) PUSH : g 1 : Q 1 ( (x, y)), Q spec (w) Q prev (y) PUSH : g 2 : Q prev (y), Q 2 (z) Q 3 ( (y, z)) 34

Ensuite, on peut créer un utomte où tout se psser comme si g vit les règles souhitées. Touteois, il udr vériier (en codnt une inormtion locle dns les étts) que g 0, g 1 et g 2 sont toujours réprtis selon l même structure : g 2 g 1 v u g 0 Pr exemple, considérons l ensemble des rbres binires rouge-noir, i.e. les rbres vériint les 5 propriétés suivntes : 1. Chque noeud est soit rouge, soit noir. 2. L rcine est noire. 3. Les euilles sont noires. 4. Si un noeud est rouge, ses deux ils sont noirs. 5. Chque chemin de l rcine à une euille contient le même nombre de noeuds noirs. On souhite créer un utomte reconnissnt les rbres binires rouge-noir; les 4 premières propriétés se vériient loclement, mis l cinquième nécessite une mémoire. On veut coder dns l mémoire le nombre de noeuds noirs que comporte tout chemin llnt du noeud tteint à une euille (sns remonter). Alors, lorsque l on rencontre un noeud rouge, il suit de tester l églité des mémoires des ils guche et droit, puis n en conserver qu une, ce qui est rélisé pr un symbole INT 1 =. Pr contre, lorsque l on rencontre un noeud noir, il ut tester l églité des mémoires des ils guche et droit, en conserver l une des deux, puis ugmenter s tille. Ceci ne peut être it que pr plusieurs opértions successives : il ut donc coder les symboles noirs pr des contextes; ce n est donc ps l ensemble des rbres binires rouge-noir que l on v reconnître, mis l ensemble des codges d rbres binires rouge-noir (où l on remplce les noeuds noirs pr un contexte donné), ce qui est tout de même stisisnt. Remrquons églement que pr cette méthode on peut reconnître des lngges d rbres non-binires, en codnt un symbole d rité k pr un contexte (binire) ynt k vribles. On peut donc églement reconnître, pr exemple, des lngges de mots. 6.2 D utres exemples Voici une liste non exhustive de lngges d rbres pouvnt être reconnus pr un AAV + {=} + {=}, moyennnt éventuellement un codge pr contextes (c. supr) : 35