<!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>Sulla decidibilita` di programmi FDNC On the decidability of FDNC programs</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>P.A. Bonatti</string-name>
        </contrib>
      </contrib-group>
      <fpage>55</fpage>
      <lpage>59</lpage>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Questo articolo introduce una nuova dimostrazione della
decidibilita` del controllo di consistenza per i programmi
FDNC sotto la semantica dei modelli stabili, basandosi su
splitting sequences regolari. Con questa tecnica, riusciamo
a rilassare leggermente la definizione di programmi
FDNC e muoviamo un primo passo verso l’analisi delle
relazioni tra programmi FDNC e la teoria dei programmi
finitamente ricorsivi.</p>
    </sec>
    <sec id="sec-2">
      <title>We provide a new decidability proof for the consistency of</title>
    </sec>
    <sec id="sec-3">
      <title>FDNC programs under the stable model semantics, based</title>
      <p>on regular splitting sequences. With this technique, we can
slightly relax the definition of FDNC programs and make
a first step towards a precise understanding of the
relationships between FDNC programs and finitely recursive
programs.
1</p>
      <sec id="sec-3-1">
        <title>Introduction</title>
        <p>
          Some of the recent works of Alberto concern modal
extensions of logic programming [
          <xref ref-type="bibr" rid="ref1 ref5">5, 1</xref>
          ]. A major motivation for
those programs is reasoning about actions and change. In
this setting, nonmonotonic constructs such as negation as
failure are extremely useful to encode compactly the frame
axiom and action consequences. However, for a long time
such features could be supported only by forbidding
function symbols, in order to ensure decidability.
        </p>
        <p>
          Later results dropped this restriction. Finitary programs
[
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] preserve decidability even in the presence of infinite
domains. This is achieved at the cost of restrictions on the
cycles in dependency graphs containing an odd number of
negative edges. Such limitations imply restrictions on the
constraints (in the form of denials like ← A1, . . . , An, for
example) that can be encoded in a finitary program.
        </p>
        <p>
          FDNC programs [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] adopt a different strategy. They
restrict the syntax to (a skolemized form of) 2-variable
guarded logic and avoid the restrictions on cycles and
constraints.
        </p>
        <p>
          In this paper we reformulate the decidability of the
