<!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 Practical Polynomial Calculus for Arithmetic Circuit Veri cation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Johannes Kepler University</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Austria</string-name>
        </contrib>
      </contrib-group>
      <fpage>61</fpage>
      <lpage>76</lpage>
      <abstract>
        <p>Generating and automatically checking proofs independently increases con dence in the results of automated reasoning tools. The use of computer algebra is an essential ingredient in recent substantial improvements to scale veri cation of arithmetic gate-level circuits, such as multipliers, to large bit-widths. There is also a large body of work on theoretical aspects of propositional algebraic proof systems in the proof complexity community starting with the seminal paper introducing the polynomial calculus. We show that the polynomial calculus provides a frame-work to de ne a practical algebraic calculus (PAC) proof format to capture low-level algebraic proofs needed in scalable gate-level veri cation of arithmetic circuits. We apply these techniques to generate proofs obtained as by-product of verifying gate-level multipliers using state-of-the-art techniques. Our experiments show that these proofs can be checked e ciently with independent tools.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Formal veri cation gives correctness guarantees. However, the process of veri
cation might also not be error-free. A common approach to increase con dence in
the results of veri cation consists of generating machine checkable proofs which
are then checked by independent proof checkers. These checkers are less complex
than for example theorem provers producing proofs and can also be veri ed.</p>
      <p>
        For instance many applications of formal veri cation rely on SAT solvers.
Their results can be validated by producing and checking resolution proofs [
        <xref ref-type="bibr" rid="ref17 ref37">17,37</xref>
        ]
or clausal proofs [
        <xref ref-type="bibr" rid="ref15 ref17">15,17</xref>
        ]. Generating proofs is mandatory in the main track of the
