<!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 />
    <article-meta>
      <title-group>
        <article-title>A Verified Decision Procedure for Pseudo-Boolean Formulas</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Tobias Philipp</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Anna Tigunova</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>International Center for Computational Logic, Technische Universita ̈t Dresden</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Pseudo-Boolean formulas consist of constraints of the form åin=1 wi xi k, where xi are propositional literals, wi 2 Z, k 2 Z, and arise in planning, scheduling and optimization problems. We describe an efficient and easily verifiable decision procedure for pseudo-Boolean formulas, that is based on encoding PB formulas into the propositional satisfiability problem with the cutting-edge sequential weighted counter encoding. State-of-the-art SAT solvers that emit unsatisfiability proofs are used to solve the resulting instances. The combination of a verified translation to SAT, and certified SAT solvers leads to a verified decision procedure for PB formulas. The verification of the encoding is carried out in the Coq proof assistant.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <sec id="sec-1-1">
        <title>The satisfiability problem is one of the most prominent prob</title>
        <p>
          lems in theoretical computer science and artificial
intelligence and was successfully applied in planning [
          <xref ref-type="bibr" rid="ref16">16, 25</xref>
          ],
as well as scheduling [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. In these applications
pseudoBoolean (PB) constraints often occur. PB constraints can be
represented as åin=1 wi xi k, where xi are propositional
literals, wi 2 Z, k 2 Z, and hold if and only if the weighted
sum over the xi literals is -related with k. For example,
the packing problem can be formalized by means of PB
formulas: we pack the given items of sizes a1; : : : ; an into the
minimal number of containers yi such that the volume V of
the container is not exceeded. Then, we obtain:
n
å aixi; j
j=1
        </p>
        <p>V yi</p>
        <p>for all i 2 f1 : : : ng</p>
        <p>
          Our research is based on the need for formalized and
verified decision procedures that do not depend on unverified
components and pen and paper proofs. Our contribution is
an easy pipeline of an efficient encoding to solve PB
constraints, where each step is certified, leading to efficient and
easily verifiable decision procedure for PB formulas.
Following Ee´n and So¨rensson [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], we translate PB constraints
into formulas in conjunctive normal form, and run
afterwards a SAT solver that finds a solution to the original PB
formula or reports unsatisfiability of the problem. This
SATbased approach is highly successful since SAT solving has
significantly advanced over the last decades, and solvers are
yearly evaluated in international SAT competitions. Their
performance over e.g. hardware and software verification [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]
has improved, enabling them to become widespread tools in
the industry. Moreover, often formalizations of problems
are close to the clause normal form. Therefore, the use SAT
solvers is an attractive approach to tackle these problems.
        </p>
        <p>
          Due to these reasons many translations from PB
constraints into propositional formulas in conjunctive normal
form have been proposed: naive, nested, watchdog [22],
adder- and sorting networks [
          <xref ref-type="bibr" rid="ref11">21, 11</xref>
          ], binary merge [20],
binary decision diagrams [
          <xref ref-type="bibr" rid="ref1 ref11">11, 1</xref>
          ], and the sequential weighted
counter encoding (SWC) [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. Specialized encodings also
exist for cardinality constraints [
          <xref ref-type="bibr" rid="ref2">2, 26</xref>
          ] that are subsumed by
        </p>
      </sec>
      <sec id="sec-1-2">
        <title>PB constraints.</title>
      </sec>
      <sec id="sec-1-3">
        <title>Among all these, we chose the SWC encoding due to</title>
        <p>
          the following reasons. First, it produces in the PB
benchmarks 2011 and 2010 less clauses in 99% of the cases than
the asymptotic best binary merge encoding [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. Second,
SWC satisfies two important properties: unit propagation in
the encoding detects inconsistencies and maintain
generalized arc consistency [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. Third, experiments on all new
instances of the PB evaluation 2012 have shown that the
sequential weighted counter encoding performs better than
adder and sorting networks, watchdog and binary merge
encodings, within a timeout of 30 minutes [23]. Finally, the
encoding is relatively simple to describe, which allows us to
verify it with little effort using interactive theorem provers
such as Coq.
        </p>
        <p>
          The correctness of the PB decision procedure is then
reduced to the correctness of the underlying SAT solver.
Unfortunately, SAT solver can be buggy: three solvers, that
participated in the SAT competition in 2009, and five solvers
that participated in the SAT competition in 2007 gave
incorrect results [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. The critical case is when a formula is
reported to be unsatisfiable, as unsatisfiability is hard to see.
        </p>
      </sec>
      <sec id="sec-1-4">
        <title>Also subtle bugs in different components of satisfiability</title>
        <p>
          solvers were reported in [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. Therefore, state-of-the-art
SAT solver like Riss or Lingeling [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] , emit certificates in
the DRAT [29] format, which are afterwards checked by an
independent program, such as drat-trim [29]. Still, a proof
of correctness of the translation from PB constraints to CNF
is necessary. Figure 1 presents our approach to the problem
of justification of the whole procedure. It is a combination
of a mechanically verified translation from PB constraints
into CNF and a certified SAT solver. Such a combination
then forms a verified decision procedure for PB formulas.
pseudo-Boolean formulas
        </p>
        <p>CNF</p>
      </sec>
      <sec id="sec-1-5">
        <title>SAT solver model / DRAT proof drat trim</title>
        <p>Haskell code</p>
      </sec>
      <sec id="sec-1-6">
        <title>Coq specification and proofs</title>
      </sec>
      <sec id="sec-1-7">
        <title>Coq kernel</title>
      </sec>
      <sec id="sec-1-8">
        <title>The rest of this paper is structured as follows: First, we</title>
        <p>give a short introduction to the proof assistant Coq,
propositional logic, the DRAT format for the certification of SAT
solvers, as well as PB-constraints and the SWC encoding.</p>
      </sec>
      <sec id="sec-1-9">
        <title>Then we present the formalization of the SWC encoding.</title>
      </sec>
      <sec id="sec-1-10">
        <title>After that we describe the specification and present the proof</title>
        <p>ideas. Then we focus on integration of all parts of the
procedure, and evaluate our approach on selected instances from
the PB competition 2016. Finally, we discuss some future
improvements.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <sec id="sec-2-1">
        <title>The Coq Proof Assistant</title>
        <p>
          We use the Coq proof assistant [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] to write our
specifications and proofs. Coq is based on the calculus of
inductive constructions [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] and combines higher-order logic with
a typed functional programming language. In Coq we
define functions in the lambda calculus. Moreover, we can
express mathematical theorems and can proof them
interactively. The syntax of Coq is similar to that of other typed
functional programming languages. Accepted proofs can be
independently checked by a small certification kernel.
Finally, we can automatically extract Haskell programs from
        </p>
        <sec id="sec-2-1-1">
          <title>Coq theories, which give us fully verified programs. There</title>
          <p>fore, Coq provides an essential link from the PB to the SAT
encoding, because it ensures the correctness of the
translation. In this way we obtain a verified Haskell program that
transforms PB constraints into CNF.</p>
        </sec>
        <sec id="sec-2-1-2">
          <title>In propositional logic we consider an infinite set of proposi</title>
          <p>tional variables V . A literal L is either a propositional
variable A or its negation :A. The complement of a literal L is
denoted by L, i.e. A = :A and :A = A. Clauses are lists
of literals and represent disjunction. Formulas are lists of
clauses, representing a conjunction.</p>
          <p>The semantics of formulas is built on interpretations. An
interpretation I is a mapping from the set V of all Boolean
variables to the set f&gt;; ?g of truth values, represented by
the set of variables, which are true in this interpretation. The
interpretation I satisfies the variable A, in symbols I j= A,
if and only if A 2 I. Similarly, I satisfies the clause C, in
symbols I j= C, if and only if there is a literal L 2 C, such
that I j= L. For a formula F, the interpretation I satisfies the
formula F, in symbols I j= F, if and only if for every clause
C 2 F, we find that the interpretation I satisfies the clause C.</p>
        </sec>
        <sec id="sec-2-1-3">
          <title>A model I of a formula F is an interpretation I, that satisfies</title>
          <p>the formula F. If such a model I of F exists, the formula F
is satisfiable. Otherwise, the formula F is unsatisfiable.</p>
        </sec>
        <sec id="sec-2-1-4">
          <title>Let C and D be two clauses and L be a literal such that</title>
          <p>L 2 C and L 2 D. Then, the resolvent of C and D upon L
is (C n f g</p>
          <p>L ) [ (D n fLg). A tautological clause is a clause
containing A and :A for some variable A.</p>
        </sec>
      </sec>
      <sec id="sec-2-2">
        <title>DRAT Refutations</title>
        <sec id="sec-2-2-1">
          <title>As the second step to certify the output of our system we</title>
          <p>
            use drat-trim, which is a checker for unsatisfiability proofs
in DRAT format: The Resolution Asymmetric Tautology
(RAT) property is based on the notion of asymmetric literal
addition [
            <xref ref-type="bibr" rid="ref15">15</xref>
            ], where ALAF (C) is defined as
          </p>
          <p>C [ fL j fL1; : : : ; Ln; Lg 2 F and fL1; : : : ; Lng
Cg</p>
        </sec>
        <sec id="sec-2-2-2">
          <title>We consider the recursive application of asymmetric literal addition:</title>
          <p>ALAF (C) " 0
ALAF (C) " n + 1
= C
= ALAF (ALAF (C) " n)</p>
        </sec>
        <sec id="sec-2-2-3">
          <title>A clause C is an asymmetric tautology (AT) w.r.t. the for</title>
          <p>mula F, if there is n 2 N such that the clause ALAF (C) " n
is a tautology.</p>
          <p>
            Ja¨rvisalo et al. introduced the following redundancy
criteria based on an asymmetric tautologies in [
            <xref ref-type="bibr" rid="ref15">15</xref>
            ]: The clause C
is a resolution asymmetric tautology (RAT) upon L w.r.t. F,
if (1) the clause C is an asymmetric tautology w.r.t. the
formula F, or (2) there is a literal L 2 C such that the resolvent
of C and D upon L is an asymmetric tautology w.r.t. the
formula F for every D 2 F with L 2 D.
          </p>
        </sec>
        <sec id="sec-2-2-4">
          <title>Several important techniques in SAT solvers can be char</title>
          <p>
            acterized in terms of RAT: bounded variable elimination and
addition [
            <xref ref-type="bibr" rid="ref10">27, 10, 24, 19</xref>
            ], blocked clause elimination [
            <xref ref-type="bibr" rid="ref14">14</xref>
            ],
blocked clause addition [
            <xref ref-type="bibr" rid="ref15 ref17">17, 15</xref>
            ], probing [
            <xref ref-type="bibr" rid="ref18">18</xref>
            ], and extended
resolution and reencoding [19, 28].
          </p>
          <p>A DRAT refutation for a formula is a sequence of clauses
to the empty clause having the RAT property with respect to
the preceding clauses, together with deletion information. If
a DRAT refutation for a formula F exists, then F is
unsatisfiable.
.
.
.
s1;k+1
.
.
.</p>
          <p>
            s2;1
s2;2
s2;k+1
: : :
: : :
We consider pseudo-Boolean constraints åin=1 wixi k
in normal form [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ] that meet the following conditions:
1. 1 k &lt; n, 2. weights are between 1 and k, and 3. no
literal occurs more than once. For example, the PB
constraint 2x1 + x2 + 2x1 1 is not in normal form, since x1
occurs more than once. Notice that it is not a restriction to
consider PB constraints in normal form, as all PB constraints
can be transformed into a semantically equivalent PB
constraint in normal form. Moreover, normalized constraints do
occur in applications, such as in translations from maximum
satisfiability into PB optimization.
          </p>
        </sec>
        <sec id="sec-2-2-5">
          <title>A normalized PB constraint can then be transformed to an</title>
          <p>equivalent propositional formula. For instance, the
expression 3x1 + 2x2 + 4x3 5 is a normalized constraint, that is
semantically equivalent to the following formula:
:(x1 ^ x3) ^ :(x2 ^ x3)</p>
          <p>
            The sequential weighted counter (SWC) [
            <xref ref-type="bibr" rid="ref13">13</xref>
            ] is an
encoding of normalized PB constraints into formulas in
conjunctive normal form. It generalizes the sequential counter
encoding [26] for at-most-k constraints (expressions of the
form å xi k, where only k variables can be mapped to &gt;).
          </p>
        </sec>
        <sec id="sec-2-2-6">
          <title>SWC can also be seen as a variant of a BDD-based encod</title>
          <p>
            ings for monotone predicates [
            <xref ref-type="bibr" rid="ref1">1</xref>
            ].
          </p>
        </sec>
        <sec id="sec-2-2-7">
          <title>The SWC encoding works as follows: given a sequence</title>
          <p>of variables x1; : : : ; xn and associated weights w1; : : : ; wn, the
sequential weighted counter uses the auxiliary propositional
variables si; j, where 1 i n and 1 j k. The variable
si; j expresses that the sum up to the ith variable is at least j.
Example 1. For instance, consider the PB-constraint
3x1 + 2x2 + 4x3 &lt; 5 and an interpretation I where
I(x1) = &gt;, I(x2) = ? and I(x3) = &gt;. Then, the following
variables are all mapped to &gt; under I:
s1;1; s1;2; s1;3; s2;1; s2;2; s2;3; s3;1; s3;2; s3;3;</p>
          <p>s4;1; s4;2; s4;3; s4;4; s4;5</p>
        </sec>
        <sec id="sec-2-2-8">
          <title>To get more insight into the encoding process, refer to Fig. 2, which illustrates the structure as a circuit.</title>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Formalization</title>
      <sec id="sec-3-1">
        <title>We carried out the formalization of the syntax and semantics</title>
        <p>of propositional logic, PB constraints, and the SWC
encoding in the Coq interactive theorem prover. As most of the
formalization is straightforward, we present only the details
of SWC encoding.</p>
      </sec>
      <sec id="sec-3-2">
        <title>We express the sequential weighted counter encoding in</title>
        <p>Coq as follows: let wf be a function wf : N 7! N, that assigns
weights to literals.</p>
        <p>Definition 1 (Formalization of SWC in Coq). The
sequential weighted counter for a normalized PB constraint
åin=1 wixi k, denoted by SWC(n; k; w f ), is a formula in
conjunctive normal form consisting of the following parts:
1. The first formula states the monotonicity of the sum, as
only positive non-zero weights are allowed. If the sum up
to the variable xi is at least j, then the sum to the next
variable xi+1 is at least j. Formally,
(:si 1; j _ si; j)
for all 2
i &lt; n and 1
j
k (F1)
2. The second formula states that the sum up to the variable
xi must be at least wi, if xi is satisfied by the considered
interpretation:
(:xi _ si; j)
for all 1
i &lt; n; and 1
j
wi + 1 (F2)
3. The third formula states that the sum up to the variable
xi increases by wi:
(:si 1; j _ :xi _ si; j+wi ) for all 2 i &lt; n; 1 j &lt; k wi + 1
(F3)
4. The fourth formula expresses when an interpretation
cannot be a model of the PB-constraint, i.e. when the
weighted sum exceeds k. Formally:
(:si 1;k+1 wi _ :xi)
for all 1
2 &lt; n
1
(F4)
Example 2 (SWC Encoding). Consider the PB-constraint
3x1 + 2x2 + 4x3 5, where w f is a function giving the
corresponding weights. Then SWC(3; 5; wf) = F1 ^ F2 ^ F3 ^ F4,
where</p>
        <p>F1 =
F2 =
F3 =
F4 =
(:s1;1 _ s2;1) ^ (:s1;2 _ s2;2) ^ (:s1;3 _ s2;3)^
(:s1;4 _ s2;4) ^ (:s1;5 _ s2;5)
(:x1 _ s1;1) ^ (:x1 _ s1;2) ^ (:x1 _ s1;3)^
(:x2 _ s2;1) ^ (:x2 _ s2;2)
(:s1;1 _ :x2 _ s2;3) ^ (:s1;2 _ :x2 _ s2;4)^
(:s1;3 _ :x2 _ s2;5)
(:s1;4 _ :x2) ^ (:s2;2 _ :x3)</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Specification</title>
      <p>Given a normalized PB constraint, its SWC encoding is
semantically equivalent only with respect to the original
variables, because we use auxiliary variables. Therefore, an
interpretation satisfying a PB-constraint must be extended to
a model over the SWC encoding while preserving the truth
value for the original PB variables. Formally, an
interpretation J is an extension of the interpretation I, if it agrees with
the truth values for all literals of the form xi for every i 2 N
(in contrast to variables of the form si; j).</p>
      <sec id="sec-4-1">
        <title>The specification of encodings consists of two parts: com</title>
        <p>pleteness and soundness. Completeness means that
whenever an interpretation satisfies the PB-constraint, it can
be extended to an interpretation that satisfies the formula.</p>
      </sec>
      <sec id="sec-4-2">
        <title>Soundness means that whenever an interpretation does not</title>
        <p>satisfy the PB-constraint, it falsifies the formula:</p>
      </sec>
      <sec id="sec-4-3">
        <title>Definition 2 (Encoding Specification). The formula F en</title>
        <p>codes a PB constraint å wixi k iff for every interpretation
I, we find the following:</p>
        <p>If I satisfies å wixi k, then there is an extension J of I
such that J is a model of F.</p>
        <p>If I does not satisfy å wixi k, then I is not a model of F.</p>
      </sec>
      <sec id="sec-4-4">
        <title>Theorem 1 (Main Theorem). The formula SWC(n; k; wf)</title>
        <p>encodes the å wixi k, if the weight function wf gives the
corresponding weights.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Proof of the Main Theorem</title>
      <sec id="sec-5-1">
        <title>Our proof of the main theorem is based on the informal proofs given in [13] and [26], and splits in two essential components:</title>
        <p>1. Soundness</p>
      </sec>
      <sec id="sec-5-2">
        <title>The proof is done by contradiction. It uses the follow</title>
        <p>ing intuition: suppose J is the model of SWC encoding.</p>
      </sec>
      <sec id="sec-5-3">
        <title>Therefore, its restriction I to the variables xi must also</title>
        <p>be a model of the PB-constraint. Otherwise, it would
violate one of the invariants, springing from the formulas</p>
      </sec>
      <sec id="sec-5-4">
        <title>F1 : : : F4, which essentially construct the SWC encoding.</title>
        <p>2. Completeness</p>
      </sec>
      <sec id="sec-5-5">
        <title>To prove completeness we need to show that the model</title>
      </sec>
      <sec id="sec-5-6">
        <title>I of PB formula can be extended a model J of the SWC specification.</title>
      </sec>
      <sec id="sec-5-7">
        <title>For that we need to take the PB model I and show that we</title>
        <p>can construct an interpretation, that assigns the variables
si; j to truth values, such that they satisfy the constraints</p>
      </sec>
      <sec id="sec-5-8">
        <title>F1; : : : ; F4. This can be done using following two prop</title>
        <p>erties: 1. the weighted sum is monotone, as long as he
weights are positive, and 2. the extended model J does
not change the initial variables xi.</p>
      </sec>
      <sec id="sec-5-9">
        <title>For further details see [13].</title>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Integration</title>
      <sec id="sec-6-1">
        <title>Our decision procedure works as follows: It accepts a vari</title>
        <p>ant of the input format used in the PB competitions and
evaluations, where a PB formula has to be given in normal form.</p>
      </sec>
      <sec id="sec-6-2">
        <title>We then compute the SWC encoding, which is done by a</title>
        <p>program that was automatically extracted from the Coq
theory. This is done for each occurring PB constraint. The
resulting formulas are then syntactically transformed into the</p>
      </sec>
      <sec id="sec-6-3">
        <title>DIMACS CNF format such that it can be given to the SAT</title>
        <p>solver.</p>
        <p>More precisely, at this step it is necessary to create unique
variables si; j for each PB constraint and preserve the original
names of xk variables. Notice that this syntactical
transformation was not verified using Coq. After running the
certifying SAT solver Lingeling, we check unsatisfiability results
with drat-trim.
pbsolver</p>
        <p>sat4j
verified
0
5000</p>
        <p>10000 15000
timeout in seconds
20000</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Experimental Evaluation</title>
      <sec id="sec-7-1">
        <title>We compare the verified PB solver with the two existing PB</title>
        <p>
          solvers sat4j and pbsolver. pbsolver is a MiniSAT-based
PB solver that combines several different encodings and
chooses the best among them [23]. sat4j is a Java library for
solving Boolean satisfaction and optimization problems and
can also handle PB formulas [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. For the evaluation, we
considered formulas from the PB competition 2016 that were
satisfaction problems containing only linear constraints and
small integers (in total 777 formulas). The experiment was
performed on a cluster of Intel Xeon E5-2670 CPUs with 8
cores and 20 MB level 3 cache that is shared by all cores.
        </p>
      </sec>
      <sec id="sec-7-2">
        <title>Each program was run on a single core, with a memory limit</title>
        <p>of 2.5GB and a time limit of 6 hours.</p>
        <p>A dedicated normalization procedure was applied before
running the verified Haskell encoder. If we do not consider
instances that timed out, the time needed for the dedicated
normalization procedure and our verified transformation is
in average 140 seconds, whereas the average run time of
the SAT solver and the DRAT checker is 624 seconds. The
solver sat4j solved 489 instances, and pbsolver as well as
the verified PB program solved 563 instances, and the
resulting run times are visualized in Fig. 3. The performance
gap of pbsolver over our verified approach can be explained
that we use a better SAT solver. From the data we conclude
that our verified PB solver is efficient enough to be useful in
practice.</p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>Discussion &amp; Conclusion</title>
      <sec id="sec-8-1">
        <title>The contribution of this work is the introduction of a routine</title>
        <p>for solving PB formulas with the SAT approach, i.e. we
encode PB constraints using a mechanically verified program
and afterwards using a SAT solver that emits unsatisfiability
proofs that can be independently checked. For the
transformation of PB constraints to conjunctive normal form the</p>
      </sec>
      <sec id="sec-8-2">
        <title>SWC encoding was used as it is highly-efficient in practice and easy to verify. The translation was formalized in the</title>
      </sec>
      <sec id="sec-8-3">
        <title>Coq proof assistant. We claim that we have developed a</title>
        <p>trustworthy decision procedure for checking satisfiability of</p>
      </sec>
      <sec id="sec-8-4">
        <title>PB formulas, assuming that the Coq proof assistant as well</title>
        <p>as the proof checker are correct.</p>
        <p>An alternative approach for developing a verified decision
procedure for the PB problem is to develop specialized
reasoning procedures, and show them to be correct, or to use
a certifying-based approach: both methods seem to be more
difficult than the presented approach. However, a major
disadvantage of our approach is that some PB problems need
specialized reasoning procedures, such as cardinality
reasoning such as the Fourier Motzkin procedure, and there are
no available certifying SAT solvers that apply these
methods.</p>
      </sec>
      <sec id="sec-8-5">
        <title>Our formalization of the problem contain specifications</title>
        <p>and proofs for the SWC and the sequential counter
encoding, which is optimized for cardinality constraints. For the</p>
      </sec>
      <sec id="sec-8-6">
        <title>SWC encoding, we splitted the proof into 46 lemmas, for</title>
        <p>the sequential counter encoding we used 94 lemmas. In
total, the project consists 3800 lines of code. In the process
of formalization and proofs, we did not observe flaws in the
published proofs. The system is available at:
https://iccl.inf.tu-dresden.de/web/VPB
We believe that the presented approach can easily be adapted
for several other applications, such as weighted maximum
satisfiability, planning, and answer-set programming. These
are widely used to model a large scope of problems,
therefore, the system that we developed might become useful to
produce verified proofs in multiple domains. We are also
working on the question how we can express cardinality
reasoning in the DRAT format to improve the performance of
the presented approach.</p>
      </sec>
      <sec id="sec-8-7">
        <title>Acknowledgements The authors thank the ZIH of TU</title>
      </sec>
      <sec id="sec-8-8">
        <title>Dresden for providing the computational resources to produce the experimental data for the empirical evaluation.</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Ignasi</given-names>
            <surname>Ab</surname>
          </string-name>
          ´ıo et al. “
          <article-title>BDDs for pseudo-Boolean constraints: revisited”</article-title>
          . In: SAT 2011. Ed.
          <article-title>by Karem A. Sakallah and Laurent Simon</article-title>
          . Vol.
          <volume>6695</volume>
          . LNCS. Heidelberg: Springer,
          <year>2011</year>
          , pp.
          <fpage>61</fpage>
          -
          <lpage>75</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Roberto</given-names>
            <surname>As</surname>
          </string-name>
          ´ın et al. “
          <article-title>Cardinality Networks and Their Applications”</article-title>
          . In: SAT 2009. Ed. by Oliver Kullmann. Heidelberg: Springer,
          <year>2009</year>
          , pp.
          <fpage>167</fpage>
          -
          <lpage>180</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Peter</given-names>
            <surname>Barth</surname>
          </string-name>
          .
          <article-title>A Davis-Putnam Based Enumeration Algorithm for Linear Pseudo-Boolean Optimization</article-title>
          .
          <source>Tech. rep. Max Plank Institute for Computer Science</source>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Daniel</given-names>
            <surname>Le</surname>
          </string-name>
          Berre and
          <string-name>
            <given-names>Anne</given-names>
            <surname>Parrain</surname>
          </string-name>
          . “
          <article-title>The Sat4j library, release 2.2”</article-title>
          .
          <source>In: JSAT 7</source>
          .2-
          <fpage>3</fpage>
          (
          <year>2010</year>
          ), pp.
          <fpage>59</fpage>
          -
          <lpage>6</lpage>
          . URL: http://jsat.ewi.tudelft.nl/content/ volume7/JSAT7_4_LeBerre.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Yves</given-names>
            <surname>Bertot</surname>
          </string-name>
          and Pierre Caste´ran.
          <source>Interactive Theorem Proving and Program Development</source>
          ,
          <source>Coq'Art: The Calculus of Inductive Constructions</source>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Biere</surname>
          </string-name>
          . “
          <article-title>Yet another Local Search Solver and Lingeling and Friends Entering the SAT Competition 2014”</article-title>
          . In: ed. by Anton Belov et al.
          <source>Vol. B-2014- 2</source>
          . Department of Computer Science Series of Publications B. University of Helsinki, Helsinki, Finland,
          <year>2014</year>
          , pp.
          <fpage>39</fpage>
          -
          <lpage>40</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Armin</given-names>
            <surname>Biere</surname>
          </string-name>
          et al. “
          <article-title>Symbolic Model Checking Using SAT Procedures instead of BDDs”</article-title>
          .
          <source>In: DAC</source>
          <year>1999</year>
          .
          <year>1999</year>
          , pp.
          <fpage>317</fpage>
          -
          <lpage>320</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Robert</given-names>
            <surname>Brummayer</surname>
          </string-name>
          , Florian Lonsing, and Armin Biere. “Automated Testing and
          <article-title>Debugging of SAT and QBF Solvers”</article-title>
          . English. In: SAT 2010. Ed.
          <article-title>by Ofer Strichman and Stefan Szeider</article-title>
          . Vol.
          <volume>6175</volume>
          . LNCS. Springer Berlin Heidelberg,
          <year>2010</year>
          , pp.
          <fpage>44</fpage>
          -
          <lpage>57</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Thierry</given-names>
            <surname>Coquand</surname>
          </string-name>
          and
          <article-title>Ge´rard Huet. “The calculus of constructions”</article-title>
          .
          <source>In: Information and Computation</source>
          <volume>76</volume>
          .
          <fpage>2</fpage>
          -
          <lpage>3</lpage>
          (
          <year>1988</year>
          ), pp.
          <fpage>95</fpage>
          -
          <lpage>120</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Niklas</given-names>
            <surname>Ee</surname>
          </string-name>
          <article-title>´n and Armin Biere. “Effective Preprocessing in SAT Through Variable and Clause Elimination”</article-title>
          . In: SAT 2005. Ed.
          <article-title>by Fahiem Bacchus and Toby Walsh</article-title>
          . Vol.
          <volume>3569</volume>
          . LNCS. Heidelberg: Springer,
          <year>2005</year>
          , pp.
          <fpage>61</fpage>
          -
          <lpage>75</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>Niklas</given-names>
            <surname>Ee</surname>
          </string-name>
          <article-title>´n and Niklas So¨rensson. “Translating pseudo-Boolean constraints into SAT”</article-title>
          .
          <source>In: JSAT 2</source>
          (
          <year>2006</year>
          ). Ed. by
          <source>Daniel Le Berre and Laurent Simon</source>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>26</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>Peter</given-names>
            <surname>Großmann</surname>
          </string-name>
          et al. “
          <article-title>Solving Periodic Event Scheduling Problems with SAT”</article-title>
          . In: IEA/AIE 2012. Ed.
          <article-title>by He Jiang et al</article-title>
          . Vol.
          <volume>7345</volume>
          . LNCS. Springer,
          <year>2012</year>
          , pp.
          <fpage>166</fpage>
          -
          <lpage>175</lpage>
          . ISBN:
          <fpage>978</fpage>
          -3-
          <fpage>642</fpage>
          -31086-7.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ho</surname>
          </string-name>
          ¨lldobler, N. Manthey, and
          <string-name>
            <given-names>P.</given-names>
            <surname>Steinke</surname>
          </string-name>
          .
          <article-title>“A Compact Encoding of Pseudo-Boolean Constraints into SAT”</article-title>
          .
          <source>In: Proc. 35th German Conf. on A.I. (KI</source>
          <year>2012</year>
          ). Ed. by
          <string-name>
            <given-names>B.</given-names>
            <surname>Glimm</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Kru</surname>
          </string-name>
          <article-title>¨ger</article-title>
          . Vol.
          <volume>7526</volume>
          . LNCS. Heidelberg: Springer,
          <year>2012</year>
          , pp.
          <fpage>107</fpage>
          -
          <lpage>118</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Matti</surname>
            <given-names>Ja</given-names>
          </string-name>
          <article-title>¨rvisalo, Armin Biere, and Marijn Heule. “Blocked Clause Elimination”</article-title>
          . In: TACAS 2010. Ed.
          <article-title>by Javier Esparza and Rupak Majumdar</article-title>
          . Vol.
          <volume>6015</volume>
          . LNCS. Heidelberg: Springer,
          <year>2010</year>
          , pp.
          <fpage>129</fpage>
          -
          <lpage>144</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Matti</surname>
            <given-names>Ja¨rvisalo</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marijn</surname>
            <given-names>J. H.</given-names>
          </string-name>
          <string-name>
            <surname>Heule</surname>
          </string-name>
          , and Armin Biere. “
          <article-title>Inprocessing rules”</article-title>
          .
          <source>In: IJCAR</source>
          <year>2012</year>
          . Ed. by Bernhard Gramlich,
          <string-name>
            <given-names>Dale</given-names>
            <surname>Miller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and Uli</given-names>
            <surname>Sattler</surname>
          </string-name>
          . Vol.
          <volume>7364</volume>
          . LNCS. Heidelberg: Springer,
          <year>2012</year>
          , pp.
          <fpage>355</fpage>
          -
          <lpage>370</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Henry</surname>
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Kautz</surname>
            and
            <given-names>Bart</given-names>
          </string-name>
          <string-name>
            <surname>Selman</surname>
          </string-name>
          . “
          <article-title>Planning as Satisfiability”</article-title>
          .
          <source>In: ECAI 1992. Ed. by Bernd Neumann</source>
          .
          <year>1992</year>
          , pp.
          <fpage>359</fpage>
          -
          <lpage>363</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>Oliver</given-names>
            <surname>Kullmann</surname>
          </string-name>
          . “
          <article-title>On a Generalization of Extended Resolution”</article-title>
          .
          <source>In: Discrete Applied Mathematics 96-97</source>
          (
          <year>1999</year>
          ), pp.
          <fpage>149</fpage>
          -
          <lpage>176</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>Ineˆs</given-names>
            <surname>Lynce</surname>
          </string-name>
          and Joa˜o
          <string-name>
            <given-names>P.</given-names>
            <surname>Marques-Silva</surname>
          </string-name>
          .
          <article-title>“ProbingBased Preprocessing Techniques for Propositional Satisfiability”</article-title>
          .
          <source>In: ICTAI</source>
          <year>2003</year>
          . Sacramento, California, USA: IEEE Computer Society,
          <year>2003</year>
          , pp.
          <fpage>105</fpage>
          -
          <lpage>110</lpage>
          . ISBN:
          <fpage>0</fpage>
          -
          <lpage>7695</lpage>
          -2038-3.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>