• Aucun résultat trouvé

Maintenant, nous devons montrer que ce codage est correct et complet par rapport à notre problème de départ, c’est-à-dire que les solutions du problème SAT correspondent à des plans du problème de planification. Il s’agit essentiellement de la même preuve que celle qui est présentée par Armando et Compagna dans [21], et qui est la première preuve de correction pour ce codage. Cependant, l’un des avantages du graphe de planification est qu’il permet de mettre en parallèle de nombreuses règles, et en particulier d’aller bien au-delà du cas très simple des règles r avec Del(r) = ∅. L’inconvénient est qu’une solution de la formule SAT peut donc correspondre à un chemin de longueur plus grande que k, et nous nous contenterons donc de démontrer que l’existence d’une solution du problème SAT correspond toujours à une solution du problème de planification. Commençons par démontrer le résultat pour une seule étape. Pour l’énoncer clairement, étant donné un système de planification borné Π, un entier k et (F, R, A, M ) = PGk(Π), pour chaque ensemble S ⊆ Fi on définit varsi(S) = {ni | node(n) ∈ S}, et, réciproquement, pour chaque valuation v on définit factsi(v) = {node(f ) | v(fi) = 1} et rulesi(v) = {node(r) | v(ri) = 1}. Par extension, on dira qu’on a un chemin Si

r

→ Si+1 avec Si, Si+1 ⊆ F si on a un chemin entre les états correspondants dans le système Π.

Lemme 4.4. Soient Π un système de planification et i, k deux entiers tels que 16 i 6 k. Soient Ξ = Ξi(PGk(Π)) et Si−1 ⊆ Fi−1 un ensemble de nœuds. S’il existe un modèle v de la formule Ξ ∧ (V

x∈varsSATi−1(Si−1)x) tel que factsi−1(v) = Si−1 alors il existe un pas Si−1 p

→ factsi(v) où rulesi(v) = p.

Démonstration. Posons (F, R, A, M ) = PG(Π). Dans cette preuve, nous dirons qu’un ensemble E de nœuds est sans mutex dans Misi n←−−−−→mutex ?pm /∈ Mipour tout n, m ∈ E et tout ? ∈ {+, ∞} ∪ N. Considérons l’ensemble de nœuds rulesi(v). Comme il ne contient que des nœuds correspondants à des règles, appelons Ei⊆ Ri cet ensemble de règles. D’après la formule Ξmutex

i (PGk(Π)), Ei est sans mutex dans Ai.

D’après les étapes 8 et 11 du calcul de LΠ, on en déduit que pour r, r0∈ Ei, on avait Add(r) ∩ Del(r0) = ∅, Pre(r) ∩ Del(r0) = ∅, et réciproquement.

Par ailleurs, par factsi−1(v) = Si−1, seules les variables de vars(Si−1) s’évaluent à 1 par v à l’itération i − 1. Donc par Ξprei (F, R, A, M ) et l’étape 7 du calcul de Li

Π, pour chaque r ∈ Ei, Pre(r) ⊆ Si−1.

Comme les règles de Ei ne suppriment pas mutuellement leurs préconditions, et comme toutes les préconditions sont vraies dans Si−1, on peut montrer facilement par récurrence qu’elles s’ap-pliquent dans n’importe quel ordre à partir de Si−1 et comme elles n’effacent pas mutuellement

leurs ajouts, toutes les séquences parviennent au même résultat final Si= (Si−1r (∪r∈EiDel(r))) ∪ (∪r∈EiAdd(r))

La formule Ξaddi (F, R, A, M ) garantit que ∪r∈EiAdd(r) ⊆ factsi(v). La formule Ξ+i (F, R, A, M ) impose que factsi(v) ⊆ Si−1∪ (∪r∈EiAdd(r)) et Ξi(F, R, A, M ) donne Si−1r (∪r∈Rir) ⊆ factsi(v). Enfin, la formule Ξdel

i (F, R, A, M ) fournit ∪r∈EiDel(r) ∩ factsi(v) = ∅, ce qui nous permet de conclure que

factsi(v) = (Si−1r (∪r∈EiDel(r))) ∪ (∪r∈EiAdd(r)) = Si Ce qui conclut la preuve du lemme.

