Binary Decision Diagrams

Size: px
Start display at page:

Download "Binary Decision Diagrams"

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

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 information

Behavior models and verification Lecture 6

Behavior 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 information

Model Checking I Binary Decision Diagrams

Model 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 information

Motivation. CS389L: Automated Logical Reasoning. Lecture 5: Binary Decision Diagrams. Historical Context. Binary Decision Trees

Motivation. 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 information

Binary Decision Diagrams (BDD)

Binary 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 information

Symbolic Model Checking

Symbolic 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 information

Binary Decision Diagrams

Binary 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 information

Unit 4: Formal Verification

Unit 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 information

Formal Verification. Lecture 7: Introduction to Binary Decision Diagrams (BDDs)

Formal 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 information

Lecture Notes on Binary Decision Diagrams

Lecture 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 information

EECS 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 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 information

L4: Binary Decision Diagrams. Reading material

L4: 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 information

ECE 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 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 information

Chapter 8: Data Abstractions

Chapter 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 information

Lecture1: Symbolic Model Checking with BDDs. Edmund M. Clarke, Jr. Computer Science Department Carnegie Mellon University Pittsburgh, PA 15213

Lecture1: 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 information

Normal Forms for Boolean Expressions

Normal 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 information

NO 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. 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 information

CS357 Lecture: BDD basics. David Dill

CS357 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 information

Binary Decision Diagrams

Binary 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 information

BDDC v2 A basic bdd-based logical calculator

BDDC 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 information

Binary Decision Diagrams and Symbolic Model Checking

Binary 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 information

BDDC v2 A basic bdd-based logical calculator

BDDC 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 information

Binary Decision Diagrams (BDDs) Pingqiang Zhou ShanghaiTech University

Binary 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 information

2SAT Andreas Klappenecker

2SAT 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 information

CS 267: Automated Verification. Lecture 6: Binary Decision Diagrams. Instructor: Tevfik Bultan

CS 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 information

2009 Haskell January Test Binary Decision Diagrams

2009 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 information

8.1 Polynomial-Time Reductions

8.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 information

Formal Verification Methods 2: Symbolic Simulation

Formal 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 information

A purely functional implementation of ROBDDs in Haskell

A 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 information

ABC basics (compilation from different articles)

ABC 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 information

Graph-Based Algorithms for Boolean Function Manipulation

Graph-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 information

Solving Boolean Equations with BDDs and Clause Forms. Gert Smolka

Solving 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 information

Finite Model Generation for Isabelle/HOL Using a SAT Solver

Finite 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 information

CS 267: Automated Verification. Lecture 13: Bounded Model Checking. Instructor: Tevfik Bultan

CS 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 information

Advanced 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 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.

! 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 information

Synthesis 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, 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 information

Solving 3-SAT. Radboud University Nijmegen. Bachelor Thesis. Supervisors: Henk Barendregt Alexandra Silva. Author: Peter Maandag s

Solving 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 information

Boolean Functions (Formulas) and Propositional Logic

Boolean 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 information

Lecture 14: Lower Bounds for Tree Resolution

Lecture 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 information

Chapter 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. 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 information

Set Manipulation with Boolean Functional Vectors for Symbolic Reachability Analysis

Set 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 information

Symbolic Boolean Manipulation with Ordered Binary Decision Diagrams

Symbolic 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 information

1/28/2013. Synthesis. The Y-diagram Revisited. Structural Behavioral. More abstract designs Physical. CAD for VLSI 2

1/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.

! 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 information

L3: Representations of functions

L3: 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 information

On 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 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 information

On the Relation between SAT and BDDs for Equivalence Checking

On 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 information

VLSI 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 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 information

A Relational View of Subgraph Isomorphism

A 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 information

ND-A FLCT 7 T'a a19m~ Representation and Manipulation of Inductive Boolean Functions

ND-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 information

Propositional 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: Boolean Algebra and Simplification CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus Topics Motivation: Simplifying Conditional Expressions

