Вы находитесь на странице: 1из 6

+

Systèmes de transitions - Modélisation TLA

Durée 1h45 - Documents autorisés

11 avril 2016

1 Questions de cours (2 points)


Soit trois variables A, B et f . A et B contiennent des ensembles d'entiers, et f ∈ [A → Nat ].
Répondre aux questions suivantes en respectant la syntaxe TLA+ .
1. Donner une action qui change A en un sous-ensemble de B , à condition que A et B
soient disjoints.
A ∩ B = ∅ ∧ A0 ∈ subset B (ou ∧ A0 ⊆ B )
2. Donner une expression représentant l'ensemble des x de A tels que f [x ] est dans B .
{x ∈ A | f [x ] ∈ B } ou f −1 (B ) ∩ A
3. Donner une propriété temporelle qui dit que la fonction f ne prend que des valeurs
paires.
2(∀x ∈ A : f [x ]%2 = 0)
2({x ∈ A : f [x ]%2 6= 0} = ∅)
4. Donner une propriété temporelle qui dit que l'ensemble A ne décroît pas.
selon l'interprétation :
2(A ⊆ A0 )
2(Cardinality (A) ≤ Cardinality (A0 ))
∀k ∈ Nat : 2(Cardinality (A) = k ⇒ 2(Cardinality (A) ≥ k ))

2 Exercice (6 points)
Soit le module TLA+ fourni Test.tla dénissant le système de transitions Spec.
1. Donner le graphe d'exécution correspondant.

-> 0,0 --1--> 1,0


/ ^
__2__/ |4
/ |
-> 0,1 --1--> 1,1 --3--> 2,1

(+ boucle)
2. Les propriétés suivantes, exprimées en logique LTL ou CTL, sont-elles vériées (donner
une justication informelle) ?

1
(a) 2(y ≥ x ) (e) ∃2(x + y = 1)
(b) 3(x = 2) (f) ∀2∀3(y = 1)
(c) 23(y 6= x ) (g) ∀2∃3(x = 2)
(d) (x 6= y ) ; (x = y ) (h) ∀2((y = 1) ⇒ ∀2(y ≥ 1))

(a) non, états (2,1) ou (1,0) (e) ok (uniquement Act2 depuis 0,1)
(b) non, sans SF(1,3) (f) ok (0,0 et 1,0 non stables)
(c) ok, (0,0 et 1,1 non stables) (g) ok (x = 2 est toujours accessible)
(d) non, .. → (2, 1)ω ou ((0, 1) → (1, 0))ω (h) non (y = 1 non stable)

2.1 Module fourni : Test.tla


---- MODULE Test ----
EXTENDS Naturals
VARIABLES x,y
----------------------------------------------------------------
Init == x = 0 /\ y \in { 0, 1 }
Act1 == x = 0 /\ x' = 1 /\ UNCHANGED y
Act2 == x+y = 1 /\ x' = y /\ y' = x
Act3 == x+y = 2 /\ x' = 2 /\ UNCHANGED y
Act4 == x+y = 2 /\ y' = 0 /\ UNCHANGED x

Spec == /\ Init /\ [] [ Act1 \/ Act2 \/ Act3 \/ Act4 ]_<<x,y>>


/\ WF_<<x,y>>(Act1) /\ WF_<<x,y>>(Act2) /\ WF_<<x,y>>(Act3)
================================================================

3 Problème : partitionnement (12 points)


Une partition d'un ensemble E est un ensemble de sous-ensembles, tels que l'union
forme l'ensemble E , et l'intersection deux à deux des sous-ensembles est vide. Par exemple
{{2, 4, 8}, {1, 5}} est un partition de {1, 2, 4, 5, 8}. Dans la suite, la partition est réduite à deux
sous-ensembles.
On considère deux sites qui possèdent chacun un ensemble distinct d'entiers, S 0 et T 0,
qui forment donc une partition d'un ensemble E = S 0 ∪ T 0. L'objectif est de construire une
autre partition S , T de E , tel que S (respectivement T ) a le même nombre d'élément que S 0
(resp. T 0), et tous les éléments de S sont inférieurs à tous les éléments de T . On appelle ceci
une partition parfaite.
Pour cela, les sites vont s'échanger des éléments jusqu'à ne plus pouvoir : S envoie son plus
grand élément, puis T répond avec son plus petit, puis S envoie son plus grand, et ainsi de
suite. Initialement, on démarre avec un envoi de S . La terminaison est détectée par S quand
il reçoit un élément plus grand que son max. Il envoie alors à T une valeur distinguée (autre
que celles de S 0 et T 0) pour lui indiquer l'arrêt.
Un squelette du module est fourni en annexe. Cette version utilise des séquences pour
représenter les canaux de communication de S vers T et de T vers S . Attention, ce module

