46
1 E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA Vérification de systèmes matériels avec les DDD Systèmes spécifiés à un haut niveau d’abstraction DDD : Structure de données exploitant le partage et la hiérarchie Emmanuelle Encrenaz-Tiphène Maître de Conférences à l’Université Paris VI – LIP6 En délégation CNRS au Laboratoire Spécification et Vérification (LSV) ENS-Cachan En collaboration avec Vincent Beaudenon

Vérification de systèmes matériels avec les DDD

  • Upload
    kuri

  • View
    21

  • Download
    0

Embed Size (px)

DESCRIPTION

Vérification de systèmes matériels avec les DDD. Systèmes spécifiés à un haut niveau d’abstraction DDD : Structure de données exploitant le partage et la hiérarchie. Emmanuelle Encrenaz-Tiphène Maître de Conférences à l’Université Paris VI – LIP6 - PowerPoint PPT Presentation

Citation preview

Page 1: Vérification de systèmes matériels avec les DDD

1E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Vérification de systèmes matérielsavec les DDD

Systèmes spécifiés à un haut niveau d’abstraction

DDD : Structure de données exploitant le partage et la hiérarchie

Emmanuelle Encrenaz-Tiphène

Maître de Conférences à l’Université Paris VI – LIP6

En délégation CNRS au Laboratoire Spécification et Vérification (LSV) ENS-Cachan

En collaboration avec Vincent Beaudenon

Page 2: Vérification de systèmes matériels avec les DDD

2E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Préambule – Hardware / Software Codesign

• Application : réseau de tâches communicantes – liens privés avec bufferisation (réseaux de Khan)– particularisation : données entières – buffers bornés – sélection

• Exploration architecturale (différentes possibilités d’implantation des tâches)

• Implantation matérielle (synthèse de haut niveau / synthèse des communications)

• Chaîne de conception Disydent [Pétrot Augé et al, 03]

Page 3: Vérification de systèmes matériels avec les DDD

3E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Vérification fonctionnelle de systèmes matériels

• Simulations presque uniquement

• Equivalence-Checking pour des blocs combinatoires / RTL• Symbolic Model-Checking pour des petits blocs (10 KG)• Méthodes « semi-formelles » prennent le pas sur SMC

– LTL sur séquences bornées moniteurs incorporés dans la simulation

– CTL à profondeur bornée déroulement explicite de l’arbre d’exécution

• Démonstrations assistées (architectures spécifiques : cœurs de processeurs / traitement du signal)

Page 4: Vérification de systèmes matériels avec les DDD

4E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Notre objectif

• Construire un Model-Checker Symbolique pour des systèmes décrits sous forme de graphe de tâches.

• Représentation symbolique d’ensembles d’états du système + opérations ensemblistes (, , )– Données entières / structurées– Canaux de taille variable

• Opérateurs Post et Pré sur la représentation symbolique de l’ensemble des états, associés à la sémantique des actions du graphe de tâches.

Page 5: Vérification de systèmes matériels avec les DDD

5E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Plan de l’exposé

• Modélisation de systèmes dans un sous-ensemble de ProMeLa

• Représentation symbolique : Structure de donnée DDD – Représentation des ensembles d’états

– Opérations ensemblistes

– Homomorphismes

– Homomorphismes pour instructions ProMeLa

– Introduction de la hiérarchie

• Application à la vérification de propriétés CTL– Exemples classiques

– Réseau VCI-SPIN

• Conclusion

Page 6: Vérification de systèmes matériels avec les DDD

6E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

La plate-forme de vérification ProMeLa-SPIN

• Langage ProMeLa : description d’applications concurrentes, dynamiques, asynchrones, communication par buffers bornés et variables partagées

• Vérification de propriétés de sûreté et de vivacité par exploration du graphe des états accessibles– Représentation explicite des états– Réduction de l’espace à analyser (techniques d’ordre partiel /

compactage)

