<!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 New Probabilistic Algorithm for Approximate Model Counting and Extensions for Numeric Domains ?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Cunjing Ge</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Feifei Ma</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tian Liu</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jian Zhang</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Xutong Ma</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Laboratory of Parallel Software and Computational Science, Institute of Software, Chinese Academy of Sciences</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>School of Electronics Engineering and Computer Science, Peking University</institution>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>State Key Laboratory of Computer Science, Institute of Software, Chinese Academy of Sciences</institution>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Technology Center of Software Engineering, Institute of Software, Chinese Academy of Sciences</institution>
        </aff>
        <aff id="aff4">
          <label>4</label>
          <institution>University of Chinese Academy of Sciences</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Constrained counting is important in domains ranging from artificial intelligence to software analysis. There are already a few approaches for counting models over various types of constraints. Recently, hashing-based approaches achieve success but still rely on solution enumeration. In the IJCAR version, a probabilistic approximate model counter is proposed, which is also a hashingbased universal framework, but with only satisfiability queries. A dynamic stopping criteria, for the algorithm, is presented, which has not been studied yet in previous works of hashing-based approaches. Although the algorithm lacks theoretical guarantee, it works well in practice. In this paper, we further extend our approach to SMT(LIA) formulas with a new encoding technique.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Constrained counting, the problem of counting the number of solutions for a set of
constraints, is important in theoretical computer science and artificial intelligence.
Its interesting applications in several fields include program analysis [
        <xref ref-type="bibr" rid="ref15 ref16 ref18 ref19 ref25 ref27">25, 18, 19, 15, 27,
16</xref>
        ], probabilistic inference [
        <xref ref-type="bibr" rid="ref11 ref28">28, 11</xref>
        ], planning [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] and privacy/confidentiality