2
contient un petit bug, probablement invisible et pas gênant pour la compréhension, qu'il s'agira
de corriger question 11.
Rappel sur les séquences : une séquence en extension est notée ha , b , c i. Pour une sé-
quence s , Len (s ) est sa longueur (son nombre d'éléments), Head (s ) son premier élément (la
séquence doit être non vide), Tail (s ) est tout sauf le premier élément (même contrainte), s1 ◦ s2
est la concaténation de deux séquences et Append (s , e ) = ∆
s ◦ he i.

3.1 Transitions
1. Donner le prédicat de transition Next, spéciant toutes les transitions possibles du pro-
blème modélisé.
∃i , j ∈ Values ∪ {StopValue } : Tswap (i , j ) ∨ Sswap (i , j ) ∧ Send (i , j ) ∧ Tend (i , j )
2. Préciser la ou les propriétés d'équité minimale nécessaires pour atteindre une solution.
WF sur toutes les actions pour éviter bégaiement :
Fairness = ∆
∀i , j ∈ Values ∪ {StopValue } : WF (Tswap (i , j )) ∧ WF (Sswap (i , j )) ∧
WF (Send (i , j )) ∧ WF (Tend (i , j ))
3. Donner la spécication complète du problème.
Spec = Init ∧ 2[Next ]vars ∧ Fairness

3.2 Spécication
Dénir les propriétés suivantes (qui ne sont pas nécessairement vériées par le modèle) :
4. DoNotLoseElements : on ne perd ni ne crée de valeurs par rapport aux valeurs initiale-
ment présentes dans S 0 et T 0.
DoNotLoseElements = ∆
2((S ∪ T ∪ range (channelS )∪ range (channelT ))\{StopValue } =
S 0 ∪ T 0)
5. ChannelsAreSlots : la longueur des canaux est toujours inférieure ou égale à 1.
ChannelsAreSlots = ∆
2(Len (channelS ) ≤ 1 ∧ Len (channelT ) ≤ 1)
6. ChannelsAreExclusive : à tout instant au plus un canal contient un message.
ChannelsAreExclusive = ∆
2(Len (channelS ) = 0 ∨ Len (channelT ) = 0)
7. PerfectPartition : il existe un moment où tous les éléments de S sont plus petits que
tous les éléments de T .
PerfectPartition =

3(Cardinality (S ) = Cardinality (S 0) ∧ Cardinality (T ) =
Cardinality (T 0) ∧ max (S ) ≤ min (T ))
8. PerfectionIsStable : si une partition parfaite est atteinte, elle reste dénitivement
parfaite.
PerfectionIsStable =∆
2(S 6= ∅ ∧ T 6= ∅ ∧ max (S ) ≤ min (T ) => 2(max (S ) ≤ min (T )))

3.3 Analyse du problème


9. Donner le graphe d'exécution pour S 0 = {1, 3, 5} et T 0 = {2, 4}.
état = S,chanS,chanT,T
{1, 3}, , 5, {2, 4} → {1, 3}, 2, , {4, 5} → {1, 2}, , 3, {4, 5} → {1, 2}, 4, , {3, 5} →
{1, 2, 4}, , 0, {3, 5} → {1, 2, 4}, , , {3, 5}

3
10. Utiliser ce graphe pour démontrer qu'au moins l'une des propriétés temporelles est in-
validée (préciser laquelle et le moyen de montrer sa fausseté).
PerfectPartition est fausse
11. Corriger le module fourni.
Tswap : ∧ out = min (T ∪ {in })
Sswap : ∧ out = max (S ∪ {in })
Note : renforcer Tswap avec out < in (et Sswap avec out > in) conduit à un interblocage
avec le message en transit qui ne peut pas être reçu : c'est faux.
12. Pour deux ensembles S 0 et T 0 quelconques, quel est le nombre maximal de transitions
nécessaires pour atteindre la solution ?
|S0|+|T0| + 1 ou 2 (à calculer)

3.4 Autre modélisation