• Applicable pour des systèmes "séquentiels" comportant 106 à 107 états

[G. Holzmann 97]

Page 7: Vérification de systèmes matériels avec les DDD

7E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Un sous-ensemble de ProMeLa

• Variables globales – Types scalaires (basés sur entier) / Type produit– Tableaux– Canaux (bornés)

• Processus concurrents– Variables locales– Instructions gardées (affectations, lecture / écriture) – Choix indéterministe– Répétition indéterministe

• Pas d’instanciation dynamique de processus (run est exclu)• Les processus n’ont pas de paramètres

Page 8: Vérification de systèmes matériels avec les DDD

8E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Exemple de description

proctype proc_port_in0_0(){ MOT mess; bit reserve; bit current_clock=0;

mtype sortie_down; bit jeton = 1;

do :: (clock == current_clock) -> current_clock = !current_clock;

x0_d0_spin_data_in?mess-> if :: (((mess.addest >> level_num0_0) & 3) == level_id0_0) -> /* Traitement des ports DOWN. */ sortie_down = (mess.addest >> (level_num0_0-1)) & 1;

if :: (sortie_down == 0) -> poss_out0_0?jeton; do :: x0_d0_spin_data_out!mess; if :: mess.tag == FIN -> atomic{poss_out0_0!jeton; goto SUITE_DOWN;} :: else -> x0_d0_spin_data_in?mess; fi;…

}

variables locales

garde

affectation

lecture dans un canal

écriture dans un canal

Page 9: Vérification de systèmes matériels avec les DDD

9E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Représentation symbolique d’états

Diagrammes de Décision de Données (DDD)

Structure de donnée pour représenter les ensembles d’états.(LIP6 / LaBRI ): arbres partagés.

• projet Clovis [DGA 01]• Application aux réseaux de Petri étendus [ATPN 02] [FORTE 04] [FORTE 05]

• Variables décisionnelles de type fini• Représentation des chemins menant à 1 ou T• Exploitation du partage des sous-arbres isomorphes• Opérations ensemblistes : parcours attelé des 2 DDD (polynômial) • Modification « la plus locale possible » : homomorphisme

Page 10: Vérification de systèmes matériels avec les DDD

10E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

DDD : Structure

• Nœuds : variables• Arcs : valeur dans les entiers• Contrainte: un seul arc d’une étiquette donnée en sortie d’un nœud

Interprétation : ensemble de mots (affectations) menant au nœud 1Efficacité : partage

a

b c

c

1

11

1 2

1 2 1

1

a

b

c

1

12

1

2

1

partage

Page 11: Vérification de systèmes matériels avec les DDD

11E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

DDD : Normalisation

• Les chemins invalides ne sont pas représentés • Conséquence : domaine des variables inconnu a priori• Représentation de l’ensemble vide nœud terminal 0

Représentation canonique des DDD (classe d’équivalence)

a

b c

c

1

11

1 2

1 2 1

1

a

b

c

1

12

1

2

1

normalisation

0

0

0

0

partage

Page 12: Vérification de systèmes matériels avec les DDD

12E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

DDD : Opérations ensemblistes (1)

Un DDD est un ensemble de mots : Opérations ensemblistes + * \

Exemple :

A

A * B

B

a a

1

bb

c

2,3 4

1 2,6

3,4

1

bb

c

1,3 2,4

1 6

3

c

2

4

A*B

1

a

bb

c

3 4

1 6

3

c

4

Page 13: Vérification de systèmes matériels avec les DDD

13E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

DDD : Opérations ensemblistes (2)

Un DDD est un ensemble de mots : Opération de concaténation .

Exemple :

A

A . B

...

v0

1

...

v1

1

...

v0

...

v1

1B

Page 14: Vérification de systèmes matériels avec les DDD

14E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

DDD : Homomorphisme

• Définition : d, d’ deux DDD bien définisUn homomorphisme est une fonction telle que :