verification [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. Constrained counting for propositional formulas is also called model
counting, to which probabilistic inference is easily reducible. However, model counting is
a canonical #P-complete problem, even for polynomial-time solvable problems like
2SAT [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ], thus it presents fascinating challenges for both theoreticians and practitioners.
      </p>
      <p>
        There are already a few approaches for counting solutions over propositional logic
formulas and SMT(BV) formulas. Recently, hashing-based approximate counting
achieves both strong theoretical guarantees and good scalability [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. The use of universal
hash functions in counting problems began in [
        <xref ref-type="bibr" rid="ref30 ref32">30, 32</xref>
        ], but the resulting algorithm scaled
poorly in practice. A scalable approximate counter ApproxMC in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] scales to large
problem instances, while preserving rigorous approximation guarantees. ApproxMC
has been extended to finite-domain discrete integration, with applications to
probabilistic inference [
        <xref ref-type="bibr" rid="ref14 ref3 ref6">14, 6, 3</xref>
        ]. It was improved by designing efficient universal hash functions
[
        <xref ref-type="bibr" rid="ref22 ref7">22, 7</xref>
        ] and reducing the use of NP-oracle calls from linear to logarithmic [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>
        The basic idea in ApproxMC is to estimate the model count by randomly and
iteratively cutting the whole space down to a small “enough” cell, using hash functions,
and sampling it. The total model count is estimated by a multiplication of the number
of solutions in this cell and the ratio of the whole space to the small cell. To determine
the size of the small cell, which is essentially a small-scale model counting problem
with the model counts bounded by some thresholds, a model enumeration in the cell
is adopted. In previous works, the enumeration query was handled by transforming it
into a series of satisfiability queries, which is much more time-consuming than a single
satisfiability query. An algorithm called MBound [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] only invokes satisfiability query
once for each cut. Its model count is determined with high precision by the number of
cuts down to the boundary of being unsatisfiable. However, this property is not strong
enough to give rigorous guarantees, and MBound only returns an approximation of
upper or lower bound of the model count.
      </p>
      <p>In the IJCAR version, a hashing-based approximate counting algorithm, with only
satisfiability query, is proposed. Dynamic stopping criterion for the algorithm to
terminate, once meeting the criterion of accuracy, is presented, which has not been proposed
yet in previous works of hashing-based approaches. Theoretical insights over the
efficiency of a prevalent heuristic strategy called leap-frogging are also provided.
Prototype tools for propositional logic formulas, SMT(BV) formulas are implemented. An
extensive evaluation on a suite of benchmarks demonstrates that (i) the approach
significantly outperforms the state-of-the-art approximate model counters, including a counter
designed for SMT(BV) formulas, and (ii) the dynamic stopping criterion is promising.</p>
      <p>In this paper, we further present a new technique to encode XOR-based hash
function over numeric domains. In addition, our approach is a general framework. Thus we
managed to extend it to numeric domains, e.g., SMT(LIA) formulas. A prototype tool
for SMT(LIA) formulas is also implemented.</p>
      <p>The rest of this paper is organized as follows. Preliminary material is in Section 2,
related works in Section 3, the algorithm in Section 4, extensions for SMT(LIA)
formulas in Section 5, analysis in Section 6, experimental results in Section 7, and finally,
concluding remarks in Section 8.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Preliminaries</title>
      <p>
        Let F (x) denote a propositional logic formula on n variables x = (x1; : : : ; xn). Let S
and SF denote the whole space (the space of assignments) and the solution space of F ,
respectively. Let #F denote the cardinality of SF , i.e. the number of solutions of F .
( ; )-bound To count #F , an ( ; ) approximation algorithm, &gt; 0 and &gt; 0, is
an algorithm which on every input formula F , outputs a number Y~ such that Pr[(1 +
) 1#F Y~ (1 + )#F ] 1 . Such an algorithm is called a ( ; )-counter and
the bound is called a ( ; )-bound [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ].
      </p>
      <p>Hash Function Let HF be a family of XOR-based bit-level hash functions on the
variables of a formula F . Each hash function H 2 HF is of the form H(x) = a0 Ln
i=1 aixi,
where a0; : : : ; an are Boolean constants. In the hashing procedure Hashing(F), a
function H 2 HF is generated by independently and randomly choosing ais from a
uniform distribution. Thus for an assignment , it holds that PrH2HF (H( ) = true) = 21 .
Given a formula F , let Fi denote a hashed formula F ^H1 ^ ^Hi, where H1; : : : ; Hi
are independently generated by the hashing procedure.</p>
      <p>Satisfiability Query Let Solving(F) denote the satisfiability query of a formula F .
With a target formula F as input, the satisfiability of F is returned by Solving(F).
Enumeration Query Let Counting(F, p) denote the bounded solution
enumeration query. With a constraint formula F and a threshold p (p 2) as inputs, a number s
is returned such that s = min(p 1; #F ). Specifically, 0 is returned for unsatisfiable
F , or p = 1 which is meaningless.</p>
      <p>SMT(BV) Formula SMT(BV) formulas are quantifier-free and fixed-size that combine
propositional logic formulas with constraints of bit-vector theory. For example, :(x +
y = 0) _ (x = y &lt;&lt; 1), where x and y are bit-vector variables, &lt;&lt; is the shift-left
operator. It can be regarded as a propositional logic formula :A _ B that combines
bitvector constraints A (x + y = 0) and B (x = y &lt;&lt; 1). To apply hash functions
to an SMT(BV) formula, a bit-vector is bit-blasted to a set of Boolean variables.
SMT(LIA) Formula Similar to SMT(BV) formulas, SMT(LIA) formulas combine
propositional logic formulas with constraints of linear arithmetic theory (i.e., linear
inequalities). For example, :(x + y 0) _ (x &lt; y 1), where x and y are integer
variables. It can be regarded as a propositional logic formula :A _ B that combines
linear inequalities A (x + y 0) and B (x &lt; y 1). To apply hash functions to
an SMT(LIA) formula, we introduce a new encoding technique in Section 5.
3</p>
      <p>
        Related Works
[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] showed that almost uniform sampling from propositional constraints, a closely
related problem to constrained counting, is solvable in probabilistic polynomial time with
an NP oracle. Building on this, [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] proposed the first scalable approximate model
counting algorithm ApproxMC for propositional formulas. ApproxMC is based on a family
of 2-universal bit-level hash functions that compute XOR of randomly chosen
propositional variables. In the current work, this family of hash functions is adopted, which
was shown to be 3-independent in [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], and is revealed to potentially possess better
properties than expected by the experimental results and the theoretical analysis in the
current work.
      </p>
      <p>
        The sketch framework of ApproxMC [
        <xref ref-type="bibr" rid="ref12 ref9">9, 12</xref>
        ] is listed as Algorithm 1. Its inputs are
a formula F and two accuracy parameters T and pivot, where T determines the number
of times ApproxMCCore is invoked, and pivot determines the threshold of the
enumeration query. The function ApproxMCCore starts from the formula F0, iteratively
calls Counting and Hashing over each Fi, to cut the space (cell) of all models of
F0 using random hash functions, until the count of Fi is no larger than pivot, then
Algorithm 1
1: function APPROXMC(F , T , pivot)
2: for 1 to T do
3: c ApproxMCCore(F , pivot)
4: if (c 6= 0) then AddToList(C, c)
5: end for
6: return FindMedian(C)
7: end function
8: function APPROXMCCORE(F , pivot)
9: F0 F
10: for i
11: s
12: if (0
13: Hi+1
14: Fi+1
15: end for
16: end function
0 to 1 do
Counting(Fi, pivot + 1)
s pivot) then return 2is
      </p>
      <p>Hashing(F )</p>
      <p>
        Fi ^ Hi+1
breaks out of the loop and adds the approximation 2is into list C. The main procedure
ApproxMC repeatedly invokes ApproxMCCore and collects the returned values, at
last returning the median number of list C. The general algorithm in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] is similar to
Algorithm 1, but cuts the cell with dynamically determined proportion instead of the
constant 12 , due to the word-level hash functions. [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] improves ApproxMCCore via
binary search to reduce the number of enumeration queries from linear to logarithmic.
This binary search improvement is orthogonal to our approach.
      </p>
      <p>
        A recent work [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] considered a special family of shorter XOR-constraints to
improve the efficiency of SAT solving while preserving rigourous guarantee. This
improvement of hash functions is also orthogonal to our approach as we use hash functions
and SAT solving as black boxes. However, it is unknown whether there exist similar
theoretical results like [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
4
      </p>
    </sec>
    <sec id="sec-3">
      <title>Algorithm</title>
      <p>In this section, a new hashing-based algorithm for approximate model counting, with
only satisfiability queries, will be proposed, building on an assumption of a probabilistic
approximate correlation between the model count and the probability of the hashed
formula being unsatisfiable.</p>
      <p>Let Fd = F ^ H1 ^ ^ Hd be a hashed formula resulted by iteratively hashing
d times independently over a formula F . Fd is unsatisfiable if and only if no solution
of F satisfies Fd, thus PrFd (Fd is unsat) = PrFd (Fd( ) = f alse; 2 SF ). Assume
we have</p>
      <p>Pr(Fd is unsat)
Fd
(1
2 d)#F :
(1)
Then based on Equation (1), an approximation of #F is achieved by taking
logarithm on the value of PrFd (Fd is unsat), which is estimated in turn by sampling Fd.
This is the general idea of our approach. The pseudo-code is presented in Algorithm 2.
The inputs are the target formula F and a constant T which determines the number
of times GetDepth invoked. GetDepth calls Solving and Hashing repeatedly
until an unsatisfiable formula Fdepth is encountered, and returns the depth. Every time
GetDepth returns a depth, the value of C[i] is increased, for all i &lt; depth. At line
9, the algorithm picks a number d such that C[d] is close to T =2, since the error
estimation fails when C[d]=T is close to 0 or 1. The final result is returned by the formula
log1 (1=2)d counter at line 11.</p>
      <p>T
Algorithm 2 Satisfiability Testing based Approximate Counter (STAC)</p>
      <p>Note that our approach is based on Equation (1) which is only an assumption. In
Section 6, we provide theoretical analysis, including the bound of the approximation
and the correctness of algorithm, based on the hypothesis. Then in Section 7,
experimental results on an extensive set of benchmarks show that the approximation given by
our approach fits the bound well. It indicates that Equation (1) is probably true as it is a
reasonable explanation to the positive results.</p>
      <p>Dynamic Stopping Criterion The essence of Algorithm 2 is a randomized sampler over
a binomial distribution. The number of samples is determined by the value of T , which
is pre-computed for a given ( ; )-bound, and we loosen the value of T to meet the
guarantee in theoretical analysis. However, it usually does not loop T times in practice.
A variation with dynamic stopping criterion is presented in Algorithm 3.</p>
      <p>
        Line 2 to 7 is the same as Algorithm 2, still setting T as a stopping rule and
terminating whenever t = T . Line 8 to 16 is the key part of this variation, calculating
Algorithm 3 STAC with Dynamic Stopping Criterion
1: function STAC DSC(F , T , , )
2: initialize C[i]s with zeros
3: for t 1 to T do
4: depth GetDepth(F )
5: for i 0 to depth 1 do
6: C[i] C[i] + 1
7: end for
8: for each d that C[d] &gt; 0 do
9: q t Ct[d]
10: M log1 2 d q
11: U log1 2 d (q z1 q q(1t q) )
12: L log1 2 d (q + z1 q q(1t q) )
13: if U &lt; (1 + )M and L &gt; (1 + ) 1M then
14: return M
15: end if
16: end for
17: end for
18: end function
the binomial proportion confidence interval [L; U ] of an intermediate result M for each
cycle. A commonly used formula q z1 q q(1t q) [
        <xref ref-type="bibr" rid="ref34 ref4">4, 34</xref>
        ] is adopted, which is
justified by the central limit theorem to compute the 1 confidence interval. However, it
becomes invalid for small sample size or proportion close to 0 or 1. In practice, we also
considered some improvements, e.g., Wilson score interval [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ]. The exact count #F
lies in the interval [L; U ] with probability 1 . Combining the inequalities presented
in line 13, the interval [(1 + ) 1M; (1 + )M ] is the ( ; )-bound (if the assumption
of Formula 1 holds). So the algorithm terminates when the condition in line 13 comes
true. The time complexity of Algorithm 3 is still the same as the original algorithm,
though it usually terminates earlier.
      </p>
      <p>Satisfiability And Enumeration Query The bounded counting can be done by
negating solution and calling SAT oracle repeatedly, which is employed by ApproxMC. In
practice, enumerating solutions in this way is not very efficient. In evaluation section,
experimental results show that the average number of SAT calls of ApproxMC is
usually 20 to 30 times to STAC. It may also cause problems while extending to other kinds of
formulas. For example, for linear integer arithmetic formula, inserting solution negation
clauses will exponentially increase the number of calls of LIP solver.</p>
      <p>
        Leap-frogging Strategy Recall that GetDepth is invoked T times with the same
arguments, and the loop of line 15 to 20 in the pseudo-code of GetDepth in Algorithm 2
is time consuming for large i. A heuristic called leap-frogging to overcome this
bottleneck was proposed in [
        <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
        ]. Their experiments indicate that this strategy is extremely
efficient in practice. The average depth d of each invocation of GetDepth is recorded.
In all subsequent invocations, the loop starts by initializing i to d k o set, where
k 1. Note that if Fi is unsatisfiable, the algorithm repeatedly decreases i by
increasing k and check the satisfiability of the new Fi, until a proper initialization i is found for
satisfiable Fi. In practice, the constant o set is usually set to 5. Theorem 3 in Section 6
shows that the depth computed by GetDepth lies in an interval [d; d + 7] with
probability over 90%. So it suffices to invoke Solving in constant time since the second
iteration.
5
      </p>
    </sec>
    <sec id="sec-4">
      <title>Extensions to SMT(LIA) Formulas</title>
      <p>Recall that we employ a family of XOR-based bit-level hash functions on the variables
of a formula F . Each such hash function H 2 HF is of the form H(b) = a0 Ln
i=1 aibi,
where a0; : : : ; an are Boolean constants. In the hashing procedure, a function H 2 HF
is generated by independently and randomly choosing ais from a uniform distribution.
Thus for an assignment , it holds that PrH2HF H( ) = true = 12 . To extend the
hash functions to numeric domains, we still have to maintain such probability property
in order to fit our approach.</p>
      <p>If we represent a Boolean variable via integers, i.e., 0 is false, 1 is true,
intuitively, the XOR hash function a0 Lin=1 aibi can be represented by ( 0 + Pin=1 i xi)
mod 2, where 0; : : : ; n are f0; 1g-constants and x1; : : : ; xn are f0; 1g-variables.
Then we extend the domain from f0; 1g to integers directly. Consider a formula F
over integer domain. Let IF denote the family of hash functions for the integer domain
and each I 2 IF is of the form</p>
      <p>n
I(x) = ( 0 + X
i=1
i
xi)
mod 2:
It is easy to see that PrI2IF I( ) = true = 12 is hold for any assignment of F as
well.</p>
      <p>To extend our approach to the integer domain, it is necessary to adapt the new
integer hash function to satisfiability query. However, in practice, the modulo operation
is not supported in many satisfiability checkers, e.g., SMT(LIA) solvers. We introduce
a new technique to encode the modulo operation via arithmetic operations. Given a
simple constraint that contains a modulo operation,
f (x)</p>
      <p>mod m = n;
f (x) = m
y + n:
where f (x) is a formula over variables x, m and n are constants. We introduce a new
integer variable y. Then consider the following constraint
Obviously, Equation 2 is satisfiable if and only if Equation 3 is satisfiable. If f (x) is a
linear arithmetic formula, Equation 3 is able to be solved by linear arithmetic solvers.</p>
      <p>In conclusion, we transform the hash function constraint ( 0 + Pin=1 i xi)
mod 2 = 1 into a linear arithmetic constraint</p>
      <p>n
( 0 + X i xi) = 2 y + 1:</p>
    </sec>
    <sec id="sec-5">
      <title>Analysis</title>
      <p>It enables the extension of our approach to SMT(LIA) formulas. A prototype tool for
SMT(LIA) formulas is also implemented.</p>
      <p>In this section, we assume Equation (1) holds. Based on this assumption, theoretical
results on the error estimation of our approach are presented. For lack of space, we
omit proofs in this section.</p>
      <p>Recall that in Algorithm 2, #F is approximated by a value log1 2 d counter . Let qd
T
denote the value of (1 2 d)#F . We obtain that Pr(Fd is unsat) = qd for a randomly
generated formula Fd. This is justified by Equations (1). Since the ratio counter in
T
Algorithm 2 is a proportion of successes in a Bernoulli trial process, which is used
to estimate the value of qd. Then counter is a random variable following a binomial
distribution B(T; qd).</p>
      <sec id="sec-5-1">
        <title>Theorem 1. Let z1</title>
        <p>be the 1</p>
        <p>quantile of N(0; 1) and
T = max
( z1
d 2qd(1
qd)
)2e; d(</p>
        <p>z1
2(qd(1+ ) 1
qd)</p>
        <p>!
)2)e :
Then Pr[ 1#+F
log1 2 d counter</p>
        <p>T
(1 + )#F ]
1
.</p>
        <p>Proof. By above discussions, the ratio counter is the proportion of successes in a
Ber</p>
        <p>T
noulli trial process which follows the distribution B(T; qd). Then we use the
approximate formula of a binomial proportion confidence interval qd z1 q qd(1T qd) , i.e.,
Pr[qd z1 q qd(1T qd) couTnter qd + z1 q qd(1T qd) ] 1 . The log function
is monotone, so we only have to consider the following two inequalities:
We first consider Equation (5). By substituting log1 2 d qd for #F , we have
(1 + )#F;
qd)</p>
        <p>qd)
T
qd):
1, we have pqd(1
12 . Therefore, T = d( 2qdz(11 qd) )2e</p>
        <p>Theorem 2. If #F &gt; 5, then there exists a proper integer value of d such that qd 2
[0:4; 0:65].</p>
        <p>Proof. Let x denote the value of qd = (1</p>
        <p>1
( 12 + x #2F )#F . Consider the derivation
21d )#F , then we have (1
2d1+1 )#F =
1
d#dF ( 21 + x #2F )#F = (</p>
        <p>Let x = 0:4, then (1 2d1+1 )#F ( 12 + 0:24 51 )5 0:65. Since (1 210 )#F = 0 and
limd!+1(1 21d )#F = 1 and (1 21d )#F is continuous with respect to d, we consider
the circumstances close to the interval [0:4; 0:65]. Assume there exists an integer such
that (1 21 )#F &lt; 0:4 and (1 2 1+1 )#F &gt; 0:65. According to the intermediate value
theorem, we can find a value e &gt; 0 such that (1 2 1+e )#F = 0:4. Obviously, we have
(1 2 +1e+1 )#F 0:65 which is contrary with the monotone decreasing property.</p>
        <p>From Theorem 2 and Lemma 1 and 2, it suffices to consider the results of
Equation (4) when qd = 0:4 and qd = 0:65. For example, T = 22 for = 0:8 and = 0:2,
T = 998 for = 0:1 and = 0:1, etc. We therefore pre-computed a table of the value
of T . The proof of next theorem is omitted.</p>
        <p>Theorem 3. There exists an integer d such that qd &lt; 0:05 and qd+7 &gt; 0:95.</p>
        <p>Let depth denote the result of GetDepth in Algorithm 2. Then Fd is unsatisfiable
only if d depth. Theorem 3 shows that there exists an integer d such that Pr(depth &lt;
d) &lt; 0:05 and Pr(depth &lt; d + 7) &gt; 0:95, i.e., Pr(d depth d + 7) &gt; 0:9. So in
most cases, the value of depth lies in an interval [d; d + 7]. Also, it is easy to see that
log2 #F lies in this interval as well. The following theorem is obvious now.
Theorem 4. Algorithm 2 runs in time linear in log2 #F relative to an NP-oracle.
7</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Evaluation</title>
      <p>
        To evaluate the performance and effectiveness of our approach, two prototype
implementations STAC CNF and STAC BV with dynamic stopping criterion for
propositional logic formulas and SMT(BV) formulas are built respectively. We considered a wide
range of benchmarks from different domains: grid networks, plan recognition,
DQMR networks, Langford sequences, circuit synthesis, random 3-CNF, logistics problems
and program synthesis [
        <xref ref-type="bibr" rid="ref24 ref29 ref7 ref9">29, 24, 9, 7</xref>
        ] 6. For lack of space, we only list a part of results
here. All our experiments were conducted on a single core of an Intel Xeon 2.40GHz
(16 cores) machine with 32GB memory and CentOS6.5 operating system.
7.1
      </p>
      <sec id="sec-6-1">
        <title>Quality of Approximation</title>
        <p>Recall that our approach is based on Equation (1) which has not been proved. So we
would like to see whether the approximation fits the bound. We experimented 100 times
on each instance.</p>
        <p>In Table 1, column 1 gives the instance name, column 2 the number of Boolean
variables n, column 3 the exact counts #F , and column 4 the interval [1:8 1#F; 1:8#F ].
The frequencies of approximations that lie in the interval [1:8 1#F; 1:8#F ] in 100
times of experiments are presented in column 5. The average time consumptions,
average number of iterations, and average number of SAT query invocations are presented
in column 6, 7 and 8 respectively, which also indicate the advantages of our approach.</p>
        <p>Under the dynamic stopping criterion, the counts returned by our approach should
lie in an interval [1:8 1#F; 1:8#F ] with probability 80% for = 0:8 and = 0:2.
The statistical results in Table 1 show that the frequencies are around 80 for 100-times
experiments which fit the 80% probability. The average number of iterations T listed
in Table 1 is smaller than the loop termination criterion T = 22 which is obtained via
Formula 4, indicating that the dynamic stopping technique significantly improves the
6 Our tools STAC CNF and STAC BV and the suite of benchmarks are available at
https://github.com/bearben/STAC</p>
        <p>We considered another pair of parameters = 0:2; = 0:1. Then the interval
should be [1:2 1#F; 1:2#F ] and the probability should be 90%. Table 2 shows the
results on such parameter setting. The frequencies that the approximation lies in interval
[1:2 1#F; 1:2#F ] are all around or over 90 which fits the 90% probability.</p>
        <p>We also conducted 100-times experiments on SMT(BV) problems and the results
show that STAC BV is also promising. Table 3 similarly shows the results of 100-times
experiments on STAC BV. Its column 2 gives the sum of widths of all bit-vector
variefficiency. In addition, the values of T appear to be stable for different instances, hinting
that there exists a constant upper bound on T which is irrelevant to instances.</p>
        <p>
          Intuitively, our approach may start to fail on “loose” formulas, i.e., with an
“infinitesimal” fraction of non-models. Instance special-1 and special-3 are such “loose”
formulas where special-1 has 220 models with only 20 variables and special-3 has
225 1 models with 25 variables. Instance special-2 is another extreme case which
only has one model. The results in Table 1 demonstrate that STAC CNF also works fine
on these extreme cases.
ables (Boolean variable is counted as a bit-vector of width 1) instead. The statistical
results demonstrate that the dynamic stopping criterion is also promising on SMT(BV)
problems.
We compared our tools with ApproxMC2 [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] and SMTApproxMC [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] which are
hashing-based ( ; )-counters. Both STAC CNF and ApproxMC2 use
CryptoMiniSAT [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ], an efficient SAT solver designed for XOR clauses. STAC BV and
SMTApproxMC use the state-of-the-art SMT(BV) solver Boolector [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
        </p>
        <p>
          We first conducted experiments with = 0:8; = 0:2 and 8 hours timeout which
are also used in evaluation in previous works [
          <xref ref-type="bibr" rid="ref10 ref7">10, 7</xref>
          ]. Figure 1 presents a comparison
on performance between STAC CNF and ApproxMC2. Each point represents an
instance, whose x-coordinate and y-coordinate are the running times of STAC CNF and
ApproxMC2 on this instance, respectively. The figure is in logarithmic coordinates and
demonstrates that STAC CNF outperforms ApprxMC2 by about one order of
magnitude. Figure 2 presents a similar comparison on performance between STAC BV and
SMTApproxMC, showing that STAC BV outperforms SMTApproxMC by one or two
orders of magnitude. Furthermore, the advantage enlarges as the scale grows.
        </p>
        <p>Table 4 presents more experimental results with ( ; ) parameters other than ( =
0:8; = 0:2). Nine pairs of parameters were experimented. “Time Ratio” represents the
ratio of the running times of ApproxMC2 to STAC CNF. “#Calls Ratio” represents the
ratio of the number of SAT calls of ApproxMC2 to STAC CNF. The results show that
ApproxMC2 gains advantage as decreases and STAC CNF gains advantage as
decreases. On the whole, ApproxMC2 gains advantage when and both decrease. Note
that the numbers of SAT calls represent the complexity of both algorithms. In Table 4,
#Calls Ratio is more stable than Time Ratio among different pairs of parameters and
also different instances. It indicates that the difficulty of NP-oracle is also an important
factor of running time performance.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Conclusion</title>
      <p>In this paper, we propose a new hashing-based approximate algorithm with dynamic
stopping criterion. Our approach has two key strengths: it requires only one
satisfiability query for each cut, and it terminates once meeting the criterion of accuracy. We
implemented prototype tools for propositional logic formulas and SMT(BV)
formulas. Extensive experiments demonstrate that our approach is efficient and promising.
Despite that we are unable to prove the correctness of Equation (1), the experimental
results fit it quite well. This phenomenon might be caused by some hidden properties
of the hash functions. To fully understand these functions and their correlation with the
model count of the hashed formula might be an interesting problem to the community.
In addition, extending the idea in this paper to count solutions of other formulas is also
a direction of future research.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>D.</given-names>
            <surname>Achlioptas</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Theodoropoulos</surname>
          </string-name>
          .
          <article-title>Probabilistic model counting with short xors</article-title>
          .
          <source>In Proc. of SAT</source>
          , pages
          <fpage>3</fpage>
          -
          <lpage>19</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>M.</given-names>
            <surname>Bellare</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Goldreich</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.</given-names>
            <surname>Petrank</surname>
          </string-name>
          .
          <article-title>Uniform generation of NP-witnesses using an NP-oracle</article-title>
          .
          <source>Inf. Comput.</source>
          ,
          <volume>163</volume>
          (
          <issue>2</issue>
          ):
          <fpage>510</fpage>
          -
          <lpage>526</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>V.</given-names>
            <surname>Belle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. V.</given-names>
            <surname>Broeck</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Passerini</surname>
          </string-name>
          .
          <article-title>Hashing-based approximate probabilistic inference in hybrid domains</article-title>
          .
          <source>In Proc. of UAI</source>
          , pages
          <fpage>141</fpage>
          -
          <lpage>150</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>4. L. D. Brown</surname>
          </string-name>
          , T. T. Cai,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Dasgupta</surname>
          </string-name>
          .
          <article-title>Interval estimation for a binomial proportion</article-title>
          .
          <source>Statistical Science</source>
          ,
          <volume>16</volume>
          (
          <issue>2</issue>
          ):
          <fpage>101</fpage>
          -
          <lpage>133</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>R.</given-names>
            <surname>Brummayer</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Biere</surname>
          </string-name>
          . Boolector:
          <article-title>An efficient SMT solver for bit-vectors and arrays</article-title>
          .
          <source>In Proc. of TACAS</source>
          , pages
          <fpage>174</fpage>
          -
          <lpage>177</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>S.</given-names>
            <surname>Chakraborty</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. J.</given-names>
            <surname>Fremont</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. S.</given-names>
            <surname>Meel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. A.</given-names>
            <surname>Seshia</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Vardi</surname>
          </string-name>
          .
          <article-title>Distribution-aware sampling and weighted model counting for SAT</article-title>
          .
          <source>In Proc of AAAI</source>
          , pages
          <fpage>1722</fpage>
          -
          <lpage>1730</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>S.</given-names>
            <surname>Chakraborty</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. S.</given-names>
            <surname>Meel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Mistry</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Vardi</surname>
          </string-name>
          .
          <article-title>Approximate probabilistic inference via word-level counting</article-title>
          .
          <source>In Proc. of AAAI</source>
          , pages
          <fpage>3218</fpage>
          -
          <lpage>3224</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>S.</given-names>
            <surname>Chakraborty</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. S.</given-names>
            <surname>Meel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Vardi</surname>
          </string-name>
          .
          <article-title>A scalable and nearly uniform generator of SAT witnesses</article-title>
          .
          <source>In Proc. of CAV</source>
          , pages
          <fpage>608</fpage>
          -
          <lpage>623</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>S.</given-names>
            <surname>Chakraborty</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. S.</given-names>
            <surname>Meel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Vardi</surname>
          </string-name>
          .
          <article-title>A scalable approximate model counter</article-title>
          .
          <source>In Proc. of CP</source>
          , pages
          <fpage>200</fpage>
          -
          <lpage>216</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>S.</given-names>
            <surname>Chakraborty</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. S.</given-names>
            <surname>Meel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Vardi</surname>
          </string-name>
          .
          <article-title>Algorithmic improvements in approximate counting for probabilistic inference: From linear to logarithmic SAT calls</article-title>
          .
          <source>In Proc. of IJCAI</source>
          , pages
          <fpage>3569</fpage>
          -
          <lpage>3576</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>M.</given-names>
            <surname>Chavira</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Darwiche</surname>
          </string-name>
          .
          <article-title>On probabilistic inference by weighted model counting</article-title>
          .
          <source>Artif</source>
          . Intell.,
          <volume>172</volume>
          (
          <issue>6-7</issue>
          ):
          <fpage>772</fpage>
          -
          <lpage>799</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>D.</given-names>
            <surname>Chistikov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Dimitrova</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Majumdar</surname>
          </string-name>
          .
          <article-title>Approximate counting in SMT and value estimation for probabilistic programs</article-title>
          .
          <source>In Proc. of TACAS</source>
          , pages
          <fpage>320</fpage>
          -
          <lpage>334</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>C.</given-names>
            <surname>Domshlak</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Hoffmann</surname>
          </string-name>
          .
          <article-title>Probabilistic planning via heuristic forward search and weighted model counting</article-title>
          .
          <source>J. Artif. Intell. Res. (JAIR)</source>
          ,
          <volume>30</volume>
          :
          <fpage>565</fpage>
          -
          <lpage>620</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>S.</given-names>
            <surname>Ermon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. P.</given-names>
            <surname>Gomes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sabharwal</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Selman</surname>
          </string-name>
          .
          <article-title>Embed and project: Discrete sampling with universal hashing</article-title>
          .
          <source>In Advances in Neural Information Processing Systems</source>
          <volume>26</volume>
          , pages
          <fpage>2085</fpage>
          -
          <lpage>2093</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>A.</given-names>
            <surname>Filieri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. S.</given-names>
            <surname>Pasareanu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.</given-names>
            <surname>Visser</surname>
          </string-name>
          .
          <article-title>Reliability analysis in symbolic pathfinder: A brief summary</article-title>
          .
          <source>In Proc. of ICSE</source>
          , pages
          <fpage>39</fpage>
          -
          <lpage>40</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>A.</given-names>
            <surname>Filieri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. S.</given-names>
            <surname>Pasareanu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Yang</surname>
          </string-name>
          .
          <article-title>Quantification of software changes through probabilistic symbolic execution (N)</article-title>
          .
          <source>In Proc. of ASE</source>
          , pages
          <fpage>703</fpage>
          -
          <lpage>708</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>M.</given-names>
            <surname>Fredrikson</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Jha</surname>
          </string-name>
          .
          <article-title>Satisfiability modulo counting: a new approach for analyzing privacy properties</article-title>
          .
          <source>In Proc. of CSL-LICS</source>
          , pages
          <volume>42</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>42</lpage>
          :
          <fpage>10</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>J. Geldenhuys</surname>
            ,
            <given-names>M. B.</given-names>
          </string-name>
          <string-name>
            <surname>Dwyer</surname>
            , and
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Visser</surname>
          </string-name>
          .
          <article-title>Probabilistic symbolic execution</article-title>
          .
          <source>In Proc. of ISSTA</source>
          , pages
          <fpage>166</fpage>
          -
          <lpage>176</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>K.</given-names>
            <surname>Gleissenthall</surname>
          </string-name>
          ,
          <string-name>
            <surname>B.</surname>
          </string-name>
          <article-title>Ko¨pf, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Rybalchenko</surname>
          </string-name>
          .
          <article-title>Symbolic polytopes for quantitative interpolation and verification</article-title>
          .
          <source>In Proc. of CAV</source>
          , pages
          <fpage>178</fpage>
          -
          <lpage>194</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>C. P. Gomes</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Sabharwal</surname>
            , and
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Selman</surname>
          </string-name>
          .
          <article-title>Model counting: A new strategy for obtaining good bounds</article-title>
          .
          <source>In Proc. of AAAI</source>
          , pages
          <fpage>54</fpage>
          -
          <lpage>61</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>C. P. Gomes</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Sabharwal</surname>
            , and
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Selman</surname>
          </string-name>
          .
          <article-title>Near-uniform sampling of combinatorial spaces using XOR constraints</article-title>
          .
          <source>In Advances in Neural Information Processing Systems</source>
          <volume>19</volume>
          , pages
          <fpage>481</fpage>
          -
          <lpage>488</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <given-names>A.</given-names>
            <surname>Ivrii</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Malik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. S.</given-names>
            <surname>Meel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Vardi</surname>
          </string-name>
          .
          <article-title>On computing minimal independent support and its applications to sampling and counting</article-title>
          .
          <source>Constraints</source>
          ,
          <volume>21</volume>
          (
          <issue>1</issue>
          ):
          <fpage>41</fpage>
          -
          <lpage>58</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>R. M. Karp</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Luby</surname>
            , and
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Madras</surname>
          </string-name>
          .
          <article-title>Monte-carlo approximation algorithms for enumeration problems</article-title>
          .
          <source>J. Algorithms</source>
          ,
          <volume>10</volume>
          (
          <issue>3</issue>
          ):
          <fpage>429</fpage>
          -
          <lpage>448</lpage>
          ,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. L.
          <string-name>
            <surname>Kroc</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Sabharwal</surname>
            , and
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Selman</surname>
          </string-name>
          .
          <article-title>Leveraging belief propagation, backtrack search, and statistics for model counting</article-title>
          .
          <source>Annals of OR</source>
          ,
          <volume>184</volume>
          (
          <issue>1</issue>
          ):
          <fpage>209</fpage>
          -
          <lpage>231</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25. S. Liu and
          <string-name>
            <surname>J. Zhang.</surname>
          </string-name>
          <article-title>Program analysis: from qualitative analysis to quantitative analysis</article-title>
          .
          <source>In Proc. of ICSE</source>
          , pages
          <fpage>956</fpage>
          -
          <lpage>959</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>K. S. Meel</surname>
            ,
            <given-names>M. Y.</given-names>
          </string-name>
          <string-name>
            <surname>Vardi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Chakraborty</surname>
            ,
            <given-names>D. J.</given-names>
          </string-name>
          <string-name>
            <surname>Fremont</surname>
            ,
            <given-names>S. A.</given-names>
          </string-name>
          <string-name>
            <surname>Seshia</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Fried</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Ivrii</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Malik</surname>
          </string-name>
          .
          <article-title>Constrained sampling and counting: Universal hashing meets SAT solving</article-title>
          .
          <source>In Proceedings of Workshop on Beyond NP(BNP)</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <given-names>Q.</given-names>
            <surname>Phan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Malacaria</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. S.</given-names>
            <surname>Pasareanu</surname>
          </string-name>
          , and
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>d'Amorim. Quantifying information leaks using reliability analysis</article-title>
          .
          <source>In Proc. of SPIN</source>
          , pages
          <fpage>105</fpage>
          -
          <lpage>108</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <given-names>D.</given-names>
            <surname>Roth</surname>
          </string-name>
          .
          <article-title>On the hardness of approximate reasoning</article-title>
          . Artif. Intell.,
          <volume>82</volume>
          (
          <issue>1-2</issue>
          ):
          <fpage>273</fpage>
          -
          <lpage>302</lpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29. T. Sang,
          <string-name>
            <given-names>P.</given-names>
            <surname>Beame</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H. A.</given-names>
            <surname>Kautz</surname>
          </string-name>
          .
          <article-title>Performing bayesian inference by weighted model counting</article-title>
          .
          <source>In Proc. of AAAI</source>
          , pages
          <fpage>475</fpage>
          -
          <lpage>482</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <given-names>M.</given-names>
            <surname>Sipser</surname>
          </string-name>
          .
          <article-title>A complexity theoretic approach to randomness</article-title>
          .
          <source>In Proc. of the 15th Annual ACM Symposium on Theory of Computing</source>
          , pages
          <fpage>330</fpage>
          -
          <lpage>335</lpage>
          ,
          <year>1983</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>M. Soos</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Nohl</surname>
            , and
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Castelluccia</surname>
          </string-name>
          .
          <article-title>Extending SAT solvers to cryptographic problems</article-title>
          .
          <source>In Proc. of SAT</source>
          , pages
          <fpage>244</fpage>
          -
          <lpage>257</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <given-names>L. J.</given-names>
            <surname>Stockmeyer</surname>
          </string-name>
          .
          <article-title>The complexity of approximate counting (preliminary version)</article-title>
          .
          <source>In Proc. of the 15th Annual ACM Symposium on Theory of Computing</source>
          , pages
          <fpage>118</fpage>
          -
          <lpage>126</lpage>
          ,
          <year>1983</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <surname>L. G. Valiant.</surname>
          </string-name>
          <article-title>The complexity of enumeration and reliability problems</article-title>
          .
          <source>SIAM J. Comput.</source>
          ,
          <volume>8</volume>
          (
          <issue>3</issue>
          ):
          <fpage>410</fpage>
          -
          <lpage>421</lpage>
          ,
          <year>1979</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <string-name>
            <given-names>S.</given-names>
            <surname>Wallis</surname>
          </string-name>
          .
          <article-title>Binomial confidence intervals and contingency tests: Mathematical fundamentals and the evaluation of alternative methods</article-title>
          .
          <source>Journal of Quantitative Linguistics</source>
          ,
          <volume>20</volume>
          (
          <issue>3</issue>
          ):
          <fpage>178</fpage>
          -
          <lpage>208</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35. E. B. Wilson.
          <article-title>Probable inference, the law of succession and statistical inference</article-title>
          .
          <source>Journal of the American Statistical Association</source>
          ,
          <volume>22</volume>
          (
          <issue>158</issue>
          ):
          <fpage>209</fpage>
          -
          <lpage>212</lpage>
          ,
          <year>1927</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>