|
Summary: Contents
Foreword xiii
Preface xv
1 System Verification 1
1.1 Model Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Characteristics of Model Checking . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.1 The Model-Checking Process . . . . . . . . . . . . . . . . . . . . . . 11
1.2.2 Strengths and Weaknesses . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Bibliographic Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2 Modelling Concurrent Systems 19
2.1 Transition Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.1 Executions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1.2 Modeling Hardware and Software Systems . . . . . . . . . . . . . . . 26
2.2 Parallelism and Communication . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.2.1 Concurrency and Interleaving . . . . . . . . . . . . . . . . . . . . . . 36
2.2.2 Communication via Shared Variables . . . . . . . . . . . . . . . . . . 39
2.2.3 Handshaking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2.4 Channel Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.2.5 NanoPromela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.2.6 Synchronous Parallelism . . . . . . . . . . . . . . . . . . . . . . . . . 75
|