ChannelsAreSlots and ChannelsAreExclusive nous indiquent qu'il y a au plus une valeur
en transit, soit de S vers T , soit de T vers S . On propose alors de remplacer les variables
chanS et chanT par une variable slot contenant une valeur et une variable dest contenant le
sens (vers S ou vers T ).
13. Énoncer la nouvelle version de la propriété TypeInvariant.
TypeInvariant = ∆
S ∈ SUBSETValues ∧ T ∈ SUBSETValues
∧ slot ∈ Values ∪ {StopValue } ∧ dest ∈ {”S ”, ”T ”}
14. Donner le nouveau code des actions Tswap, Sswap, Send et Tend.
cf setpartitioning2
15. Cette version est un ranement de la version initiale. Donner la relation de ranement
(le renmentMapping ) qui lie les variables du second module aux variables du module
initial.
chanS = (IF dest = ”S ” THEN hslot i ELSE hi)
chanT = (IF dest = ”T ” THEN hslot i ELSE hi)
On ajoute un attaquant qui peut seulement inverser le sens de la destination :
Attacker = ∧ dest 0 = (if dest = ”S ” then ”T ” else ”S ”)

∧ unchanged hS , T , slot i
Next =

. . . ∨ Attacker

16. La propriété de sûreté DoNotLoseElements est-elle invalidée ? (justier la réponse)


non : DoNotLoseElements est une propriété sûreté qui ne porte que sur dest, même
indirectement (on ne change pas la valeur de slot)
17. La propriété de vivacité PerfectPartition est-elle invalidée ? (justier la réponse)
oui : attaquant qui inverse systématiquement tout envoi, empêchant qu'il ne soit jamais
reçu par le destinataire
18. Que faut-il changer au module TLA+ pour qu'il vérie ces deux propriétés, si jamais
elles sont invalidées ?
SF sur les réceptions (donc Tswap, Sswap, Send, Tend) : la réception étant inniment
souvent faisable, elle sera nalement faite et le système progresse.

4
module examen 15 setpartitioning
extends FiniteSets , Sequences , Naturals
constant N , S 0, T 0 Max number of values and initial sets
assume N ∈ Nat
Values = 1 . . N Les valeurs possibles contenues dans les ensembles de départ

StopValue = 0 Une valeur non contenue dans Values (sert pour la terminaison)

assume S 0 ⊆ Values ∧ S 0 6= {} ∧ T 0 ⊆ Values ∧ T 0 6= {} ∧ S 0 ∩ T 0 = {}


variables S , T , chanS , chanT
vars = hS , T , chanS , chanT i

min (V ) = choose m ∈ V : ∀ x ∈ V : m ≤ x

L0 élément minimal d'un ensemble non vide
max (V ) = choose m ∈ V : ∀ x ∈ V : x ≤ m L0 élément maximal d'un ensemble non vide

range (seq ) = {seq [v ] : v ∈ domain seq }



L'ensemble des éléments contenus dans une séquence

Init ∆
= let v = max (S 0) in

initialement, S envoie son max à T
∧ S = S 0 \ {v }
∧ chanT = hv i
∧ T = T0
∧ chanS = hi
Tswap (in , out ) = ∆
T reçoit un élément valide et renvoie son min
∧ Len (chanT ) > 0
∧ in = Head (chanT )
∧ in 6= StopValue
∧ out = min (T )
∧ T 0 = (T ∪ {in }) \ {out }
∧ chanS 0 = Append (chanS , out )
∧ chanT 0 = Tail (chanT )
∧ unchanged hS i
Sswap (in , out ) = ∆
S reçoit un élément et renvoie son max , à condition que
∧ Len (chanS ) > 0 l 0 él ément reçu soit strictement plus petit que son max .
∧ in = Head (chanS )
∧ out = max (S )
∧ in < out
∧ S 0 = (S ∪ {in }) \ {out }
∧ chanT 0 = Append (chanT , out )
∧ chanS 0 = Tail (chanS )
∧ unchanged hT i
Send (in , out ) = ∆
S reçoit un élément plus grand que son max
∧ Len (chanS ) > 0 ⇒ c 'est ni, on envoie la StopValue à T
∧ in = Head (chanS )
∧ out = max (S )
∧ in ≥ out
∧ S 0 = S ∪ {in }
∧ chanT 0 = Append (chanT , StopValue )
∧ chanS 0 = Tail (chanS )
∧ unchanged hT i
Tend (in , out ) = ∆
T reçoit la StopValue
∧ Len (chanT ) > 0
∧ in = Head (chanT )
∧ in = StopValue
∧ chanT 0 = Tail (chanT )
∧ unchanged hS , T , chanS i
6

