Cover
Half-title
Title
Copyright
Contents
Preface
Structure of this book
How to read this book
Intended audience
Courses based on this book
Acknowledgements
List of symbols
1 Introduction
1.1 What is a real-time system?
1.2 System properties
1.3 Generalised railroad crossing
1.3.1 The problem
1.3.2 Formalisation
1.4 Gas burner
1.4.1 The problem
1.4.2 Formalisation
1.4.3 Design
1.5 Aims of this book
1.5.1 Duration Calculus
1.5.2 Timed automata
1.5.3 PLC-Automata
1.5.4 Tying it all together
1.6 Exercises
1.7 Bibliographic remarks
2 Duration Calculus
2.1 Preview
2.2 Syntax and semantics
2.2.1 Symbols
2.2.2 State assertions
2.2.3 Terms
2.2.4 Formulas
2.2.5 Validity, satisfiability, and realisability
2.3 Specification and correctness proof
2.3.1 Gas burner revisited
2.4 Proof rules
2.4.1 Predicate calculus
2.4.2 Equality
2.4.4 Interval logic
2.4.5 Durations
2.4.6 Induction
2.4.7 Application to the gas burner
2.4.8 Further rules
Interval logic
Modal operators
Duration operator
Classic induction rule
2.5 Exercises
2.6 Bibliographic remarks
3 Properties and subsets of DC
3.1 Decidability results
3.1.1 Decidability for discrete time
Expressiveness of RDC
Realisability problem
Construction of L(F)
3.1.2 Undecidability for continuous time
Two-counter machines
Reduction of two-counter machines to DC
Discussion
3.2 Implementables
3.2.1 A controller for the gas burner
3.2.2 Correctness proof
3.3 Constraint Diagrams
3.3.1 Syntax and semantics
Phase sequence constraints
Length requirements
3.3.2 Generalised railroad crossing revisited
3.3.3 A real-time filter
3.3.4 Expressiveness
3.4 Exercises
3.5 Bibliographic remarks
4 Timed automata
4.1 Timed automata
4.2 Networks of timed automata
4.3 Reachability is decidable
4.3.1 Location reachability
4.3.2 Constraint reachability
4.4 The model checker UPPAAL
4.4.1 Data variables
4.4.2 Structuring facilities
4.4.3 Restricting nondeterminism
4.4.4 Operational semantics of networks
4.4.5 The logic of UPPAAL
4.5 Exercises
4.6 Bibliographic remarks
5 PLC-Automata
5.1 Programmable Logic Controllers
5.2 PLC-Automata
5.3 Translation into PLC source code
5.4 Duration Calculus semantics
5.4.1 Reaction times
5.5 Synthesis from DC implementables
5.5.1 Synthesis algorithm
5.6 Extensions of PLC-Automata
5.6.1 Hierarchical PLC-Automata
5.6.2 Data and timer variables
5.6.3 Networks of PLC-Automata
Parallel composition
Sequential composition
5.7 Exercises
5.8 Bibliographic remarks
6 Automatic verification
6.1 The approach
6.2 Requirements
6.2.1 Railroad crossing
6.2.2 Constructing test automata
Safety
Utility
6.2.3 Discussion
6.2.4 Automatically generated test automata
Test automata for DC implementables
Test automata for counterexample formulas
6.3 Specification
6.3.1 Railroad crossing
6.3.2 Timed automata semantics of PLC-Automata
6.4 Verification
6.4.1 Railroad crossing
Verifying safety
Verifying utility
6.4.2 Discussion
6.4.3 Separated assumptions
Application to railroad crossing
Discussion
6.4.4 Plant, sensors, and actuators
Application to railroad crossing
6.5 The tool Moby/RT
6.6 Summary
6.7 Exercises
6.8 Bibliographic remarks
Notations
Logic
Sets
Relations
Functions
Real numbers
Words and languages
Finite automata and regular languages
Transition systems
Bibliographic remarks
Bibliography
Index