Preface |
|
xiii | |
Acknowledgments |
|
xv | |
I Modeling |
|
1 | (138) |
|
|
3 | (4) |
|
|
3 | (1) |
|
|
4 | (1) |
|
1.3 An overview of the book |
|
|
5 | (1) |
|
1.4 Audience and suggested method of reading |
|
|
6 | (1) |
|
2 Actions, Behavior, Equivalence, and Abstraction |
|
|
7 | (26) |
|
|
7 | (1) |
|
2.2 Labeled transition systems |
|
|
8 | (3) |
|
2.3 Equivalence of behaviors |
|
|
11 | (11) |
|
|
11 | (2) |
|
2.3.2 Language and completed trace equivalence |
|
|
13 | (1) |
|
2.3.3 Failures equivalence |
|
|
14 | (2) |
|
2.3.4 Strong bisimulation equivalence |
|
|
16 | (3) |
|
2.3.5 The Van Glabbeek linear time-branching time spectrum |
|
|
19 | (3) |
|
2.4 Behavioral abstraction |
|
|
22 | (8) |
|
2.4.1 The internal action τ |
|
|
22 | (1) |
|
2.4.2 Weak trace equivalence |
|
|
23 | (1) |
|
2.4.3 (Rooted) branching bisimulation |
|
|
24 | (4) |
|
2.4.4 (Rooted) weak bisimulation |
|
|
28 | (2) |
|
|
30 | (3) |
|
|
33 | (20) |
|
3.1 Data type definition mechanism |
|
|
33 | (6) |
|
|
39 | (5) |
|
|
40 | (1) |
|
|
41 | (3) |
|
|
44 | (3) |
|
3.4 Structured data types |
|
|
47 | (2) |
|
|
49 | (1) |
|
|
50 | (1) |
|
3.7 Where expressions and priorities |
|
|
51 | (1) |
|
|
52 | (1) |
|
|
53 | (16) |
|
|
53 | (1) |
|
|
54 | (2) |
|
4.3 Sequential and alternative composition |
|
|
56 | (2) |
|
|
58 | (2) |
|
4.5 The conditional operator |
|
|
60 | (1) |
|
|
61 | (1) |
|
|
62 | (2) |
|
4.8 Axioms for the internal action |
|
|
64 | (2) |
|
|
66 | (3) |
|
|
69 | (16) |
|
5.1 The parallel operator |
|
|
69 | (3) |
|
5.2 Communication among parallel processes |
|
|
72 | (2) |
|
|
74 | (3) |
|
5.4 Blocking and renaming |
|
|
77 | (1) |
|
5.5 Hiding internal behavior |
|
|
78 | (1) |
|
|
79 | (4) |
|
|
83 | (2) |
|
|
85 | (18) |
|
6.1 Hennessy-Milner logic |
|
|
86 | (2) |
|
|
88 | (2) |
|
6.3 Fixed point modalities |
|
|
90 | (4) |
|
6.4 Modal formulas and labeled transition systems |
|
|
94 | (3) |
|
6.5 Modal formulas with data |
|
|
97 | (3) |
|
|
100 | (2) |
|
|
102 | (1) |
|
7 Modeling System Behavior |
|
|
103 | (18) |
|
7.1 Alternating bit protocol |
|
|
103 | (3) |
|
7.2 Sliding window protocol |
|
|
106 | (5) |
|
7.3 A patient support platform |
|
|
111 | (8) |
|
|
119 | (2) |
|
|
121 | (18) |
|
8.1 Timed actions and time deadlocks |
|
|
121 | (2) |
|
8.2 Timed transition systems |
|
|
123 | (2) |
|
8.3 Timed process equivalences |
|
|
125 | (6) |
|
8.3.1 Timed (strong) bisimulation |
|
|
125 | (2) |
|
8.3.2 Timed branching bisimulation |
|
|
127 | (3) |
|
8.3.3 Timed trace and timed weak trace equivalence |
|
|
130 | (1) |
|
|
131 | (5) |
|
8.5 Modal formulas with time |
|
|
136 | (2) |
|
|
138 | (1) |
II Analysis |
|
139 | (120) |
|
9 Basic Manipulation of Processes |
|
|
141 | (26) |
|
9.1 Derivation rules for equations |
|
|
141 | (5) |
|
9.2 Derivation rules for formulas |
|
|
146 | (2) |
|
|
148 | (1) |
|
9.4 The sum elimination lemma |
|
|
149 | (1) |
|
9.5 Induction for constructor sorts |
|
|
150 | (2) |
|
9.6 Recursive specification principle |
|
|
152 | (4) |
|
9.7 Koomen's fair abstraction rule |
|
|
156 | (2) |
|
|
158 | (6) |
|
9.8.1 Basic parallel expansion |
|
|
158 | (1) |
|
9.8.2 Parallel expansion with data: two one-place buffers |
|
|
159 | (3) |
|
9.8.3 Parallel expansion with time |
|
|
162 | (2) |
|
|
164 | (3) |
|
10 Linear Process Equations and Linearization |
|
|
167 | (22) |
|
10.1 Linear process equations |
|
|
167 | (3) |
|
10.1.1 General linear process equations |
|
|
167 | (3) |
|
10.1.2 Clustered linear process equations |
|
|
170 | (1) |
|
|
170 | (11) |
|
10.2.1 Linearization of sequential processes |
|
|
171 | (6) |
|
10.2.2 Parallelization of linear processes |
|
|
177 | (2) |
|
10.2.3 Linearization of n parallel processes |
|
|
179 | (2) |
|
10.3 Proof rules for linear processes |
|
|
181 | (6) |
|
|
181 | (2) |
|
10.3.2 The convergent linear recursive specification principle (CL-RSP) |
|
|
183 | (1) |
|
10.3.3 CL-RSP with invariants |
|
|
184 | (3) |
|
|
187 | (2) |
|
11 Confluence and τ-prioritization |
|
|
189 | (10) |
|
11.1 τ-confluence on labeled transition systems |
|
|
190 | (1) |
|
11.2 τ-prioritization of labeled transition systems |
|
|
191 | (3) |
|
11.3 Confluence and linear processes |
|
|
194 | (2) |
|
11.4 τ-prioritization for linear processes |
|
|
196 | (2) |
|
11.4.1 Using confluence for state space generation |
|
|
197 | (1) |
|
|
198 | (1) |
|
|
199 | (14) |
|
|
199 | (5) |
|
12.2 Protocol verification using the cones and foci |
|
|
204 | (7) |
|
12.2.1 Two unbounded queues form a queue |
|
|
204 | (1) |
|
12.2.2 Milner's scheduler |
|
|
205 | (1) |
|
12.2.3 The alternating bit protocol |
|
|
206 | (5) |
|
|
211 | (2) |
|
13 Verification of Distributed Systems |
|
|
213 | (28) |
|
13.1 Tree identify protocol |
|
|
213 | (6) |
|
13.1.1 The correctness of the tree identify protocol |
|
|
215 | (4) |
|
13.2 Sliding window protocol |
|
|
219 | (10) |
|
13.2.1 Some rules for modulo calculation |
|
|
219 | (1) |
|
|
219 | (1) |
|
13.2.3 Getting rid of modulo arithmetic |
|
|
220 | (6) |
|
13.2.4 Proving the nonmodulo sliding window protocol equal to a first-in-first-out queue |
|
|
226 | (3) |
|
13.2.5 Correctness of the sliding window protocol |
|
|
229 | (1) |
|
13.3 Distributed summing protocol |
|
|
229 | (9) |
|
13.3.1 A description in mCRL2 |
|
|
230 | (2) |
|
13.3.2 Linearization and invariants |
|
|
232 | (3) |
|
13.3.3 State mapping, focus points, and final lemma |
|
|
235 | (3) |
|
|
238 | (3) |
|
14 Verification of Modal Formulas Using Parameterized Boolean Equation Systems |
|
|
241 | (18) |
|
14.1 Boolean equation systems |
|
|
241 | (5) |
|
14.1.1 Boolean equation systems and model checking |
|
|
243 | (1) |
|
14.1.2 Gaussian elimination |
|
|
244 | (2) |
|
14.2 Parameterized Boolean equation systems |
|
|
246 | (1) |
|
14.3 Translation of modal formulas to parameterized Boolean equation systems |
|
|
247 | (4) |
|
14.4 Techniques for solving parameterized Boolean equation systems |
|
|
251 | (7) |
|
14.4.1 Transforming a parameterized Boolean equation system to a Boolean equation system |
|
|
251 | (1) |
|
14.4.2 Global solving techniques for parameterized Boolean equation systems |
|
|
252 | (2) |
|
14.4.3 Local solving techniques for parameterized Boolean equation systems |
|
|
254 | (4) |
|
|
258 | (1) |
III Semantics |
|
259 | (36) |
|
|
261 | (34) |
|
15.1 Semantics of data types |
|
|
261 | (15) |
|
|
261 | (4) |
|
15.1.2 Well-typed data expressions |
|
|
265 | (5) |
|
15.1.3 Free variables and substitutions |
|
|
270 | (2) |
|
15.1.4 Data specifications |
|
|
272 | (2) |
|
15.1.5 Semantics of data types |
|
|
274 | (2) |
|
15.2 Semantics of processes |
|
|
276 | (12) |
|
15.2.1 Processes, action declarations, and process equations |
|
|
276 | (4) |
|
15.2.2 Semantical multi-actions |
|
|
280 | (1) |
|
15.2.3 Substitution on processes |
|
|
281 | (5) |
|
15.2.4 Operational semantics |
|
|
286 | (2) |
|
15.3 Validity of modal µ-calculus formulas |
|
|
288 | (2) |
|
15.4 Semantics of parameterized Boolean equation systems |
|
|
290 | (2) |
|
15.5 Soundness and completeness |
|
|
292 | (1) |
|
|
292 | (3) |
IV Appendixes |
|
295 | (64) |
|
|
297 | (8) |
|
A.1 Using the GUI or the command line interface |
|
|
297 | (1) |
|
A.2 A simple running example |
|
|
298 | (1) |
|
|
299 | (1) |
|
A.4 Manipulating the linear process |
|
|
299 | (1) |
|
A.5 Manipulating and visualizing state spaces |
|
|
300 | (2) |
|
A.6 Solving modal formulas and manipulating PBESs |
|
|
302 | (3) |
|
B Equational Definition of Built-In Data Types |
|
|
305 | (18) |
|
|
306 | (1) |
|
|
306 | (2) |
|
|
308 | (3) |
|
|
311 | (2) |
|
|
313 | (1) |
|
|
314 | (1) |
|
|
315 | (3) |
|
|
318 | (3) |
|
|
321 | (1) |
|
|
322 | (1) |
|
|
323 | (6) |
|
|
323 | (3) |
|
|
323 | (1) |
|
C.1.2 Functions for any data type |
|
|
323 | (1) |
|
C.1.3 Boolean expressions |
|
|
324 | (1) |
|
C.1.4 Structured-data expressions |
|
|
324 | (1) |
|
C.1.5 Numerical expressions |
|
|
324 | (1) |
|
C.1.6 Function expressions |
|
|
325 | (1) |
|
|
325 | (1) |
|
|
325 | (1) |
|
|
326 | (1) |
|
|
326 | (1) |
|
|
326 | (1) |
|
C.3.2 Regular expressions |
|
|
327 | (1) |
|
|
327 | (1) |
|
C.4 (Parameterized) Boolean equation systems |
|
|
327 | (2) |
|
D Syntax of the Formalisms |
|
|
329 | (8) |
|
|
329 | (1) |
|
|
329 | (1) |
|
D.3 Conventions to denote the context-free syntax |
|
|
329 | (1) |
|
D.4 Identifiers and numbers |
|
|
330 | (1) |
|
D.5 Sort expressions and sort declarations |
|
|
330 | (1) |
|
D.6 Constructors and mappings |
|
|
331 | (1) |
|
|
331 | (1) |
|
|
331 | (1) |
|
D.9 Communication and renaming sets |
|
|
332 | (1) |
|
|
333 | (1) |
|
|
333 | (1) |
|
D.12 Process and initial state declaration |
|
|
334 | (1) |
|
|
334 | (1) |
|
|
334 | (1) |
|
D.15 Boolean equation systems |
|
|
334 | (1) |
|
D.16 Parameterized Boolean equation systems |
|
|
335 | (1) |
|
|
335 | (1) |
|
|
335 | (1) |
|
|
336 | (1) |
|
D.20 Action rename specifications |
|
|
336 | (1) |
|
|
337 | (6) |
|
|
343 | (16) |
Bibliography |
|
359 | |