<!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>Convergence Veri cation of Declarative Distributed Systems?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Diego Calvanese</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Francesco Di Cosmo</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jorge Lobo</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marco Montali</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Free University of Bozen-Bolzano</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Pompeu Fabra</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Logic-based languages, such as Datalog and Answer Set Programming, have been recently put forward as a data-centric model to e ectively specify and implement network services and protocols, seeing them as dynamic systems of distributed computational nodes where each node evolves an internal database and exchanges data with the other nodes of the network. This approach provides the basis for declarative distributed computing. However, a rigorous, comprehensive characterization of the decidability and complexity of veri cation in declarative distributed systems is yet to come. This paper charts the decidability border of the veri cation of convergence properties, considering the case where the network is a xed connected graph, nodes can incorporate fresh data from the external world into the system, and can communicate asynchronously by means of reliable but unordered channels.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        In the past years we have seen how declarative database query languages, such as
Datalog, can naturally be used to specify and implement network services and
protocols [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. The approach, referred to as declarative networking [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], makes
the speci cations of complex network protocols concise, intuitive, and directly
executable through distributed query processing algorithms [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]. The
compilation of the rules constituting the speci cation into actual implementations
performs well when compared with imperative C/C++ implementations of the
same protocols [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Applications for declarative networking go far beyond
network protocols, and languages and techniques developed in this setting provide
the basis for declarative distributed computing. This paradigm has been used for
security and provenance in distributed query processing [
        <xref ref-type="bibr" rid="ref29 ref30">29,30</xref>
        ], in the analysis
of asynchronous event systems [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], and as the core of the Webdam language
for distributed Web applications [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. We refer to these systems as declarative
distributed systems (ddss).
      </p>
      <p>
        There are several variants of concrete languages for specifying ddss [
        <xref ref-type="bibr" rid="ref20 ref22 ref3 ref4">20,4,3,22</xref>
        ],
but their common denominator is data-centricity : computations in a single node
are limited to evaluations of queries on a relational database (DB), and messages
? Copyright © 2021 for this paper by its authors. Use permitted under Creative
      </p>
      <p>
        Commons License Attribution 4.0 International (CC BY 4.0).
passed between nodes are snippets of DBs, providing a close correspondence
between the programs and a formal speci cation in logic of their computation. This
facilitates the development of program analysis tools [
        <xref ref-type="bibr" rid="ref22 ref26">26,22</xref>
        ]. However, in spite of
several studies on the foundations of ddss [
        <xref ref-type="bibr" rid="ref17 ref8">17,8</xref>
        ], a rigorous, comprehensive
characterization of the decidability and complexity of veri cation in such systems, is
yet to come. On the one hand, veri cation techniques and tools for ddss have
been exploited in various settings, but providing only an empirical/experimental
assessment [
        <xref ref-type="bibr" rid="ref12 ref13 ref22 ref26">26,22,12,13</xref>
        ]. On the other hand, formal models for ddss have been
mainly developed to study their ability to compute queries in a distributed
manner, and not to assess their temporal/dynamic evolution [
        <xref ref-type="bibr" rid="ref6 ref7 ref8">8,7,6</xref>
        ]. Instead, in this
paper we provide a step towards a formal, systematic characterization of veri
cation of ddss by focusing on convergence properties. We show that, in general,
veri cation is undecidable even for speci c convergence properties and extremely
limited, single-node ddss. To tame this strong negative result, we leverage on
the notion of state-boundedness [
        <xref ref-type="bibr" rid="ref11 ref9">11,9</xref>
        ], and detail the decidability frontier of
veri cation when a bound is imposed on the system data-sources.
      </p>
      <p>In the next Section 2 we introduce the dds model, provide its execution
semantics, and de ne the veri cation problem over convergence properties. In
Section 3 we chart the decidability boundary of veri cation of convergence.
Finally, Section 4 provides the conclusions.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Declarative Distributed Systems</title>
      <p>
        The general computational model of ddss can be described as a network of
uniquely identi ed nodes, each running an input/output state machine, where
outputs of some machines become inputs of others [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. We assume familiarity
with Datalog and the stable model semantics [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and adopt the standard
conventions: variables are denoted with uppercase letters, constants by lowercase
letters, and ` ' is used as a placeholder for an anonymous variable (i.e., one that
does not appear elsewhere in the rule).
2.1
      </p>
      <sec id="sec-2-1">
        <title>Computational Model in a Node</title>
        <p>A state in the state machine of a node is represented by a (relational) DB. As
customary, a DB de nes a set of relations conforming to a given schema. A DB
schema is a nite set of relation schemas R=n, with a relation name R and an
arity n, representing the number of components (or attributes) it contains. By
a slight abuse of notation, sometimes we drop the arity and interchangeably use
the same symbol to indicate the relation schema and its name. We x a countable
data domain denoting an in nite set of constants. An instance of a relation
schema R=n is a nite set of n-tuples over , and a DB is the union of relation
instances over its schema. Given a DB instance I, we denote by adom(I) the
active domain of I, that is the ( nite) set of constants explicitly appearing in I.</p>
        <p>State transitions occur when the node receives inputs, in the form of DBs,
from external components (such as applications running in the node, or humans),
and/or from state machines running in other nodes. A state change can also
produce an output in the form of a DB that can be delivered to another node
fact by fact. Thus, every node has an input schema I, a state schema S, and
a transport schema T . The latter is used to communicate between nodes. Let
I, S, and T denote all possible instances of I; S, and T , respectively. The state
transition mapping in a node is a subset of S T I S T: given a pair (S ; T )
of state and transport DBs, and an input DB I , the transition results in a new
pair (Sn; Tn) of state and transport DBs.</p>
        <p>
          Speci cally, that mapping is speci ed by means of d2c, a declarative
programming language introduced in [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ], which is an extension of plain Datalog,
enhanced with process communication and state changes capabilities. A state
transition mapping in d2c is de ned by rules of the form:
        </p>
        <p>H if L1; : : : ; Ln; prev Ln+1; : : : ; Lm; C
Like in Datalog, H is the head atom, but in d2c it is possibly annotated with
a term of the form @t, where t is a variable or constant from a xed domain in
the language used to identify nodes (concretely, such domain would correspond
to objects such as IP addresses or URLs). The Lis are literals (i.e., atoms or
negated atoms), again possibly annotated with a term of the form @t. Finally,
C is a set of (in)equality constraints over variables and constants.</p>
        <p>The predicate names follow the standard correspondence of predicates and
DB tables made by Datalog. All variables appearing in H, in C, or in any
negated atom inside a rule must also appear in a non-negated atom among the
Lis of the same rule3. The name of annotated atoms must correspond to relation
names in the transport schema T of the node, and only names that correspond
to transport or state tables can appear in H. Informally, a ground instance
h if l1; : : : ; ln; prev ln+1; : : : ; lm; c of a rule says that h is in the current state
or is an output of the current state if l1; : : : ; ln are true in the current state,
ln+1; : : : ; lm were true in the previous state, and c is valid. As in Datalog with
negation, we make the usual assumption on the strati cation of negated atoms
in l1; : : : ; ln w.r.t. h, so that the transition mapping can be computed using the
standard Datalog xpoint evaluation of Datalog. Notice that the literals in the
prev scope do not concur to determine strati cation, since they are over a
xed database already computed in the previous computation step. Also
annotated predicates are not involved in strati cation, since they address incoming
messages received in the form of an extensional DB fact. The meaning of an
annotation depends on whether it appears in the head or the body of a rule: in
the former case, it indicates the destination of the transport tuple, in the latter
it points to the source.
3 We can relax this requirement for negated atoms containing anonymous variables.</p>
        <p>Consider in particular a negated atom not P (X~ ; : : : ; ) appearing in a rule where
variables X~ also appear in positive atoms. Such an atom can be replaced by
not N (X~ ), where N is a fresh predicate, provided we introduce the additional rule
N (X~ ) if P (X~ ; ; : : : ; ).</p>
        <p>Example 1. Consider the input predicate echo=2, state predicate alive=1, and
transport predicate say=1. Rule say(M)@D if echo(M; D) models that the node
sends m to the node with ID d (if it is a node neighbor) when the corresponding
echo(m; d) fact is given as input. M and D are variables, which in this case are
bound to constants m and d respectively. Rule alive(S) if say(M)@S models
that the node adds to its state the information that node s is alive, whenever the
transport tuple say(m) is received from node s. Rule say(M)@Src if say(M)@Src
\echoes" the say tuple back to the source node.
tu</p>
        <p>
          To support also non-deterministic transitions, D2C features the special
predicate choice by Sacca and Zaniolo [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ], where choice(X; Y) is a positive atom
among the literals L1; : : : ; Ln. Variables X and Y must appear also in another
positive atom among the Lis, and once we x X, a single value for Y is chosen
by picking it inside the set of all values that can substitute it, so as to enforce
a functional dependency X ! Y. Also the variant choice(Y) is admitted, to
enforce a functional dependency with trivial domain. It is known that the data
complexity of nding a stable model of a Datalog program with choice remains
polynomial [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ].
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>The Network Model</title>
        <p>A dds relies on an underlying network N of communicating nodes, each running
a d2c program. In distributed computing, N is typically represented as a graph
hV; Ai, where V are the computation nodes, and the arcs in A re ect the ability
to communicate according to the physical network con guration. Directed arcs
denote non-symmetric communication.</p>
        <p>There is a complex spectrum of di erent network models, depending on the
topology of the graph, the degree of mobility of nodes, and on which extent the
network may vary over time. Here we consider networks with (i) xed
topology; (ii) bidirectional communication channels; (iii) strongly connected nodes;
(iv) the ability for every node to communicate with itself. This class of networks
can be represented by xed undirected, connected graphs, where each node has a
self-loop. From now on, we always assume that the network is in this class. To
make nodes aware of their own name and that of their neighbors, each node has
the following rules:
my name(M) if prev my name(M):
neighbor(N) if prev neighbor(N):
This information is read-only, so no other rule can use my name and neighbor
in its head.
2.3</p>
      </sec>
      <sec id="sec-2-3">
        <title>DDS Formal Model</title>
        <p>We now formalize ddss adopting homogeneous nodes, i.e., all nodes run the same
program. This also means that the local DB schemas are the same for all nodes.
Still, the behavior of di erent nodes might diverge over time, depending on:
(i) their location in the network, (ii) the presence of non-deterministic choices
in the program, and (iii) the data obtained from the interaction with other nodes
and with the external world. A dds M is a tuple hN ; I; T ; S; P; D0i, where:
N is the network graph (obeying to the assumptions of Section 2.2);
I, T , and S respectively denote the input, transport, and state schemas of
every node in M;
P is the d2c program run by every node in M;
D0 is a local state DB over S representing the initial state of each node, and so
that it assigns no tuples to my name and neighbor (these are in fact implicitly
set di erently for each node, depending on the network topology); its active
domain is denoted by 0, while its extension with node names is denoted by
0;M</p>
        <p>
          Commonly, the execution semantics of dynamic systems over relational data
is given in terms of a relational transition system (RTS), i.e., a transition
system where each state is labeled by a DB, representing the con guration of the
current memory of the system in that state [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ]. However, in our distributed
setting, such a global memory should account for two peculiar local aspects.
On the one hand, it needs to store the current local con guration of nodes in
the network, and so it contains one DB per node. On the other hand, it must
track the state of the network in terms of messages being exchanged (and not
yet processed by their recipient nodes). The representation of this latter aspect
depends on the chosen communication model and, in turn, how communication
channels operate. Hence, we represent communication channels using a generic
data structure CT de ned over the transport schema T . Given a pair of
connected nodes i and j in the network, each local channel con guration stores
the state of the communication channel linking i and j, by instantiating CT
to store the pending messages present in the network that have been sent by i
and have not yet been received/processed by j. We denote by C the set of all
possible instantiations of CT . Once the communication model is xed, this
abstract data structure is grounded into a speci c one, which must suitably re ect
the functioning of the communication mode in terms of ordering and
reliability. For example, queueT indicates an order-preserving, reliable communication
channel over pairs of nodes, while multisetT represents an unordered, reliable
communication channel where messages sent in a given order may be processed
in reverse.
        </p>
        <p>To account for those local aspects, we reorganize the global memory into
many local ones attached to nodes and channels. Technically, given a dds hN ; I; T ; S; P; D0i
with N = hV; Ai, and given a data structure CT over T for communication, the
execution semantics of the dds under CT is given via a so-called distributed RTS
(DRTS) of the form hN ; ; S; T ; ; 0; ndb; nch; )i, where:</p>
        <p>is a (possibly in nite) set of states;
0 2 is the initial state;
ndb is a function that, given a state
corresponding DB instance of S over
and a node n 2 V , returns a
nch is a function that, given a state 2 and two nodes n1; n2 2 V such that
hn1; n2i 2 A, returns an instance of CT storing the pending messages from n1
to n2;
)</p>
        <p>is a transition relation between states.</p>
        <p>is serial if, for every state 2 , there exists 0 2 such that ) 0.
Notice that the input schema and databases are not mentioned in the general
DRT S de nition, but will be used later to de ne concrete transition relations.
Moreover, in case the instantiations of CT can be represented by means of a DB,
it is possible to boil down a DRTS to a standard RTS by labeling states with the
disjoint union of all the state and channel DBs mentioned in the DRTS states.</p>
        <p>To build a DRTS capturing the execution semantics of a dds M, one has
to choose which communication model is used by M to handle the exchange of
messages in the network, and how does M interact with the external users that
exchange data with the computation nodes. Speci cally, we consider the
relevant setting where communication is reliable and asynchronous, i.e., messages
are never lost and message exchanges occur independently from each other.
Consistently with the fact that each transport atom in a D2C program is attached
to a sender/receiver, each message consists of a single transport fact.</p>
        <p>As for user interaction, nodes may receive a new input DB when they start
processing an incoming message. We call ddss obeying to that input-policy
interactive ddss (iddss). Coupling the processing of input DBs with that of incoming
messages is without loss of generality, since a node may send dummy messages
to itself just to signal that it is ready to process a user input.
2.4</p>
      </sec>
      <sec id="sec-2-4">
        <title>Execution Semantics</title>
        <p>Due to the aforementioned asynchronicity and reliability, we can assume that,
at each computation step, only one node reacts to the delivery of an incoming
message. Within the computed result, there may be transport facts labeled with
corresponding destination nodes; these are all simultaneously emitted, and will
be asynchronously received by their respective recipient nodes fact by fact. Since
we assume no guarantees on the order in which messages are received,
communication can be abstractly captured by equipping each node with one message
multiset per neighbor. Hence, from now on, we always assume that the data
structure for communication channel is multiset, and make use of the usual
operators to manipulate and inspect multisets. Relying on multisets instead of
sets is important to capture the fact that two distinct messages exchanged
between the same two nodes and carrying exactly the same payload may be both
on their way to the recipient node.</p>
        <p>The dds evolution is then captured by iterating through these steps:
a non-empty multiset is non-deterministically picked, non-deterministically
extracting a message M .
the destination node performs a computation step triggered by M , possibly
considering also external input data;
the node state is updated and the produced messages are inserted in the
corresponding destination multiset.</p>
        <p>Formally, given a program P , an input DB I, a previous state DB S, and
a labeled transport tuple t@n, we denote by state(P; I; S; t@n) the new state
database computed by the program P over S[I[ft@ng, by transp(P; I; S; t@n; d)
the set of computed output tuples (over the trasnport signature) labeled by @d,
and by transp # (P; I; S; t@n; d) the set of tuples in transp(P; I; S; t@n; d) where
the label @d has been dropped. Let M = hN ; I; T ; S; P; D0i be a dds system
whose network is N = hV; Ai. To formalize the execution semantics, we
introduce a relation c-stepM that substantiates the generic state transition mapping
introduced in Section 2.1:
c-stepM</p>
        <p>Y S
n2V</p>
        <p>Y C
a2A</p>
        <p>A I</p>
        <p>Y S
n2V</p>
        <p>Y C
a2A
Speci cally, given S; S0 2 Qn2V S, and C; C0 2 Qn2V C, a channel (s; d) 2 A,
and an input database I 2 I, we have that hS; C; (s; d); I; S0; C0i 2 c-stepM if
and only if there exists a message tuple t 2 C(s;d) such that:</p>
        <p>Sn0 =
(state(P; I; S; t@s) if n = d</p>
        <p>Sn otherwise
&gt;8C(s;d) n ftg
C(0n;m) = &lt;C(d;m) [ transp # (P; I; Sn; t@d; m) if n = d
&gt;:C(n;m) otherwise
if n = s and m = d
Finally, we de ne the transition system of M, written int, as the DRTS
M
hN ; ; S; T ; ; 0; ndb; nch; )i, where:
{ Qn2V S Qa2A C and, for each 2 of the form</p>
        <p>ndb( ; n) = Sn and nch( ; s; d) = C(s;d);
{ 0 = ((D0)n2V ; (Cc)c2A), where C(s;d) = ; if s 6= d and C(s; d) = fstartg
otherwise, where start is a special 0-ary transport tuple used to guarantee
at least one computation step to each node;
{ The extensions of and ) are de ned by simultaneous induction as follows:
1. 0 2 ;
2. if (S; C) 2 , then, for each hS; C; (s; d); I; S0; C0i 2 c-stepM, it is true
that (S0; C0) 2 and (S; C) ) (S0; C0).
3. if (S; C) 2 and, for each c 2 A, Cc = ;, then (S; C) ) (S; C).
= ((Sn)n2V ; ((Cc)c2A)),
Notice that ) is guaranteed to be serial.
2.5</p>
      </sec>
      <sec id="sec-2-5">
        <title>Convergence Properties</title>
        <p>Convergence is a generalization of termination for ddss, indicating that the
distributed computation run by the whole dds eventually reaches a stable situation
where all nodes are quiescent, i.e., do not change anymore their state DBs. This
typically occurs when no messages are exchanged. However, we want to rule out
those cases in which quiescence is reached because one or more nodes stop their
computation due to an error (e.g., because the node has received an unexpected
message/input, or has entered an undesired state). We assume that a node
declares that it is faulty by inserting the special ag error in its state. Under this
assumption, d2c programs employ error to indicate under which circumstances
a node becomes faulty.</p>
        <p>Convergence properties are then de ned by mixing two dimensions: (i)
number of faulty nodes in a run, with the two extreme cases of total (no faulty
node) vs partial (at least one non-faulty node) correctness; (ii) quanti cation
over runs, considering the case in which the dds sometimes (i.e., for at least one
run) vs always (i.e., for all runs) converges. Given a dds M, this gives rise to
four variants of convergence:
{ M sometimes converges with total correctness if there exists a run of M
eventually reaching a state where all nodes are quiescent, and none is faulty.
{ M sometimes converges with partial correctness if there exists a run of M
eventually reaching a state where all nodes are quiescent, and at least one is
not faulty.
{ M always converges with total correctness if every run in which all nodes of</p>
        <p>M stay non-faulty eventually converges.
{ M always converges with partial correctness if every run in which at least
one node of M stays non-faulty eventually converges.</p>
        <p>Moreover, convergence properties can be formulated in sophisticated logics
that allow to specify properties over the data owing in the DDS and the DDS
temporal behavior. A suitable language over RTSs is FO-CTL, which mixes
rstorder (FO) logic with the computation three logic (CTL). It is possible to adapt
that logic to DRTSs, called DDS CT L. That can be achieved by exploiting
some D2C rule to transfer the previous state con guration into a copy in the
current one, using the veri cation formula to check that the two available state
con gurations are identical and, nally, using temporal operators to propagate
that condition in time. Thus, the next undecidability results apply also to that
DDS-CTL, but also the decidability proofs can be extended to address the full
language.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Convergence Veri cation of IDDS</title>
      <p>
        While input, state, and transport schemas are xed in advance, the extension
of such relations is not, and could grow unboundedly over time. If no bound
is imposed on the data manipulated by the dds, veri cation of convergence
properties is undecidable even for a single-node dds [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        Taking inspiration from the well-studied notion of state-boundedness [
        <xref ref-type="bibr" rid="ref10 ref11 ref9">11,9,10</xref>
        ],
we hence study how decidability is a ected when a (pre-de ned and known)
bound is imposed on the di erent information sources of the dds. Speci cally,
given an integer b, we say that a dds M is input b-bounded if the input DB is
constrained to mention at most b values during each single step, i.e., the
cardinality of the input database active domain is always at most b. In this case,
unboundedly many values can still be input over time, provided that they do
not accumulate in a single computation step. When the xed value b is
understood or arbitrary, we simply talk about boundedness. We de ne state b-bounded
(state-bounded ) and transport b-bounded (transport-bounded ) ddss analogously.
However, this time the constraints are a consequence of the combination of the
dds program and of the constraints on the input.
      </p>
      <p>A bound independent from the network size ts with the idea that the
declarative programs run by nodes are not tailored to a speci c network. Moreover,
state-boundedness does not interfere with the information each node has about
its neighbors, since our networks are xed, thus the relation neighbor is trivially
bounded by the xed number of nodes (cf. Section 2.2). In fact, the next
decidability results deal with network complexity, i.e., the complexity of the global
initial con guration projected over the neighbor and my name predicates. Thus,
the data complexity of the initial con guration incorporates the network
complexity.</p>
      <p>Additionally, a channel b-bounded (channel-bounded ) condition imposes a
similar constraint on the channel multiset cardinality, i.e., in any reachable
conguration there are at most b facts laying on any channel. In channel-bounded
ddss the instantiations of the multiset channel data-structure can be represented
by means of a nite DB, since the multiplicity of messages is bounded and a nite
domain of constants su ce to represent them. Thus, in this case, the respective
DRTSs can be translated into standard RTSs. We also say that the whole dds is
bounded if all of its information sources are so, i.e., it is input-, state-, transport-,
and channel-bounded at the same time.</p>
      <p>
        In our analysis, a key observation is that the notion of uniformity [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] can
be straightforwardly recast for ddss. Intuitively, uniformity (corresponding to
genericity in databases) states that the dynamics of a dds M are invariant under
permutation of values in the node DBs, modulo the nite subset 0;M of : the
system exhibits the same behavior (modulo renaming of values) when nodes
compute over isomorphic DBs. Technically, we recast the notion of uniformity
in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] to the case of ddss as follows. Given two DBs D1; D2 over schema R
with jadom(D1)j = jadom(D2)j, we say that D1 and D2 are isomorphic if there
exists a bijection h : 1 ! 2, with adom(D1) 1 and adom(D2) 2,
such that for every relation R=n 2 R and every fact R(d1; : : : ; dn) 2 D1, we
have R(h(d1); : : : ; h(dn)) 2 D2. With some abuse of notation, in this case we
write D2 = h(D1). With this notion at hand, given a channel-bounded dds M
with DRTS M = hN ; ; S; T ; ; 0; ndb; nch; )i, we say that M is uniform if
for every ; next; 0 2 and every pair D = ((Sn)n2V ; ((Cc)c2A)) 2 Qn2V S
Qa2A C, where Cc is a DB instance of the multiset data-structure over : if
1. ) next;
2. the number of constants mentioned in
that of constants mentioned in 0 and D;
and next together is the same as
3. there exists a bijection ! that xes 0;M and maps each node DB
and channel DB of and next into those of 0 and D, thus enforcing an
isomorphism over all components of the various states and D;
then D 2
      </p>
      <p>and 0 ) D. Making use of uniformity, we get:
Theorem 1. Veri cation of convergence properties over bounded i ddss is
decidable in pspace in the network size.</p>
      <p>
        Proof (sketch). First of all, it can be easily proven that ddss are uniform.
Uniformity comes from the fact that: (i) d2c is based on Datalog, which, as virtually
all DB query languages, enjoys genericity; (ii) external inputs are provided
\uniformly", i.e., whenever an input DB is delivered to a node, there is an alternative
execution in which the node receives an isomorphic variant of the same input.
For a uniform dynamic system, with a pre-de ned bound on the size of its DBs,
thus including the RTS version of the DRTSs of bounded-dds, veri cation of
FO-CTL properties, including translations of convergence, is decidable with a
pspace (tight) bound in data complexity [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], which in our case comprises also
the size of the network. The intuition behind the decidability proof in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], is
t(hwaitthgiv0e;nMan RTf )S ca MnibaenfdouandFOsu-cChTtLhaptro Mpierj=ty i, a Minitj=e do,mwahienre: (fi) Mi
is the RTS version of the DRTS of M; (ii) Mi is the RTS obtained by applying
the same construction for Mi but using the nite domain f instead of . Note
that Mi is nite-state, hence the standard on-the- y model checking algorithm
for CTL can be applied to check whether holds.
      </p>
      <p>We next show that bounding the channel multisets is necessary towards
decidability of veri cation over iddss.</p>
      <p>Theorem 2. Veri cation of convergence over input- and state-bounded i ddss
is undecidable, even when the dds employs: (i) a single-node network; (ii) a
single unary, 1-bounded input relation; (iii) 0-ary state relations; (iv) two 2-ary
transport relations.</p>
      <p>
        Proof (sketch). The proof is via a reduction from the undecidable halting
problem of deterministic 2-counter machines [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] to convergence of iddss as in the
theorem statement. The 2-counter machine M states are encoded in the dds
state by means of 0-ary state predicates (state- ags). The counters are encoded
in the node self-loop channel as the lengths of two cyclic graphs whose edges are
speci ed by the transport relations counter1=2 and counter2=2, respectively.
The initial dds state DB contains the state- ag encoding the initial state of M.
      </p>
      <p>At the rst computation step the node, say named me, sends to himself two
messages: counter1(me; me) and counter2(me; me). Then, the program triggers
the increment and conditional decrement instructions according to the current
dds state- ag.</p>
      <p>To increment a counter, say counter 1, the node extracts a single constant
from the current input DB, checks whether it is fresh with respect to the counter,
and, in that case, puts the fresh constant in the appropriate cyclic graph. To
perform the freshness test, the node expects to receive (and then sends it back on
the channel), fact by fact, the counter1 cyclic-graph in the right order, i.e. from
counter1(me; ) to counter1( ; me). In case the input constant was not available
in the input DB, i.e., the DB was empty, or it already appeared in the incoming
message, i.e., it was not fresh, or the incoming message is a counter2 or an
unexpected counter1 message, the node enters in an error state.</p>
      <p>To perform a conditional decrement on a counter, say again counter 1, the
node expects to receive a counter1 message. If it is a counter1(me; me) message,
then the node sends back the message and detects that the counter is zero. If the
message is a di erent counter1 message, the node stores it in the state, expects
to receive the next counter1 edge and then sends back only one edge where
the middle constant has been dropped. Again, in case unexpected messages are
delivered, the node enters in an error state.</p>
      <p>After performing each increment or decrement instruction, the node
transitions to the next state. In case the error state is reached, the node starts sending
at each step a foo=0 message, whose reception triggers a random state transition
(excluding the nal state of M and the dds current state- ag). Thus, M
terminates if and only if the dds sometimes (always) converges with total (partial)
correctness.</p>
      <p>Considering Theorem 2, in the following we assume that ddss are
channelbounded. Notice that channel-boundedness implies transport-boundedness, since
at each computation step the whole transport DB is always sent in the reliable
channel. This means that it makes no sense to study the veri cation of ddss that
are channel-bounded but not transport-bounded. Thus, we consider now what
happens when the dds is input- and transport-bounded, but have unconstrained
state.</p>
      <p>Theorem 3. Veri cation of convergence over input- and channel-bounded i ddss
is undecidable, even when i dds employs: (i) a single computation node; (ii) a
single unary, 1-bounded input relation; (iii) Two 1-ary state relations. (iv) a
single 0-ary transport relation;
Proof (sketch). The proof is similar to that of theorem 2, but the counters of M
are now encoded in the state of M by means of two state predicates counter1=1
and counter2=1. The node continually sends to himself a wakeup=0 message,
unless it reaches the nal state of M. Thus, the channel gets empty, causing the
dds to trivially converge, if and only if the dds reaches the nal state of M.</p>
      <p>In this case, freshness and zero checks can be done in one step by means of a
couple of D2C rules that inspect the state DB. In case the freshness check fails
or the input constant is not available, the node enters in a state error as above,
triggering a run that never converges. Hence, M terminates if and only if the
dds sometimes (always) converges with total (partial) correctness.</p>
      <p>We investigate now what happens when the state DBs and channels are
bounded, but the input is not. This is a subtle case: unboundedly many input
data can be delivered to a node, but not inserted into its state/transport. In
fact:
Theorem 4. Veri cation of convergence properties over state- and
channelbounded i ddss is in pspace in the network size.</p>
      <p>Proof. Let M be an iddss, with DRTS hN ; ; S; T ; ; 0; ndb; nch; )i, whose
state and transport are, together, bounded by b, and let ' be a convergence
property. While could be in nite, we can specify and build a nite DRTS
0 equivalent to under '. Thus, to check whether j= ' amounts to check
whether 0 j= '.</p>
      <p>
        Let vars(') and Con be the set of variables and constants, respectively,
occurring in '. Fix a set C of 2b + jvars(')j + jConj constants, disjoint
from those in 0M, i.e., the initial state active domain, and call 0 = 0;M [ C.
Then, 0 is the DRTS hN ; ; S; T ; 0; 0; ndb0; nch0; )0i such that: (i) 0 is the
set of all the states 2 such that the set of constants mentioned in are at
most b and all contained in 0; (ii) ndb0, nch0, and )0 are the restrictions to
0 of ndb, nch, and ) respectively. Since both the schemas S and T , and the
domain 0 are nite, also 0 is nite, so that 0 is a nite DRTS. Moreover, since
j 0j 2b + jConj + jvars(')j and is uniform (see proof 1), it is possible to
adapt Th. 3.18 in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] to obtain that the RTS versions of and 0 are equivalent
under '. In fact, recall that those RTS versions exist because, since the channels
are bounded, the instances of the channel multisets can be encoded in a DB.
We now show a procedure to e ectively build 0 from M: we will compute a
number of grounded versions of the program of M, which can be recursively
applied starting from 0 up to a x-point to build 0.
      </p>
      <p>Given a rule in a D2C program, we call input-, state-, and transport-variables
those variables occurring only in input-, state-, and transport-predicates
respectively. While the semantics of D2C requires a preliminary full grounding of the
rules under the state and the input DBs active domains, we start by grounding
only the state- and transport-variables with constants in the ( nite) full domain
0 of 0, resulting in the program P 0. Its variables occur only in input-predicates,
hence the heads are fully grounded in 0. Nevertheless, the resulting program is
suitable to compute all the transitions in 0 since, by construction, each state
in 0 has a DB over 0.</p>
      <p>While we should ground also the input-variables with constants in the
unconstrained input domains, we can avoid it by noting that they act like variables
in a Boolean query over the input, independent of the grounded part of the
program. Speci cally, for each semi-grounded rule in P 0 with at least one variable,
consider the existential closure q of the conjunction of all input literals in .
These qi form a nite family of existential sentences. The e ect of an input DB
I is just to discard those rules such that I 6j= q . To capture the e ects of all
possible input DBs at once, we initialize a table with one column for each q
and populate it with all the distinct rows rj containing a possible sequence of
the symbols &gt; and ?. For each row rj in the table, consider the conjunction
of: (i) all q such that the corresponding cell contains &gt;, and (ii) of all :q
such that the corresponding cell contains ?. Written in negative normal form,
this is a conjunction of existential and universal sentences, which can be
transformed into a prenex formula j of the form 9 n8 n, where n is the number
of all variables in P 0 times the number of queries q . This is a fragment of the
Bernays-Schon nkel class enjoying a nite satis ablity problem in nexptime in
the length of the sentence, but in O(1) in the network size. If the sentence j
is not satis able in the nite, then there is no input DB enabling the e ects
described by rj , thus it has to be deleted from the table. Otherwise, it has to
be retained. After this pruning, for each row rj consider the fully-grounded
subprogram Pj0 of P 0 containing only those rules , pruned of the input predicates,
such that the corresponding cell in rj contains &gt;. If the body results empty, ll
it with true.</p>
      <p>Given a state 0 in 0, the nite family of programs Pj0, with no input
predicates, capture the e ects of all the in nitely many input DBs. Thus, to compute a
successor of a given con guration in 0, it is su cient to compute a stable model
of a program Pj0 over the con guration DB, which can be done in ptime in data
complexity. Thus, by applying on-the- y veri cation techniques for nite RTSs
against FO-CTL, which can express convergence translated over those RTSs, we
can check 0 in npspace in data complexity, which amounts to pspace.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Conclusions</title>
      <p>In the wide spectrum of declarative distributed computing, we have formalized
and studied veri cation of convergence in the important case of reliable
communication with unordered asynchronous communication and interactive input
policy. While the problem is undecidable in general, decidability can be regained
by imposing boundedness conditions on the channels and state DBs.</p>
      <p>
        We foresee two main lines of future research. First, we plan to build on our
foundational results to implement veri cation techniques for dds cases with
decidable veri cation . To this aim, we will rely on existing ASP techniques for d2c,
and in particular on the implementation in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], which can simulate runs of ddss
according to our formalization. Remarkably, those cases are all channel-bounded,
and thus pose no problem for the implementation of the multiset channels.
However, great care should be put in handling the message passing mechanism, since
the reception of a random incoming message requires to analyze many di
erent branches, resulting in a bottleneck. Moreover, the technique in the proof
for theorem 4 could be exploited to abstract away the interaction policy, thus
avoiding the necessity of providing random input DBs at each step. Second, we
want to study how our veri cation results carry over the setting in which the
network topology can change, both with respect to node connection, and for
what concerns the creation and deactivation of computation nodes. In this light,
it is worth noting that, following the approach in [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], the results here presented
can be seamlessly generalized to the case where node connections are
arbitrarily changed over time, and nodes can be created and deactived, provided that
their overall number does not exceed a pre-de ned bound. On the other hand,
the case where unboundedly many computation nodes can be created is left for
interesting future work. In fact, we intend to leverage parameterized veri cation
[
        <xref ref-type="bibr" rid="ref1 ref14">1,14</xref>
        ] to study data-centric distributed systems whose topology can change over
time in an unbounded, but controlled way, i.e., respecting certain patterns (see,
for example, [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], where constraints about topology structures are added to the
speci cation).
      </p>
      <p>We are also interested in exploring the complexity of weaker properties
besides convergence, like safety and liveness.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Abdulla</surname>
            ,
            <given-names>P.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Delzanno</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rezine</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Approximated parameterized veri cation of in nite-state processes with global conditions</article-title>
          .
          <source>Formal Methods in System Design</source>
          <volume>34</volume>
          (
          <issue>2</issue>
          ),
          <volume>126</volume>
          {
          <fpage>156</fpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Abiteboul</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abrams</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haar</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Milo</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Diagnosis of asynchronous discrete event systems: Datalog to the rescue!</article-title>
          <source>In: Proc. of the 24th ACM SIGACT SIGMOD SIGART Symp. on Principles of Database Systems (PODS)</source>
          . pp.
          <volume>358</volume>
          {
          <fpage>367</fpage>
          . ACM Press (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Abiteboul</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bienvenu</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Galland</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Antoine</surname>
          </string-name>
          , E.:
          <article-title>A rule-based language for web data management</article-title>
          .
          <source>In: Proc. of the 30th ACM SIGACT SIGMOD SIGART Symp. on Principles of Database Systems (PODS)</source>
          . pp.
          <volume>293</volume>
          {
          <fpage>304</fpage>
          . ACM Press (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Alvaro</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ameloot</surname>
            ,
            <given-names>T.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hellerstein</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marczak</surname>
          </string-name>
          , W., Van den Bussche, J.:
          <article-title>A declarative semantics for Dedalus</article-title>
          .
          <source>Tech. Rep. UCB/EECS-2011-120</source>
          , EECS Department, University of California, Berkeley (Nov
          <year>2011</year>
          ), http://www.eecs.berkeley. edu/Pubs/TechRpts/2011/EECS-2011-120.html
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Ameloot</surname>
          </string-name>
          , T.J.:
          <article-title>Declarative networking: Recent theoretical work on coordination, correctness, and declarative semantics</article-title>
          .
          <source>SIGMOD Record</source>
          <volume>43</volume>
          (
          <issue>2</issue>
          ),
          <volume>5</volume>
          {
          <fpage>16</fpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Ameloot</surname>
            ,
            <given-names>T.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Geck</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ketsman</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Neven</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwentick</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Parallelcorrectness and transferability for conjunctive queries</article-title>
          .
          <source>In: Proc. of the 34th ACM SIGACT SIGMOD SIGAI Symp. on Principles of Database Systems (PODS)</source>
          . pp.
          <volume>47</volume>
          {
          <issue>58</issue>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Ameloot</surname>
            ,
            <given-names>T.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ketsman</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Neven</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zinn</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Weaker forms of monotonicity for declarative networking: A more ne-grained answer to the CALM-conjecture</article-title>
          .
          <source>In: Proc. of the 33rd ACM SIGACT SIGMOD SIGAI Symp. on Principles of Database Systems (PODS)</source>
          . pp.
          <volume>64</volume>
          {
          <issue>75</issue>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Ameloot</surname>
            ,
            <given-names>T.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Neven</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Van</surname>
          </string-name>
          den Bussche, J.:
          <article-title>Relational transducers for declarative networking</article-title>
          .
          <source>J. of the ACM</source>
          <volume>60</volume>
          (
          <issue>2</issue>
          ),
          <volume>15</volume>
          :1{
          <fpage>15</fpage>
          :
          <fpage>38</fpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Bagheri</given-names>
            <surname>Hariri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Calvanese</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>De Giacomo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Deutsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Montali</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          :
          <article-title>Veri cation of relational data-centric dynamic systems with external services</article-title>
          .
          <source>In: Proc. of the 32nd ACM SIGACT SIGMOD SIGAI Symp. on Principles of Database Systems (PODS)</source>
          . pp.
          <volume>163</volume>
          {
          <issue>174</issue>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>Bagheri</given-names>
            <surname>Hariri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Calvanese</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Deutsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Montali</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          :
          <article-title>State-boundedness in data-aware dynamic systems</article-title>
          .
          <source>In: Proc. of the 14th Int. Conf. on the Principles of Knowledge Representation and Reasoning (KR)</source>
          . AAAI Press (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Belardinelli</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lomuscio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Patrizi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Veri cation of agent-based artifact systems</article-title>
          .
          <source>J. of Arti cial Intelligence Research</source>
          <volume>51</volume>
          ,
          <volume>333</volume>
          {
          <fpage>376</fpage>
          (
          <year>2014</year>
          ). https://doi.org/10.1613/jair.4424
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jia</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xu</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Luo</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhou</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Loo</surname>
            ,
            <given-names>B.T.</given-names>
          </string-name>
          :
          <article-title>A program logic for verifying secure routing protocols</article-title>
          .
          <source>In: 34th IFIP Int. Conf. on Formal Techniques for Distributed Objects, Components and Systems (FORTE 2014). Lecture Notes in Computer Science</source>
          , vol.
          <volume>8461</volume>
          , pp.
          <volume>117</volume>
          {
          <fpage>132</fpage>
          . Springer (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Loh</surname>
            ,
            <given-names>L.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jia</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhou</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Loo</surname>
            ,
            <given-names>B.T.</given-names>
          </string-name>
          :
          <article-title>Automated veri cation of safety properties of declarative networking programs</article-title>
          .
          <source>In: Proc. of the 17th Int. Symposium on Principles and Practice of Declarative Programming (PPDP)</source>
          . pp.
          <volume>79</volume>
          {
          <issue>90</issue>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Delzanno</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sangnier</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Traverso</surname>
          </string-name>
          , R.:
          <article-title>Parameterized veri cation of broadcast networks of register automata</article-title>
          .
          <source>In: Proc. of the 7th Int. Workshop on Reachability Problems (RP). Lecture Notes in Computer Science</source>
          , vol.
          <volume>8169</volume>
          , pp.
          <volume>109</volume>
          {
          <fpage>121</fpage>
          . Springer (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Gelfond</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lifschitz</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>The stable model semantics for logic programming</article-title>
          .
          <source>In: Proc. of the 5th Int. Conf. on Logic Programming (ICLP)</source>
          . pp.
          <volume>1070</volume>
          {
          <fpage>1080</fpage>
          . The MIT Press (
          <year>1988</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Giannotti</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pedreschi</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Datalog with non-deterministic choice computes NDB-PTIME</article-title>
          .
          <source>J. of Logic Programming</source>
          <volume>35</volume>
          (
          <issue>1</issue>
          ),
          <volume>79</volume>
          {
          <fpage>101</fpage>
          (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Hellerstein</surname>
            ,
            <given-names>J.M.:</given-names>
          </string-name>
          <article-title>The declarative imperative: Experiences and conjectures in distributed logic</article-title>
          .
          <source>SIGMOD Record</source>
          <volume>39</volume>
          (
          <issue>1</issue>
          ),
          <volume>5</volume>
          {
          <fpage>19</fpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Lobo</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wood</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Verma</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calo</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>Distributed state machines: A declarative framework for the management of distributed systems</article-title>
          .
          <source>In: Proc. of the 8th Int. Conf. on Network and Service Management (CNSM)</source>
          . pp.
          <volume>224</volume>
          {
          <issue>228</issue>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Loo</surname>
            ,
            <given-names>B.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Condie</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garofalakis</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gay</surname>
            ,
            <given-names>D.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hellerstein</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maniatis</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ramakrishnan</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roscoe</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stoica</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Declarative networking</article-title>
          .
          <source>Communications of the ACM</source>
          <volume>52</volume>
          (
          <issue>11</issue>
          ),
          <volume>87</volume>
          {
          <fpage>95</fpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Loo</surname>
            ,
            <given-names>B.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Condie</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hellerstein</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maniatis</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roscoe</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stoica</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Implementing declarative overlays</article-title>
          .
          <source>Operating Systems Review</source>
          <volume>39</volume>
          (
          <issue>5</issue>
          ),
          <volume>75</volume>
          {
          <fpage>90</fpage>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Lynch</surname>
            ,
            <given-names>N.A.</given-names>
          </string-name>
          :
          <article-title>Distributed Algorithms</article-title>
          . Morgan Kaufmann (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Ma</surname>
          </string-name>
          , J.,
          <string-name>
            <surname>Le</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wood</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Russo</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lobo</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>A declarative approach to distributed computing: Speci cation, execution and analysis</article-title>
          .
          <source>Theory and Practice of Logic Programming</source>
          <volume>13</volume>
          ,
          <issue>815</issue>
          {
          <fpage>830</fpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Minsky</surname>
            ,
            <given-names>M.L.</given-names>
          </string-name>
          :
          <article-title>Computation: Finite and In nite Machines</article-title>
          . Prentice-Hall (
          <year>1967</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Montali</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calvanese</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Giacomo</surname>
          </string-name>
          , G.:
          <article-title>Veri cation of data-aware commitment-based multiagent systems</article-title>
          .
          <source>In: Proc. of the 13th Int. Conf. on Autonomous Agents and Multiagent Systems (AAMAS)</source>
          . pp.
          <volume>157</volume>
          {
          <issue>164</issue>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Nigam</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jia</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Loo</surname>
            ,
            <given-names>B.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scedrov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Maintaining distributed logic programs incrementally</article-title>
          .
          <source>Computer Languages, Systems &amp; Structures</source>
          <volume>38</volume>
          (
          <issue>2</issue>
          ),
          <volume>158</volume>
          {
          <fpage>180</fpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Ren</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhou</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jia</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gurney</surname>
            ,
            <given-names>A.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Loo</surname>
            ,
            <given-names>B.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rexford</surname>
            ,
            <given-names>J.: FSR</given-names>
          </string-name>
          :
          <article-title>Formal analysis and implementation toolkit for safe inter-domain routing</article-title>
          .
          <source>Computer Communication Review</source>
          <volume>41</volume>
          (
          <issue>4</issue>
          ),
          <volume>440</volume>
          {
          <fpage>441</fpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Sacca</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zaniolo</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Stable models and non-determinism in logic programs with negation</article-title>
          .
          <source>In: Proc. of the 9th ACM SIGACT SIGMOD SIGART Symp. on Principles of Database Systems (PODS)</source>
          . pp.
          <volume>205</volume>
          {
          <issue>217</issue>
          (
          <year>1990</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Vardi</surname>
          </string-name>
          , M.Y.:
          <article-title>Model checking for database theoreticians</article-title>
          .
          <source>In: Proc. of the 10th Int. Conf. on Database Theory (ICDT). Lecture Notes in Computer Science</source>
          , vol.
          <volume>3363</volume>
          , pp.
          <volume>1</volume>
          {
          <fpage>16</fpage>
          . Springer (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29. Zaychik Mo tt, V.,
          <string-name>
            <surname>Stoyanovich</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abiteboul</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miklau</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <article-title>Collaborative access control in WebdamLog</article-title>
          .
          <source>In: Proc. of the ACM SIGMOD Int. Conf. on Management of Data</source>
          . pp.
          <volume>197</volume>
          {
          <fpage>211</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>Zhou</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mapara</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ren</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haeberlen</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ives</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Loo</surname>
            ,
            <given-names>B.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sherr</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Distributed time-aware provenance</article-title>
          .
          <source>Proc. of the VLDB Endowment</source>
          <volume>6</volume>
          (
          <issue>2</issue>
          ),
          <volume>49</volume>
          {
          <fpage>60</fpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>