SAT tutorial1 Boolean Satisfiability in Electronic Design Automation Karem A. Sakallah EECS Department University of Michigan João Marques Silva Informatics.

Slides:



Advertisements
Similar presentations
Exploiting SAT solvers in unbounded model checking
Advertisements

Exploiting SAT solvers in unbounded model checking K. L. McMillan Cadence Berkeley Labs.
Hypothetical Reasoning in Propositional Satisfiability SAT02, May, 2002 Joao Marques-Silva Technical University of Lisbon, IST/INESC, CEL Lisbon, Portugal.
Presented by Monissa Mohan 1.  A highly optimized BCP algorithm  Two watched literals  Fast Backtracking  Efficient Decision Heuristic  Focused on.
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License:
UIUC CS 497: Section EA Lecture #2 Reasoning in Artificial Intelligence Professor: Eyal Amir Spring Semester 2004.
Proofs from SAT Solvers Yeting Ge ACSys NYU Nov
“Using Weighted MAX-SAT Engines to Solve MPE” -- by James D. Park Shuo (Olivia) Yang.
Methods of Proof Chapter 7, second half.. Proof methods Proof methods divide into (roughly) two kinds: Application of inference rules: Legitimate (sound)
Using Problem Structure for Efficient Clause Learning Ashish Sabharwal, Paul Beame, Henry Kautz University of Washington, Seattle April 23, 2003.
Methods of Proof Chapter 7, Part II. Proof methods Proof methods divide into (roughly) two kinds: Application of inference rules: Legitimate (sound) generation.
CPSC 422, Lecture 21Slide 1 Intelligent Systems (AI-2) Computer Science cpsc422, Lecture 21 Mar, 4, 2015 Slide credit: some slides adapted from Stuart.
Data Structures for SAT Solvers The 2-Literal Representation Gábor Kusper Eszterházy Károly College Eger, Hungary.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View SAT.
1/30 SAT Solver Changki PSWLAB SAT Solver Daniel Kroening, Ofer Strichman.
Towards More Efficient SAT-Based Model Checking Joao Marques-Silva Electronics & Computer Science University of Southampton LAA C&V Workshop, Isaac Newton.
Properties of SLUR Formulae Ondřej Čepek, Petr Kučera, Václav Vlček Charles University in Prague SOFSEM 2012 January 23, 2012.
Reduction of Interpolants for Logic Synthesis John Backes Marc Riedel University of Minnesota Dept.
SAT and Model Checking. Bounded Model Checking (BMC) A.I. Planning problems: can we reach a desired state in k steps? Verification of safety properties:
© 2002 Fadi A. Aloul, University of Michigan PBS: A Pseudo-Boolean Solver and Optimizer Fadi A. Aloul, Arathi Ramani, Igor L. Markov, Karem A. Sakallah.
ECE 667 Synthesis & Verification - SAT 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Boolean SAT CNF Representation Slides adopted (with.
1 Recursive Learning Madhurima Maddela. ELEC /26/052 Decision Tree Traditionally used to branch and bound in the search space to generate test.
Proof methods Proof methods divide into (roughly) two kinds: –Application of inference rules Legitimate (sound) generation of new sentences from old Proof.
Willis Lemasters Grant Conklin. Searching a tree recursively one branch at a time, abandoning any branch which does not satisfy the search constraints.
(a = 0)  (c = 0)  (f = 0)  (  = 0)  = (a + b)(¬b + c + d) (¬b + e)(¬d + ¬e + f)  Clause Recording During backtrack search, for each conflict create.
1 Boolean Satisfiability in Electronic Design Automation (EDA ) By Kunal P. Ganeshpure.
On-The-Fly Resolve Trace Minimization Ohad Shacham and Karen Yorav IBM Haifa Research Laboratory.
Presented by Ed Clarke Slides borrowed from P. Chauhan and C. Bartzis
GRASP-an efficient SAT solver Pankaj Chauhan. 6/19/ : GRASP and Chaff2 What is SAT? Given a propositional formula in CNF, find an assignment.
Existential Graphs and Davis-Putnam April 3, 2002 Bram van Heuveln Department of Cognitive Science.
1 Satisfiability Checking of Non-clausal Formulas using General Matings Himanshu Jain Constantinos Bartzis Edmund Clarke Carnegie Mellon University.
Methods of Proof Chapter 7, second half.
GRASP SAT solver Presented by Constantinos Bartzis Slides borrowed from Pankaj Chauhan J. Marques-Silva and K. Sakallah.
Efficient Reachability Checking using Sequential SAT G. Parthasarathy, M. K. Iyer, K.-T.Cheng, Li. C. Wang Department of ECE University of California –
Search in the semantic domain. Some definitions atomic formula: smallest formula possible (no sub- formulas) literal: atomic formula or negation of an.
Last time Proof-system search ( ` ) Interpretation search ( ² ) Quantifiers Equality Decision procedures Induction Cross-cutting aspectsMain search strategy.
1 Understanding the Power of Clause Learning Ashish Sabharwal, Paul Beame, Henry Kautz University of Washington, Seattle IJCAI ConferenceAug 14, 2003.
SAT Algorithms in EDA Applications Mukul R. Prasad Dept. of Electrical Engineering & Computer Sciences University of California-Berkeley EE219B Seminar.
Knowledge Representation II (Inference in Propositional Logic) CSE 473 Continued…
ENGG3190 Logic Synthesis “Boolean Satisfiability” Winter 2014 S. Areibi School of Engineering University of Guelph.
GRASP: A Search Algorithm for Propositional Satisfiability EE878C Homework #2 2002/11/1 KAIST, EECS ICS Lab Lee, Dongsoo.
SAT Solving Presented by Avi Yadgar. The SAT Problem Given a Boolean formula, look for assignment A for such that.  A is a solution for. A partial assignment.
Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto.
Boolean Satisfiability and SAT Solvers
MBSat Satisfiability Program and Heuristics Brief Overview VLSI Testing B Marc Boulé April 2001 McGill University Electrical and Computer Engineering.
CHAPTERS 7, 8 Oliver Schulte Logical Inference: Through Proof to Truth.
Solvers for the Problem of Boolean Satisfiability (SAT) Will Klieber Aug 31, 2011 TexPoint fonts used in EMF. Read the TexPoint manual before you.
Boolean Satisfiability in Electronic Design Automation Karem A. Sakallah EECS Department University of Michigan João Marques Silva Informatics Department.
LDK R Logics for Data and Knowledge Representation Propositional Logic: Reasoning First version by Alessandro Agostini and Fausto Giunchiglia Second version.
On the Relation between SAT and BDDs for Equivalence Checking Sherief Reda Rolf Drechsler Alex Orailoglu Computer Science & Engineering Dept. University.
Boolean Satisfiability in Electronic Design Automation Karem A. Sakallah EECS Department University of Michigan João Marques-Silva Informatics Department.
SAT 2009 Ashish Sabharwal Backdoors in the Context of Learning (short paper) Bistra Dilkina, Carla P. Gomes, Ashish Sabharwal Cornell University SAT-09.
© Copyright 2008 STI INNSBRUCK Intelligent Systems Propositional Logic.
Logical Agents Chapter 7. Outline Knowledge-based agents Propositional (Boolean) logic Equivalence, validity, satisfiability Inference rules and theorem.
SAT Solving As implemented in - DPLL solvers: GRASP, Chaff and
Inference in Propositional Logic (and Intro to SAT) CSE 473.
1 Boolean Satisfiability (SAT) Class Presentation By Girish Paladugu.
Proof Methods for Propositional Logic CIS 391 – Intro to Artificial Intelligence.
Knowledge Repn. & Reasoning Lecture #9: Propositional Logic UIUC CS 498: Section EA Professor: Eyal Amir Fall Semester 2005.
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License:
© R.A. Rutenbar 2009 Slide 1 Carnegie Mellon (Lec 06) Boolean Satisfiability: SAT Solvers (Pt 1) What you know  Representation and manipulation via BDDs,
Logical Agents. Outline Knowledge-based agents Logic in general - models and entailment Propositional (Boolean) logic Equivalence, validity, satisfiability.
Inference in Propositional Logic (and Intro to SAT)
Inference and search for the propositional satisfiability problem
Boolean Satisfiability in Electronic Design Automation
Logic Synthesis CNF Satisfiability.
ECE 667 Synthesis and Verification of Digital Circuits
Decision Procedures An Algorithmic Point of View
Methods of Proof Chapter 7, second half.
GRASP-an efficient SAT solver
Presentation transcript:

SAT tutorial1 Boolean Satisfiability in Electronic Design Automation Karem A. Sakallah EECS Department University of Michigan João Marques Silva Informatics Department Technical University of Lisbon IST/INESC, CEL

SAT tutorial 2 Context SAT is the quintessential NP-complete problem Theoretically well-studied Practical algorithms for large problem instances started emerging in the last five years Has many applications in EDA and other fields Can potentially have similar impact on EDA as BDDs EDA professionals should have good working knowledge of SAT formulations and algorithms

SAT tutorial 3 Outline Boolean Satisfiability (SAT) Basic Algorithms Representative EDA Applications Taxonomy of Modern SAT Algorithms Advanced Backtrack Search Techniques Experimental Evidence Conclusions

SAT tutorial 4 Boolean Satisfiability Given a suitable representation for a Boolean function f(X): –Find an assignment X* such that f(X*) = 1 –Or prove that such an assignment does not exist (i.e. f(X) = 0 for all possible assignments) In the “classical” SAT problem, f(X) is represented in product-of- sums (POS) or conjunctive normal form (CNF) Many decision (yes/no) problems can be formulated either directly or indirectly in terms of Boolean Satisfiability

SAT tutorial 5 Conjunctive Normal Form (CNF) Clause Positive Literal Negative Literal  ( a +  c ) ( b +  c ) (¬a +  ¬b + ¬c )

SAT tutorial 6 Basics Implication x  y = ¬x + y = ¬(¬y) + (¬x) = ¬y  ¬x (contra positive) Assignments: {a = 0, b = 1} = ¬a b –Partial (some variables still unassigned) –Complete (all variables assigned) –Conflicting (imply ¬  )  = (a +  c)(b +  c)(¬a +  ¬b + ¬c)   (a +  c) ¬(a +  c)  ¬  ¬a ¬c  ¬ 

SAT tutorial 7 General technique for deriving new clauses Example:  1 = (¬a + b + c),  2 = (a + b + d) Consensus: con(  1,  2, a) = (b + c + d) Complete procedure for satisfiability [Davis, JACM’60] Impractical for real-world problem instances Application of restricted forms has been successful! –E.g., always apply restricted consensus con((¬a +  ), (a +  ), a) = (  )  is a disjunction of literals Consensus

SAT tutorial 8 Literal & Clause Classification  (a +  ¬b)(¬a +  b + ¬c )(a + c + d )(¬a +  ¬b + ¬c ) a assigned 0b assigned 1 c and d unassigned violatedunresolved satisfied

SAT tutorial 9 Outline Boolean Satisfiability (SAT) Basic Algorithms Representative EDA Applications Taxonomy of Modern SAT Algorithms Advanced Backtrack Search Techniques Experimental Evidence Conclusions

SAT tutorial 10 Basic Backtracking Search (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) a (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) b c dd b c dd c d (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d) (¬b + ¬c + ¬d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + d)

SAT tutorial 11 An unresolved clause is unit if it has exactly one unassigned literal  = (a +  c)(b +  c)(¬a +  ¬b + ¬c) A unit clause has exactly one option for being satisfied a b  ¬c i.e. c must be set to 0. Unit Clause Rule - Implications

SAT tutorial 12 Basic Search with Implications (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) a (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) b (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) c (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) d 7 7 b c (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) d 5 5 a c (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) c 3 3 a b (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) 5 5 d (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) b (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) c (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d) d 4 4 a c (a + b + c) (a + b + ¬c) (¬a + b + ¬c) (a + c + d) (¬a + c + d) (¬a + c + ¬d) (¬b + ¬c + ¬d) (¬b + ¬c + d)

SAT tutorial 13 Pure Literal Rule A variable is pure if its literals are either all positive or all negative Satisfiability of a formula is unaffected by assigning pure variables the values that satisfy all the clauses containing them  = (a + c )(b + c )(b + ¬d)(¬a + ¬b + d) Set c to 1; if  becomes unsatisfiable, then it is also unsatisfiable when c is set to 0.

SAT tutorial 14 Circuit Satisfiability a b c d e g f h?h?  = h [d=¬(ab)] [e=¬(b+c)] [f=¬d] [g=d+e] [h=fg]

SAT tutorial 15 Gate CNF a b d  d  = [d = ¬(a b)] = ¬[d  ¬(a b)] = ¬[¬(a b)¬d + a b d] = ¬[¬a ¬d + ¬b ¬d + a b d] = (a +  d)(b +  d)(¬a +  ¬b + ¬d)  d  = [d = ¬(a b )][¬d = a b] = [d =  ¬a + ¬b][¬d = a b] = (¬a  d)(¬b  d)(a b  ¬d) = (a +  d)(b +  d)(¬a +  ¬b + ¬d)

SAT tutorial 16 Circuit Satisfiability a b c d e g f h?h?  = h [d=¬(ab)] [e=¬(b+c)] [f=¬d] [g=d+e] [h=fg] = h (a +  d)(b +  d)(¬a +  ¬b + ¬d) (¬b +  ¬e)(¬c +  ¬e)(b +  c + e) (¬d +  ¬f)(d +  f) (¬d +  g)(¬e +  g)(d +  e + ¬g) (f +  ¬h)(g +  ¬h)(¬f +  ¬g + h) = h (a +  d)(b +  d)(¬a +  ¬b + ¬d) (¬b +  ¬e)(¬c +  ¬e)(b +  c + e) (¬d +  ¬f)(d +  f) (¬d +  g)(¬e +  g)(d +  e + ¬g) (f +  ¬h)(g +  ¬h)(¬f +  ¬g + h) = h (a +  d)(b +  d)(¬a +  ¬b + ¬d) (¬b +  ¬e)(¬c +  ¬e)(b +  c + e) (¬d +  ¬f)(d +  f) (¬d +  g)(¬e +  g)(d +  e + ¬g) (f +  ¬h)(g +  ¬h)(¬f +  ¬g + h) a b c d e g f h?h? = h (a +  d)(b +  d)(¬a +  ¬b + ¬d) (¬b +  ¬e)(¬c +  ¬e)(b +  c + e) (¬d +  ¬f)(d +  f) (¬d +  g)(¬e +  g)(d +  e + ¬g) (f +  ¬h)(g +  ¬h)(¬f +  ¬g + h) a b c d e g f h?h? = h (a +  d)(b +  d)(¬a +  ¬b + ¬d) (¬b +  ¬e)(¬c +  ¬e)(b +  c + e) (¬d +  ¬f)(d +  f) (¬d +  g)(¬e +  g)(d +  e + ¬g) (f +  ¬h)(g +  ¬h)(¬f +  ¬g + h) a b c d e g f h?h? a b c d e g f h

SAT tutorial 17 Outline Boolean Satisfiability (SAT) Basic Algorithms Representative EDA Applications Taxonomy of Modern SAT Algorithms Advanced Backtrack Search Techniques Experimental Evidence Conclusions

SAT tutorial 18 x4x4x4x4 x1x1x1x1 x2x2x2x2 x3x3x3x3 x5x5x5x5 x6x6x6x6 x7x7x7x7 x8x8x8x8 x9x9x9x9 ATPG x4x4x4x4 x1x1x1x1 x2x2x2x2 x3x3x3x3 x5x5x5x5 x6x6x6x6 x7x7x7x7 x8x8x8x8 x9x9x9x9 = 0 = 0 CGCG = 1 = 1 CFCF x4x4x4x4 x1x1x1x1 x3x3x3x3 x5x5x5x5 x6x6x6x6 x7x7x7x7 x8x8x8x8 x9x9x9x9 x1x1x1x1 x2x2x2x2 x3x3x3x3 x4x4x4x4 x5x5x5x5 x6x6x6x6 x7x7x7x7 x8x8x8x8 x9x9x9x9 s-a-1 z z = 1 ?

SAT tutorial 19 Equivalence Checking If z = 1 is unsatisfiable, the two circuits are equivalent ! CBCB CACA z = 1 ?

SAT tutorial 20 Outline Boolean Satisfiability (SAT) Basic Algorithms Representative EDA Applications Taxonomy of Modern SAT Algorithms Advanced Backtrack Search Techniques Experimental Evidence Conclusions

SAT tutorial 21 A Taxonomy of SAT Algorithms Backtrack search (DP) Resolution (original DP) Stallmarck’s method (SM) Recursive learning (RL) BDDs... Local search (hill climbing) Continuous formulations Genetic algorithms Simulated annealing... Tabu search SAT Algorithms Complete Incomplete Can prove unsatisfiabilityCannot prove unsatisfiability

SAT tutorial 22 Resolution (original DP) Iteratively apply resolution (consensus) to eliminate one variable each time –i.e., consensus between all pairs of clauses containing x and ¬x –formula satisfiability is preserved Stop applying resolution when, –Either empty clause is derived  instance is unsatisfiable –Or only clauses satisfied or with pure literals are obtained  instance is satisfiable  = (a + c)(b + c)(d + c)(¬a + ¬b + ¬c) Eliminate variable c  1 = (a + ¬a + ¬b)(b + ¬a + ¬b )(d + ¬a + ¬b ) = (d + ¬a + ¬b ) Instance is SAT !

SAT tutorial 23 Stallmarck’s Method (SM) in CNF Recursive application of the branch-merge rule to each variable with the goal of identifying common conclusions Try a = 0: (a = 0)  (b = 1)  (d = 1) Try a = 1: (a = 1)  (c = 1)  (d = 1) C(a = 0) = {a = 0, b = 1, d = 1} C(a = 1) = {a = 1, c = 1, d = 1} C(a = 0)  C(a = 1) = {d = 1} Any assignment to variable a implies d = 1. Hence, d = 1 is a necessary assignment ! Recursion can be of arbitrary depth  = (a + b)(¬a + c) (¬b + d)(¬c + d)

SAT tutorial 24 Recursion can be of arbitrary depth Recursive Learning (RL) in CNF Recursive evaluation of clause satisfiability requirements for identifying common assignments Try a = 1:  = (a + b)(¬a + d) (¬b + d) (a = 1)  (d = 1) Try b = 1: (b = 1)  (d = 1) C(a = 1) = {a = 1, d = 1} C(b = 1) = {b = 1, d = 1} C(a = 1)  C(b = 1) = {d = 1} Every way of satisfying (a + b) implies d = 1. Hence, d = 1 is a necessary assignment !  = (a + b)(¬a + d) (¬b + d)

SAT tutorial 25 SM vs. RL Both complete procedures for SAT Stallmarck’s method: –hypothetic reasoning based on variables Recursive learning: –hypothetic reasoning based on clauses Both can be integrated into backtrack search algorithms

SAT tutorial 26 Local Search Repeat M times: –Randomly pick complete assignment –Repeat K times (and while exist unsatisfied clauses): Flip variable that will satisfy largest number of unsat clauses  = (a + b)(¬a + c) (¬b + d)(¬c + d) Pick random assignment  = (a + b)(¬a + c) (¬b + d)(¬c + d) Flip assignment on d  = (a + b)(¬a + c) (¬b + d)(¬c + d) Instance is satisfied !

SAT tutorial 27 Comparison Local search is incomplete –If instances are known to be SAT, local search can be competitive Resolution is in general impractical Stallmarck’s Method (SM) and Recursive Learning (RL) are in general slow, though robust –SM and RL can derive too much unnecessary information For most EDA applications backtrack search (DP) is currently the most promising approach ! –Augmented with techniques for inferring new clauses/implicates (i.e. learning) !

SAT tutorial 28 Outline Boolean Satisfiability (SAT) Basic Algorithms Representative EDA Applications Taxonomy of Modern SAT Algorithms Advanced Backtrack Search Techniques Experimental Evidence Conclusions

SAT tutorial 29 Techniques for Backtrack Search Conflict analysis –Clause/implicate recording –Non-chronological backtracking Incorporate and extend ideas from: –Resolution –Recursive learning –Stallmarck’s method Formula simplification & Clause inference [Li,AAAI00] Randomization & Restarts [Gomes&Selman,AAAI98]

SAT tutorial 30  = (a + b)(¬b + c + d) (¬b + e)(¬d + ¬e + f)  Clause Recording During backtrack search, for each conflict create clause that explains and prevents recurrence of same conflict Assume (decisions) c = 0 and f = 0 Assign a = 0 and imply assignments A conflict is reached: (¬d + ¬e + f) is unsat (a = 0)  (c = 0)  (f = 0)  (  = 0) (  = 1)  (a = 1)  (c = 1)  (f = 1)  create new clause: (a + c + f)

SAT tutorial 31 Clause Recording Clauses derived from conflicts can also be viewed as the result of applying selective consensus  = (a + b)(¬b + c + d) (¬b + e)(¬d + ¬e + f)  (a + c + d) consensus (a + c + ¬e + f) (a + c + f) (a + e)

SAT tutorial 32 Non-Chronological Backtracking During backtrack search, in the presence of conflicts, backtrack to one of the causes of the conflict  =(a + b)(¬b + c + d) (¬b + e)(¬d + ¬e + f) (a + c + f)(¬a + g)(¬g + b)(¬h + j)(¬i + k)  Assume (decisions) c = 0, f = 0, h = 0 and i = 0 Assignment a = 0 caused conflict  clause (a + c + f) created (a + c + f) implies a = 1  =(a + b)(¬b + c + d) (¬b + e)(¬d + ¬e + f) (a + c + f)(¬a + g)(¬g + b)(¬h + j)(¬i + k)   =(a + b)(¬b + c + d) (¬b + e)(¬d + ¬e + f) (a + c + f)(¬a + g)(¬g + b)(¬h + j)(¬i + k)   =(a + b)(¬b + c + d) (¬b + e)(¬d + ¬e + f) (a + c + f)(¬a + g)(¬g + b)(¬h + j)(¬i + k)  A conflict is again reached: (¬d + ¬e + f) is unsat (a = 1)  (c = 0)  (f = 0)  (  = 0) (  = 1)  (a = 0)  (c = 1)  (f = 1)  create new clause: (¬a + c + f)

SAT tutorial 33 Non-Chronological Backtracking Created clauses: (a + c + f) and (¬a + c + f)  backtrack to most recent decision: f = 0 (c + f)  created clauses/implicates: (a + c + f), (¬a + c + f), and (c + f) Apply consensus: new unsat clause (c + f) 0 0 c f i h 0 0 a 0 1

SAT tutorial 34 Ideas from other Approaches Resolution, Stallmarck’s method and recursive learning can be incorporated into backtrack search (DP) –create additional clauses/implicates anticipate and prevent conflicting conditions identify necessary assignments allow for non-chronological backtracking (b + c + d) consensus (b + c + d) Unit clause ! (¬a + b + d)(a + b + c) Resolution within DP: Clause provides explanation for necessary assignment b = 1

SAT tutorial 35  = (a + b + e)(¬a + c + f)(¬b + d) (¬c + d + g) Implications: (a = 0)  (e = 0)  (b = 1)  (d = 1)  = (a + b + e)(¬a + c + f)(¬b + d) (¬c + d + g) (a = 1)  (f = 0)  (c = 1) (c = 1)  (g = 0)  (d = 1)  = (a + b + e)(¬a + c + f)(¬b + d) (¬c + d + g) (e = 0)  (f = 0)  (g = 0)  (d = 1) Stallmarck’s Method within DP Clausal form: (e + f + g + d)Unit clause ! Clause provides explanation for necessary assignment d = 1 (d + e + c + f) (b + e + c + f) consensu s (e + f + g + d)

SAT tutorial 36 Implications:  = (a + b + c)(¬a + d + e) (¬b + d + c) (a = 1)  (e = 0)  (d = 1)  = (a + b + c)(¬a + d + e) (¬b + d + c) (b = 1)  (c = 0)  (d = 1)  = (a + b + c)(¬a + d + e) (¬b + d + c) Recursive Learning within DP Clause provides explanation for necessary assignment d = 1 (c + e + d) consensus (b + c + e + d) consensus  = (a + b + c)(¬a + d + e) (¬b + d + c) (c = 0)  ((e = 0)  (c = 0))  (d = 1) Clausal form: (c + e + d)Unit clause !

SAT tutorial 37 Formula Simplification Eliminate clauses and variables –If (x +  y) and (  x + y) exist, then x and y are equivalent, (x  y) eliminate y, and replace by x remove satisfied clauses –Utilize 2CNF sub-formula for identifying equivalent variables (¬a + b)(¬b + c)(¬c + d)(¬d + b)(¬d + a) a, b, c and d are pairwise equivalent Implication graph: a d bc

SAT tutorial 38 Clause Inference Conditions Given (l 1 + ¬l 2 )(l 1 + ¬l 3 )(l 2 + l 3 + ¬l 4 )Infer (l 1 + ¬l 4 ) Type of Inference: 2 Binary / 1 Ternary (2B/1T) Clauses Other types: 1B/1T, 1B/2T, 3B/1T, 2B/1T, 0B/4T (l 1 + l 3 + ¬ l 4 ) consensus (l 1 + ¬ l 4 ) consensus If we can also infer (¬l 1 + l 4 ), then we prove (l 1  l 4 ), and can replace l 4 by l 1 !

SAT tutorial 39 The Power of Consensus Most search pruning techniques can be explained as particular ways of applying selective consensus –Conflict-based clause recording –Non-chronological backtracking –Extending Stallmarck’s method to backtrack search –Extending recursive learning to backtrack search –Clause inference conditions General consensus is computationally too expensive ! Most techniques indirectly identify which consensus operations to apply ! –To create new clauses/implicates To identify necessary assignments

SAT tutorial 40 Randomization & Restarts Run times of backtrack search SAT solvers characterized by heavy-tail distributions –For a fixed problem instance, run times can exhibit large variations with different branching heuristics and/or branching randomization Search strategy: Rapid Randomized Restarts –Randomize variable selection heuristic –Utilize a small backtrack cutoff value –Repeatedly restart the search each time backtrack cutoff reached Use randomization to explore different paths in search tree

SAT tutorial 41 Randomization & Restarts Can make the search strategy complete –Increase cutoff value after each restart Can utilize learning –Useful for proving unsatisfiability Can utilize portfolios of algorithms and/or algorithm configurations –Also useful for proving unsatisfiability

SAT tutorial 42 Outline Boolean Satisfiability (SAT) Basic Algorithms Representative EDA Applications Taxonomy of Modern SAT Algorithms Advanced Backtrack Search Techniques Experimental Evidence Conclusions

SAT tutorial 43 Conclusions Many recent SAT algorithms and (EDA) applications Hard Applications –Bounded Model Checking –Combinational Equivalence Checking –Superscalar processor verification –FPGA routing “Easy” Applications –Test Pattern Generation: Stuck-at, Delay faults, etc. –Redundancy Removal –Circuit Delay Computation Other Applications –Noise analysis, etc.

SAT tutorial 44 Conclusions Complete vs. Incomplete algorithms –Backtrack search (DP) –Resolution (original DP) –Stallmarck’s method –Recursive learning –Local search Techniques for backtrack search (infer implicates) –conflict-induced clause recording –non-chronological backtracking –resolution, SM and RL within backtrack search –formula simplification & clause inference conditions –randomization & restarts

SAT tutorial 45 More Information on SAT in EDA