Modèles du Vrai
Parallélisme
Eric Goubault
Commissariat à l'Energie Atomique, Saclay
email: Eric.Goubault@cea.fr
http://www.di.ens.fr/~goubault
http://www.enseignement.polytechnique.fr/profs/informatique/
Eric.Goubault
avec
Pierre-Louis Curien (PPS)
James Leifer (INRIA Rocquencourt)
Jean-Jacques Lévy (INRIA Rocquencourt)
Catuscia Palamidessi (INRIA Futurs)
Remarques et références
-
On utilisera parfois le langage catégorique sans faire appel à une connaissance de la théorie. Il est
néanmoins bon de savoir que tout peut être traité de façon générique
- Référence: Saunders Mac Lane ``Categories for the working mathematician'', Giuseppe Longo et Andrea
Asperti ``Categories for the working computer scientist''
- Référence sur les modèles du parallélisme: Glyn Winskel ``Models for Concurrency'', Handbook of Logic in Computer Science, Vol. 4
Plan du cours
-
``Vrai'' et ``faux'' parallélisme
- Rappels (rapides): systèmes de transitions et bisimulation
- Une reformulation ``algébrique'' des constructions sur les systèmes de transitions, et de la
bisimulation forte
- Systèmes de transition asynchrones, concurrents,
Plan du cours
-
Automates de trace, traces de Mazurkiewicz (généralisées)
- Structures d'évenements (étiquetées ou pas), pomsets et systèmes de transitions avec indépendance.
- Réseaux de Petri
- Comparaison des différents modèles, sémantiques vraiment parallèles de CCS et bisimulations sur
les différents modèles
- Quelques idées géométriques (si le temps le permet)
Motivation du cours
-
Grand nombre de modèles introduits à des niveaux d'abstraction différents (évenements/états, branchements ou pas etc.)
- Par des correspondances (style correspondances de Galois, ou adjonctions en général), les constructions sémantiques utiles pour la sémantique du parallélisme sont définissables dans tous ces modèles de façon similaire (``produit cartésien'' = composition parallèle...)
- Les congruences sémantiques peuvent aussi être définies de façon très générales sur tous
ces modèles (ex. bisimulation forte, par ``span de morphismes ouverts'')
- On illustrera tout cela sur un certain nombre de modèles les plus classiques, à commencer par la
reformulation dans le cas des systèmes de transition.
Rappels -- Systèmes de transitions (cf. cours 3)
Définition 1
Un système de transitions est une structure (S,i,L,Tran)
-
S ensemble d'états et i état initial,
- L ensemble d'étiquettes, et
- Tran Í S × L × S la relation de transition
Exemple
``Vrai'' et ``faux'' parallélisme
a | b ~ a.b+b.a?
Identifier non-déterminisme et parallélisme est moralement malsain:
Faut-il l'interpréter comme exclusion mutuelle entre a et b ou exécution asynchrone de a avec b?
Raffinement d'actions
-
D'un point de vue de l'ingéniérie, il est bon de pouvoir raisonner sur un système sans se préoccuper
de tous les détails à grain fin, voire atomique
- Þ trouver des méthodes sémantiques qui permettent de raffiner progressivement
le grain (ou de composer les résultats acquis sur des sous-systèmes)
- Exemple: on étudie a | b, mais a est en fait raffiné en a.a'
Raffinement d'actions
Si a | b ~ a.b+b.a, alors (a.a') | b et a.a'.b+b.a.a' doivent aussi
être équivalents (si ~ est une congruence):
Mais il manque la trace a.b.a' dans le deuxième cas! (et on aime en général que ~
contienne l'équivalence de trace...)
Catégorie
On en fait une catégorie avec pour morphismes les simulations
(Glynn Winskel et al.).
Un système de transition T1 simule un
système de transitions T0 à la condition que
si T0 peut effectuer une action a dans un certain contexte, alors
T1 peut effectuer a également dans un contexte similaire.
Un morphisme
f: T0 ® T1 definit la façon dont les états et les
transitions
de T0 sont reliés aux états et transitions de T1.
Morphismes
Définition 2
Soit T0=(S0,i0,L0,Tran0) et T1=(S1,i1,L1,Tran1) deux
systèmes de transition. Un morphisme f: T0 ® T1 est un
couple
f=(s,l) où,
-
s: S0 ® S1,
- l: L0 ® L1 est tel que s(i0)=i1
et
(s,a,s') Î Tran0 Þ (s(s),l(a),s(s'))
Î Tran1
Morphismes partiels
Les morphismes partiels permettent à T1 de ne pas
effectuer d'action quand T0 le fait.
Définition 3
Soient T0=(S0,i0,L0,Tran0) et T1=(S1,i1,L1,Tran1) deux
systèmes de transition. Un morphisme partiel
f: T0 ® T1 est un couple
f=(s,l) où,
-
s: S0 ® S1,
- l: L0 ® L1 est une fonction partielle.
(s,
l) est tel que
-
s(i0)=i1,
- (s,a,s') Î Tran0 et l(a) est défini implique
(s(s),l(a), s(s'))
Î Tran1 . Sinon, si l(a) n'est pas défini alors
s(s)=s(s').
Transitions silencieuses
On complète un système de transition T=(S,i,L,Tran) en
T*=(S*,i*,L*,Tran*),
-
S*=S,
- i*=i,
- L*=L È { * },
- Tran*=Tran È { (s,*,s) / s Î S }.
Exemple
Bisimulation - rappel, cours 3
Idée d'expérimentation formalisée:
Une relation binaire S Í P × P
entre agents est une bisimulation (forte) si (P,Q) Î S
implique, pour tout a Î S,
-
(i) dès que P ®a P' il existe
Q' tel que Q ®a Q' et (P',Q') Î
S,
- (ii) dès que Q ®a Q' il existe
P' tel que P ®a P' et (P',Q') Î
S
Maintenant P et Q sont (fortement) équivalents ou (fortement)
bisimilaires si et seulement si il existe une bisimulation S
telle que (P,Q) Î S.
On écrit P ~ Q quand P et Q sont bisimilaires.
Exemple
On considère les agents A et B définis par:
A = a.A'
et
B = c.B'
Peut-on trouver un équivalent pour (A | B) \ c ?
Exemple
La réponse est oui
Soient,
C1 = a.C3
C3 = t.C0
Alors, (A | B) \ c ~ C1.
Preuve···
Exemple
Soit S= { ((A| B) \ c,C1),((A'| B)\ c,C3),
((A | B')\ c,C0),((A'| B')\ c,C2) }.
Alors S est une bisimulation forte. Il suffit de tester toutes les actions
que les 8 agents peuvent exécuter, par exemple,
=1.75em |
(A| |
B') \ cC0 |
|
aet |
|
a(A | B) \ c(A' | B') \ cC1C2 |
|
Arbres de synchronisation (cf. cours 3)
Un arbre de synchronisation est un système de transition (S,i,L,tran) tel que:
-
tout état est atteignable
- il n'y a pas de boucle non-triviale
- (s',a,s) Î Tran et (s'',b,s) Î Tran implique a=b et s'=s''
BranL sera la sous-catégorie pleine de la catégorie des systèmes de transition
sur l'alphabet L.
Bisimulations et morphismes
-
Soit M une catégorie de modèles (ici, par exemple, les systèmes de transition).
- Soit P une sous-catégorie de ``chemins'' de M
- Un chemin de XÎ M sera un morphisme p: P ® X pour un P Î P
Morphismes P-ouverts
Un morphisme est P-ouvert ssi pour tout diagramme commutatif:
PpXmfQqY
il existe un morphisme p' tel que p' ° m=p et f ° p'=q.
Morphismes BranL-ouverts
Ce sont les morphismes ``zig-zag'' (s,IdL): T ® T' tels que pour
tout état s de T:
Si (s(s),a,s') est dans T', alors il existe un état u de T tel
que (s,a,u) est dans T et s(u)=s'.
Preuve
Preuve
-
Soit m: P ® Q le morphisme inclusion dans BranL. Le diagramme suivant commute:
PpTmfQqT'
- f est un morphisme ouvert donc il existe r: Q ® T tel que les deux triangles commutent.
- L'état final de Q donne s' ®a u dans T tel que s(u)=s'.
Preuve
-
A l'inverse, si f satisfait la condition zig-zag, et si on suppose que l'on a un diagramme commutatif:
PpTmfQqT'
- A isomorphisme près, Q est simplement une extension de P par des transitions simples.
- Par itération de la condition zig-zag, on obtient un morphisme r: Q ® T tel que r° m=p
et f ° r=q.
P-bisimilarité
X1 et X2 du modèle M sont P-bisimilaire si il existe un
span de morphismes P-ouverts:
Xf1f2X1X2
P-bisimilarité et bisimilarité forte
Deux systèmes de transition avec le même alphabet L sont BranL-bisimilaires ssi
ils sont fortement bisimilaires au sens de Milner.
Preuve
-
Si deux systèmes de transition sont connectés par un morphisme ouvert (vis-à-vis de BranL), sa
restriction aux états vérifie la condition zig-zag. Cela implique que son graphe sous-jacent est une bisimulation
forte.
- La bisimulation forte étant une relation d'équivalence, un span de morphismes BranL-ouverts les rend
donc bisimilaires
Preuve
-
Soit R une bisimulation forte entre T1 et T2
- On construit un système de transition TL à partir de R:
-
l'ensemble de ses états et R, avec état initial (i1,i2) (la paire d'états initiaux de T1 et de T2)
- ses transitions sont ((s1,s2),a,(s1',s2')) où (s1,s2) Î R et (s1',s2') Î R pour lesquelles
(s1,a,s1') Î T1 et (s2,a,s2') Î T2.
Preuve
-
On a des morphismes évidents f1: R ® T1, f2: R ® T2 (projections)
- Comme R est une bisimulation forte, f1 et f2 satisfont la condition zig-zag, et donc forment
un span de morphismes BranL-ouverts.
Produits Cartésiens
Comme dans les ensembles, ils vérifient la ``propriété universelle'':
" Y" f1$ ! h" f2X1 × X2p1p2X1X2
Produits Cartésiens
Soient deux systèmes de transitions T0=(S0,i0,L0,Tran0) et
T1=(S1,i1,L1,Tran1). Leur produit est T0 × T1=(S,i,L,Tran) avec,
-
S=S0 × S1 et i=(i0,i1). Soient r0:S0 × S1
® S0 et r1:S0 × S1 ® S1 les projections
canoniques,
- L=L0 ×* L1={(a,*) / a Î L0} È {(*,b) / b Î L1}
È {(a,b) / a Î L0, b Î L1} avec des projections canoniques
p0 et p1,
- (s,a,s') Î Tran* ssi (r0(s),p0(a),r0(s')) Î Tran0* et
(r1(s),
p1(a),r1(s')) Î Tran1*
Autres Constructions catégoriques
Le coproduit (``propriété universelle duale'' du produit cartésien)
de deux systèmes de transitions T0=(S0,i0,L0,Tran0) et
T1=(S1,i1,L1,Tran1) est T0 Å T1=(S,i,L,Tran) avec,
-
S=(S0 È S1)/{i0=i1), et i=i0=i1,
- L=L0 È L1,
- Tran=Tran1 È Tran2.
Produits Synchronisés
Un cas particulier: produit fibré suivant.
Référence plus générale: Arnold et M.Nivat.
Soient T0=(S0,i0,L0,Tran0) et T1=(S1,i1,L1,Tran1) deux
systèmes de transition. Leur produit synchronisé (à la CSP)
est T=(S,i,L,Tran) avec,
Définition
-
S=S0 × S1, i=(i0,i1),
- L=L0 × L1,
- ((s,t),a,(u,v)) Î Tran ssi
-
a Î L0 Ç L1 et (s,a,u) Î Tran0 et (t,a,v) Î Tran1,
- a Î L0 \ L1 et (s,a,u) Î Tran0 et v=t,
- a Î L1 \ L0 et u=s et (t,a,v) Î Tran1.
Sémantique de processus parallèles
-
Automate pour chaque processus séquentiel,
- produit synchronisé correspondant aux différentes primitives
de communications utilisées.
Les états globaux du système de transition résultant P sont donc des
n-uplets (n=nombre de processus communicants) s=(s1,...,sn) avec
si état local du processus Pi.
Jusqu'à une exponentielle de plus par rapport au cas séquentiel!
Dans le cas d'un langage proche de CCS, on pourra trouver dans [Winskel] une sémantique
dénotationnelle, utilisant produits cartésiens, coproduits etc.
This document was translated from LATEX by
HEVEA.