Results 11  20
of
70
Programming Constraint Inference Engines
 Proceedings of the Third International Conference on Principles and Practice of Constraint Programming
, 1997
"... Existing constraint programming systems offer a fixed set of inference engines implementing search strategies such as single, all, and best solution search. This is unfortunate, since new engines cannot be integrated by the user. ..."
Abstract

Cited by 49 (6 self)
 Add to MetaCart
(Show Context)
Existing constraint programming systems offer a fixed set of inference engines implementing search strategies such as single, all, and best solution search. This is unfortunate, since new engines cannot be integrated by the user.
The Propositional Formula Checker HeerHugo
 JOURNAL OF AUTOMATED REASONING
, 1999
"... HeerHugo is a propositional formula checker that determines whether a given formula is satisfiable or not. Its main ingredient is the branch/merge rule, that is inspired by an algorithm proposed by Stallmarck, which is protected by a software patent. The algorithm can be interpreted as a breadth f ..."
Abstract

Cited by 45 (0 self)
 Add to MetaCart
(Show Context)
HeerHugo is a propositional formula checker that determines whether a given formula is satisfiable or not. Its main ingredient is the branch/merge rule, that is inspired by an algorithm proposed by Stallmarck, which is protected by a software patent. The algorithm can be interpreted as a breadth first search algorithm. HeerHugo differs substantially from Stallmarck's algorithm, as it operates on formulas in conjunctive normal form and it is enhanced with many logical rules including unit resolution, 2satisfiability tests and additional systematic reasoning techniques. In this paper, the main elements of the algorithm are discussed, and its remarkable effectiveness is illustrated with some examples and computational results.
Exploiting the Real Power of Unit Propagation Lookahead
, 2001
"... One of the best SAT solvers for random 3SAT formulae, SATZ, is based on a heuristic called unit propagation lookahead (UPL). Unfortunately, it does not perform so well on specific structured instances, especially on the ones coming from an area where a huge interest for SAT has emerged in rece ..."
Abstract

Cited by 33 (1 self)
 Add to MetaCart
One of the best SAT solvers for random 3SAT formulae, SATZ, is based on a heuristic called unit propagation lookahead (UPL). Unfortunately, it does not perform so well on specific structured instances, especially on the ones coming from an area where a huge interest for SAT has emerged in recent years: symbolic model checking (SMC). We claim that all the power of this heuristic is not used in SATZ, and that UPL can be extended to solve some real world structured problems, where the major competitors are using intelligent backtracking or specific deduction rules. We introduce a preprocessing technique that can be applied to simplify instances containing equivalent literals. This technique is based on UPL, so it can be easily added to any solver using this heuristic. We compare our approach to the new extension of SATZ for equivalency reasoning (EqSATZ) and another approach, the St almarck method, which is mainly used in SMC.
Embedded Languages for Describing and Verifying Hardware
, 2001
"... Abstract Lava is a system for designing, specifying, verifying and implementing hardware. It is embedded in the functional programming language Haskell, which means that hardware descriptions are firstclass objects in Haskell. We are thus able to use modern programming language features, such as hi ..."
Abstract

Cited by 29 (2 self)
 Add to MetaCart
(Show Context)
Abstract Lava is a system for designing, specifying, verifying and implementing hardware. It is embedded in the functional programming language Haskell, which means that hardware descriptions are firstclass objects in Haskell. We are thus able to use modern programming language features, such as higherorder functions, polymorphism, type classes and laziness, in hardware descriptions. We present two rather different versions of Lava. One version realises the embedding by using monads to keep track of the information specified in a hardware description. The other version uses a new language construct, called observable sharing, which eliminates the need for monads so that descriptions are much cleaner. Adding observable sharing to Haskell is a nonconservative extension, meaning that some properties of Haskell are lost. We thus investigate to what extent we are still allowed to use a normal Haskell compiler or interpreter. We also introduce an embedded language for specifying properties. The use of this language is twofold. On the one hand, we can use it to specify and later formally verify properties of the described circuits. On the other hand, we can use it to specify and randomly test properties of normal Haskell programs. As a bonus, since hardware descriptions are embedded in Haskell, we can also use it to test our circuit descriptions.
Faster SAT and Smaller BDDs via Common Function Structure
 University of Michigan
, 2001
"... The increasing popularity of SAT and BDD techniques in verification and synthesis encourages the search for additional speedups. Since typical SAT and BDD algorithms are exponential in the worstcase, the structure of realworld instances is a natural source of improvements. While SAT and BDD techn ..."
Abstract

Cited by 29 (8 self)
 Add to MetaCart