consistency check for FDNC programs in terms of regular
splitting sequences. In this way we slightly generalize a
decidability result published in [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
2
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>Preliminaries</title>
        <p>
          We assume the reader to be familiar with Logic
Programming and the stable model semantics [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]
        </p>
        <p>Disjunctive logic programs are sets of (disjunctive) rules
A1 ∨ A2 ∨ ... ∨ Am ← L1, ..., Ln
(m &gt; 0, n ≥ 0),
where each Aj (j = 1, ..., m) is a logical atom and each Li
(i = 1, ..., n) is a literal, that is, either a logical atom A or
a negated atom not A.</p>
        <p>If r is a rule with the above structure, then let head(r) =
{A1, A2, ..., Am} and body(r) = {L1, ..., Ln}.
Moreover, let body+(r) (respectively body−(r)) be the set of all
atoms A s.t. A (respectively not A) belongs to body(r).</p>
        <p>The ground instantiation of a program P is denoted
by Ground(P ), and the set of atoms occurring in
Ground(P ) is denoted by atom(P ). Similarly, atom(r)
denotes the set of atoms occurring in a rule r.</p>
        <p>A Herbrand model M of P is a stable model of P iff
M ∈ lm(P M ), where lm(X) denotes the set of least
models of a positive (possibly disjunctive) program X, and</p>
        <sec id="sec-3-2-1">
          <title>P M is the Gelfond-Lifschitz transformation of P , obtained</title>
          <p>from Ground(P ) by (i) removing all rules r such that
body−(r) ∩ M 6= ∅, and (ii) removing all negative
literals from the body of the remaining rules.</p>
          <p>Disjunctive programs may have one, none, or multiple
stable models. We say that a program is consistent if it has
at least one stable model; otherwise the program is
inconsistent. A skeptical consequence of a program P is any
formula satisfied by all the stable models of P . A
credulous consequence of P is any formula satisfied by at least
one stable model of P .</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>The dependency graph of a program P is a labelled di</title>
      <p>rected graph, denoted by DG(P ), whose vertices are the
ground atoms of P ’s language. Moreover, there exists an
edge from A to B iff for some rule r ∈ Ground(P ), A ∈
head(r) and either B occurs in body(r), or B ∈ head(r).</p>
      <p>An atom A depends on B if there is a directed path from
A to B in the dependency graph.</p>
      <p>
        A disjunctive program P is finitely recursive [
        <xref ref-type="bibr" rid="ref3 ref4">4, 3</xref>
        ] iff
each ground atom A depends on finitely many ground
atoms in DG(P ).
      </p>
      <p>A FDNC program is a set of disjunctive rules
conforming to any of the following schemata:
(R1) A1(x) ∨ ... ∨ An(x) ← (not)B0(x), ..., (not)Bl(x)
(R2) R1(x, y) ∨ ... ∨ Rn(x, y) ←</p>
      <p>(not)P0(x, y), . . . , (not)Pl(x, y)
(R3) R1(x, f1(x)) ∨ ... ∨ Rn(x, fn(x)) ←</p>
      <p>(not)P0(x, g0(x)), . . . , (not)Pl(x, gl(x))
(R4) A1(y) ∨ ... ∨ An(y) ←</p>
      <p>(not)B0(Z0), ..., (not)Bl(Zl), R(x, y)
(R5) A1(f (x)) ∨ ... ∨ An(f (x)) ←</p>
      <p>(not)B0(W0), ..., (not)Bl(Wl), R(x, f (x))
(R6) R1(x, f1(x)) ∨ ... ∨ Rn(x, fn(x)) ←</p>
      <p>(not)B0(x), ..., (not)Bl(x)
(R7) C1(~c1) ∨ ... ∨ Cn(~cn) ← (not)D1(d~1), ..., (not)Dl(d~l)
where n, l ≥ 0, Zi ∈ {x, y}, Wi ∈ {x, f (x)}, and each ~ci,
d~i is a tuple of one or two constants. Each rule r must be
safe, i.e., each variable must occur in body+(r). Moreover
at least one rule of type (R7) must be a fact.</p>
      <p>
        Our results depend on a splitting theorem that allows to
construct stable models in stages. In turn, this theorem is
based on the notion of splitting set of a program P [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ],[
        <xref ref-type="bibr" rid="ref6">6</xref>
        ],
that is, any set U of atoms such that, for all rules r ∈
Ground(P ), if head(r) ∩ U 6= ∅ then atom(r) ⊆ U . The
set of rules r ∈ Ground(P ) such that head(r) ∩ U 6= ∅ is
called the bottom of P relative to the splitting set U and is
denoted by botU (P ).
      </p>
      <p>The partially evaluated complement of the bottom
program determines the rest of each stable model. The partial
evaluation of a ground logic program P with splitting set
U w.r.t. a set of ground atoms X is the program eU (P, X)
defined as follows:
eU (P, X) = { r0 | there exists r ∈ P s.t.</p>
      <p>(body+(r) ∩ U ) ⊆ X, (body−(r) ∩ U ) ∩ X = ∅,
head(r0) = head(r), body+(r0) = body+(r) \ U,
body−(r0) = body−(r) \ U } .</p>
      <p>
        We are finally ready to formulate the splitting theorem.
Theorem 1 (Splitting theorem [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]) Let U be a splitting
set for a logic program P . An interpretation M is a stable
model of P iff M = J ∪ I, where
      </p>
      <sec id="sec-4-1">
        <title>1. I is a stable model of botU (P ), and</title>
        <p>2. J is a stable model of eU (Ground(P ) \ botU (P ), I).</p>
        <p>
          The splitting theorem has been extended to transfinite
sequences in [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. A (transfinite) sequence is a family
whose index set is an initial segment of ordinals, {α :
α &lt; μ}. The ordinal μ is the length of the sequence.
        </p>
        <p>A sequence hUαiα&lt;μ of sets is monotone if Uα ⊆ Uβ
whenever α &lt; β, and continuous if, for each limit ordinal
α &lt; μ, Uα = Sν&lt;α Uν . A sequence with μ = ω is smooth
if each of its elements is finite.</p>
        <p>
          Definition 2 [Lifschitz-Turner, [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]] A splitting sequence
for a program P is a monotone, continuous sequence
hUαiα&lt;μ of splitting sets for P s.t. Sα&lt;μ Uα = atom(P ).
        </p>
        <p>Lifschitz and Turner generalized the splitting theorem to
splitting sequences.</p>
        <p>
          Theorem 3 (Splitting sequence theorem [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]) Let P be a
disjunctive program. M is a stable model of P iff there
exists a splitting sequence hUαiα&lt;μ such that
        </p>
      </sec>
      <sec id="sec-4-2">
        <title>1. M0 is a stable model of botU0 (P ),</title>
      </sec>
      <sec id="sec-4-3">
        <title>2. for all successor ordinals α &lt; μ, Mα is a stable</title>
        <p>model of eUα−1 (botUα (P ) \ botUα−1 (P ), Sβ&lt;α Mβ),
3. for all limit ordinals λ &lt; μ, Mλ = ∅,
4. M = Sα&lt;μ Uα.
3</p>
        <sec id="sec-4-3-1">
          <title>Revised decidability results</title>
          <p>We first observe that strictly speaking, FDNC programs are
not always finitely recursive, due to the presence of local
variables, i.e. variables that occur in the body of a rule and
not in its head. Such variables arise in instances of rule
schema (R4); in particular x occurs only in the body.
However it is not hard to verify that the following proposition
holds:</p>
        </sec>
      </sec>
      <sec id="sec-4-4">
        <title>Proposition 4 If an atom R(t, u) belongs to a stable</title>
        <p>model of an FDNC program, then either u = f (t) for some
function symbol f , or (t, u) is one of the vectors of
constants ~ci occurring in the head of some instance of (R7).</p>
        <p>It follows that each rule of the form (R4) can be replaced
by a finite number of its instances:
• one for each substitution [y/f (x)], where f is a
function symbol occurring in the program;
• one for each substitution [x/a1, y/a2] for each vector
of constants ~ci = (a1, a2) occurring in the head of
some instance of schema (R7).</p>
        <p>By Proposition 4, such transformation preserves the set
of stable models of the given FDNC program. Moreover,
the transformation removes all local variables so the
transformed program is a finitely recursive FDNC program.
With a similar argument we can further normalize
FDNC programs, restricting the set of atoms that may
occur in a rule head. Each instance of schema (R2) can be
replaced by a finite number of its instances by analogy with
the previous case. By Proposition 4, such transformation
preserves the set of stable models of the given FDNC
program. Moreover, the transformation specializes the heads
of the instances of (R2) so that the following lemma holds:</p>
      </sec>
      <sec id="sec-4-5">
        <title>Lemma 5 Every FDNC program is equivalent to a FDNC</title>
        <p>program with no rules of the form (R2) or (R4).</p>
      </sec>
      <sec id="sec-4-6">
        <title>Corollary 6 Every FDNC program P is equivalent to a</title>
        <p>finitely recursive FDNC program P 0 such that the binary
atoms occurring in Ground(P 0) are of the form R(t, f (t))
(for some function symbol f ) or R(~ci), where ~ci occurs in
the head of some instance of (R7).</p>
        <p>Note that the above program transformation can be
effectively computed. Therefore, from now on, we shall
focus without loss of generality on normal FDNC programs,
that we define as programs whose rules conform to some
of the schemata (R1), (R3), (R5), (R6), and (R7).</p>
        <p>In the following, let P be a given normal FDNC
program, and let us construct a suitable splitting sequence for
P . First take any effective enumeration t1, t2, . . . , ti, . . .
of the ground compound terms of P ’s language, such that
each term ti precedes all the terms larger than ti (in terms
of the number of function symbol occurrences). For all
such ground terms ti, we shall denote by Uˆi the set of all
ground atoms A(ti) and R(ti, f (ti)), for all function
symbols f . Now a canonical splitting sequence for P can be
defined as follows:
• let U0 be the set of all atoms of the form A(c), R(c, d),
or R(c, f (c)), where c and d are constants;</p>
        <p>ˆ
• let Ui+1 = Ui ∪ Ui+1.</p>
        <p>Since P has no rules conforming to (R2) or (R4), it is easy
to check that hUiii&lt;ω is indeed a splitting sequence for
Ground(P ).</p>
        <p>Moreover, note that by definition, canonical sequences
are smooth, as U0 and the sets Uˆi are all finite.</p>
        <p>Another important property of canonical sequences is
that the program slices Pi+1 = botUi+1 (P )\botUi (P ) they
induce are all isomorphic to each other. By isomorphic, we
mean that for all 0 &lt; i &lt; j &lt; ω, Pj can be obtained from
Pi by uniformly replacing ti with tj (in symbols, Pj =
Pi[ti/tj]).</p>
        <p>Now consider finite sequences of models hMiii&lt;k with
the following properties:
• M0 is a stable model of botU0 (P );
• Mi+1 is a stable model of eUi (botUi+1 (P ) \
botUi (P ), Mi).</p>
        <p>We say such a sequence is blocked if Mk = Mj[tj/tk] for
some j such that 1 &lt; j &lt; k, that is, Mk can be obtained
from Mj by replacing term tj with tk.</p>
        <p>Lemma 7 Every blocked model sequence hMiii&lt;k
(induced by a canonical splitting sequence hUiii&lt;ω for a
normal FDNC program P ) can be extended to an infinite
sequence hMiii&lt;ω satisfying the following properties:</p>
      </sec>
      <sec id="sec-4-7">
        <title>1. M0 is a stable model of botU0 (P );</title>
        <p>2. Mi+1 is a stable model of eUi (botUi+1 (P ) \
botUi (P ), Mi).</p>
        <p>Roughly speaking, the idea simply consists in
repeating the subsequence Mj, . . . , Mk−1 forever, replacing the
terms tj, . . . , tk−1 as appropriate.</p>
        <p>Proof. Let hMiii&lt;k be a blocked sequence as described in
the lemma’s statement. Point 1 follows immediately from
the hypothesis, so we focus on point 2. Since hMiii&lt;k is
blocked, there exists j &lt; k such that Mk = Mj[tj/tk].
For all i &gt; k, let mi = j + (i − k) mod(k − j) and
Mi = Mmi [tmi /ti]. Moreover, for all i ≥ 0 let Pi+1 =
botUi+1 (P ) \ botUi (P ). As we already pointed out before
this lemma, Pi = Pmi [tmi /ti]. Now, since both the
program slices and the models with indexes i and mi are
subject to the same symbol renaming, we have that
eUi (Pi, Mi−1) = eUmi (Pmi , Mmi−1)[tmi /ti] .
Since semantics does not depend on symbol names and by
assumption Mmi is a stable model of eUmi (Pmi , Mmi−1)
(as mi lies between j and k), we clearly have that Mi is a
stable model of eUi (Pi, Mi−1); this proves point 2.</p>
        <p>Now proving decidability is relatively easy. We start by
characterizing satisfiability in terms of blocked sequences.</p>
      </sec>
      <sec id="sec-4-8">
        <title>Theorem 8 M is a stable model of a normal FDNC pro</title>
        <p>gram P iff M is the limit of the extension (in the sense of
Lemma 7) of a blocked sequence hMiii&lt;k (induced by a
canonical splitting sequence hUiii&lt;ω for P ).</p>
        <p>Proof. (If ) Suppose M is the limit of a sequence hMiii&lt;ω
such that hMiii&lt;k is a blocked sequence and such that:
1. M0 is a stable model of botU0 (P );
2. Mi+1 is a stable model of eUi (botUi+1 (P ) \
botUi (P ), Mi).</p>
        <p>Note that each program slice Pi+1 = botUi+1 (P ) \
botUi (P ) contains only atoms from Ui+1 \ Ui−1 (because
P is a normal FDNC program). Therefore the partial
evaluation of Pi+1 does not depend on the atoms in Ui−1, that
is, for all i &lt; ω,
eUi (Pi+1, [ Mj) = eUi (Pi+1, Mi) .</p>
        <p>j≤i
Then properties 1 and 2 above entail the properties
required by the splitting sequence theorem (for μ = ω). It
follows that the limit M = Si&lt;ω Mi is a stable model of
P .</p>
        <p>(Only if ) Suppose that M is a stable model of P . Let
M0 = M ∩ U0 and for all i &lt; ω, let Mi+1 = M ∩
(Ui+1 \ Ui). By the splitting theorem, M0 is a stable
model of botU0 (P ). Moreover, by applying the
splitting theorem twice for all i, we have that each Mi+1 is
a stable model of eUi (botUi+1 (P ) \ botUi (P ), Sj≤i Mj )
that, as we pointed out in the If part of the proof, equals
eUi (botUi+1 (P ) \ botUi (P ), Mi). Then we are only left to
show that the sequence hMiii&lt;ω contains a blocked prefix
hMiii&lt;k, that is, for some j and k such that 0 &lt; j &lt; k &lt;
ω, Mk = Mj [tj /tk].</p>
        <p>To see this, observe that by definition for all i &gt; 0, Mi
is a subset of Uˆi, and Uˆi is isomorphic to Uˆ1, that is, Uˆi =
Uˆ1[t1/ti] and |Ui| = |Uˆ1|. It follows that for all i &gt; 0
ˆ
there exists Si ⊆ Uˆ1 such that Mi = Si[t1/ti]. Since
Uˆ1 is finite, there must be two indexes j and k and a set
S ⊆ Uˆ1 such that 0 &lt; j &lt; k ≤ 2|Uˆ1|, Mj = S[t1/tj ], and
Mk = S[t1/tk]. Consequently, Mk = S[t1/tj ][tj /tk] =
Mj [tj /tk], which completes the proof.</p>
      </sec>
      <sec id="sec-4-9">
        <title>Corollary 9 A normal FDNC program P has a stable</title>
        <p>model iff P has a blocked model sequence hMiii&lt;k
(induced by a canonical splitting sequence hUiii&lt;ω for P )
with k ≤ 2|Uˆ1|.</p>
      </sec>
      <sec id="sec-4-10">
        <title>Corollary 10 Deciding whether a FDNC program P is</title>
        <p>consistent is decidable.</p>
        <p>Proof. Consistency can be nondeterministically checked
as follows: First normalize P . Next for i = 1, . . . , 2|Uˆ1|,
build the program eUi (Pi+1, Mi) and pick up one of its
stable models Mi+1; if no such model exists, then return
false. Check whether Mi+1 is isomorphic to some previous
Mj ; if so, return true. Otherwise repeat the loop, or return
false if the end of the loop is reached. Clearly, this
algorithm returns true in at least one run iff P has a blocked
model sequence hMiii&lt;k with k ≤ 2|Uˆ1|. By the above
corollary, it follows that the algorithm solves the
consistency problem for P .</p>
        <p>
          Our results do not need all the restrictions placed on
FDNC programs. Proposition 4 holds even when the
program is not safe, provided that the rules conforming to (R2)
have nonempty bodies. The other proofs do not depend on
safeness. In this sense, our results are slightly more general
than those in [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
4
        </p>
        <sec id="sec-4-10-1">
          <title>Conclusions and future work</title>
          <p>
            We have given an alternative proof of a decidability
result of [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ] for FDNC programs by proving that a consistent
normal FDNC program has always a stable model which is
the limit of a regular sequence hMiii&lt;ω of stable models
of the finite programs eUi (Pi+1, Mi). Such a regular
sequence can be finitely represented by a blocked sequence
hMiii&lt;k.
          </p>
          <p>The term blocked is deliberately inspired by the notion
of blocking in tableaux for modal and description logics.
The intuitions in all these areas are analogous, and the
goals are the same, namely decidable reasoning in the
presence of infinite domains through a finite representation of
infinite regular models.</p>
          <p>We are planning to complete this investigation by
characterizing credulous and skeptical reasoning and their
computational complexity in terms of blocked model
sequences. In particular, in order to provide effective
reasoning methods, we are going to exploit the fact that normal
FDNC programs are finitely recursive; for such programs
the sequence of bottom programs induced by a smooth
splitting ω-sequences is consistent iff the entire program is
consistent. The consistency of the bottoms can be proved
by (a suitable adaptation of) Lemma 7.</p>
          <p>
            It will be interesting to inspect applications of these
ideas to modal extensions of logic programming, in the
spirit of [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ], possibly exploiting the translation in [
            <xref ref-type="bibr" rid="ref1">1</xref>
            ].
          </p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Baldoni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Giordano</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Martelli</surname>
          </string-name>
          .
          <article-title>Translating a modal language with embedded implication into horn clause logic</article-title>
          .
          <source>In ELP</source>
          , volume
          <volume>1050</volume>
          <source>of LNCS</source>
          , pages
          <fpage>19</fpage>
          -
          <lpage>33</lpage>
          . Springer,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>C.</given-names>
            <surname>Baral</surname>
          </string-name>
          .
          <article-title>Knowledge Representation, Reasoning and Declarative Problem Solving</article-title>
          . Cambridge University Press, Cambridge,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.</given-names>
            <surname>Baselice</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.A.</given-names>
            <surname>Bonatti</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Criscuolo</surname>
          </string-name>
          .
          <article-title>On finitely recursive programs</article-title>
          .
          <source>In ICLP</source>
          <year>2007</year>
          , volume
          <volume>4670</volume>
          <source>of LNCS</source>
          , pages
          <fpage>89</fpage>
          -
          <lpage>103</lpage>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Piero</surname>
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Bonatti</surname>
          </string-name>
          .
          <article-title>Reasoning with infinite stable models</article-title>
          .
          <source>Artif</source>
          . Intell.,
          <volume>156</volume>
          (
          <issue>1</issue>
          ):
          <fpage>75</fpage>
          -
          <lpage>111</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Laura</given-names>
            <surname>Giordano</surname>
          </string-name>
          , Alberto Martelli, and
          <string-name>
            <given-names>Camilla</given-names>
            <surname>Schwind</surname>
          </string-name>
          .
          <article-title>Ramification and causality in a modal action logic</article-title>
          .
          <source>J. Log. Comput.</source>
          ,
          <volume>10</volume>
          (
          <issue>5</issue>
          ):
          <fpage>625</fpage>
          -
          <lpage>662</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>V.</given-names>
            <surname>Lifschitz</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Turner</surname>
          </string-name>
          .
          <article-title>Splitting a Logic Program</article-title>
          .
          <source>In Proc. of the 12th Int. Conf. on Logic Programming</source>
          , MIT Press Series Logic Program, pages
          <fpage>581</fpage>
          -
          <lpage>595</lpage>
          . MIT Press,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Vladimir</given-names>
            <surname>Lifschitz</surname>
          </string-name>
          and
          <string-name>
            <given-names>Hudson</given-names>
            <surname>Turner</surname>
          </string-name>
          .
          <article-title>Splitting a logic program</article-title>
          .
          <source>In International Conference on Logic Programming</source>
          , pages
          <fpage>23</fpage>
          -
          <lpage>37</lpage>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M.</given-names>
            <surname>Simkus</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Eiter</surname>
          </string-name>
          . FDNC:
          <article-title>Decidable nonmonotonic disjunctive logic programs with function symbols</article-title>
          .
          <source>In LPAR</source>
          <year>2007</year>
          , volume
          <volume>4790</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>514</fpage>
          -
          <lpage>530</lpage>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>