More information

Logic Synthesis & Optimization Lectures 4, 5 Boolean Algebra - Basics

Logic 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 information

Solution 3: (a) True. Proof.

Solution 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 information

CORAL: a modern C++ library for the manipulation of Boolean functions

CORAL: 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 information

PROPOSITIONAL LOGIC (2)

PROPOSITIONAL 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 information

Logic Synthesis and Verification

Logic 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 information

Chapter 8. NP-complete problems

Chapter 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 information

Chapter 10 Part 1: Reduction

Chapter 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 information

8 NP-complete problem Hard problems: demo

8 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 information

8.1 Polynomial-Time Reductions

8.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 information

Overview. Discrete Event Systems - Verification of Finite Automata. What can finite automata be used for? What can finite automata be used for?

Overview. 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 information

Symbolic Manipulation of Boolean Functions Using a Graphical Representation. Abstract

Symbolic 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 information

Local Two-Level And-Inverter Graph Minimization without Blowup

Local 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 information

Ashish Sabharwal Computer Science and Engineering University of Washington, Box Seattle, Washington

Ashish 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 information

Chapter 6: Multilevel Combinational Circuits. Name: Lương Văn Minh No. :

Chapter 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 information

Example of a Demonstration that a Problem is NP-Complete by reduction from CNF-SAT

Example 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 information

2-3 Tree. Outline B-TREE. catch(...){ printf( "Assignment::SolveProblem() AAAA!"); } ADD SLIDES ON DISJOINT SETS

2-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 information

Research Collection. Formal background and algorithms. Other Conference Item. ETH Library. Author(s): Biere, Armin. Publication Date: 2001

Research 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 information

Unification in Maude. Steven Eker

Unification 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 information

Tagged BDDs: Combining Reduction Rules from Different Decision Diagram Types

Tagged 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 information

Qualitätssicherung von Software (SWQS)

Qualitä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 information

1

1 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 information

Compiling Bayesian Networks by Symbolic Probability Calculation Based on Zero-suppressed BDDs

Compiling 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 information

TypeChef: 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 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 information

Decision Procedures in First Order Logic

Decision 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 information

Graph-Based Algorithms for Boolean Function Manipulation 12. Abstract

Graph-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 information

1 Model checking and equivalence checking

1 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 information

Formal Verification Techniques for Digital Systems

Formal 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 information

NP-Complete Reductions 2

NP-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 information

The 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 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 information

Logic and Computation

Logic 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 information

Propositional 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: Boolean Functions and Expressions CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus Objective: To provide students with the concepts and

More information

Horn Formulae. CS124 Course Notes 8 Spring 2018

Horn 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 information

4.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 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 information

Combining Decision Diagrams and SAT Procedures for Efficient Symbolic Model Checking

Combining 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 information

Int. J. Advanced Networking and Applications 1430 Volume:03 Issue:06 Pages: (2012) ISSN :

Int. 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 information

Having a BLAST with SLAM

Having 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 information

Reference Sheet for CO142.2 Discrete Mathematics II

Reference 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 information

NP and computational intractability. Kleinberg and Tardos, chapter 8

NP 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 information

DKT 122/3 DIGITAL SYSTEM 1

DKT 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 information

CPSC 320 Notes: What's in a Reduction?

CPSC 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 information

Simplified Digital Logic Circuits Using Binary Decision Tree

Simplified 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 information

A Satisfiability Procedure for Quantified Boolean Formulae

A 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 information

Equivalence Checking of Combinational Circuits using Boolean Expression Diagrams

Equivalence 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 information

Parallel and Distributed Computing

Parallel 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 information

Program verification. Generalities about software Verification Model Checking. September 20, 2016

Program 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 information

Decision Procedures for Equality Logic. Daniel Kroening and Ofer Strichman 1

Decision 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 information

NP-Completeness. Algorithms

NP-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 information

4.1 Review - the DPLL procedure

4.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