<!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>Specializations and Symbolic Modeling</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Vladimir Peschanenko</string-name>
          <email>vladimirius@gmail.com</email>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Anton Guba</string-name>
          <email>antonguba@ukr.net</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Constantin Shushpanov</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Glushkov Institute of Cybernetics of NAS of Ukraine</institution>
          ,
          <addr-line>40, Glushkova ave., Kyiv, 03680</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Key terms. FormalMethod</institution>
          ,
          <addr-line>MathematicalModeling, SoftwareComponent, VerificationProcess</addr-line>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Kherson State University</institution>
          ,
          <addr-line>27, 40 rokiv Zhovtnya str., Kherson, 73000</addr-line>
          <country country="UA">Ukraine</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>LLC «Information Software Systems»</institution>
          ,
          <addr-line>15, Bozhenko str., Kyiv, 03680</addr-line>
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <fpage>490</fpage>
      <lpage>505</lpage>
      <abstract>
        <p>We present the technique that allows splitting first-order logic formulae into parts which helps to use the special algorithms of satisfiability checking and predicate transformer, which are the specializations. We describe the mathematical description of the algorithm of the constructing specializations and a few particular approaches to them, which speed up modeling of industrial models. We prove the correctness of satisfiability and predicate transformer functions. We consider forward and backward applicability of basic protocols during symbolic modeling and verification We introduce the examples for each specialization. We provide the experiments with typical real examples.</p>
      </abstract>
      <kwd-group>
        <kwd />
        <kwd>Symbolic modeling</kwd>
        <kwd>satisfiability</kwd>
        <kwd>predicate transformer</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The technique of symbolic verification of requirement specifications of software
