Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.

Slides:



Advertisements
Similar presentations
Model Checking Lecture 4. Outline 1 Specifications: logic vs. automata, linear vs. branching, safety vs. liveness 2 Graph algorithms for model checking.
Advertisements

Hybrid BDD and All-SAT Method for Model Checking Orna Grumberg Joint work with Assaf Schuster and Avi Yadgar Technion – Israel Institute of Technology.
Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
BDDs & Theorem Proving Binary Decision Diagrams Dr. Eng. Amr T. Abdel-Hamid NETW 703 Winter 2012 Network Protocols Lectures are based on slides by: K.
Planning based on Model Checking Dept. of Information Systems and Applied CS Bamberg University Seminar Paper Svetlana Balinova.
Propositional and First Order Reasoning. Terminology Propositional variable: boolean variable (p) Literal: propositional variable or its negation p 
CS357 Lecture: BDD basics David Dill 1. 2 BDDs (Boolean/binary decision diagrams) BDDs are a very successful representation for Boolean functions. A BDD.
IT University of Copenhagen Lecture 7: BDD Construction and Manipulation 1. BDD construction 2. Boolean operations on BDDs 3. BDD-Based configuration.
Technion 1 Generating minimum transitivity constraints in P-time for deciding Equality Logic Ofer Strichman and Mirron Rozanov Technion, Haifa, Israel.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View SAT.
Formal Methods of Systems Specification Logical Specification of Hard- and Software Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
© 2011 Carnegie Mellon University Binary Decision Diagrams Part Bug Catching: Automated Program Verification and Testing Sagar Chaki September.
© 2011 Carnegie Mellon University Binary Decision Diagrams Part Bug Catching: Automated Program Verification and Testing Sagar Chaki September.
ECE 667 Synthesis & Verification - Boolean Functions 1 ECE 667 Spring 2013 ECE 667 Spring 2013 Synthesis and Verification of Digital Circuits Boolean Functions.
Spring 07, Feb 13 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2007 Binary Decision Diagrams Vishwani D. Agrawal James.
Tirgul 10 Rehearsal about Universal Hashing Solving two problems from theoretical exercises: –T2 q. 1 –T3 q. 2.
DATE-2002TED1 Taylor Expansion Diagrams: A Compact Canonical Representation for Symbolic Verification M. Ciesielski, P. Kalla, Z. Zeng B. Rouzeyre Electrical.
1 Polynomial Church-Turing thesis A decision problem can be solved in polynomial time by using a reasonable sequential model of computation if and only.
Model Checking Lecture 4. Outline 1 Specifications: logic vs. automata, linear vs. branching, safety vs. liveness 2 Graph algorithms for model checking.
1 Deciding separation formulas with SAT Ofer Strichman Sanjit A. Seshia Randal E. Bryant School of Computer Science, Carnegie Mellon University.
Ofer Strichman, Technion 1 Decision Procedures in First Order Logic Part I - Introduction.
ECE Synthesis & Verification - Lecture 18 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Word-level.
Boolean Functions and their Representations
A New Approach to Structural Analysis and Transformation of Networks Alan Mishchenko November 29, 1999.
1 CSEP590 – Model Checking and Automated Verification Lecture outline for July 16, 2003.
Technion 1 Generating minimum transitivity constraints in P-time for deciding Equality Logic Ofer Strichman and Mirron Rozanov Technion, Haifa, Israel.
Technion 1 (Yet another) decision procedure for Equality Logic Ofer Strichman and Orly Meir Technion.
Symbolic Boolean Manipulation with Ordered Binary Decision Diagrams Carnegie Mellon University Randal E. Bryant.
Taylor Expansion Diagrams (TED): Verification EC667: Synthesis and Verification of Digital Systems Spring 2011 Presented by: Sudhan.
Decision Structures Truth TableDecision Tree –Vertex represents decision –Follow green (dashed) line for value 0 –Follow red (solid) line for value 1 –Function.
ECE Synthesis & Verification - Lecture 10 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Binary.
 2001 CiesielskiBDD Tutorial1 Decision Diagrams Maciej Ciesielski Electrical & Computer Engineering University of Massachusetts, Amherst, USA
