• Aucun résultat trouvé

Les règles du calcul

Dans le document Réécriture et compilation de confiance (Page 110-113)

4. Structure de données sûre 65

4.5. Interactions avec Tom

4.5.5. Les règles du calcul

}

Fig.4.14: Lehook pour l’opérateurconcSeq

ture. Cehook utilise‘concPar(L*,l*)pour effectuer un appel récursif à la fonction de

création (utilisant la construction de Tom, présentée en section 2.2.4). Il utilise aussi

l’appel à la fonctionrealMake, qui correspond à l’opération de construction originale.

Le calcul des structures vérifie aussi les lois de De Morgan pour la négation. On peut

donc aussi écrire unhook pour l’opérateur de négationneg, qui applique les lois de De

Morgan de manière similaire auhook de l’exemple 22. L’application de ce hook garantit

que dans les structures manipulées seuls les atomes peuvent être en position négative.

Cela simplifie l’application des règles de déduction, en supprimant le besoin de propager

les négations.

4.5.5. Les règles du calcul

Une fois la structure de données définie, ainsi que ses invariants, il est possible de

définir les règles du calcul elles-même comme des règles de réécriture sur ces objets

dans un programmeTom. Ces règles sont appliquées de manière répétée sur la structure

d’entrée du prouveur, calculant tous les successeurs jusqu’à l’obtention dubutà atteindre

(en général, l’unité◦).

Ces règles sont exprimées en utilisant le filtrage de Tom sur la structure de données

générée parGom. Elle sont assez simples, car la relation d’équivalence sur les structures

est intégrée dans la structure de données par l’intermédiaire des invariants. Cependant,

afin d’obtenir un prouveur efficace, il est nécessaire d’imposer certaines restrictions sur

l’application des règles, prenant en compte l’intégration de la relation d’équivalence au

sein même de la structure de données. Ces restrictions, ainsi que la preuve d’équivalence

du système obtenu vis-à-vis du systèmeBVoriginal sont le résultat d’un travail commun

avec Ozan Kahramanoğulları [KMR05a].

Définition 27 (Équivalence). Deux systèmes S et S

0

sont équivalents si pour chaque

preuve d’une structure T dans le système S, il existe une preuve de T dans le système

S

0

, et vice versa.

L’élaboration du nouveau système de règles pour le calcul des structures, qui prend

en compte les invariants de la structure de données, et permet de réduire le

non-déterminisme du calcul, se fait par raffinements successifs du système original, en

prou-vant l’équivalence du système raffiné avec le système qu’il raffine.

4.5. Interactions avecTom

concCop:make_insert(e,l) {

%match(Struc e) {

o() -> { return l; }

cop(concCop(L*)) -> { return ‘concCop(L*,l*); }

}

%match(StrucCop l) {

concCop(head,tail*) -> {

if (0 < e.compareTo(‘head)) {

return ‘realMake(head,concCop(e,tail*));

}

}

}

}

concPar:make_insert(e,l) {

%match(Struc e) {

o() -> { return l; }

par(concPar(L*)) -> { return ‘concPar(L*,l*); }

}

%match(StrucPar l) {

concPar(head,tail*) -> {

if(0 < e.compareTo(‘tail)) {

return ‘realMake(head,concPar(e,tail*));

}

}

}

}

Fig. 4.15: Leshooks pour les opérateursconcPar etconcCop

On supprime tout d’abord les équations de la relation d’équivalence concernant les

unités. Le système obtenu s’applique aux structures en forme normale par rapport au

système correspondant à l’orientation des règles concernant la négation et l’unité de la

figure 4.10 de la gauche vers la droite. On se donne aussi une restriction sur ces règles, qui

correspond à limiter le non-déterminisme introduit par la commutativité des structures

par etcopar, en rendant l’application des règles setq↓ « paresseuse » : la structure W

dans les règles de la figure 4.16 ne peut pas être une vraie structure par. C’est donc un

atome, ou une structure copar ou seq. Ceci définit alors le systèmeBVul

4

.

Propriété 6. Les systèmes BV et BVulsont équivalents.

Démonstration. Le systèmeBVest équivalent au systèmeBVuldans lequel on supprime

