02291: System Integration Symbolic Model Checking Hubert Baumeister - - PowerPoint PPT Presentation

02291 system integration
SMART_READER_LITE
LIVE PREVIEW

02291: System Integration Symbolic Model Checking Hubert Baumeister - - PowerPoint PPT Presentation

02291: System Integration Symbolic Model Checking Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2020 Model Checking M | = Models M are Kripke structures Formulas are Computational Tree Logic


slide-1
SLIDE 1

02291: System Integration

Symbolic Model Checking Hubert Baumeister

huba@dtu.dk

DTU Compute Technical University of Denmark

Spring 2020

slide-2
SLIDE 2

Model Checking

M | = φ ◮ Models M are Kripke structures ◮ Formulas φ are Computational Tree Logic (CTL) formulas ◮ Proving: Model checking

◮ How to decide | =? ◮ Compute [|φ|] = {s | M, s | = φ} ◮ Then

M | = φ if and only if I ⊆ [|φ|]

slide-3
SLIDE 3

How to compute [|φ|]?

Minimal set of operators

CTL formulae can be basically reduced to

  • a. p, ¬φ, φ ∨ ψ
  • b. EX φ
  • c. EG φ

For example ◮ AG φ can be expressed as ¬EF ¬φ

slide-4
SLIDE 4

How to compute [|φ|]?

a [|p|] = {s | p ∈ λ(s)} for basic propositions p ∈ V b [|¬φ|] = S \ [|φ|] c [|EX φ|] = R−1([|φ|]) = {s | ∃t : (s, t) ∈ R and t ∈ [|φ|]} d [|EG φ|] = [|φ|] ∩ R−1([|EG φ|])

◮ EG φ ⇔ φ ∧ EX EG φ ◮ We are looking for the greatest fixpoint of this equation ◮ Kleene’s fixpoint theorem allows to compute the greatest fixpoint by

1 π0 = S 2 π1 = [|φ|] ∩ R−1(π0) . . . n πn = [|φ|] ∩ R−1(πn−1) → πm is the greatest fixpoint if πm = πm−1

slide-5
SLIDE 5

Greatest fixpoint

∃S ⊆ N : S = S ∩ {3}

slide-6
SLIDE 6

Example: EG y

π0 = S

slide-7
SLIDE 7

Example: EG y: 1. Iteration

π1 = [|y|] ∩ R−1(π0)

slide-8
SLIDE 8

Example: EG y: 1. Iteration

π1 = [|y|] ∩ R−1(π0)

slide-9
SLIDE 9

Example: EG y: 1. Iteration

π1 = [|y|] ∩ R−1(π0)

slide-10
SLIDE 10

Example: EG y: 1. Iteration

π1 = [|y|] ∩ R−1(π0)

slide-11
SLIDE 11

Example: EG y: 2. Iteration

π2 = [|y|] ∩ R−1(π1)

slide-12
SLIDE 12

Example: EG y: 2. Iteration

π2 = [|y|] ∩ R−1(π1)

slide-13
SLIDE 13

Example: EG y: 2. Iteration

π2 = [|y|] ∩ R−1(π1)

slide-14
SLIDE 14

Example: EG y: 2. Iteration

π2 = [|y|] ∩ R−1(π1)

slide-15
SLIDE 15

Example: EG y: 3. Iteration

π3 = [|y|] ∩ R−1(π2)

slide-16
SLIDE 16

Example: EG y: 3. Iteration

π3 = [|y|] ∩ R−1(π2)

slide-17
SLIDE 17

Example: EG y: 3. Iteration

π3 = [|y|] ∩ R−1(π2)

slide-18
SLIDE 18

Example: EG y: 3. Iteration

π3 = [|y|] ∩ R−1(π2)

slide-19
SLIDE 19

Example: EG y: Conclusion

◮ π3 = π2 is the greatest fixpoint ◮ [|EG y|] = {s0, s2, s4}, i.e., EG y holds for states s0, s2, and s4 ◮ M | = EG y because I = {s0, s1} ⊆ [|EG y|]

slide-20
SLIDE 20

Model checking

◮ Press button technology

◮ Spin, Upaal, . . .

◮ Problems

◮ Finite state space ◮ State explosion

◮ UML and Model checking

◮ State machines = Kripke structures

slide-21
SLIDE 21

Advanced reading

◮ Kenneth L. McMillan’s thesis on ”Symbolic Model Checking” http://www.kenmcmil.com/thesis.html 1999 ◮ E. Clarke, O. Grumberg, D. Peled ”Model Checking” MIT Press1999 ◮ EM Clarke, BH Schlingloff ”Model Checking” Chapter 21 in Handbook of Automated Reasoning - Elsevier Science Publishers BV, Amsterdam, The Netherlands, 2000 http://www2.informatik.hu-berlin.de/˜hs/ Publikationen/2000_Handbook-of-Automated-Reasoning_ Clarke-Schlingloff_Model-Checking.ps ◮ St. Merz ”Model Checking: A Tutorial Overview” http://www.loria.fr/˜merz/papers/mc-tutorial.pdf 2001

slide-22
SLIDE 22

Model checker

◮ For model checking UML state machines and UML collaborations

◮ Hugo/RT http: //www.pst.ifi.lmu.de/Forschung/projekte/hugo/index.html ◮ UMC http://fmt.isti.cnr.it/umc

◮ General model checker

◮ nuSMV http://nusmv.fbk.eu/ ◮ Spin http://netlib.bell-labs.com/netlib/spin/whatispin.html ◮ Uppaal http://www.uppaal.com/ ◮ Links to other model checkers http://en.wikipedia.org/wiki/Model_checking