ECE 667 Synthesis & Verification - BDD 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Binary Decision Diagrams (BDD)
ENGG3190 Logic Synthesis “Binary Decision Diagrams” BDDs Winter 2014 S. Areibi School of Engineering University of Guelph.
ECE 667 Synthesis and Verification of Digital Systems
IT University of Copenhagen Lecture 8: Binary Decision Diagrams 1. Classical Boolean expression representations 2. If-then-else Normal Form (INF) 3. Binary.
By Tariq Bashir Ahmad Taylor Expansion Diagrams (TED) Adapted from the paper M. Ciesielski, P. Kalla, Z. Zeng, B. Rouzeyre,”Taylor Expansion Diagrams:
Fast Spectral Transforms and Logic Synthesis DoRon Motter August 2, 2001.
Decision Procedures An Algorithmic Point of View
Digitaalsüsteemide verifitseerimise kursus1 Formal verification: BDD BDDs applied in equivalence checking.
Review Binary Tree Binary Tree Representation Array Representation Link List Representation Operations on Binary Trees Traversing Binary Trees Pre-Order.
Identifying Reversible Functions From an ROBDD Adam MacDonald.
Truth Table-Based Testing Generating test cases when the test model is a truth table Reading: Binder Chapter 6.
Binary Decision Diagrams (BDDs)
Model Checking Lecture 4 Tom Henzinger. Model-Checking Problem I |= S System modelSystem property.
Quantified Formulas - Decision Procedure Daniel Kroening, Ofer Strichman Presented by Changki Hong 07 NOV 08.
INTRODUCTION TO ARTIFICIAL INTELLIGENCE COS302 MICHAEL L. LITTMAN FALL 2001 Satisfiability.
CS 267: Automated Verification Lecture 6: Binary Decision Diagrams Instructor: Tevfik Bultan.
Algorithmic Software Verification V &VI. Binary decision diagrams.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
Propositional Calculus CS 270: Mathematical Foundations of Computer Science Jeremy Johnson.
On the Relation between SAT and BDDs for Equivalence Checking Sherief Reda Rolf Drechsler Alex Orailoglu Computer Science & Engineering Dept. University.
Verifying Programs with BDDs Topics Representing Boolean functions with Binary Decision Diagrams Application to program verification class-bdd.ppt
Binary decision diagrams (BDD’s) Compact representation of a logic function ROBDD’s (reduced ordered BDD’s) are a canonical representation: equivalence.
BDDs1 Binary Tree Representation The recursive Shannon expansion corresponds to a binary tree Example: Each path from the root to a leaf corresponds to.
Logical Agents Chapter 7. Outline Knowledge-based agents Propositional (Boolean) logic Equivalence, validity, satisfiability Inference rules and theorem.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Knowledge Repn. & Reasoning Lecture #9: Propositional Logic UIUC CS 498: Section EA Professor: Eyal Amir Fall Semester 2005.
2009/6/30 CAV Quantifier Elimination via Functional Composition Jie-Hong Roland Jiang Dept. of Electrical Eng. / Grad. Inst. of Electronics Eng.
Binary Decision Diagrams Prof. Shobha Vasudevan ECE, UIUC ECE 462.
Daniel Kroening and Ofer Strichman 1 Decision Procedures in First Order Logic Decision Procedures for Equality Logic.
IT 60101: Lecture #121 Foundation of Computing Systems Lecture 13 Trees: Part VIII.
ECE 667 Synthesis and Verification of Digital Systems
Propositional Calculus: Boolean Algebra and Simplification
Binary Decision Diagrams
Formal Methods in software development
Formal Methods in software development
Binary Decision Diagrams
Verifying Programs with BDDs Sept. 22, 2006
Switching Lemmas and Proof Complexity
Presentation transcript:

Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs

Decision Procedures An algorithmic point of view2 Binary Decision Diagrams SAT looked for a satisfying solution to CNF We will now examine a graph-based data structure called Binary Decision Diagrams. It has several advantages and disadvantages comparing to SAT Developed by Bryant [1986]. Next few slides are from the source …

Decision Procedures An algorithmic point of view3 Alternate Approach Generate complete representation of function Canonicity: functions are equal iff representations are identical (A Æ C) Ç (C Æ B) (A Ç B) Æ (C) B 01C AB 01C A

