Binary Decision Diagrams
|
|
- David Weaver
- 5 years ago
- Views:
Transcription
1 5-44 Bug Catching: Automated Program Verification and Testing based on slides by SagarChaki 2 Carnegie Mellon University
2 BDDs in a nutshell Typically mean Reduced Ordered (ROBDDs) Canonical representation of Boolean formulas Often substantially more compact than a traditional normal form Can be manipulated very efficiently Conjunction, Disjunction, Negation, Existential Quantification R. E. Bryant. Graph-based algorithms for boolean function manipulation. IEEE Transactions on Computers, C-35(8),
3 Running Example: Comparator a a 2 b b 2 Comparator f =,a = b Æa 2 = b 2 3
4 Conjunctive Normal Form f a = b Æ a 2 = b 2 a )b Æb )a Æ a 2 )b 2 Æb 2 )a 2 (:a Çb ) Æ(:b Ça ) Æ(:a 2 Çb 2 ) Æ(:b 2 Ça 2 ) (:b Ça ) Æ(:a Çb ) Æ(:a 2 Çb 2 ) Æ(:b 2 Ça 2 ) Not Canonical 4
5 Truth Table () a b a 2 b 2 f Still Not Canonical 5
6 Truth Table (2) a a 2 b b 2 f Canonical if you fix variable order. But always exponential in # of variables. Let s try to fix this. 6
7 Shannon s / Boole s Expansion Every Boolean formula f(a, a,, a n ) can be written as (a Æf(true, a,, a n )) Ç(:a Æf(false, a,, a n )) or, simply, ITE (a, f(true, a,, a n ), f(false, a,, a n )) where ITE stands for If-Then-Else The formula f(true, a,, a n ) is called the cofactorof f w.r.t. a The formula f(false, a,, a n ) is called the cofactorof f w.r.t. :a 7
8 Representing a Truth Table using a Graph a a 2 a 2 a 2 a 2 Binary Decision Tree (in this case ordered) 8
9 Binary Decision Tree: Formal Definition Balanced binary tree. Length of each path = # of variables Leaf nodes labeled with either or Internal node v labeled with a Boolean variable var(v) Every node on a path labeled with a different variable Internal node v has two children: low(v) and high(v) Each path corresponds to a (partial) truth assignment to variables Assign to var(v) if low(v) is in the path, and if high(v) is in the path Value of a leaf is determined by: Constructing the truth assignment for the path leading to it from the root Looking up the truth table with this truth assignment 9
10 Binary Decision Tree low(v) v a var(v) = a high(v) a 2 a 2 a 2 a 2
11 Binary Decision Tree a b a 2 b 2 The truth assignment corresponding to the path to this leaf is: a =? b =? a 2 =? b 2 =?
12 Binary Decision Tree a b a 2 b 2 f a b a 2 b 2 The truth assignment corresponding to the path to this leaf is: a = b = a 2 = b 2 = 2
13 Binary Decision Tree a b a 2 b 2 f a b a 2 b 2 The truth assignment corresponding to the path to this leaf is: a = b = a 2 = b 2 = 3
14 Binary Decision Tree a b a 2 b 2 f a b a 2 b 2 The truth assignment corresponding to the path to this leaf is: a = b = a 2 = b 2 = 4
15 Binary Decision Tree (BDT) a a 2 a 2 a 2 a 2 Canonical if you fix variable order (i.e., use ordered BDT) But still exponential in # of variables. Let s try to fix this. 5
16 Reduced Ordered BDD Conceptually, a ROBDD is obtained from an ordered BDT (OBDT) by eliminating redundant sub-diagrams and nodes Start with OBDT and repeatedly apply the following two operations as long as possible:. Eliminate duplicate sub-diagrams. Keep a single copy. Redirect edges into the eliminated duplicates into this single copy. 2. Eliminate redundant nodes. Whenever low(v) = high(v), remove v and redirect edges into v to low(v). Why does this terminate? ROBDD is often exponentially smaller than the corresponding OBDT 6
17 OBDT to ROBDD a a 2 a 2 a 2 a 2 7
18 OBDT to ROBDD a a 2 a 2 a 2 a 2 Duplicate subdiagram 8
19 OBDT to ROBDD a a 2 a 2 a 2 a 2 9
20 OBDT to ROBDD a a 2 a 2 a 2 a 2 2
21 OBDT to ROBDD a a 2 a 2 a 2 a 2 2
22 OBDT to ROBDD a a 2 a 2 a 2 a 2 22
23 OBDT to ROBDD a a 2 a 2 a 2 a 2 23
24 OBDT to ROBDD a a 2 a 2 a 2 a 2 24
25 OBDT to ROBDD a a 2 a 2 a 2 a 2 Redundant node 25
26 OBDT to ROBDD a a 2 a 2 a 2 a 2 b 2 26
27 OBDT to ROBDD a a 2 a 2 a 2 a 2 b 2 27
28 OBDT to ROBDD a a 2 a 2 a 2 a 2 28
29 OBDT to ROBDD a a 2 a 2 a 2 a 2 29
30 OBDT to ROBDD a If a = and b = then f = irrespective of the values of a 2 and b 2 a 2 a 2 a 2 3
31 OBDT to ROBDD a a 2 a 2 3
32 OBDT to ROBDD a a 2 a 2 32
33 OBDT to ROBDD a a 2 a 2 b 2 33
34 OBDT to ROBDD a a 2 a 2 b 2 34
35 OBDT to ROBDD a a 2 a 2 b 2 b 2 35
36 OBDT to ROBDD a a 2 a 2 b 2 b 2 36
37 OBDT to ROBDD a Let s move things around a little bit so that the BDD looks nicer. a 2 b 2 b 2 37
38 OBDT to ROBDD a Bryant gave a linear-time algorithm (called Reduce) to convert OBDT to ROBDD. b 2 a 2 b 2 In practice, BDD packages don t use Reduce directly. They apply the two reductions on-the-fly as new BDDs are constructed from existing ones. Why? 38
39 ROBDD (a.k.a. BDD) Summary BDDs are canonical representations of Boolean formulas f = f 2,? 39
40 ROBDD (a.k.a. BDD) Summary BDDs are canonical representations of Boolean formulas f = f 2,BDD(f ) and BDD(f 2 ) are isomorphic f is unsatisfiable,? 4
41 ROBDD (a.k.a. BDD) Summary BDDs are canonical representations of Boolean formulas f = f 2,BDD(f ) and BDD(f 2 ) are isomorphic f is unsatisfiable,bdd(f) is the leaf node f is valid,? 4
42 ROBDD (a.k.a. BDD) Summary BDDs are canonical representations of Boolean formulas f = f 2,BDD(f ) and BDD(f 2 ) are isomorphic f is unsatisfiable,bdd(f) is the leaf node f is valid,bdd(f) is the leaf node BDD packages do these operations in constant time Logical operations can be performed efficiently on BDDs Polynomial in argument size BDD size depends critically on the variable ordering Some formulas have exponentially large sizes for all ordering Others are polynomial for some ordering and exponential for others 42
43 ROBDD and variable ordering a a 2 a 2 43
44 ROBDD and variable ordering a a 2 a 2 44
45 ROBDD and variable ordering a a 2 a 2 45
46 ROBDD and variable ordering a a 2 a 2 46
47 ROBDD and variable ordering a a 2 a 2 b 2 47
48 ROBDD and variable ordering a a 2 a 2 b 2 48
49 ROBDD and variable ordering a Let s move things around a little bit so that the BDD looks nicer. a 2 a 2 b 2 b 2 49
50 ROBDD and variable ordering a 8 nodes a nodes a 2 a 2 a 2 b 2 b 2 b 2 b 2 a < b < a 2 < b 2 a < a 2 < b < b 2 5
51 ROBDD and variable ordering a? n + 2 nodes a? 2 n nodes a n a n a n b n b n b n b n a < b < < a n < b n a < < a n < b < < b n 5
52 ROBDD and variable ordering a 3 n + 2 nodes a 3 2 n nodes a n a n a n b n b n b n b n a < b < < a n < b n a < < a n < b < < b n 52
53 BDD Operations True : BDD(TRUE) False: BDD(FALSE) Var: v BDD(v) Not : BDD(f) BDD(:f) And : BDD(f ) BDD(f 2 ) BDD(f Æf 2 ) Or : BDD(f ) BDD(f 2 ) BDD(f Çf 2 ) Exists : BDD(f) v BDD(9 v. f) 53
54 Basic BDD Operations True False Var(v) v 54
55 BDD Operations: Not O() O() v 55
56 BDD Operations: Not O() O() v O(n) Swap and 56
57 BDD Operations: And Suppose this is the BDD for f What formula does this represent? v What formula does this represent? 57
58 BDD Operations: And Suppose this is the BDD for f f v= v f v= f v= and f v= are known as the co-factors of f w.r.t. v f = (X Æf v= ) Ç(Y Æf v= ) 58
59 BDD Operations: And Suppose this is the BDD for f f v= v f v= f v= and f v= are known as the co-factors of f w.r.t. v f = (:v Æf v= ) Ç(v Æf v= ) 59
60 BDD Operations: And (Simple Cases) And (f, ) = And (f, ) = f And (,f ) = f And (,f) = 6
61 BDD Operations: And (Complex Case) v Æ v 2 f f g g (:v Æf ) Ç(v Æf ) Æ (:v 2 Æg ) Ç(v 2 Æg ) 6
62 BDD Operations: And (Complex Case ) v = v 2 v Æ v f f g g (:v Æf ) Ç(v Æf ) Æ (:v Æg ) Ç(v Æg ) 62
63 BDD Operations: And (Complex Case ) v = v 2 (:v ÆX) Ç(v ÆY) (:v Æf ) Ç(v Æf ) Æ (:v Æg ) Ç(v Æg ) 63
64 BDD Operations: And (Complex Case ) v = v 2 Compute recursively (:v Æ(f Æg )) Ç(v Æ(f Æg )) (:v Æf ) Ç(v Æf ) Æ (:v Æg ) Ç(v Æg ) 64
65 BDD Operations: And (Complex Case ) v = v 2 What if f Æg = f Æg? v Return f Æg f Æg f Æg (:v Æ(f Æg )) Ç(v Æ(f Æg )) (:v Æf ) Ç(v Æf ) Æ (:v Æg ) Ç(v Æg ) 65
66 BDD Operations: And (Complex Case 2) v < v 2 v appears before v 2 in the variable ordering v Æ v 2 g f f g g (:v Æf ) Ç(v Æf ) Æ (:v 2 Æg ) Ç(v 2 Æg ) 66
67 BDD Operations: And (Complex Case 2) v < v 2 What if f Æg= f Æg? v Return f Æg f Æg f Æg (:v Æ(f Æg)) Ç(v Æ(f Æg)) (:v Æf ) Ç(v Æf ) Æ g O(n n 2 ) 67
68 BDD Operations: And BDD bddand (BDD f, BDD g) if (f == g f == True) return g if (g == True) return f if (f == False g == False) return False v = (var(f) < var(g))? var(f) : var(g) f = (v == var(f))? low(f) : f f = (v == var(f))? high(f) : f g = (v == var(g))? low (g) : g g = (v == var(g))? high (g) : g T = bddand (f, g); E = bddand (f, g) if (T == E) return T return mkunique (v, T, E) returns unique BDD for ite(v,t,e) 68
69 BDD Operations: Or Or(f,g) = Not ( And ( Not(f), Not(g) ) ) O(n n 2 ) 69
70 BDD Operations: Exists Exists(,v) =? 7
71 BDD Operations: Exists Exists(,v) = Exists(,v) =? 7
72 BDD Operations: Exists Exists(,v) = Exists(,v) = Exists((:v Æf) Ç(v Æg), v) =? 72
73 BDD Operations: Exists Exists(,v) = Exists(,v) = Exists((:v Æf) Ç(v Æg), v) = Or(f,g) Exists((:v Æf) Ç(v Æg), v) =? 73
74 BDD Operations: Exists O(n 2 ) Exists(,v) = Exists(,v) = Exists((:v Æf) Ç(v Æg), v) = Or(f,g) Exists((:v Æf) Ç(v Æg), v) = (:v ÆExists(f,v)) Ç(v ÆExists(g,v)) But f is SAT iff9v. f is not. So why doesn t this imply P = NP? Because the BDD size changes! 74
75 BDD Applications SAT is great if you are interested to know if a solution exists BDDs are great if you are interested in the set of all solutions How many solutions are there? How do you do this on a BDD? BDDs are great for computing a fixed points Set of nodes reachable from a given node in a graph 75
76 Graph Reachability Which nodes are reachable from 7? {2,3,5,6,7} But what if the graph has trillions of nodes? 76
77 Graph Reachability :a Æ:b Æ:c a Æb Æc Use three Boolean variables (a,b,c) to encode each node? 77
78 Graph Reachability :a Æ:b Æ:c a Æb Æc a Æ:b Æ:c Use three Boolean variables (a,b,c) to encode each node? 78
79 Graph Reachability a Æ:b Æc :a Æ:b Æ:c a Æb Æc a Æ:b Æ:c Use three Boolean variables (a,b,c) to encode each node? 79
80 Graph Reachability a Æb Æ:c =? Key Idea : Every Boolean formula represents a set of nodes! The nodes whose encodings satisfy the formula. 8
81 Graph Reachability a Æb Æ:c = {6} Key Idea : Every Boolean formula represents a set of nodes! 8
82 Graph Reachability a Æ b =? Key Idea : Every Boolean formula represents a set of nodes! 82
83 Graph Reachability a Æ b = {6,7} Key Idea : Every Boolean formula represents a set of nodes! 83
84 Graph Reachability a xorb =? Key Idea : Every Boolean formula represents a set of nodes! 84
85 Graph Reachability a xorb = {2,3,4,5} Key Idea : Every Boolean formula represents a set of nodes! 85
86 Graph Reachability Key Idea 2: Edges can also be represented by Boolean formulas An edge is just a pair of nodes Introduce three new variables: a, b, c Formula represents all pairs of nodes (n,n ) that satisfy when n is encoded using (a,b,c) and n is encoded using (a,b,c ) 86
87 Graph Reachability :a Æ:b Æ:c Æ:a Æ:b Æc Key Idea 2: Edges can also be represented by Boolean formulas 87
88 Graph Reachability a Æ:b Æc Æ:a Æb Æ:c Key Idea 2: Edges can also be represented by Boolean formulas 88
89 Graph Reachability a Æ:b Æc Æ:a Æb Æ:c Ç :a Æ:b Æ:c Æ:a Æ:b Æc Key Idea 2: Edges can also be represented by Boolean formulas 89
90 Graph Reachability Variable renaming : replace a with a Image(S,R) = (9a,b,c. (S ÆR)) [ a \a, b \b, c \ c ] Key Idea 3: Given the BDD for a set of nodes S, and the BDD for the set of all edges R, the BDD for all the nodes that are adjacent to S can be computed using the BDD operations 9
91 Graph Reachability Algorithm S = BDD for initial set of nodes; R = BDD for all the edges of the graph; while (true) { I = Image(S,R); // compute adjacent nodes to S if (And(Not(S),I) == False) // no new nodes found break; S = Or(S,I); // add newly discovered nodes to result } return S; Symbolic Model Checking. Has been done for graphs with 2 nodes. 9
Boolean Representations and Combinatorial Equivalence
Chapter 2 Boolean Representations and Combinatorial Equivalence This chapter introduces different representations of Boolean functions. It then discusses the applications of these representations for proving
More informationBehavior models and verification Lecture 6
Behavior models and verification Lecture 6 http://d3s.mff.cuni.cz Jan Kofroň, František Plášil Model checking For a Kripke structure M = (S, I, R, L) over AP and a (state based) temporal logic formula
More informationModel Checking I Binary Decision Diagrams
/42 Model Checking I Binary Decision Diagrams Edmund M. Clarke, Jr. School of Computer Science Carnegie Mellon University Pittsburgh, PA 523 2/42 Binary Decision Diagrams Ordered binary decision diagrams
More informationMotivation. CS389L: Automated Logical Reasoning. Lecture 5: Binary Decision Diagrams. Historical Context. Binary Decision Trees
Motivation CS389L: Automated Logical Reasoning Lecture 5: Binary Decision Diagrams Işıl Dillig Previous lectures: How to determine satisfiability of propositional formulas Sometimes need to efficiently
More informationBinary Decision Diagrams (BDD)
Binary Decision Diagrams (BDD) Contents Motivation for Decision diagrams Binary Decision Diagrams ROBDD Effect of Variable Ordering on BDD size BDD operations Encoding state machines Reachability Analysis
More informationSymbolic Model Checking
Bug Catching 5-398 Symbolic Model Checking Hao Zheng Dept. of Computer Science & Eng. Univ. of South Florida Overview CTL model checking operates on sets. Calculates the fix points over finite state sets.
More informationBinary Decision Diagrams
Logic and roof Hilary 2016 James Worrell Binary Decision Diagrams A propositional formula is determined up to logical equivalence by its truth table. If the formula has n variables then its truth table
More informationUnit 4: Formal Verification
Course contents Unit 4: Formal Verification Logic synthesis basics Binary-decision diagram (BDD) Verification Logic optimization Technology mapping Readings Chapter 11 Unit 4 1 Logic Synthesis & Verification
More informationFormal Verification. Lecture 7: Introduction to Binary Decision Diagrams (BDDs)
Formal Verification Lecture 7: Introduction to Binary Decision Diagrams (BDDs) Jacques Fleuriot jdf@inf.ac.uk Diagrams from Huth & Ryan, 2nd Ed. Recap Previously: CTL and LTL Model Checking algorithms
More informationLecture Notes on Binary Decision Diagrams
Lecture Notes on Binary Decision Diagrams 15-122: Principles of Imperative Computation William Lovas Notes by Frank Pfenning Lecture 25 April 21, 2011 1 Introduction In this lecture we revisit the important
More informationEECS 219C: Formal Methods Binary Decision Diagrams (BDDs) Sanjit A. Seshia EECS, UC Berkeley
EECS 219C: Formal Methods Binary Decision Diagrams (BDDs) Sanjit A. Seshia EECS, UC Berkeley Boolean Function Representations Syntactic: e.g.: CNF, DNF (SOP), Circuit Semantic: e.g.: Truth table, Binary
More informationL4: Binary Decision Diagrams. Reading material
L4: Binary Decision Diagrams de Micheli pp. 75-85 Reading material R. Bryant, Graph-ased algorithms for Boolean function manipulation, IEEE Transactions on computers, C-35, No 8, August 1986; can e downloaded
More informationECE 5775 (Fall 17) High-Level Digital Design Automation. Binary Decision Diagrams Static Timing Analysis
ECE 5775 (Fall 17) High-Level Digital Design Automation Binary Decision Diagrams Static Timing Analysis Announcements Start early on Lab 1 (CORDIC design) Fixed-point design should not have usage of DSP48s
More informationChapter 8: Data Abstractions
Chapter 8: Data Abstractions Computer Science: An Overview Tenth Edition by J. Glenn Brookshear Presentation files modified by Farn Wang Copyright 28 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
More informationLecture1: Symbolic Model Checking with BDDs. Edmund M. Clarke, Jr. Computer Science Department Carnegie Mellon University Pittsburgh, PA 15213
Lecture: Symbolic Model Checking with BDDs Edmund M Clarke, Jr Computer Science Department Carnegie Mellon University Pittsburgh, PA 523 Temporal Logic Model Checking Specification Language: A propositional
More informationNormal Forms for Boolean Expressions
Normal Forms for Boolean Expressions A NORMAL FORM defines a class expressions s.t. a. Satisfy certain structural properties b. Are usually universal: able to express every boolean function 1. Disjunctive
More informationNO WARRANTY. Use of any trademarks in this presentation is not intended in any way to infringe on the rights of the trademark holder.
NO WARRANTY THIS MATERIAL OF CARNEGIE MELLON UNIVERSITY AND ITS SOFTWARE ENGINEERING INSTITUTE IS FURNISHED ON AN AS-IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED
More informationCS357 Lecture: BDD basics. David Dill
CS357 Lecture: BDD basics David Dill BDDs (Boolean/binary decision diagrams) BDDs are a very successful representation for Boolean functions. A BDD represents a Boolean function on variables x, x 2,...
More informationBinary Decision Diagrams
Binary Decision Diagrams 2-CS-626- Formal Verification Department of Computer Science University of Cincinnati Introduction Binary Decision Diagrams (BDD) [, 8] are a general, graphical representation
More informationBDDC v2 A basic bdd-based logical calculator
BDDC v2 A basic bdd-based logical calculator Pascal RAYMOND November 24, 2008, (rev. September 28, 2015) BDDC is a tool for manipulating logical formula. It is based on a Binary Decision Diagram library,
More informationBinary Decision Diagrams and Symbolic Model Checking
Binary Decision Diagrams and Symbolic Model Checking Randy Bryant Ed Clarke Ken McMillan Allen Emerson CMU CMU Cadence U Texas http://www.cs.cmu.edu/~bryant Binary Decision Diagrams Restricted Form of
More informationBDDC v2 A basic bdd-based logical calculator
BDDC v2 A basic bdd-based logical calculator Pascal RAYMOND http://www-verimag.imag.fr/people/pascal.raymond November 24, 2008 BDDC is a tool for manipulating logical formula. It is based on a Binary Decision
More informationBinary Decision Diagrams (BDDs) Pingqiang Zhou ShanghaiTech University
Binary Decision Diagrams (BDDs) Pingqiang Zhou ShanghaiTech University Computational Boolean Algera Representations Applying unate recursive paradigm (URP) in solving tautology is a great warm up example.
More information2SAT Andreas Klappenecker
2SAT Andreas Klappenecker The Problem Can we make the following boolean formula true? ( x y) ( y z) (z y)! Terminology A boolean variable is a variable that can be assigned the values true (T) or false
More informationCS 267: Automated Verification. Lecture 6: Binary Decision Diagrams. Instructor: Tevfik Bultan
CS 267: Automated Verification Lecture 6: Binar Decision Diagrams Instructor: evfik Bultan Binar Decision Diagrams (BDDs) [Brant 86] Reduced Ordered Binar Decision Diagrams (BDDs) An efficient data structure
More information2009 Haskell January Test Binary Decision Diagrams
009 Haskell January est Binary Decision Diagrams his test comprises four parts and the maximum mark is 5. Parts I, II and III are worth of the 5 marks available. he 009 Haskell Programming Prize will be
More information8.1 Polynomial-Time Reductions
8.1 Polynomial-Time Reductions Classify Problems According to Computational Requirements Q. Which problems will we be able to solve in practice? A working definition. Those with polynomial-time algorithms.
More informationFormal Verification Methods 2: Symbolic Simulation
Formal Verification Methods 2: Symbolic Simulation John Harrison Intel Corporation Marktoberdorf 2003 Thu 3st July 2003 (:25 2:0) 0 Summary Simulation Symbolic and ternary simulation BDDs Quaternary lattice
More informationA purely functional implementation of ROBDDs in Haskell
Christian-Albrechts-Universität zu Kiel Diploma Thesis A purely functional implementation of ROBDDs in Haskell Jan Christiansen February 9th, 2006 Institute of Computer Science and Applied Mathematics
More informationABC basics (compilation from different articles)
1. AIG construction 2. AIG optimization 3. Technology mapping ABC basics (compilation from different articles) 1. BACKGROUND An And-Inverter Graph (AIG) is a directed acyclic graph (DAG), in which a node
More informationGraph-Based Algorithms for Boolean Function Manipulation
Graph-Based Algorithms for Boolean Function Manipulation Introduction Boolean algebra forms a corner stone of Computer system & Digital design. So, we need efficient algorithms to represent & manipulate
More informationSolving Boolean Equations with BDDs and Clause Forms. Gert Smolka
Solving Boolean Equations with BDDs and Clause Forms Gert Smolka Abstract Methods for solving Boolean equations BDDs [Bryant 1986] Clause forms [Quine 1959] Efficient data structure and algorithms for
More informationFinite Model Generation for Isabelle/HOL Using a SAT Solver
Finite Model Generation for / Using a SAT Solver Tjark Weber webertj@in.tum.de Technische Universität München Winterhütte, März 2004 Finite Model Generation for / p.1/21 is a generic proof assistant: Highly
More informationCS 267: Automated Verification. Lecture 13: Bounded Model Checking. Instructor: Tevfik Bultan
CS 267: Automated Verification Lecture 13: Bounded Model Checking Instructor: Tevfik Bultan Remember Symbolic Model Checking Represent sets of states and the transition relation as Boolean logic formulas
More informationAdvanced VLSI Design Prof. Virendra K. Singh Department of Electrical Engineering Indian Institute of Technology Bombay
Advanced VLSI Design Prof. Virendra K. Singh Department of Electrical Engineering Indian Institute of Technology Bombay Lecture 40 VLSI Design Verification: An Introduction Hello. Welcome to the advance
More information! Greed. O(n log n) interval scheduling. ! Divide-and-conquer. O(n log n) FFT. ! Dynamic programming. O(n 2 ) edit distance.
Algorithm Design Patterns and Anti-Patterns Chapter 8 NP and Computational Intractability Algorithm design patterns. Ex.! Greed. O(n log n) interval scheduling.! Divide-and-conquer. O(n log n) FFT.! Dynamic
More informationSynthesis 1. 1 Figures in this chapter taken from S. H. Gerez, Algorithms for VLSI Design Automation, Wiley, Typeset by FoilTEX 1
Synthesis 1 1 Figures in this chapter taken from S. H. Gerez, Algorithms for VLSI Design Automation, Wiley, 1998. Typeset by FoilTEX 1 Introduction Logic synthesis is automatic generation of circuitry
More informationSolving 3-SAT. Radboud University Nijmegen. Bachelor Thesis. Supervisors: Henk Barendregt Alexandra Silva. Author: Peter Maandag s
Solving 3-SAT Radboud University Nijmegen Bachelor Thesis Author: Peter Maandag s3047121 Supervisors: Henk Barendregt Alexandra Silva July 2, 2012 Contents 1 Introduction 2 1.1 Problem context............................
More informationBoolean Functions (Formulas) and Propositional Logic
EECS 219C: Computer-Aided Verification Boolean Satisfiability Solving Part I: Basics Sanjit A. Seshia EECS, UC Berkeley Boolean Functions (Formulas) and Propositional Logic Variables: x 1, x 2, x 3,, x
More informationLecture 14: Lower Bounds for Tree Resolution
IAS/PCMI Summer Session 2000 Clay Mathematics Undergraduate Program Advanced Course on Computational Complexity Lecture 14: Lower Bounds for Tree Resolution David Mix Barrington and Alexis Maciel August
More informationChapter 8. NP and Computational Intractability. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.
Chapter 8 NP and Computational Intractability Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. 1 Algorithm Design Patterns and Anti-Patterns Algorithm design patterns.
More informationSet Manipulation with Boolean Functional Vectors for Symbolic Reachability Analysis
Set Manipulation with Boolean Functional Vectors for Symbolic Reachability Analysis Amit Goel Department of ECE, Carnegie Mellon University, PA. 15213. USA. agoel@ece.cmu.edu Randal E. Bryant Computer
More informationSymbolic Boolean Manipulation with Ordered Binary Decision Diagrams
Symbolic Boolean Manipulation with Ordered Binary Decision Diagrams Randal E. Bryant Fujitsu Laboratories, Ltd. 5 Kamikodanaka, Nakahara-ku Kawasaki 2, Japan June, 992 Ordered Binary Decision Diagrams
More information1/28/2013. Synthesis. The Y-diagram Revisited. Structural Behavioral. More abstract designs Physical. CAD for VLSI 2
Synthesis The Y-diagram Revisited Structural Behavioral More abstract designs Physical CAD for VLSI 2 1 Structural Synthesis Behavioral Physical CAD for VLSI 3 Structural Processor Memory Bus Behavioral
More information! Greed. O(n log n) interval scheduling. ! Divide-and-conquer. O(n log n) FFT. ! Dynamic programming. O(n 2 ) edit distance.
Algorithm Design Patterns and Anti-Patterns 8. NP and Computational Intractability Algorithm design patterns. Ex.! Greed. O(n log n) interval scheduling.! Divide-and-conquer. O(n log n) FFT.! Dynamic programming.
More informationL3: Representations of functions
L3: Representations of functions Representations of Boolean functions Boolean expression Two level sum of product form, factorized form Truth tables Karnaugh maps Cubes (MIN,MAX) notation positional cube
More informationOn Proof Systems Behind Efficient SAT Solvers. DoRon B. Motter and Igor L. Markov University of Michigan, Ann Arbor
On Proof Systems Behind Efficient SAT Solvers DoRon B. Motter and Igor L. Markov University of Michigan, Ann Arbor Motivation Best complete SAT solvers are based on DLL Runtime (on unsat instances) is
More informationOn the Relation between SAT and BDDs for Equivalence Checking
On the Relation between SAT and BDDs for Equivalence Checking Sherief Reda 1 Rolf Drechsler 2 Alex Orailoglu 1 1 Computer Science & Engineering Department University of California, San Diego La Jolla,
More informationVLSI Logic Test, Validation and Verification Lecture 7 Properties & Applications of Binary Decision Diagrams
VLSI Logic Test, Validation and Verification Lecture 7 Properties & Applications of Binary Decision Diagrams 1 Instructor: Priyank Kalla Department of Electrical and Computer Engineering University of
More informationA Relational View of Subgraph Isomorphism
A Relational View of Subgraph Isomorphism J. Cortadella and G. Valiente Department of Software, Technical University of Catalonia, Barcelona, Spain Abstract. This paper presents a novel approach to the
More informationND-A FLCT 7 T'a a19m~ Representation and Manipulation of Inductive Boolean Functions
ND-A256 078 Representation and Manipulation of Inductive Boolean Functions Aarti Gupta Allan L. Fisher April, 1992 CMU-CS-92-129 D TI. School of Computer Science Carnegie Mellon University Pittsburgh,
More informationPropositional Calculus: Boolean Algebra and Simplification. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson
Propositional Calculus: Boolean Algebra and Simplification CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus Topics Motivation: Simplifying Conditional Expressions
More informationLogic Synthesis & Optimization Lectures 4, 5 Boolean Algebra - Basics
Logic Synthesis & Optimization Lectures 4, 5 Boolean Algebra - Basics 1 Instructor: Priyank Kalla Department of Electrical and Computer Engineering University of Utah, Salt Lake City, UT 84112 Email: kalla@ece.utah.edu
More informationSolution 3: (a) True. Proof.
Solution 3: (a) True Proof. f = (x + f x ) (x + f x ) + f x f x + f x f x (x + x) f x + x f x + x f x f x (Boolean absorption) This is equal to Shannon s expansion of f. (b) True Proof. f = x f x x f x
More informationCORAL: a modern C++ library for the manipulation of Boolean functions
UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Tesi di Laurea Triennale CORAL: a modern C++ library for the manipulation of Boolean functions
More informationPROPOSITIONAL LOGIC (2)
PROPOSITIONAL LOGIC (2) based on Huth & Ruan Logic in Computer Science: Modelling and Reasoning about Systems Cambridge University Press, 2004 Russell & Norvig Artificial Intelligence: A Modern Approach
More informationLogic Synthesis and Verification
Logic Synthesis and Verification Jie-Hong Roland Jiang 江介宏 Department of Electrical Engineering National Taiwan University Fall 2012 1 SOPs and Incompletely Specified Functions Reading: Logic Synthesis
More informationChapter 8. NP-complete problems
Chapter 8. NP-complete problems Search problems E cient algorithms We have developed algorithms for I I I I I finding shortest paths in graphs, minimum spanning trees in graphs, matchings in bipartite
More informationChapter 10 Part 1: Reduction
//06 Polynomial-Time Reduction Suppose we could solve Y in polynomial-time. What else could we solve in polynomial time? don't confuse with reduces from Chapter 0 Part : Reduction Reduction. Problem X
More information8 NP-complete problem Hard problems: demo
Ch8 NPC Millennium Prize Problems http://en.wikipedia.org/wiki/millennium_prize_problems 8 NP-complete problem Hard problems: demo NP-hard (Non-deterministic Polynomial-time hard), in computational complexity
More information8.1 Polynomial-Time Reductions
Algorithm Design Patterns and Anti-Patterns Analysis of Algorithms Algorithm design patterns. Ex. Greed. O(n 2 ) Dijkstra s SSSP (dense) Divide-and-conquer. O(n log n) FFT. Dynamic programming. O(n 2 )
More informationOverview. Discrete Event Systems - Verification of Finite Automata. What can finite automata be used for? What can finite automata be used for?
Computer Engineering and Networks Overview Discrete Event Systems - Verification of Finite Automata Lothar Thiele Introduction Binary Decision Diagrams Representation of Boolean Functions Comparing two
More informationSymbolic Manipulation of Boolean Functions Using a Graphical Representation. Abstract
Symbolic Manipulation of Boolean Functions Using a Graphical Representation Randal E. Bryant 1 Dept. of Computer Science Carnegie-Mellon University Abstract In this paper we describe a data structure for
More informationLocal Two-Level And-Inverter Graph Minimization without Blowup
Local Two-Level And-Inverter Graph Minimization without Blowup Robert Brummayer and Armin Biere Institute for Formal Models and Verification Johannes Kepler University Linz, Austria {robert.brummayer,
More informationAshish Sabharwal Computer Science and Engineering University of Washington, Box Seattle, Washington
MODEL CHECKING: TWO DECADES OF NOVEL TECHNIQUES AND TRENDS PHD GENERAL EXAM REPORT Ashish Sabharwal Computer Science and Engineering University of Washington, Box 352350 Seattle, Washington 98195-2350
More informationChapter 6: Multilevel Combinational Circuits. Name: Lương Văn Minh No. :
Chapter 6: Multilevel Combinational Circuits Name: Lương Văn Minh No. : 09070452 Overview 6.1 Boolean Networks 6.2 Special Classes of Circuits 6.3 Binary Decision Diagrams 2 Overview 6.1 Boolean Networks
More informationExample of a Demonstration that a Problem is NP-Complete by reduction from CNF-SAT
20170926 CNF-SAT: CNF-SAT is a problem in NP, defined as follows: Let E be a Boolean expression with m clauses and n literals (literals = variables, possibly negated), in which - each clause contains only
More information2-3 Tree. Outline B-TREE. catch(...){ printf( "Assignment::SolveProblem() AAAA!"); } ADD SLIDES ON DISJOINT SETS
Outline catch(...){ printf( "Assignment::SolveProblem() AAAA!"); } Balanced Search Trees 2-3 Trees 2-3-4 Trees Slide 4 Why care about advanced implementations? Same entries, different insertion sequence:
More informationResearch Collection. Formal background and algorithms. Other Conference Item. ETH Library. Author(s): Biere, Armin. Publication Date: 2001
Research Collection Other Conference Item Formal background and algorithms Author(s): Biere, Armin Publication Date: 2001 Permanent Link: https://doi.org/10.3929/ethz-a-004239730 Rights / License: In Copyright
More informationUnification in Maude. Steven Eker
Unification in Maude Steven Eker 1 Unification Unification is essentially solving equations in an abstract setting. Given a signature Σ, variables X and terms t 1, t 2 T (Σ) we want to find substitutions
More informationTagged BDDs: Combining Reduction Rules from Different Decision Diagram Types
Tagged BDDs: Combining Reduction Rules from Different Decision Diagram Types Tom van Dijk Institute for ormal Models and Verification Johannes Kepler University Linz, Austria Email: tom.vandijk@jku.at
More informationQualitätssicherung von Software (SWQS)
Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 28.5.2013: Modellprüfung II - BDDs Folie 2 Existenzgründer gesucht! Folie 3 Fragen
More information1
An Introduction to Binary Decision Diagrams Henrik Reif Andersen x y y z 1 0 Lecture notes for 49285 Advanced Algorithms E97, October 1997. (Minor revisions, Apr. 1998) E-mail: hra@it.dtu.dk. Web: http://www.it.dtu.dk/hra
More informationCompiling Bayesian Networks by Symbolic Probability Calculation Based on Zero-suppressed BDDs
Compiling Bayesian Networks by Symbolic Probability Calculation Based on Zero-suppressed BDDs Shin-ichi Minato Div. of Computer Science Hokkaido University Sapporo 6 814, Japan Ken Satoh National Institute
More informationTypeChef: Towards Correct Variability Analysis of Unpreprocessed C Code for Software Product Lines
TypeChef: Towards Correct Variability Analysis of Unpreprocessed C Code for Software Product Lines Paolo G. Giarrusso 04 March 2011 Software product lines (SPLs) Feature selection SPL = 1 software project
More informationDecision Procedures in First Order Logic
in First Order Logic for Equality Logic Daniel Kroening and Ofer Strichman 1 Outline Introduction Definition, complexity Reducing Uninterpreted Functions to Equality Logic Using Uninterpreted Functions
More informationGraph-Based Algorithms for Boolean Function Manipulation 12. Abstract
Graph-Based Algorithms for Boolean Function Manipulation 2 Randal E. Bryant 3 Abstract In this paper we present a new data structure for representing Boolean functions and an associated set of manipulation
More information1 Model checking and equivalence checking
978--52-85972- - Practical Design Verification Model checking and equivalence checking Masahiro Fujita. Introduction Owing to the advances in semiconductor technology, a large and complex system that has
More informationFormal Verification Techniques for Digital Systems
&CHAPTER 1 Formal Verification Techniques for Digital Systems MASAHIRO FUJITA, SATOSHI KOMATSU, and HIROSHI SAITO University of Tokyo, Japan 1.1 INTRODUCTION In deep submicron technology, a large and complex
More informationNP-Complete Reductions 2
x 1 x 1 x 2 x 2 x 3 x 3 x 4 x 4 12 22 32 CS 447 11 13 21 23 31 33 Algorithms NP-Complete Reductions 2 Prof. Gregory Provan Department of Computer Science University College Cork 1 Lecture Outline NP-Complete
More informationThe Satisfiability Problem [HMU06,Chp.10b] Satisfiability (SAT) Problem Cook s Theorem: An NP-Complete Problem Restricted SAT: CSAT, k-sat, 3SAT
The Satisfiability Problem [HMU06,Chp.10b] Satisfiability (SAT) Problem Cook s Theorem: An NP-Complete Problem Restricted SAT: CSAT, k-sat, 3SAT 1 Satisfiability (SAT) Problem 2 Boolean Expressions Boolean,
More informationLogic and Computation
Logic and Computation From Conceptualization to Formalization Here's what we do when we build a formal model (or do a computation): 0. Identify a collection of objects/events in the real world. This is
More informationPropositional Calculus: Boolean Functions and Expressions. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson
Propositional Calculus: Boolean Functions and Expressions CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus Objective: To provide students with the concepts and
More informationHorn Formulae. CS124 Course Notes 8 Spring 2018
CS124 Course Notes 8 Spring 2018 In today s lecture we will be looking a bit more closely at the Greedy approach to designing algorithms. As we will see, sometimes it works, and sometimes even when it
More information4.8 Huffman Codes. These lecture slides are supplied by Mathijs de Weerd
4.8 Huffman Codes These lecture slides are supplied by Mathijs de Weerd Data Compression Q. Given a text that uses 32 symbols (26 different letters, space, and some punctuation characters), how can we
More informationCombining Decision Diagrams and SAT Procedures for Efficient Symbolic Model Checking
Combining Decision Diagrams and SAT Procedures for Efficient Symbolic Model Checking Poul F. Williams 1, Armin Biere 2, Edmund M. Clarke 3, and Anubhav Gupta 3 1 Department of Information Technology, Technical
More informationInt. J. Advanced Networking and Applications 1430 Volume:03 Issue:06 Pages: (2012) ISSN :
1430 Binary Decision Diagrams and Its Variable Ordering for Disjoint Network Manoj Singhal Associate professor, Department of Information Technology, Accurate Institute of Management & Technology, Greater
More informationHaving a BLAST with SLAM
Having a BLAST with SLAM Meeting, CSCI 555, Fall 20 Announcements Homework 0 due Sat Questions? Move Tue office hours to -5pm 2 Software Model Checking via Counterexample Guided Abstraction Refinement
More informationReference Sheet for CO142.2 Discrete Mathematics II
Reference Sheet for CO14. Discrete Mathematics II Spring 017 1 Graphs Defintions 1. Graph: set of N nodes and A arcs such that each a A is associated with an unordered pair of nodes.. Simple graph: no
More informationNP and computational intractability. Kleinberg and Tardos, chapter 8
NP and computational intractability Kleinberg and Tardos, chapter 8 1 Major Transition So far we have studied certain algorithmic patterns Greedy, Divide and conquer, Dynamic programming to develop efficient
More informationDKT 122/3 DIGITAL SYSTEM 1
Company LOGO DKT 122/3 DIGITAL SYSTEM 1 BOOLEAN ALGEBRA (PART 2) Boolean Algebra Contents Boolean Operations & Expression Laws & Rules of Boolean algebra DeMorgan s Theorems Boolean analysis of logic circuits
More informationCPSC 320 Notes: What's in a Reduction?
CPSC 320 Notes: What's in a Reduction? November 7, 2016 To reduce a problem A to another problem B, we typically proceed as follows: give one algorithm that takes a (legal) instance a of A and converts
More informationSimplified Digital Logic Circuits Using Binary Decision Tree
Simplified Digital Logic Circuits Using Binary Decision Tree Hamed A. Fawareh and Abla Suliman Hussien ZarqaUniversity/ software Engineering Department, Zarqa, Jordan Abstract Ordered Binary decision tree
More informationA Satisfiability Procedure for Quantified Boolean Formulae
A Satisfiability Procedure for Quantified Boolean Formulae David A. Plaisted Computer Science Department, University of North Carolina Chapel Hill, NC 27599-3175, USA Armin Biere ETH Zürich, Computer Systems
More informationEquivalence Checking of Combinational Circuits using Boolean Expression Diagrams
Equivalence Checking of Combinational Circuits using Boolean Expression Diagrams Henrik Hulgaard, Poul Frederick Williams, and Henrik Reif Andersen Abstract The combinational logic-level equivalence problem
More informationParallel and Distributed Computing
Parallel and Distributed Computing Project Assignment MAX-SAT SOLVER Version 1.0 (07/03/2016) 2015/2016 2nd Semester CONTENTS Contents 1 Introduction 2 2 Problem Description 2 2.1 Illustrative Example...................................
More informationProgram verification. Generalities about software Verification Model Checking. September 20, 2016
Program verification Generalities about software Verification Model Checking Laure Gonnord David Monniaux September 20, 2016 1 / 43 The teaching staff Laure Gonnord, associate professor, LIP laboratory,
More informationDecision Procedures for Equality Logic. Daniel Kroening and Ofer Strichman 1
in First Order Logic for Equality Logic Daniel Kroening and Ofer Strichman 1 Outline Introduction Definition, complexity Reducing Uninterpreted Functions to Equality Logic Using Uninterpreted Functions
More informationNP-Completeness. Algorithms
NP-Completeness Algorithms The NP-Completeness Theory Objective: Identify a class of problems that are hard to solve. Exponential time is hard. Polynomial time is easy. Why: Do not try to find efficient
More information4.1 Review - the DPLL procedure
Applied Logic Lecture 4: Efficient SAT solving CS 4860 Spring 2009 Thursday, January 29, 2009 The main purpose of these notes is to help me organize the material that I used to teach today s lecture. They
More information