Nous pouvons maintenant démontrer le théorème principal de ce chapitre. Il nous autorise d’une part à ne pas écrire la formule SAT lorsque notre objectif Θ n’apparaît pas dans le graphe de planification, et d’autre part à traduire le problème de planification en formule SAT quand c’est nécessaire.

Théorème 4.1. Soient hΠ, Θi un problème de planification et k un entier. Soit (F, R, A, M ) = PGk(Π).

— Si Θ 6⊆ F , alors hΠ, Θi n’admet pas de solution de longueur ` avec `6 k. — Si Θ ⊆ F , et s’il existe un modèle de Ξ = Ξk(Π, Θ), alors hΠ, Θi admet un plan. — S’il existe un plan de longueur au plus k de Θ dans Π, alors il existe un modèle de Ξ. Démonstration. Il est clair que si Θ 6⊆ F , hΠ, Θi n’admet pas de solution d’après la proposition 4.1. Supposons donc que Θ ⊆ F . Dans ce cas, la formule Ξ est bien définie.

Montrons d’abord que s’il existe un modèle de Ξ, alors hΠ, Θi admet un plan. Comme F0 ne contient que I, ΞI garantit que tout modèle v de Ξ vérifie facts0(v) = F0 = I. ΞΘ garantit que Θ ⊆ factsk(v). Le lemme 4.4 appliqué inductivement (k fois) nous permet de conclure directement qu’il existe un plan de Θ dans Π.

Considérons maintenant le plan I = S0 c1

−→ S1. . . ck

−→ Sk avec Θ ⊆ Sk et démontrons qu’il existe un modèle v de Ξ. D’après la proposition 4.1, ∪06i6kSi ⊆ F et ∪16i6kci⊆ R.

On pose v le modèle v(fi) = 1 si node(f ) ∈ Si; v(ri) = 1 si node(r) ∈ ci et v(n) = 0 sinon. Nous allons montrer que v est une solution. Procédons par récurrence sur j6 k, et montrons que v est une solution de la formule pour toutes les variables jusqu’à l’étape j, c’est-à-dire que v est un modèle de Ξj = ΞI∧ (V

16i6jΞi(F, R, A)).

Si j = 0, v est une solution de ΞI par définition de v. Supposons que v soit une solution de Ξj. Il faut montrer que v est une solution de Ξj+1(F, R, A). Comme v est une solution de Ξj, il n’y a pas de mutex à l’étape j entre les éléments de Sj d’après la formule Ξmutexj (F, R, A).

On a Sj+1 = (Sj∪ Add(cj+1)) r Del(cj+1). Comme rulesj+1(v) = ci et factsj+1(v) = Sj+1, v satisfait la formule Ξaddj+1(F, R, A) ∧ Ξaddj+1(F, R, A). Pre(ci) ⊆ Sjpermet de satisfaire aussi la formule Ξprej+1(F, R, A). Comme (Sjr Del(cj+1)) ⊆ Sj+1, v est un modèle de la formule Ξj+1(F, R, A) ; et comme Sj+1r Add(cj+1) ⊆ Sj, v est aussi un modèle de Ξ+j+1(F, R, A) et Ξ?

j+1(F, R, A).

Il reste à démontrer qu’il n’y a pas de mutex entre les nœuds représentant cj+1 ni entre ceux représentants Sj+1. Comme v était une solution de Ξj, il n’y avait pas de mutex entre les faits de Sj. Donc il n’y en a pas eu de propagées aux éléments de cj+1 par l’étape 9 du calcul de LΠ (ou alors elles ont déjà été interrompues à l’étape 9 du calcul de LΠ) . Comme cj+1 est soit un singleton, soit un ensemble de règles avec Del(cj+1) = ∅, aucune mutex n’a pas être créé entre les règles de cj+1à l’étape 8 du calcul de LΠ. De plus, notons

Comme Pre(nop(f )) ∩ Del(cj+1) = ∅ pour f ∈ Sj+1∩ Sj, il n’y a pas de mutex entre les règles de c0j+1. Il n’y a pas non plus de mutex dans les faits de Sj+1 car elles n’ont pas pu être propagées à l’étape 10 du calcul de LΠ.

Ainsi, v satisfait Ξmutex

j+1 . Ainsi, v est un modèle de ΞI∧ (V

16i6j+1Ξi(F, R, A)), ce qui clôt la récurrence.

