unit 11 binary decision diagrams bdds
play

Unit-11: Binary Decision Diagrams (BDDs) B. Srivathsan Chennai - PowerPoint PPT Presentation

Unit-11: Binary Decision Diagrams (BDDs) B. Srivathsan Chennai Mathematical Institute NPTEL-course July - November 2015 1 / 24 Module 1: Introduction to BDDs 2 / 24 Model-checking Transition Systems + Properties + NuSMV State-space Bchi


  1. Unit-11: Binary Decision Diagrams (BDDs) B. Srivathsan Chennai Mathematical Institute NPTEL-course July - November 2015 1 / 24

  2. Module 1: Introduction to BDDs 2 / 24

  3. Model-checking Transition Systems + Properties + NuSMV State-space Büchi LTL CTL Automata Automata explosion properties properties Unit: 4 Unit: 5,6 Unit: 7,8 Unit: 9 Unit: 10 3 / 24

  4. In this unit: An efficient data structure for representing transition systems ◮ Module 1: Introduction to the data structure: Binary Decision Diagrams (BDDs) ◮ Module 2: Operations on BDDs ◮ Module 3: Using BDDs in the model-checking process 4 / 24

  5. In this unit: An efficient data structure for representing transition systems ◮ Module 1: Introduction to the data structure: Binary Decision Diagrams (BDDs) ◮ Module 2: Operations on BDDs ◮ Module 3: Using BDDs in the model-checking process Reference: Logic in Computer Science, 2 nd edition, by Huth and Ryan , Section 6.1 - 6.3 4 / 24

  6. Boolean functions 5 / 24

  7. x , y : Boolean variables 6 / 24

  8. x , y : Boolean variables f ( x , y ) = x + y Boolean function 6 / 24

  9. x , y : Boolean variables f ( x , y ) = x + y Boolean function 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 1 6 / 24

  10. x , y : Boolean variables f ( x , y ) = x + y Boolean function 0 + 0 = 0 Logical OR 0 + 1 = 1 1 + 0 = 1 1 + 1 = 1 6 / 24

  11. x , y : Boolean variables f ( x , y ) = x + y Boolean function 0 + 0 = 0 Logical OR 0 + 1 = 1 1 + 0 = 1 1 + 1 = 1 y x f ( x , y ) 0 0 0 0 1 1 Truth table 1 0 1 1 1 1 6 / 24

  12. x , y : Boolean variables 7 / 24

  13. x , y : Boolean variables f ( x , y ) = x · y Boolean function 7 / 24

  14. x , y : Boolean variables f ( x , y ) = x · y Boolean function 0 · 0 = 0 0 · 1 = 0 1 · 0 = 0 1 · 1 = 1 7 / 24

  15. x , y : Boolean variables f ( x , y ) = x · y Boolean function 0 · 0 = 0 Logical AND 0 · 1 = 0 1 · 0 = 0 1 · 1 = 1 7 / 24

  16. x , y : Boolean variables f ( x , y ) = x · y Boolean function 0 · 0 = 0 Logical AND 0 · 1 = 0 1 · 0 = 0 1 · 1 = 1 y x f ( x , y ) 0 0 0 0 1 0 Truth table 1 0 0 1 1 1 7 / 24

  17. x : Boolean variable 8 / 24

  18. x : Boolean variable f ( x ) = x Boolean function 8 / 24

  19. x : Boolean variable f ( x ) = x Boolean function 0 = 1 1 = 0 8 / 24

  20. x : Boolean variable f ( x ) = x Boolean function 0 = 1 Logical NOT 1 = 0 8 / 24

  21. x : Boolean variable f ( x ) = x Boolean function 0 = 1 Logical NOT 1 = 0 x f ( x ) 0 1 Truth table 1 0 8 / 24

  22. x 1 , x 2 ,..., x n : Boolean variables f : { x 1 , x 2 ,..., x n } �→ { 0,1 } Boolean function · Boolean operations + 9 / 24

  23. x 1 , x 2 ,..., x n : Boolean variables f : { x 1 , x 2 ,..., x n } �→ { 0,1 } Boolean function · Boolean operations + Examples: f 1 ( x , y ) = x + y , f 2 ( x , y , z ) = x · y + y · z , f 3 ( x , y , z ) = x + y · z 9 / 24

  24. Representing boolean functions 10 / 24

  25. f ( x , y , z ) = x · y + y · z y x z f 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 Truth table 11 / 24

  26. f ( x , y , z ) = x · y + y · z y x z f x 0 0 0 0 0 0 1 1 y y 0 1 0 0 0 1 1 0 z z z z 1 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 Truth table 11 / 24

  27. f ( x , y , z ) = x · y + y · z y x z f x 0 0 0 0 0 0 1 1 y y 0 1 0 0 0 1 1 0 z z z z 1 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 Binary Decision Tree Truth table 11 / 24

  28. Operations on truth tables 12 / 24

  29. g ( x , y , z ) = f ( x , y , z ) = x · y + y · z y x z f 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 13 / 24

  30. g ( x , y , z ) = f ( x , y , z ) = x · y + y · z y y g x z f x z 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 13 / 24

  31. g ( x , y , z ) = f ( x , y , z ) = x · y + y · z y y g x z f x z 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 13 / 24

  32. g ( x , y , z ) = f ( x , y , z ) = x · y + y · z y y g x z f x z 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 13 / 24

  33. g ( x , y , z ) = f ( x , y , z ) = x · y + y · z y y g x z f x z 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 13 / 24

  34. g ( x , y , z ) = f ( x , y , z ) = x · y + y · z y y g x z f x z 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 13 / 24

  35. g ( x , y , z ) = f ( x , y , z ) = x · y + y · z y y g x z f x z 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 13 / 24

  36. g ( x , y , z ) = f ( x , y , z ) = x · y + y · z y y g x z f x z 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 13 / 24

  37. g ( x , y , z ) = f ( x , y , z ) = x · y + y · z y y g x z f x z 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 13 / 24

  38. g ( x , y , z ) = f ( x , y , z ) = x · y + y · z y y g x z f x z 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 0 13 / 24

  39. y x z f f ( x , y , z ) = x · y + y · z 0 0 0 0 0 0 1 1 g ( x , y , z ) = x · y 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 y g x z 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 14 / 24

  40. y x z f f ( x , y , z ) = x · y + y · z 0 0 0 0 0 0 1 1 g ( x , y , z ) = x · y 0 1 0 0 0 1 1 0 h ( x , y , z ) = f ( x , y , z ) + g ( x , y , z ) 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 y g x z 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 14 / 24

  41. y x z f f ( x , y , z ) = x · y + y · z 0 0 0 0 0 0 1 1 g ( x , y , z ) = x · y 0 1 0 0 0 1 1 0 h ( x , y , z ) = f ( x , y , z ) + g ( x , y , z ) 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 y x z 0 0 0 0 0 1 0 1 0 y g x z 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 14 / 24

  42. y x z f f ( x , y , z ) = x · y + y · z 0 0 0 0 0 0 1 1 g ( x , y , z ) = x · y 0 1 0 0 0 1 1 0 h ( x , y , z ) = f ( x , y , z ) + g ( x , y , z ) 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 y x z h 0 0 0 0 0 1 0 1 0 y g x z 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 14 / 24

  43. y x z f f ( x , y , z ) = x · y + y · z 0 0 0 0 0 0 1 1 g ( x , y , z ) = x · y 0 1 0 0 0 1 1 0 h ( x , y , z ) = f ( x , y , z ) + g ( x , y , z ) 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 y x z h 0 0 0 1 0 0 1 0 1 0 y g x z 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 14 / 24

  44. y x z f f ( x , y , z ) = x · y + y · z 0 0 0 0 0 0 1 1 g ( x , y , z ) = x · y 0 1 0 0 0 1 1 0 h ( x , y , z ) = f ( x , y , z ) + g ( x , y , z ) 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 y x z h 0 0 0 1 0 0 1 1 0 1 0 y g x z 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 14 / 24

  45. y x z f f ( x , y , z ) = x · y + y · z 0 0 0 0 0 0 1 1 g ( x , y , z ) = x · y 0 1 0 0 0 1 1 0 h ( x , y , z ) = f ( x , y , z ) + g ( x , y , z ) 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 y x z h 0 0 0 1 0 0 1 1 0 1 0 0 y g x z 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 14 / 24

  46. y x z f f ( x , y , z ) = x · y + y · z 0 0 0 0 0 0 1 1 g ( x , y , z ) = x · y 0 1 0 0 0 1 1 0 h ( x , y , z ) = f ( x , y , z ) + g ( x , y , z ) 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 y x z h 0 0 0 1 0 0 1 1 0 1 0 0 y g x z 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 14 / 24

Recommend


More recommend