1 / 51

Compilation de Règles de réécriture et de Stratégies non-déterministes

Compilation de Règles de réécriture et de Stratégies non-déterministes. Pierre-Etienne Moreau Directeur de thèse : Hélène Kirchner. Contexte général. Preuve automatique de propriétés et de théorèmes développer des techniques de preuve prototyper des outils de preuve

Download Presentation

Compilation de Règles de réécriture et de Stratégies non-déterministes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Compilation de Règles de réécriture et de Stratégies non-déterministes Pierre-Etienne Moreau Directeur de thèse : Hélène Kirchner

  2. Contexte général • Preuve automatique de propriétés et de théorèmes • développer des techniques de preuve • prototyper des outils de preuve • Règle de réécriture • objet sur lequel il est possible de raisonner • moyen d’exprimer les algorithmes et les procédures de preuve

  3. Contexte international • De nombreux travaux : CiME, daTac, Larch Prover, Otter, • ReDuX, Reve, RRL, Spike,ML, Caml, Clean, ... • principaux langages : terme + règle + stratégie 1975 Equational Interpreter (Chicago) Compilateur 1999 1977 Interpréteur OBJ (Menlo Park) Interpréteur Maude CafeOBJ Compilateur Brute (Ishikawa) Compilateur ASF+SDF 1980 Interpréteur ASF+SDF (Amsterdam) 1985 Interpréteur ELAN (Nancy) CompilateurELAN

  4. Plan • ELAN : Réécriture + Stratégie • Objectifs et difficultés • Apports • Situation actuelle et perspectives

  5. ELANMécanisme de base : réécriture • Règlenon nommée : • [] fact(1)  1 • Règleconditionnelle : • [] fact(n)  n*fact(n-1) if n  1 Calcul fact(3)3*fact(2) 3*2*fact(1)  3*2*1  3*2 6

  6. Problèmes liés à la réécriture • 2 règles de réécriture : [][x,y]x [][x,y][x+1,y] [1,2] 1 [2,2] Non-confluence 2 [3,2] Non-terminaison 3 ...

  7. Stratégie Gestion de la non confluence • Règle nommée : [R1][x,y]x [R2][x,y][x+1,y] • Stratégie : repeat(dc one(R1,R2)) repeat(first one(R1,R2)) repeat(dk(R1,R2)) [1,2] 1 [2,2] 2 [3,2] 3 ... gestion de la non confluence

  8. StratégieGestion de la non terminaison • Ajout d’une condition : [R1][x,y]x [R2][x,y][x+1,y] ifx  y [1,2] • Ajout d’une règle : [R1][x,y]x [R2][x,y][x+1,y] [check][x,y][x,y] ifx  y • Stratégie : repeat(dk(R1, check ; R2)) 1 [2,2] 2

  9. Associatif-CommutatifGrande expressivité • Associativité : x  (y  z) = (x  y)  z • Commutativité : x y = y x [extract]x Ex dk(extract) 1 2 3 4 1 2 3 4

  10. Associatif-CommutatifSource de non-déterminisme Règle : [extract]x Ex Sujet : 1 2 3 4 Objectif : extraire un élément pair Règle : [check]xx ifPair(x) Stratégie : dk(extract) ; dc one(check) 1 2 3 4 3 échec 2 2

  11. AC + StratégieDouble non-déterminisme • Une règle nommée est appliquée à la racine • Mécanisme d’évaluation locale [relation]x Ey ifPair(x) where y:=(dk(extract)) E ifRelation(x,y)

  12. Plan • ELAN : Réécriture + Stratégie • Objectifs et difficultés • Apports • Situation actuelle et perspectives

  13. Objectifs • Poursuivre l’étude du formalisme • Etudier les algorithmes de compilation • compilation de la réécriture • compilation du filtrage AC • compilation des stratégies • Rendre ces méthodes utilisables en pratique • concevoir un outil fiable et efficace

  14. Difficultés • Compiler la réécriture En présence : • de symboles associatifs et commutatifs • de stratégies non-déterministes • Gérer le double non-déterminisme • proposer un mécanisme uniforme • Gérer les interactions et intégrer les solutions • conception globale

  15. Plan • ELAN : Réécriture + Stratégie • Objectifs et difficultés • Apports • Situation actuelle et perspectives

  16. Compilation dufiltrage syntaxique Apports Filtrage syntaxique • Sélection efficace d’une règle : • analyse de l’ensemble des règles • pré-construction d’automates de filtrage • génération d’un programme C • Travaux largement étudiés : • Hoffmann et O’Donnell (1982), Gräf (1991), Sekar et al. (1992), Graf (1996), Nedjah et al. (1997) Compilation du filtrage AC Gestion du non-déterminisme Compilation des stratégies Analyse du déterminisme Définition d’un format d’échange Implantation

  17. Analyse des 3 règles  f(a,g(a))  a  f(g(b),g(b))  c  f(x,g(c))  b Automate de filtrage Automate de filtragenon-déterministe Sujet :f(g(a),g(c)) Sujet :f(g(a),g(c)) Sujet :f(g(a),g(c)) Sujet : f(g(a),g(c)) Sujet :f(g(a),g(c)) Sujet :f(g(a),g(c)) Sujet :f(g(a),g(c)) f a * g g g b g a c b Non-déterministe : • pour sélectionner un motif • pour trouver tous les motifs   

  18. Analyse des 3 règles  f(a,g(a))  a  f(g(b),g(b))  c  f(x,g(c))  b Automate de filtragedéterministe Sujet : f(g(a),g(c)) f a * g g g * b c g g a c c c b    Gräf(1991) Nedjah(1997)   

  19. Analyse des 3 règles  f(a,g(a))  a  f(g(b),g(b))  c  f(x,g(c))  b Automate de filtragedéterministe avec jumpNode Sujet : f(g(a),g(c)) f a * g * g g * b c g g a c c c b    • construction incrémentale    • taille réduite

  20. Compilation dufiltrage AC Apports Filtrage syntaxique • Problème connu : • Hullot (1980) • Benanav et al. (1987) • Kounalis et al. (1991) • Bachmair et al. (1993) • Lugiez et al. (1994) • Eker (1995) • Prise en compte de l’aspect normalisation Compilation du filtrage AC Gestion du non-déterminisme Compilation des stratégies Analyse du déterminisme Définition d’un format d’échange Implantation

  21. Problème à résoudre • Forme canonique ordonnée : b+(a+(b+c)) = (b+a)+(b+c) = +(a,b2,c) • 1 sujet :+(f(a,a), f(a,g(b)), f(g(c),g(b)), g(a)) • 2 règles : • +(z, f(a,x), g(a))  r1 • +(f(a,x), f(y,g(b)))  r2 • Forme canonique ordonnée : b+(a+(b+c)) = (b+a)+(b+c) = +(a,b2,c) • 1 sujet :+(f(a,a),f(a,g(b)),f(g(c),g(b)), g(a)) • 2 règles : • +(z,f(a,x), g(a))  r1 • +(f(a,x), f(y,g(b)))  r2 • Trouver une solution au problème de filtrage AC

  22. Exemple (one-to-one)  sélection d’une règle :+(z, f(a,x), g(a))  r1  construction d’un BG : Sujet :+(f(a,a), f(a,g(b)), f(g(c),g(b)), g(a))  résolution du BG : x=a et z=+(f(a,g(b)), f(g(c),g(b)))  calcul d’une autre solution : x=g(b) et z=+(f(a,a), f(g(c),g(b)))  sélection d’une autre règle :tout est à refaire !

  23. Analyse de la situation +(f(x),*(g(y), h(z))) r(x,y,z) *(g(y), h(z)) Problème • La construction des BG coûte cher • appel récursif du filtrage AC one-to-one • allocation dynamique de mémoire *(g(a), h(b)) *(g(y), h(z)) *(g(b), h(c)) +(f(a), f(b), g(c),*(g(a), h(b)), *(g(b), h(c)))

  24. 3 idées principales • Accélérer les cas fréquents en pratique • définition d’une classe de motifs • Réduire le coût de construction des BG • utiliser des automates de filtrage syntaxique • définir une structure de BG compacte • Intégrer filtrage et normalisation • prendre en compte les contraintes externes au filtrage AC

  25. Classe de motifs • C0 : termes linéaires • exemple : a, x, f(x,y), … • C1 : 1 niveau de symbole AC (semi-linéaire) • 2 variables directement sous le symbole AC • exemple :[+(z, y3, f(a,x), g(a)) , *(g(t), b)] • C2 : 2 niveaux de symboles AC • exemple :*(x, +(y, z2)) • Suffisant en pratique • Filtrage syntaxique des sous-termes

  26. +( f(a,x),f(y,g(b)), g(a) ) +(f(a,a), f(a,g(b)), f(g(c),g(b)), g(a)) Approche many-to-one +(z, f(a,x), g(a))  r1 +(f(a,x), f(y,g(b)))  r2 regroupement des sous termes +( f(a,x), f(y,g(b)), g(a) )  construction du CBG avec un automate +(f(a,a), f(a,g(b)), f(g(c),g(b)), g(a))  sélection d’une règle : extraction d’un BG  calcul d’une solution

  27. +( f(a,x), f(y,g(b)), g(a)) +(f(a,a), f(a,g(b)), f(g(c),g(b)), g(a)) Approche many-to-one +(z, f(a,x), g(a))  r1 +(f(a,x), f(y,g(b)))  r2 +( f(a,x), f(y,g(b)) , g(a) )  construction du CBG avec un automate +(f(a,a), f(a,g(b)), f(g(c),g(b)), g(a))  sélection d’une règle : extraction d’un BG  calcul d’une solution  sélection d’une autre règle : extraction d’un autre BG

  28. Normalisation AC • Sélection d’une règle : filtrage AC • Calcul d’une substitution • Construction et normalisation des instances • gestion de la mémoire et du partage • Traitement des évaluation locales • stratégies et problèmes de filtrage imbriqués • gestion des retours arrières • Maintien en forme canonique ordonnée

  29. Résultats expérimentaux • Bool3 : peu de règles mais des gros termes x + 0  x x * 0  0 x + x + x  0 x * x * x  x (x + y) * z  (x*y) + (y*z) x * 1  x and(x,y)  (x*x*y*y) + (2*x*x*y) + (2*x*y*y) + (2*x*y) or(x,y)  … not(x)  (2*x) + 1

  30. Résultats expérimentaux Requête :and(a1,…,a6) = not(or(not(a1),…,not(a6))) CiME :>24h OBJ :>24h OTTER :>10mn (plus de mémoire) ReDuX :20mn RRL :>4h (plus de mémoire) Spike :>24h Brute :2.25 sec Maude :0.153 sec ELAN :0.332 sec

  31. Résultats expérimentaux Nat10 : petits termes mais >100 règles CiME :294 sec OBJ :111 sec Brute :0.360 sec Maude :0.170 sec ELAN :0.163 sec

  32. Résultats expérimentaux • Somme : règles conditionnelles x   faux x  S  set(y) vrai ifx = y x  S faux [S1 set(x),S2, y] erreur ifx  S2 [S1 set(x),S2, y] [S1,S2 set(x), x+y] if x  S2

  33. Résultats expérimentaux Requête : [ set(1)  …  set(100), , 0] Résultat : [,  set(1)  …  set(100), 5050] OBJ :>24h Spike :>24h Brute :6.247 sec Maude :16.774 sec ELAN :1.326 sec

  34. Gestion des points de choix en C Apports Filtrage syntaxique Backtrack • Ajout de 2 primitives : • setChoicePoint (setjmp) • fail (longjmp) .eln C Compilateur Compilation du filtrage AC Support Gestion du non-déterminisme Compilation des stratégies Analyse du déterminisme Définition d’un format d’échange Implantation

  35. Intérêts de l’approche • Gestion transparente des points de choix • Compilation modulaire, utilisation de paramètres et de variables locales •Un seul mécanisme pour gérer le double non-déterminisme • Schémas simples de compilation des stratégies

  36. Compilation desStratégies Apports Filtrage syntaxique dc one(S1, S2) dk(S1, S2) S1 S1 résultat résultat Compilation du filtrage AC X X X X résultat Gestion du non-déterminisme S2 X résultat fin fin Compilation des stratégies dk(S1, S2) ;S3 Analyse du déterminisme S3 S1 résultat intermédiaire échec X X Définition d’un format d’échange S3 résultat intermédiaire résultat S2 S3 X résultat intermédiaire échec Implantation fin

  37. Analyse du déterminisme Apports Filtrage syntaxique • Point de choix • temps • mémoire • Stratégie avec plusieurs résultats • pose de points de choix • Stratégie avec un seul résultat • pas de point de choix • Régimes déterministes Compilation du filtrage AC Gestion du non-déterminisme Compilation des stratégies Analyse du déterminisme Définition d’un format d’échange Implantation

  38. AlgorithmeRésumé • Analyse des règles []x EEif P(x) []x EEf(x)if not(P(x)) points de choix pas de point de choix [] fact(n)  1 if n =1 [] fact(n)  n*fact(n-1) if n  1 • Analyse des stratégies repeat(dc one(S)) pas de point de choix

  39. Impact sur le code généré •Contrôle géré par des sauts (goto) •Moins de points de choix •Amélioration des schémas de compilation : Stratégierepeat(S) casnon-déterministe casdéterministe s s s s s s s s s s s s

  40. Impact surla pose de points de choix

  41. Impact surl’efficacité du code généré

  42. Implantation Apports Filtrage syntaxique • Plateforme de développement • Compilateur utilisable et diffusé • Accélération des programmes • Réduction de la consommation mémoire • Exécution d’applications de taille réelle Compilation du filtrage AC Gestion du non-déterminisme Compilation des stratégies Analyse du déterminisme Définition d’un format d’échange Implantation

  43. Automates d’arbres(Thomas Genet) • Environnement de calcul et de preuve • Déterminisation, minimisation, intersection • Terminaison, interblocage, confidentialité, ... • 100 modules, 100 sortes, 850 règles, 300 conditions, 55 stratégies, … • 10^9 règles appliquées en 20 minutes • (1 semaine avec l’interpréteur)

  44. Colette(Carlos Castro) • Environnement de résolution de contraintes • Conjonction, minimisation, disjonction • Puzzles, coloriages, ordonnancement, ... • 70 modules, 40 sortes, 1000 règles, 500 conditions, 60 stratégies, ... • 10^10 règles appliquées en moins de 24h • (6 mois avec l’interpréteur)

  45. Plan • Réécriture + Stratégie • Difficultés • Apports • Situation actuelle et perspectives

  46. Perspectives • Aujourd’hui : nous avons un langage • Perspective : • possibilité de plug-in • méthode d’évaluation des performances • extension du filtrage AC (A, AC0, AC1) • algorithme de tri : l1Xl2Yl3l1Yl2Xl3ifY<X

  47. Perspectives • Aujourd’hui : nous avons une implantation • Perspective : • représentation des termes • gestion mémoire • mémorisation • gestion de l’espace de recherche : backjumping, forwardjumping

  48. Perspectives • Aujourd’hui : nous avons un environnement • Perspective : • format d’échange • modularité • mise à disposition d’outils • ouverture vers l’extérieur Pretty-printer Editeur Interface Outil de Coordination Parseur Préprocesseur Interpréteur Compilateur Débogueur

  49. Perspectives • ELAN : calcul par réécriture • Perspective : construirele terme de preuve • visualiser (expliquer) • rejouer (déboguage) • communiquer (vérifier un calcul) • comprendre (stratégie interactive) • analyser (stratégie « intelligente ») puissanceetefficacité

  50. ApportsRésumé • compilateur pour la réécriture intégrant : • algorithme de compilation du filtrage syntaxique • algorithme de compilation du filtrage AC • définition d’une classe de motifs • méthode de gestion des points de choix • algorithme d’analyse du déterminisme • schémas de compilationde stratégies

More Related