Decision Procedures An algorithmic point of view4 Decision Structures Truth TableDecision Tree  Vertex represents decision  Follow green (dashed) line for value 0  Follow red (solid) line for value 1  Function value determined by leaf value.

Decision Procedures An algorithmic point of view5 Variable Ordering  Assign arbitrary total ordering to variables e.g., x 1 < x 2 < x 3  Variables must appear in ascending order along all paths OKNot OK x 3 x 2 x 1 x 1 x3x3

Decision Procedures An algorithmic point of view6 Reduction Rule #1 Merge equivalent leaves aa a

Decision Procedures An algorithmic point of view7 Reduction Rule #2 y x z x Merge isomorphic nodes y x z x y x z x

Decision Procedures An algorithmic point of view8 Reduction Rule #3 Eliminate Redundant Tests y x y

Decision Procedures An algorithmic point of view9 Example OBDD Initial GraphReduced Graph Canonical representation of Boolean functions For a given variable ordering  Two functions are equivalent iff graphs are isomorphic Can be tested in linear time  Desirable property: simplest form is canonical. (x 1 Ç x 2 ) Æ x 3

Decision Procedures An algorithmic point of view10 Satisfiability etc. Constants Unique unsatisfiable function Unique tautology Conclusion: given a BDD it takes constant time to check:  Validity  Contradiction  Satisfiability Is this a free lunch ? …

Decision Procedures An algorithmic point of view11 Effect of Variable Ordering Good OrderingBad Ordering Linear GrowthExponential Growth

Decision Procedures An algorithmic point of view12 Selecting Good Variable Ordering Intractable Problem  Even when problem represented as OBDD i.e., to find optimum improvement to current ordering Application-Based Heuristics  Exploit characteristics of application  e.g., Ordering for functions of combinational circuit Traverse circuit graph depth-first from outputs to inputs

Decision Procedures An algorithmic point of view13 Building BDDs ‘from below’ Starting from a binary decision tree is too hard for formulas with many variables. Goal: construct the BDD ‘from below’.

Decision Procedures An algorithmic point of view14 Building BDDs ‘from below’ For this we will need a function called APPLY:  Given the BDDs for f 1 and f 2,  and a binary connective F 2 { Æ, Ç, !, $...} (any one of the 16 binary connectives),  Construct the BDD for f 1 F f 2.

Decision Procedures An algorithmic point of view15 Building BDDs ‘from below’ Def: a restriction of a function f to x = d, denoted f | x = d where x 2 vars( f ), d 2 {0,1}, is equal to f after assigning x = d. Given the BDD of f, deriving the BDD of f | x =0 is simple: f : (x 1 Ç x 2 ) Æ x 3 01 x 3 x 1 01 x 3 f | x2=1

Decision Procedures An algorithmic point of view16 Now, APPLY (1/3) Let v 1, v 2 denote that root nodes of f 1, f 2, respectively, with var( v 1 ) = x 1 and var( v 2 )= x If v 1 and v 2 are leafs, f 1 F f 2 is a leaf node with value val( v 1 ) F val( v 2 ) Ç = Æ =

Decision Procedures An algorithmic point of view17 Now, APPLY (2/3) 2. If x 1 = x 2 = x, apply Shanon expansion: f 1 F f 2 = ( : x Æ f 1 | x=0 F f 2 | x=0 Ç x Æ f 1 | x=1 F f 2 | x=1 ) x BDD for f 1 | x=0 BDD for f 1 | x=1 x BDD for f 2 | x=0 BDD for f 2 | x=1 Æ = x BDD for f 1 | x=1 Æ f 2 | x=1 BDD for f 1 | x=0 Æ f 2 | x=0

Decision Procedures An algorithmic point of view18 Now, APPLY (3/3) 3. else, suppose x 1 < x 2 in the variable order. f 1 F f 2 = ( : x 1 Æ f 1 | x=0 F f 2 Ç x 1 Æ f 1 | x=1 F f 2 ) x1x1 BDD for f 1 | x1=0 BDD for f 1 | x1=1 x2x2 BDD for f 2 | x2=0 BDD for f 2 | x2=1 Æ = x1x1 BDD for f 1 | x1=1 Æ f 2 BDD for f 1 | x1=0 Æ f 2

