Compilation de Règles de réécriture et de Stratégies non-déterministes Pierre-Etienne Moreau...

51
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

Transcript of Compilation de Règles de réécriture et de Stratégies non-déterministes Pierre-Etienne Moreau...

Page 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.

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

Page 2: 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

Page 3: 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.

3

Contexte international

• De nombreux travaux : CiME, daTac, Larch Prover, Otter,

ReDuX, Reve, RRL, Spike, ML, Caml, Clean, ... • principaux langages : terme + règle

1975 CompilateurEquational Interpreter (Chicago)

1977

1999

Interpréteur OBJ (Menlo Park)

1980 Interpréteur ASF+SDF (Amsterdam)

1985 Compilateur ELANInterpréteur ELAN (Nancy)

Interpréteur Maude

CafeOBJ Compilateur Brute

Compilateur ASF+SDF

(Ishikawa)

+ stratégie

Page 4: 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.

4

Plan

• ELAN : Réécriture + Stratégie

• Objectifs et difficultés

• Apports

• Situation actuelle et perspectives

Page 5: 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.

5

ELANMécanisme de base : réécriture

• Règle non nommée :[] fact(1) 1

• Règle conditionnelle :[] 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

Page 6: 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.

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]

2 [3,2]

3 ...

Non-confluence

Non-terminaison

Page 7: 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.

7

Stratégie

• 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

Gestion de la non confluence

Page 8: 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.

8

StratégieGestion de la non terminaison

• Ajout d’une condition :[R1] [x,y] x

[R2] [x,y] [x+1,y] if x y [1,2]

1 [2,2]

2

• Ajout d’une règle :[R1] [x,y] x

[R2] [x,y] [x+1,y]

[check] [x,y] [x,y] if x y

• Stratégie : repeat(dk(R1, check ; R2))

Page 9: 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.

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 42 3

Page 10: 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.

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 if Pair(x)

Stratégie : dk(extract) ; dc one(check)

1 2 3 4

3 échec

2 2

Page 11: 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.

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

if Pair(x)

where y:=(dk(extract)) E

if Relation(x,y)

Page 12: 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.

12

Plan

• ELAN : Réécriture + Stratégie

• Objectifs et difficultés

• Apports

• Situation actuelle et perspectives

Page 13: 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.

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

Page 14: 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.

14

Difficultés

• Gérer le double non-déterminismeproposer un mécanisme uniforme

• Gérer les interactions et intégrer les solutionsconception globale

de stratégies non-déterministes

de symboles associatifs et commutatifs

• Compiler la réécriture

En présence :

Page 15: 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.

15

Plan

• ELAN : Réécriture + Stratégie

• Objectifs et difficultés

• Apports

• Situation actuelle et perspectives

Page 16: 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.

16

Compilation dufiltrage 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)

Apports

Gestion du non-déterminisme

Filtrage syntaxique

Compilation du filtrage AC

Analyse du déterminisme

Compilation des stratégies

Implantation

Définition d’unformat d’échange

Page 17: 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.

17

Automate de filtrage

Analyse des 3 règles

f(a,g(a)) a

f(g(b),g(b)) c

f(x,g(c)) b

f

*

g

b

g

b

g

a

g

a

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))Sujet : f(g(a),g(c))

Automate de filtragenon-déterministe

Non-déterministe :• pour sélectionner un motif• pour trouver tous les motifs

Page 18: 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.

18

Automate de filtragedéterministe

Analyse des 3 règles

f(a,g(a)) a

f(g(b),g(b)) c

f(x,g(c)) b

f

*

g

b

g

b

g

a

g

a

c

c

c

g

c

*

Sujet : f(g(a),g(c))

Gräf (1991)Nedjah (1997)

Page 19: 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.

19

Automate de filtragedéterministe avec jumpNode

Analyse des 3 règles

f(a,g(a)) a

f(g(b),g(b)) c

f(x,g(c)) b

Sujet : f(g(a),g(c))

f

*

g

b

g

b

g

a

g

a

c

c

c

g

c

**

• construction incrémentale

• taille réduite

Page 20: 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.

20

Compilation dufiltrage AC

• 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

Apports

Gestion du non-déterminisme

Filtrage syntaxique

Compilation du filtrage AC

Analyse du déterminisme

Compilation des stratégies

Implantation

Définition d’unformat d’échange

Page 21: 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.

21

• 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

Problème à résoudre

• Trouver une solution au problème de filtrage AC

• 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

Page 22: 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.

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 :

calcul d’une autre solution :

x=a et z=+(f(a,g(b)), f(g(c),g(b)))

x=g(b) etz=+(f(a,a), f(g(c),g(b)))

sélection d’une autre règle : tout est à refaire !

Page 23: 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.

23

Analyse de la situation

Problème

• La construction des BG coûte cher– appel récursif du filtrage AC one-to-one– allocation dynamique de mémoire

+(f(x), *(g(y), h(z))) r(x,y,z)

+(f(a), f(b), g(c), *(g(a), h(b)), *(g(b), h(c)))

*(g(y), h(z))

*(g(a), h(b))*(g(y), h(z))

*(g(b), h(c))

Page 24: 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.

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

Page 25: 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.

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

Page 26: 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.

26

Approche many-to-one

+(z, f(a,x), g(a)) r1

+(f(a,x), f(y,g(b))) r2

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

+( f(a,x), f(y,g(b)), g(a) )

+(f(a,a), f(a,g(b)), f(g(c),g(b)), g(a))

+( f(a,x), f(y,g(b)), g(a) )

