ULTIMATELY INCREMENTAL SAT Alexander Nadel 1, Vadim Ryvchin 1,2, and Ofer Strichman 2 1 – Intel, Haifa, Israel 2 – Technion, Haifa, Israel SAT’14, Vienna,

Slides:



Advertisements
Similar presentations
Exploiting SAT solvers in unbounded 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.
Presented by Monissa Mohan 1.  A highly optimized BCP algorithm  Two watched literals  Fast Backtracking  Efficient Decision Heuristic  Focused on.
Introduction to Formal Methods for SW and HW Development 09: SAT Based Abstraction/Refinement in Model-Checking Roberto Sebastiani Based on work and slides.
1 Local Restarts in SAT Solvers Vadim Ryvchin and Ofer Strichman Technion, Haifa, Israel.
SAT Based Abstraction/Refinement in Model-Checking Based on work by E. Clarke, A. Gupta, J. Kukula, O. Strichman (CAV’02)
Introduction to MiniSat v1.14 Presented by Yunho Kim Provable Software Lab, KAIST.
Proofs from SAT Solvers Yeting Ge ACSys NYU Nov
Aaron Bradley University of Colorado, Boulder
1/30 SAT Solver Changki PSWLAB SAT Solver Daniel Kroening, Ofer Strichman.
IBM Labs in Haifa © 2005 IBM Corporation Adaptive Application of SAT Solving Techniques Ohad Shacham and Karen Yorav Presented by Sharon Barner.
A Scalable Algorithm for Minimal Unsatisfiable Core Extraction Nachum Dershowitz¹ Ziyad Hanna² Alexander Nadel¹, ² 1 Tel-Aviv University 2 Intel SAT’06.
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:
Weizmann Institute Tuning SAT-checkers for Bounded Model-Checking A bounded guided tour Ofer Shtrichman Weizmann Institute & IBM (HRL)
Hrinking hrinking A signment tack tack. Agenda Introduction Algorithm Description Heuristics Experimental Results Conclusions.
Constraint Logic Programming Ryan Kinworthy. Overview Introduction Logic Programming LP as a constraint programming language Constraint Logic Programming.
Boolean Satisfiability Solvers Wonhong Nam
On-The-Fly Resolve Trace Minimization Ohad Shacham and Karen Yorav IBM Haifa Research Laboratory.
Searching for Autarkies to Trim Unsatisfiable Clause Sets Mark H. Liffiton and Karem A. Sakallah University of Michigan {liffiton,
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.
Efficient SAT Solving for Non- clausal Formulas using DPLL, Graphs, and Watched-cuts Himanshu Jain Edmund M. Clarke.
1 Linear-time Reductions of Resolution Proofs Omer Bar-Ilan Oded Fuhrmann Shlomo Hoory Ohad Shacham Ofer Strichman Technion.
GRASP SAT solver Presented by Constantinos Bartzis Slides borrowed from Pankaj Chauhan J. Marques-Silva and K. Sakallah.
Pruning techniques for the SAT-based Bounded Model-Checking problem Ofer Shtrichman Weizmann Institute of Science & IBM - HRL.
1 Abstraction Refinement for Bounded Model Checking Anubhav Gupta, CMU Ofer Strichman, Technion Highly Jet Lagged.
GRASP: A Search Algorithm for Propositional Satisfiability EE878C Homework #2 2002/11/1 KAIST, EECS ICS Lab Lee, Dongsoo.
On Solving Presburger and Linear Arithmetic with SAT Ofer Strichman Carnegie Mellon University.
1 Linear-time Reductions of Resolution Proofs Omer Bar-Ilan Oded Fuhrmann Shlomo Hoory Ohad Shacham Ofer Strichman Technion.
Daniel Kroening and Ofer Strichman 1 Decision Procedures in First Order Logic Decision Procedures for Equality Logic.
1 SAT Genealogy Alexander Nadel, Intel, Haifa, Israel The Technion, Haifa, Israel July,
Boolean Satisfiability and SAT Solvers
CMU, Oct 4 DPLL-based Checkers for Satisfiability Modulo Theories Cesare Tinelli Department of Computer Science The University of Iowa Joint work with.
MBSat Satisfiability Program and Heuristics Brief Overview VLSI Testing B Marc Boulé April 2001 McGill University Electrical and Computer Engineering.
Solvers for the Problem of Boolean Satisfiability (SAT) Will Klieber Aug 31, 2011 TexPoint fonts used in EMF. Read the TexPoint manual before you.
BIT-VECTOR REWRITING WITH AUTOMATIC RULE GENERATION Alexander Nadel Intel Haifa, Israel CAV 2014 Vienna, Austria July 22 th, 2014.
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
Maximum Density Still Life Symmetries and Lazy Clause Generation Geoffrey Chu, Maria Garcia de la Banda, Chris Mears, Peter J. Stuckey.
February 22-25, 2010 Designers Work Less with Quality Formal Equivalence Checking by Orly Cohen, Moran Gordon, Michael Lifshits, Alexander Nadel, and Vadim.
Finding Models for Blocked 3-SAT Problems in Linear Time by Systematical Refinement of a Sub- Model Gábor Kusper Eszterházy Károly.
Efficient SAT Solving Under Assumptions Alexander Nadel 1 and Vadim Ryvchin 1,2 1 – Intel, Haifa, Israel 2 – Technion, Haifa, Israel SAT’12, Trento, Italy.
SAT Solver Heuristics. SAT-solver History Started with David-Putnam-Logemann-Loveland (DPLL) (1962) –Able to solve variable problems Satz (Chu Min.
Preprocessing in Incremental SAT Alexander Nadel 1, Vadim Ryvchin 1,2, and Ofer Strichman 2 1 – Intel, Haifa, Israel 2 – Technion, Haifa, Israel SAT’12,
Satisfiability and SAT Solvers CS 270 Math Foundations of CS Jeremy Johnson.
1 Boolean Satisfiability (SAT) Class Presentation By Girish Paladugu.
1 A framework for eager encoding Daniel Kroening ETH, Switzerland Ofer Strichman Technion, Israel (Executive summary) (submitted to: Formal Aspects of.
A Decision-Making Procedure for Resolution-Based SAT-solvers Eugene Goldberg Cadence Research Labs (USA) SAT-2008, Guangzhou, P.R. China.
Daniel Kroening and Ofer Strichman 1 Decision Procedures in First Order Logic Decision Procedures for Equality Logic.
Variable-Time-Frame Gate-Level Abstraction Alan Mishchenko Niklas Een Robert Brayton Alan Mishchenko Niklas Een Robert Brayton UC Berkeley UC Berkeley.
Bit-Vector Optimization ALEXANDER NADER AND VADIM RYVCHIN INTEL TACAS 2016.
Decision Procedures in First Order Logic
Efficient Generation of Small Interpolants in CNF (for Model Checking)
Hybrid BDD and All-SAT Method for Model Checking
Hardware Acceleration of A Boolean Satisfiability Solver
Inference and search for the propositional satisfiability problem
Minimizing Unsatisfiable Formulas
Parallelism in SAT Solvers
Recovering and Exploiting Structural Knowledge from CNF Formulas
Deriving small unsatisfiable cores with dominators
Simple Circuit-Based SAT Solver
Mining backbone literals in incremental SAT
ECE 667 Synthesis and Verification of Digital Circuits
GLA: Gate-Level Abstraction Revisited
A Progressive Approach for Satisfiability Modulo Theories
Efficient MUS Extraction with Resolution
Decision heuristics based on an Abstraction/Refinement model
GRASP-an efficient SAT solver
Faster Extraction of High-Level Minimal Unsatisfiable Cores
Presentation transcript:

ULTIMATELY INCREMENTAL SAT Alexander Nadel 1, Vadim Ryvchin 1,2, and Ofer Strichman 2 1 – Intel, Haifa, Israel 2 – Technion, Haifa, Israel SAT’14, Vienna, Austria

Introduction  Incremental SAT is at the core of a variety of applications  Assumptions are widely used in Incremental SAT  Preprocessing is essential for performance

Recall: SatELite Preprocessing

Recall: Clause Database Simplification 1. Propagation of unit clauses 2. Elimination of satisfied clauses 3. Removal of falsified literals from clauses

Incremental SAT under Assumptions

Temporary vs. Pervasive clauses  We say that a clause is temporary if it is either an assumption or was derived from one or more assumptions, and pervasive otherwise.

Temporary vs. Pervasive α1=aα1=a α1=aα1=a Legend: α2=bα2=b α2=bα2=b α 3 =¬a v c v d α 4 =¬b v ¬d α 5 =¬c v e α 6 =¬c v ¬e α 7 =c v dα 8 =¬d α 9 =¬c α 10 =c Input clauses Pervasive conflict clauses Assumptions Temporary conflict clauses

Temporary Partial Resolution α1=aα1=a α1=aα1=a Legend: α2=bα2=b α2=bα2=b α 3 =¬a v c v d α 4 =¬b v ¬d α 5 =¬c v e α 6 =¬c v ¬e α 7 =c v dα 8 =¬d α 9 =¬c α 10 =c Input clauses Pervasive conflict clauses Assumptions Temporary conflict clauses

Temporary Partial Resolution α1=aα1=a α1=aα1=a Legend: α2=bα2=b α2=bα2=b α 7 =c v dα 8 =¬d α 10 =c Assumptions Temporary conflict clauses

Assumptions.. as decision.. as unit clauses Compatible with Inc. SAT+- Conflict clauses are pervasive+- Simplification-+ Preprocessing-+

Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All

Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Ofer Strichman. Sharing information between SAT instances, Dec 2000, Patent Ofer Strichman. Pruning techniques for the SAT-based bounded model checking problem. CHARME'01. Jesse Whittemore, Joonyoung Kim, and Karem A. Sakallah. SATIRE: A new incremental satisfiability engine, DAC’01

Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Ofer Strichman. Sharing information between SAT instances, Dec 2000, Patent Ofer Strichman. Pruning techniques for the SAT-based bounded model checking problem. CHARME'01. Jesse Whittemore, Joonyoung Kim, and Karem A. Sakallah. SATIRE: A new incremental satisfiability engine, DAC’01

Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Niklas Een and Niklas Sorensson. An extensible SAT-solver, SAT’03.

Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Niklas Een and Niklas Sorensson. An extensible SAT-solver, SAT’03.

Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Alexander Nadel and Vadim Ryvchin. Efficient SAT solving under assumptions, SAT'12.

Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Alexander Nadel and Vadim Ryvchin. Efficient SAT solving under assumptions, SAT'12.

Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Alexander Nadel and Vadim Ryvchin. Efficient SAT solving under assumptions, SAT'12.

Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Alexander Nadel, Vadim Ryvchin, and Ofer Strichman. Preprocessing in incremental SAT, SAT'12.

Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Alexander Nadel, Vadim Ryvchin, and Ofer Strichman. Preprocessing in incremental SAT, SAT'12.

Previous Approaches AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All Alexander Nadel, Vadim Ryvchin, and Ofer Strichman. Preprocessing in incremental SAT, SAT'12.

Our New Approach AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All UI-SATOneYesIncrementalIncremental T2P

Our New Approach AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All UI-SATOneYesIncrementalIncremental T2P

Our New Approach AlgorithmInstancesAssumption as units SatELiteAssumption -dep. Clauses Clause SharingMultipleYesNoDiscard Minisat-AlgOneNo Keep All Assumption prop. MultipleYesFullT2P Incremental SatELite OneNoIncrementalKeep All UI-SATOneYesIncrementalIncremental T2P

Incremental SatELite (NRS’12) Freeze Assumptions // For current call Preprocess Solve // might run in-processing UnFreeze Assumptions

Incremental SatELite (NRS’12) Remove subsumptions. For each eliminated variable in elimination order: if (*) // decide heuristically Re-Eliminate else Re-Introduce Freeze Assumptions // For current call Preprocess Solve // might run in-processing UnFreeze Assumptions

Incremental SatELite (NRS’12) Remove subsumptions. For each eliminated variable in elimination order: if (*) // decide heuristically Re-Eliminate else Re-Introduce Freeze Assumptions // For current call Preprocess Solve // might run in-processing UnFreeze Assumptions

Incremental SatELite (SAT’12) Remove subsumptions. For each eliminated variable in elimination order: if (*) // decide heuristically Re-Eliminate else Re-Introduce Freeze Assumptions // For current call Preprocess Solve // might run in-processing UnFreeze Assumptions

Incremental SatELite (SAT’12) Remove subsumptions. For each eliminated variable in elimination order: if (*) // decide heuristically Re-Eliminate else Re-Introduce Preprocess Solve // might run in-processing

Incremental SatELite (SAT’12) Undo Previous Assumptions Add assumptions as temporary unit clauses Remove subsumptions. For each eliminated variable in elimination order: if (*) // decide heuristically Re-Eliminate else Re-Introduce Preprocess Solve // might run in-processing

Data Structures  We need to keep relevant data to undo assumptions.  SubsumedClauses Per clause – set of clauses subsumed by it

Subsumption (Example)  Two clauses: c 1 =(a  b) c 2 =(a  b  c)  Normal subsumption: Delete c 2  Our Subsumption: if c 1 marked as temporary: c 1 subsumes c 2  Add(c 2 ) to SubsumedClauses[c 1 ] Delete c 2

Data Structures  We need to keep relevant data to undo assumptions.  SubsumedClauses Per clause – set of clauses subsumed by it  Resol - Partial Resolution for temporary clauses If at least one of the parent clauses is temporary, then a new vertex is added to the resolution graph : o Conflict Analyze o Variable Elimination o Self Subsumption

Self-Subsumption (Example) Two clauses: c 1 =(a  b) c 2 =(a  ¬b  c)  Normal self-subsumption: Create a new clause c 3 = Resol(c 1, c 2 ) = (a  c) Delete c 2 (Normally implemented just as removal of ¬b from c 2 )  In our case (in addition to normal): c 3 subsumes c 2  Add c 2 to SubsumedClauses[c 3 ]

Remove Subsumptions  1: function SelfSubsume(Clause c)  2: for each lit p   c do  3: for each c’ subsumed by c[p := ¬p] do  4: if c is temporary then  5: c’’ = res(c, c’);  6. SubsumedClauses[c].Add(c’)  7: Remove c’ from clause db;  8: AddClause(c’’);  9: else Remove ¬p from c;

Remove Subsumptions  1: function Subsume(Clause c)  2: Pick the literal p in c that has the shortest occur list;  3: for each c′ ∈ occur(p) do  4:occur(p) = {c | p ∈ c, c ∈ φ}  5: if c is a subset of c′ then  6:Remove c′ from the clauses database;  7: if c is temporary then  8:SubsumedClauses[c].Add(c′);

Undo Assumptions Assumptions: Iteration i : b, a Iteration i+1: b

Undo Assumptions (Incremental T2P) α1=aα1=a α1=aα1=a Legend: α2=bα2=b α2=bα2=b α 7 =c v dα 8 =¬d α 10 =c Assumptions Temporary conflict clauses

Undo Assumptions (Incremental T2P) α1=aα1=a α1=aα1=a Legend: α2=bα2=b α2=bα2=b α 7 =c v dα 8 =¬d α 10 =c Assumptions Temporary conflict clauses Add SubsumedClauses[α 1 ] back to clause database

Undo Assumptions (Incremental T2P) α1=aα1=a α1=aα1=a Legend: α2=bα2=b α2=bα2=b α 7 =c v dα 8 =¬d α 10 =c Assumptions Temporary conflict clauses ¬a

Undo Assumptions (Incremental T2P) Legend: α2=bα2=b α2=bα2=b α 8 =¬d α 10 =c Pervasive conflict clauses Assumptions Temporary conflict clauses α 7 =¬a v c v d Add SubsumedClauses[α 7 ] back to clause database

Undo Assumptions (Incremental T2P) Legend: α 7 =¬a v c v d α 10 =c Pervasive conflict clauses Assumptions Temporary conflict clauses ¬a α2=bα2=b α2=bα2=b α 8 =¬d

Undo Assumptions (Incremental T2P) Legend: α 10 =¬a v c Assumptions Temporary conflict clauses α2=bα2=b α2=bα2=b α 8 =¬d Add SubsumedClauses[α 10 ] back to clause database

Undo Assumptions (Incremental T2P) Legend: α 10 =¬a v c Assumptions Temporary conflict clauses ¬a α2=bα2=b α2=bα2=b α 8 =¬d

Undo Assumptions (Incremental T2P) Legend: α 10 =¬a v c Assumptions Temporary conflict clauses α2=bα2=b α2=bα2=b α 8 =¬d

Experimental Results  Benchmark Set: Instances generated by BMC (without look-ahead) under assumptions o Generated by an incremental model checker May be invoked multiple times with different assumptions and properties Essential to reduce the debug loop time for validation engineers 3 satisfiable families – 128 instances 4 unsatisfiable families – 81 instances Algorithm Implementation in Intel’s internal Fiver SAT Solver Timeout: 3600sec  Machines: Intel ® Xeon ® 4Ghz 32Gb of memory

Experimental Results

MethodTime-outsRun-time Clause Sharing28223,424 Minisat-Alg.14159,423 Assumption Prop.24182,530 Incremental SatELite16209,781 UI-SAT164,176

Thank You!