<!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>Lemmas for Satis ability Modulo Transcendental Functions via Incremental Linearization (extended abstract)</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ahmed Irfan</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alessandro Cimatti</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alberto Griggio</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Roberto Sebastiani</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marco Roveri</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Fondazione Bruno Kessler</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Stanford University</institution>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University of Trento</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Incremental linearization is a conceptually simple, yet e ective, technique that we have recently proposed for solving satis ability problems over nonlinear real arithmetic constraints, including transcendental functions. A central step in the approach is the generation of linearization lemmas, constraints that are added during search to the SMT problem and that form a piecewise-linear approximation of the nonlinear functions in the input problem. It is crucial for both the soundness and the e ectiveness of the technique that these constraints are valid (to not remove solutions) and as general as possible (to improve their pruning power). In this extended abstract, we provide more details about how linearization lemmas are generated for transcendental functions, including proofs of their soundness. Such details, which were missing in previous publications, are necessary for an independent reimplementation of the method.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Copyright c by the paper's authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
this extended abstract, we close this gap, by providing the missing details about how linearization lemmas are
generated for transcendental functions, including proofs of their soundness.
2
2.1</p>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <sec id="sec-2-1">
        <title>Basic de nitions</title>
        <p>We assume the standard rst-order quanti er-free logical setting and standard notions of theory, satis ability,
and logical consequence. We denote formulas with '; , terms with t, variables with x; y; a; b, functions with
f; tf; ftf, each possibly with subscripts. If is a model and x is a variable, we write [x] to denote the value
of x in , and we extend this notation to terms and formulas in the usual way.</p>
        <p>
          A transcendental function (tf) is an analytic function that does not satisfy a polynomial equation (in
contrast to an algebraic function [
          <xref ref-type="bibr" rid="ref6 ref8">8, 6</xref>
          ]). Within this paper we consider univariate exponential, logarithmic, and
trigonometric functions. We denote with NTA the theory of non-linear real arithmetic (NRA) extended with
these transcendental functions.
        </p>
        <p>A tangent line to a univariate function f (x) at a point of interest x = a is a straight line that \just touches"
the function at the point, and represents the instantaneous rate of change of the function f at that one point.
The tangent line TanLinef;a(x) to the function f at point a is the straight line de ned as follows:
TanLinef;a(x) =_ f (a) +
f (a) (x</p>
        <p>a)
d
dx
where ddx f is the rst-order derivative of f wrt. x.</p>
        <p>A secant line to a univariate function f (x) is a straight line that connects two points on the function plot.
The secant line SecLinef;a;b(x) to a function f between points a and b is de ned as follows:
SecLinef;a;b(x) =_
(x</p>
        <p>a) + f (a):
f (a)
a
f (b)
b</p>
        <p>For a function f that is twice di erentiable at point c, the concavity of f at c is the sign of its second