Comme factsk(v) = Sk et Θ ⊆ Sk, v est un modèle de ΞΘ. Donc v est un modèle de Ξ et le théorème est démontré.

4.6 Conclusion

Dans ce chapitre, j’ai présenté les systèmes de planification et une adaptation de l’algorithme du graphe de planification, afin de réduire la taille qu’il occupe en mémoire. Cet algorithme permet de résoudre ces problèmes en s’appuyant sur la résolution de formules SAT. Le théorème 4.1 démontre que l’algorithme calcule tous les états accessibles et que le codage SAT permet de trouver toutes les attaques.

Nous utilisons le graphe de planification de la même manière qu’Armando et Compagna, c’est-à-dire à la fois comme un filtre (si le graphe ne contient pas les objectifs, ces objectifs ne sont pas accessibles) et comme un guide pour le codage SAT. Cependant, chez Armando et Compagna, le typage du protocole étudié suffit à garantir la finitude de l’espace de recherche et donc du problème de planification associé. La notion de problème borné leur est inutile, et à notre connaissance elle est nouvelle.

Une piste d’amélioration envisageable consisterait à adapter des méthodes de planification plus récentes proposées par Rintanen, Heljanko et Niemelä (voir [92]). En particulier, l’efficacité peut être améliorée en renonçant à construire une formule SAT minimale à travers plus d’appels au solveur SAT. Toutefois la traduction, présentée dans le chapitre suivant, de l’équivalence de protocoles vers les problèmes de planification utilise un système de planification théoriquement infini, et l’algorithme du graphe de planification sert également à en extraire un sous-domaine fini sur lequel la traduction est possible. Il n’est pas clair que les algorithmes de Rintanen, Heljanko et Niemelä puissent remplir ce rôle.

Dans le chapitre suivant, nous ferons le lien avec l’équivalence, que nous coderons comme un problème d’accessibilité dans le graphe de planification, grâce à l’hypothèse de déterminisme. En particulier, nous devrons expliciter l’oracle pour démontrer que nous arrivons à un problème borné. Dans le dernier chapitre, nous démontrerons l’efficacité de cette approche.

5 Équivalence de protocoles et

planification

Les chapitres 2 et 3 ont permis de minimiser l’ensemble de traces à considérer. Les problèmes de planification ont été présentés au chapitre 4. Le présent chapitre représente donc la clef de voute de la démarche : il s’agit de traduire le problème de l’équivalence de trace sous forme de problème de planification. Ces travaux s’inspirent notamment de l’approche théorique de SATMC [21], qui présente une procédure analogue pour les propriétés d’accessibilité. Cependant, les travaux exposés ici atteignent un niveau de complexité plus élevé.

En effet, le cas de l’équivalence est bien plus délicat que celui des propriétés de trace. En particulier, nous devons considérer deux protocoles, mais les contraintes de typage ne portent que sur l’un d’entre eux. Il s’agit donc de contrôler indirectement l’autre protocole. De plus, les règles doivent modéliser le comportement des protocoles, mais doivent également permettre de rendre compte des échecs d’exécution qui peuvent procurer un témoin. Autrement dit, la difficulté consiste à formuler l’équivalence de protocoles en termes d’accessibilité dans un système de planification.

La section 5.1 expose les hypothèses qui seront nécessaires dans ce chapitre. En particulier, la signature est fixée pour permettre des optimisations précises. La section 5.2 présente alors la traduction pour l’attaquant passif, en commençant par démontrer une version optimisée de l’équivalence statique. Il s’agit ensuite de donner des règles de planification pour représenter le pouvoir de déduction de l’attaquant. Il devient alors possible de présenter la traduction pour l’attaquant actif dans la section 5.3. Le théorème principal de ce chapitre énonce alors que deux protocoles ne sont pas en inclusion de trace si et seulement si il existe un plan dans le système de planification correspondant. Une borne fine sur la longueur des plans est également énoncée. La section 5.4 aborde les aspects de l’algorithme du graphe de planification qui ont été laissés de côté dans le chapitre précédent. D’une part, nous définissons un oracle de planification, qui permet de démontrer que le système de planification est borné. D’autre part, nous discutons de la nécessité de la borne sur la longueur des plans pour obtenir la terminaison, en donnant des exemples pour lesquels la saturation ne suffit pas.