Вам также может понравиться

  • Université Nice Sophia Antipolis L3 Info, L3 Math-Mi Automates & Langages 2017-2018 TDN 1 Langages Rationnels Et Automates Finis
    Université Nice Sophia Antipolis L3 Info, L3 Math-Mi Automates & Langages 2017-2018 TDN 1 Langages Rationnels Et Automates Finis
    Документ3 страницы
    Université Nice Sophia Antipolis L3 Info, L3 Math-Mi Automates & Langages 2017-2018 TDN 1 Langages Rationnels Et Automates Finis
    Mouhamed Rassoul Gueye
    Оценок пока нет
  • TD 11
    TD 11
    Документ2 страницы
    TD 11
    Mouhamed Rassoul Gueye
    Оценок пока нет
  • Partiel 1
    Partiel 1
    Документ4 страницы
    Partiel 1
    Mouhamed Rassoul Gueye
    Оценок пока нет
  • TD 3
    TD 3
    Документ2 страницы
    TD 3
    Mouhamed Rassoul Gueye
    Оценок пока нет
  • TD 4
    TD 4
    Документ3 страницы
    TD 4
    Mouhamed Rassoul Gueye
    Оценок пока нет
  • TD 9
    TD 9
    Документ2 страницы
    TD 9
    Mouhamed Rassoul Gueye
    Оценок пока нет
  • TD 8
    TD 8
    Документ2 страницы
    TD 8
    Mouhamed Rassoul Gueye
    Оценок пока нет
  • Cours C#
    Cours C#
    Документ118 страниц
    Cours C#
    Mouhamed Rassoul Gueye
    Оценок пока нет
  • TD 2
    TD 2
    Документ2 страницы
    TD 2
    Mouhamed Rassoul Gueye
    Оценок пока нет
  • Optimisation Combinatoire 2 PDF
    Optimisation Combinatoire 2 PDF
    Документ101 страница
    Optimisation Combinatoire 2 PDF
    Mouhamed Rassoul Gueye
    100% (1)
  • API Windows PDF
    API Windows PDF
    Документ258 страниц
    API Windows PDF
    Mouhamed Rassoul Gueye
    Оценок пока нет
  • Partiel 1
    Partiel 1
    Документ4 страницы
    Partiel 1
    Mouhamed Rassoul Gueye
    Оценок пока нет
  • Le Préprocesseur PDF
    Le Préprocesseur PDF
    Документ23 страницы
    Le Préprocesseur PDF
    Mouhamed Rassoul Gueye
    Оценок пока нет
  • Cours Android PDF
    Cours Android PDF
    Документ459 страниц
    Cours Android PDF
    Mouhamed Rassoul Gueye
    Оценок пока нет
  • Parser Un Format Simple
    Parser Un Format Simple
    Документ17 страниц
    Parser Un Format Simple
    Mouhamed Rassoul Gueye
    Оценок пока нет
  • Cours Ocaml
    Cours Ocaml
    Документ49 страниц
    Cours Ocaml
    Mouhamed Rassoul Gueye
    Оценок пока нет
  • Théorie Des Collisions
    Théorie Des Collisions
    Документ104 страницы
    Théorie Des Collisions
    Mouhamed Rassoul Gueye
    Оценок пока нет
  • Introduction À L'assembleur
    Introduction À L'assembleur
    Документ113 страниц
    Introduction À L'assembleur
    Mouhamed Rassoul Gueye
    Оценок пока нет
  • Bruit de Perlin
    Bruit de Perlin
    Документ15 страниц
    Bruit de Perlin
    Mouhamed Rassoul Gueye
    Оценок пока нет
  • Cours Logique
    Cours Logique
    Документ8 страниц
    Cours Logique
    RachidRimali
    Оценок пока нет
  • Nombre de Surjections
    Nombre de Surjections
    Документ3 страницы
    Nombre de Surjections
    anas achmit
    Оценок пока нет
  • Applica 1
    Applica 1
    Документ5 страниц
    Applica 1
    Samba Sall
    50% (2)
  • Calcul Littéral
    Calcul Littéral
    Документ2 страницы
    Calcul Littéral
    Revision3D
    100% (3)
  • Partiel0910 Corrige
    Partiel0910 Corrige
    Документ5 страниц
    Partiel0910 Corrige
    Chaymae
    Оценок пока нет
  • Calcul D'intégrales Et de Primitives
    Calcul D'intégrales Et de Primitives
    Документ11 страниц
    Calcul D'intégrales Et de Primitives
    narimonamour
    Оценок пока нет
  • Analyse Numerique TD1
    Analyse Numerique TD1
    Документ1 страница
    Analyse Numerique TD1
    Gnon Adiara Coulibaly
    Оценок пока нет
  • Exercices Logique Combinatoire Du Bac Technique en Tunisie
    Exercices Logique Combinatoire Du Bac Technique en Tunisie
    Документ9 страниц
    Exercices Logique Combinatoire Du Bac Technique en Tunisie
    Oussama Mezrigui
    Оценок пока нет
  • Chap1 2
    Chap1 2
    Документ9 страниц
    Chap1 2
    r.kiche05
    Оценок пока нет
  • Algèbre Et Analyse Classes Terminales C D Et T Nathan 1967
    Algèbre Et Analyse Classes Terminales C D Et T Nathan 1967
    Документ380 страниц
    Algèbre Et Analyse Classes Terminales C D Et T Nathan 1967
    ben TATI
    100% (2)
  • Faussement Vrai Et Vraiment Faux Ed1 v1
    Faussement Vrai Et Vraiment Faux Ed1 v1
    Документ281 страница
    Faussement Vrai Et Vraiment Faux Ed1 v1
    Yaci TV
    Оценок пока нет
  • CH 4
    CH 4
    Документ12 страниц
    CH 4
    Sony Syahrul Ghony
    Оценок пока нет
  • Ex2td3 PDF
    Ex2td3 PDF
    Документ8 страниц
    Ex2td3 PDF
    karim baklouti
    Оценок пока нет
  • 5.la Récursivité
    5.la Récursivité
    Документ22 страницы
    5.la Récursivité
    Nouaman Mohamed
    Оценок пока нет
  • DP Elec 13 - 14
    DP Elec 13 - 14
    Документ4 страницы
    DP Elec 13 - 14
    Elafif Hamdi
    Оценок пока нет
  • Correction Td2
    Correction Td2
    Документ10 страниц
    Correction Td2
    Hamdi Chiha
    Оценок пока нет
  • Analyse Numerique
    Analyse Numerique
    Документ2 страницы
    Analyse Numerique
    Natôuhor Sokro
    Оценок пока нет
  • Analyse Numerique
    Analyse Numerique
    Документ210 страниц
    Analyse Numerique
    Prince
    Оценок пока нет
  • Cri Chap 2 Et 3
    Cri Chap 2 Et 3
    Документ29 страниц
    Cri Chap 2 Et 3
    zaki
    Оценок пока нет
  • Examen 2004 5
    Examen 2004 5
    Документ2 страницы
    Examen 2004 5
    Lotfi Gana
    Оценок пока нет
  • CH 1 - Combinatoire Et Dénombrement
    CH 1 - Combinatoire Et Dénombrement
    Документ5 страниц
    CH 1 - Combinatoire Et Dénombrement
    Martin
    Оценок пока нет
  • Universite 8 Mai 1945 Guelma Conformemen
    Universite 8 Mai 1945 Guelma Conformemen
    Документ283 страницы
    Universite 8 Mai 1945 Guelma Conformemen
    mohamedouffa
    Оценок пока нет
  • Chapitre 4 Les Circuits Combinatoiresv2
    Chapitre 4 Les Circuits Combinatoiresv2
    Документ16 страниц
    Chapitre 4 Les Circuits Combinatoiresv2
    techtrendshopify
    Оценок пока нет
  • Bda04 Normalisation
    Bda04 Normalisation
    Документ62 страницы
    Bda04 Normalisation
    Karima Mechergui
    Оценок пока нет
  • Algorithme Gestion D - Une Bibliothèque - Copie
    Algorithme Gestion D - Une Bibliothèque - Copie
    Документ7 страниц
    Algorithme Gestion D - Une Bibliothèque - Copie
    Nour Allah tabib
    100% (1)
  • Simplification Des Équations Logiques PDF
    Simplification Des Équations Logiques PDF
    Документ3 страницы
    Simplification Des Équations Logiques PDF
    Badreddine Tiss
    100% (1)
  • Polycopié de Probabilités Cours Et Exercices Corrigés
    Polycopié de Probabilités Cours Et Exercices Corrigés
    Документ103 страницы
    Polycopié de Probabilités Cours Et Exercices Corrigés
    Abdou Abdou
    Оценок пока нет
  • Bac Pratique 2012
    Bac Pratique 2012
    Документ3 страницы
    Bac Pratique 2012
    lost intheroadoflife
    Оценок пока нет
  • Algo 2 Eme
    Algo 2 Eme
    Документ9 страниц
    Algo 2 Eme
    BouAhmed Chiha
    Оценок пока нет
  • Cours 6
    Cours 6
    Документ30 страниц
    Cours 6
    Dzuakou
    Оценок пока нет