derivative evaluated at c. We denote open and closed intervals between two real numbers l and u as ]l; u[ and
[l; u] respectively. Given a univariate function f over the reals, the graph of f is the set of pairs fhx; f (x)i j x 2 Rg.
We might sometimes refer to an element hx; f (x)i of the graph as a point.</p>
        <p>Proposition 1 Let f be a univariate function. If f 00(x) &gt; 0 for all x 2 [l; u], then for all a; x 2 [l; u]
TanLinef;a(x) f (x), and for all a; b; x 2 [l; u] ((a 6= b ^ a x b) ! SecLinef;a;b(x) f (x)).</p>
        <sec id="sec-2-1-1">
          <title>If f 00(x) &lt; 0, then the dual property holds.</title>
        </sec>
        <sec id="sec-2-1-2">
          <title>Taylor Series and Taylor's Theorem. Given a function f (x) that has n + 1 continuous derivatives at x = a, the Taylor series of degree n centered around a is the polynomial:</title>
          <p>Pn;f;a(x) =_
(x</p>
          <p>a)i
n
X f (i)(a)
i=0
i!
where f (i)(a) is the evaluation of i-th derivative of f (x) at point x = a. The Taylor series centered around 0 is
also called Maclaurin series.</p>
          <p>According to Taylor's theorem, any continuous function f (x) that is n + 1 di erentiable can be written as the
sum of the Taylor series and the remainder term:
where Rn+1;f;a(x) is basically the Lagrange form of the remainder, and for some point b between x and a it is
given by:</p>
          <p>f (x) = Pn;f;a(x) + Rn+1;f;a(x)
Rn+1;f;a(x) =_
f (n+1)(b)
(n + 1)!
(x</p>
          <p>a)n+1:
bool incremental-linearization ('):
1. 'b = initial-abstraction(')
2. = ;
3. precision := initial-precision ()
4. while true:
5. if budget-exhausted ():
6. abort
7. hres; bi = check-linear ('b ^ V )
8. if not res:
9. return false
10. hsat; 0i := check-refine (', b, precision)
11. if sat:
12. return true
13. else:
14. precision := maybe-increase-precision ()
15. 00 := refine-extra (', b)
16. := [ 0 [ 00</p>
          <p>The value of the point b is not known, but the upper bound on the size of the remainder Rnu+1;f;a(x) at a point
x can be estimated by:</p>
          <p>Rnu+1;f;a(x) =_</p>
          <p>max ( f (n+1)(c)j)
c2[min(a;x);max(a;x)] j
j(x
(n + 1)!
a)n+1j :
This allows to obtain two polynomials that are above and below the function at a given point x, by considering
Pn;f;a(x) + Rnu+1;f;a(x) and Pn;f;a(x) Rnu+1;f;a(x) respectively.
2.2</p>
          <p>
            Incremental linearization
The main incremental linearization algorithm is shown in Fig. 1. In the following, we summarize its main steps.
For the full details, we refer the reader to [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ]. The solving procedure follows a classic abstraction-re nement
loop. Initially, all non-linear multiplications and transcendental functions are treated as uninterpreted functions,
resulting in a formula 'b over the theory of linear arithmetic and uninterpreted functions. Note that also is
treatead as an uninterpreted constant.1 Then, at each iteration the current safe approximation 'b of the input
formula ' is re ned by adding new constraints that rule out one (or possibly more) spurious solutions, until one
of the following conditions occurs: (i) the resource budget (e.g. time, memory, number of iterations) is exhausted;
or (ii) 'b ^ V becomes unsatis able in the theory of linear arithmetic and uninterpreted functions (UFLRA);
or (iii) the satis ability result (in UFLRA) for 'b ^ V can be lifted to a satis ability result for the original
formula '. An initial current precision is set (calling the function initial-precision), and this value is possibly
increased at each iteration (calling maybe-increase-precision) according to the result of check-refine and
some heuristic.
          </p>
          <p>
            The core of the procedure is the check-refine function, shown in Fig. 2. First, if the formula contains also
some non-linear polynomials, check-refine performs the re nement of non-linear multiplications as described
in [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ]. Then, the function iterates over all the transcendental function applications tf(x) in ' (lines 3{7), and
checks whether the model b computed for 'b is consistent with their semantics.
          </p>
          <p>
            Intuitively, in principle, this amounts to check that tf(b[x]) is equal to b[ftf(x)]. In practice, however, the
check cannot be exact, since transcendental functions at rational points typically have irrational values (see e.g.
[
            <xref ref-type="bibr" rid="ref7">7</xref>
            ]), which cannot be represented exactly in an SMT solver for linear arithmetic. Therefore, for each tf(x) in
', we instead compute two polynomials, Pl(x) and Pu(x), with the property that tf(b[x]) belongs to the open
interval ]Pl(b[x]); Pu(b[x])[. The polynomials are computed using Taylor series, according to the given current
precision, by the function get-polynomial-bounds. If the model value b[ftf(x)] for tf(x) is outside the above
interval, then the function block-spurious-nta-term is used to generate some linear lemmas that will remove
the spurious point hb[x]; b[ftf(x)]i from the graph of the current abstraction of tf(x) (line 7).
          </p>
          <p>If at least one point was re ned in the loop of lines 3{7, the current set of lemmas is returned (line 10). If
instead none of the points was determined to be spurious, the function check-model is called (line 9). This
1In this case, we add a constraint l</p>
          <p>
            u , for two suitable values l and u , which are re ned when needed (see x5).
hbool; lemma-seti check-refine (', b, precision):
1. := check-refine-NRA (', b) # NRA re nement of [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ]
2. := 10 precision
3. for all tf(x) 2 ':
4. c := b[x]
5. hPl(x); Pu(x)i := get-polynomial-bounds (tf(x), c, )
6. if b[ftf(x)] Pl(c) or b[ftf(x)] Pu(c):
7. := [ block-spurious-nta-term (tf(x), b, Pl(x), Pu(x))
8. if = ;:
91.0. if chreectku-rmnohdterlue(';;,ib):
11. else:
12. return check-refine (', b, precision+1)
13. else:
14. return hfalse; i
function tries to determine whether the abstract model b does indeed imply the existence of a model for the
original formula '. If the check fails, we repeat the check-refine call with an increased precision (line 12).
          </p>
        </sec>
        <sec id="sec-2-1-3">
          <title>Re ning a spurious point with secant and tangent lines.</title>
          <p>Given a transcendental function application tf(x), the block-spurious-nta-term function generates a set
of lemmas for re ning the interpretation of ftf(x) by constructing a piecewise-linear approximation of tf(x)
around the point b[x], using one of the polynomials Pl(x) and Pu(x) computed in check-refine. The kind
of lemmas generated, and which of the two polynomials is used, depend on (i) the position of the spurious
value b[ftf(x)] relative to the correct value tf(b[x]), and (ii) the concavity of tf around the point b[x]. If the
concavity is negative (resp. positive) and the point is below (resp. above) the function, the linear approximation
is given by a pair of secants to the lower (resp. upper) bound polynomial Pl (resp. Pu) around b[x] (lines 4{16
of Fig. 3). Otherwise, i.e. the concavity is positive (resp. negative) or equal to zero, and the point lies below
(resp. above) the function, then the linear approximation is given by a tangent to the lower (resp. upper) bound
polynomial Pl (resp. Pu) at b[x] (lines 17{22 of Fig. 3). The two situations are illustrated in Fig. 4.</p>
          <p>In the case of secant re nement, a second value, di erent from b[x], is required to draw a secant line. The
function get-previous-secant-points returns the set of all the points at which a secant re nement was
performed in the past for tf(x). From this set, we take the two points closest to b[x], such that l &lt; b[x] &lt; u and
that l; u do not cross any in ection point, and use those points to generate two secant lines and their validity
intervals. Before returning the set of the two corresponding lemmas, we also store the new secant re nement
point b[x] by calling store-secant-point.</p>
          <p>In the case of tangent re nement, the function get-tangent-bounds (line 20) returns a validity interval for
the lemma, i.e. an interval [l; u] such that the tangent line is guaranteed not to cross the transcendental function
tf. In order to generate strong lemmas that can prune the search space e ectively, it is important that this
validity interval is as large as possible. At the same time, it is critical for correctness that the interval is not too
large, i.e. that no intersection exists between the transcendental function and its tangent at c in [l; u]. We shall
describe in detail how such validity intervals are computed for the transcendental functions that are currently
supported by our implementation (namely exp and sin) in the next two Sections.
3
3.1</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Lemmas for exp</title>
      <sec id="sec-3-1">
        <title>Polynomial Approximation</title>
        <p>Since ddx exp(x) = exp(x), all the derivatives of exp are positive. The polynomial Pn;exp;0(x) is given by the
Maclaurin series</p>
        <p>Pn;exp;0(x) =</p>
        <p>Xn xi</p>
        <p>
          i!
i=0
and behaves di erently depending on the sign of x. Thus, get-polynomial-bounds (see Fig. 2) distinguishes
two cases for nding the polynomials Pl(x) and Pu(x):2
2The case x = 0 is treated specially, by adding the lemma exp(0) = 1 (see [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]).
        </p>
        <p>lemma-set block-spurious-nta-term (tf(x), b, Pl(x), Pu(x)):
1. c := b[x]
2. v := b[ftf(x)]
3. conc := get-concavity (tf(x), c)
4. if (v Pl(c) and conc &lt; 0) or (v Pu(c) and conc &gt; 0):</p>
        <p># secant re nement
5. prev := get-previous-secant-points (tf(x))
6. l := maxfp 2 prev j p &lt; cg
7. u := minfp 2 prev j p &gt; cg
8. P := (v Pl(c)) ? (Pl) : (Pu)
9. Sl(x) := P (l)l
10. Su(x) := P (uu) cP (c) (x u) + P (u)
11. l := (conc &lt; 0) ? (ftf(x) Sl(x)) : (ftf(x)
12. u := (conc &lt; 0) ? (ftf(x) Su(x)) : (ftf(x)
13. l := (x l) ^ (x c)
14. u := (x c) ^ (x u)
15. store-secant-point (tf(x), c)
16. return f( l ! l), ( u ! u)g
17. else: # (v Pl(c) and conc 0) or (v Pu(c) and conc</p>
        <p># tangent re nement
18. P := (v Pl(c)) ? (Pl) : (Pu)
19. T (x) := P (c) + ddx P (c) (x c) # tangent of P at c
20. hl; ui := get-tangent-bounds (tf(x), c, ddx P (c))
21. := (conc &lt; 0) ? (ftf(x) T (x)) : (ftf(x) T (x))
22. return f((x l) ^ (x u)) ! g</p>
        <p>Sl(x))
Su(x))</p>
        <p>0)
P (c) (x l) + P (l) # secant of P between l and c
c</p>
        <p>Case x &lt; 0: we have that Pn;exp;0(x) &lt; exp(x) if n is odd and n 3, and Pn;exp;0(x) &gt; exp(x) if n is even and
n 3; we therefore set Pl(x) = Pn;exp;0(x) and Pu(x) = Pn+1;exp;0(x) for a suitable n so that the required
precision is met;
Case x &gt; 0: we have that Pn;exp;0(x) &lt; exp(x) and Pn;exp;0(x) (1
therefore we set Pl(x) = Pn;exp;0(x) and Pu(x) = Pn;exp;0(x) (1
(xnn++11)! ) 1 &gt; exp(x) when (1
xn+1
(n+1)! ) 1 for a suitable n
xn+1
(n+1)! ) &gt; 0,
3. 3</p>
        <p>Since the concavity of exp is always positive, the tangent re nement will always give lower bounds for exp(x),
and the secant re nement will give upper bounds (see Fig. 3).
3.2</p>
        <p>Tangent Validity Interval
Lemma 1 Let c 2 Q and c 6= 0. If the concavity of Pl at point c is positive, then the concavity of Pl is also
positive for x 2 [c; 1].</p>
        <p>Proof. We know Pl(x) = Pn;exp;0(x) and its second-order derivative is Pl00(x) = Pn 2;exp;0(x). Let us suppose
that the concavity of Pl at a point c is positive, i.e. Pl00(c) &gt; 0. We now show that the concavity of Pl remains
postive in the interval [c; 1]. We split the proof into two cases: c &gt; 0 and c &lt; 0.</p>
        <p>Case c &gt; 0: The statement holds because Pl00 is an increasing function { Pl000 is positive in the interval [c; 1].</p>
        <p>Case c &lt; 0: The statement also holds because Pl00 is an increasing function { Pl000(x) = Pn 3;exp;0(x) is an
even-degree polynomial and by Taylor's Theorem we know that it is greater than exp, which is always positive.
Lemma 2 The validity interval for the tangent re nement of exp is [
1; 1].</p>
        <p>Proof. The tangent re nment of exp is done by constructing a tangent line at a point c (TanLinePl;c(x)) to Pl.
Due to the way we construct Pl, the concavity of Pl is ensured to match with the concavity of exp (meaning the
concavity is positive) at c. Let I+ denote the interval [c; 1] and I denote the interval [ 1; c[.
3We slightly abuse the notation: Pu(x) is not a polynomial but a rational function.</p>
        <p>Case x c: by Lemma 1 we can conclude that the concavity of Pl(x) will remain positive in I+.
TanLinePl;c(x) will be below Pl in I+, and therefore it will be also below exp in I+.</p>
        <p>Case x &lt; c and c &gt; 0: We know that the concavity of Pl is positive in the interval [0; 1] and TanLinePl;c(x)
will be below exp. Moreover, the slope Pl0(c) is always greater than 1, which is greater than the slope exp(d)
for every d &lt; 0. And moving towards 1 the slope of exp is decreasing, while the slope of TanLinePl;c(x) is
constant and its values are going to decrease quicker than exp. Moreover, TanLinePl;c(x) will cross the origin
whereas exp stays positive and converges to zero at 1.</p>
        <p>Case x &lt; c and c &lt; 0: Pl = Pn;exp;0(x) with n being an odd number. The rst-order derivative of Pl is
Pl0 =_ Pn 1;exp;0(x), which is above exp. This means that the slope of TanLinePl;c(x) is greater than the exp
slope. So, TanLinePl;c(x) will be below exp (same argument as above).</p>
        <p>Thanks to Lemma 2, therefore, the implementation of get-tangent-bounds for exp can always return the
interval [ 1; 1].
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Lemmas for sin</title>
      <p>The correctness of our re nement procedure relies crucially on being able to compute the concavity of the
transcendental function tf at a given point c. This is needed in order to know whether a computed tangent or
secant line constitutes a valid upper or lower bound for tf around c (see 3). In the case of the sin function,
computing the concavity at an arbitrary point c is problematic, since this essentially amounts to computing the
value c0 2 [ ; [ s.t. c = 2 n + c0 for some integer n, because in [ ; [ the concavity of sin(c0) is the opposite
of the sign of c0. This is not easy to compute because is a transcendental number.</p>
      <p>
        In order to solve this problem, we exploit another property of sin, namely its periodicity (with period 2 ).
More precisely, we split the reasoning about sin depending on two kinds of periods: base period, in the interval
[ ; ], and extended period (everywhere else in R). For more details about the extended period, we refer to
Section 4.2.2 in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Here, we focus only on the base period, where all the re nement lemmas are instantiated.
We can easily compute the concavity of sin in the base period by just looking at the sign of b[x], provided that
l b[x] l , where l is the current lower bound for .
4.1
      </p>
      <p>Polynomial Approximation
For each term sin(x) that needs to be re ned, we rst check whether b[x] 2 [ l ; l ], where l is the current lower
bound for . If this is the case, then we derive the concavity of sin at b[x] by just looking at the sign of b[x]. We
can therefore perform tangent or secant re nement as shown in Fig. 3. More precisely, get-polynomial-bounds
nds the lower and upper polynomials using Taylor's theorem, which ensures that:</p>
      <p>Pn;sin;0(x)</p>
      <p>Rnu+1;sin;0(x)
sin(x)</p>
      <p>Pn;sin;0(x) + Rnu+1;sin;0(x)
where</p>
      <p>Pn;sin;0(x) =
Rnu+1;sin;0(x) = (2(n + 1))!
n
X ( 1)k
(2k + 1)!</p>
      <p>x2k+1
Lemma 3 The concavity of Pu matches with the concavity of sin in the interval ]0; 2 ].</p>
      <p>Proof. The concavity of sin is negative in the interval ]0; [. At a point of interest c &gt; 0, we ensure that
Pu00(c) &lt; 0. This requires that we expand the Taylor series with n &gt; 0, so that the resulting polynomial has
degree strictly greater than 2. Using interval arithmetic, we can easily show that Pu00 is always negative in the
interval ]0; 2 ] 4.</p>
      <p>Lemma 4 The concavity of Pl matches with the concavity of sin in the interval [ 2 ; 0[.</p>
      <sec id="sec-4-1">
        <title>Proof. Similar to the proof of Lemma 3.</title>
        <p>Lemma 5 Let c 2 ]0; [. If the concavity of Pu at point c is negative, then the concavity of Pu is also negative
in the interval ]0; c].</p>
        <p>Proof. Case c 2 : the statement holds due to Lemma 3.</p>
        <p>Case c &gt; 2 : We know Pu(x) = Pkn=0 ( (12)kk+x12)k!+1 + (2x(2n(n++11)))! , and Pu00(x) = Pkn=02 ( 1)(k2+k+11x)2!k+1 + (2x(2n(n++11)))! .
Moreover, Pu00(c) &lt; 0. The derivative of Pu00 is given by Pu000(x) = Pkn=02 ( 1)(k2+k1)! x2k + (x2n2n++11)! , which can be
rewritten as Pu000(x) = (Pn 2;cos;0(x) Rnu 1;cos;0(x)). By Taylor's Theorem, we know (Pn 2;cos;0(x) Rnu 1;cos;0(x)) &lt;
cos(x) and so Pu000(x) &gt; cos(x). Since cos(x) &gt; 0 in the interval ] 2 ; [, we can conclude that Pu00 is an
increasing function. Given that Pu00(c) &lt; 0 and we can conclude Pu00 will also be negative in the interval ]0; c[.</p>
        <p>; 0[. If the concavity of Pl at point c is positive, then the concavity of Pl is also positive
Lemma 6 Let c 2 ]
in the interval [c; 0[.</p>
      </sec>
      <sec id="sec-4-2">
        <title>Proof. Similar to the proof of Lemma 5.</title>
        <p>Lemma 7 Let I+ =_ ]0; [. The validity bounds for the tangent re nement of sin in I+ is I+.
Proof. The tangent re nement of sin in I+ is done by constructing a tangent line (TanLinePu;c(x)) at a point
c 2 I+ to Pu. Due to the way we construct Pu, the concavity of Pu is ensured to match with the concavity of
sin (meaning the concavity is negative) at c.</p>
        <p>Case x c: By Lemma 5, we can conclude that the concavity of Pu(x) remains negative. TanLinePu;c(x) is
above Pu, and therefore it is also above sin.</p>
        <p>Case x &gt; c and c 2 : Due to Lemma 3, the concavity of Pu matches with the concavity of sin. So,
TanLinePu;c(x) is above in the interval ]0; 2 [. Moreover, the slope of TanLinePu;c(x) is positive and the line
does not cross sin in the interval because the slope of sin is negative in ] 2 ; [.</p>
        <p>Case x &gt; c and c &gt; 2 : The slope Pu0 (x) = Pkn=0 ( 1(2)kk)!x2k , which can be also rewritten as Pu0 (x) = Pn;cos;0(x)+
Rnu+1;cos;0(x). We know that sin0(x) = cos(x) and by Taylor's Theorem Pn;cos;0(x) + Rnu+1;cos;0(x) cos(x). And
4Hint: Apply Horner's rule for Pu00 interval evaluation.
therefore Pu0 (x) sin0(x). The slope of sin keeps decreasing when moving from 2 to , whereas the slope of
TanLinePu;c(x) is greater than the slope of sin and is also constant. Therefore, sin will decrease and crosses the
origin faster than the tangent line.</p>
        <sec id="sec-4-2-1">
          <title>Lemma 8 Let I</title>
          <p>; 0[. The validity interval for tangent re nement of sin in I is I .</p>
        </sec>
      </sec>
      <sec id="sec-4-3">
        <title>Proof. Similar to the proof of Lemma 7.</title>
        <p>Lemma 9 The validity interval for tangent re nement is ]0; [ when x &gt; 0 and ]
; 0[ when x &lt; 0.</p>
        <p>Proof. The statement holds due to Lemma 7 and Lemma 8.</p>
        <p>Thanks to Lemma 9, therefore, the implementation of get-tangent-bounds for sin (see Fig. 3) returns the
interval ] ; 0[ if the input tangent point c is negative, and ]0; [ if it is positive.5
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Lemmas for</title>
      <p>
        The re nement of is done by expanding the series given by Machin's formula [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. We keep a current precision
n (a positive integer) for , which is used to update the bounds l and u using the inequalities (1) and (2)
respectively:
:
(1)
(2)
      </p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgement References</title>
      <p>
        We would like to thank Dejan Jovanovic and Andrew Reynolds for fruitful discussions about the tangent re
nement, that motivated us to write this note.
5Note that the case of 0 is treated specially, by adding the lemma sin(0) = 0 (see [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]).
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Berggren</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Borwein</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Borwein</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          : Pi:
          <string-name>
            <given-names>A Source</given-names>
            <surname>Book</surname>
          </string-name>
          . Springer New York (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Cimatti</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Griggio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Irfan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roveri</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sebastiani</surname>
          </string-name>
          , R.:
          <article-title>Invariant checking of NRA transition systems via incremental reduction to LRA with EUF</article-title>
          .
          <source>In: TACAS. LNCS</source>
          , vol.
          <volume>10205</volume>
          , pp.
          <volume>58</volume>
          {
          <issue>75</issue>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Cimatti</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Griggio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Irfan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roveri</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sebastiani</surname>
          </string-name>
          , R.:
          <article-title>Satis ability modulo transcendental functions via incremental linearization</article-title>
          . In: de Moura, L. (ed.)
          <source>CADE 26. LNCS</source>
          , vol.
          <volume>10395</volume>
          , pp.
          <volume>95</volume>
          {
          <fpage>113</fpage>
          . Springer (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Cimatti</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Griggio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Irfan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roveri</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sebastiani</surname>
            ,
            <given-names>R.:</given-names>
          </string-name>
          <article-title>Experimenting on solving nonlinear integer arithmetic with incremental linearization</article-title>
          .
          <source>In: SAT. Lecture Notes in Computer Science</source>
          , vol.
          <volume>10929</volume>
          , pp.
          <volume>383</volume>
          {
          <fpage>398</fpage>
          . Springer (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Cimatti</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Griggio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Irfan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roveri</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sebastiani</surname>
          </string-name>
          , R.:
          <article-title>Incremental Linearization for Satis ability and Veri cation Modulo Nonlinear Arithmetic and Transcendental Functions</article-title>
          .
          <source>ACM Trans. Comput. Log</source>
          .
          <volume>19</volume>
          (
          <issue>3</issue>
          ),
          <volume>19</volume>
          :1{
          <fpage>19</fpage>
          :
          <fpage>52</fpage>
          (
          <year>2018</year>
          ). https://doi.org/10.1145/3230639
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Hazewinkel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <source>Encyclopaedia of Mathematics: Stochastic Approximation { Zygmund Class of Functions. Encyclopaedia of Mathematics</source>
          , Springer Netherlands (
          <year>1993</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Niven</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Numbers: Rational and Irrational</article-title>
          . Mathematical Association of America (
          <year>1961</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Townsend</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>Functions of a Complex Variable</article-title>
          . Read
          <string-name>
            <surname>Books</surname>
          </string-name>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>