(0) = 0 (d) + (d’) = (d + d’)

réunionréunion

1

d d’

1

d d’

Page 15: Vérification de systèmes matériels avec les DDD

15E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Homomorphismes inductifs

Homomorphisme défini localement

(0) = 0(1) = constante(d) = définition locale à la racine de d et ses valuations

Exemple : affectation d’une valeur constante var=val

e

x….

e

val….

val

Si e == var

e

….

…. Sinon

var=val

var=val var=val

Page 16: Vérification de systèmes matériels avec les DDD

16E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

SetCst(var,val) (1) = T (une erreur)

e — Id si e == var

SetCst(var,val) (e,x) =

e — SetCst(var,val) sinon

Homomorphismes inductifs

val

x

Affectation v1 = Constante

Page 17: Vérification de systèmes matériels avec les DDD

17E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Autres homomorphismes inductifs

• SetVar (v1,v2)

• SetVarExpr (var, expr)

• SelVarCst (var, const)

• SelExp (expr)

• …

Page 18: Vérification de systèmes matériels avec les DDD

18E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

DDD pour les programmes ProMeLa

Instruction ProMeLa = construction de deux homomorphismes

Post: calcule les successeurs par l’application d’une instruction

Pré : calcule les prédécesseurs potentiels résultants de l’exécution d’une instruction

Un état du programme :• variables globales• chaque processus en cours d’exécution

• son compteur ordinal• ses variables locales

Etat initial = concaténation de toutes les variables dans un ordre figé

Page 19: Vérification de systèmes matériels avec les DDD

19E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Homomorphismes inductifs Promela-DDD

• Affectation gardée1. exp_g -> x := 5;2. …

• Indéterminisme1. if :: exp_g1 -> (2.) … :: exp_g2 -> (3.) … fi;4. …

• Ecriture dans un canal1. c!x2. …

SetCst(pc,2) o SetCst(x,5) o SelExp(pc==1 exp_g)

SetCst(pc,2) o SelExp(pc==1 exp_g1) +SetCst(pc,3) o SelExp(pc==1 exp_g2)

SetCst(pc,2) o SetVarFifo(c,x) o SelCst(pc==1)

Page 20: Vérification de systèmes matériels avec les DDD

20E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Calcul de l’ensemble des états accessibles

New = Init;Reached = ;While New loop

tmp = NewForall process p loop

Forall instruction i loop

To = Postp,i(tmp);tmp = To + tmp;

EndloopEndloopNew = tmp \ reachedReached = tmp + reached

EndloopReturn Reached

Page 21: Vérification de systèmes matériels avec les DDD

21E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Evaluation de formules CTL

Opérateur Pré :

Pb : Toutes les opérations ne sont pas inversibles : x = 4;

Approche classique (2 à 3 passes) :

• élargissement à toutes les valeurs possibles, puis

• restriction aux états accessibles

Opérateur ad-hoc en 1 passe

Evaluation de "EF p"

Page 22: Vérification de systèmes matériels avec les DDD

22E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Comparaison avec les BDD

• Opérateurs Postp,i et Prép,i implantés sur la bibliothèque BuDDy [Lind-Nielsen, Reif Andersen CAV 99]– Représentation des opérations arithmétiques sur des vecteurs de bits

– Domaine des variables déterminé a priori (type déclaré)

• Traitements pour réaliser Postp,i(E) si i décrit x = y– Un seul jeu de variable

– Abstraction de x dans E : E|x

– Construction de G = (x y) = (x y) ( x y)

– Contrainte de E|x par G : E|x G

Page 23: Vérification de systèmes matériels avec les DDD

23E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Résultats sur exemples classiques (DDD plats)

• Dichotomie méthode énumérative / méthode symbolique

– Systèmes fortement séquentiels jusqu’à 106 ou 107 états : SPIN donne de meilleurs résultats. (sliding window, Peterson, Bakery)

