<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>DIFF</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>- Tony Fratto</institution>
          ,
          <addr-line>Deputy Press Secretary</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>16 David Avidan St.</institution>
          ,
          <addr-line>Tel Aviv</addr-line>
          ,
          <country country="IL">Israel</country>
        </aff>
      </contrib-group>
      <volume>0</volume>
      <issue>2</issue>
      <fpage>26</fpage>
      <lpage>35</lpage>
      <abstract>
        <p>Bit vectors and bit operations are proposed for efficient propositional inference. Bit arithmetic has efficient software and hardware implementations, which can be put to advantage in Boolean satisability procedures. Sets of variables are represented as bit vectors and formulae as matrices. Symbolic operations are performed by bit arithmetic. As examples of inference done in this fashion, we describe ground resolution and ground completion.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Boolean satisfiability, though NP-complete, is a problem that is solved on a
daily basis with real-life industrial instances comprising millions of variables
and clauses. See, for example, [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
1.1
      </p>
      <sec id="sec-1-1">
        <title>The Problem</title>
        <p>Suppose B is a Boolean formula and p1, . . . , pv are its propositional variables.
The Boolean satisfiability (SAT) problem is to find an assignment of truth values
(0 and 1) to a subset of the variables, such that the formula becomes a tautology,
or else to determine that no such assignment exists, in which case the formula
is unsatisfiable.</p>
        <p>
          Formulae are often framed in clausal form. A literal is any variable pj or its
negation pj. A clause c is a (multi-) set of positive and negative literals, intending
their disjunction. A (clausal) formula C is a set or list of clauses, intending their
conjunction.
1.2
Bit arithmetic enjoys efficient software and hardware implementations. These
can be put to great advantage in satisfiability procedures. Sets of variables can
be represented as bit vectors, rather than as (linked) lists, or tries. Formulae
would be represented as matrices, rather than as linked lists or binary decision
diagrams [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. Symbolic operations are, accordingly, replaced by bit arithmetic.
1.3
        </p>
      </sec>
      <sec id="sec-1-2">
        <title>Related Work</title>
        <p>
          There has been considerable work on the use of reconfigurable hardware for SAT
solving in general or for individual instances (e.g. [
          <xref ref-type="bibr" rid="ref22 ref24">24,22</xref>
          ]). In contrast, here we
are interested in leveraging the native operations of binary hardware for the
problem.
1.4
        </p>
      </sec>
      <sec id="sec-1-3">
        <title>This Paper</title>
        <p>The use of bit operations on large bit arrays for the purpose of large-scale
propositional inference, as elaborated here, appears to be novel.</p>
        <p>
          The next section shows how formulae are encoded as vectors of bits. As
examples of the use of bit operations, the following two sections consider two
important families of propositional inference, namely, ground resolution and ground
completion. Ground resolution is the resolution rule for variable-free clauses,
as used for SAT in [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. Ground completion is an inference rule for variable-free
equations, using equations from left-to-right to replace “equals-by-equals”. The
final two sections discuss aspects of the practicality of the suggestion.
2
        </p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Representation</title>
      <p>A clause c can be represented by two bit vectors c0[1: v] and c1[1: v], where v
is the number of bits in the vector, c0[j] = 1 iff the negative literal pj occurs
in c, and c1[j] = 1 iff the positive literal pj occurs therein. Thus, a variable pk
(or literal pk) is identified with the vector containing a single 1 in position k
(or k + v, respectively). Let c also denote the 2v-bit-long concatenation of c0
and c1, symbolized c0⌢c1, and c∗ the reverse concatenation c1⌢c0. To encode a
tautological clause “true”, one can add a bit in the 0th position, c[0], to clauses
c, and use ⊤ to abbreviate the corresponding vector p0.</p>
      <p>The standard set operations will denote the corresponding bit-vector
functions. For example, ∩ represents logical-and and ∅ is the zero-vector, which
corresponds to the value false. So, if c0 ∩ c1 6= ∅, then c is tautological, as it
includes both a literal and its negation. Symmetric-difference (exclusive-or) is
⊕. Set difference can be obtained in two steps when it is not directly available:
x \ y = x ∩ y. We will let kck count the number of ones (the “population count”)
in vector c. Inequalities of bit vectors treat the low-index bits as most significant.
It is customary to also use 0 and 1 for false and true, respectively.</p>
      <p>A binomial equation eL = eR between Boolean monomials (products of
propositional variables) can likewise be represented as two bit vectors eL[1: v]
and eR[1: v], where eL[j] = 1 iff the variable pj occurs in the left side eL and
eR[j] = 1 iff it occurs in the right side eR. In this case, the most significant
bits eL[0] and eR[0] can conveniently be set to indicate the monomial 0 (false),
regardless of the values of other bits (thinking of the zero-bit as indicating a
0-factor). Thus, p0 represents the truth constant false, but so does any vector
with its most significant bit on. Accordingly, the truth constant true is denoted
by the zero-vector (empty monomial) ∅.</p>
      <p>A list C of n clauses c1, . . . , cn may be represented as a pair of n × (v + 1)
matrices, C0 and C1, where Cr[i, j] = 1 iff cr[j] = 1 (for r = 0, 1). To refer to
i
the whole jth column, one can write Cr[∗, j] (r = 0, 1, or blank). All or half of
the ith row, Cr[i, ∗], is just cir (r = 0, 1, or blank, for left half, right half, or both
halves, respectively). Similarly, a list of n Boolean equations may be represented
as a pair of matrices, CL and CR, for left and right sides of equations.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Resolution</title>
      <p>A clause is empty, and hence unsatisfiable, if c = ∅ (that is, kck = 0). A clause
is a unit if kck = 1, which coerces the truth value of its one literal. A clause is
trivial (tautological), and may be deleted, if c0 ∩ c1 6= ∅, since it disjoins a literal
and its complement. To delete a clause, we will set its (high-order) 0-bit to 1.
Two clauses c and d resolve on pk if c∗ ∩ d = pk, for some (positive or negative)
literal pk, producing a new clause (c ∪ d) \ (pk ∪ p∗k). The resultant clause may
be empty or a unit, but resolving non-units yields a non-empty clause.</p>
      <p>Resolution provers invariably include simplification stages, such as unit
propagation and subsumption, which we discuss next.
3.1</p>
      <sec id="sec-3-1">
        <title>Unit Propagation</title>
        <p>
          A unit clause c propagates and simplifies clause d if c∗ ⊆ d, in which case the
result is d′ = d \ c∗. If the result d′ is empty (d = c∗), the problem is unsatisfiable.
If the result is a unit, then d′ can be used in the same fashion. Binary
constraint propagation (BCP ) is the repeated application of subsumption by units
and unit propagation – until no further simplifications are possible. BCP is a
central component of the Davis-Putnam-Logemann-Loveland backtracking SAT
procedure [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], and its modern incarnations. It is expensive (typically consuming
80–90% of the running time), but is not necessary for completeness (and can
significantly degrade proof search; see [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]).
        </p>
        <p>Let n be the number of clauses, and let u[0: 2v] be a bit-vector of length
2v + 1. At the conclusion of the algorithm in Fig. 1, all the units obtained by
propagating the clauses of C will be marked in u. The n-step main loop repeats
at most v times. An empty clause ci means the problem is unsatisfiable. To
delete a row, we set ci := ⊤; it would be enough to let ci[0] := 1. The matrix
can be compacted by removing the deleted rows (at any juncture) and/or the
columns marked in u (after any complete pass).
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Subsumption</title>
        <p>Clause c subsumes clause d if c ⊆ d, in which case d is superfluous. For this to
be the case, we must have c ≤ d, as binary numbers, but this is an insufficient
condition. Using standard operations, c ⊆ d iff c ∪ d = d.</p>
        <p>Subsumption is more expensive than unit propagation and should normally
be preceded by BCP. It can be implemented like sorting, with the addition of
u := ∅
b := true
while b do
b := false
for i := 1, . . . , n do
if u ∩ ci = ∅
then ci := ci \ u∗
if ci = ∅ then fail
if kcik = 1
then u := u ∪ ci</p>
        <p>
          b := true
else ci := ⊤
checking whether the smaller of any pair subsumes the larger, in which case, the
larger is deleted – for a cost of O(n lg n) vector-operations to check all clauses.
Deleted rows should be removed. For an n2 version, `a la selection sort, see Fig. 2.
Subsumption is often not cost-effective in standard implementations, but might
be in this context. (Satellite [
          <xref ref-type="bibr" rid="ref12 ref3">3,12</xref>
          ], interestingly, does use bit vectors to estimate
the applicability of subsumption.)
        </p>
        <p>
          Other implementations of these algorithms, taking advantage of matrix
operations, are conceivable.
The original Davis-Putnam (DP) procedure resolves clauses, variable by
variable [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. See Fig. 3. There are various heuristics for ordering the variables, such
as choosing the one that appears in the most clauses. Columns can be presorted
to reflect such policies. BCP can be incorporated, and perhaps subsumption,
taking into account that the literals pk and pk are removed with each iteration
on k.
m := n
for k := 1, . . . , v do
n := m
for i := 1, . . . , n − 1 do
for j := i + 1, . . . , n do
if ci ∩ cj∗ ⊂ (pk ∪ pk)
then m := m + 1
cm := (ci ∪ cj) \ (pk ∪ pk)
if cm = ∅ then fail
Knuth-Bendix completion [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], and its extensions, repeatedly finds overlaps
between equations (using only the larger side of any equation), to infer new
equations. (In contrast, paramodulation [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] looks at both sides of equations.)
Equational reasoning provides an alternative inference paradigm to propositional
reasoning, with equations in completion playing an analogous rˆole to clauses in
resolution.
        </p>
        <p>
          We are interested in the ground (variable-free) case of completion, where the
operations are associative and commutative [
          <xref ref-type="bibr" rid="ref1 ref16 ref17">1,16,17</xref>
          ]. As examples of completion
in the realm of Boolean formulae, we will consider ground Horn-clause theories
and Gaussian elimination over Z2.
b := true
while b do
b := false
for i := 1, . . . , n − 1 do
for j := i + 1, . . . , n do
if eiL ⊆ ejL
then ejL := ejL \ eiL ∪ eiR
if ejR &gt; ejL then ejL :=: ejR
b := true
if eiL ⊆ ejR
then ejR := ejR \ eiL ∪ eiR
        </p>
        <p>
          b := true
A clause is Horn if it has at most one positive literal. A Horn clause p0 ∨ ¬p1 ∨
· · · ∨ ¬pn is equivalent to the binomial equation p0p1 · · · pn = p1 · · · pn; a negative
Horn clause ¬p1 ∨ · · · ∨ ¬pn is equivalent to the monomial equation p1 · · · pn = 0.
See [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] for details regarding such representations.
        </p>
        <p>
          Two equations ei and ej are critical iff eiL ∩ ejL 6= ∅. The critical equation
(or critical pair) is eL = eR, where eL := ejL \ eiL ∪ eiR and eR := eiL \ ejL ∪ ejR.
Critical equations may need to be oriented. Knuth-Bendix (KB) completion
(or the analogous Gr¨obner basis construction [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]) is the repeated generation of
critical pairs, interleaved with inter-reduction.
        </p>
        <p>
          In this manner, completion serves as the inference engine, generating critical
pairs from the equational representation of Horn clauses, as shown in Fig. 4.
A major component of completion is simplification, akin to demodulation [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ],
by which we mean using equations in one direction to “simplify” other equations
(with respect to some measure).
        </p>
        <p>An oriented equation eL = eR is unitary and can be used to simplify in any
of the following three cases:
– Positive Unit. If eR = ∅, then the equation signifies eL = 1 (since we agreed
in Sect. 2 to interpret ∅ as truth). It follows that pi = 1 for every pi ∈ eL.
Apply eR = ∅ to a monomial m by removing the (superfluous) positive bits:
m := m \ eR.
– Negative Unit. If keLk = 1 and eR[0] = 1, then pk = 0 for the pk ∈ eL.</p>
        <p>Apply pk = 0 by zeroing any monomial in which it appears: if m[k] then
m[0] := 1.
– Unit Equivalence. If keLk = keRk = 1 and eL[0] = eR[0] = 0, then pk = pj
for the pk ∈ eL and pj ∈ eR. Apply pk = pj by replacing occurrences of pk
with pj : if m[k] then m[j] := 1.
i := 1
k := 1
while k ≤ v ∧ i ≤ n do
m := i
while m ≤ n ∧ ¬cm[k] do m := m + 1
if m ≤ n then
cm :=: ci
for j := 1, . . . , i − 1, m + 1, . . . , n do</p>
        <p>if cj[k] then cj := cj ⊕ ci
i := i + 1
k := k + 1
The results of such unit simplifications can propagate as in resolution.</p>
        <p>More generally, an equation eL = eR can be used to simplify a monomial m
provided all the variables in eL appear in m, that is, when eL ⊆ m. The rewrite
step is the assignment m := m \ eL ∪ eR. If we use the 0-bit to signify the term
0, as explained above, then reducing products to 0 works as expected.</p>
        <p>The lexicographic ordering of monomials is ordinary bit-string inequality. An
equation c needs to reoriented if eR &gt; eL, which may transpire after reducing a
left side. Other orderings are possible.</p>
        <p>
          To inter-reduce a system C of equations, applying all equations to all
equations, as much as possible, first sort C in ascending order according to
hkeRk − keLk, eL, e1i and then apply the algorithm in Fig. 5. The idea is that
reducing with a “rewrite rule” ℓ → r decreases the binary value of the string
it is applied to by kℓk − krk, and, long range, one wants to maximize the
decreases obtained with each reduction, so as to converge as quickly as possible.
This na¨ıve program can presumably still require exponentially many vector
operations, but hopefully much better algorithms for inter-reduction can be devised
(compare the non-commutative case [
          <xref ref-type="bibr" rid="ref13 ref21">13,21</xref>
          ]). One may prefer to limit reduction
to equations with few variables on the left.
A linear equation over Z2 takes the form P = 0, where P is an exclusive
disjunction of some of the propositional variables p1, . . . , pv. (Since we are using ⊕,
coefficients are 0 or 1.)
        </p>
        <p>We represent an equation P = 0 as a bit vector c of length v+1, where c[k] = 1
iff pk is a summand in P and p0 is the constant 1. Adding (or subtracting) a linear
equation c to d is just d := d ⊕ c. A standard quadratic (vn vector operations)
Gaussian elimination procedure is given in Fig. 6.</p>
        <p>When (after elimination, say) kck ≤ 2, the equation c is unitary and is of
one of the following three forms: pk = 0, pk = 1, or pk = pj, for some k ≥ 1 and
1 ≤ j 6= k.</p>
        <p>LOAD 0, ci1
OR 0, cj1
LOAD 2, ci1
AND 2, cj0
DIFF 0, 2</p>
        <p>
          STORE 0, c0
For non-Horn clauses, one needs also to incorporate negation in some form.
The BinLin representation of propositional formulae, proposed in [
          <xref ref-type="bibr" rid="ref10 ref9">9,10</xref>
          ], uses a
combination of equations between monomials and linear equations over Z2 to
represent propositional formulae in exclusive-or (Boolean ring) normal-form. It
provides an alternative to other propositional satisfiability procedures, whether
search-based, saturation-based, or hybrid intersection-based methods. In this
formalism, variables and equations are added in a satisfiability-preserving fashion,
to obtain a set of binomial equations and a set of linear Boolean equations. The
binomials undergo inter-reduction and the linear equations undergo Gaussian
elimination. Unitary equations are propagated among both sets. This method,
too, can be implemented naturally within the framework proposed here.
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>5 Implementation</title>
      <p>Most of the bit-vector operations used in the above sections are readily available
on digital computers. Some processors, even way back to the IBM Stretch,
provide a hardware instruction for the number of ones in a machine word; in any
case, computing kck requires only a few machine instructions [2, No. 169]. Most
operations are also available in many software languages (e.g. C). They are all
easy to implement in general-purpose or special-purpose hardware.</p>
      <p>For example, resolving two single-word (or double-word – for machines with
double-word operations) clauses requires approximately 12 machine instructions.
Thus v variables require 12⌈v/w⌉ instructions on a w-bit machine. For example,
if w = 64 and v = 1000, fewer than 200 machine instructions are needed. See
Fig. 7. This should be contrasted with the large number of machine operations
used in a pointer-based implementation.</p>
      <p>
        For large (but presumably sparse) vectors, (iterated) summary bits should
prove helpful. (The summary bit for a subvector x is 0 iff x = 0.) Column
operations, such as erasing all occurrences of a true propositional variable, may
be sped up by also maintaining transpose matrices [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
      </p>
      <p>Industrial-strength problems can easily involve hundreds of thousands of
variables and millions of clauses. The storage requirements for a bit matrix of that
size is in the hundreds-of-gigabyte range. Given enough storage, full-fledged n lg n
subsumption would take a few minutes on a 5000 MIPS 64-bit machine.</p>
    </sec>
    <sec id="sec-5">
      <title>Discussion</title>
      <p>Davis-Putnam resolution is a saturation-based methods for checking
propositional satisfiability. The original set of clauses is satisfiable if and only if
resolution terminates without having derived the empty clause. Similarly,
KnuthBendix completion derives the contradiction 1 = 0 if and only if the input clauses
are unsatisfiable. Thus, both methods (Figs. 3 and 4) repeatedly add rows to
the matrices of formulae.</p>
      <p>
        Saturation is often considered too costly in practice. Instead, a backtrack
search [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] – based on the clausal representation with unit propagation and
subsumption – can easily be built around the above procedures. One simple way to
keep track would be to mark rows of the matrix that are added or deleted with
the search level. (Instead of changing a row, one would delete and add.) After a
significant number of assignments, it may pay to compact the matrix.
      </p>
      <p>
        Similarly, a recursive-learning intersection-based method [
        <xref ref-type="bibr" rid="ref15 ref19">15,19</xref>
        ], combining
limited saturation, generous simplification, and judicious search can be designed.
      </p>
      <p>The algorithms given here are readily adaptable to highly parallel vector or
array architectures. Experiments with simulations are needed to evaluate their
practical feasibility.</p>
      <sec id="sec-5-1">
        <title>Acknowledgement</title>
        <p>I thank Guan-Shieng Huang for many ideas, discussions and vegetarian meals.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>A. M.</given-names>
            <surname>Ballantyne</surname>
          </string-name>
          and
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Lankford</surname>
          </string-name>
          . “
          <article-title>New decision algorithms for finitely presented commutative semigroups”</article-title>
          .
          <source>J. Computational Mathematics with Applications</source>
          , vol.
          <volume>7</volume>
          ,
          <issue>1981</issue>
          , pp.
          <fpage>159</fpage>
          -
          <lpage>165</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>M.</given-names>
            <surname>Beeler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. W.</given-names>
            <surname>Gosper</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Schroeppel</surname>
          </string-name>
          . “HAKMEM”,
          <source>Artificial Intelligence Memo No. 239</source>
          , Massachusetts Institute of Technology,
          <string-name>
            <surname>A. I. Laboratory</surname>
          </string-name>
          , Feb.
          <year>1972</year>
          . Available at http://www.inwap.com/pdp10/hbaker/hakmem/hakmem.html
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>A.</given-names>
            <surname>Biere</surname>
          </string-name>
          , “
          <article-title>Resolve and expand</article-title>
          ,
          <source>Proc. of the 7th International Conference on Theory and Applications of Satisfiability Testing (SAT'04), Lecture Notes in Computer Science</source>
          , vol.
          <volume>3542</volume>
          , Springer-Verlag, Berlin,
          <year>2005</year>
          , pp.
          <fpage>59</fpage>
          -
          <lpage>60</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>M.-P. Bonacina</surname>
            and
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Dershowitz</surname>
          </string-name>
          . “
          <article-title>Canonical Inference for Implicational Systems”</article-title>
          ,
          <source>Proc. of the 4th Intl. Joint Conference on Automated Reasoning, A</source>
          . Armando,
          <string-name>
            <given-names>P.</given-names>
            <surname>Baumgartner</surname>
          </string-name>
          , and G. Dowek, eds.,
          <source>Lecture Notes in Computer Science</source>
          , Springer-Verlag, Berlin, Aug.
          <year>2008</year>
          , pp.
          <fpage>380</fpage>
          -
          <lpage>395</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>R. E. Bryant.</surname>
          </string-name>
          “
          <article-title>Symbolic Boolean manipulation with ordered binary-decision diagrams”</article-title>
          ,
          <source>ACM Computing Surveys</source>
          , vol.
          <volume>24</volume>
          ,
          <year>1992</year>
          , pp.
          <fpage>293</fpage>
          -
          <lpage>318</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>B.</given-names>
            <surname>Buchberger</surname>
          </string-name>
          . “
          <article-title>Gr¨obner bases: An algorithmic method in polynomial ideal theory”</article-title>
          . Bose, N. K., ed.,
          <source>Multidimensional Systems Theory, Reidel</source>
          ,
          <year>1985</year>
          , pp.
          <fpage>184</fpage>
          -
          <lpage>232</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>M.</given-names>
            <surname>Davis</surname>
          </string-name>
          , G. Logemann, and
          <string-name>
            <surname>D. Loveland. “</surname>
          </string-name>
          <article-title>A machine program for theorem proving”</article-title>
          ,
          <source>Communications of the ACM</source>
          , vol.
          <volume>5</volume>
          ,
          <issue>1962</issue>
          , pp.
          <fpage>394</fpage>
          -
          <lpage>397</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>M.</given-names>
            <surname>Davis</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Putnam</surname>
          </string-name>
          . “
          <article-title>A computing procedure for quantification theory”</article-title>
          .
          <source>J. of the ACM</source>
          , vol.
          <volume>7</volume>
          , no.
          <issue>3</issue>
          ,
          <year>July 1960</year>
          , pp.
          <fpage>201</fpage>
          -
          <lpage>215</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>N.</given-names>
            <surname>Dershowitz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hsiang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.-S.</given-names>
            <surname>Huang</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Kaiss</surname>
          </string-name>
          . “
          <article-title>Boolean ring satisfiability”</article-title>
          ,
          <source>Proc. 7th Intl. Conf. on Theory and Applications of Satisfiability Testing (SAT</source>
          <year>2004</year>
          ),
          <source>May</source>
          <year>2004</year>
          , pp.
          <fpage>281</fpage>
          -
          <lpage>286</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>N.</given-names>
            <surname>Dershowitz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hsiang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.-S.</given-names>
            <surname>Huang</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Kaiss</surname>
          </string-name>
          . “
          <article-title>Boolean rings for intersection-based satisfiability”</article-title>
          ,
          <source>Proc. of the 13th Intl. Conf. on Logic for Programming and Artificial Intelligence and Reasoning</source>
          , M. Hermann and A. Voronkov, eds.,
          <source>Lecture Notes in Computer Science</source>
          , vol.
          <volume>4246</volume>
          , Springer-Verlag, Berlin, Nov.
          <year>2006</year>
          , pp.
          <fpage>482</fpage>
          -
          <lpage>496</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>N.</given-names>
            <surname>Dershowitz</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Nadel</surname>
          </string-name>
          , “
          <article-title>From total assignment enumeration to a modern SAT solver”</article-title>
          , submitted
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. N.
          <article-title>E´en and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Biere</surname>
          </string-name>
          , “
          <article-title>Effective preprocessing in SAT through variable and clause elimination”</article-title>
          ,
          <source>Proc. of the 8th Intl. Conf. on Theory and Applications of Satisfiability Testing (SAT'05), Lecture Notes in Computer Science</source>
          , vol.
          <volume>3569</volume>
          ,
          <issue>SpringerVerlag</issue>
          , Berlin,
          <year>2005</year>
          , pp.
          <fpage>61</fpage>
          -
          <lpage>75</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>J. Gallier</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Narendran</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Plaisted</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Raatz</surname>
            , and
            <given-names>W. Snyder. “</given-names>
          </string-name>
          <article-title>An algorithm for finding canonical sets of ground rewrite rules in polynomial time”</article-title>
          ,
          <source>Journal of Association for Computing Machinery</source>
          , vol.
          <volume>40</volume>
          , no.
          <issue>1</issue>
          ,
          <issue>1993</issue>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>16</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>D. E.</given-names>
            <surname>Knuth</surname>
          </string-name>
          and
          <string-name>
            <given-names>P. B.</given-names>
            <surname>Bendix</surname>
          </string-name>
          . “
          <article-title>Simple word problems in universal algebras”</article-title>
          . J. Leech, ed.,
          <source>Computational Problems in Abstract Algebra</source>
          . Oxford: Pergamon Press,
          <year>1970</year>
          , pp.
          <fpage>263</fpage>
          -
          <lpage>297</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. W. Kunz. “
          <article-title>Recursive learning: A new implication technique for efficient solutions to CAD problems - test, verification, and optimization”</article-title>
          ,
          <source>IEEE Trans. on ComputerAided Design of Integrated Circuits and Systems</source>
          , vol.
          <volume>13</volume>
          ,
          <year>1994</year>
          , pp.
          <fpage>1143</fpage>
          -
          <lpage>1158</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. C. March´e. “
          <article-title>On ground AC-completion”</article-title>
          .
          <source>Proc. of the 4th Intl. Conf. on Rewriting Techniques and Applications</source>
          , R. V. Book, ed.,
          <source>Lecture Notes in Computer Science</source>
          , vol.
          <volume>488</volume>
          , Springer-Verlag, Berlin, Apr.
          <year>1991</year>
          ,
          <fpage>411</fpage>
          -
          <lpage>422</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>P.</given-names>
            <surname>Narendran</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Rusinowitch</surname>
          </string-name>
          . “
          <article-title>Any ground associative commutative theory has a finite canonical system”</article-title>
          .
          <source>J. Automated Reasoning</source>
          , vol.
          <volume>17</volume>
          , no.
          <issue>1</issue>
          ,
          <string-name>
            <surname>Aug</surname>
          </string-name>
          .
          <year>1996</year>
          , pp.
          <fpage>131</fpage>
          -
          <lpage>143</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>M. R. Prasad</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Biere</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Gupta</surname>
          </string-name>
          .
          <article-title>“A survey of recent advances in SAT-based formal verification”</article-title>
          .
          <source>Software Tools for Technology Transfer</source>
          , vol.
          <volume>7</volume>
          , no.
          <issue>2</issue>
          ,
          <issue>2005</issue>
          , pp.
          <fpage>156</fpage>
          -
          <lpage>173</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>M.</given-names>
            <surname>Sheeran</surname>
          </string-name>
          and
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>St˚almarck. “A tutorial on St˚almarck's proof procedure for propositional logic”</article-title>
          .
          <source>Proc. of the 2nd Intl. Conference on Formal Methods in Computer-Aided Design, Lecture Notes in Computer Science</source>
          , Springer-Verlag,
          <year>Nov</year>
          .
          <year>1998</year>
          , pp.
          <fpage>82</fpage>
          -
          <lpage>99</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>I.</given-names>
            <surname>Skliarova</surname>
          </string-name>
          and
          <string-name>
            <given-names>A. B.</given-names>
            <surname>Ferrari</surname>
          </string-name>
          . “
          <article-title>The design and implementation of a reconfigurable processor for problems of combinatorial computation”</article-title>
          .
          <source>J. Syst. Archit.</source>
          , vol.
          <volume>49</volume>
          ,
          <issue>nos</issue>
          . 4-
          <issue>6</issue>
          , Sep.
          <year>2003</year>
          , pp.
          <fpage>211</fpage>
          -
          <lpage>226</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21. W. Snyder. “
          <article-title>A fast algorithm for generating reduced ground rewriting systems from a set of ground equations</article-title>
          ,
          <source>” J. of Symbolic Computation</source>
          , vol.
          <volume>15</volume>
          , no.
          <issue>4</issue>
          ,
          <issue>1993</issue>
          , pp.
          <fpage>415</fpage>
          -
          <lpage>450</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22. T. Suyama,
          <string-name>
            <given-names>M.</given-names>
            <surname>Yokoo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Sawada</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Nagoya</surname>
          </string-name>
          . “
          <article-title>Solving satisfiability problems using reconfigurable computing”</article-title>
          .
          <source>IEEE Trans. VLSI Systems</source>
          , vol.
          <volume>9</volume>
          , no.
          <issue>1</issue>
          ,
          <string-name>
            <surname>Feb</surname>
          </string-name>
          .
          <year>2001</year>
          , pp.
          <fpage>109</fpage>
          -
          <lpage>116</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23. L.
          <string-name>
            <surname>Wos</surname>
            ,
            <given-names>G. A.</given-names>
          </string-name>
          <string-name>
            <surname>Robinson</surname>
            ,
            <given-names>D. F.</given-names>
          </string-name>
          <string-name>
            <surname>Carson</surname>
            , and
            <given-names>L. Shalla. “</given-names>
          </string-name>
          <article-title>The concept of demodulation in theorem proving”</article-title>
          .
          <source>J. of the ACM</source>
          , vol.
          <volume>14</volume>
          , no.
          <issue>4</issue>
          ,
          <string-name>
            <surname>Oct</surname>
          </string-name>
          .
          <year>1967</year>
          , pp.
          <fpage>698</fpage>
          -
          <lpage>709</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. P. Zhong,
          <string-name>
            <given-names>P.</given-names>
            <surname>Ashar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Malik</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Martonosi</surname>
          </string-name>
          . “
          <article-title>Using reconfigurable computing techniques to accelerate problems in the CAD domain: A case study with Boolean satisfiability”</article-title>
          .
          <source>Proc. of the Design Automation Conf</source>
          .
          <source>(DAC)</source>
          ,
          <year>1998</year>
          , pp.
          <fpage>194</fpage>
          -
          <lpage>199</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>