<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>A framework for the verification of parameterized infinite-state systems⇤</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Francesco Alberti</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Silvio Ghilardi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Natasha Sharygina</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universita` degli Studi di Milano</institution>
          ,
          <addr-line>Milan</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Lugano</institution>
          ,
          <addr-line>Lugano</addr-line>
          ,
          <country country="CH">Switzerland</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Verimag</institution>
          ,
          <addr-line>Grenoble</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <fpage>303</fpage>
      <lpage>308</lpage>
      <abstract>
        <p>We present our tool, developed for the analysis and verification of parameterized infinite-state systems. The framework has been successfully applied in the verification of programs handling unbounded data-structures. In such application domain, being able to infer quantified invariants is a mandatory requirement for successful results. We will describe the techniques implemented in our system and discuss how they contribute in achieving important results in the analysis of parameterized distributed and timed systems, as well as of programs with arrays of unknown length.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Introduction
Ecient and automatic static analysis of imperative programs is still an open
challenge. A promising line of research investigates the use of model-checking
coupled with abstraction-refinement techniques [
        <xref ref-type="bibr" rid="ref11 ref20 ref27 ref30 ref35 ref36">11, 20, 27, 30, 35, 36</xref>
        ] including
Lazy Abstraction [
        <xref ref-type="bibr" rid="ref12 ref32">12, 32</xref>
        ] and its later improvements that use interpolants
during refinement [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ]. An intrinsic limitation of the approaches based on Lazy
Abstraction is that they manipulate quantifier-free formulae to symbolically
represent states. However, when defining properties over arrays, universal quantified
formulae are needed, e.g., as in specifying the property “the array is sorted”. The
tool we present mcmt (in the new version 2.5) is based on a novel approach [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],
in which Lazy Abstraction is used in combination with the backward
reachability analysis of array-based systems [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ]; recent acceleration techniques for
arrays [
        <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
        ] have also been significantly (although not yet completely) included
in the latest version of the tool.
mcmt takes as input a transition system (v, ⌧ (v, v0), ◆ (v)) representing the
encoding of an array-based system [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ]: this can be a parameterized distributed
system, a network of timed automata, an imperative program, etc. The essential
nature of the specification system is its parametricity : a finite (but unspecified)
number of components takes part in it, the components being interpreted as
single processes, agents, array cells, etc. Formally, the array based system is
specified by fixing a tuple v of state variables, a formula ◆ (v) describing initial
states and a formula ⌧ (v, v0) relating current variables v with their updated
counterparts v0. State variables are typed and some of them represent arrays,
modeled as free function symbols from a sort of indexes INDEX to some elements
ELEM1, . . . , ELEMk sorts. The type of indexes is natural numbers, whereas the
types of elements can be integers, Boolean, reals, enumerated data-types, etc. A
set of formulae {Uk(v)} representing unsafe states is also given to the tool; each
Uk represents an undesired property, e.g. a violation of an assertion in the code.
Next we describe the main features of the tool.
      </p>
      <p>
        Symbolic Reachability Analysis - This module implements a classical
backward reachability analysis [
        <xref ref-type="bibr" rid="ref1 ref2 ref3">1–3</xref>
        ]. Starting from the set of unsafe states, it
repeatedly computes the pre-images with respect to the transition relation. It halts
once it finds (the negation of a) safe inductive invariant S for the input system
or when a run from an initial state to an unsafe state is found. The symbolic
reachability search is based on the safety and the covering tests: the former
checks the violation of an assertion while the latter tests fix-points.
Lazy Abstraction - The search for a safe inductive invariant on the original
(concrete) system may require a lot of resources or it cannot be computed
because of possible divergence. To mitigate this problem, mcmt extends the Lazy
Abstraction paradigm by allowing existentially quantified formulae to represent
states. Moreover, mcmt is able to introduce new quantified predicates on the
fly, by means of Term Abstraction or Acceleration, see below.
      </p>
      <p>
        Acceleration - Acceleration is a well established technique in model-checking:
the acceleration (i.e. the transitive closure) of a relation encoding systems
evolution (like loops in programs) allows us to compute ‘in one shot’ the reachable
set of states after an arbitrary but finite number of execution steps. This has the
great advantage of keeping under control sources of (possible) divergence arising
in the reachability analysis. Definability results for accelerations are well known
in numerical domains like di↵erence bounds constraints [
        <xref ref-type="bibr" rid="ref17 ref21">17, 21</xref>
        ], octagons [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]
and finite monoid ane transformations [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] (the paper [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] presents a general
approach covering all these domains); however, little is known for more complex
data structures like arrays (but see [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]). In [
        <xref ref-type="bibr" rid="ref8 ref9">8,9</xref>
        ] it is shown that the acceleration
of relations corresponding to some classes of guarded assignments over arrays
lead to formulae in decidable fragments of the theory of arrays; as a consequence,
some common classes of imperative programs over arrays (including those
implementing searching, initializing, finding, copying, comparing functions) have
decidable reachability problems. Acceleration for arrays is another way of
introducing quantifiers in formulae describing reachable states; it is only partially
implemented in mcmt, where it is exploited for over-approximations in
abstraction/refinements loops.
      </p>
      <p>
        Quantifier Handling - The presence of quantified formulae imposes
particular attention during the satisfiability tests: available SMT-Solvers might not
be able to deal automatically with such quantified formulae. mcmt provides a
specific instantiation procedure, adapted from [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ] to address this issue. To be
e↵ective, this procedure implements caching of information inside of specific
data-structures used to represent formulae. On one hand the caching increases
the amount of space, on the other hand it cuts the number of instantiations due
to constant-time checks.
      </p>
      <p>Refinement - This module receives an abstract counterexample and it checks
first if the counterexample has a concrete counterpart. If so a feasible execution
violating an assertion corresponding to some satisfied Uk is returned to the user.
Otherwise the formulae representing the states along the abstract execution trace
have to be strengthened, possibly by adding new predicates, in order to rule out
spurious executions. In the current implementation, refinement is performed by
means of a form of interpolation guided by term abstraction.</p>
      <p>
        Term Abstraction - Term Abstraction [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is a novel technique applied during
the abstraction phase to select the “right” over-approximation to be computed,
and during the refinement phase to “lift” the concrete infeasible counterexample
to a more abstract level, by eliminating some terms. Term Abstraction
(implemented also in the safari tool [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]) is the main heuristic which distinguishes
mcmt from other tools based on abstraction-refinement. It works as follows.
Suppose we are given a list of undesired terms t1, . . . , tn (called term
abstraction list ). The underlying idea is that terms in this list should be abstracted
away for achieving convergence of the model checker. Iteratively, these terms are
abstracted out (if possible) from formulae over-approximating sets of reachable
states; one way to do this is to replace them by fresh free constants, so that they
are likely not to occur anymore in interpolants or in formulae to which quantifier
elimination is applied. mcmt retrieves automatically from the input system a list
of terms to be abstracted. The terms to be abstracted are usually set to iterators
or variables representing the lengths of the arrays or the bounds of loops. The
user can also suggest terms to be added to the list.
      </p>
      <p>Specification Syntax - mcmt has its own specification language (roughly, an
extension of the specification language of the underlying SMT-Solver Yices).
Even though it has been significantly improved, it is still rather low level. Such
a language is exploited by the booster verifying compiler4.
3</p>
      <p>
        Implementation and Related Work
mcmt is written in C and can be downloaded from http://users.mat.
unimi.it/users/ghilardi/mcmt/. Information on the usage of the tool
and a full description of all the options can be found on the User Manual that
can be downloaded from mcmt’s website. The use of the appropriate options is
crucial not only for performances, but also for convergence (some benchmarks
can be solved by plain backward search, in some cases run-time invariant search
can be exploited to speed up the tool, for imperative programs it is essential
to use abstraction/refinement mode or acceleration or both). mcmt relies on
4The interested reader is pointed to the booster web-page, http://inf.usi.
ch/phd/alberti/prj/booster for more information about it.
the SMT-Solver Yices (see http://yices.csl.sri.com/) to decide
satisfiability queries; the solver can be linked to the model-checker on a client/server
architecture via API. mcmt distribution includes about 100 examples files taken
from di↵erent sources (cache coherence and mutual exclusion problems, timed
and fault tolerant systems, imperative programs, etc); more examples related to
specific case studies [
        <xref ref-type="bibr" rid="ref18 ref19 ref6 ref7">6, 7, 18, 19</xref>
        ] can be reached from mcmt web-page. A Table
covering few experimental results is attached in the Appendix below.
      </p>
      <p>
        Current literature on infinite state model checking is extremely large,
however it is much more limited if we restrict to papers and tools handling
parametric specifications. For distributed systems, the best performing tool
(resulting from an extension and a re-implementation on a parallel architecture of
mcmt framework) is probably Cubicle [
        <xref ref-type="bibr" rid="ref22 ref23">22, 23</xref>
        ]. In software model checking,
unbounded arrays problems have been attacked from various viewpoints,
including abstract interpretation [
        <xref ref-type="bibr" rid="ref24 ref25 ref31">24, 25, 31</xref>
        ], program transformations [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], predicate
abstraction [
        <xref ref-type="bibr" rid="ref35 ref36">35, 36</xref>
        ] and template/constraints generation [
        <xref ref-type="bibr" rid="ref13 ref33 ref37">13, 33, 37</xref>
        ]. An
experimental tool comparison is dicult for various practical reasons; however, since
most benchmarks are taken from common sources, from the results reported in
the above mentioned papers, it seems that mcmt compares well, both in terms
of performances and in terms of solved instances.
      </p>
      <p>Some experimental data
We report in the Table below some experimental data on benchmark problems;
we made a selection including both easy well known problems and more
challenging ones. The experiments were run on a laptop Intel(R) Core(TM) i3 CPU
2.27GHz with 4GB RAM running Linux Ubuntu 12.04.</p>
      <p>In the second column we indicate the class of the problem: (M) mutual
exclusion, (C) cache coherence, (D) other distributed protocols (timed, fault tolerant,
etc.), (S) sequential program for arrays, (S+) sequential program for arrays with
nested loops. In column 3-8 we respectively give the depth of the search tree, the
number of nodes generated by the tool in the search tree, the number of
subsumed or subcovered nodes, the number of calls to the SMT solver, the number
of invariants found by the tool in forward search and the number of refinements
applied in abstraction/refinement mode. In the last column we put the total
time in seconds and in the last-but-one column the options used (A=acceleration,
AR=abstraction/refinement, I=invariant search).5 For each problem we reported
the result in the best configuration we found for the tool.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>P. A.</given-names>
            <surname>Abdulla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Cerans</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Jonsson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.-K.</given-names>
            <surname>Tsay</surname>
          </string-name>
          .
          <article-title>General decidability theorems for infinite-state systems</article-title>
          .
          <source>In Proc. of LICS</source>
          , pages
          <fpage>313</fpage>
          -
          <lpage>321</lpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>P. A.</given-names>
            <surname>Abdulla</surname>
          </string-name>
          , G. Delzanno,
          <string-name>
            <given-names>N. B.</given-names>
            <surname>Henda</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Rezine</surname>
          </string-name>
          .
          <article-title>Regular model checking without transducers</article-title>
          .
          <source>In TACAS</source>
          , volume
          <volume>4424</volume>
          <source>of LNCS</source>
          , pages
          <fpage>721</fpage>
          -
          <lpage>736</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>P. A.</given-names>
            <surname>Abdulla</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Delzanno, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Rezine</surname>
          </string-name>
          .
          <article-title>Parameterized verification of infinitestate processes with global conditions</article-title>
          .
          <source>In CAV</source>
          , pages
          <fpage>145</fpage>
          -
          <lpage>157</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>F.</given-names>
            <surname>Alberti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Bruttomesso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghilardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ranise</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Sharygina</surname>
          </string-name>
          .
          <article-title>Lazy Abstraction with Interpolants for Arrays</article-title>
          .
          <source>In LPAR-18</source>
          , pages
          <fpage>46</fpage>
          -
          <lpage>61</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>F.</given-names>
            <surname>Alberti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Bruttomesso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghilardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ranise</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Sharygina</surname>
          </string-name>
          . SAFARI:
          <article-title>SMT-Based Abstraction for Arrays with Interpolants</article-title>
          .
          <source>In CAV</source>
          , pages
          <fpage>679</fpage>
          -
          <lpage>685</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>F.</given-names>
            <surname>Alberti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghilardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Pagani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ranise</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G. P.</given-names>
            <surname>Rossi</surname>
          </string-name>
          .
          <article-title>Automated support for the design and validation of fault tolerant parameterized systems - a case study</article-title>
          .
          <source>In Proc. of AVOCS</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>F.</given-names>
            <surname>Alberti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghilardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Pagani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ranise</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G. P.</given-names>
            <surname>Rossi</surname>
          </string-name>
          .
          <article-title>Brief announcement: Automated support for the design and validation of fault tolerant parameterized systems - a case study</article-title>
          .
          <source>In DISC</source>
          , pages
          <fpage>392</fpage>
          -
          <lpage>394</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>F.</given-names>
            <surname>Alberti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghilardi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Sharygina</surname>
          </string-name>
          .
          <article-title>Definability of accelerated relations in a theory of arrays and its applications</article-title>
          .
          <source>In FroCoS</source>
          , pages
          <fpage>23</fpage>
          -
          <lpage>39</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>F.</given-names>
            <surname>Alberti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghilardi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Sharygina</surname>
          </string-name>
          .
          <article-title>Decision procedures for flat array properties</article-title>
          .
          <source>In TACAS</source>
          , pages
          <fpage>15</fpage>
          -
          <lpage>30</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>E. De Angelis</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Fioravanti</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Proietti</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Pettorossi</surname>
          </string-name>
          .
          <article-title>Verifying Array Programs by Transforming Verification Conditions</article-title>
          .
          <source>In VMCAI</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. T. Ball,
          <string-name>
            <given-names>R.</given-names>
            <surname>Majumdar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Millstein</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Rajamani</surname>
          </string-name>
          .
          <article-title>Automatic Predicate Abstraction of C Programs</article-title>
          . In PLDI, pages
          <fpage>203</fpage>
          -
          <lpage>213</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>D.</given-names>
            <surname>Beyer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. A.</given-names>
            <surname>Henzinger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Jhala</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Majumdar</surname>
          </string-name>
          .
          <article-title>The software model checker Blast</article-title>
          .
          <source>STTT</source>
          ,
          <volume>9</volume>
          (
          <issue>5</issue>
          -6):
          <fpage>505</fpage>
          -
          <lpage>525</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. N.
          <article-title>Bjo¨rner, K. McMillan, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Rybalchenko</surname>
          </string-name>
          .
          <article-title>On solving universally quantified Horn clauses</article-title>
          .
          <source>In SAS</source>
          , pages
          <fpage>105</fpage>
          -
          <lpage>125</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>M. Bozga</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Girlea</surname>
            , and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Iosif</surname>
          </string-name>
          .
          <article-title>Iterating octagons</article-title>
          .
          <source>In TACAS, LNCS</source>
          , pages
          <fpage>337</fpage>
          -
          <lpage>351</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>M. Bozga</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Habermehl</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Iosif</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Konecny</surname>
            ´, and
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Vojnar</surname>
          </string-name>
          .
          <article-title>Automatic verification of integer array programs</article-title>
          .
          <source>In CAV</source>
          , pages
          <fpage>157</fpage>
          -
          <lpage>172</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>M. Bozga</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Iosif</surname>
            , and
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Konecny</surname>
          </string-name>
          .
          <article-title>Fast acceleration of ultimately periodic relations</article-title>
          .
          <source>In CAV, LNCS</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>M. Bozga</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Iosif</surname>
            , and
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Lakhnech</surname>
          </string-name>
          .
          <article-title>Flat parametric counter automata</article-title>
          .
          <source>Fundamenta Informaticae</source>
          , (
          <volume>91</volume>
          ):
          <fpage>275</fpage>
          -
          <lpage>303</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>R.</given-names>
            <surname>Bruttomesso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Carioni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghilardi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Ranise</surname>
          </string-name>
          .
          <source>Automated Analysis of Parametric Timing Based Mutual Exclusion Protocols. In NASA Formal Methods Symposium</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>A.</given-names>
            <surname>Carioni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghilardi</surname>
          </string-name>
          , and
          <string-name>
            <surname>S. Ranise.</surname>
          </string-name>
          <article-title>MCMT in the land of parameterized timed automata</article-title>
          .
          <source>In In proc. of VERIFY</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>E. M. Clarke</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Grumberg</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Jha</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Lu</surname>
            , and
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Veith</surname>
          </string-name>
          .
          <article-title>Counterexample-Guided Abstraction Refinement</article-title>
          .
          <source>In CAV</source>
          , pages
          <fpage>154</fpage>
          -
          <lpage>169</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>H.</given-names>
            <surname>Comon</surname>
          </string-name>
          and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Jurski</surname>
          </string-name>
          .
          <article-title>Multiple counters automata, safety analysis and presburger arithmetic</article-title>
          .
          <source>In CAV</source>
          , volume
          <volume>1427</volume>
          <source>of LNCS</source>
          , pages
          <fpage>268</fpage>
          -
          <lpage>279</lpage>
          . Springer,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <given-names>S.</given-names>
            <surname>Conchon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Goel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Krsti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Mebsout</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Zadi</surname>
          </string-name>
          .
          <article-title>Cubicle: a Parallel SMTbased Model-Checker fro Parameterized Systems</article-title>
          .
          <source>In Proc. of CAV</source>
          , LNCS,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>S.</given-names>
            <surname>Conchon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Goel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Krsti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Mebsout</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Zadi</surname>
          </string-name>
          .
          <article-title>Invariants for Finite Instances and Beyond</article-title>
          .
          <source>In Proc. of FMCAD</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <given-names>P.</given-names>
            <surname>Cousot</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Cousot</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Logozzo</surname>
          </string-name>
          .
          <article-title>A Parametric Segmentation Functor for Fully Automatic and Scalable Array Content Analysis</article-title>
          .
          <source>In POPL</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25. I. Dillig,
          <string-name>
            <given-names>T.</given-names>
            <surname>Dillig</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Aiken</surname>
          </string-name>
          . Fluid Updates:
          <article-title>Beyond Strong vs</article-title>
          .
          <source>Weak Updates. In Programming Languages and Systems</source>
          .
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <given-names>A.</given-names>
            <surname>Finkel</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Leroux</surname>
          </string-name>
          .
          <article-title>How to compose Presburger-accelerations: Applications to broadcast protocols</article-title>
          .
          <source>In FST TCS 02</source>
          , pages
          <fpage>145</fpage>
          -
          <lpage>156</lpage>
          . Springer,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <given-names>C.</given-names>
            <surname>Flanagan</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Qadeer</surname>
          </string-name>
          .
          <article-title>Predicate abstraction for software verification</article-title>
          .
          <source>In POPL</source>
          , pages
          <fpage>191</fpage>
          -
          <lpage>202</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghilardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Nicolini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ranise</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Zucchelli</surname>
          </string-name>
          .
          <article-title>Towards SMT Model-Checking of Array-based Systems</article-title>
          .
          <source>In Proc. of IJCAR</source>
          , LNCS,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghilardi</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Ranise. MCMT</surname>
          </string-name>
          :
          <article-title>A Model Checker Modulo Theories</article-title>
          .
          <source>In IJCAR</source>
          , pages
          <fpage>22</fpage>
          -
          <lpage>29</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <given-names>S.</given-names>
            <surname>Graf</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Sa</surname>
          </string-name>
          <article-title>¨ıdi. Construction of Abstract State Graphs with PVS</article-title>
          .
          <source>In CAV</source>
          , pages
          <fpage>72</fpage>
          -
          <lpage>83</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <given-names>N.</given-names>
            <surname>Halbwachs</surname>
          </string-name>
          and
          <string-name>
            <surname>Mathias P. Discovering</surname>
          </string-name>
          <article-title>Properties about Arrays in Simple Programs</article-title>
          .
          <source>In PLDI'08</source>
          , pages
          <fpage>339</fpage>
          -
          <lpage>348</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32. T. A.
          <string-name>
            <surname>Henzinger</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Jhala</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Majumdar</surname>
            , and
            <given-names>G. Sutre. Lazy</given-names>
          </string-name>
          <string-name>
            <surname>Abstraction</surname>
          </string-name>
          .
          <source>In POPL</source>
          , pages
          <fpage>58</fpage>
          -
          <lpage>70</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <given-names>D.</given-names>
            <surname>Larraz</surname>
          </string-name>
          , E. Rodr´ıguez-Carbonell,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Rubio</surname>
          </string-name>
          .
          <article-title>SMT-based array invariant generation</article-title>
          .
          <source>In VMCAI</source>
          , pages
          <fpage>169</fpage>
          -
          <lpage>188</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <string-name>
            <surname>K. L. McMillan</surname>
          </string-name>
          .
          <article-title>Lazy Abstraction with Interpolants</article-title>
          .
          <source>In CAV</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35.
          <string-name>
            <surname>M. N. Seghir</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Podelski</surname>
            , and
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Wies</surname>
          </string-name>
          .
          <article-title>Abstraction Refinement for Quantified Array Assertions</article-title>
          .
          <source>In SAS</source>
          , pages
          <fpage>3</fpage>
          -
          <lpage>18</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36.
          <string-name>
            <given-names>S.</given-names>
            <surname>Lahiri</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Bryant</surname>
          </string-name>
          .
          <article-title>Predicate Abstraction with Indexed Predicates</article-title>
          .
          <source>TOCL</source>
          ,
          <volume>9</volume>
          (
          <issue>1</issue>
          ),
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          37.
          <string-name>
            <given-names>S.</given-names>
            <surname>Srivastava</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Gulwani</surname>
          </string-name>
          .
          <article-title>Program Verification using Templates over Predicate Abstraction</article-title>
          .
          <source>In PLDI</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>