Decision Procedures An algorithmic point of view19 BDDs from below: example. x 2 01 x 1 x 2 f 1 : x 1 $ x 2 x 2 10 Ç f 2 : : x 2 = x 1 BDD for f 1 | x1=0 Ç f 2 BDD for f 1 | x1=1 Ç f 2 BDD for f 1 | x1=0 Ç f 2 = x2x2 0 1 Ç x 2 10 = x Ç 0 = 0 1 Ç 1 = 1

Decision Procedures An algorithmic point of view20 BDDs from below: example. x 2 01 x 1 x 2 f 1 : x 1 $ x 2 x 2 10 Ç f 2 : : x 2 = x 1 BDD for f 1 | x=0 Ç f 2 BDD for f 1 | x=1 Ç f 2 = x 1 x 2 10 x 2 1 = x 1 x 2 10 x 2 f 1 Ç f 2 = x 1 Ç ( : x 1 Æ : x 2 )

Decision Procedures An algorithmic point of view21 BDD’s are compact truth tables pqrp Ç (q Æ r)

Decision Procedures An algorithmic point of view22 BDD’s are compact truth tables pqrp Ç (q Æ r) 11*1 10* *0

Decision Procedures An algorithmic point of view23 BDD’s are compact truth tables pqrp Ç (q Æ r) 1** *0 How would the BDD look like in the order p,q,r ?

Decision Procedures An algorithmic point of view24 BDD’s are compact truth tables pqrp © (q © r) Rows 5,6 have the same dependence on r, as do rows 3,4. Rows 7,8 have the same dependence on r, as do rows 1,2.

Decision Procedures An algorithmic point of view25 BDD’s are compact truth tables pqrp © (q © r) *see rows 3,4 00*see rows 1,2 Which reduction rule makes the BDD recognize this fact ?

Decision Procedures An algorithmic point of view26 Now with BDD’s p qq rrrr 01 p © (q © r) Nodes with the same dependence on r are isomorphic, and are hence united.

Decision Procedures An algorithmic point of view27 Now with BDD’s p qq r r 01 p © (q © r)

Decision Procedures An algorithmic point of view28 Comparing SAT to BDDs BDD is a canonical data structure that represents the semantic of a function, i.e. all its solutions  Some applications (e.g. symbolic model checking) need canonicity to detect when two sets are equivalent.  Can require exponential space & time (highly sensitive to variable ordering) SAT searches through CNF for a single solution  CNF is not canonical.  Poly-space algorithms exists. Time can be exponential.

Decision Procedures An algorithmic point of view29 Other uses of BDDs – Model counting Model counting – how many solutions does a formula have ? With SAT – O(SAT time £ # solutions). With BDDs – Linear!

Decision Procedures An algorithmic point of view30 Model counting Denote by  level(n) – location of node n in the order  left(n), right(n) – left and right child nodes of n For a node n, compute recursively:  if n is the ‘1’ node then count(n) = 1  if n is the ‘0’ node then count(n) = 0  otherwise: count(n) = Lcount(n) + Rcount(n) where: Lcount(n) = count(left(n)) * 2 level(left(n)) - level(n) – 1 // # solutions on left Rcount(n) = count(right(n)) * 2 level(right(n)) - level(n) – 1 // # solutions on right

Decision Procedures An algorithmic point of view31 Model Counting Model counting – how many solutions does a formula have ? (a Ç b Ç c) Æ d a c b d

Decision Procedures An algorithmic point of view32 Other uses of BDDs – random solutions A propositional formula has many solutions Suppose we need to choose one/some of them with a uniform distribution  i.e., every solution has equal chance A sample application: random test generation Try to do that with SAT...

Decision Procedures An algorithmic point of view33 Other uses of BDDs – random solutions Given Lcount(n) and Rcount(n) for each n:  Starting from the top: Choose left with probability Lcount(n) / count(n) Choose right with probability Rcount(n) / count(n)  Give even probability to variables missing from the path.

Decision Procedures An algorithmic point of view34 Other uses of BDDs – random solutions (a Ç b Ç c) Æ d a c b d /7 3/7 1/3 2/3