Introduction to Symbolic Model Checking and BDD's

# Temporal Verification of Reactive Systems: Safety

This preview shows pages 1–3. Sign up to view the full content.

CS256/Winter 2007 — Lecture #17 Zohar Manna 17-1 Introduction to Symbolic Model Checking and BDD’s References : Chapters 5 and 6 of E. M. Clarke, O. Grunberg, and D. A. Peled: Model Checking , MIT Press 1999. Randal Bryant: “Graph-Based Algorithms for Boolean Function Manipulation”. In IEEE Transactions on Computers , C-35-8, pp. 677–691, August, 1986. Fabio Somenzi: The CU Decision Diagram Pack- age . fabio/CUDD/ cuddIntro.html . 17-2 Symbolic Model Checking ( smc ) Invariance: Prove that P q 0 p , for p state formula P q / 1 ¬ p ⇔ ¬ p is not reachable by any computation (run) of P . 17-3 Algorithm Reach (Symbolic reachability) Algorithm Reach ( P : fts ) : set of states S ← { s Σ | s q Θ } // initial states repeat S 0 post ( S, P ) S S S 0 until S does not change in an iteration. // At termination, S represents the set of // P -reachable states. post ( S, P ) = { s 0 Σ | ∃ τ ∈ T ( P ) s S ( s, s 0 ) τ } An algorithm that acts only in terms of sets of states (vs. individual states) is called symbolic . 17-4

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Symbolic representation of sets of states Suppose that Σ contains 2 n states. Then we can map states into n -bit vectors. Example: If V = { d : 1 .. 31 , m : 1 .. 12 , y : - 4000 .. 4000 } , then it is enough to use n = d log 31 e + d log 12 e + d log 8001 e = 5 + 4 + 13 = 22 bits. A set of states S Σ is then represented as a boolean function f S : Bool n Bool , where Bool = { 0 , 1 } . (characteristic function), f S ( s ) = ( 1 if s S 0 if s 6∈ S 17-5 Example: Let D = {h d, m, y i valid dates. Then f D (00001 | {z } 1 0001 | {z } Jan 0 |{z} + 011111000110 | {z } 1980 = 1 f D (11111 | {z } 31 0010 | {z } Feb 0 |{z} + 011111000110 | {z } 1980 = 0 17-6 Symbolic representation of transition systems Let Σ be represented by a subset of Bool n . Θ : set of states, represented by f Θ : Bool n Bool . τ Σ × Σ : represented as f τ : Bool n × Bool n Bool Bool 2 n Bool . If f S ( x 1 , . . . , x n ) : Bool n Bool , f T ( x 1 , . . . , x n , x 0 1 , . . . , x 0 n ) : Bool 2 n Bool , f T = W τ T f τ , then post ( S, T ) is computed by post ( f S , f T ) = x 1 , . . . , x n ( f S ( x 1 , . . . , x n ) f T ( x 1 , . . . , x n , x 0 1 , . . . , x 0 n )) [ x 0 1 7→ x 1 , . . . , x 0 n 7→ x n ] Thus, all we need is an efficient data structure to represent boolean functions
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

### What students are saying

• As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

Kiran Temple University Fox School of Business ‘17, Course Hero Intern

• I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

Dana University of Pennsylvania ‘17, Course Hero Intern

• The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

Jill Tulane University ‘16, Course Hero Intern