– Systèmes fortement concurrents jusqu’à 1010 états (au delà si très réguliers) : BDD et DDD donnent de meilleurs résultats. (Philosophes, élection sur anneau)

• BDD vs DDD

– BDD avec réordonnancement dynamique et DDD statique sont comparables.

– Lorsqu’un « bon ordre » peut être exploité, les DDD statiques présentent de meilleures performances que BDD ou DDD ordre qcq.

– Limitations des DDD : ordre / gestion des expressions / longueur des chemins

Page 24: Vérification de systèmes matériels avec les DDD

24E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Introduction de la hiérarchie dans les DDD (1)

HDD : Les valuations des arcs sont des DDD

c

d

1 2

2 3 2 3

4 5 4 5

2 11

a

b b

c c c

d

2

c

d

1

3

4 5

2 11

a

b

c

d 1

1

i

DDD HDD

Page 25: Vérification de systèmes matériels avec les DDD

25E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Introduction de la hiérarchie dans les DDD (2)

• Les HDD sont des DDD qui bénéficient :– Augmentation du partage,

– Réduction de la longueur des chemins de la racine vers 1.

• Ajustement des homomorphismes– Propagation de l’homomorphisme

au nœud suivant au même niveau de la hiérarchie,

au nœud racine du DDD de niveau de hiérarchie inférieur

– Occasionnellement, nécessité d’aplanir localement la hiérarchie

Page 26: Vérification de systèmes matériels avec les DDD

26E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

HDD pour Programme ProMeLa

variable produit

variables globales

processus

variable scalaire

canal

compteur ordinal

variables locales

Lors du calcul de l’ensemble des états accessibles,réordonner le franchissement des instructions

pour saturer les couches basses du HDD

Saturation

Hiérarchisation de l’état

Page 27: Vérification de systèmes matériels avec les DDD

27E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Résultats sur exemples classiques (HDD)

• Confirment la tendance observée avec les DDD plats :

– SPIN reste meilleur sur les systèmes très séquentiels (Sliding window, Peterson, Bakery)

– HDD + saturation sont bien meilleurs que les BDD ou les DDD plats sur des systèmes très parallèles (jusqu’à 1000 philosophes, jusqu’à 100 électeurs sur l’anneau)

Page 28: Vérification de systèmes matériels avec les DDD

28E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Réseau VCI-SPIN (1)

VCI-SPIN

wrappers

SPIN

network

I3 I4 T3 T4

Apparition d’un interblocage

Page 29: Vérification de systèmes matériels avec les DDD

29E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Réseau VCI-SPIN (2)

VCI-SPIN

wrappers

SPIN

network

I3 I4 T3 T4

Evitement de l’interblocage : séparer les requêtes et réponses sur les liens descendants

Page 30: Vérification de systèmes matériels avec les DDD

30E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Vérification avec SPIN et HDD

• Modèle ProMeLa– Pour chaque routeur :

• 1 processus par port d’entrée (4)

• 1 mécanisme d’exclusivité d’accès par port de sortie (4)

– Pour chaque initiateur :• 2 processus (1 émetteur requête / 1 récepteur réponse)

– Pour chaque cible :• 1 processus

– Messages bufferisés en entrées de chaque port (buffers de taille 1)

Page 31: Vérification de systèmes matériels avec les DDD

31E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Vérification avec SPIN

• Propriété de vivacité «émetteur 0 pourra toujours émettre un nouveau message »

• Configuration à 2 routeurs, initiateurs et cibles fixés

• Synchronisation des processus

• Taille des messages fixée (1 à 7 paquets)

Vivacité, n=6 : propriété vérifiée en 36000 s et 100 MB

Accessibilité, n = 6 : construit en 512 s et 9 MB

Page 32: Vérification de systèmes matériels avec les DDD

32E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Vérification avec HDD