The increasing popularity of SAT and BDD techniques in verification and synthesis encourages the search for additional speedups. Since typical SAT and BDD algorithms are exponential in the worstcase, the structure of realworld instances is a natural source of improvements. While SAT and BDD techniques are often presented as mutually exclusive alternatives, our work points out that both can be improved via the use of the same structural properties of instances. Our proposed methods are based on efficient problem partitioning and can be easily applied as preprocessing with arbitrary SAT solvers and BDD packages without source code modifications. Finding a better variableordering is a well recognized problem for both SAT solvers and BDD packages. Currently, all leading edge variableordering algorithms are dynamic, in the sense that they are invoked many times in the course of the “host ” algorithm that solves SAT or manipulates BDDs. Examples include the DLCS ordering for SAT solvers and variablesifting during BDD manipulations. In this work we propose a universal variableordering MINCE (MIN Cut Etc.) that preprocesses a given Boolean formula in CNF. MINCE is completely independent from target algorithms and outperforms both DLCS for SAT and variable sifting for BDDs. We argue that MINCE tends to capture structural properties of Boolean functions arising from realworld applications. Our contribution is validated on the ISCAS circuits and the DIMACS benchmarks. Empirically, our technique often outperforms existing techniques by a factor of two or more. Our results motivate search for stronger dynamic ordering heuristics and combined static/dynamic techniques. 3 1
Qubos: Deciding Quantified Boolean Logic using Propositional Satisfiability Solvers
 In Proc. 4 th Intl. Conf. on Formal Methods in ComputerAided Design (FMCAD’02), volume 2517 of LNCS
, 2002
"... We describe Qubos (QUantified BOolean Solver), a decision procedure for quantified Boolean logic. The procedure is based on nonclausal simplification techniques that reduce formulae to a propositional clausal form after which o#theshelf satisfiability solvers can be employed. We show that ther ..."
Abstract

Cited by 28 (0 self)
 Add to MetaCart
(Show Context)
We describe Qubos (QUantified BOolean Solver), a decision procedure for quantified Boolean logic. The procedure is based on nonclausal simplification techniques that reduce formulae to a propositional clausal form after which o#theshelf satisfiability solvers can be employed. We show that there are domains exhibiting structure for which this procedure is very e#ective and we report on experimental results.
Stalmarck's algorithm as a HOL derived rule
 Verlag LNCS 1125
, 1996
"... Abstract. St˚almarck’s algorithm is a patented technique for tautologychecking which has been used successfully for industrialscale problems. Here we describe the algorithm and explore its implementation as a HOL derived rule. 1 ..."
Abstract

Cited by 22 (0 self)
 Add to MetaCart
Abstract. St˚almarck’s algorithm is a patented technique for tautologychecking which has been used successfully for industrialscale problems. Here we describe the algorithm and explore its implementation as a HOL derived rule. 1
Algebraic Simplification Techniques for Propositional Satisfiability
, 2000
"... The ability to reduce either the number of variables or clauses in instances of the Satisfiability problem (SAT) impacts the expected computational effort of solving a given instance. This ability can actually be essential for specific and hard classes of instances. The objective of this paper is to ..."
Abstract

Cited by 21 (5 self)
 Add to MetaCart
The ability to reduce either the number of variables or clauses in instances of the Satisfiability problem (SAT) impacts the expected computational effort of solving a given instance. This ability can actually be essential for specific and hard classes of instances. The objective of this paper is to propose new simplification techniques for Conjunctive Normal Form (CNF) formulas. Experimental results, obtained on representative problem instances, indicate that large simplifications can be observed.
ProbingBased Preprocessing Techniques for Propositional Satisfiability
 In Proc. the IEEE International Conference on Tools with Artificial Intelligence (ICTAI’03
, 2003
"... Preprocessing is an often used approach for solving hard instances of propositional satisfiability (SAT). Preprocessing can be used for reducing the number of variables and for drastically modifying the set of clauses, either by eliminating irrelevant clauses or by inferring new clauses. Over the ye ..."
Abstract

Cited by 19 (0 self)
 Add to MetaCart
(Show Context)
Preprocessing is an often used approach for solving hard instances of propositional satisfiability (SAT). Preprocessing can be used for reducing the number of variables and for drastically modifying the set of clauses, either by eliminating irrelevant clauses or by inferring new clauses. Over the years, a large number of formula manipulation techniques has been proposed, that in some situations have allowed solving instances not otherwise solvable with stateof theart SAT solvers. This paper proposes probingbased preprocessing, an integrated approach for preprocessing propositional formulas, that for the first time integrates in a single algorithm most of the existing formula manipulation techniques. Moreover, the new unified framework can be used to develop new techniques. Preliminary experimental results illustrate that probingbased preprocessing can be effectively used as a preprocessing tool in stateoftheart SAT solvers.
Efficient Latch Optimization Using Exclusive Sets
, 1997
"... Controller circuits synthesized from highlevel languages often have many more latches than the minimum, with a resulting sparse reachable state space that has a particular structure. We propose an algorithm that exploits this structure to remove latches. The reachable state set (RSS) is much e ..."
Abstract

Cited by 16 (6 self)
 Add to MetaCart
(Show Context)
Controller circuits synthesized from highlevel languages often have many more latches than the minimum, with a resulting sparse reachable state space that has a particular structure. We propose an algorithm that exploits this structure to remove latches. The reachable state set (RSS) is much easier to compute for the new, smaller circuit and can be used to efficiently compute the RSS of the original. Thus we provide a method for obtaining the RSS, and two different initial implementations from which to begin logic optimization. 1 Introduction The computation of the reachable state set (RSS) of a sequential circuit is important for verification, logic optimization and test generation. The RSS computation is typically done incrementally, by looping over a computation of the next states as the image of the current states by a vector of Boolean functions [3]. When BDDbased algorithms are used, the variables are the latches and the circuit inputs. Therefore, the number of latch...