SLIDE 1
Formal Verification using Parity Games
Mathias N. Justesen
DTU Compute, Technical University of Denmark (DTU)
SLIDE 2 Overview
Background
- Many problems within formal verification can be reduced to solving parity games
- Model checking (Stirling, 1995)
- Controller synthesis (Arnold et al. , 2003)
- Satisfiability (Friedmann & Lange, 2009b)
2 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 3 Overview
Background
- Many problems within formal verification can be reduced to solving parity games
- Model checking (Stirling, 1995)
- Controller synthesis (Arnold et al. , 2003)
- Satisfiability (Friedmann & Lange, 2009b)
- Practical work restricted to model checking
- mCRL2 and LTSmin
- PBES to parity game
2 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 4 Overview
Background
- Many problems within formal verification can be reduced to solving parity games
- Model checking (Stirling, 1995)
- Controller synthesis (Arnold et al. , 2003)
- Satisfiability (Friedmann & Lange, 2009b)
- Practical work restricted to model checking
- mCRL2 and LTSmin
- PBES to parity game
- Verification framework based on parity game solving
2 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 5
Overview
Framework
Controller synthesis Satisfiability Model checking Parity game Solution Controller Truth assignment Constructive proof Counter-example 1. 2. 3. Backend
3 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 6 Overview
Framework
Controller synthesis Satisfiability Model checking Parity game Solution Controller Truth assignment Constructive proof Counter-example 1. 2. 3. Backend
1 Model-checking for the modal µ-calculus
- Semantics based on evaluation games
- Conversion from evaluation game to parity game
3 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 7 Overview
Framework
Controller synthesis Satisfiability Model checking Parity game Solution Controller Truth assignment Constructive proof Counter-example 1. 2. 3. Backend
1 Model-checking for the modal µ-calculus
- Semantics based on evaluation games
- Conversion from evaluation game to parity game
2 Use solution to construct proof or counter-example
3 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 8 Overview
Framework
Controller synthesis Satisfiability Model checking Parity game Solution Controller Truth assignment Constructive proof Counter-example 1. 2. 3. Backend
1 Model-checking for the modal µ-calculus
- Semantics based on evaluation games
- Conversion from evaluation game to parity game
2 Use solution to construct proof or counter-example 3 Backend based on PGSolver
- Solve parity games in normal form
3 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 9
Parity Game
6 2 3 7 4 5 8 1 Player 0 Player 1
4 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 10 Modal µ-calculus
Model Checking
= ϕ?
5 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 11 Modal µ-calculus
Model Checking
= ϕ?
- M is a Labelled Transition System
s0 p s1 p,q b a a
5 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 12 Modal µ-calculus
Model Checking
= ϕ?
- M is a Labelled Transition System
s0 p s1 p,q b a a
- Formulas of modal µ-calculus given proposition variables P and actions A:
ϕ ::= ⊤ | ⊥ | p | ¬p | ϕ ∧ ϕ | ϕ ∨ ϕ | aϕ | [a]ϕ | µx.ϕ | νx.ϕ where p, x ∈ P and a ∈ A
5 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 13
Modal µ-calculus
Evaluation Game
µx.p ∨ [a]x, s0 p ∨ [a]x, s0 p, s0 [a]x, s0 x, s0 x, s1 p ∨ [a]x, s1 p, s1 [a]x, s1 s0 s1 p µx.p ∨ [a]x Player 0: Prove Player 1: Disprove M, s0 | = ϕ iff (ϕ, s0) ∈ W0 Constructive proof or counter-example by the strategy of the winning player Construction cf. (Venema, 2008) a a a
6 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 14
Modal µ-calculus
Evaluation Game
µx.p ∨ [a]x, s0 p ∨ [a]x, s0 p, s0 [a]x, s0 x, s0 x, s1 p ∨ [a]x, s1 p, s1 [a]x, s1 s0 s1 p µx.p ∨ [a]x Player 0: Prove Player 1: Disprove M, s0 | = ϕ iff (ϕ, s0) ∈ W0 Constructive proof or counter-example by the strategy of the winning player Construction cf. (Venema, 2008) a a a
6 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 15
Modal µ-calculus
Evaluation Game
µx.p ∨ [a]x, s0 p ∨ [a]x, s0 p, s0 [a]x, s0 x, s0 x, s1 p ∨ [a]x, s1 p, s1 [a]x, s1 s0 s1 p µx.p ∨ [a]x Player 0: Prove Player 1: Disprove M, s0 | = ϕ iff (ϕ, s0) ∈ W0 Constructive proof or counter-example by the strategy of the winning player Construction cf. (Venema, 2008) a a a
6 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 16
Modal µ-calculus
Evaluation Game
µx.p ∨ [a]x, s0 p ∨ [a]x, s0 p, s0 [a]x, s0 x, s0 x, s1 p ∨ [a]x, s1 p, s1 [a]x, s1 s0 s1 p µx.p ∨ [a]x Player 0: Prove Player 1: Disprove M, s0 | = ϕ iff (ϕ, s0) ∈ W0 Constructive proof or counter-example by the strategy of the winning player Construction cf. (Venema, 2008) a a a
6 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 17
Modal µ-calculus
Evaluation Game
µx.p ∨ [a]x, s0 p ∨ [a]x, s0 p, s0 [a]x, s0 x, s0 x, s1 p ∨ [a]x, s1 p, s1 [a]x, s1 s0 s1 p µx.p ∨ [a]x Player 0: Prove Player 1: Disprove M, s0 | = ϕ iff (ϕ, s0) ∈ W0 Constructive proof or counter-example by the strategy of the winning player Construction cf. (Venema, 2008) a a a
6 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 18
Modal µ-calculus
Evaluation Game
µx.p ∨ [a]x, s0 p ∨ [a]x, s0 p, s0 [a]x, s0 x, s0 x, s1 p ∨ [a]x, s1 p, s1 [a]x, s1 s0 s1 p µx.p ∨ [a]x Player 0: Prove Player 1: Disprove M, s0 | = ϕ iff (ϕ, s0) ∈ W0 Constructive proof or counter-example by the strategy of the winning player Construction cf. (Venema, 2008) a a a
6 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 19
Modal µ-calculus
Evaluation Game
µx.p ∨ [a]x, s0 p ∨ [a]x, s0 p, s0 [a]x, s0 x, s0 x, s1 p ∨ [a]x, s1 p, s1 [a]x, s1 s0 s1 p µx.p ∨ [a]x Player 0: Prove Player 1: Disprove M, s0 | = ϕ iff (ϕ, s0) ∈ W0 Constructive proof or counter-example by the strategy of the winning player Construction cf. (Venema, 2008) a a a
6 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 20
Modal µ-calculus
Evaluation Game
µx.p ∨ [a]x, s0 p ∨ [a]x, s0 p, s0 [a]x, s0 x, s0 x, s1 p ∨ [a]x, s1 p, s1 [a]x, s1 s0 s1 p µx.p ∨ [a]x Player 0: Prove Player 1: Disprove M, s0 | = ϕ iff (ϕ, s0) ∈ W0 Constructive proof or counter-example by the strategy of the winning player Construction cf. (Venema, 2008) a a a
6 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 21
Modal µ-calculus
Evaluation Game
µx.p ∨ [a]x, s0 p ∨ [a]x, s0 p, s0 [a]x, s0 x, s0 x, s1 p ∨ [a]x, s1 p, s1 [a]x, s1 s0 s1 p µx.p ∨ [a]x Player 0: Prove Player 1: Disprove M, s0 | = ϕ iff (ϕ, s0) ∈ W0 Constructive proof or counter-example by the strategy of the winning player Construction cf. (Venema, 2008) a a a
6 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 22
Modal µ-calculus
Evaluation Game
µx.p ∨ [a]x, s0 p ∨ [a]x, s0 p, s0 [a]x, s0 x, s0 x, s1 p ∨ [a]x, s1 p, s1 [a]x, s1 s0 s1 p µx.p ∨ [a]x Player 0: Prove Player 1: Disprove M, s0 | = ϕ iff (ϕ, s0) ∈ W0 Constructive proof or counter-example by the strategy of the winning player Construction cf. (Venema, 2008) a a a
6 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 23
Modal µ-calculus
Evaluation Game
µx.p ∨ [a]x, s0 p ∨ [a]x, s0 p, s0 [a]x, s0 x, s0 x, s1 p ∨ [a]x, s1 p, s1 [a]x, s1 s0 s1 p µx.p ∨ [a]x Player 0: Prove Player 1: Disprove M, s0 | = ϕ iff (ϕ, s0) ∈ W0 Constructive proof or counter-example by the strategy of the winning player Construction cf. (Venema, 2008) a a a
6 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 24
Modal µ-calculus
Evaluation Game
µx.p ∨ [a]x, s0 p ∨ [a]x, s0 p, s0 1 [a]x, s0 x, s0 1 x, s1 1 p ∨ [a]x, s1 p, s1 2 [a]x, s1 s0 s1 p µx.p ∨ [a]x Player 0: Prove Player 1: Disprove M, s0 | = ϕ iff (ϕ, s0) ∈ W0 Constructive proof or counter-example by the strategy of the winning player Construction cf. (Venema, 2008) a a a
7 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 25
Modal µ-calculus
Evaluation Game
µx.p ∨ [a]x, s0 p ∨ [a]x, s0 p, s0 1 [a]x, s0 x, s0 1 x, s1 1 p ∨ [a]x, s1 p, s1 2 [a]x, s1 s0 s1 p µx.p ∨ [a]x Player 0: Prove Player 1: Disprove M, s0 | = ϕ iff (ϕ, s0) ∈ W0 Constructive proof or counter-example by the strategy of the winning player Construction cf. (Venema, 2008) a a a
7 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 26
Modal µ-calculus
Evaluation Game
µx.p ∨ [a]x, s0 p ∨ [a]x, s0 p, s0 1 [a]x, s0 x, s0 1 x, s1 1 p ∨ [a]x, s1 p, s1 2 [a]x, s1 s0 s1 p µx.p ∨ [a]x Player 0: Prove Player 1: Disprove M, s0 | = ϕ iff (ϕ, s0) ∈ W0 Constructive proof or counter-example by the strategy of the winning player Construction cf. (Venema, 2008) a a a
7 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 27
Backend Solver
8 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 28 Backend Solver
- Dominion Decomposition Algorithm (Jurdzinski et al. , 2008)
- Runtime: O(n
√n)
- Bad performance in practice
8 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 29 Backend Solver
- Dominion Decomposition Algorithm (Jurdzinski et al. , 2008)
- Runtime: O(n
√n)
- Bad performance in practice
- Zielonka’s Recursive Algorithm (Zielonka, 1998)
- Runtime: O(nd)
- Good performance in practice (Friedmann & Lange, 2009a)
8 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 30 Backend Solver
- Dominion Decomposition Algorithm (Jurdzinski et al. , 2008)
- Runtime: O(n
√n)
- Bad performance in practice
- Zielonka’s Recursive Algorithm (Zielonka, 1998)
- Runtime: O(nd)
- Good performance in practice (Friedmann & Lange, 2009a)
- Normal-Form Algorithm 1 (Vester, 2015)
- Considers parity games in normal form
8 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 31 Backend Solver
- Dominion Decomposition Algorithm (Jurdzinski et al. , 2008)
- Runtime: O(n
√n)
- Bad performance in practice
- Zielonka’s Recursive Algorithm (Zielonka, 1998)
- Runtime: O(nd)
- Good performance in practice (Friedmann & Lange, 2009a)
- Normal-Form Algorithm 1 (Vester, 2015)
- Considers parity games in normal form
- Normal-Form Algorithm 2
- Improved version of Normal-Form Algorithm 1
8 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 32 Normal Form
Definition
- A parity game in normal form if
9 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 33 Normal Form
Definition
- A parity game in normal form if
- It is truly turn-based,
9 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 34 Normal Form
Definition
- A parity game in normal form if
- It is truly turn-based,
- Player 0 controls only nodes of even priority, and
- Player 1 controls only nodes of odd priority
9 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 35
Normal Form
Example
3 4 1 5
10 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 36
Normal Form
Example
3 4 1 5
11 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 37
Normal Form
Example
3 4 1 5
12 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 38
Normal Form
Example
3 4 1 5
13 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 39
Normal Form
Example
3 4 1 5
14 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 40
Normal Form
Example
3 4 1 5
15 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 41
Normal Form
Example
3 4 1 5
16 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 42 Normal Form
Advantages and Disadvantages
- Quickly decide if a node is winning for Player 0 or Player 1
17 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 43 Normal Form
Advantages and Disadvantages
- Quickly decide if a node is winning for Player 0 or Player 1
- Many recursive calls - one per node
17 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 44 Normal Form
Advantages and Disadvantages
- Quickly decide if a node is winning for Player 0 or Player 1
- Many recursive calls - one per node
- Normal-Form Algorithm 2 addresses this issue by considering all nodes of the
same priority at the same time
17 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 45 Normal Form
Advantages and Disadvantages
- Quickly decide if a node is winning for Player 0 or Player 1
- Many recursive calls - one per node
- Normal-Form Algorithm 2 addresses this issue by considering all nodes of the
same priority at the same time
- Algorithms restricted to games in normal form
17 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 46 Normal Form
Transformation
p v ∈ Vj p + 2 v 1 − j v′ p + 2 v j v′ j v′′ p m
2 = j p m
2
j
18 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 47 Benchmark
Comparison of Algorithms
Not NF Pre-NF NF n, d, degmin, degmax Zie NF1 NF2 Zie NF1 NF2 Zie NF1 NF2 100, 100, 2, 4 0.00 10.55 0.42 0.00 10.58 0.41 0.00 0.04 0.02 100, 100, 2, 10 0.00 6.13 0.29 0.00 6.16 0.28 0.00 0.01 0.01 100, 100, 2, 100 0.00 3.47 0.18 0.00 3.45 0.19 0.01 0.01 0.01 200, 200, 2, 4 0.00 11.01 0.00 10.78 0.01 0.43 0.23 200, 200, 2, 10 0.00 2.37 0.00 2.29 0.01 0.22 0.16 200, 200, 2, 200 0.01 69.29 2.29 0.01 52.05 2.27 0.05 0.05 0.03 500, 500, 2, 4 0.00 0.01 0.07 500, 500, 2, 10 0.01 0.03 0.10 13.24 6.31 500, 500, 2, 500 0.07 78.01 0.08 77.18 1.11 1.04 0.73
0.00 0.03 0.01
0.01 5.94 0.75
0.07 94.36
19 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 48
Benchmark
Testing the Limits
ϕn = ψn ∨ ¬ψn
20 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 49 Benchmark
Testing the Limits
ϕn = ψn ∨ ¬ψn ψn = µx1.νx2 . . . ηnxn.
- q1 ∨
- x1 ∧
- q2 ∨ (x1 ∧ . . . (qn ∨ xn))
- 20
DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 50 Benchmark
Testing the Limits
ϕn = ψn ∨ ¬ψn ψn = µx1.νx2 . . . ηnxn.
- q1 ∨
- x1 ∧
- q2 ∨ (x1 ∧ . . . (qn ∨ xn))
- ϕ =
- a∈A
aϕ
20 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 51 Benchmark
Testing the Limits
ϕn = ψn ∨ ¬ψn ψn = µx1.νx2 . . . ηnxn.
- q1 ∨
- x1 ∧
- q2 ∨ (x1 ∧ . . . (qn ∨ xn))
- ϕ =
- a∈A
aϕ a
(a) L1
a b
(b) L2
a b c
(c) L3
20 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 52
Benchmark
Testing the Limits
LTS Nodes n Time L1 12.000 1024 3:27.4 L2 786.000 16 0:03.6 L2 1.573.000 17 0:03.8 L3 413.000 10 0:01.8 L3 1.240.000 11 0:05.6 L3 3.720.000 12 0:07.6
21 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 53 Benchmark
Testing the Limits
LTS Nodes n Time L1 12.000 1024 3:27.4 L2 786.000 16 0:03.6 L2 1.573.000 17 0:03.8 L3 413.000 10 0:01.8 L3 1.240.000 11 0:05.6 L3 3.720.000 12 0:07.6 State space: O
DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 54 Conclusions
- Parity game solving is well suited for model checking
22 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 55 Conclusions
- Parity game solving is well suited for model checking
- Zielonka’s Algorithm works well in practice
22 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 56 Conclusions
- Parity game solving is well suited for model checking
- Zielonka’s Algorithm works well in practice
- Future work
22 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 57 Conclusions
- Parity game solving is well suited for model checking
- Zielonka’s Algorithm works well in practice
- Future work
- Specialized algorithms
22 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 58 Conclusions
- Parity game solving is well suited for model checking
- Zielonka’s Algorithm works well in practice
- Future work
- Specialized algorithms
- Winning cores
22 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 59 Conclusions
- Parity game solving is well suited for model checking
- Zielonka’s Algorithm works well in practice
- Future work
- Specialized algorithms
- Winning cores
- Controller synthesis (Arnold et al. , 2003; Ramadge & Wonham, 1989)
22 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 60 Conclusions
- Parity game solving is well suited for model checking
- Zielonka’s Algorithm works well in practice
- Future work
- Specialized algorithms
- Winning cores
- Controller synthesis (Arnold et al. , 2003; Ramadge & Wonham, 1989)
- Symbolic representation of parity games (Kant & van de Pol, 2014)
22 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 61 References I
Arnold, A., Vincent, A., & Walukiewicz, I. 2003. Games for synthesis of controllers with partial observation. Theoretical Computer Science, 303(1), 7 – 34. Logic and Complexity in Computer Science. Artale, Alessandro. 2011. Formal Methods — Lecture III: Linear Temporal
- Logic. URL: https://www.inf.unibz.it/∼artale/FM/slide3.pdf.
Friedmann, Oliver, & Lange, Martin. 2009a. Solving Parity Games in
- Practice. Pages 182–196 of: Liu, Zhiming, & Ravn, Anders P. (eds),
Automated Technology for Verification and Analysis. Lecture Notes in Computer Science, vol. 5799. Springer Berlin Heidelberg. Friedmann, Oliver, & Lange, Martin. 2009b. Tableaux with automata. In:
- Proc. Workshop on Tableaux vs. Automata as Logical Decision
Procedures, AutoTab, vol. 9. Jurdzinski, Marcin, Paterson, Mike, & Zwick, Uri. 2008. A deterministic subexponential algorithm for solving parity games. SIAM Journal on Computing, 38(4), 1519–1532.
23 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 62 References II
Kant, Gijs, & van de Pol, Jaco. 2014. Generating and Solving Symbolic Parity Games. Pages 2–14 of: Proceedings 3rd Workshop on GRAPH Inspection and Traversal Engineering, GRAPHITE 2014, Grenoble, France, 5th April 2014. Ramadge, P.J.G., & Wonham, W.M. 1989. The control of discrete event
- systems. Proceedings of the IEEE, 77(1), 81–98.
Stirling, Colin. 1995. Local model checking games. Pages 1–11 of: CONCUR’95: Concurrency Theory. Springer. Venema, Yde. 2008. Lectures on the modal µ-calculus. Institute for Logic, Language and Computation, University of Amsterdam. Vester, Steen. 2015. A New Algorithm for Solving Parity Games. Zielonka, Wieslaw. 1998. Infinite games on finitely coloured graphs with applications to automata on infinite trees. Theoretical Computer Science, 200(1–2), 135 – 183.
24 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 63
Appendix
Implementation
LTS file µMC-formula file Graph representation Tree representation Parity Game Winning regions and strategies Yes/No Tree Ltsparser Mucalclexer Mucalcparser Mucalc Egtopg PGSolver Zielonka Mucalcmc 25 DTU Compute Formal Verification using Parity Games, NWPT 2015
SLIDE 64
Appendix
Mutual Exclusion
s0 start Na, Nb s1 Ta, Nb s2 Ca, Nb s3 Ta, Tb s4 Ca, Tb s5 Na, Tb s6 Ta, Tb s7 Na, Cb s8 Ta, Cb Safety: ¬(Ca ∧ Cb) Liveness: ♦Ca (Ta → ♦Ca) Fairness: ♦Ca ♦Ta → ♦Ca a b a b b a a a a b b a b b Example from (Artale, 2011)
26 DTU Compute Formal Verification using Parity Games, NWPT 2015