• Propriété de sûreté :Absence d’état puits

• Configurations à 2 et 4 routeurs, initiateurs et cibles variables

• Taille des messages variable (de 1 à 7 paquets)

Pour la configuration restreinte :Accessibilité, n=6, synchrone, 2 routeurs : 33 s, 139 MB

Pour les configurations plus libres :Accessibilité, n=1 à 7, asynchrone, 4 routeurs, config libre : 7881 s et 492 MB

ou : 519 s et 1,5 GB

Page 33: Vérification de systèmes matériels avec les DDD

33E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Conclusion

• Construction d’un model-checker pour des systèmes statiques décrits en ProMeLa

• DDD : Représentation intéressante pour les systèmes présentant un fort parallélisme– Hiérarchie– Saturation

• Analyse complémentaire à l’outil SPIN– Certains systèmes sont analysés très rapidement par SPIN et pas

de résultats avec HDD, et réciproquement– Propriétés de vivacité / de sûreté

Page 34: Vérification de systèmes matériels avec les DDD

34E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Perspectives

• Amélioration de l’algorithmique sur les HDDÉviter les applatissements locaux

• Augmenter la prise en compte de la hiérarchieDécoupage dichotomique du système

• Extension à des systèmes dynamiques

Page 35: Vérification de systèmes matériels avec les DDD

35E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Page 36: Vérification de systèmes matériels avec les DDD

36E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Résultats sur exemples classiques (DDD plats)[BET – Majestic 04]

• Calcul d’accessibilité + une propriété " AG AF but atteint « Temps de calcul (en s) / Mémoire nécessaire (en MB)

• PhilosophesSPIN BDD DDD DDD-O

15 : 2251/1067 380+1200/96 18 K+-/397 54+5/30

50: -/- -/- -/- 8006/996

• Election sur anneauSPIN BDD DDD DDD-O

6 : 262/144 5056+5394/144 34+5/11 37+3/11

10: -/- -/- 4533+-/663 716+-/77

Page 37: Vérification de systèmes matériels avec les DDD

37E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Résultats sur exemples classiques (DDD plats)

• Sliding windowSPIN BDD DDD DDD-O

2 : 0/8 552+221/102 486+142/18 662+206/173 : 29/450 65 K +63 K /332 480 K + - /565 480 K +

-/4754 : -/- -/- -/- -/-

• Exclusion PetersonSPIN BDD DDD

3 : 0/6 17+39 /93 7+4/65 : -/- 470 K + - /900 -/-

• BakerySPIN BDD DDD

4 : 0/5 50+0/94 17+0/95 : 1385/6 1231+0/93 379+5/466 : -/- -/- 61901+47/455

Page 38: Vérification de systèmes matériels avec les DDD

38E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Résultats sur exemples classiques (HDD)

Calcul d’accessibilité uniquement• Philosophes

DDD DDD-O HDD HDD-sat15 : 18 K+-/397 54+5/30 25/16 0/250: -/- 8006/996 3308/532 1/91000: -/- -/- -/- 258/1343

• Election sur anneauDDD DDD-O HDD HDD-sat

6 : 34+5/11 37+3/11 6/4 0/410: 4533+-/663 716+-/77 333/61 2/1420: -/- -/- 9891/771 14/65100 : -/- -/- -/- 443/1866

• Systèmes séquentiels : Amélioration par rapport aux DDD plats mais moins bons que SPIN

Page 39: Vérification de systèmes matériels avec les DDD

39E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

DDD : Approximation

• Contrainte : un seul arc d’une étiquette donnée en sortie d’un nœud• Conséquence : des opérations peuvent conduire à des résultats

indéterminés• Représentation de l’approximation nœud terminal T

• Bonnes propriétés algébriques des opérations

a

a

b

1

1

1 2

1 2

1

T

• DDD bien défini : absence de nœud terminal T

• Relation « mieux-défini » :relation d’ordre sur les DDD

