1 Model checking and equivalence checking

Size: px
Start display at page:

Download "1 Model checking and equivalence checking"

Transcription

1 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 a wide variety of functionalities has een integrated on a single chip. It is called system-on-a-chip (SoC) or system LSI, since all of the components in an electronics system are uilt on a single chip. Designs of SoCs are highly complicated and require many manpower-consuming processes. As a result, it has ecome increasingly difficult to identify all the design ugs in such a large and complex system efore the chips are faricated. In current designs, the verification time to check whether or not a design is correct can take 8 percent or more of the overall design time. Therefore, the development of verification techniques in each level of astraction is indispensale. Logic simulation is a widely used technique for the verification of a design. It simulates the output values for given input patterns. However, ecause the quality of simulation results deeply depends on given input patterns, there is a possiility that there exist design ugs that cannot e identified during logic simulation. Because the numer of required input patterns is exponentially increased when the size of a design is increased, it is clearly impossile to verify the overall design completely y logic simulation. To solve this prolem, the development of formal verification techniques is essential. In formal verification, specification and design are translated into mathematical models. Formal verification techniques verify a design y proving its correctness with mathematical reasoning, and, therefore, they can verify the overall design exhaustively. Since formal verification is a mathematical reasoning process and logic circuits compute Boolean functions, it is realized on top of asic Boolean reasoning techniques, such as inary decision diagrams (BDDs), Boolean satisfiaility checking methods (so-called SAT methods), and automatic test-pattern generation techniques (ATPG) for manufacturing test fields. The performance of formal verification methods relies heavily on the performance of these techniques. Figure. shows an overview of a formal verification flow. In formal verification, oth specification and design descriptions are translated into mathematical models using front-end tools. Finite state machines, temporal logic, Boolean functions, and so on, are used as mathematical models. After mathematical models are otained, they are analyzed Practical Design Verification, eds. Dhiraj K. Pradhan and Ian G. Harris. Pulished y Camridge University Press. ª Camridge University Press 29.

2 Practical Design Verification 2 M. Fujita Spec Design Front-end tool Mathematical models Finite state machine Temporal logic Boolean function Other logic expressions Verification engines Binary decision diagram (BDD) Satisfiaility check (SAT) Automatic test-pattern generation (ATPG) Figure. Formal verification of design descriptions using BDD and SAT methods. Formal verification is equivalent to simulating all the cases in logic simulation. If there exists a design ug, formal verification techniques produce a counter-example to support deugging processes. There are asically two prolems in the verification of designs: model checking and equivalence checking. Model checking (or property checking) verifies whether a design satisfies the properties given as its specification. The performance of model checking has drastically improved in recent years, mainly owing to the significant progress of SATased efficient implementations. Equivalence checking verifies whether two given designs are equivalent or not. Equivalence checking can e applied to two designs in the same design level or in two different design levels. Depending on the types of equivalence definitions, equivalence checking can e made only on cominational parts of the circuits or on oth cominational and sequential parts of the designs. In particular, the former type of equivalence checking has ecome very practical, and very large designs, such as those with more than million gates, can e formally verified in a couple of hours. In the actual design flow from highly astracted design stages down to implementation levels, model checking is applied to each design level to ensure correct functionality, and equivalence checking is applied to any two different design levels so that correctness of the designs can e estalished. In this chapter, I first riefly review the Boolean reasoning techniques, BDD, SAT, and ATPG methods, in Section.2. Property checking and equivalence checking techniques are presented in Sections.3 and.4 respectively. In Section.5, formal verification techniques used in design levels higher than RTL are discussed..2 Techniques for Boolean reasoning In this section, I introduce three Boolean reasoning techniques, BDD, SAT, and ATPG techniques, which are the ases of formal verification methods. The performance of

3 Practical Design Verification Model checking and equivalence checking 3 x x 2 x 2 x 3 x 4 x 5 x 3 x x 2 x 2 x 3 Figure.2 A inary decision tree representation of a Boolean function and its corresponding inary decision diagram (BDD) formal verification methods fully relies on the performance of these techniques. In recent years SAT and ATPG methods, especially their program implementations, have een drastically improved, which make it feasile to verify real-life designs formally within reasonale time..2. Binary decision diagrams (BDDs) Reduced ordered inary decision diagrams (ROBDDs), simply called BDDs, are a canonical representation for Boolean functions. For many Boolean functions of practical interest in VLSI designs, BDDs provide a sustantially more compact representation than other traditional alternatives, such as truth tales, sum-of-products (SOP) forms, or conjunctive normal form representations. Further, there exist efficient algorithms to manipulate BDDs. Thus, BDDs and their variants have ecome widely used in various areas of digital system design, including logic synthesis and formal verification of systems that can e represented in finite state machines. Binary decision diagrams represent the Boolean function as a directed acyclic graph. Let us first consider inary decision trees, an example of which appears on the left-hand side of Fig..2, for the majority function, f(x,x 2,x 3 ) ¼ (x ^x 2 ) (x 2^x 3 ) (x ^x 3 ). The inary decision tree is a rooted directed tree with two kinds of node, terminal nodes and nonterminal nodes. Each non-terminal node v is laeled with a variale var(v) and has two successors, hi(v) and lo(v), corresponding to the cases when var(v) is set to and, respectively. The edge connecting v and hi(v), shown as a solid line (lo(v) is shown as a dashed line), is laeled with (). Each terminal node (leaf node of the tree) is laeled y the Boolean value or. Each truth assignment to the variales of the function has a one-to-one correspondence to a path in the tree from the root to a terminal node. This path can e traversed y starting with the root node and taking the edge corresponding to the truth value of the variale laeling the current node. The value laeling the terminal node is the value of the function under this truth assignment. This representation is, however, fairly redundant. For example, the su-trees corresponding to the assignment (x ¼, x 2 ¼ ) and (x ¼, x 2 ¼ ) are isomorphic, and the vertex that corresponds to (x ¼, x 2 ¼ ) is redundant, since oth assignments to x 3 at this point have the same consequence. ^ ^