systems has shown good results in automatic detection of reachability of deadlocks and
violation of user-defined properties [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. In previous works [
        <xref ref-type="bibr" rid="ref2 ref3 ref4">2-4</xref>
        ] symbolic models of
systems being transition systems with symbolic states represented by formulae of first
order logic were considered. A relation of transitions between the formulae is
determined and marked by basic protocols, which are considered as actions, performed in
the system. A basic protocol is a formula of dynamic logic
x( ( x, a)  P( x, a)   ( x, a)) and it describes local properties of the system in
terms of pre- and postconditions α and β. Both are formulae of first order multisorted
logic interpreted on a data domain, P is a process, represented by means of MSC
diagram and describes the reaction of a system triggered by the precondition, x is a set of
typed data variables, and a is a set of environment attributes. The general theory of
basic protocols is presented in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>
        A transition is considered as an operator in the space of postcondition formulae.
As the operator transforms one formula to another, in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] a term “predicate
transformer” is used. Thus, to compute transitions between the states of such models basic
protocols are interpreted as predicate transformers: for given symbolic state of the
system and given basic protocol the direct predicate transformer generates the next
symbolic state as its strongest postcondition, and the backward predicate transformer
generates the previous symbolic state as its weakest precondition. These concepts
have been implemented in VRS (Verification of Requirement Specifications) system
[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and IMS (Insertion Modeling System) system [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        An amount of papers with novel and very efficient techniques for computing
satisfiability using SAT/SMT has been published in the last years, and some very efficient
SMT tools are now available (e.g., BarceLogic [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], CVCLite/CVC/CVC4 [
        <xref ref-type="bibr" rid="ref10 ref11 ref12">10,11,12</xref>
        ],
DLSAT [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], haRVey [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], MathSAT [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], SDSAT [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], TSAT++ [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], UCLID
[
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], Yices [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], Verifun [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], Zapato [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], Z3 [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]). An amount of benchmarks,
mostly derived from verification problems, is available at the SMT-LIB [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ].
Workshops devoted to SMT and official competitions on SMT tools are run yearly.
      </p>
      <p>
        All these tools could be configured with the help of many parameters, which
means the usage of some techniques, tactics, heuristics or not, in order to gain in
performance. In the paper [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] the algorithm configuration problem is stated as follows:
given an algorithm, a set of parameters for the algorithm, and a set of input data,
found parameter values under which the algorithm achieves the best possible
performance on the input data. It gives a possibility of automated tuning of algorithm for
obtaining performance on formulae of some theory.
      </p>
      <p>
        Usually during modeling of real projects we deal with complex environment states
and simple formulae of basic protocols (pre- and postconditions). It means that we
should check the satisfiability of the conjunction of the environment state and the
precondition formula and transform this whole big formula with the help of predicate
transformer [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Obviously, the manipulation with whole formulae is not required for
most of cases.
      </p>
      <p>For example, let i, j : int, f : int  int be attributes and f (i)  0  f (0)  5 
 j  0 be an environment state, and 1  j : j  1 be a basic protocol. Let’s apply
this basic protocol to the environment state. First, the satisfiability of conjunction of
basic protocol precondition and environment state should be checked:
f (i)  0  f (0)  5  j  0 . This checking should use the notion of functional
symbols: (i  0)  ( f (i)  f (0)) . After that we should apply basic protocol
postcondition to conjunction of environment state and precondition (see section Application of
Basic Protocol):
(v : int)( f (i)  0  f (0)  5  v  0  ( j  v  1)) 
 f (i)  0  f (0)  5  (v : int)(v  0  ( j  v  1)) 
 f (i)  0  f (0)  5  j  1</p>
      <p>It is known that basic protocol changes attribute j only (see section about predicate
transformers). It means that we could apply basic protocol to small part of
environment state that depends on j, but not to whole environment state formula. In this
example it could be j  0 only. If there are no predicates in projects ,which could
compare values of attribute j with values of other attributes, then we could use some
special theories for manipulating with such formulae. In this example numeral intervals
could be used for representation of values of attribute j. We call such special theories
Specialization of sat, pt functions according to our general algorithm.</p>
      <p>
        So, the main goal of this paper is to present a mathematical description of
algorithm of constructing specializations and a few particular approaches to specialization
which speed up modeling of industrial models. This paper is a continuation of the
[
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], where only concrete values as a kind of specialization were described.
      </p>
      <p>In the Section 2 we describe the process of forward application of a basic protocol
with the help of the satisfiability and the forward predicate transformer. In the Section
3 we present an applicability of basic protocols using satisfiability and backward
predicate transformer. The specializations by memory usage and functional symbols
are proposed in the Section 4. The results of experiments are discussed in the Section
5. In the Section 6 we summarize advantages of usage of the specializations and what
could be done in the nearest future.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Forward Application of Basic Protocol</title>
      <p>Let S(a) be an environment state, x( (x, a)  P(x, a)   (x, a)) be a basic
protocol, where x – parameters of basic protocol, a – attributes of model,
D(x, a)  E(a)  (x, a) – conjunction of environment state and precondition of
basic protocol.</p>
      <p>At the first step of application of basic protocol satisfiability of conjunction of
environment state and precondition of basic protocol is checked: sat(D(x, a)) . If the
formula is unsatisfiable, then basic protocol is not applicable to environment state
S(a). If not, then process P(x, a) is run and after forward predicate transformer is
applied: pt(D(x, a), (x, a)) . The process of P(x, a) is not considered in the paper,
because the specialization tries to speed up the functions sat and pt.
2.1</p>
      <sec id="sec-2-1">
        <title>Satisfiability</title>
        <p>The checking formula satisfiability function sat is based on the Shostak method,
adapted to combination of numerical, symbolic and enumerated data types. If all of
the attribute expressions (simple attributes and functional symbols with parameters)
that are free in the formula S are simple, then for satisfiability checking it is sufficient
to prove validity of the closed formula (a, x)D(x, a) , where a is a set of all simple
attributes which occur in S, x is a set of parameters of basic protocol. For attribute
expressions with parameters (including access functions to the elements of arrays),
the Ackermann reduction of the uninterpreted functional symbols is used, where
attribute expression is an attribute or functional symbol with parameters.</p>
        <p>
          The Shostak method consists of the following. An expression of the form f (x) is
called as Functional Expression, if f is an attribute and x is a list of its parameters. At
first, superpositions of functional expressions are eliminated by successive
substitution of every internal occurrence of f (x) by a new variable y, bounded by existential
quantifier and added to the formula y  f (x) . For example, formula P( f (g(x))) is
replaced by formula y( y  g(x)  P( f ( y))) . After all such replacements there will
not be complex functional expressions in the formula. Further, for every attribute
expression f of functional type all its occurrences f (x1),..., f (xn ) with the different
parameters x1,..., xn are considered. Occurrence f (xi ) is replaced by variable yi ,
bounded by existential quantifier and substitutive equations (xi  x j )  ( yi  y j )
are added. Now in the formula there are only simple attributes, and a method
considered in [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ] is used.
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Forward Predicate Transformer</title>
        <p>In general case, the post-condition looks like  (x, a)  R(x, a)  C(x, a) , where
R  (r1 : t1  r2 : t2  ...) is a conjunction of assignments and C(x,a) is a formula
part of post-condition.</p>
        <p>We will consider three sets of functional expressions (we consider attributes as a
functional expression with 0 arity): r, s and z. Set r  (r1, r2 ,...) consists of the left
parts of assignment, and also of other functional expressions that recursively depend
on the left parts. In other words, r consists of the left parts of assignments and, if
some functional expression f is included into this set, then all functional expressions
in which f occurs are also included in r. Set s  (s1, s2 ,...) consists of functional
expressions which have external occurrences (not in arguments of such functional
expressions) in formula part C of post-condition, but do not coincide with expressions
from the set r. Finally, set z  (z1, z2 ,...) consists of functional expressions which
have external occurrences in formula D in right parts of assignments and in internal
occurrences (in arguments if functional expressions) of the functional expressions of
formula part C of post-condition and left parts of assignments, but these assignments
are not included in two other sets (including parameter of basic protocol). Now,
considering formulae, from which a post-condition and formula D are constructed as
functions of external occurrences of elements of these sets, we get a presentation of
post-condition in the following form:</p>
        <p>B(r, s, z)  (r1(r, s, z) : t1(r, s, z)  r2 (r, s, z) : t2 (r, s, z)  ...)  C(r, s, z) ,
Predicate transformer is determined by the following formula:
pt(D(r, s, z), (r, s, z))  q1  q2  ... ,where
qi  (u,v)(D(u,v, z)  R(u,v, z)  Ei (u,v, z)  C(r, s, z)) ,
R(u, v, z)  (r1(u,v, z)  t1(u,v, z))  (r2 (u,v, z)  t2 (u,v, z))  ...) ,</p>
        <p>Formula R(u, v, z) is a quantifier-free part of the assignment formula. Set of the
variables u(v) represents new variables for each attribute expression from r(s) set. The
pt substitutes attributes from r(s) set to variables from u(v) set in corresponded part of
formula.</p>
        <p>Each of disjunctive members qi corresponds to one of possible means of
identification of functional expressions occurring in formulae  (x, a) , and Ei (u, v, z) is a set
of equalities and inequalities corresponding to such identification.</p>
        <p>To describe the construction of Ei (u, v, z) we will consider the set M of all pairs
of functional expressions in the form ( f (k ), f (l)), k  (k1, k2 ,...),l  (l1,l2 ,...) , where
f (k ) is chosen from set z, and f (l) – from sets r and s. These functional expressions
shall be equal if their arguments were equal before application of basic protocol.</p>
        <p>
          Let’s choose arbitrary subset N  M (including an empty set for every pair
( f (k ), f (l))  N we will consider conjunction of equalities
k  l,(k1  l1  k2  l2  ...) . We will unite all such conjunctions in one and will add
to it conjunctive negations of all equalities, which correspond to pairs which are not
included into the set N. We will denote the obtained formula as Gi (r, s, z) . If this
formula is satisfiable, then the choice is successful. Now obviously, f (k ) is not
independent and shall change the value because Gi (r, s, z) is true. Thus, f (k ) shall
change the value in the same way as f (l) . Set Ei (r, s, z)  Gi (r, s, z)  Hi (z,u,v)
where Hi (z,u,v) is a conjunction of equalities f (k )  w if a variable w corresponds
to f (l) . Thus, if f (k ) coincides with several functional expressions, it is not
important what variable is chosen (transitivity of equality) [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Backward Application of Basic Protocol</title>
      <p>Let S (a) be an environment state after the application of the basic protocol
x( (x, a)  P(x, a)   (x, a)) , where x is parameters of basic protocol, a –
attributes of model,  (x, a)  R(x, a)  C(x, a) , where R  (r1 : t1  r2 : t2  ...) is a
conjunction of assignments and C is a formula part of
postcondition, D(x, a)  S (a)  C(x, a) is a conjunction of environment state and formula
part of postcondition of basic protocol.
3.1</p>
      <sec id="sec-3-1">
        <title>Satisfiability</title>
        <p>At first step of application of basic protocol in backward mode satisfiability of
conjunction of environment state and formula part of postcondition of basic protocol is
checked: sat(D(x, a)) . If the formula is unsatisfiable, then the basic protocol is not
applicable to environment state S (a) .If not, then process P(x, a) is run and after a
backward predicate transformer is applied: pt 1(D(x, a), (x, a)) .</p>
      </sec>
      <sec id="sec-3-2">
        <title>Backward Predicate Transformer</title>
        <p>A backward predicate transformer considers three sets of functional expressions r, s
and z (as forward too). A postcondition of the basic protocols is represented by the
following formula:</p>
        <p>B(r, s, z)  (r1(r, s, z) : t1(r, s, z)  r2 (r, s, z) : t2 (r, s, z)  ...)  C(r, s, z)
A backward predicate transformer is determined by the following formula:
pt-1(D(r, s, z), (r, s, z))  q11  q21  ... , where
qi1  (u,v)(D(u,v, z)  R(u, r, s, z)  Ei (u,v, z))  (r, s, z) ,
R(u, r, s, z)  (u1(r, s, z)  t1(r, s, z))  (u2  t2 (r, s, z))  ...),u  {u1,u2 ,...} ,</p>
        <p>
          Each of disjunctive members qi corresponds to one of possible identification of
functional expressions, occurring in formulae  (x, a) and environment state S(a),
where Ei (u, v, z) are sets of equalities and inequalities corresponding to such
identification. Formula Ei (u, v, z) is built in the same way as in forward predicate
transformer [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ].
4
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Specialization</title>
      <p>4.1
Let
We propose to use two types of specializations:
1. Specialization by memory usage
2. Specialization by functional symbol</p>
      <p>Specialization by memory usage
a1, a2
be
sets
of
attributes from
initial environment state
a1  a2    a1  a2  a ,</p>
      <p>S (a)  S1(a1)  S2 (a2 )
is
environment
B(x, a)  x(1(x1, a1)  2 (x2 , a2 )  P(x, a)  1(x1, a1)   2 (x2 , a2 )) is basic
and
state,
protocol, where x1  x 2    x1  x 2  x .</p>
      <p>If B(x, a)  x( i (x, a)  P(x, a)   (x, a)) then sat(S(a)  ( i (x, a))) 
i i
  sat(S (a)  i (x, a)) and pt(S (a)  ( i (x, a)), (x, a))   pt(S (a) 
i i i
 i (x, a), (x, a)) . So, in the next text we consider basic protocol as B(x, a) only.
4.2</p>
      <sec id="sec-4-1">
        <title>Theorem 1</title>
        <sec id="sec-4-1-1">
          <title>Proving.</title>
          <p>Function sat builds closed formula. So,
sat(S1(a1) 1(x1 , a1)  S2 (a2 )   2 (x 2 , a2 )) 
 sat(S1(a1) 1(x1 , a1))  sat(S2 (a2 )   2 (x 2 , a2 ))
sat(S1(a1) 1(x1 , a1)  S2 (a2 )  2 (x 2 , a2 )) 
 (v1,v2 , x1, x2 )(S1(a1) 1(x1 , a1)  S2 (a2 )  2 (x 2 , a2 ))
where v1,v2 are variables generated for attribute expression which depend on
attributes a1, a2 .</p>
          <p>It is known that a1  a2    a1  a2  a  x1  x 2   
x1  x 2  x . It means that scope of quantifiers could be narrowed:
(v1, v2 , x1, x2 )(S1(a1)  1(x1 , a1)  S2 (a2 )  2 (x 2 , a2 )) 
 (v1, x1)(S1(a1)  1(x1 , a1))  (v2 , x2 )(S2 (a2 )   2 (x 2 , a2 ))  i
 sat(S1(a1)  1(x1 , a1))  sat(S2 (a2 )   2 (x 2 , a2 ))
Theorem is proved.</p>
          <p>This theorem means the following:
1. If S (a)  S1(a1)  S2 (a2 ) and  (a, x)  1(x1, a1) and S (a) is satisfiable, then it
is enough to check satisfiability of conjunction of S1(a1) 1(x1, a1) for
satisfiability checking of S (a)   (x, a) . Checking of satisfiability of S2 (a2 ) is not
required.
2. Checking of each part sat(Si (ai )  i (xi , ai )) could be done concurrently.</p>
          <p>This case could be easily generalized to a1,....,an case, because if it is possible to
build subsets a1i, ai2  ai  a1i  ai2    a1i  ai2  ai and to spilt an environment
state and basic protocol accordingly to the theorem 1, then
sat( i Si (ai )  i (xi , ai ))   sat(Si (ai )   i (xi , ai )) . So, after if we say about such
i
pair of two sets a1i, ai2  ai  a1i  ai2    a1i  ai2  ai , then we understand that it
could be applicable and for n sets.</p>
          <p>Let’s see how forward and backward predicate transformer can be applied.
4.3</p>
        </sec>
      </sec>
      <sec id="sec-4-2">
        <title>Theorem 2</title>
        <p>For forward application of basic protocol it is true that:
pt(S1(a1)  1(x1 , a1)  S2 (a2 )   2 (x 2 , a2 ),1(x1 , a1)   2 (x 2 , a2 )) 
 pt(S1(a1) 1(x1 , a1),1(x1 , a1))  pt(S2 (a2 )   2 (x 2 , a2 ), 2 (x 2 , a2 ))</p>
        <sec id="sec-4-2-1">
          <title>Proving.</title>
          <p>pt function builds sets r, s, z from postcondition 1(x1 , a1)   2 (x 2 , a2 ) and
formula S1(a1) 1(x1 , a1)  S2 (a2 )   2 (x 2 , a2 ) , where r is a set of attribute
expressions from left parts of assignments of postcondition, s is a set of attribute
expressions from formula part of postcondition, z is a set of other attribute expressions
from formula and postcondition. We know that sets of attribute expressions from pairs
S1(a1)  1(x1 , a1) , 1(x1 , a1) and S2 (a2 )   2 (x 2 , a2 ) ,  2 (x 2 , a2 ) are not
intersected. It
means that
we
could
split
each
set
r, s, z
on</p>
          <p>subsets
r  r1  r2 ,s  s1  s2 ,z  z1  z2
and
r1  r2   ,
s1  s2   ,
z1  z2   , because a1  a2  . Let’s write formula which is built by pt
function.</p>
          <p>Let</p>
          <p>D(a,x)  D1(x1,a1)  D2(x2,a2),D1(x1,a1)  S1(a1) 1(x1,a1)
,
D2  S2(a2) 2(x2 ,a2)
and
1(x1,a1)  R1(r1,s1,z1)  C1(r1,s1,z1),
 2 (x2,a2)  R2(r2,s2,z2)  C2(r2,s2,z2) . So, general formula of predicate
transC2(r2,s2,z2). because  (a,x)  1(x1,a1) 2(x2 ,a2).</p>
          <p>Let’s write in details how to obtain iEi(u,v,z) . It is known that r1  r2   ,
s1  s2   , z1  z2   . To build such disjunction we should take into account
all pairs of functional attribute expressions from sets r,s and z. It means that each such
pair should be in set of attribute (r1  s1;z1) or (r2  s2;z2) . So,
iEi(u,v,z)  (Ei1(u1,v1,z1))  ( Ei2 (u2,v2,z2))</p>
          <p>i1 i2
Let’s consider formula of predicate transformer:
pt(S1(a1) 1(x1,a1)  S2(a2) 1(x2 ,a2),1(x1,a1)  2(x2 ,a2)) 
iqi  (u,v)(D(u,v,z)  R(u,v,z)  (Ei(u,v,z))  C(r,s,z)) </p>
          <p>i
 (u1,u2,u1,v2)(D1(u1,v1,z1)  D2(u1,v1,z1) 
 Ri(u1,v1,z1)  Ri(u2,v2,z2) 
 (Ei1(u1,v1,z1))  ( Ei2 (u2,v2,z2)) </p>
          <p>i1 i2
 C1(r1,s1,z1)  C2(r2,s2,z2)) 
 (u1,v1)(D1(u1,v1,z1)  R(u1,v1,z1)  (Ei1(u1,v1,z1)) </p>
          <p>i1
 C1(r1,s1,z1))  (u2,v2)(D2(u2,v2,z2)  R(u2,v2,z2) 
 ( Ei2 (u2,v2,z2))  C2(r2,s2,z2)) ... </p>
          <p>i2
 pt(D1(x1,a1),1(x1,a1))  pt(D2(x2 ,a2),2(x2 ,a2))</p>
          <p>Theorem is proved.</p>
        </sec>
      </sec>
      <sec id="sec-4-3">
        <title>4.4 Theorem 3</title>
        <p>For backward mode it is true that:
pt1(S1(a1)  C1(r1,s1,z1)  S2(a2)  C2(r2,s2,z2),
1(x1,a1) 2(x2 ,a2))  pt1(S1(a1)  C1(r1,s1,z1),1(x1,a1)) 
pt(S2(a2)  C2(r2,s2,z2),2(x2 ,a2))</p>
        <sec id="sec-4-3-1">
          <title>Proving.</title>
          <p>R(u,v,z)  R(u1,v1,z1)  R(u2,v2,z2) , C(r,s,z)  C1(r1,s1,z1)  C2(r2,s2,z2)
because  (ra,x)  1(a1,x1) 2(a2,x2 ) . iEi(u,v,z)  (Ei1(u1,v1,z1)) 
i1
( Ei2 (u2,v2,z2)) from previous theorem.</p>
          <p>i2
pt-1(S(a)  C(r,s,z), (r,s,z))  iqi1 
 (u,v)(S(a)  C(r,s,z)  R(u,r,s,z)  Ei(u,v,z))  (r,s,z) </p>
          <p>i
 (u1,u2,v1,v2)(S1(r1,s1,z1)  S2(r2,s2,z2) 
 C1(r1,s1,z1)  C2(r2,s2,z2) 
 (Ei1(u1,v1,z1))  ( Ei2 (u2,v2,z2))) </p>
          <p>i1 i2
1(r1,s1,z1) 2(r2,s2,z2) 
 (u1,v1)(S1(r1,s1,z1)  C1(r1,s1,z1)  (Ei1(u1,v1,z1))) 1(r1,s1,z1) 
i1
 (u2,v2)(S2(r2,s2,z2)  C2(r2,s2,z2)  ( Ei2 (u2,v2,z2))) 2(r2,s2,z2) 
i2
 pt1(S1(a1)  C1(r1,s1,z1),1(x1,a1))  pt(S2(a2)  C2(r2,s2,z2),2(x2 ,a2))
Theorem is proved.</p>
          <p>Theorem 2 and theorem 3 mean that:
1. Functions pt, pt-1 could be applied separately and concurrently.
2. If postcondition contains 1(x1,a1)
pt(S1(a1)1(x1,a1) S2(a2)2(x2 ,a2),1(x1,a1)) 
 S2(a2)2(x2 ,a2) pt(S1(a1)1(x1,a1),1(x1,a1))
pt1(S1(a1)C1(r1,s1,z1)  S2(a2) C2(r2,s2,z2),1(x1,a1)) 
 S2(a2)C2(r2,s2,z2)  pt1(S1(a1)C1(r1,s1,z1),1(x1,a1))
only,
then</p>
          <p>So, functions sat(Di(xi,ai)), pt(Di(xi,ai),i(xi,ai)) are called specialization,
because we could use some special theories for implementation of it.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Examples of Usage of Specializations</title>
      <sec id="sec-5-1">
        <title>Examples of Specializations by Memory Usage</title>
        <p>Example 1. Concrete values. Let S (a)  (i  2)  S (a / i) be an environment state
where i : int and a / i is a set of all attributes in model except i,
b  x((i  0)  (i : i  1)) . For application of such basic protocol we should
check satisfiability of the next formula: sat((i  2)  (i  0))  1 , and the
postcondition should be applied to (i  2) : v((v  2)  (v  0)  (i  v 1))  (i  3) . For such
examples direct C++ translation could be used instead of using some special theories,
and it will work much faster because it doesn’t require any additional checking, just
direct translation into C++ code and compilation of it.</p>
        <p>Example 2. Let S (a)  (i  2)  S (a / i) be environment state where i : int and
a / i is a set of all attributes in model except i, b  x((i  0)  (i : i  1)) . For
application of such basic protocol we should check satisfiability of the next formula:
sat((i  2)  (i  0))  1, and the postcondition should be applied to (i  2) :
v((v  2)  (v  0)  (i  v  1))  (i  1)  (i  3) . For such examples numerical
intervals could be used. So, S (a)  (i  (;2))  S (a / i) ,
b  x((i  (0;))  (i : i  1)) . Satisfiability checking looks like just crossing of
two numerical intervals: i  (;2)  (0;)  i  (0;2)  i [1;1] for integer.
Application of pt creates the following formula: v((v [1;1])  (i  v 1)) 
 i 1[1;1]  i [2;2] . This approach will work faster than general satisfiability
checking and quantifiers eliminations. Such approach could be used for all numeric
and enumerated types.
5.2</p>
      </sec>
      <sec id="sec-5-2">
        <title>Examples of Specializations by Functional Symbol</title>
        <p>It is not always possible to represent environment state and basic protocols in the
following way: S (a)  S1(a1)  S2 (a2 ) , and B(a, x)  x(1(x1, a1) 
 2 (x2 , a2 )  P(x, a)  1(x1, a1)   2 (x2 , a2 ))
where
a1  a2   ,
a1  a2  a , x1  x 2    x1  x 2  x . One of such situation occurs when a value
of functional attribute expression and its parameter has different types and belongs to
the different subsets ai . For example, if functional attribute: i, j : int, f : int  T is
defined where T  (c1,c2 ,c3) is enumerated type with three enumerated constants:
c1,c2 ,c3 , then formula ( f (i)  c1)  i  0 could be represented with specializations
as follows: ( f : v1  f (i))  (v1  c1)  (i  0) . Let b  1  ( f ( j) : c2 ) be a basic
protocol. Its specialized representation is: b  1  ( f : v1  f ( j))  (v1 : c2 )  1 .
It is required to merge such data structures for pt function which should consider all
pairs of functional attribute expression from sets r,s and z:
( f : v1  f (i))  ( f : v1  f ( j))  ( f : v1  f (i),v2  f ( j)) . After that basic protocol
should be transformed in the following form:
b 1 ( f :v2  f ( j))  (v2 : c2) 1. It is required to take into account two
possible combinations: (i  j) (i  j) . So, we obtain:
pt(( f : v1  f (i),v2  f ( j))  (v1  c1)  i  0,v2 : c2) 
 ( f : v1  f (i),v2  f ( j)) 
 v((i  j)  (v  c1)  (v2  c2)) 
 v((i  j)  (v1  c1)  (v2  c2))  i  0 
 ( f : v1  f (i),v2  f ( j))  (v2  c2)  i  0  (i  j) 
 ( f : v1  f (i),v2  f ( j))  (v1  c1)  (v2  c2)  i  0  (i  j) 
 ( f : v1  f (i))  (v1  c2)  i  0  (i  j) 
 ( f : v1  f (i),v2  f ( j))  (v1  c1)  (v2  c2)  i  0  (i  j)</p>
        <p>Let S(a)  F( f1, f2,...,v1,v2,a1,a2)  S1(a1)  S2(a2) be an environment state
where f1  f2  ... are names of functional symbols, v1,v2 are variables for each
functional attribute expression from sets a1,a2 correspondently, and</p>
        <p>F( f1, f2,...,v1,v2,a1,a2) 
 ( f1 : v11  f1(t11,t12,...),v12  f1(t11,t12,...),...,
f2 : v12  f2(t12,t22,...),v22  f22(t12,t22,...),...,...)
where v11,v12 af1,v12,v22 af2 ,... are variables of type of functional names
f1, f2,... for each attribute expression, afi is set of attribute, such as fi aj ,
tij aii {ai}, … - corresponded arguments for each functional with the same name
are in one specialization, and Shostak’s method could be applied for each right part of
equation in F.</p>
        <p>Let S(a)  F( f1, f2,...,v1,v2,a1,a2)  S1(a1)  S2(a2) . and
b(a)  x(Fb( f1, f2,...,v1,v2,a1,a2,x1,x2) 1(v1,x1,a1) 
2(v2,x2,a2)  P(a,x)  1(v1.x1,a1) 2(v2,x2,a2))
5.3 Theorem 4
sat(S(a) (x,a))  sat(  (( fi(ti1,ti2,...)  fi(ti1,ti2,...))  (vik  vil)) 
(i,k,l)
 S1(v1,a1) 1(v1,x1,a1)  S2(v2,a2) 2(v2,x2,a2)) 
 sat(qi  Si(vi,ai) i(vi,ai,xi))</p>
        <p>i
where fi(ti1,ti2,...)  fi(ti1,ti2,...) is equality of arguments of functional attribute
expressions.</p>
        <sec id="sec-5-2-1">
          <title>Proving</title>
          <p>Let’s
define</p>
          <p>F ( f1, f2 ,...,v1 ,v2 , a1, a2 , x1, x2 )  F ( f1, f2 ,...,v11,v12 , a1, a2 ) 
 Fb ( f1, f2 ,...,v12 ,v22 , a1, a2 , x1, x2 ) . We combine all equations with the same name of
from basic protocol. After that we obtain sets of variables v1 , v2
protocol b(a)  x(Fb ( f1, f 2 ,..., v1 , v2 , a1, a2 , x1, x2 ) 1(v1 , x1, a1) </p>
          <p>Each left and right parts of equation and negation of equations are in the same
specialization. It means that we could build here a disjunction of conjunction. Each
conjunct in such disjunction is qi which will be in one form of our specialization. So,
it means that we could check satisfiability in the following form
 sat(qi  Si (vi, ai )   i(vi, ai , xi )) .
i</p>
          <p>Theorem is proved.
5.4</p>
          <p>Theorem 5
where
pt(S(a)  (x, a), (x, a)) 
 ( pt(E1i (v1 , x1, a1), S1(v1 , a1) 1(v1 , x1, a1),1(x1, a1))) </p>
          <p>i
 pt(E2i (v2 , x2 , a2 ), S2 (v2 , a2 )  2 (v2 , x2 , a2 ), 2 (x2 , a2 ))))
pt(Eij (vj , x j , a j ), S j (vj , a j )  j (vj , x j , a j ), j (x j , a j ))   qk ,
k
qk  (u, v)(Si (u, v, z)  i (u, v, z)  R(u, v, z) 
 Eij (u, v, z)  Ek (u, v, z)  C(r, s, z)
it as conjunction of two disjunctions:  Ei (u,v, z)  ( Ek (u,v, z))  ( El (u, v, z))
i k l
where  Ek (u, v, z) is disjunction for matching of functional attribute expression
k
where parameters and its value are from different sets of a j .  El (u,v, z) is a
disl
junction of matching of other functional attribute expression. Each conjunct of such
disjunction could be considered as a conjunction which depends on different sets of
memory a j . It means that disjunction of conjunction  Ek (u, v, z) could be prepared
k
early before calling of some pt function without corresponded substitution of x,y. So,
 Ek (u, v, z)   E1k (v1 , x1, a1)  E2k (v2 , x2 , a2 ) . Disjunction  El (u,v, z) could be
k k l
presented in the same way. So, the theorem is proved.
where
pt 1(S (a)  C(r, s, z), (x, a)) 
 ( pt1(E1i (v1 , x1, a1), S1(v1 , a1)  C1(v1 , x1, a1),1(x1, a1))) </p>
          <p>i
 pt1(E2i (v2 , x2 , a2 ), S2 (v2 , a2 )  C2 (v2 , x2 , a2 ), 2 (x2 , a2 ))))
pt1(E ij (vj , x j , a j ), S j (vj , a j )  C j (vj , x j , a j ), j (x j , a j ))   qk ,
k
qk (u, v)(S j (vj , a j )  C j (vj , x j , a j )  R(u, r, s, z) 
 Eij (u,v, z)  Ek (u,v, z))   j (r, s, z)</p>
          <p>This theorem could be proved in the same mode as theorem 4.
6</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Experiments</title>
      <p>In this section we present some results from our test suites. All experiments are
devided into several groups. We compare the time of modeling of the satisfiability
and the predicate transformer, presented in the Section 2, and these algorithms with
the specializations.</p>
      <p>
        The first group of experiments refers to specialization by memory usage. Projects
contain formulae in which some attributes have only concrete values. Let us present
one typical real example. This example has a functional attribute of symbolic type
with integer parameters, simple enumerated and simple integer attributes. All of these
integer attributes initialize with concrete values and have concrete values at all times
during trace generation (basic protocols do not change those to symbolic ones). Other
attributes are symbolic. We provide a specialization for attributes, which are always
concrete. The difference of modeling time for this example and for this one
specialized by concrete values is more than in 3 times. Of course, the speedup depends on
project: more concrete attributes we have, more speedup we shall obtain. In [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] it
was shown that speedup could be in thousands times.
      </p>
      <p>The second group of experiments refers also to specialization by memory usage,
but not to concrete values. Examples from this group have enumerated attributes and
integer attributes. Some of the integer attributes memories are intersected, some of
them are independent. First of all, we provide the splitting of formulae into two parts
according to attribute types: enumerated part and integer part. For the enumerated part
we use bitsets, for integer – common Pressburger algorithm. Speedup was about
57%. After we specialize an integer part. We consider the attributes which memory is
independent and obtain speedup in 10 times.</p>
      <p>So, the results of comparison of modeling time using general satisfiability
functions and functions with specialization are given.</p>
      <sec id="sec-6-1">
        <title>Group of tests</title>
        <p>Symbolic modeling is a powerful technique for the automated reachability of
deadlocks and violations of user-defined properties. The main complexity of the
reachability problem is in the complexity of satisfiability and predicate transformer functions.
There are a lot of SMT-based techniques which speed up the satisfiability of formulae
that satisfy some particular theory. We propose a technique that allows to speedup
classical symbolic modeling when formulae could be splitted in several parts and used
some special theories for manipulations with them, which are called specializations.
The mathematical description of the algorithm for constructing specializations is
provided and the correctness of such specializations is proved.</p>
        <p>Specializations by memory usage and functional symbols are considered and
examples for each are given.</p>
        <p>The nearest plans are the investigation of additional kinds of specialization,
because the more specializations we have, the more speedup we obtain.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Symbolic</given-names>
            <surname>Modeling</surname>
          </string-name>
          , http://en.wikipedia.org/wiki/Model_checking
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Letichevsky</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gilbert</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>A Model for Interaction of Agents and Environments</article-title>
          . In: Bert,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Choppy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Moses</surname>
          </string-name>
          , P. (eds.)
          <article-title>Recent Trends in Algebraic Development Techniques</article-title>
          .
          <source>LNCS</source>
          <year>1827</year>
          , pp.
          <fpage>311</fpage>
          -
          <lpage>328</lpage>
          . Springer Verlag, Berlin Heidelberg (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Letichevsky</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Algebra of Behavior Transformations and its Applications</article-title>
          . In: Kudryavtsev,
          <string-name>
            <given-names>V. B.</given-names>
            ,
            <surname>Rosenberg</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. G</surname>
          </string-name>
          . (eds.)
          <source>Structural Theory of Automata</source>
          , Semigroups, and
          <source>Universal Algebra, NATO Science Series II. Mathematics, Physics and Chemistry</source>
          , vol.
          <volume>207</volume>
          , pp.
          <fpage>241</fpage>
          -
          <lpage>272</lpage>
          . Springer Verlag, Berlin Heidelberg (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Letichevsky</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kapitonova</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kotlyarov</surname>
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Letichevsky</given-names>
            <surname>Jr</surname>
          </string-name>
          .,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Nikitchenko</surname>
          </string-name>
          <string-name>
            <given-names>N.</given-names>
            ,
            <surname>Volkov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            ,
            <surname>Weigert</surname>
          </string-name>
          <string-name>
            <surname>T.</surname>
          </string-name>
          :
          <article-title>Insertion Modeling in Distributed System Design</article-title>
          .
          <source>Problems of Programming, (4)</source>
          ,
          <fpage>13</fpage>
          -
          <lpage>39</lpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Letichevsky</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kapitonova</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Volkov</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Letichevsky</given-names>
            <surname>Jr</surname>
          </string-name>
          .,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Baranov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Kotlyarov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            ,
            <surname>Weigert</surname>
          </string-name>
          ,
          <string-name>
            <surname>T.</surname>
          </string-name>
          :
          <article-title>System Specification with Basic Protocols</article-title>
          .
          <source>Cybernetics and System Analysis, (4)</source>
          ,
          <fpage>3</fpage>
          -
          <lpage>21</lpage>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Letichevsky</surname>
            ,
            <given-names>A. A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Godlevsky</surname>
            ,
            <given-names>A. B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Letichevsky</surname>
            <given-names>Jr.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>A. A.</given-names>
            ,
            <surname>Potienko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. V.</given-names>
            ,
            <surname>Peschanenko</surname>
          </string-name>
          ,
          <string-name>
            <surname>V. S.:</surname>
          </string-name>
          <article-title>Properties of Predicate Transformer of VRS System</article-title>
          .
          <source>Cybernetics and System Analyses, (4)</source>
          ,
          <fpage>3</fpage>
          -
          <lpage>16</lpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Letichevsky</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kapitonova</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <source>Letichevsky</source>
          Jr.,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Volkov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            ,
            <surname>Baranov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Kotlyarov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            ,
            <surname>Weigert</surname>
          </string-name>
          ,
          <string-name>
            <surname>T.</surname>
          </string-name>
          :
          <article-title>Basic Protocols, Message Sequence Charts, and the Verification of Requirements Specifications</article-title>
          ,
          <source>In: ISSRE</source>
          <year>2004</year>
          ,
          <article-title>WITUL (Workshop on Integrated reliability with Telecommunications and UML Languages)</article-title>
          ,
          <source>Rennes, 4 November</source>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Letichevsky</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Letychevskyi</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peschanenko</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Insertion Modeling System</article-title>
          . In: Clarke,
          <string-name>
            <given-names>E.M.</given-names>
            ,
            <surname>Virbitskaite</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Voronkov</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . (eds.)
          <source>PSI 2011. LNCS 7162</source>
          , pp.
          <fpage>262</fpage>
          -
          <lpage>274</lpage>
          , Springer Verlag, Berlin Heidelberg (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Bofill</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nieuwenhuis</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Oliveras</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , Rodríguez-Carbonell, E.,
          <string-name>
            <surname>Rubio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The Barcelogic SMT Solver</article-title>
          . In: Gupta, Aarti and Malik, Sharad (eds.)
          <source>CAV 2008. LNCS 5123</source>
          , pp.
          <fpage>294</fpage>
          -
          <lpage>298</lpage>
          , Springer Verlag, Berlin Heidelberg (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Barrett</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Berezin</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>CVC Lite: A New Implementation of the Cooperating Validity Checker</article-title>
          . In: Rajeev,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Peled</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.A</surname>
          </string-name>
          . (eds.)
          <source>CAV '04. LNCS 3114</source>
          , pp.
          <fpage>515</fpage>
          -
          <lpage>518</lpage>
          , Springer Verlag, Berlin Heidelberg (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Barrett</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tinelli</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          : CVC3. In: W. Damm and H. Hermanns (eds.)
          <source>CAV '07. LNCS 4590</source>
          , pp.
          <fpage>298</fpage>
          -
          <lpage>302</lpage>
          , Springer Verlag, Berlin Heidelberg (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Barrett</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Conway</surname>
            ,
            <given-names>C. L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Deters</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hadarean</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jovanović</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>King</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reynolds</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tinelli</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          : CVC4. In: Gopalakrishnan,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Qadeer</surname>
          </string-name>
          , S. (eds.)
          <source>CAV'11. LNCS 6806</source>
          , pp.
          <fpage>171</fpage>
          -
          <lpage>177</lpage>
          , Springer Verlag, Berlin Heidelberg (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Cotton</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Asarin</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maler</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Niebert</surname>
            ,
            <given-names>P.:</given-names>
          </string-name>
          <article-title>Some Progress in Satisfiability Checking for Difference Logic</article-title>
          .
          <source>In: Proc. FORMATS-FTRTFT</source>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Déharbe</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ranise</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Bdd-Driven First-Order Satisfiability</surname>
          </string-name>
          <article-title>Procedures (extended version)</article-title>
          .
          <source>Research report 4630</source>
          ,
          <string-name>
            <surname>LORIA</surname>
          </string-name>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Bozzano</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bruttomesso</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cimatti</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Junttila</surname>
            , T., van Rossum,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schulz</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sebastiani</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <article-title>An Incremental and Layered Procedure for the Satisfiability of Linear Arithmetic Logic</article-title>
          . In: Halbwachs, Lenore (eds.)
          <source>TACAS'05. LNCS 3440</source>
          , pp.
          <fpage>317</fpage>
          -
          <lpage>333</lpage>
          , Springer Verlag, Berlin Heidelberg (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Ganai</surname>
            ,
            <given-names>M. K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Talupur</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gupta</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>SDSAT: Tight Integration of Small Domain Encoding and Lazy Approaches in a Separation Logic Solver</article-title>
          . In: H.
          <string-name>
            <surname>Hermanns</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Palsberg</surname>
          </string-name>
          . (eds.)
          <source>TACAS 2006. LNCS 3920</source>
          , pp.
          <fpage>135</fpage>
          -
          <lpage>150</lpage>
          . Springer Verlag, Berlin Heidelberg (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Audemard</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bertoli</surname>
            ,
            <given-names>P. G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cimatti</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kornilowicz</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sebastiani</surname>
          </string-name>
          , R.:
          <article-title>A SAT based Approach for Solving Formulas over Boolean and Linear Mathematical Propositions</article-title>
          . In: A. Voronkov (ed.)
          <article-title>CADE 2002</article-title>
          .
          <article-title>LNCS (LNAI) 2392</article-title>
          , pp.
          <fpage>195</fpage>
          -
          <lpage>210</lpage>
          . Springer Verlag, Berlin Heidelberg (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Bryant</surname>
            ,
            <given-names>R.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lahiri</surname>
            ,
            <given-names>S.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seshia</surname>
            ,
            <given-names>S.A.</given-names>
          </string-name>
          :
          <article-title>Modeling and Verifying Systems using a Logic of Counter Arithmetic with Lambda Expressions and Uninterpreted Functions.</article-title>
          . In:
          <string-name>
            <surname>Brinksma</surname>
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Larsen</surname>
            <given-names>G</given-names>
          </string-name>
          . (eds) CAV'
          <fpage>04</fpage>
          . LNCS 2404, pp.
          <fpage>78</fpage>
          -
          <lpage>92</lpage>
          , Springer Verlag, Berlin Heidelberg (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Dutertre</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>de Moura</surname>
          </string-name>
          , L.:
          <article-title>A Fast Linear-Arithmetic Solver for DPLL(T)</article-title>
          . In T. Ball and
          <string-name>
            <given-names>R.B.</given-names>
            <surname>Jones</surname>
          </string-name>
          , (eds.)
          <source>CAV'06. LNCS 4144</source>
          , pp.
          <fpage>81</fpage>
          -
          <lpage>94</lpage>
          , Springer Verlag, Berlin Heidelberg (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Walther</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schweitzer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>About veriFun</article-title>
          . In: F. Baader (eds.)
          <source>CADE'03. LNCS 2741</source>
          , pp.
          <fpage>322</fpage>
          -
          <lpage>327</lpage>
          , Springer Verlag, Berlin Heidelberg (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Ball</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cook</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lahiri</surname>
            ,
            <given-names>S.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhang</surname>
          </string-name>
          , L.:
          <article-title>Zapato: Automatic Theorem Proving for Predicate Abstraction Refinement</article-title>
          . In: Alur,
          <string-name>
            <given-names>R. A.</given-names>
            ,
            <surname>Peled</surname>
          </string-name>
          <string-name>
            <surname>D. A</surname>
          </string-name>
          . (eds.)
          <source>CAV'04. LNCS 3114</source>
          , pp.
          <fpage>457</fpage>
          -
          <lpage>461</lpage>
          . Springer Verlag, Berlin Heidelberg (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>de Moura</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bjørner</surname>
          </string-name>
          , N.:
          <article-title>Z3: An Eficient SMT Solver</article-title>
          . In:
          <string-name>
            <surname>C. R. Ramakrishnan</surname>
          </string-name>
          , J. Rehof (eds.) TACAS'
          <fpage>08</fpage>
          , LNCS 4963, pp.
          <fpage>337</fpage>
          -
          <lpage>340</lpage>
          . Springer Verlag, Berlin Heidelberg (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Barrett</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>de Moura</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ranise</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stump</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tinelli</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>The SMT-LIB Initiative and the Rise of SMT</article-title>
          . In: Barner S.,
          <string-name>
            <surname>Harris</surname>
            <given-names>I. (eds.) HVC</given-names>
          </string-name>
          <year>2010</year>
          .
          <source>LNCS 6504</source>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>3</lpage>
          , Springer Verlag, Berlin Heidelberg (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Hutter</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoos</surname>
            ,
            <given-names>H.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leyton-Brown</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stuetzle</surname>
          </string-name>
          , T.:
          <article-title>ParamILS: an Automatic Algorithm Configuration Framework</article-title>
          . JAIR,
          <volume>36</volume>
          ,
          <fpage>267</fpage>
          -
          <lpage>306</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Peschanenko</surname>
            ,
            <given-names>V. S.</given-names>
          </string-name>
          , Guba, А. А.,
          <string-name>
            <surname>Shushpanov</surname>
            ,
            <given-names>C. I.: Mixed</given-names>
          </string-name>
          <string-name>
            <surname>Concrete-Symbolic Predicate Transformer</surname>
          </string-name>
          . Bulletin of Taras Shevchenko National University of Kyiv,
          <source>Series Physics &amp; Mathematics</source>
          ,
          <volume>2</volume>
          (
          <year>2013</year>
          )
          <article-title>(in press)</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Barrett</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sebastiani</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seshia</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tinelli</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Satisfiability Modulo Theories</article-title>
          .
          <source>Frontiers in Artificial Intelligence and Applications</source>
          ,
          <volume>185</volume>
          ,
          <fpage>825</fpage>
          -
          <lpage>885</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Godlevsky</surname>
            ,
            <given-names>A. B.</given-names>
          </string-name>
          :
          <article-title>Predicate Transformers in the Context of Symbolic Modeling of Transition Systems</article-title>
          .
          <source>Cybernetics and System Analysis</source>
          ,
          <volume>4</volume>
          ,
          <fpage>91</fpage>
          -
          <lpage>99</lpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>