SAT Competition since 2016. These approaches have also recently been shown
to scale to huge low-level proofs of combinatorial problems such as the Boolean
Pythagorean triples problem [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] or Schur Number Five [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
      </p>
      <p>
        However, in certain applications, e.g., arithmetic circuit veri cation,
resolution based SAT solving does not work. Especially reasoning about gate-level
multipliers is considered to be hard [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. For arithmetic circuit veri cation the
currently most promising approach uses algebraic reasoning [
        <xref ref-type="bibr" rid="ref11 ref26 ref30 ref32">11,26,30,32</xref>
        ].
      </p>
      <p>In this approach each circuit gate is translated into a polynomial to model
constraints between its output and inputs, i.e., roots of polynomials are
identied as solutions of gate constraints. Additional polynomials ensure that values
remain in the Boolean domain. Word-level speci cations relating circuit
outputs and inputs can also be translated into polynomials. Thus veri cation boils
down to show that the speci cation polynomial is \implied" by the polynomials
induced by the circuit gates (contained in the ideal generated by them).</p>
      <p>
        To validate results of algebraic reasoning the polynomial calculus can be
used [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. It operates on polynomials and allows to check if a polynomial is a
logical consequence of a given set of polynomials. The main focus in this area
has been on proof complexity to obtain lower-bounds for the degree and size of
proofs [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. For instance [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] introduces a general method to obtain lower bounds
and [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] shows that certifying the non-k-colorability of graphs requires proofs
of large degree. A more general calculus capable of detecting unsatis ability of
nonlinear equalities as well as inequalities is discussed in [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ].
      </p>
      <p>
        Our paper shows that the polynomial calculus can also be used in practice.
In particular we generate low-level algebraic proofs needed to validate the results
of ideal membership testing used in arithmetic circuit veri cation by
translating proofs extracted from computer algebra systems to polynomial refutations
in the polynomial calculus. After we review preliminaries in Sect. 2, we present
a concrete proof format for polynomial calculus proofs, called practical
algebraic calculus in Sect. 3. In Sect. 4 we give a comprehensive introduction to
arithmetic circuit veri cation, following [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ]. Section 5 introduces the tool ow
of verifying and proof checking arithmetic circuits. In our experiments, shown
in Sect. 6, our new proof checker PacTrim is used to independently validate
the results of multiplier veri cation [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ]. We further apply these techniques to
equivalence checking of multipliers [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ] and proving certain ring properties, e.g.
commutativity of multipliers [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In general, we claim that our approach is the
rst to provide machine checkable proofs for current state-of-the-art techniques
in verifying arithmetic circuits [
        <xref ref-type="bibr" rid="ref11 ref26 ref30 ref32">11,26,30,32</xref>
        ].
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Preliminaries</title>
      <p>Proof systems are used to validate the results of veri cation systems. While a
veri cation system only gives a yes/no answer, a proof system provides
additionally a certi cate with which the answer can be checked independently. We are
concerned here with a proof system for reasoning about polynomial equations.
The question is whether the zeroness of a certain set of polynomials implies the
zeroness of another polynomial. We consider polynomials p 2 F[X] where F is a
eld and X = fx1; : : : ; xng is a nite set of variables. The function X 7! p(X)
is called polynomial function of p. The polynomial equation of p is de ned as
p(X) = 0 and the solutions of this equation are the roots of p. From now on we
drop the function argument and write p = 0 instead of p(X) = 0.</p>
      <p>
        Reasoning with polynomial equations is well-understood both in computer
algebra and in computational logic. Already Hilbert and collaborators have
studied the theory of polynomial ideals in order to reason about the solution sets of
polynomial equations. The application of Grobner bases [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] by for instance
Kapur [
        <xref ref-type="bibr" rid="ref21 ref22 ref23">21,22,23</xref>
        ] has turned the algebraic approach into a valuable computational
tool for automated theorem proving with renewed recent interest [
        <xref ref-type="bibr" rid="ref1 ref38">1,38</xref>
        ].
      </p>
      <p>
        In order to introduce the notation and terminology needed later, let us give
a brief summary of the theory. As far as algebra is concerned, we follow the
standard textbooks [
        <xref ref-type="bibr" rid="ref13 ref4 ref9">4,9,13</xref>
        ]. From the logical perspective, we use a variant of
the polynomial calculus (PC) as proposed by [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. It is more exible than the
Nullstellensatz (NS) proof system [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], which is also heavily used in the proof
complexity community. The relation between PC and NS in the context of our
application is further discussed at the end of this section.
      </p>
      <p>Let G F[X] and f 2 F[X]. In logical terms, the question is whether the
equation f = 0 can be deduced from the equations g = 0 with g 2 G, i.e., every
common root of the polynomials g 2 G is also a root of f . As we will only
consider polynomial equations with right hand side zero, we take the freedom
to write f instead of f = 0. We write proofs as tuples P = (p1; : : : ; pn) of
polynomials where each pi is derived by one of the following rules.</p>
      <sec id="sec-2-1">
        <title>Addition</title>
        <p>Multiplication
pi
pi + pj</p>
        <p>pj
pi
qpi
pi; pj appearing earlier in the proof
or are contained in G
pi appearing earlier in the proof
or is contained in G
and q 2 F[X] being arbitrary
If f can be deduced from the polynomials g 2 G, i.e. pn = f , we write G ` f . In
algebraic terms, G ` f means that f belongs to the ideal generated by G. Recall
that an ideal I F[X] is de ned as a set with 0 2 I and the closure properties
u; v 2 I ) u + v 2 I and w 2 F[X]; u 2 I ) wu 2 I. If G = fg1; : : : ; gmg F[X]
is a nite set of polynomials, then the ideal generated by G is de ned as the
set fq1g1 + + qmgm : q1; : : : ; qm 2 F[X]g and denoted by hGi. The set G is
called a basis of the ideal hGi. It is clear that this is an ideal and that it consists
of all the polynomials whose zeroness can be deduced from the zeroness of the
polynomials in G. In logical terms we would call G an axiom system and hGi
the corresponding theory. If we can derive G ` 1, or in algebraic terms 1 2 hGi,
the PC proof is called a PC refutation.</p>
        <p>Example 1. This example shows that the output c of an XOR gate over an input
a and its negation b = :a is always true, i.e., c = 1 or equivalently c + 1 (= 0).
We apply the polynomial calculus over the ring Q[c; b; a]. Over Q a NOT gate
x = :y is modeled by the polynomial x + 1 y and an XOR gate z = x y
is modeled by the polynomial z + x + y 2xy. Because the variables are of
the boolean domain we further need to enforce that every variable can only
take the values 0 or 1. Therefore we add for each variable xi a polynomial of
the form xi(xi 1) to the given set of polynomials. The corresponding circuit
representation, the given polynomials and a polynomial proof are shown in Fig. 1.
Example 2. Let G = fx; x + yg Q[x; y], f = y. We have G ` f . A proof
is P = ( x; y). The rst entry follows by the multiplication rule from x with
q = 1, and the second entry follows by the addition rule from the rst entry
and x + y which is contained in G.
G = f
b + 1</p>
        <p>a;
c + a + b</p>
        <p>2ab;
a2
a; b2</p>
        <p>b; c2
c + a + b 2ab
c + 1
2ab
cg
b + 1</p>
        <p>
          Thanks to the theory of Grobner bases [
          <xref ref-type="bibr" rid="ref13 ref4 ref8">4,8,13</xref>
          ], the polynomial calculus is
decidable, i.e., there is an algorithm, which for any nite G F[X] and f 2 F[X]
can decide whether G ` f or not. A basis of an ideal I is called a Grobner basis
if it enjoys certain structural properties whose precise de nition is not relevant
for our purpose. What matters are the following fundamental facts:
{ There is an algorithm (Buchberger's algorithm) which for any given nite
set B F[X] computes a Grobner basis for the ideal hBi generated by B.
{ Given a Grobner basis G, there is a computable function redG : F[X] ! F[X]
such that 8 p 2 F[X] : redG(p) = 0 () p 2 hGi.
{ Moreover, if G = fg1; : : : ; gmg is a Grobner basis of an ideal I and p; r 2 F[X]
are such that redG(p) = r, then there exist h1; : : : ; hm 2 F[X] such that
p r = h1g1 + + hmgm, and such polynomials hi can be computed.
Consider the extended calculus with the additional rule
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Radical</title>
        <p>pim
pi
pmim2apNpneafring earlier in the proof or is contained in G.</p>
        <p>0g and
If the polynomial f can be deduced from the polynomials g, where g 2 G, with
the rules of PC and this additional radical rule, we write G `+ f and call this
proof radical proof (`+). In algebra, the set f f 2 F[X] : G `+ f g is called the
radical ideal of G and is typically denoted by phGi.</p>
        <p>Also the extended calculus `+ is decidable. It can be reduced to ` using the
so-called Rabinowitsch trick [13, 4x2 Prop. 8], which says
f 2 phGi () 1 2 hG [ fyf
1gi
or</p>
        <p>G `+ f
()</p>
        <p>G [ fyf
1g ` 1;
depending whether you prefer algebraic or logic notation. In both cases, y is a
new variable and the ideal/theory on the right hand sides is understood as an
ideal/theory of the extended ring F[X; y]. The Rabinowitsch trick is therefore
used to replace a radical proof (`+) by a PC refutation.</p>
        <p>For a given set G F[X], a model is a point u = (u1; : : : ; un) 2 Fn such
that for all g 2 G we conclude that g(u1; : : : ; un) = 0. Here, by g(u1; : : : ; un)
we mean the element of F obtained by evaluating the polynomial g for x1 =
u1; : : : ; xn = un. For a set G F[X] and a polynomial f 2 F[X], we write
G j= f if every model for G is also a model for ff g. Given G F[X], de ne
V (G) as the set of all models of G. For an algebraically closed eld F, Hilbert's
Nullstellensatz [13, 4x1 Thms. 1 and 2] asserts that V (G) is nonempty if and only
if 1 62 hGi, and furthermore, f 2 phGi () V (G) V (ff g). In other words,
G j= f () G `+ f . Particularly, the PC including the radical rule is correct
(\(") and complete (\)"). In combination with Rabinowitsch's trick, we can
therefore decide the existence of models and furthermore produce certi cates for
the non-existence of models.</p>
        <p>
          For our applications, only models u 2 f0; 1gn Fn matter. Let us write
G j=bool f if every model u 2 f0; 1gn of G is also a model of ff g. Using basic
properties of ideals as described in [13, 4x3 Thm. 4], it is easy to show that
G j=bool f () G [ B j= f , where B = fxi(xi 1) : i = 1; : : : ; ng. Furthermore,
the equivalence G [ B j= f () G [ B `+ f holds also when F is not
algebraically closed, because changing from F to its algebraic closure F will not
have any e ect on the models in f0; 1gn. Finally, let us remark that the niteness
of f0; 1gn also implies that G [ B `+ f () G [ B ` f . This follows from
Seidenberg's lemma [4, Lemma 8.13] and generalizes Theorem 1 of [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
        </p>
        <p>
          In contrast to a PC refutation G [ f1 yf g [ B ` 1, where each polynomial
in the proof is generated using the rules of PC, a refutation in the NS proof
system is a set of polynomials Q = fq1; : : : ; qmg F[X] such that
m
X qipi = 1 for
i=0
pi 2 G [ f1
yf g [ B:
Although both systems are able to verify correctness of a refutation, we will use
PC and not the NS proof system, because for arithmetic circuit veri cation we
will rewrite some polynomials of G [ f1 yf g [ B, and thus gain an optimized
algebraic representation of the circuit, cf. Sect. 4. In a correct NS refutation we
would also need to express these rewritten polynomials as a linear combination
of elements of G [ f1 yf g [ B and thus lose the optimized representation,
which will most likely lead to an exponential blow-up of monomials in the NS
proof [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. In PC we can generate these optimized polynomials on-the- y and
then use these polynomials to show the correctness of the refutation.
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Practical Algebraic Calculus</title>
      <p>For practical proof checking we translate the abstract polynomial calculus (PC)
into a concrete proof format, i.e., we only de ne a format based on PC, which is
logically equivalent but more precise. In principle a proof in PC can be seen as
a nite sequence of polynomials derived from given polynomials and previously
inferred polynomials by applying either an addition or multiplication rule.</p>
      <p>To ensure correctness of each rule it is of course necessary to know which rule
was used, to check that it was applied correctly, and in particular which given
or previously derived polynomials are involved. During proof generation these
polynomials are usually known and thus we require that all of this information</p>
      <p>letter ::= ` a ' j ` b ' j : : : j ` z ' j ` A ' j ` B ' j : : : j ` Z '
number ::= ` 0 ' j ` 1 ' j : : : j ` 9 '
constant ::= (number)+
variable ::= letter (letter j number)
power ::= variable [ ` ^ ' constant ]
term ::= power (` * ' power)
monomial ::= constant j [ constant ` * ' ] term</p>
      <p>operator ::= ` + ' j ` - '
polynomial ::= [ ` - ' ] monomial (operator monomial)
given ::= (polynomial ` ; ')</p>
      <p>rule ::= (` + ' j ` * ') ` : ' polynomial ` , ' polynomial ` , ' polynomial ` ; '
proof ::= (rule ` ; ')
is part of a rule in our concrete practical algebraic calculus (PAC) proof format
to simplify proof checking. The syntax of PAC is shown in Fig. 2. White space is
allowed everywhere except between letters and digits in a constant or a variable.
A proof rule contains four components</p>
      <p>o : v; w; p;
The rst component o denotes the operator which is either ` + ' for addition or ` * '
for multiplication. The next two components v; w specify the two (antecedent)
polynomials used to derive p (conclusion). In the multiplication rule w plays the
role of the polynomial q of the multiplication rule of PC, cf. Sect. 2. A refutation
in PAC is a proof, which contains a non-zero constant polynomial (typically just
the constant \1") as conclusion p of a rule.</p>
      <p>As discussed above we do not need the radical rule for our purpose, even
though it could be easily added. Further note that the format is independent of
the domain of the models u, e.g., u 2 f0; 1gn for gate-level circuit veri cation,
to which the values of variables are restricted. If such a restriction is necessary,
all elements of the corresponding set B (often also called eld polynomials) have
to be added to the given set of polynomials.</p>
      <p>Although the de nition of number together with the de nition of polynomial
only allows integer coe cients this is not a severe restriction. Rational number
coe cients can be simulated by multiplying involved polynomials with
appropriate non-zero constants to eliminate denominators.</p>
      <p>Example 3. Consider again Ex. 1. To test membership of 1 c 2 phGi we add
1 + y(c 1) to the set of given polynomials G in order to apply Rabinowitsch's
trick and obtain a PAC refutation:
+ : -c+a+b-2a*b, -b+1-a, -c+1-2a*b;
* : -b+1-a, -2a, 2a*b-2a+2a^2;
+ : -c+1-2a*b, 2a*b-2a+2a^2, -c+1-2a+2a^2;
* : a^2-a, -2, -2a^2+2a;
+ : -c+1-2a+2a^2, -2a^2+2a, -c+1;
* : -c+1, y, -c*y+y;
+ : -c*y+y, 1+c*y-y, 1;
input</p>
      <p>G
r1
rk
sequence of given polynomials
sequence of PAC proof rules
output \incorrect", \correct-proof", or \correct-refutation"
P0 G
for i 1 : : : k
let ri = (oi; vi; wi; pi)
case oi = +
if vi 2 Pi 1 ^ wi 2 Pi 1 ^ pi = vi + wi then Pi
else return \incorrect"
case oi =
if vi 2 Pi 1 ^ pi = vi wi then Pi append(Pi 1; pi)
else return \incorrect"
for i 1 : : : k</p>
      <p>if pi is a non zero constant polynomial then return \correct-refutation"
return \correct-proof"
append(Pi 1; pi)</p>
      <p>For proof validation we need to make sure that two properties hold. The
connection property states that the components v; w are either given polynomials
or conclusions of previously applied proof rules. For multiplication we only have
to check this property for v, because w is an arbitrary polynomial. By the second
property, called inference property, we verify the correctness of each rule, namely
we simply calculate v + w resp. v w and check that the obtained result matches
p. In a correct PAC refutation we further need to verify that at least one pi is a
non-zero constant. The complete checking algorithm is shown in Fig. 3.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Circuit veri cation using Computer Algebra</title>
      <p>
        Following [
        <xref ref-type="bibr" rid="ref11 ref30 ref31 ref32 ref33 ref36">11,30,31,32,33,36</xref>
        ] we consider gate-level (integer) multipliers with 2n
input bits a0; : : : ; an 1; b0; : : : ; bn 1 2 f0; 1g and 2n output bits s0; : : : ; s2n 1 2
f0; 1g. Each internal gate (output) is represented by a further variable l1; : : : ; lm.
In this setting let X = a0; : : : ; an 1; b0; : : : ; bn 1; l1; : : : ; lm; s0; : : : ; s2n 1. Then
a multiplier is correct i for all possible inputs the following speci cation holds:
2n 1
X 2isi =
i=0
n 1
X 2iai
i=0
n 1
X 2ibi
i=0
(1)
Using algebraic reasoning this can be veri ed by showing that the speci cation
is contained in the ideal generated by the gate constraints. For each logical gate
in the circuit a so-called gate polynomial g 2 Q[X] representing the relation
between the gate inputs and output is de ned. Example 1 de nes these polynomials
for a NOT and an XOR gate. Indicating that the circuit operates over Boolean
variables we add for each variable xi 2 X the relation xi(xi 1) matching the
de nition of B in the last paragraph of Sect. 2 to the gate polynomials G.
      </p>
      <p>Although all variables are restricted to boolean values we use Q as the base
eld. Using Q connects the circuit speci cation (Eqn. (1)) to multiplication in Q.
The speci cation would be the same over Z, but Z is not a eld, hence the
underlying Grobner basis theory would be more complex. Theoretically reasoning
in the eld Z2 is possible, but probably would be much more involved. A more
precise comparison will be done in the future.</p>
      <p>
        A term order is a lexicographic term order if for all terms 1 = x1u1 xunn ,
2 = x1v1 xvnn we have 1 &lt; 2 i there exists i with uj = vj for all j &lt; i,
and ui &lt; vi. If the terms in the gate polynomials are ordered according to
such a lexicographic variable ordering where the variable corresponding to the
output of a gate is always bigger than the variables corresponding to inputs
of the gate, then by Buchberger's product criterion [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] the gate polynomials
de ne a Grobner basis for the ideal generated by the gate polynomials. Thus
the correctness of the circuit can be shown by reducing the speci cation by the
gate polynomials using polynomial reduction (redG) and checking if the result
is zero. We generate and check proofs for this reduction, cf. Sect. 5.
      </p>
      <p>
        Directly reducing the speci cation without rewriting the Grobner basis leads
to an explosion of intermediate results [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ]. In practice it is necessary to use
rewriting techniques to simplify the Grobner basis. In recent work [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ] a
reduction scheme was proposed which e ectively (partially) reduces the Grobner
basis. These preprocessing steps [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ] are also applied in [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], where we
introduced a column-wise checking algorithm which cuts the circuit into 2n slices Si
with 0 i &lt; 2n such that each slice contains exactly one output bit si. In each
slice the relation that the sum of the outgoing carries Ci+1 and the output-bit si
is equal to the sum of the partial products Pi = Pk+l=i akbl and the incoming
carries of the slice Ci has to hold. Thus we de ne for each slice Si a
corresponding speci cation Ci = 2Ci+1 + si Pi. Initially we set C2n = 0 and recursively
calculate Ci as the remainder of reducing 2Ci+1 +si Pi by the gate polynomials
of the corresponding slice. In a correct multiplier C0 = 0 has to hold. Hence each
slice is veri ed recursively, thus the problem of circuit veri cation is divided into
smaller more manageable sub-problems.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ] we further improved incremental checking by eliminating variables [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ],
local to full- and half-adders. Since these preprocessing and incremental
algorithms are complex and error prone to implement but essential to achieve scalable
veri cation we also generate and check proofs for them.
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Engineering</title>
      <p>
        We take as input circuit an And-Inverter Graph (AIG) [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] in the common
AIGER format [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. The AIG is then veri ed using the computer algebra system
Mathematica [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ]. We also generate proofs in our PAC-format (c.f. Sect. 3) which
then are either passed on to the computer algebra system Singular [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] or to our
own algebraic proof checker PacTrim. The complete veri cation ow is depicted
in Fig. 4. Boxes with \.hsu xi" refer to the input AIG or generated les. The
variable n de nes the length of the two input bitvectors of the multiplier.
      </p>
      <p>PacMultSpecnPacEqSpec</p>
      <p>AigToPoly
AigMul.&amp;
ProofIt
verify+
AigMul.</p>
      <p>verify
.wl
.wl</p>
      <sec id="sec-5-1">
        <title>Mathematica .out Python</title>
      </sec>
      <sec id="sec-5-2">
        <title>Mathematica Veri cation</title>
        <p>.spec
.polys
.pac</p>
        <p>Python Singular
connect .singular inference Certi cation
check II</p>
        <p>PacTrim
check I</p>
        <p>Certi cation</p>
        <p>
          The tool AigMulToPoly [
          <xref ref-type="bibr" rid="ref30 ref31">30,31</xref>
          ] is used for veri cation without generating
proofs (verify). It takes an AIG as input and produces a le which can be passed
on to either Mathematica or Singular, which then performs the actual ideal
membership test. Di erent option settings can be selected to enable or disable
the preprocessing and rewriting techniques discussed in Sect. 4.
        </p>
        <p>
          For proof generation (verify+) we use a second tool ProofIt which takes
the output le from AigMulToPoly as well as the original AIG and returns
a le which can be passed on to Mathematica. In Mathematica the proof (.pac)
is calculated. In the tool AigToPoly the original AIG is translated into a set
of polynomials G without applying any preprocessing. Together with the set
B = fxi(xi 1) j xi 2 Xg these polynomials de ne the given set of polynomials
G [ B of the PAC proof (.polys). This is a rather trivial task implemented in
less than 130 lines of C code (half of them are just about command line option
handling) using the AIGER [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] library for parsing.
        </p>
        <p>
          In the same spirit PacMultSpec and PacEqSpec have been implemented
to produce the speci cations we want to verify (.spec). In PacMultSpec we
simply generate the multiplier speci cation as given in Sect. 4, i.e. Eqn. (1)
attened. In PacEqSpec we generate a similar speci cation for equivalence
checking of two multipliers [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ]. To gain a PAC refutation both types of
specications are produced in negated form using the Rabinowitsch trick and hence
become part of the given set of polynomials.
        </p>
        <p>Each polynomial of AigMulToPoly which is derived during preprocessing
needs to be checked if it is a logical consequence of the given set of polynomials.
Hence for each preprocessed polynomial f the representation modulo the given
set of polynomials G [ B = fg1; : : : ; gkg is calculated in Mathematica using the
built-in function \PolynomialReduce". This command does not only allow to
compute the reduction redG[B(f ) = r, but it also returns cofactors h1; : : : ; hk
such that f = h1g1 + : : : + hkgk + r. If the preprocessing is done correctly the
derived polynomials f are contained in the ideal hG [ Bi, thus redG[B(f ) = 0
and the above representation simpli es to f = h1g1 + : : : + hkgk. Knowing the
cofactors hi and the corresponding elements of G [ B we generate proof rules in
PAC in the following way. First we generate a multiplication proof rule for each
product higi.</p>
        <p>: g1; h1; h1g1;
: gk; hk; hkgk;</p>
        <p>In the listed rules the result p is always depicted simply as the product higi,
but in the actual PAC proof p is written in expanded ( attened) form. These
products are now simply added together as follows:
+ : h1g1; h2g2;
+ : h1g1 + h2g2; h3g3;
.
.</p>
        <p>.
+ : h1g1 + : : : + hk 1gk 1; hkgk; f ;</p>
        <p>In the experiments we also use a non-incremental veri cation approach where
we do not use the incremental optimizations presented in Sect. 4, hence we have
to reduce the complete word-level speci cation of a multiplier by the
(preprocessed) gate and eld polynomials. Extracting a proof works in the same way as
just described for the preprocessed polynomials.</p>
        <p>Generating proofs for incremental veri cation is also similar, but instead
of the word-level speci cation of the multiplier we have to use the
incremental speci cations Ci = 2Ci+1 + si Pi of each slice, cf. Sect. 4. The
polynomials Ci describing the incoming carries of a slice can be derived by
calculating redG[B(2Ci+1 + si Pi) = Ci. Since veri cation can be assumed to
succeed we have C2n = 0 and C0 = 0. As described in the last bullet on
fundamental facts in Sect. 2 we are able to obtain cofactors h1; : : : ; hk such that
2Ci+1 + si Pi Ci = h1g1 + : : : + hkgk and consequently a translation into the
PAC-format to derive the left-hand side of the equation.</p>
        <p>
          To derive the word-level speci cation of a multiplier from the incremental
speci cations we rst multiply for each slice Si its incremental speci cation
Ci = 2Ci+1 + si Pi by the constant 2i.
Subsequent accumulation of the polynomials above using PAC addition rules
cancels the terms Ci and Pi2=n0 1 2isi Pi2=n0 1 2iPi remains. It holds that the sum
of partial products can be reordered to Pi2=n0 1 2iPi = (Pin=01 2iai)(Pin=01 2ibi) [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ]
and thus we are able to deduce the word-level speci cation of multipliers.
        </p>
        <p>In both approaches the incremental as well as the non-incremental one we
multiply the word-level speci cation of the multiplier by the additional variable
y and add it to the given polynomial 1 y spec 2 G [ B to derive 1 and thus
obtain a correct PAC refutation.</p>
        <p>As Fig. 4 shows we have two di erent ows for checking PAC proofs
independently from Mathematica, which was used for veri cation. The rst one uses
Python scripts to validate the connection property of each rule and whether the
proof actually de nes a refutation. With Singular we check the inference
property of each proof line, which in essence uses Singular as a calculator for adding
and multiplying polynomials.
p33
FA
p32
FA
p23
FA
p31 p30 p21 p20 p11 p10 p01 p00
HA FA FA HA
p22 p12 p02
FA FA HA
p13 p03
FA HA
p31 p22 p30p21p12 p20p11p02 p10 p01 p00</p>
        <p>HA FA FA HA
p33
FA
p32 p23
FA
FA</p>
        <p>FA
FA
p13</p>
        <p>p03
FA
HA</p>
        <p>
          HA
s7 s6 s5 s4 s3 s2 s1 s0 s7 s6 s5 s4 s3 s2 s1
Fig. 5: Architecture of \btor" (left) and \sparrc" (right), where pij = aibj [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ]
s0
        </p>
        <p>
          We also provide a new dedicated proof checker called PacTrim implemented
from scratch in C. It has similar features as DRAT-trim, which is the standard
proof checker in the SAT community for clausal proofs (and is used in the SAT
Competition { see also [
          <xref ref-type="bibr" rid="ref16 ref18">16,18</xref>
          ]). Our new PacTrim checker contains a parser
for PAC proofs and checks the connection property using hash tables and the
inference property using a dedicated stand-alone implementation of polynomial
arithmetic over arbitrary precision integers represented as strings.
        </p>
        <p>While the rst approach is rather general and easy to adapt it is, as the
experiments con rm, less robust (due to for instance the limit on variables in
Singular) and more importantly far less e cient than our dedicated checker. The
latter also allows to produce proof cores (of both original polynomials and proof
lines), and is also much closer to being certi able.
6</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Experiments</title>
      <p>
        In our experiments we generate and validate PAC proofs for the (integer)
multiplier benchmarks used in [
        <xref ref-type="bibr" rid="ref30 ref31">30,31</xref>
        ]. The \btor"-benchmarks are generated by
Boolector [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] and the \sparrc"-multipliers are part of the bigger AOKI
benchmark set [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], containing several multiplier architectures. In both multiplier
architectures the partial products are generated as products of two input bits
which are then accumulated by full- and half-adders, as shown in Fig. 5 for
input size n = 4. In \btor"-multipliers the full- and half-adders are accumulated
in a grid-like structure, thus they are considered as array multipliers, whereas in
\sparrc"-multipliers full- and half-adders are accumulated diagonally.
      </p>
      <p>In all our experiments we use a standard Ubuntu 16.04 Desktop machine with
Intel i7-2600 3.40GHz CPU and 16 GB of main memory. The (wall-clock) time
limit is 90 000 seconds and the main memory usage is limited to 7GB. The time
in our experiments is measured in seconds (wall-clock time). We mark un nished
experiments by TO (reached time limit), MO (reached memory limit) or by EE,
when an error state is reached. An error state is reached by Singular, because
it has a limit of 32767 on the number of ring variables. All experimental data,
benchmarks and source code is available at http://fmv.jku.at/pac.</p>
      <p>
        In Table 1 we separately list the time taken for veri cation, the generation
as well as checking of PAC-proofs for \btor"and \sparrc" multipliers of di erent
input bitwidth n. The third column lists con gurations of AigMulToPoly. The
default con guration uses incremental column-wise slicing of [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], c.f. Sect. 4,
both with (inc-add) and without (inc) our new optimization of eliminating local
variables in full- and half-adders [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ]. In the third con guration (noninc) the
whole word-level speci cation is reduced without any slicing of the multiplier.
      </p>
      <p>The time needed for veri cation, proof generation and proof checking is listed
in the following columns. The corresponding execution paths are marked in Fig. 4
by dashed rectangles. The column verify shows the time Mathematica needs to
verify the multiplier, column verify+ shows the time needed to generate the proof
including the time of verify and in column chk I we measure the time our own
proof checker PacTrim needs to validate the proof. The time Python needs to
verify the connection property is listed in column con and the time Singular
needs to verify the inference property is listed in column inf. The column chk II
is the total time needed to verify the proof with Python and Singular. We did not
include the time the tools AigToPoly, PacMultSpec and PacEqSpec need,
because in the worst-case it only takes a second for 64-bit multipliers.</p>
      <p>
        Inspired by [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] we also compute and include the number of polynomials in a
proof (length), the total number of monomials of the derived polynomials (size),
counted with repetition, and the maximum total degree of any monomial (deg).
n mult
4 btor-btor
8 btor-btor
16 btor-btor
32 btor-btor
64 btor-btor
4 btor-sparrc
8 btor-sparrc
16 btor-sparrc
32 btor-sparrc
4 sparrc-sparrc
8 sparrc-sparrc
16 sparrc-sparrc
32 sparrc-sparrc
Usually not all given polynomials in the data set G [ f1 yf g [ B are needed to
derive a correct refutation, especially only a small subset of B is used. Thus next
to the length and size columns we list the percentage of polynomials and
monomials which are actually necessary to derive a PAC refutation (core) w.r.t. the
number of original and derived polynomials.
      </p>
      <p>In general it can be seen that \sparrc"-multipliers need more time and space
for veri cation, certi cation and proof checking than \btor"-multipliers. By far
most of the time is needed for generating the proofs. For more scalable proof
generation it is clear that computer algebra systems would need to be adapted
to support proof generation on-the- y or even application speci c algebraic
reasoning engines have to be implemented. Checking the proof with PacTrim takes
a fraction of the time needed for veri cation, at most 12 seconds, even for 64
bit multipliers. Proof checking using an independent computer algebra system
takes much longer { for 64 bit multipliers more than 4000 seconds.</p>
      <p>
        In further experiments shown in Table 2 we construct proofs for the
commutativity property of multipliers, i.e., we want to prove for a certain multiplier
architecture that A B = B A holds. Among other things it was shown in the
work of [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] that polynomial sized resolution proofs for the commutativity
property of array and diagonal multipliers exist. Motivated by this result we generate
proofs for these two multiplier architectures, where \btor"-multipliers play the
role of array multipliers and \sparrc"-multipliers are considered as diagonal
multipliers. We generate the commutativity miters by checking the equivalence of
a multiplier and the same multiplier with input bit-vectors swapped (btor-btor,
sparrc-sparrc). Furthermore we derive proofs for checking the equivalence of the
two architectures \btor" vs. \sparrc" (btor-sparrc). The columns in Table 2
follow the same structure as in Table 1. In all commutativity and equivalence
checking experiments we used the con guration \inc-add", which uses our incremental
column-wise slicing of [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] with the optimization of eliminating local variables in
full- and half-adders. We did not include commutativity or equivalence checking
experiments containing \sparrc" multipliers with bit-width n = 64, because we
reached an error state (EE) in the experiments of Table 1.
0
0
0
0
5
2
f
o
rpo 00
re 00
fco 15
o
h
t
g
n
e
L 0
0
0
0
5
0
6
0
+
e
f 3
o
o
frrcoep 2e06+
o
e
izS 60+
e
1
0
0
+
e
0
10
20
      </p>
      <p>3B0itwidth n40 50 60 10 20 3B0itwidth n40
Fig. 6: Length and size of btor-btor commutativity check
50
60</p>
      <p>
        In Fig. 6 data points depicting core size (left plot) and core length (right plot)
of the \btor-btor"-commutativity proofs are shown for various input bitwidths n.
The additional polynomial curves are tted to the data points (using linear
regression with R). For the proof length we used a parameterized model of a
quadratic polynomial. The proof size required a cubic polynomial. In both cases
the match is perfect, with absolute values of residuals less than 9 10 10. This
empirically suggested quadratic complexity of algebraic proofs compares favourably
to the O(n7log n) upper bound for resolution proofs given in Thm. 2 of [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>Comparing the meta data of the \btor-btor" and \sparrc-sparrc"-benchmarks
the proof lengths of \sparrc-sparrc"-benchmarks are of the same magnitude as
the proof lengths of \btor-btor"-benchmarks. The proof sizes of \sparrc-sparrc"
are around three times as big as the proof sizes of \btor-btor" with nearly
same percentages for the cores. Hence both measurements of
\sparrc-sparrc"benchmarks can also be depicted by quadratic and cubic curves.
7</p>
    </sec>
    <sec id="sec-7">
      <title>Conclusion</title>
      <p>
        This paper applies proof checking to algebraic reasoning, not only in theory, but
also in practice, in order to validate veri cation techniques based on computer
algebra. We show how the abstract polynomial calculus [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] can be instantiated
to yield a practical proof format (PAC). Proofs in this format can be obtained as
by-product of verifying multiplier circuits using state-of-the-art techniques and
can be checked with our new proof checker tool PacTrim in a fraction of the
time needed for veri cation. Our experiments produce small polynomial proofs
which certify the correctness of certain multipliers. The theoretical analysis in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
gives much larger polynomial upper bounds (for clausal resolution proofs).
      </p>
      <p>
        To explore the connection between PAC and clausal proof systems, such
as RUP and DRAT [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], is an interesting subject for future work, as well as
embedding PAC into more general systems, such as Isabelle [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ].
      </p>
      <p>We want to thank Thomas Sturm for pointing out the Rabinowitsch trick
to the second author and Jakob Nordstrom for discussions on the polynomial
calculus and Nullstellensatz proof systems. This work is supported by Austrian
Science Fund (FWF), NFN S11408-N23 (RiSE), Y464-N18, SFB F5004.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>E.</given-names>
            <surname>Abraham</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Abbott</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Becker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. M.</given-names>
            <surname>Bigatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Brain</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Buchberger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cimatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. H.</given-names>
            <surname>Davenport</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>England</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fontaine</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Forrest</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Griggio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Kroening</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. M.</given-names>
            <surname>Seiler</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Sturm</surname>
          </string-name>
          .
          <article-title>Satis ability checking and symbolic computation</article-title>
          .
          <source>ACM Comm. Computer Algebra</source>
          ,
          <volume>50</volume>
          (
          <issue>4</issue>
          ):
          <volume>145</volume>
          {
          <fpage>147</fpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>P.</given-names>
            <surname>Beame</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Impagliazzo</surname>
          </string-name>
          , J. Kraj cek, T. Pitassi, and
          <string-name>
            <given-names>P.</given-names>
            <surname>Pudlak</surname>
          </string-name>
          .
          <article-title>Lower bounds on hilbert's nullstellensatz and propositional proofs</article-title>
          .
          <source>In PROCEEDINGS OF THE LONDON MATHEMATICAL SOCIETY</source>
          , pages
          <volume>1</volume>
          {
          <fpage>26</fpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>P.</given-names>
            <surname>Beame</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>Liew</surname>
          </string-name>
          .
          <article-title>Towards verifying nonlinear integer arithmetic</article-title>
          .
          <source>In CAV</source>
          , volume
          <volume>10427</volume>
          <source>of LNCS</source>
          , pages
          <volume>238</volume>
          {
          <fpage>258</fpage>
          . Springer,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>T.</given-names>
            <surname>Becker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Weispfenning</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Kredel</surname>
          </string-name>
          . Grobner Bases. Springer,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>A.</given-names>
            <surname>Biere</surname>
          </string-name>
          .
          <article-title>Collection of combinational arithmetic miters submitted to the SAT Competition 2016</article-title>
          .
          <source>In SAT Competition</source>
          <year>2016</year>
          , volume
          <string-name>
            <surname>B-</surname>
          </string-name>
          <year>2016</year>
          -1 of Department of Computer Science Series of Publications B, pages
          <volume>65</volume>
          {
          <fpage>66</fpage>
          . Univ. Helsinki,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>A.</given-names>
            <surname>Biere</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Heljanko</surname>
          </string-name>
          , and S.
          <source>Wieringa. AIGER 1</source>
          .
          <article-title>9 and beyond</article-title>
          .
          <source>Technical report</source>
          , FMV Reports Series,
          <article-title>Institute for Formal Models and Veri cation</article-title>
          , Johannes Kepler University, Altenbergerstr.
          <volume>69</volume>
          ,
          <issue>4040</issue>
          Linz, Austria,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>A.</given-names>
            <surname>Biere</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kauers</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Ritirc</surname>
          </string-name>
          .
          <article-title>Challenges in verifying arithmetic circuits using computer algebra</article-title>
          .
          <source>In SYNASC</source>
          ,
          <year>2017</year>
          , in press.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>B.</given-names>
            <surname>Buchberger</surname>
          </string-name>
          .
          <article-title>Ein Algorithmus zum Au nden der Basiselemente des Restklassenringes nach einem nulldimensionalen Polynomideal</article-title>
          .
          <source>PhD thesis</source>
          ,
          <year>1965</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>B.</given-names>
            <surname>Buchberger</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Kauers</surname>
          </string-name>
          .
          <article-title>Grobner basis</article-title>
          .
          <source>Scholarpedia</source>
          ,
          <volume>5</volume>
          (
          <issue>10</issue>
          ):
          <fpage>7763</fpage>
          ,
          <year>2010</year>
          . http://www.scholarpedia.org/article/Groebner_basis.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. J.
          <string-name>
            <surname>Buresh-Oppenheim</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Clegg</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Impagliazzo</surname>
            , and
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Pitassi</surname>
          </string-name>
          .
          <article-title>Homogenization and the polynomial calculus</article-title>
          .
          <source>Computational Complexity</source>
          ,
          <volume>11</volume>
          (
          <issue>3-4</issue>
          ):
          <volume>91</volume>
          {
          <fpage>108</fpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>M. Ciesielski</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Brown</surname>
          </string-name>
          , D. Liu,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Rossi</surname>
          </string-name>
          .
          <article-title>Veri cation of gate-level arithmetic circuits by function extraction</article-title>
          .
          <source>In DAC</source>
          , pages
          <volume>52</volume>
          :
          <article-title>1{52:6</article-title>
          . ACM,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>M. Clegg</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Edmonds</surname>
            , and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Impagliazzo</surname>
          </string-name>
          .
          <article-title>Using the groebner basis algorithm to nd proofs of unsatis ability</article-title>
          .
          <source>In STOC</source>
          , pages
          <volume>174</volume>
          {
          <fpage>183</fpage>
          . ACM,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>D.</given-names>
            <surname>Cox</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Little</surname>
          </string-name>
          , and
          <string-name>
            <surname>D. O'Shea. Ideals</surname>
          </string-name>
          , Varieties, and Algorithms. Springer,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. W. Decker, G.
          <string-name>
            <surname>-M. Greuel</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <article-title>P ster, and</article-title>
          <string-name>
            <given-names>H.</given-names>
            <surname>Sch</surname>
          </string-name>
          <article-title>onemann. Singular 4-1-0</article-title>
          . http: //www.singular.uni-kl.de,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>E. I.</given-names>
            <surname>Goldberg</surname>
          </string-name>
          and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Novikov</surname>
          </string-name>
          .
          <article-title>Veri cation of proofs of unsatis ability for CNF formulas</article-title>
          .
          <source>In DATE</source>
          , pages
          <volume>10886</volume>
          {
          <fpage>10891</fpage>
          . IEEE Computer Society,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>M. J. H. Heule</surname>
          </string-name>
          .
          <article-title>Schur number ve</article-title>
          .
          <source>CoRR, abs/1711.08076</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>M. J. H. Heule</surname>
            and
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Biere</surname>
          </string-name>
          .
          <article-title>Proofs for satis ability problems</article-title>
          . In All about Proofs,
          <source>Proofs for All</source>
          , volume
          <volume>55</volume>
          , pages
          <fpage>1</fpage>
          {
          <fpage>22</fpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>M. J. H. Heule</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Kullmann</surname>
            , and
            <given-names>V. W.</given-names>
          </string-name>
          <string-name>
            <surname>Marek</surname>
          </string-name>
          .
          <article-title>Solving and verifying the boolean pythagorean triples problem via cube-and-conquer</article-title>
          .
          <source>In SAT</source>
          , volume
          <volume>9710</volume>
          <source>of LNCS</source>
          , pages
          <volume>228</volume>
          {
          <fpage>245</fpage>
          . Springer,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>N.</given-names>
            <surname>Homma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Watanabe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Aoki</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Higuchi</surname>
          </string-name>
          .
          <article-title>Formal design of arithmetic circuits based on arithmetic description language</article-title>
          .
          <source>IEICE Transactions</source>
          , 89-
          <fpage>A</fpage>
          (
          <year>12</year>
          ):
          <volume>3500</volume>
          {
          <fpage>3509</fpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>R.</given-names>
            <surname>Impagliazzo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Pudlak</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Sgall</surname>
          </string-name>
          .
          <article-title>Lower bounds for the polynomial calculus and the grobner basis algorithm</article-title>
          .
          <source>Computational Complexity</source>
          ,
          <volume>8</volume>
          (
          <issue>2</issue>
          ):
          <volume>127</volume>
          {
          <fpage>144</fpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>D.</given-names>
            <surname>Kapur</surname>
          </string-name>
          .
          <article-title>Geometry theorem proving using hilbert's nullstellensatz</article-title>
          .
          <source>In SYMSAC</source>
          , pages
          <volume>202</volume>
          {
          <fpage>208</fpage>
          . ACM,
          <year>1986</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <given-names>D.</given-names>
            <surname>Kapur</surname>
          </string-name>
          .
          <article-title>Using grobner bases to reason about geometry problems</article-title>
          .
          <source>J. Symb. Comput.</source>
          ,
          <volume>2</volume>
          (
          <issue>4</issue>
          ):
          <volume>399</volume>
          {
          <fpage>408</fpage>
          ,
          <year>1986</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>D.</given-names>
            <surname>Kapur</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Narendran</surname>
          </string-name>
          .
          <article-title>An equational approach to theorem proving in rstorder predicate calculus</article-title>
          .
          <source>In IJCAI</source>
          , pages
          <volume>1146</volume>
          {
          <fpage>1153</fpage>
          . Morgan Kaufmann,
          <year>1985</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <given-names>A.</given-names>
            <surname>Kuehlmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Paruthi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Krohm</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Ganai</surname>
          </string-name>
          .
          <article-title>Robust boolean reasoning for equivalence checking and functional property veri cation</article-title>
          .
          <source>IEEE TCAD</source>
          ,
          <volume>21</volume>
          (
          <issue>12</issue>
          ):
          <volume>1377</volume>
          {
          <fpage>1394</fpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>M.</given-names>
            <surname>Lauria</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Nordstro</surname>
          </string-name>
          <article-title>m. Graph Colouring is Hard for Algorithms Based on Hilbert's Nullstellensatz and Grobner Bases</article-title>
          . In R. O'Donnell, editor, CCC, volume
          <volume>79</volume>
          <source>of LIPIcs</source>
          , pages
          <fpage>2</fpage>
          <issue>:1</issue>
          {2:
          <fpage>20</fpage>
          .
          <string-name>
            <surname>Schloss</surname>
            <given-names>Dagstuhl</given-names>
          </string-name>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>J. Lv</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Kalla</surname>
            , and
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Enescu</surname>
          </string-name>
          . E cient Gr
          <article-title>obner basis reductions for formal veri cation of Galois eld arithmetic circuits</article-title>
          .
          <source>IEEE TCAD</source>
          ,
          <volume>32</volume>
          (
          <issue>9</issue>
          ):
          <volume>1409</volume>
          {
          <fpage>1420</fpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <given-names>M.</given-names>
            <surname>Miksa</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Nordstro</surname>
          </string-name>
          <article-title>m. A generalized method for proving polynomial calculus degree lower bounds</article-title>
          .
          <source>In CCC</source>
          , volume
          <volume>33</volume>
          of LIPIcs.
          <source>Schloss Dagstuhl</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <given-names>A.</given-names>
            <surname>Niemetz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Preiner</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Biere</surname>
          </string-name>
          .
          <article-title>Boolector 2.0 system description</article-title>
          .
          <source>JSAT</source>
          ,
          <volume>9</volume>
          :
          <fpage>53</fpage>
          {
          <fpage>58</fpage>
          ,
          <year>2014</year>
          (published
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <given-names>T.</given-names>
            <surname>Nipkow</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. C.</given-names>
            <surname>Paulson</surname>
          </string-name>
          , and M. Wenzel. Isabelle/HOL - A
          <string-name>
            <surname>Proof Assistant for Higher-Order</surname>
            <given-names>Logic</given-names>
          </string-name>
          , volume
          <volume>2283</volume>
          <source>of LNCS</source>
          . Springer,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <given-names>D.</given-names>
            <surname>Ritirc</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Biere</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Kauers</surname>
          </string-name>
          .
          <article-title>Column-wise veri cation of multipliers using computer algebra</article-title>
          .
          <source>In FMCAD</source>
          , pages
          <volume>23</volume>
          {
          <fpage>30</fpage>
          . IEEE,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <given-names>D.</given-names>
            <surname>Ritirc</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Biere</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Kauers</surname>
          </string-name>
          .
          <article-title>Improving and extending the algebraic approach for verifying bit-level multipliers</article-title>
          .
          <source>In DATE</source>
          ,
          <year>2018</year>
          , in press.
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32. A.
          <string-name>
            <surname>Sayed-Ahmed</surname>
            , D. Gro e, U. Kuhne, M. Soeken, and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Drechsler</surname>
          </string-name>
          .
          <article-title>Formal veri cation of integer multipliers by combining Grobner basis with logic reduction</article-title>
          .
          <source>In DATE</source>
          , pages
          <volume>1048</volume>
          {
          <fpage>1053</fpage>
          . IEEE,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33. A.
          <string-name>
            <surname>Sayed-Ahmed</surname>
            , D. Gro e, M. Soeken, and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Drechsler</surname>
          </string-name>
          .
          <article-title>Equivalence checking using Grobner bases</article-title>
          .
          <source>In FMCAD</source>
          , pages
          <volume>169</volume>
          {
          <fpage>176</fpage>
          . IEEE,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <string-name>
            <given-names>A.</given-names>
            <surname>Tiwari</surname>
          </string-name>
          .
          <article-title>An Algebraic Approach for the Unsatis ability of Nonlinear Constraints</article-title>
          , pages
          <volume>248</volume>
          {
          <fpage>262</fpage>
          . Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35. Wolfram Research, Inc. Mathematica,
          <year>2016</year>
          . Version 10.4.
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36.
          <string-name>
            <surname>C. Yu</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Brown</surname>
            , D. Liu,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Rossi</surname>
            , and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Ciesielski</surname>
          </string-name>
          .
          <article-title>Formal veri cation of arithmetic circuits by function extraction</article-title>
          .
          <source>IEEE TCAD</source>
          ,
          <volume>35</volume>
          (
          <issue>12</issue>
          ):
          <volume>2131</volume>
          {
          <fpage>2142</fpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          37.
          <string-name>
            <given-names>L.</given-names>
            <surname>Zhang</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Malik</surname>
          </string-name>
          .
          <article-title>Validating SAT solvers using an independent resolutionbased checker: Practical implementations and other applications</article-title>
          .
          <source>In DATE</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          38. E. Zulkoski,
          <string-name>
            <given-names>C.</given-names>
            <surname>Bright</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Heinle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I. S.</given-names>
            <surname>Kotsireas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Ganesh</surname>
          </string-name>
          .
          <article-title>Combining SAT solvers with computer algebra systems to verify combinatorial conjectures</article-title>
          .
          <source>J. Autom. Reasoning</source>
          ,
          <volume>58</volume>
          (
          <issue>3</issue>
          ):
          <volume>313</volume>
          {
          <fpage>339</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>