4 Practical Design Verification 4 M. Fujita A BDD could e otained for a given Boolean function y essentially placing two restrictions on its inary decision tree representation. The first restriction imposed is a total order < on the variales laeling the vertices, such that for any vertex u in the diagram, if u has a non-terminal successor v, then var(u) < var(v). The second set of restrictions involves merging isomorphic su-trees and removing redundant vertices y repeatedly applying the following three reduction rules until no further application is possile... Remove duplicate terminals Eliminate all ut one terminal vertex with a given lael and redirect all arcs going to the eliminated vertices into the remaining vertex. 2.. Remove duplicate non-terminals If two non-terminal vertices u and v have var(u) ¼ var(v), lo(u) ¼ lo(v), and hi(u) ¼ hi(v), then eliminate one of u or v and redirect all incoming arcs to the eliminated vertex to the one that remains. 3.. Remove redundant tests If a non-terminal vertex v has hi(v) ¼ lo(v), then eliminate v and redirect all its incoming arcs to hi(v). The resulting representation is a BDD. Figure.2 shows an example. The graph on the right-hand side is a BDD corresponding to the inary decision tree of the majority function, shown on the left-hand side in the figure. Binary decision diagram representations are canonical that is, two BDDs for a given Boolean function under a given variale ordering are isomorphic. [] Because of this the equivalence of two Boolean functions can e simply checked y a graph isomorphism check on their respective BDD representations. A function is a tautology if and only if it is isomorphic to the trivial BDD corresponding to a single terminal vertex and satisfiale if and only if it is not isomorphic to the trivial BDD represented y a single terminal vertex. A function is independent of a variale x if and only if there is no vertex laeled with x in its BDD. The size of a BDD representation is critically dependent on its variale order. Figure.3 shows two different BDD representations for the comparator function. The one on the left side uses the ordering a < a 2 < < 2, while the one on the right uses the order a < < a 2 < 2. More generally, for an n-it comparator, the ordering a <...<a n < <...< n yields a BDD with 3 2 n vertices, while the ordering a < <...< a n < n gives a BDD of size 3n þ 2. Thus, the size characteristics of the a a a 2 a 2 a Figure.3 An example of how variale ordering can affect the size of an ROBDD

5 Practical Design Verification Model checking and equivalence checking 5 BDD can change from linear asymptotic growth to exponential asymptotic growth y altering the variale ordering strategy. In general, finding the optimal BDD variale order for a given function is a hard prolem. Specifically, checking that a given variale order is optimal for a given function is an NP-complete prolem. [2] Some classes of Boolean function are particularly difficult cases for BDDs, since any variale order results in a BDD with exponential complexity. The Boolean functions for the middle two outputs of an n-it integer multiplier are one such example. [3] The optimal variale order is, however, typically not necessary in order to effectively use BDDs. In practice, we need a variale order that keeps the BDD representations within reasonale limits so that suitale algorithms can manipulate them using the availale computer power. In fact, many functions encountered in practical applications do have reasonaly compact BDD representations. Moreover, efficient heuristics for BDD variale ordering have een developed that keep BDD sizes in check. One class of variale-ordering heuristics uses domain-specific knowledge to effect a good ordering. For example, if the Boolean function represents a logic gate network, then a depth-first traversal on the network graph can provide a good ordering. [4,5] Another technique, called dynamic reordering or sifting, [6] is an orthogonal approach, which is used when a domain-specific or constructive ordering algorithm is not availale for the functions eing manipulated. The technique simply performs a sequence of local reordering moves with the aim of reducing BDD size. It does this on a periodic asis to keep BDD sizes smaller and has often proved to e quite effective in practice. One operation that is central to the construction, representation, and manipulation of BDDs is the restriction or co-factoring operation. A restriction or co-factor of f is the function that results when some variale x of f is set to a constant value k ( or ), denoted as f x¼k or alternatively as f x for x ¼ and f x for x ¼. Given the two co-factors of a function, it can e expressed using the following identity, known as Shannon s expansion: f ¼ x f x þx f x. The manipulation of BDDs that is, performing logical operations on functions represented as BDDs is done using a single universal operation called the ite (if-thenelse) operator (which internally makes use of the restriction operation). [7] The ite operator is a ternary operator, akin in functionality to a multiplexor (mux) in hardware or the if-then-else construct availale in programming languages. It realizes the function expressed as iteðf ; g; hþ ¼f g þ f h, where f, g, and h are Boolean functions (possily non-unique) represented as BDDs. In particular, ite can e used to implement any two-variale logic function, such as f g ¼ iteðf ; g; gþ and f g ¼ iteðf ; ; gþ. Figure.4 shows the algorithm used to implement the ite operator for BDDs. It is a recursive algorithm where the leaves (terminal cases) of the recursion are degenerate cases of the ite operator for which precomputed and stored solutions are sustituted, such as ite(,f,g) ¼ ite(,g,f) and f ite(f,g,g) ¼ g. During the course of the algorithm, the BDD eing generated may not remain fully reduced and canonical owing to the addition of new nodes, R. The reduce() function in the figure refers to the application of the reduction rules discussed earlier. In practical BDD packages, the need for this