regroupement des sous termes

Page 27: 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.

27

Approche many-to-one

+(z, f(a,x), g(a)) r1

+(f(a,x), f(y,g(b))) r2

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 :

+( f(a,x), f(y,g(b)) , g(a) )

+(f(a,a), f(a,g(b)), f(g(c),g(b)), g(a))

+( f(a,x), f(y,g(b)), g(a) )

extraction d’un autre BG

Page 28: 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.

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

Page 29: 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.

29

Résultats expérimentaux

• Bool3 : peu de règles mais des gros termesx + 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

Page 30: 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.

30

Résultats expérimentaux

Requête : and(a1,…,a6) = not(or(not(a1),…,not(a6)))

CiME : >24hOBJ : >24hOTTER : >10mn (plus de mémoire)ReDuX : 20mnRRL : >4h (plus de mémoire)Spike : >24hBrute : 2.25 secMaude : 0.153 secELAN : 0.332 sec

Page 31: 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.

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

Page 32: 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.

32

Résultats expérimentaux

• Somme : règles conditionnellesx faux

x S set(y) vrai if x = y

x S faux

[S1 set(x), S2, y] erreur if x S2

[S1 set(x), S2, y] [S1, S2 set(x), x+y]

if x S2

Page 33: 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.

33

Résultats expérimentaux

Requête : [ set(1) … set(100), , 0]

OBJ : >24h

Spike : >24h

Brute : 6.247 sec

Maude : 16.774 sec

ELAN : 1.326 sec

Résultat : [, set(1) … set(100), 5050]

Page 34: 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.

34

Gestion des points de choix en C

• Ajout de 2 primitives :– setChoicePoint (setjmp)– fail (longjmp)

Apports

Gestion du non-déterminisme

Filtrage syntaxique

Compilation du filtrage AC

Analyse du déterminisme

Compilation des stratégies

Implantation

Définition d’unformat d’échange

.eln Compilateur C

Support

Backtrack

Page 35: 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.

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

Page 36: 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.

36

Compilation desStratégies

Apports

Gestion du non-déterminisme

Filtrage syntaxique

Compilation du filtrage AC

Analyse du déterminisme

Compilation des stratégies

Implantation

Définition d’unformat d’échange

dk(S1, S2)résultat

résultat

résultat

fin

XX

XS2

S1

dc one(S1, S2)résultat

fin

XXS1

dk(S1, S2) ; S3résultat intermédiaire

fin

XX

XS2

S1S3

échec

résultat intermédiaire S3

résultat

résultat intermédiaire S3

échec

Page 37: 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.

37

Analyse du déterminisme

• 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

Apports

Gestion du non-déterminisme

Filtrage syntaxique

Compilation du filtrage AC

Analyse du déterminisme

Compilation des stratégies

Implantation

Définition d’unformat d’échange

Page 38: 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.

38

AlgorithmeRésumé

• Analyse des règles[] x E E if P(x)

[] x E E f(x) if not(P(x))

points de choix

pas de point 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égiesrepeat(dc one(S))

Page 39: 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.

39

Impact sur le code généré

• Contrôle géré par des sauts (goto)

• Amélioration des schémas de compilation :

ss

s

ss

s

ss

s

s s s

Stratégie repeat(S)

cas déterministecas non-déterministe

• Moins de points de choix

Page 40: 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.

40

Impact surla pose de points de choix

0

20

40

60

80

100

120

Complétion KB Minela Nqueens Fibonacci

Sans analyse Avec analyse

Page 41: 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.

41

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

0

20

40

60

80

100

120

Complétion KB Minela Nqueens Fibonacci

Sans analyse Avec analyse

Page 42: 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.

42

Implantation

• 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

Apports

Gestion du non-déterminisme

Filtrage syntaxique

Compilation du filtrage AC

Analyse du déterminisme

Compilation des stratégies

Implantation

Définition d’unformat d’échange

Page 43: 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.

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)

Page 44: 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.

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)

Page 45: 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.

45

Plan

• Réécriture + Stratégie

• Difficultés

• Apports

• Situation actuelle et perspectives

Page 46: 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.

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 : l1 X l2 Y l3 l1 Y l2 X l3 if Y<X

Page 47: 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.

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

Page 48: 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.

48

Perspectives

• Perspective :– format d’échange– modularité– mise à disposition

d’outils– ouverture vers l’extérieur

Pretty-printer Editeur Interface

ParseurOutil de

CoordinationPréprocesseur

Interpréteur Compilateur Débogueur

• Aujourd’hui : nous avons un environnement

Page 49: 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.

49

Perspectives

• ELAN : calcul par réécriture

• Perspective : construire le terme de preuve– visualiser (expliquer)– rejouer (déboguage)– communiquer (vérifier un calcul)– comprendre (stratégie interactive)– analyser (stratégie « intelligente »)

puissance et efficacité

Page 50: 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.

50

ApportsRésumé

• compilateur pour la réécriture

intégrant :

• algorithme de compilation du filtrage syntaxique

• définition d’une classe de motifs

• algorithme de compilation du filtrage AC

• méthode de gestion des points de choix

• algorithme d’analyse du déterminisme

• schémas de compilation de stratégies

Page 51: 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.

51

Résultats expérimentauxRésumé

• Interpréteur : 10 à 200.000 réécritures/sec

• Compilateur : 30.000 à 20.000.000 rééc/sec

• plus de 10^10 règles appliquées en 24h

• 1 min. de calcul = 3h20 avec un interpréteur

• 1 jour de calcul = 6 mois

• 3 années de travail