Professional Documents
Culture Documents
mc2022 Lec1 Handout
mc2022 Lec1 Handout
Overview
Joost-Pieter Katoen and Tim Quatmann Lecture 1/57 Joost-Pieter Katoen and Tim Quatmann Lecture 2/57
Introduction The Relevance of Software Reliability Introduction The Relevance of Software Reliability
Joost-Pieter Katoen and Tim Quatmann Lecture 3/57 Joost-Pieter Katoen and Tim Quatmann Lecture 4/57
Introduction The Relevance of Software Reliability Introduction The Relevance of Software Reliability
Software Reliability: Ariane 5 Flight 501 The Quest for Software Correctness
▶ Crash of European Ariane 5-missile in 1996
Joost-Pieter Katoen and Tim Quatmann Lecture 5/57 Joost-Pieter Katoen and Tim Quatmann Lecture 6/57
Introduction The Relevance of Software Reliability Introduction The Relevance of Software Reliability
1
See https://raygun.com/blog/costly-software-errors-history/
Joost-Pieter Katoen and Tim Quatmann Lecture 7/57 Joost-Pieter Katoen and Tim Quatmann Lecture 8/57
Introduction Formal Verification Introduction Formal Verification
2 Formal Verification
5 Course Organisation
Joost-Pieter Katoen and Tim Quatmann Lecture 9/57 Joost-Pieter Katoen and Tim Quatmann Lecture 10/57
▶ Syntax-based technique for concurrent programs (Pnueli, 1977) 3 Model Checking in a Nutshell
▶ handles properties referring to states during the computation
▶ based on proof rules expressed in temporal logic
4 Striking Model-Checking Examples
Joost-Pieter Katoen and Tim Quatmann Lecture 13/57 Joost-Pieter Katoen and Tim Quatmann Lecture 14/57
Model Checking Overview Paris Kanellakis Theory and Practice Award 1998
Joost-Pieter Katoen and Tim Quatmann Lecture 15/57 Joost-Pieter Katoen and Tim Quatmann Lecture 16/57
Introduction Model Checking in a Nutshell Introduction Model Checking in a Nutshell
“For work on model checking with finite automata." SPIN is a popular open-source software tool, used by
thousands of people worldwide, that can be used for the
formal verification of distributed software systems.
Some other winners: Shor, Sénizergues, Agrawal et al., . . .
Some other winners: TeX, Postscript, UNIX, TCP/IP, Java, Smalltalk
Joost-Pieter Katoen and Tim Quatmann Lecture 17/57 Joost-Pieter Katoen and Tim Quatmann Lecture 18/57
Joost-Pieter Katoen and Tim Quatmann Lecture 19/57 Joost-Pieter Katoen and Tim Quatmann Lecture 20/57
Introduction Model Checking in a Nutshell Introduction Model Checking in a Nutshell
Joost-Pieter Katoen and Tim Quatmann Lecture 21/57 Joost-Pieter Katoen and Tim Quatmann Lecture 22/57
Joost-Pieter Katoen and Tim Quatmann Lecture 23/57 Joost-Pieter Katoen and Tim Quatmann Lecture 24/57
Introduction Model Checking in a Nutshell Introduction Model Checking in a Nutshell
Joost-Pieter Katoen and Tim Quatmann Lecture 25/57 Joost-Pieter Katoen and Tim Quatmann Lecture 26/57
int x = 0;
proctype Inc () {
process Inc = while true do if x < 200 then x ∶= x + 1 od do :: true -> if :: (x < 200) -> x = x + 1 fi od
}
process Dec = while true do if x > 0 then x ∶= x − 1 od proctype Dec() {
do :: true -> if :: (x > 0) -> x = x - 1 fi od
process Reset = while true do if x = 200 then x ∶= 0 od }
proctype Reset () {
do :: true -> if :: (x == 200) -> x = 0 fi od
}
Question: is x always between (and including) 0 and 200?
init { run Inc() ; run Dec() ; run Reset() }
Joost-Pieter Katoen and Tim Quatmann Lecture 27/57 Joost-Pieter Katoen and Tim Quatmann Lecture 28/57
Introduction Model Checking in a Nutshell Introduction Model Checking in a Nutshell
Joost-Pieter Katoen and Tim Quatmann Lecture 29/57 Joost-Pieter Katoen and Tim Quatmann Lecture 30/57
Joost-Pieter Katoen and Tim Quatmann Lecture 31/57 Joost-Pieter Katoen and Tim Quatmann Lecture 32/57
Introduction Model Checking in a Nutshell Introduction Model Checking in a Nutshell
Joost-Pieter Katoen and Tim Quatmann Lecture 33/57 Joost-Pieter Katoen and Tim Quatmann Lecture 34/57
Abstraction Overview
2 Formal Verification
5 Course Organisation
Joost-Pieter Katoen and Tim Quatmann Lecture 37/57 Joost-Pieter Katoen and Tim Quatmann Lecture 38/57
▶ Transportation systems
▶ train model containing 10476 states
[Kars, Formal Methods in the Design of a Storm Surge Barrier Control System, 1996]
Joost-Pieter Katoen and Tim Quatmann Lecture 41/57 Joost-Pieter Katoen and Tim Quatmann Lecture 42/57
Joost-Pieter Katoen and Tim Quatmann Lecture 43/57 Joost-Pieter Katoen and Tim Quatmann Lecture 44/57
Introduction Striking Model-Checking Examples Introduction Striking Model-Checking Examples
Joost-Pieter Katoen and Tim Quatmann Lecture 45/57 Joost-Pieter Katoen and Tim Quatmann Lecture 46/57
Software in Space:
Joost-Pieter Katoen and Tim Quatmann Lecture 47/57 Joost-Pieter Katoen and Tim Quatmann Lecture 48/57
Introduction Striking Model-Checking Examples Introduction Course Organisation
5 Course Organisation
Joost-Pieter Katoen and Tim Quatmann Lecture 49/57 Joost-Pieter Katoen and Tim Quatmann Lecture 50/57
Joost-Pieter Katoen and Tim Quatmann Lecture 51/57 Joost-Pieter Katoen and Tim Quatmann Lecture 52/57
Introduction Course Organisation Introduction Course Organisation
Joost-Pieter Katoen and Tim Quatmann Lecture 53/57 Joost-Pieter Katoen and Tim Quatmann Lecture 54/57
Joost-Pieter Katoen and Tim Quatmann Lecture 55/57 Joost-Pieter Katoen and Tim Quatmann Lecture 56/57
Questions?
UnRAVeL - What‘s new?
Research in Progress: a Survey Lecture
19.04. Signal Processing on Graphs and Complexes
26.04. Acceptance of Driverless Trains
03.05. Improving Automatic Complexity Analysis of Probabilistic and Non-Probabilistic Integer Programs
10.05. Graph Representations Based on Homomorphisms
17.05. A Branch & Bound Algorithm for Robust Binary Optimization with Budget Uncertainty
24.05. The Challenge of Compositionality for Stochastic Hybrid Systems
14.06. Constructing ω-Automata from Examples
Next Lecture: Monday April 11, 10:30 21.06.
28.06.
Uncertainty Bounds for Gaussian Process Regression with Applications to Safe Control and Learning
Stackelberg Network Pricing Games
01010101 01101110
05.07. Tractable Reasoning in First-Order Knowledge Bases 01010010 01000001
01010110 01100101
01001100
In these talks, UnRAVeL professors will present their recently published paper. The survey lecture will take place as hybrid
event. Each talk will be given in person, Tuesdays from 16:30 to 18:00 in the Department of Computer Science,
Ahornstr. 55, building E2 (no. 2356), ground floor, room: B-IT 5053.2. In addition, you can join via Zoom. For all
information, please scan the QR code on the right or visit https://www.unravel.rwth-aachen.de/cms/~pzix.