6 Practical Design Verification 6 M. Fujita ite(f,g,h) { if (terminal case) { return computed-result; } else { // general case let e the top variale of (f,g,h); ~ f ite(f,g,h ) ~ f ite(f,g,h ) R = new node laeled y R.hi ~ f R.low g ~ reduce(r) return R; Figure.4 Algorithm to implement the ite operator reduce() operation is oviated y maintaining hash tales of oth unique BDD nodes and previous ite calls. New ite calls, as well as new BDD nodes (R) created through them, are looked up against these hash tales efore initiating new ones, therey dynamically maintaining and growing a reduced-ordered BDD..2.2 Boolean satisfiaility checker The Boolean satisfiaility (SAT) prolem is a well-known constraint satisfaction prolem, with many applications in the fields of VLSI computer-aided designs and artificial intelligence fields. Given a propositional formula u, the Boolean satisfiaility prolem posed on u is to determine whether there exists a variale assignment under which u evaluates to true. Such an assignment, if one exists, is called a satisfying assignment for u, and u is called satisfiale. Otherwise, u is said to e unsatisfiale. The SAT prolem is known to e NP-complete. [8] However, in recent years, there have een tremendous advancements in SAT technology, making SAT solvers a viale option for solving many real-world prolems. Most SAT solvers use a conjunctive normal form (CNF) representation of the propositional formula. A CNF formula consists of a conjunction of clauses, each of which is a disjunction of literals, and a literal is a variale or its negation. For example ða þ þ cþða þ cþða þ þ cþ is a propositional formula in CNF over the variales a,, and c. It is composed of a conjunction of three clauses. The clause ða þ þ cþ is one of the clauses, a disjunction of literals a,, and c. Note that for a CNF formula to e satisfied, each of its clauses must e satisfied that is, evaluate to true. Thereexist polynomial algorithms to transform an aritrary propositional formula into a satisfiaility equivalent CNF formula, which is satisfiale if and only if the original formula is satisfiale. Most modern SAT solvers are ased on the Davis Putnam Logemann Loveland (DPLL) procedure. [9,] The DPLL algorithm essentially performs a

7 Practical Design Verification Model checking and equivalence checking 7 sat-solve() if preprocess() = CONFLICT then return UNSAT while TRUE do if not decide-next-ranch() then return SAT; while deduce() = CONFLICT do level analyze-conflict(); if level = then return UNSAT; acktrack (level); done; done; Figure.5 A generalized DPLL algorithm ranch-and-ound search over the space of possile Boolean assignments of the variales of the given propositional formula. It is a sound and complete algorithm that is, it finds a satisfying assignment if and only if the given formula is satisfiale. Figure.5 shows the asic processing flow of the DPLL algorithm. This form provides a suitale framework for illustrating the advanced features of modern DPLL-ased SAT solvers. The first operation in the algorithm is a set of preprocessing steps (preprocess()) during which it may e discovered that the formula is unsatisfiale. If this is not the case, the algorithm enters the outermost loop, which consists of choosing an unassigned variale and assigning to it a value that has not een explored earlier (decide-next-ranch()). If no such variale exists, the current partial assignment is a satisfying assignment for the formula. Otherwise, the variale assignments deducile from the current assignments are applied (deduce()) using a procedure known as Boolean constraint propagation (BCP). This consists of an iterated application of the unit clause rule, which is applied on unit clauses that is, clauses with all ut one literal assigned to false and the last literal unassigned. The unit clause rule asserts the last unassigned literal of each unit clause as true, since the other assignment represents a search path that cannot lead to a satisfying assignment. A conflict occurs when a variale is asserted as true as well as false. If BCP does not lead to a conflict, the decide-next-ranch() loop is repeated y choosing further unassigned variales and values. However, in the event of a conflict, the search acktracks (acktrack()) y undoing a certain numer of decisions and their BCP implied assignments, ased on an analysis of the conflict y analyze-conflict(). If all decisions need to e undone (i.e., the acktrack-level level is ), the formula is deemed unsatisfiale, since the entire search space has een exhausted. The original DPLL algorithm used chronological acktracking that is, it would acktrack up to the most recent decision, for which the other value of the variale had not een tried. However, modern SAT solvers use conflict analysis techniques (shown as (analyze-conflict) in the figure) to analyze the reasons for a conflict. Conflict analysis is used to perform conflict-driven learning and conflict-driven acktracking, which were incorporated independently in the GRASP [] and rel-sat [2] SAT

8 Practical Design Verification 8 M. Fujita solvers. Conflict-driven learning consists of adding conflict clauses to the formula, to avoid the same conflict in the future. Conflict-driven acktracking allows nonchronological acktracking that is, up to the closest decision that caused the conflict. These techniques greatly improve the performance of the SAT solver on structured prolems. The conflict analysis is realized using implication graphs, [,3] which capture the current state of the SAT solver. Many other advances have een made in developing the asic components that comprise the DPLL-ased SAT solver: the decision engine (heuristics for choosing decision variales and values); the deduction engine (data structures and heuristics for performing BCP and detecting conflicts); and the diagnosis engine (heuristics for conflict-driven learning). [4] An interesting property of CNF representations was first exploited y Zhang in the SATO SAT solver [5] to improve the performance of BCP. It proposed the use of head and tail pointers to point to non-false literals in the list representation of a clause, and maintained the strong invariant that all literals efore the head pointer, and all literals after the tail pointer, are false. Clearly, detection of a unit clause during BCP ecomes easy that is, when the head and tail pointers coincide on an unassigned literal. The main advantage is that the clause status is updated only when either of the head or tail literals is assigned a false value during BCP. In particular, this eliminates an update when any of the other literals in the clause is assigned a value. When the head or tail literal is assigned a false value during BCP, the associated pointer needs to e moved to another non-false literal, if it exists. This is facilitated y the strong invariant. However, during acktracking, the head or tail pointers may need to e moved ack again, to maintain the strong invariant. A different trade-off was proposed in the Chaff SAT solver. [6] Its BCP scheme, known as two literal watching with lazy update, is also ased on tracking only two literals per clause during BCP. However, Chaff maintains a weak invariant, wherey the two watched literals are required to e non-false, ut there is no ordering requirement with respect to other false literals. Again, detection of a unit clause during BCP is easily performed y checking whether oth watched pointers coincide, and whether clause updates on assignment to other literals are eliminated. Most of the modern-day SAT solvers incorporate the advanced techniques for conflict-ased learning, ranching heuristics, and efficient BCP descried aove as well as efficient data structures and extremely well-tuned implementations to exploit their algorithmic power fully. With these advancements, SAT solvers can now analyze formulas of up to a million variales and three to four million clauses in a few hours of runtime. Of course, these figures hold for only fairly structured SAT instances derived from certain classes of real-world prolems..2.3 Automatic test-pattern generation (ATPG) techniques Automatic test-pattern generation (ATPG) is the process of generating a suite of test vectors that can e used for the purposes of testing a manufactured circuit for manufacturing faults. Manufacturing faults are physical defects introduced into the integrated circuit (IC), during the manufacturing process, which result in its incorrect

9 Practical Design Verification Model checking and equivalence checking 9 Primary inputs Justify S S a X Propagate Primary outputs Figure.6 ATPG process for a single stuck-at- fault a d f c e Figure.7 An example of implication and learning from circuits operation. The fault we consider here is one that causes a signal to e permanently stuck at a logical value or (or a defect that can, for all practical purposes, e modeled as such). Such a fault is called a stuck-at ( or ) fault. Very efficient ATPG algorithms for stuck-at faults have een developed, which can e applied to Boolean function reasoning. Therefore, powerful formal verification techniques may e estalished using ATPG techniques. Thus, the purpose here is to show asic concepts and developments in ATPG so that the link of ATPG to formal verification algorithms ecomes evident. Figure.6 illustrates the steps involved in trying to generate a test pattern for a single stuck-at fault. In this example, the signal s is assumed to e under stuck-at- fault. To generate a test for s stuck-at-, we need to find a vector of primary inputs that sets signal s to (justification step) such that some primary output differs etween the good circuit and the faulty circuit (propagation step). As can e seen from the figure, the ATPG prolem is asically a sort of SAT prolem. We need to reason aout the values of signals ased on the constraints shown in the figure. Automatic test-pattern generation techniques have, however, their own historical developments rather independent from SAT method. Their algorithms and heuristics are mostly ased on logic-circuit structures and properties of logic gates. This means that techniques used in ATPG methods can e used in SAT methods and vice versa. One of the most important techniques in ATPG to speed up the test pattern generation processes is called learning. [7,8] As seen in the previous sections, the concept of learning is also utilized in SAT methods to make them much more efficient. Similar efficiency can e achieved in ATPG processes y learning implications of values of signals from the target circuits. Figure.7 shows an implication example. Suppose that input is. Owing to the nature of the AND gate, d and e also ecome. This implies that f is. In summary, we have an implication of values that ¼ implies f ¼. Please note that this implication process utilizes the functionality of AND and NOR gates. More learning can e made from this y using the law of contraposition,

10 Practical Design Verification M. Fujita that is, we can also conclude that f ¼ implies ¼. As can e seen from the figure, this learned implication is not so ovious. From f ¼ we cannot have fixed values for d and e, since what is required from f ¼ ond and e is that at least one of d and e must e, that is d ¼ ande ¼*(don tcare)ord ¼* ande ¼. There are two possile values for d and e, which means that further reasoning on values of signals is not straightforward. As can e seen from the example, y using the law of contraposition, many more implications can e otained, which will further enhance the ATPG processes. As the discussions aove on the circuits shown in Fig..7, iff ¼, there are several possile cases of values on d and e. As a result, no further simple implication of the values of signals can e made. On the other hand, in oth ATPG and SAT methods, reasoning is ased on case splitting and acktracking, and knowledge aout necessary assignments computed from learning processes is crucial for the numer of acktracks which must e performed. Backtracks occur if wrong decisions have een made, i.e., decisions considered wrong if they violate necessary assignments. Hence, it is important to realize that if all necessary assignments are known at every stage of the test-pattern generation process (or in general in all Boolean reasoning processes) acktracks can e avoided. Simple learning methods [7,8] cannot identify all necessary assignments, ased, as they are, on polynomial time-complexity algorithms. The prolem of identifying all necessary assignments is NP-complete and a method that guarantees identifying all necessary assignments must e exponential in time complexity. One such technique, which can identify all necessary assignments, is recursive learning. [9] It involves applying learning methods in a recursive way so that even if multiple cases happen when computing implications, all such cases are exhaustively analyzed. For example, let us consider the case of f ¼ in the circuit of Fig..7. In this case, there are two cases of values for d and e, i.e., d ¼ and e ¼* or d ¼* and e ¼. Recursive learning procedures analyze one case at a time and proceed the necessary assignment analysis in a recursive way. The two cases are shown in Figs..8 (a) and (), respectively. In (a), d ¼ implies a ¼ and ¼. In (), e ¼ implies ¼ and c ¼. The important point here is that in oth cases ¼. That is, is always. So we can conclude that f ¼ implies ¼ without using the law of contraposition. In this simple example, the same implication can also e otained y applying the law of contraposition to the implication otained in Fig..7. In general, however, much more learning can e otained with recursive learning techniques, especially if there are more recursions. The level of recursion is defined as the numer a d f a * d f c (a) e c * () e Figure.8 Two cases for f ¼ in the circuit of Fig..7

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

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

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

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

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

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

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

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

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

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

Zchaff: A fast SAT solver. Zchaff: A fast SAT solver

Zchaff: A fast SAT solver. Zchaff: A fast SAT solver * We d like to build a complete decision procedure for SAT which is efficient. Generalized D-P-L algorithm: while (true) { if (! decide( )) /* no unassigned variables */ return (sat) while (! bcp ( ))

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

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

Combinational Equivalence Checking

Combinational Equivalence Checking Combinational Equivalence Checking Virendra Singh Associate Professor Computer Architecture and Dependable Systems Lab. Dept. of Electrical Engineering Indian Institute of Technology Bombay viren@ee.iitb.ac.in

More information

EECS 219C: Formal Methods Boolean Satisfiability Solving. Sanjit A. Seshia EECS, UC Berkeley

EECS 219C: Formal Methods Boolean Satisfiability Solving. Sanjit A. Seshia EECS, UC Berkeley EECS 219C: Formal Methods Boolean Satisfiability Solving Sanjit A. Seshia EECS, UC Berkeley The Boolean Satisfiability Problem (SAT) Given: A Boolean formula F(x 1, x 2, x 3,, x n ) Can F evaluate to 1

More information

Theory of Integers. CS389L: Automated Logical Reasoning. Lecture 13: The Omega Test. Overview of Techniques. Geometric Description

Theory of Integers. CS389L: Automated Logical Reasoning. Lecture 13: The Omega Test. Overview of Techniques. Geometric Description Theory of ntegers This lecture: Decision procedure for qff theory of integers CS389L: Automated Logical Reasoning Lecture 13: The Omega Test şıl Dillig As in previous two lectures, we ll consider T Z formulas

More information

EECS 219C: Computer-Aided Verification Boolean Satisfiability Solving. Sanjit A. Seshia EECS, UC Berkeley

EECS 219C: Computer-Aided Verification Boolean Satisfiability Solving. Sanjit A. Seshia EECS, UC Berkeley EECS 219C: Computer-Aided Verification Boolean Satisfiability Solving Sanjit A. Seshia EECS, UC Berkeley Project Proposals Due Friday, February 13 on bcourses Will discuss project topics on Monday Instructions

More information

Array Dependence Analysis as Integer Constraints. Array Dependence Analysis Example. Array Dependence Analysis as Integer Constraints, cont

Array Dependence Analysis as Integer Constraints. Array Dependence Analysis Example. Array Dependence Analysis as Integer Constraints, cont Theory of Integers CS389L: Automated Logical Reasoning Omega Test Işıl Dillig Earlier, we talked aout the theory of integers T Z Signature of T Z : Σ Z : {..., 2, 1, 0, 1, 2,..., 3, 2, 2, 3,..., +,, =,

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

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

Circuit versus CNF Reasoning for Equivalence Checking

Circuit versus CNF Reasoning for Equivalence Checking Circuit versus CNF Reasoning for Equivalence Checking Armin Biere Institute for Formal Models and Verification Johannes Kepler University Linz, Austria Equivalence Checking Workshop 25 Madonna di Campiglio,

More information

Symbolic Methods. The finite-state case. Martin Fränzle. Carl von Ossietzky Universität FK II, Dpt. Informatik Abt.

Symbolic Methods. The finite-state case. Martin Fränzle. Carl von Ossietzky Universität FK II, Dpt. Informatik Abt. Symbolic Methods The finite-state case Part I Martin Fränzle Carl von Ossietzky Universität FK II, Dpt. Informatik Abt. Hybride Systeme 02917: Symbolic Methods p.1/34 What you ll learn How to use and manipulate

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

On Resolution Proofs for Combinational Equivalence Checking

On Resolution Proofs for Combinational Equivalence Checking On Resolution Proofs for Combinational Equivalence Checking Satrajit Chatterjee Alan Mishchenko Robert Brayton Department of EECS U. C. Berkeley {satrajit, alanmi, brayton}@eecs.berkeley.edu Andreas Kuehlmann

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

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

Combinational Equivalence Checking Using Satisfiability and Recursive Learning

Combinational Equivalence Checking Using Satisfiability and Recursive Learning Combinational Equivalence Checking Using Satisfiability and Recursive Learning João Marques-Silva Thomas Glass Instituto Superior Técnico Siemens AG Cadence European Labs/INESC Corporate Technology 1000

More information

An Introduction to SAT Solvers

An Introduction to SAT Solvers An Introduction to SAT Solvers Knowles Atchison, Jr. Fall 2012 Johns Hopkins University Computational Complexity Research Paper December 11, 2012 Abstract As the first known example of an NP Complete problem,

More information

An Experimental Evaluation of Conflict Diagnosis and Recursive Learning in Boolean Satisfiability

An Experimental Evaluation of Conflict Diagnosis and Recursive Learning in Boolean Satisfiability An Experimental Evaluation of Conflict Diagnosis and Recursive Learning in Boolean Satisfiability Fadi A. Aloul and Karem A. Sakallah Department of Electrical Engineering and Computer Science University

More information

QuteSat. A Robust Circuit-Based SAT Solver for Complex Circuit Structure. Chung-Yang (Ric) Huang National Taiwan University

QuteSat. A Robust Circuit-Based SAT Solver for Complex Circuit Structure. Chung-Yang (Ric) Huang National Taiwan University QuteSat A Robust Circuit-Based SAT Solver for Complex Circuit Structure Chung-Yang (Ric) Huang National Taiwan University To appear: DATE 27 2/1/27 Fact Sheet (Background) Boolean Satisfiability (SAT)

More information

Learning Techniques for Pseudo-Boolean Solving and Optimization

Learning Techniques for Pseudo-Boolean Solving and Optimization Learning Techniques for Pseudo-Boolean Solving and Optimization José Faustino Fragoso Fremenin dos Santos September 29, 2008 Abstract The extension of conflict-based learning from Propositional Satisfiability

More information

SAT Solver. CS 680 Formal Methods Jeremy Johnson

SAT Solver. CS 680 Formal Methods Jeremy Johnson SAT Solver CS 680 Formal Methods Jeremy Johnson Disjunctive Normal Form A Boolean expression is a Boolean function Any Boolean function can be written as a Boolean expression s x 0 x 1 f Disjunctive normal

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

Satisfiability Solvers

Satisfiability Solvers Satisfiability Solvers Part 1: Systematic Solvers 600.325/425 Declarative Methods - J. Eisner 1 Vars SAT solving has made some progress 100000 10000 1000 100 10 1 1960 1970 1980 1990 2000 2010 Year slide

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

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

Chapter 2 PRELIMINARIES

Chapter 2 PRELIMINARIES 8 Chapter 2 PRELIMINARIES Throughout this thesis, we work with propositional or Boolean variables, that is, variables that take value in the set {true, false}. A propositional formula F representing a

More information

CS-E3220 Declarative Programming

CS-E3220 Declarative Programming CS-E3220 Declarative Programming Lecture 5: Premises for Modern SAT Solving Aalto University School of Science Department of Computer Science Spring 2018 Motivation The Davis-Putnam-Logemann-Loveland (DPLL)

More information

ESE535: Electronic Design Automation CNF. Today CNF. 3-SAT Universal. Problem (A+B+/C)*(/B+D)*(C+/A+/E)

ESE535: Electronic Design Automation CNF. Today CNF. 3-SAT Universal. Problem (A+B+/C)*(/B+D)*(C+/A+/E) ESE535: Electronic Design Automation CNF Day 21: April 21, 2008 Modern SAT Solvers ({z}chaff, GRASP,miniSAT) Conjunctive Normal Form Logical AND of a set of clauses Product of sums Clauses: logical OR

More information

Constraint Satisfaction Problems

Constraint Satisfaction Problems Constraint Satisfaction Problems Tuomas Sandholm Carnegie Mellon University Computer Science Department [Read Chapter 6 of Russell & Norvig] Constraint satisfaction problems (CSPs) Standard search problem:

More information

SAT Solvers. Ranjit Jhala, UC San Diego. April 9, 2013

SAT Solvers. Ranjit Jhala, UC San Diego. April 9, 2013 SAT Solvers Ranjit Jhala, UC San Diego April 9, 2013 Decision Procedures We will look very closely at the following 1. Propositional Logic 2. Theory of Equality 3. Theory of Uninterpreted Functions 4.

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

Computer-Aided Program Design

Computer-Aided Program Design Computer-Aided Program Design Spring 2015, Rice University Unit 1 Swarat Chaudhuri January 22, 2015 Reasoning about programs A program is a mathematical object with rigorous meaning. It should be possible

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

On Computing Minimum Size Prime Implicants

On Computing Minimum Size Prime Implicants On Computing Minimum Size Prime Implicants João P. Marques Silva Cadence European Laboratories / IST-INESC Lisbon, Portugal jpms@inesc.pt Abstract In this paper we describe a new model and algorithm for

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

CS-E3200 Discrete Models and Search

CS-E3200 Discrete Models and Search Shahab Tasharrofi Department of Information and Computer Science, Aalto University Lecture 7: Complete and local search methods for SAT Outline Algorithms for solving Boolean satisfiability problems Complete

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

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

NP-Hardness. We start by defining types of problem, and then move on to defining the polynomial-time reductions.

NP-Hardness. We start by defining types of problem, and then move on to defining the polynomial-time reductions. CS 787: Advanced Algorithms NP-Hardness Instructor: Dieter van Melkebeek We review the concept of polynomial-time reductions, define various classes of problems including NP-complete, and show that 3-SAT

More information

Boolean Satisfiability Solving Part II: DLL-based Solvers. Announcements

Boolean Satisfiability Solving Part II: DLL-based Solvers. Announcements EECS 219C: Computer-Aided Verification Boolean Satisfiability Solving Part II: DLL-based Solvers Sanjit A. Seshia EECS, UC Berkeley With thanks to Lintao Zhang (MSR) Announcements Paper readings will be

More information

Lecture 2: Symbolic Model Checking With SAT

Lecture 2: Symbolic Model Checking With SAT Lecture 2: Symbolic Model Checking With SAT Edmund M. Clarke, Jr. School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 (Joint work over several years with: A. Biere, A. Cimatti, Y.

More information

Heuristic Backtracking Algorithms for SAT

Heuristic Backtracking Algorithms for SAT Heuristic Backtracking Algorithms for SAT A. Bhalla, I. Lynce, J.T. de Sousa and J. Marques-Silva IST/INESC-ID, Technical University of Lisbon, Portugal fateet,ines,jts,jpmsg@sat.inesc.pt Abstract In recent

More information

Deductive Methods, Bounded Model Checking

Deductive Methods, Bounded Model Checking Deductive Methods, Bounded Model Checking http://d3s.mff.cuni.cz Pavel Parízek CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Deductive methods Pavel Parízek Deductive Methods, Bounded

More information

Example: Map coloring

Example: Map coloring Today s s lecture Local Search Lecture 7: Search - 6 Heuristic Repair CSP and 3-SAT Solving CSPs using Systematic Search. Victor Lesser CMPSCI 683 Fall 2004 The relationship between problem structure and

More information

SAT/SMT Solvers and Applications

SAT/SMT Solvers and Applications SAT/SMT Solvers and Applications University of Waterloo Winter 2013 Today s Lecture Lessons learnt so far Implementation-related attacks (control-hazard, malware,...) Program analysis techniques can detect

More information

A Novel SAT All-Solutions Solver for Efficient Preimage Computation

A Novel SAT All-Solutions Solver for Efficient Preimage Computation A Novel SAT All-Solutions Solver for Efficient Preimage Computation Bin Li Department of ECE Virginia Tech. Blacksburg, VA, 24061 Michael S. Hsiao Department of ECE Virginia Tech. Blacksburg, VA, 24061

More information

1.4 Normal Forms. We define conjunctions of formulas as follows: and analogously disjunctions: Literals and Clauses

1.4 Normal Forms. We define conjunctions of formulas as follows: and analogously disjunctions: Literals and Clauses 1.4 Normal Forms We define conjunctions of formulas as follows: 0 i=1 F i =. 1 i=1 F i = F 1. n+1 i=1 F i = n i=1 F i F n+1. and analogously disjunctions: 0 i=1 F i =. 1 i=1 F i = F 1. n+1 i=1 F i = n

More information

Practical SAT Solving

Practical SAT Solving Practical SAT Solving Lecture 5 Carsten Sinz, Tomáš Balyo May 23, 2016 INSTITUTE FOR THEORETICAL COMPUTER SCIENCE KIT University of the State of Baden-Wuerttemberg and National Laboratory of the Helmholtz

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

BITCOIN MINING IN A SAT FRAMEWORK

BITCOIN MINING IN A SAT FRAMEWORK BITCOIN MINING IN A SAT FRAMEWORK Jonathan Heusser @jonathanheusser DISCLAIMER JUST TO BE CLEAR.. This is research! Not saying ASICs suck I am not a cryptographer, nor SAT solver guy WTF REALISED PHD RESEARCH

More information

On Resolution Proofs for Combinational Equivalence

On Resolution Proofs for Combinational Equivalence 33.4 On Resolution Proofs for Combinational Equivalence Satrajit Chatterjee Alan Mishchenko Robert Brayton Department of EECS U. C. Berkeley {satrajit, alanmi, brayton}@eecs.berkeley.edu Andreas Kuehlmann

More information

Vertex 3-colorability of claw-free graphs

Vertex 3-colorability of claw-free graphs R u t c o r Research R e p o r t Vertex 3-coloraility of claw-free graphs M. Kamiński a V. Lozin RRR 8 2007, Feruary 2007 RUTCOR Rutgers Center for Operations Research Rutgers University 640 Bartholomew

More information

Reliable Verification Using Symbolic Simulation with Scalar Values

Reliable Verification Using Symbolic Simulation with Scalar Values Reliable Verification Using Symbolic Simulation with Scalar Values Chris Wilson Computer Systems Laboratory Stanford University Stanford, CA, 94035 chriswi@leland.stanford.edu David L. Dill Computer Systems

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

Multi Domain Logic and its Applications to SAT

Multi Domain Logic and its Applications to SAT Multi Domain Logic and its Applications to SAT Tudor Jebelean RISC Linz, Austria Tudor.Jebelean@risc.uni-linz.ac.at Gábor Kusper Eszterházy Károly College gkusper@aries.ektf.hu Abstract We describe a new

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

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

Recent Results from Analyzing the Performance of Heuristic Search

Recent Results from Analyzing the Performance of Heuristic Search Recent Results from Analyzing the Performance of Heuristic Search Teresa M. Breyer and Richard E. Korf Computer Science Department University of California, Los Angeles Los Angeles, CA 90095 {treyer,korf}@cs.ucla.edu

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

Binary Decision Diagrams

Binary Decision Diagrams 5-44 Bug Catching: Automated Program Verification and Testing based on slides by SagarChaki 2 Carnegie Mellon University BDDs in a nutshell Typically mean Reduced Ordered (ROBDDs) Canonical representation

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

A Pearl on SAT Solving in Prolog (extended abstract)

A Pearl on SAT Solving in Prolog (extended abstract) A Pearl on SAT Solving in Prolog (extended abstract) Jacob M. Howe and Andy King 1 Introduction The Boolean satisfiability problem, SAT, is of continuing interest because a variety of problems are naturally

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

Checking Satisfiability of a Conjunction of BDDs

Checking Satisfiability of a Conjunction of BDDs 48. Checking Satisfiability of a Conjunction of BDDs Robert Damiano Advanced Technology Group Synopsys, Inc. Hillsboro, OR robertd@synopsys.com James Kukula Advanced Technology Group Synopsys, Inc. Hillsboro,

More information

Better test results for the graph coloring and the Pigeonhole Problems using DPLL with k-literal representation

Better test results for the graph coloring and the Pigeonhole Problems using DPLL with k-literal representation Proceedings of the 7 th International Conference on Applied Informatics Eger, Hungary, January 28 31, 2007. Vol. 2. pp. 127 135. Better test results for the graph coloring and the Pigeonhole Problems using

More information

Unrestricted Backtracking Algorithms for Satisfiability

Unrestricted Backtracking Algorithms for Satisfiability From: AAAI Technical Report FS-01-04. Compilation copyright 2001, AAAI (www.aaai.org). All rights reserved. Unrestricted Backtracking Algorithms for Satisfiability I. Lynce, L. Baptista and J. Marques-Silva

More information

CDCL SAT Solvers. Joao Marques-Silva. Theory and Practice of SAT Solving Dagstuhl Workshop. April INESC-ID, IST, ULisbon, Portugal

CDCL SAT Solvers. Joao Marques-Silva. Theory and Practice of SAT Solving Dagstuhl Workshop. April INESC-ID, IST, ULisbon, Portugal CDCL SAT Solvers Joao Marques-Silva INESC-ID, IST, ULisbon, Portugal Theory and Practice of SAT Solving Dagstuhl Workshop April 2015 The Success of SAT Well-known NP-complete decision problem [C71] The

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

1 Definition of Reduction

1 Definition of Reduction 1 Definition of Reduction Problem A is reducible, or more technically Turing reducible, to problem B, denoted A B if there a main program M to solve problem A that lacks only a procedure to solve problem

More information

Chaff: Engineering an Efficient SAT Solver

Chaff: Engineering an Efficient SAT Solver Chaff: Engineering an Efficient SAT Solver Matthew W.Moskewicz, Concor F. Madigan, Ying Zhao, Lintao Zhang, Sharad Malik Princeton University Slides: Tamir Heyman Some are from Malik s presentation Last

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

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

SAT Solver Heuristics

SAT Solver Heuristics SAT Solver Heuristics SAT-solver History Started with David-Putnam-Logemann-Loveland (DPLL) (1962) Able to solve 10-15 variable problems Satz (Chu Min Li, 1995) Able to solve some 1000 variable problems

More information

BoolTool: A Tool for Manipulation of Boolean Functions

BoolTool: A Tool for Manipulation of Boolean Functions BoolTool: A Tool for Manipulation of Boolean Functions Petr Fišer, David Toman Czech Technical University in Prague Department of Computer Science and Engineering Karlovo nám. 13, 121 35 Prague 2 e-mail:

More information

CSc Parallel Scientific Computing, 2017

CSc Parallel Scientific Computing, 2017 CSc 76010 Parallel Scientific Computing, 2017 What is? Given: a set X of n variables, (i.e. X = {x 1, x 2,, x n } and each x i {0, 1}). a set of m clauses in Conjunctive Normal Form (CNF) (i.e. C = {c

More information

Massively Parallel Seesaw Search for MAX-SAT

Massively Parallel Seesaw Search for MAX-SAT Massively Parallel Seesaw Search for MAX-SAT Harshad Paradkar Rochester Institute of Technology hp7212@rit.edu Prof. Alan Kaminsky (Advisor) Rochester Institute of Technology ark@cs.rit.edu Abstract The

More information

(a) (4 pts) Prove that if a and b are rational, then ab is rational. Since a and b are rational they can be written as the ratio of integers a 1

(a) (4 pts) Prove that if a and b are rational, then ab is rational. Since a and b are rational they can be written as the ratio of integers a 1 CS 70 Discrete Mathematics for CS Fall 2000 Wagner MT1 Sol Solutions to Midterm 1 1. (16 pts.) Theorems and proofs (a) (4 pts) Prove that if a and b are rational, then ab is rational. Since a and b are

More information

P Is Not Equal to NP. ScholarlyCommons. University of Pennsylvania. Jon Freeman University of Pennsylvania. October 1989

P Is Not Equal to NP. ScholarlyCommons. University of Pennsylvania. Jon Freeman University of Pennsylvania. October 1989 University of Pennsylvania ScholarlyCommons Technical Reports (CIS) Department of Computer & Information Science October 1989 P Is Not Equal to NP Jon Freeman University of Pennsylvania Follow this and

More information

of m clauses, each containing the disjunction of boolean variables from a nite set V = fv 1 ; : : : ; vng of size n [8]. Each variable occurrence with

of m clauses, each containing the disjunction of boolean variables from a nite set V = fv 1 ; : : : ; vng of size n [8]. Each variable occurrence with A Hybridised 3-SAT Algorithm Andrew Slater Automated Reasoning Project, Computer Sciences Laboratory, RSISE, Australian National University, 0200, Canberra Andrew.Slater@anu.edu.au April 9, 1999 1 Introduction

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

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

SAT-CNF Is N P-complete

SAT-CNF Is N P-complete SAT-CNF Is N P-complete Rod Howell Kansas State University November 9, 2000 The purpose of this paper is to give a detailed presentation of an N P- completeness proof using the definition of N P given

More information

Linear Time Unit Propagation, Horn-SAT and 2-SAT

Linear Time Unit Propagation, Horn-SAT and 2-SAT Notes on Satisfiability-Based Problem Solving Linear Time Unit Propagation, Horn-SAT and 2-SAT David Mitchell mitchell@cs.sfu.ca September 25, 2013 This is a preliminary draft of these notes. Please do

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

Helsinki University of Technology Laboratory for Theoretical Computer Science Research Reports 100

Helsinki University of Technology Laboratory for Theoretical Computer Science Research Reports 100 Helsinki University of Technology Laboratory for Theoretical Computer Science Research Reports 100 Teknillisen korkeakoulun tietojenkäsittelyteorian laboratorion tutkimusraportti 100 Espoo 2006 HUT-TCS-A100

More information

Satisfiability (SAT) Applications. Extensions/Related Problems. An Aside: Example Proof by Machine. Annual Competitions 12/3/2008

Satisfiability (SAT) Applications. Extensions/Related Problems. An Aside: Example Proof by Machine. Annual Competitions 12/3/2008 15 53:Algorithms in the Real World Satisfiability Solvers (Lectures 1 & 2) 1 Satisfiability (SAT) The original NP Complete Problem. Input: Variables V = {x 1, x 2,, x n }, Boolean Formula Φ (typically

More information

Domain Knowledge Articulation using Integration Graphs

Domain Knowledge Articulation using Integration Graphs Domain Knowledge Articulation using Integration Graphs Madalina Croitoru Ernesto Compatangelo Department of Computing Science, University of Aerdeen, UK {mcroitor, compatan}@csd.adn.ac.uk Astract In order

More information

NP-Completeness of 3SAT, 1-IN-3SAT and MAX 2SAT

NP-Completeness of 3SAT, 1-IN-3SAT and MAX 2SAT NP-Completeness of 3SAT, 1-IN-3SAT and MAX 2SAT 3SAT The 3SAT problem is the following. INSTANCE : Given a boolean expression E in conjunctive normal form (CNF) that is the conjunction of clauses, each

More information

GRASP A New Search Algorithm for Satisfiability

GRASP A New Search Algorithm for Satisfiability Thi d d i h F M k 4 0 4 GRASP A New Search Algorithm for Satisfiability João P. Marques Silva Karem A. Sakallah Cadence European Laboratories Department of EECS IST/INESC University of Michigan 1000 Lisboa,

More information