Page 40: Vérification de systèmes matériels avec les DDD

40E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

DDD : Opérations (2)

Exemple d’opération faisant apparaître une approximation

a

a c

c

1

1 2

1

2

3

0

a

a a

c

1

1 2

1

2

3

0

+ =

a

a

c

1

1 2

1

2

0

T

Page 41: Vérification de systèmes matériels avec les DDD

41E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

DDD : Homomorphismes

• Définition : d, d’ deux DDD bien définisUn homomorphisme est une fonction telle que :

(0) = 0 (d) + (d’) = (d + d’)

• Exemplesd * IdId \ dId . d1 + 2

1 o 2

• Cas général : d, d’ deux DDD (0) = 0

(d) + (d’) (d + d’)d d’ (d) (d’)

Page 42: Vérification de systèmes matériels avec les DDD

42E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

DDD : Homomorphismes inductifs (1)

• Famille d’homomorphismes i définis localementi (0) = 0i (T) = Ti (1) = ci (une constante)i (d) = définition locale à la racine de d et à ses valuations

• Exemple

SetCst(var, val)(1) = T

SetCst(var, val)(e, x) =

e — Id si e = var

e — SetCst(var,val) sinon

val

x

Page 43: Vérification de systèmes matériels avec les DDD

43E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

DDD : Homomorphismes inductifs (2)

SetCst(b,2)

a

b c

1

1 2

0 1

= SetCst(b,2) (a — b — 1 ) +

SetCst(b,2) (a — c — 1 ) 1

0

2

1

SetCst(b,2) (a — b — 1 ) = a — SetCst(b,2)(b — 1 )

= a — b — Id(1)

= a — b — 1

01 1

1

1

0

2

2

SetCst(b,2) (a — c — 1 ) = a — SetCst(b,2)(c — 1 )

= a — c — SetCst(b,2)(1)

= a — c — T

12 2

2

2

1

1

1

Page 44: Vérification de systèmes matériels avec les DDD

44E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

DDD : Homomorphismes inductifs (3)

SetVar(var1, var2)(1) = 1

SetVar(var1, var2)(e, x) =

Down(var1, var2) si e = var1

e — SetCst(var1, x) si e = var2

e — SetVar(var1, var2) sinon

x

x

Down(var1, var2)(1) = T

Down(var1, var2)(e, x) = var1 — e — Id si e = var2

Up(e, x) o Down(var1, var2) sinon

x x

Up(var, val)(1) = T

Up(var, val)(e, x) = e — var — Id x val

Exemple : var1 = var2 SetVar

Down

Up

Page 45: Vérification de systèmes matériels avec les DDD

45E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

DDD : Homomorphismes inductifs (4)

SetVar(b, d) (a — b — c — d — 1)

a — SetVar(b, d) (b — c — d — 1)

a — Down(b, d) (c — d — 1)

a — Up(c, 3) o Down(b, d) (d — 1)

a — Up(c, 3) (b — d — Id(1))

a — Up(c, 3) (b — d — 1)

a — b — c — d — 1

1 2 3 4

1 2 3 4

1 3 4

41

1 4 4

1 4 4

1 4 43

Exemple d’exécution de SetVar : b = d

Page 46: Vérification de systèmes matériels avec les DDD

46E.Encrenaz-Tiphène, 04/11/05, séminaire TIMA

Homomorphismes inductifs

SetVar(v1,v2) (1) = T (une erreur)

Down(v1,v2) si e == v1

SetVar(v1,v2) (e,x) = e — SetCst(v1,x)si e == v2

e — SetVar(v1,v2) sinon

Down(v1,v2 ) (1) = T

Down (v1,v2) (e,x) = v1 — e — Id si e == v2

Up(e, x) o Down(v1, v2) sinon

Up(var, val)(1) = T

Up(var, val)(e, x) = e — var — Id

Affectation V1 = V2