la restriction sur la forme des structures W, car les règles d’inférence du système BVul

[a, a] ax

S([R, W], T)

S[(R, T), W] s

1

S{R}

S[R,[a, a]] ai

1

S{R}

S(R,[a, a]) ai

2

S{R}

ShR; [a, a]i ai

3

S{R}

Sh[a, a];Ri ai

4

Sh[R, T]; [U, V]i

S[hR;Ui,hT;Vi] q

1

ShR;Ti

S[R, T] q

2

Sh[W, T];Ui

S[W,hT;Ui] q

3

ShT; [W, U]i

S[W,hT;Ui] q

4

Fig.4.16: Le système BVul

autorisent l’unité◦ à être totalement supprimé du langage des structures BV. On peut

alors simuler chacune des règles d’inférence d’un système dans l’autre.

En ajoutant la restriction surW, qui ne peut pas être unevraie structure par, on doit

montrer que lorsqueW est unevrai structure par, une dérivation équivalente à celle qui

a lieu sans la restriction est possible dans le système BVul. Le cas de la règle q

4

↓ est

analogue au cas de la règleq

3

↓, on donne donc les dérivations pours

1

etq

3

↓ :

S([R, T, V], U)

S[([R, U], T), V] s

1

S[[(R, T), U], V] s

1

S[(R, T),[U, V]] =

Sh[R, V, T];Ui

S[R,h[V, T];Ui] q

3

S[R,[V,hT;Ui]] q

3

S[[R, V],hT;Ui] =

On doit alors supprimer les équations de la commutativité des structurespar etcopar,

afin d’obtenir un système de déduction manipulant uniquement des représentants

cano-niques. On va aussi introduire une restriction sur l’application des règles permettant de

réduire le non-déterminisme lors de la recherche de preuve, en évitant de développer les

branches non prouvables lorsqu’il est facile de les identifier. On utilisera pour exprimer

ces restrictions la notion l’ensemble d’atomes d’une structure.

Définition 28 (Atomes). Soit une structure S. La notation atS représente l’ensemble

de tous les atomes apparaissant dansS.

Définition 29 (Restrictions). Le système de la figure 4.17, appelé système BVci. Les

équations de la commutativité et de l’unité ne s’appliquent pas aux objets de ce système.

De plus, on impose les restrictions suivantes sur l’application des règles :

– dans les règles s

11a

,s

12a

, s

13a

, s

14a

, s

11b

, s

12b

, s

13b

, s

14b

on a atR ∩ atW 6=∅;

– dans les règles s

15a

,s

16a

, s

15b

, s

16b

on a at(R, U) ∩ atW 6=∅;

– dans les règles q

11

, q

12

on a atR ∩ atT 6=∅ etatU ∩ atV 6=∅;

– dans les règles q

31

, q

32

,q

33

, q

34

on a atW ∩ atT 6=∅;

4.5. Interactions avecTom

Cette limitation permet de n’appliquer ces règles d’inférence que si la structure résultante

présente des possibilités d’interaction, et donc potentiellement peut permettre d’atteindre

le résultat.

Théorème 4. Les systèmes BV et BVci sont équivalents.

Démonstration. Les règles d’inférence du système BVci sont des instances du système

BV. La preuve de l’autre direction se fait par analyse de cas sur l’application des règles

d’inférence du système BVul avec commutativité [KMR05a]. L’équivalence du système

BVci avec contraintes et du système BV découle alors des résultats présentés par Ozan

Kahramanoğulları [Kah06].

Le système BVci est alors utilisable comme base pour l’implantation d’un prouveur

dans le système BVdu calcul des structures, en utilisant une structure de données

four-nissant des représentants canoniques pour les classes d’équivalence des structures. en

utilisant la construction %matchdeTom, l’implantation de ces règles est la traduction

directe des règles d’inférence dans le langage défini par la signature algébrique, en

omet-tant le contexte. Les restrictions sur l’application des règles sont implantées en utilisant

des fonctions auxiliaires Java, ce qui permet une écriture efficace et concise.

Dans le document Réécriture et compilation de confiance (Page 110-113)