Canonical Computation without Canonical Data Structure

Slides:



Advertisements
Similar presentations
The Synthesis of Cyclic Circuits with SAT and Interpolation By John Backes and Marc Riedel ECE University of Minnesota.
Advertisements

Proofs from SAT Solvers Yeting Ge ACSys NYU Nov
Aaron Bradley University of Colorado, Boulder
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:
ECE Synthesis & Verification, Lecture 17 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Technology.
Digitaalsüsteemide verifitseerimise kursus1 Formal verification: SAT SAT applied in equivalence checking.
On the Relation between SAT and BDDs for Equivalence Checking Sherief Reda Rolf Drechsler Alex Orailoglu Computer Science & Engineering Dept. University.
Boolean Satisfiability Present and Future
1 Boolean Satisfiability (SAT) Class Presentation By Girish Paladugu.
Enhancing Model Checking Engines for Multi-Output Problem Solving Alan Mishchenko Robert Brayton Berkeley Verification and Synthesis Research Center Department.
Extracting Minimum Unsatisfiable Cores with a Greedy Genetic Algorithm Jianmin Zhang, Sikun Li, and Shengyu Shen School of Computer Science, National University.
A Toolbox for Counter-Example Analysis and Optimization
Introduction to Formal Verification
Richard Anderson Lecture 26 NP-Completeness
Synthesis for Verification
Technology Mapping into General Programmable Cells
Richard Anderson Lecture 26 NP-Completeness
SAT-based Methods: Logic Synthesis and Technology Mapping
Alan Mishchenko UC Berkeley
Mapping into LUT Structures
Delay Optimization using SOP Balancing
Enhancing PDR/IC3 with Localization Abstraction
New Directions in the Development of ABC
Logic Synthesis CNF Satisfiability.
Simple Circuit-Based SAT Solver
A Semi-Canonical Form for Sequential AIGs
Applying Logic Synthesis for Speeding Up SAT
Robert Brayton Alan Mishchenko Department of EECS UC Berkeley
Heuristics for Efficient SAT Solving
Versatile SAT-based Remapping for Standard Cells
SAT-based Methods: Logic Synthesis and Technology Mapping
Integrating an AIG Package, Simulator, and SAT Solver
A Boolean Paradigm in Multi-Valued Logic Synthesis
Synthesis for Verification
SAT-Based Logic Synthesis (yes, Logic Synthesis Is Everywhere
Standard-Cell Mapping Revisited
Introduction to Formal Verification
SAT-Based Area Recovery in Technology Mapping
Canonical Computation without Canonical Data Structure
ECE 667 Synthesis and Verification of Digital Circuits
SAT-Based Optimization with Don’t-Cares Revisited
Canonical Computation Without Canonical Data Structure
Robert Brayton UC Berkeley
SAT-based Methods for Scalable Synthesis and Verification
Decision Procedures An Algorithmic Point of View
Resolution Proofs for Combinational Equivalence
Chapter 11 Limitations of Algorithm Power
Alan Mishchenko UC Berkeley (With many thanks to Donald Knuth,
Alan Mishchenko UC Berkeley (With many thanks to Donald Knuth for
SAT-Based Logic Synthesis (yes, Logic Synthesis Is Everywhere!)
Integrating an AIG Package, Simulator, and SAT Solver
Introduction to Logic Synthesis
Canonical Computation without Canonical Data Structure
SAT-Based Logic Synthesis
Technology Mapping I based on tree covering
SAT-based Methods: Logic Synthesis and Technology Mapping
Alan Mishchenko UC Berkeley
SAT-based Methods: Logic Synthesis and Technology Mapping
Delay Optimization using SOP Balancing
Alan Mishchenko UC Berkeley
Logic Synthesis: Past and Future
Alan Mishchenko University of California, Berkeley
SAT-Based Logic Synthesis (yes, Logic Synthesis Is Everywhere!)
SAT-based Methods: Logic Synthesis and Technology Mapping
SAT-Based Logic Synthesis (yes, Logic Synthesis Is Everywhere!)
SAT-Based Logic Synthesis
Alan Mishchenko Department of EECS UC Berkeley
Integrating AIG Package, Simulator, and SAT Solver
Presentation transcript:

Canonical Computation without Canonical Data Structure Alan Mishchenko Department of EECS, UC Berkeley

Overview Motivation Definition of canonicity Fundamentals of SAT solving Canonicity in SAT-based computations for satisfiable calls (LEXSAT) for unsatisfiable calls (LEXUNSAT) Experiments Conclusion 2

Motivation Complementary data structures: BDDs vs SAT BDDs SAT trading space for time BDDs canonical, easy to use but difficult to construct (can mem out) SAT non-canonical, easy to construct but difficult to use (can time out) However, SAT is “better” in most cases Can we improve SAT by borrowing from BDDs? How about canonicity? - Yes, we can!

What Is Canonicity? Canonical representation Canonical computation Representing Boolean functions in a unique way for a given Boolean function with a given variable order, only one representation is possible Canonical computation Computing Boolean functions in a unique way for a given Boolean function with a given variable order, only one result of computation is possible In the BDD world, we did not distinguish the two In the SAT world, we cannot have both However, we can have canonical computation!

SAT in Practical Applications Netlist Answer: “SAT” or “UNSAT” CNF SAT solver CNF generator CNF Design constraints If SAT, a counter-example If UNSAT, a core User cost functions Both counter-examples and cores are useful in SAT-based applications. In practice, cores are often represented as subsets of assumptions that make the problem UNSAT.

Incremental SAT Initial CNF Round 1: SAT solver Initial assumptions Additional CNF Round 2: SAT solver New assumptions Additional CNF Round 3: SAT solver New assumptions Assumptions are CNF clauses used only in the current round – they are handled differently from the rest of CNF clauses.

Proposed Modification to SAT Traditional: Input: CNF, assumptions Output: (1) satisfying assignment or (2) UNSAT core, that is, a subset of literals that make the instance unsatisfiable Proposed: Input: CNF, assumptions, variable order (1) canonical satisfying assignment or (2) canonical UNSAT core, that is, subset of literals that make the instance unsatisfiable

The Main Idea Canonicity is achieved by adopting a variable order Now all satisfying assignments can be compared, and the smallest one can be returned Similarly, all UNSAT cores can be compared, and the smallest one can be returned

Choosing The Smallest Since we have a variable order, we order all assignments (cores) using this order, and take the first one in the list All satisfying assignments: 0000101101  the smallest one 0001111001 … 0111100111 Fortunately, there is no need to compute all assignments in order to find the minimum one

LEXSAT Input: cnf F Output: the smallest satisfying assignment as literals in array A array LEXSAT( cnf F ) { Initialize array A to have all negative literals in the given order; for ( i = 0; i <|A|; i++ ) { if ( F is UNSAT under assumptions A[0] through A[i] ) invert the polarity of literal A[i] to be positive; } return A;

LEXUNSAT Input: cnf F Output: the smallest satisfying assignment as literals in array A array LEXUNSAT( cnf F ) { Initialize array A to have all positive literals in the given order; for ( i = 0; i <|A|; i++ ) { if ( F is UNSAT under assumptions in A without A[i] ) invert the polarity of literal A[i] to be negative; } return A;

Applications of LEX{SAT,UNSAT} Canonical SAT-based ISOP (similar to BDD-based ISOP) useful in collapsing/refactoring, timing-driven optimization, etc Computing minimal supports in node minimization, resubstitution, Boolean decomposition, ECO Diversifying SAT assignments useful in both logic synthesis and formal verification Approximate computing, SMT solving, etc

ISOP Computations Compared BDDovo BDD-based ISOP for the original variable order without dynamic variable reordering BDDdvr BDD-based ISOP for the original variable order with dynamic variable reordering SATovo SAT-based ISOP with LEXSAT and LEXUNSAT for the original variable order SATrvo SAT-based ISOP with LEXSAT and LEXUNSAT for a random variable order

Computing Canonical ISOP

Counter-Example Minimization

Conclusion Reviewed BDDs and SAT distinguished canonical representation and canonical computation Showed that SAT is capable of canonical computations discussed two algorithms (LEXSAT and LEXUNSAT) Listed several practical applications most of them in logic synthesis

Abstract A computation is canonical if the result depends only on the Boolean function and a selected variable order, and does not depend on how the function is represented and how the computation is implemented. In the context of Boolean satisfiability (SAT), canonicity implies that the result (a satisfying assignment for satisfiable instances and a UNSAT core for unsatisfiable ones) does not depend on the circuit structure, CNF generation algorithm, and the SAT solver used. The main highlight of this paper is that all SAT-based computations can be made canonical without building a canonical data-structure. The runtime overhead for inducing canonicity is relatively small and is often justifies by the uniqueness and the improved quality of results.