<!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>Modeling Clique Coloring via ASP(Q)</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Giovanni Amendola</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Giovanni Rotondaro</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Calabria</institution>
          ,
          <addr-line>Rende (CS)</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Graph problems are fundamental in several areas of research such as Computer Sciences, Physics, Chemistry, Biology, Social Sciences, and many other fields. Recent studies in graph theory are devoted to understanding more complicated versions of the classic problems of colorability and finding cliques. In particular, the Clique Coloring (CC) problem is the problem of deciding whether vertices of every maximal clique can be colored by two different colors. For arbitrary graphs, this problem is known to be Σ2p-complete. Answer Set Programming (ASP) is a logic-based declarative programming language able to model this kind of complex problems. In this paper, we provide two modeling into ASP, one using the basic version of ASP and the so-called saturation technique, and another one using a new extension of ASP with quantifiers, named ASP(Q), that is a much more powerful language able to model each computational problem in the polynomial hierarchy. We show that this last modeling is much more intuitive and allows to express the CC problem in a direct and natural way. Finally, we formally prove the soundness and completeness of both approaches.1</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Answer Set Programming</kwd>
        <kwd>Clique Coloring</kwd>
        <kwd>Polynomial Hierarchy</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Problems on graphs are fundamental in several sciences such as Computer Sciences, Physics,
Chemistry, Biology, Social Sciences, and many other fields, because a lot of problems in these
research areas can be translated into graph problems [1]. In the past, great attention has been
focused on the study of graph problems about coloring, such as the Vertex Coloring problem
and the Chromatic Number problem; about routes, such as the Hamiltonian Path problem and
the Travelling Salesman problem; about covering, such as the Vertex Covering problem and the
Dominating Set problem; and many others [2]. All these problems we have mentioned are very
complex from a computational view point. More precisely, they are NP-hard [3].</p>
      <p>Answer Set Programming (ASP) [4, 5] is a logic-based declarative language able to model this
kind of complex problems in an easy and direct way. It is based on the stable model semantics [6],
also called answer set semantics [7]. A classic modeling example concerns the Vertex Coloring
problem by using three colors, say red, blue, and green. Note that, also in this case, the problem
is NP-hard. However, with just the two following rules, whose meaning is very intuitive, the
problem is solved:</p>
      <p>←
color(X , red) ∨ color(X , blue) ∨ color(X , green) ← node(X ).</p>
      <p>edge(X ,Y ), col(C), color(X ,C), color(Y,C).</p>
      <p>Indeed, the first rule is a guess of the color for a given node of the graph; and the second rule is a
constraint forcing the chosen coloration to have different colors for nodes connected by an edge,
i.e., it is not possible that there is an edge between two nodes, X and Y , and both are colored by
the same color C.</p>
      <p>In the past, for solving problems in ASP a very useful methodology has been identified and
developed. It is known as generate-define-test [ 7] or as guess-and-check [8]. Basically, the guess
part selects candidate solutions by using disjunctive rules, and the check part uses constraints
to force admissible ones, like in the Vertex Coloring modeling example. Moreover, several
ASP solvers have been designed and implemented, such as DLV [9] and Clasp [10], to show
the effectivity in solving problems [11]. However, ASP in its basic version is not able to solve
complex problems beyond the second level of the Polynomial Hierarchy [12], and it loses its
ease of use when already dealing with problems that are Σ2p-complete [13, 14, 15]. To overcome
these limitations, several attempts have been developed in the past [16, 14, 17, 13, 15, 18].
More recently, it has been proposed an extension of ASP with Quantifiers , named ASP(Q) [19].
Basically, ASP(Q) programs extends ASP program in a similar way to how Quantified Boolean
formulas extend propositional logic formulas. Intuitively, the ASP(Q) language allows to quantify
(existentially or universally) over answer sets of standard ASP programs. So that, ASP(Q) is a
much more powerful language able to model, in a direct and natural way, problems belonging to
the Polynomial Hierarchy.</p>
      <p>Now, recent studies in graph theory are devoted to understanding more complicated versions of
the classic graph problems mentioned above. In this paper, we will focus on the so-called Clique
Coloring (CC) problem [20]. Intuitively, it is the problem of deciding whether vertices of every
inclusionwise maximal clique of a graph can be colored by (at least) two different colors from
a set of k colors. In this case, the graph is said to have a k-clique-coloring. Originally, the CC
problem was formulated in terms of the clique hypergraph [21], that is defined on the same set of
vertices of the starting graph, while an hyperedge is a subset of vertices that is an inclusionwise
maximal clique. The problem is now to decide the existence of a coloring of the vertices of the
hypergraph with k colors such that every hyperedge contains at least two colors. In this case,
the hypergraph is said to be k-colorable. Clearly, a graph has a k-clique-coloring if, and only if,
the corresponding hypergraph is k-colorable. The CC problem has been addressed for restricted
classes of graphs in [22, 23, 24, 25, 26, 27, 28, 29], and in its general version in [20, 30]. For
arbitrary graphs, this problem is Σ2p-complete already for k = 2 [20].</p>
      <p>In this paper, we provide two modeling of the CC problem into ASP programs, one using
the basic version of ASP and the so-called saturation technique [31, 32], and another one using
ASP(Q). We show that this last modeling is much more intuitive and allows to express the CC
problem in a direct and natural way. Finally, we formally prove the soundness and completeness
of both approaches.</p>
      <p>The paper is structured as follows. In Section 2, we introduce preliminary notions about the CC
problem, ASP, and ASP(Q); in Section 3, we develop and study an encoding of the CC problem
a
b
b
c
d
e
a
d
c
f
e
f
b
b
c
a
d
d
e
c
f
e
in standard ASP; in Section 4, we model the CC problem with an ASP(Q) program, by showing
soundness and completeness of the enconding; and, finally, in Section 5, we conclude with a brief
discussion and future work.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Preliminaries</title>
      <p>In this section, first, we present the Clique Coloring (CC) problem. Then, we introduce basic
notions of Answer Set Programming (ASP), and its extension with quantifiers, namely ASP(Q) [ 19].</p>
      <sec id="sec-2-1">
        <title>2.1. Clique Coloring Problem</title>
        <p>The Clique Coloring (CC) problem is the problem of deciding whether vertices of every maximal
clique can be colored by two different colors [20]. More formally, let G = (V, E) be an undirected
graph. Recall that a clique H in G is a subset of V of at least 2 vertices, such that every pair of
distinct vertices is connected by an edge, that is the subgraph of G induced by H is a complete
graph. A maximal clique H in G is a clique in G such that each subset H′ of V strictly containing
H (i.e., H ⊂ H′ ⊆ V ) is not a clique in G. Intuitively, H is a maximal clique if it cannot be
extended to a larger one. Let k be an integer number. A k-clique-coloring of G is a function γ
from V to {1, 2, . . . , k} such that every maximal clique of G contains two vertices of different
color. Now, we can formally specify the CC decision problem.</p>
        <p>CC problem:
INPUT: An undirected graph G and an integer k.</p>
        <p>QUESTION: Is there a k-clique-coloring of G?</p>
        <p>To better understand previous notions and the CC problem, we focus on the case of k = 2, and
provide two graph examples: the first of a graph admitting a 2-clique-coloring, and the second of
a graph that does not admit it.</p>
        <p>Example 1. Let G1 be the graph reported in Figure 1. Formally, G1 = (V, E), where V =
{a, b, c, d, e, f } and E = {{a, b}, {a, c}, {a, d}, {b, c}, {c, d}, {b, e}, {d, e}, {d, f }}. It is easy to
see that the maximal cliques in G1 are: {a, b, c}, {a, c, d}, {d, e}, {b, e}, and {d, f }. Now, assume
that k = 2, and consider the following coloration of vertices of G1: γ(a) = γ(b) = γ(d) = 1 and
γ(c) = γ(e) = γ( f ) = 2 (in Figure 1, 1 corresponds to red, and 2 to blue). Hence, each maximal
clique in G1 contains two vertices of different color. Therefore, γ is a 2-clique-coloring of G1.
Example 2. Let G2 be the graph reported in Figure 2. Formally, G2 = (V, E), where V =
{a, b, c, d, e, f } and E = {{a, b}, {b, c}, {b, d}, {a, f }, {c, f }, {d, e}, {e, f }}. Then, the maximal
cliques in G2 are: {a, b}, {b, c}, {b, d}, {a, f }, {c, f }, {d, e}, {e, f }. Now, if we assume that
k = 2, it is possible to prove that there is no 2-clique-coloring of G2. However, if we assume that
k = 3, the following function γ such that γ(a) = γ(c) = γ(d) = 1, γ(b) = γ(e) = 2, and γ( f ) = 3
(in Figure 2, 1 corresponds to red, 2 to blue, and 3 to green) is a 3-clique-coloring of G2.</p>
        <p>Note that the CC problem can be also seen as the problem of coloring the clique hypergraph
(cf. Duffus et al. [21]). The clique hypergraph C (G) of a graph G = (V, E) is defined on the same
vertex set V , and a set V ′ ⊆ V is a hyperedge of C (G) if, and only if, |V ′| &gt; 1 and V ′ induces an
inclusionwise maximal clique of G. The question of k-coloring the hypergraph C (G) concerns
into assign k colors to the vertices of C (G) such that every hyperedge contains at least two colors.
Clearly, a graph G is k-clique-coloring if, and only if, the hypergraph C (G) is k-colorable.</p>
        <p>Concerning computational complexity, it has been proved in [20] that the CC problem is
Σp2
complete for any fixed k ≥ 2 (see Theorem 4 and Corollary 5 in [20]). In the past, many classes
of special graphs have been studied. It is known that for perfect graph the 2-clique-coloring
problem is NP-hard, but it is open the question if it is NP-complete [24]. Moreover, for planar
graph the 2-clique-coloring problem is feasible in polynomial time [24]. More recently, it has
been proved that for planar graph the 3-clique-coloring problem is feasible in linear time [28].
Concerning circular-arc graphs, the CC problem is solvable in polynomial time [33], and an
optimal clique-coloring is computable in linear time [34]. In the next sections, we will focus on
the most general case.</p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Answer Set Programming</title>
        <p>Let P be a set of predicates, C a set of constants, and V set of variables. An element in C ∪ V
is called a (standard) term. A (standard) atom a of arity n ≥ 0 has the form p(t1, . . . , tn), where
p is a predicate from P, and ti is a term, for each i ∈ {1, . . . , n}. Whenever n = 0, we just
write p instead of p(). If no variable appears in an atom, it is called ground. Moreover, let
⋆ ∈ {+, − , × , /}, ∈≺ { &lt;, ≤ , =, ̸=, &gt;, }≥ , and let X and Y be variables. We extend the set of
terms and atoms as follows. An arithmetic term has form − (X ), (X ⋆Y ), − (α) or (α ⋆ β ), where
α and β are arithmetic terms, and a built-in atom has form α ≺ β , where α and β are arithmetic
terms. A (disjunctive) rule r has form
a1 ∨ . . . ∨ al ←
where m + n + l &gt; 0, and all ai and ck are standard atoms, and b j are standard or built-in
atoms. A (disjunctive) ASP program P is a finite set of rules. The head of r is the set
H(r) = {a1, . . . , al}, the positive (resp., negative) body of r is the set B+(r) = {b1, . . . , bm} (resp.,
B− (r) = {c1, . . . , cn}), and the body is the set B(r) = B− (r) ∪ B+(r). We denote by A(r) the set of
built-in atoms. If B(r) = 0/, then the arrow “← ” will be omitted. A rule r is normal, if |H(r)| ≤ 1.
A fact is normal rule with B(r) = 0/. A constraint is a rule with H(r) = 0/ . A normal ASP program
P is a finite set of normal rules.</p>
        <p>The Herbrand universe of P, denoted by UP, is the set of all integers and all constants appearing
in P. The Herbrand base of P, denoted by BP, is the set of all ground standard atoms that can
be obtained from the set of predicate symbols appearing in P and the constants in UP. Let r
be a rule of P, and let σ be a substitution map from the set of variables occurring in r to UP,
such that the arithmetic evaluation, performed in the standard way, of any arithmetic term is
well-defined. A ground instance of r is a rule obtained from r by replacing each variable X
in r by σ (X ). The arithmetic evaluation of a ground instance r is obtained by replacing any
arithmetic term appearing in r by its integer value, which is calculated in the standard way. The
ground instantiation of r, denoted by ground(r), is the set of all (arithmetically evaluated) ground
instances of r. We denote by ground(P) = ⋃︁r∈P ground(r) the set of all (arithmetically evaluated)
ground instances of all rules of P. An interpretation of P is any set I ⊆ BP of standard atoms.</p>
        <p>A rule r is ground if each atom in r is ground. A program P is ground if each rule in P is
ground. We say that an interpretation I satisfies a ground rule r if B+(r)\A(r) ⊆ I; B− (r) ∩ I = 0/
implies I ∩ H(r) ̸= 0/; and each built-in atom in A(r) is true according to the standard arithmetic
evaluation. If I satisfies every rule r in a ground program P, then I is a model of P. The reduct of
P w.r.t. an interpretation I is the program PI such that: (i) for each rule r ∈ P with B− (r) ∩ I = 0/ ,
PI contains the rule r′ with H(r′) = H(r), B+(r′) = B+(r), and B− (r′) = 0/ ; (ii) no further rule</p>
        <p>I
is in P . An interpretation I is an answer set of the ground ASP program P if it is a minimal
model of PI. For a non ground ASP program P, its answer sets are those of ground(P). The set
of all answer sets of P is denoted by AS(P). A program P such that AS(P) ̸= 0/ is called coherent,
otherwise it is called incoherent.</p>
        <sec id="sec-2-2-1">
          <title>Example 3. Consider the disjunctive ASP program</title>
        </sec>
        <sec id="sec-2-2-2">
          <title>Therefore, its ground version is given by</title>
          <p>
            ⎧ a(
            <xref ref-type="bibr" rid="ref1">1</xref>
            ). a(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ). b(
            <xref ref-type="bibr" rid="ref1">1</xref>
            ).
          </p>
          <p>P = ⎨ c(X ) ∨ d(X ) ← a(X ), not b(X ).</p>
          <p>⎩ c(Y ) ← a(X ), b(Y ), not c(X ), X ̸= Y. ⎭</p>
          <p>
            ⎧ a(
            <xref ref-type="bibr" rid="ref1">1</xref>
            ). a(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ). b(
            <xref ref-type="bibr" rid="ref1">1</xref>
            ). ⎫
ground(P) = ⎨⎪⎪⎪⎪ cc((
            <xref ref-type="bibr" rid="ref12">12</xref>
            )) ∨∨ dd((
            <xref ref-type="bibr" rid="ref12">12</xref>
            )) ←← aa((
            <xref ref-type="bibr" rid="ref21">21</xref>
            )),, nnoott bb((
            <xref ref-type="bibr" rid="ref21">21</xref>
            )).. ⎬⎪⎪⎪⎪.
          </p>
          <p>
            ⎪⎪⎪⎪⎩ cc((
            <xref ref-type="bibr" rid="ref21">21</xref>
            )) ←← aa((
            <xref ref-type="bibr" rid="ref12">12</xref>
            )),, bb((
            <xref ref-type="bibr" rid="ref21">21</xref>
            )),, nnoott cc((
            <xref ref-type="bibr" rid="ref12">12</xref>
            )).. ⎪⎪⎪⎭⎪
Let F = {a(
            <xref ref-type="bibr" rid="ref1">1</xref>
            ), a(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ), b(
            <xref ref-type="bibr" rid="ref1">1</xref>
            )} be the set of facts of P. It is easy to check that M1 = F ∪ {d(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ), c(
            <xref ref-type="bibr" rid="ref1">1</xref>
            )},
M2 = F ∪ {c(
            <xref ref-type="bibr" rid="ref2">2</xref>
            )}, and M3 = F ∪ {b(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ), c(
            <xref ref-type="bibr" rid="ref1">1</xref>
            )} are (minimal) models of P. Note that M3 is not an
answer set of P. Indeed, ground(P)M3 = {a(
            <xref ref-type="bibr" rid="ref1">1</xref>
            ). a(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ). b(
            <xref ref-type="bibr" rid="ref1">1</xref>
            ). c(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ) ← a(
            <xref ref-type="bibr" rid="ref1">1</xref>
            ), b(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ).}, thus its minimal
h{a1; . . . ; al}k ←
where h and k are two natural numbers, l &gt; 0, m + n ≥ 0, and all ai, b j and ck are atoms.
The expression h{a1; . . . ; al}k is satisfied by an interpretation I if h ≤ |{ a1, . . . , al} ∩ I| ≤ k. In
particular, a rule of the form 0{a}1 (written also as {a}) can be seen as a synctactic shortcut for
the rule a ∨ aF , where aF is a fresh new atom not appearing elsewhere in the program, meaning
that a can be chosen as true. Moreover, we will use aggregates of the form
#count{t : φ }
a : b1 : · · · : bn
model is F. On the other hand, M1 and M2 are answer sets of P. Indeed, ground(P)M1 =
{a(
            <xref ref-type="bibr" rid="ref1">1</xref>
            ). a(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ). b(
            <xref ref-type="bibr" rid="ref1">1</xref>
            ). c(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ) ∨ d(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ) ← a(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ). c(
            <xref ref-type="bibr" rid="ref1">1</xref>
            ) ← a(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ), b(
            <xref ref-type="bibr" rid="ref1">1</xref>
            ).}, so M1 is a minimal model of
ground(P)M1 ; and ground(P)M2 = {a(
            <xref ref-type="bibr" rid="ref1">1</xref>
            ). a(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ). b(
            <xref ref-type="bibr" rid="ref1">1</xref>
            ). c(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ) ∨ d(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ) ← a(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ). c(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ) ← a(
            <xref ref-type="bibr" rid="ref1">1</xref>
            ), b(
            <xref ref-type="bibr" rid="ref2">2</xref>
            ).},
so M2 is a minimal model of ground(P)M2 . Hence, P is coherent.
          </p>
          <p>
            In the following, we will also use choice rules [35], aggregates [36], and conditional
literals [35]. In particular, we will use choice rules of the form
(
            <xref ref-type="bibr" rid="ref2">2</xref>
            )
(
            <xref ref-type="bibr" rid="ref3">3</xref>
            )
(
            <xref ref-type="bibr" rid="ref4">4</xref>
            )
(
            <xref ref-type="bibr" rid="ref5">5</xref>
            )
where φ is a conjunction of atoms, and t is a variable occurring in φ . Intuitively, this aggregate
counts the number of element of the set of all t for which φ holds. More formally, given an
interpretation I, the result of applying I to the aggregate of the form (
            <xref ref-type="bibr" rid="ref3">3</xref>
            ) is the cardinality of
{t|I satisfies φ }. Finally, we will use conditional literals of the form
where a and bi are atoms for i = 1, . . . , n. Intuitively, a conditional literal can be regarded as the
list of elements in the set {a|b1, . . . , bn}.
          </p>
          <p>Concerning computational complexity properties, we recall that for normal ground programs P,
deciding whether AS(P) ̸= 0/ is NP-complete; while for disjunctive ground programs P, deciding
whether AS(P) ̸= 0/ is Σ2p-complete [37].</p>
        </sec>
      </sec>
      <sec id="sec-2-3">
        <title>2.3. ASP with Quantifiers</title>
        <p>Let Pi be an ASP program, for each i = 1, . . . , n, and let C be a set of constraints.1 An ASP with
Quantifiers (ASP(Q)) program Π is an expression of the form:</p>
        <p>
          □ 1P1 □ 2P2 · · · □ nPn : C
where, for each i = 1, . . . , n, □ i ∈ {∃st , ∀st }. Symbols ∃st and ∀st are named existential and
universal answer set quantifiers , respectively. An ASP(Q) program Π of the form (
          <xref ref-type="bibr" rid="ref5">5</xref>
          ) is called
existential whenever □ 1 = ∃st , otherwise it is called universal.
        </p>
        <p>
          Let Π be an ASP(Q) program of the form (
          <xref ref-type="bibr" rid="ref5">5</xref>
          ). Given an ASP program P and an interpretation I
over BP, we denote by fix P(I) the set of facts and constraints {a | a ∈ I} ∪ {← a | a ∈ BP \ I} and
by ΠP1,I the ASP(Q) program of the form (
          <xref ref-type="bibr" rid="ref5">5</xref>
          ), where P1 is replaced by P1 ∪ fix P1 (I). The coherence
1Note that, in the definition of ASP(Q) programs given by [ 19], C is a stratified normal ASP program. However,
for our purposes, it will be sufficient for C to be just a set of constraints.
of an ASP(Q) program is inductively defined on the number of quantifiers in the program: (i)
∃st P : C is coherent, if there exists M ∈ AS(P) such that C ∪ ifx P(M) is coherent; (ii) ∀st P : C is
coherent, if for each M ∈ AS(P), C ∪ ifx P(M) is coherent; (iii) ∃st P Π is coherent, if there exists
M ∈ AS(P) such that ΠP,M is coherent; (iv) ∀st P Π is coherent, if for each M ∈ AS(P), ΠP,M is
coherent. For an existential ASP(Q) program Π of the form (
          <xref ref-type="bibr" rid="ref5">5</xref>
          ), we say that M ∈ AS(P1) is a
quantified answer set of Π, whenever (□ 2P2 · · · □ nPn : C)P1,M is coherent, in case of n &gt; 1, and
whenever C ∪ ifx P1 (M) is coherent, in case of n = 1. The set of all quantified answer sets of Π is
denoted by QAS(Π).
        </p>
        <p>For instance, an existential ASP(Q) program Π = ∃st P1∀st P2 : C is coherent if there exists an
answer set M1 of P1 such that for each answer set M2 of P2′ there is an answer set of C ∪ f ixP2′ (M2),
where P2′ = P2 ∪ fix P1 (M1). If such an answer set M1 exists, then M1 is a quantified answer set of
Π.</p>
        <p>
          Example 4. Consider the existential ASP(Q) program Π = ∃st P1∀st P2 : C, where
P1 = {︁ a(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ). b(X ) ∨ c(X ) ←
a(X ). }︁ ;
        </p>
        <p>P2 = {︁ d(X ) ∨ e(X ) ←</p>
        <p>c(X ). }︁ ;
C = {︁ ←</p>
        <p>b(X ), not d(X ). }︁ .</p>
        <p>
          First, note that the program P1 has two answer sets: M1 = {a(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ), b(
          <xref ref-type="bibr" rid="ref1">1</xref>
          )} and M2 = {a(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ), c(
          <xref ref-type="bibr" rid="ref1">1</xref>
          )}.
Now, if we consider M1, then fix P1 (M1) = {a(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ). b(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ). ← c(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ).}. Hence, the program P2′ =
P2 ∪ fix P1 (M1) has the unique answer set M1. Thus, fix P2′ (M1) = {a(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ). b(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ). ← c(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ). ← d(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ).
← e(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ).}, and so C ∪ ifx P2′ (M1) is incoherent. On the other hand, if we consider M2, then
ifx P1 (M2) = {a(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ). c(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ). ← b(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ).}. Hence, the program P2′ = P2 ∪ fix P1 (M2) has two answer sets:
M3 = M2 ∪ {d(
          <xref ref-type="bibr" rid="ref1">1</xref>
          )} and M4 = M2 ∪ {e(
          <xref ref-type="bibr" rid="ref1">1</xref>
          )}. Therefore, fix P2′ (M3) = {a(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ). c(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ). d(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ). ← b(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ).
← e(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ).} and fix P2′ (M4) = {a(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ). c(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ). e(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ). ← b(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ). ← d(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ).}. Since both C ∪ ifx P2′ (M3) and
C ∪ fix P2′ (M4) are coherent, then Π is coherent, and M2 is a quantified answer set of Π.
        </p>
        <p>Concerning computational complexity properties, we recall that for normal existential
(respectively, universal) ASP(Q) programs Π with n alternating quantifiers in the prefix, deciding whether
Π is coherent is Σnp-complete [respectively, Πnp-complete]. Hence, ASP(Q) can in principle model
all problems in the Polynomial Hierarchy [12].</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Modeling Clique Coloring in basic ASP</title>
      <p>Now, we show how to model the CC problem by using ASP. First of all, note that this
representation is theoretically possible as CC is a Σ2p-complete problem and ASP is able to model decisional
problems in this complexity class. A standard technique used to model this kind of problems is
called saturation [32]. It was initially introduced by Eiter and Gottlob [31] in order to provide a
complexity reduction from the problem of deciding the validity of a quantified Boolean formula
of the form ∃X ∀Y φ (X ,Y ), where φ (X ,Y ) is in disjunctive normal form over atoms in X and
Y , to the problem of deciding the coherence of a propositional disjunctive ASP program. Both
problems are Σ2p-complete. In the following, we exploit the saturation technique to model the CC
problem into an ASP program.</p>
      <p>Let G = (V, E) be an undirected graph, and let {1, . . . , k} be a set of k colors.
Guess:
noEdge(a, b). noEdge(b, a). for each {a, b} ̸∈ E;</p>
      <p>color(i). for each i = 1, ..., k.</p>
      <p>Saturation Guess:
inClique(X) ∨ outClique(X) ←</p>
      <p>
        Rule (
        <xref ref-type="bibr" rid="ref11">11</xref>
        ) is a disjunctive rule guessing a subset of vertices by introducing a unary predicate
inClique, for selected vertices, and a unary predicate outClique, for non selected ones.
Saturation Check:
This set of facts model the input data, i.e. the graph G = (V, E) by using atoms node(a), for
each vertex a ∈ V (
        <xref ref-type="bibr" rid="ref6">6</xref>
        ); edge(a, b) and edge(b, a), for each edge {a, b} ∈ E (
        <xref ref-type="bibr" rid="ref7">7</xref>
        ); noEdge(a, b) and
noEdge(b, a), for each set of two vertices {a, b} ̸∈ E (
        <xref ref-type="bibr" rid="ref8">8</xref>
        ); and color(i), for each i = 1, . . . , k (
        <xref ref-type="bibr" rid="ref9">9</xref>
        ).
      </p>
      <p>
        Rule (
        <xref ref-type="bibr" rid="ref10">10</xref>
        ) is a choice rule that selects exactly one atom in the set {colors(a, 1), . . . , colors(a, k)},
for each vertex a ∈ V . Hence, it guesses a possible coloration of the vertices of the graph.
(
        <xref ref-type="bibr" rid="ref6">6</xref>
        )
(
        <xref ref-type="bibr" rid="ref7">7</xref>
        )
(
        <xref ref-type="bibr" rid="ref8">8</xref>
        )
(
        <xref ref-type="bibr" rid="ref9">9</xref>
        )
(
        <xref ref-type="bibr" rid="ref10">10</xref>
        )
(
        <xref ref-type="bibr" rid="ref11">11</xref>
        )
(
        <xref ref-type="bibr" rid="ref12">12</xref>
        )
(
        <xref ref-type="bibr" rid="ref13">13</xref>
        )
(
        <xref ref-type="bibr" rid="ref14">14</xref>
        )
satur ← inClique(X ), inClique(Y ), noEdge(X ,Y ), X ̸= Y.
satur ←
      </p>
      <p>outClique(X ), outClique(Y ) : noEdge(X ,Y ) : X ̸= Y.</p>
      <p>satur ← inClique(X ), inClique(Y ), colors(X ,C), colors(Y, D),C ̸= D.</p>
      <p>
        The previous three rules model the saturation conditions. First, we saturate whenever the guessed
set H is not a clique. Indeed, rule (
        <xref ref-type="bibr" rid="ref12">12</xref>
        ) models that two distinct vertices are in the set, but there is
no edge between them. Second, we saturate whenever the guessed clique is not maximal. Indeed,
rule (
        <xref ref-type="bibr" rid="ref13">13</xref>
        ) models that a vertex X is out of the clique, and every vertex Y not adjacent to X is out of
the clique. This means that X is connected with every vertex of the clique, so the clique is not
maximal. Finally, we saturate whenever the guessed maximal clique has two distinct vertices with
two different colors. Indeed, rule (
        <xref ref-type="bibr" rid="ref14">14</xref>
        ) models that there exists two vertices X and Y belonging to
a clique, such that X is colored by C, Y is colored by D, and C and D are different colors.
(
        <xref ref-type="bibr" rid="ref15">15</xref>
        )
(
        <xref ref-type="bibr" rid="ref16">16</xref>
        )
(
        <xref ref-type="bibr" rid="ref17">17</xref>
        )
inClique(X ) ←
outClique(X ) ←
node(X ), satur.
      </p>
      <p>node(X ), satur.</p>
      <p>not satur.</p>
      <p>
        ←
These last three rules represent the classic saturation part. In particular, rules (
        <xref ref-type="bibr" rid="ref15">15</xref>
        ) and (
        <xref ref-type="bibr" rid="ref16">16</xref>
        ) impose
to infer each atom of the form inClique(X ) and outClique(X ) for each node X , whenever some
saturation condition is satisfied. Finally, rule (
        <xref ref-type="bibr" rid="ref17">17</xref>
        ) forces the whole program to return an answer
set only if the atom satur has been inferred.
      </p>
      <p>Now, we formally prove that our encoding is sound and complete.</p>
      <p>
        Theorem 1. Let G = (V, E) be a graph, k an integer, and P be the program formed by rules
(
        <xref ref-type="bibr" rid="ref6">6</xref>
        )(
        <xref ref-type="bibr" rid="ref17">17</xref>
        ). Then, P has an answer set if, and only if, there is a k-clique-coloring of G.
Proof. First, assume that γ from V to {1, . . . , k} is a k-clique-coloring of G. We state that the
set A containing facts (
        <xref ref-type="bibr" rid="ref6">6</xref>
        )-(
        <xref ref-type="bibr" rid="ref9">9</xref>
        ); atoms colors(a, γ(a)), for each a ∈ V ; atoms inClique(a) and
outClique(a), for each a ∈ V ; and the atom satur is an answer set of P. It can be easily checked
that A is a model P. Now, consider the reduct program of P with respect to A, that is the positive
program PA given by P \ {← not satur}. We have to show that A is a minimal model of PA. By
contradiction, assume that there is a model A′ of PA such that A′ ⊂ A. Clearly, since A′ is a model
of PA contained in A, then at least the facts (
        <xref ref-type="bibr" rid="ref6">6</xref>
        )-(
        <xref ref-type="bibr" rid="ref9">9</xref>
        ) and the atoms colors(a, γ(a)), for each a ∈ V ,
must be also in A′. Now, note that satur ̸∈ A′, otherwise A′ should be forced to have also atoms
inClique(a) and outClique(a), for each a ∈ V (because of rules (
        <xref ref-type="bibr" rid="ref15">15</xref>
        ) and (
        <xref ref-type="bibr" rid="ref16">16</xref>
        )), and so A′ should
be equal to A. Since satur ̸∈ A′, then no body of the rules among (
        <xref ref-type="bibr" rid="ref12">12</xref>
        ), (
        <xref ref-type="bibr" rid="ref13">13</xref>
        ), and (
        <xref ref-type="bibr" rid="ref14">14</xref>
        ) is satisfied
by A′. This means that A′ contains a subset of atoms from {inClique(a)|a ∈ V } (since A′ satisfies
rule (
        <xref ref-type="bibr" rid="ref11">11</xref>
        )) such that the set H = {a|inClique(a) ∈ A′} is a clique (since A′ does not satisfy the
body of rule (
        <xref ref-type="bibr" rid="ref12">12</xref>
        )), is a maximal clique (since A′ does not satisfy the body of rule (
        <xref ref-type="bibr" rid="ref13">13</xref>
        )), and each
node a in H has the same color (since A′ does not satisfy the body of rule (
        <xref ref-type="bibr" rid="ref14">14</xref>
        )). But this is a
contradiction, since γ is a k-clique-coloring of G. Therefore, such an A′ cannot exist, and A is a
minimal model of PA, and so it is an answer set of P.
      </p>
      <p>
        On the other hand, assume that P has an answer set, say A. Then, A must contain the atom
satur (otherwise rule (
        <xref ref-type="bibr" rid="ref17">17</xref>
        ) would not be satisfied). Moreover, by rules (
        <xref ref-type="bibr" rid="ref15">15</xref>
        ) and (
        <xref ref-type="bibr" rid="ref16">16</xref>
        ), each atom of
the form inClique(a) and outClique(a), for each node a of the graph, must belong to A. Since A
is a minimal model of the reduct of P with respect to A, that is P \ {← not satur}, then there is no
model of PA not satisfying at least one of the rules among (
        <xref ref-type="bibr" rid="ref12">12</xref>
        ), (
        <xref ref-type="bibr" rid="ref13">13</xref>
        ), and (
        <xref ref-type="bibr" rid="ref14">14</xref>
        ). This means that,
for each possible choice of the rule (
        <xref ref-type="bibr" rid="ref11">11</xref>
        ), the set of atoms of the form inClique(X ), corresponding
to the set of selected vertices in G, either it was not a clique (whenever rule (
        <xref ref-type="bibr" rid="ref12">12</xref>
        ) has been applied),
or it was not a maximal clique (whenever rule (
        <xref ref-type="bibr" rid="ref13">13</xref>
        ) has been applied), or it was a maximal clique
with at least two vertices with two distinct colors (whenever rule (
        <xref ref-type="bibr" rid="ref14">14</xref>
        ) has been applied). In other
words, there is a coloration choice of the vertices in G (the one corresponding to A), such that each
maximal clique in G has two vertices with two distinct colors. Hence, there is a k-clique-coloring
of G.
      </p>
      <p>As highlighted by many expert ASP scholars, the saturation technique is not at all easy to use
and its meaning is not very intuitive [15, 14, 13]. So, in the next section, we exploit the modeling
capabilities of ASP with quantifiers to provide an encoding of the CC problem.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Modeling Clique Coloring in ASP(Q)</title>
      <p>Let G = (V, E) be a graph and k be an integer. First of all, note that the CC problem can be easily
expressed as follow:
1. There exists a k-coloring of G such that
2. for each maximal clique H in G,
3. H cointains two vertices of different color?</p>
      <p>This problem has a direct and natural way to be modeled into an ASP(Q) program of the form
∃st P1∀st P2 : C. Intuitively, P1 has to model the problem of identifying a k-coloring of G, so that an
answer set of P1 will correspond to a k-coloring of G. Then, P2 models the problem of identify a
maximal clique in G, so that an answer set of P2 will correspond to a maximal clique in G colored
with k colors. Finally, the program C will be just a constraint to check that the answer sets of P2
satisfy the condition of having two vertices of different color.</p>
      <p>Program P1:</p>
      <p>node(a). for each a ∈ V ;
edge(a, b). edge(b, a). for each {a, b} ∈ E;</p>
      <p>
        color(i). for each i = 1, ..., k;
1{colors(X ,C) : color(C)}1 ←
The ASP program P1 models the problem of choose a coloration of the vertices of a graph. Indeed,
the first three lines model the input data, i.e. the graph G = (V, E) by using a unary predicate
node (
        <xref ref-type="bibr" rid="ref18">18</xref>
        ) and a binary predicate edge (
        <xref ref-type="bibr" rid="ref19">19</xref>
        ); and the set of k colors with a unary predicate color (
        <xref ref-type="bibr" rid="ref20">20</xref>
        ).
Finally, the choice rule (
        <xref ref-type="bibr" rid="ref21">21</xref>
        ) selects exactly one atom in the set {colors(a, 1), . . . , colors(a, k)},
for each vertex a ∈ V .
      </p>
      <p>Example 5. Let G1 be the graph considered in Example 1, and let k = 2. The first three rules of
program P1 identify the following set of facts F =
⎧ node(a), node(b), node(c), node(d), node(e), node( f ), ⎫
⎪⎪⎨ edge(a, b), edge(a, c), edge(b, c), edge(c, d), edge(b, e), edge(d, e), edge(d, f ), ⎬⎪⎪
⎪⎪⎩ edge(b, a), edge(c, a), edge(c,cbo)l,oerd(g1e)(,dc,oclo),re(d2g)e(e, b), edge(e, d), edge( f , d), ⎪⎭⎪ .
Hence, an answer set of P1 is given by the set of facts F union a possible coloration of the
vertices. For instance, A = F ∪ {colors(a, 1), colors(b, 1), colors(c, 2), colors(d, 1), colors(e, 2),
colors( f , 2)} is an answer set of P1.</p>
      <p>Program P2:
{inClique(X)} ←
← inClique(X ), inClique(Y ), not edge(X ,Y ), X ̸= Y.</p>
      <p>lengthClique(Y ) ←</p>
      <p>#count{X : inClique(X )} = Y.</p>
      <p>
        ← lengthClique(X ), X &lt; 2.
←
node(X ), not inClique(X ), lengthClique(Z),
#count{Y : edge(X ,Y ), inClique(Y )} = Z.
(
        <xref ref-type="bibr" rid="ref22">22</xref>
        )
(
        <xref ref-type="bibr" rid="ref23">23</xref>
        )
(
        <xref ref-type="bibr" rid="ref24">24</xref>
        )
(
        <xref ref-type="bibr" rid="ref25">25</xref>
        )
(
        <xref ref-type="bibr" rid="ref26">26</xref>
        )
The ASP program P2 models the problem of finding a maximal clique in a graph. Indeed, rule (
        <xref ref-type="bibr" rid="ref22">22</xref>
        )
is a choice rule guessing a subset of vertices of the graph, collected into the unary predicate
inClique. Then, constraint (
        <xref ref-type="bibr" rid="ref23">23</xref>
        ) is violated whenever in the guessed subset there are two distinct
vertices X and Y for which there is no edge between them. Rule (
        <xref ref-type="bibr" rid="ref24">24</xref>
        ) computes the cardinality of
the guessed subset, by infering an atom of the form lengthClique(n), where n is the cardinality.
Constraint (
        <xref ref-type="bibr" rid="ref25">25</xref>
        ) forces the cardinality to be greater than 1. Therefore, rules (
        <xref ref-type="bibr" rid="ref23">23</xref>
        ), (
        <xref ref-type="bibr" rid="ref24">24</xref>
        ) and (
        <xref ref-type="bibr" rid="ref25">25</xref>
        )
select a guessed subset of vertices that is a clique of the graph. Finally, the last constraint (
        <xref ref-type="bibr" rid="ref26">26</xref>
        ) is
violated whenever there is a vertex X of the graph, but not of the guessed subset such that the
number of edges from X to a vertex Y of the guessed subset is equal to the cardinality of the
guessed subset. This means that the guessed subset is not a maximal clique.
      </p>
      <p>Example 6. Consider again the graph G1 of the Example 1, and the answer set A of the program
P1 reported in Example 5. Based on the facts in A, the ASP program P2 produces exactly the
following 5 answer sets:</p>
      <p>
        A1 = A ∪ {inClique(a), inClique(b), inClique(c), lengthClique(
        <xref ref-type="bibr" rid="ref3">3</xref>
        )};
A2 = A ∪ {inClique(a), inClique(c), inClique(d), lengthClique(
        <xref ref-type="bibr" rid="ref3">3</xref>
        )};
      </p>
      <p>
        A3 = A ∪ {inClique(d), inClique(e), lengthClique(
        <xref ref-type="bibr" rid="ref2">2</xref>
        )};
A4 = A ∪ {inClique(b), inClique(e), lengthClique(
        <xref ref-type="bibr" rid="ref2">2</xref>
        )};
      </p>
      <p>
        A5 = A ∪ {inClique(d), inClique( f ), lengthClique(
        <xref ref-type="bibr" rid="ref2">2</xref>
        )}.
      </p>
      <p>It can be easily verified that each answer set corresponds to a maximal clique in G with the
coloration given by A.</p>
      <p>Program C:</p>
      <p>#count{C : colors(X ,C), inClique(X )} = 1.</p>
      <p>
        ←
The program C checks that each maximal clique contains at least two vertices of different color.
Indeed, the constraint (
        <xref ref-type="bibr" rid="ref27">27</xref>
        ) is violated in case the number of colors C for which there is a vertex
in the maximal clique (inClique(X )) that is colored by C (colors(X ,C)) is equal to 1.
(
        <xref ref-type="bibr" rid="ref27">27</xref>
        )
Example 7. Consider again the graph G1 of the Example 1, and the answer sets A1, ..., A5
reported in Example 6. Each answer set does not violate the constraint (
        <xref ref-type="bibr" rid="ref27">27</xref>
        ), that is it satisfies
the program C. For instance, in A1 we have atoms colors(a, 1), colors(c, 2), inClique(a), and
inClique(c). Hence, the counting aggregate returns 2.
      </p>
      <p>Now, we formally prove that our encoding is sound and complete.</p>
      <p>
        Theorem 2. Let G = (V, E) be a graph, k an integer, and Π = ∃st P1∀st P2 : C be the ASP(Q)
program described above. Then, Π is coherent if, and only if, there is a k-clique-coloring of G.
Proof. First, assume that γ from V to {1, . . . , k} is a k-clique-coloring of G. We state that the set
A containing facts (
        <xref ref-type="bibr" rid="ref18">18</xref>
        ), (
        <xref ref-type="bibr" rid="ref19">19</xref>
        ), and (
        <xref ref-type="bibr" rid="ref20">20</xref>
        ); and atoms colors(a, γ(a)), for each a ∈ V is an answer
set of P1 such that for each answer set A′ of P2 ∪ ifx P1 (A), A′ is an answer set of C. Note that
ifx P1 (A) = A ∪ {← colors(a, i)|i = 1, . . . , k ∧ i ̸= γ(a) ∧ a ∈ V }, and each of these constraints is
always not violated by P2, since atoms of the form colors(a, i) are never inferred by P2. Hence,
instead of P2 ∪ ifx P1 (A), we can just consider P2 ∪ A. By construction, A is an answer set of P1.
Now, let A′ be an answer set of P2 ∪ A. Hence, by rule (
        <xref ref-type="bibr" rid="ref22">22</xref>
        ), a subset of {inClique(a)|a ∈ V }
must be contained in A′, and by rules (
        <xref ref-type="bibr" rid="ref24">24</xref>
        ) and (
        <xref ref-type="bibr" rid="ref25">25</xref>
        ) this subset has to have at least two elements.
Moreover, also an atom of the form lengthClique(n), with n ≥ 2, belongs to A′. Finally, since A′
satisfy the two constraints of P2 (rule (
        <xref ref-type="bibr" rid="ref23">23</xref>
        ) and (
        <xref ref-type="bibr" rid="ref26">26</xref>
        )), we have that the set K = {a|inClique(a) ∈ A′}
is a maximal clique of G. Now, since γ is a k-clique-coloring of G, we have that there exists a
and b in K such that γ(a) ̸= γ(b). Therefore, colors(a, γ(a)) and colors(b, γ(b)) are two atoms
in A′ ⊇ A. Hence, the aggregate appearing in the constraint (
        <xref ref-type="bibr" rid="ref27">27</xref>
        ) returns a number greater than 1.
Thus, A′ is an answer set of the program C.
      </p>
      <p>
        On the other hand, assume that Π is coherent. Hence, there exists an answer set A of P1 such that
for each answer set A′ of P2 ∪ A, A′ is an answer set of C. Let γ be a function from V to {1, . . . , k}
such that γ(a) = i iff colors(a, i) ∈ A. We state that such a γ is a k-clique-coloring of G. Indeed, let
H be a maximal clique of G, and consider the set A′ = A ∪ {inClique(a)|a ∈ H} ∪ {length(|H|)}.
By construction, A′ satisfies rules (
        <xref ref-type="bibr" rid="ref22">22</xref>
        ) and (
        <xref ref-type="bibr" rid="ref24">24</xref>
        ). Moreover, since H is a maximal clique, A′
satisfies also constraints (
        <xref ref-type="bibr" rid="ref23">23</xref>
        ), (
        <xref ref-type="bibr" rid="ref25">25</xref>
        ) and (
        <xref ref-type="bibr" rid="ref26">26</xref>
        ). Therefore, A′ is a model of P2 ∪ A, and by construction
is also a minimal model of the reduct (P2 ∪ A)A′ . Hence, A′ is an answer set of P2 ∪ A. Then, by
assumption, A′ is an answer set of C, i.e., A′ does not violate the constraint (
        <xref ref-type="bibr" rid="ref27">27</xref>
        ). This means that
the cardinality of the set {i|colors(a, i) ∈ A′ ∧ inClique(a) ∈ A′} is greater than 1. Therefore, by
construction of A′, we have that there exist at least two vertices in the maximal clique H, say a
and b, such that γ(a) = i and γ(b) = j with i ̸= j. I.e., H is a maximal clique of G containing two
vertices of different color. Hence, γ is a k-clique-coloring of G.
      </p>
    </sec>
    <sec id="sec-5">
      <title>5. Discussion and Conclusion</title>
      <p>This paper focused on modeling the CC problem via ASP. We provided an enconding into standard
ASP by using the saturation technique, and an encoding into ASP(Q), an extension of ASP able
to quantify over answer sets. We also provided formal proofs of soudness and completeness of
both encondings. From a modeling point of view, the comparison of the two encondigs shows
that ASP(Q) is able to provide a direct and natural way of modeling the CC problem.</p>
      <p>Concerning others logic-based modeling approaches to the CC problem, Zhang et. al. [38] have
provided an encoding by using a first-order theory, and then a general reduction from first-order
theories to ASP programs. Concerning our ASP encoding based on saturation, we note that a
similar encoding has been proposed in [39], where the author is interested to provide a comparison
with another saturation encoding in ASP by using recursive non-convex aggregates, to show
the efficiency improvements for ASP solvers whenever a program with standard aggregates is
rewritten with recursive non-convex aggregates.
(see Corollary 15 in [20]).</p>
      <p>Since, to the best of our knowledge, there are currently no solvers to compute ASP(Q) programs,
for future work, we plan to provide an implementation of ASP(Q) at least for ASP(Q) programs
with two innested quantifiers, that are ∃st P1∀st P2 : C and ∀st P1∃st P2 : C, thus to be able to evaluate
problems belonging to the second level of the polynomial hierarchy (i.e., Σ2p and Π2 ). In this way,
p
we could plan an experimental analysis to compare, also from a practical computational point of
view, all these encondings for solving the CC problem.</p>
      <p>Finally, given the expressivity and the modeling capability of the ASP(Q) language, we plan to
consider other problems related to the CC one. Such as the k-Clique-Choosability problem that
Hhaesrebdeietanrpyrko-vCeldiqtuoeb-CeoalΠor3pin-cgotmhaptlehtaespbreoebnlepmrovfoerdetvoebrye ak Π≥3p-complete problem for every k ≥ 3
2 (see Corollary 9 in [20]), and the
119–124.
[37] E. Dantsin, T. Eiter, G. Gottlob, A. Voronkov, Complexity and expressive power of logic
programming, ACM Comput. Surv. 33 (2001) 374–425.
[38] H. Zhang, Y. Zhang, M. Ying, Y. Zhou, Translating first-order theories into logic programs,
in: IJCAI, IJCAI/AAAI, 2011, pp. 1126–1131.
[39] M. Alviano, Evaluating answer set programming with non-convex recursive aggregates,
Fundam. Informaticae 149 (2016) 1–34.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>L. R.</given-names>
            <surname>Foulds</surname>
          </string-name>
          ,
          <source>Graph Theory Applications</source>
          , Springer,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>T. H.</given-names>
            <surname>Cormen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. E.</given-names>
            <surname>Leiserson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. L.</given-names>
            <surname>Rivest</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Stein</surname>
          </string-name>
          , Introduction to Algorithms, 3rd Edition, MIT Press,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M. R.</given-names>
            <surname>Garey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Johnson</surname>
          </string-name>
          ,
          <article-title>Computers and Intractability: A Guide to the Theory of NP-</article-title>
          <string-name>
            <surname>Completeness</surname>
            ,
            <given-names>W. H.</given-names>
          </string-name>
          <string-name>
            <surname>Freeman</surname>
          </string-name>
          ,
          <year>1979</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>G.</given-names>
            <surname>Brewka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Eiter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Truszczynski</surname>
          </string-name>
          ,
          <article-title>Answer set programming at a glance</article-title>
          ,
          <source>Commun. ACM</source>
          <volume>54</volume>
          (
          <year>2011</year>
          )
          <fpage>92</fpage>
          -
          <lpage>103</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>V.</given-names>
            <surname>Lifschitz</surname>
          </string-name>
          , Answer Set Programming, Springer,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gelfond</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Lifschitz</surname>
          </string-name>
          ,
          <article-title>Classical negation in logic programs</article-title>
          and disjunctive databases,
          <source>New Gener. Comput</source>
          .
          <volume>9</volume>
          (
          <year>1991</year>
          )
          <fpage>365</fpage>
          -
          <lpage>386</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>V.</given-names>
            <surname>Lifschitz</surname>
          </string-name>
          ,
          <article-title>Answer set programming and plan generation</article-title>
          ,
          <source>Artif. Intell</source>
          .
          <volume>138</volume>
          (
          <year>2002</year>
          )
          <fpage>39</fpage>
          -
          <lpage>54</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>T.</given-names>
            <surname>Eiter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Faber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Leone</surname>
          </string-name>
          , G. Pfeifer,
          <article-title>Declarative problem-solving using the dlv system</article-title>
          , in: J.
          <string-name>
            <surname>Minker</surname>
          </string-name>
          (Ed.),
          <source>Logic-Based Artificial Intelligence</source>
          ,
          <string-name>
            <surname>Springer</surname>
            <given-names>US</given-names>
          </string-name>
          , Boston, MA,
          <year>2000</year>
          , pp.
          <fpage>79</fpage>
          -
          <lpage>103</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>W. T.</given-names>
            <surname>Adrian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Alviano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Calimeri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Cuteri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Dodaro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Faber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Fuscà</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Leone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Manna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Perri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricca</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Veltri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Zangari</surname>
          </string-name>
          ,
          <article-title>The ASP system DLV: advancements and applications</article-title>
          , Künstliche Intell.
          <volume>32</volume>
          (
          <year>2018</year>
          )
          <fpage>177</fpage>
          -
          <lpage>179</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gebser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kaminski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Kaufmann</surname>
          </string-name>
          , J. Romero, T. Schaub, Progress in clasp series 3, in: LPNMR, volume
          <volume>9345</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2015</year>
          , pp.
          <fpage>368</fpage>
          -
          <lpage>383</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gebser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Maratea</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricca</surname>
          </string-name>
          ,
          <article-title>The seventh answer set programming competition: Design and results</article-title>
          ,
          <source>Theory Pract. Log. Program</source>
          .
          <volume>20</volume>
          (
          <year>2020</year>
          )
          <fpage>176</fpage>
          -
          <lpage>204</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>L. J.</given-names>
            <surname>Stockmeyer</surname>
          </string-name>
          ,
          <article-title>The polynomial-time hierarchy</article-title>
          ,
          <source>Theor. Comput. Sci. 3</source>
          (
          <issue>1976</issue>
          )
          <fpage>1</fpage>
          -
          <lpage>22</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>B.</given-names>
            <surname>Bogaerts</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Janhunen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Tasharrofi</surname>
          </string-name>
          ,
          <article-title>Stable-unstable semantics: Beyond NP with normal logic programs</article-title>
          ,
          <source>Theory Pract. Log. Program</source>
          .
          <volume>16</volume>
          (
          <year>2016</year>
          )
          <fpage>570</fpage>
          -
          <lpage>586</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gebser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kaminski</surname>
          </string-name>
          , T. Schaub,
          <article-title>Complex optimization in answer set programming</article-title>
          ,
          <source>Theory Pract. Log. Program</source>
          .
          <volume>11</volume>
          (
          <year>2011</year>
          )
          <fpage>821</fpage>
          -
          <lpage>839</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>C.</given-names>
            <surname>Redl</surname>
          </string-name>
          ,
          <article-title>Explaining inconsistency in answer set programs and extensions</article-title>
          , in: LPNMR, volume
          <volume>10377</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2017</year>
          , pp.
          <fpage>176</fpage>
          -
          <lpage>190</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>T.</given-names>
            <surname>Eiter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Polleres</surname>
          </string-name>
          ,
          <article-title>Towards automated integration of guess and check programs in answer set programming: a meta-interpreter and applications</article-title>
          ,
          <source>Theory Pract. Log. Program. 6</source>
          (
          <year>2006</year>
          )
          <fpage>23</fpage>
          -
          <lpage>60</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>W.</given-names>
            <surname>Faber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Woltran</surname>
          </string-name>
          ,
          <article-title>Manifold answer-set programs and their applications</article-title>
          ,
          <source>in: Logic Programming</source>
          ,
          <source>Knowledge Representation, and Nonmonotonic Reasoning</source>
          , volume
          <volume>6565</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2011</year>
          , pp.
          <fpage>44</fpage>
          -
          <lpage>63</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>G.</given-names>
            <surname>Amendola</surname>
          </string-name>
          ,
          <article-title>Towards quantified answer set programming</article-title>
          ,
          <source>in: RCRA@FLoC</source>
          , volume
          <volume>2271</volume>
          <source>of CEUR Workshop Proceedings, CEUR-WS.org</source>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>G.</given-names>
            <surname>Amendola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricca</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Truszczynski</surname>
          </string-name>
          ,
          <string-name>
            <surname>Beyond</surname>
            <given-names>NP</given-names>
          </string-name>
          :
          <article-title>quantifying over answer sets</article-title>
          ,
          <source>Theory Pract. Log. Program</source>
          .
          <volume>19</volume>
          (
          <year>2019</year>
          )
          <fpage>705</fpage>
          -
          <lpage>721</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>D.</given-names>
            <surname>Marx</surname>
          </string-name>
          ,
          <article-title>Complexity of clique coloring and related problems</article-title>
          ,
          <source>Theor. Comput. Sci</source>
          .
          <volume>412</volume>
          (
          <year>2011</year>
          )
          <fpage>3487</fpage>
          -
          <lpage>3500</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>D.</given-names>
            <surname>Duffus</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Sands</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Sauer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. E.</given-names>
            <surname>Woodrow</surname>
          </string-name>
          ,
          <article-title>Two-colouring all two-element maximal antichains</article-title>
          ,
          <source>J. Comb. Theory, Ser. A</source>
          <volume>57</volume>
          (
          <year>1991</year>
          )
          <fpage>109</fpage>
          -
          <lpage>116</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>G.</given-names>
            <surname>Bacsó</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Gravier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gyárfás</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Preissmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sebö</surname>
          </string-name>
          ,
          <article-title>Coloring the maximal cliques of graphs</article-title>
          ,
          <source>SIAM J. Discret. Math</source>
          .
          <volume>17</volume>
          (
          <year>2004</year>
          )
          <fpage>361</fpage>
          -
          <lpage>376</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>C. T.</given-names>
            <surname>Hoàng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. J. H.</given-names>
            <surname>McDiarmid</surname>
          </string-name>
          ,
          <article-title>On the divisibility of graphs, Discret</article-title>
          . Math.
          <volume>242</volume>
          (
          <year>2002</year>
          )
          <fpage>145</fpage>
          -
          <lpage>156</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>J.</given-names>
            <surname>Kratochvíl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Tuza</surname>
          </string-name>
          ,
          <article-title>On the complexity of bicoloring clique hypergraphs of graphs</article-title>
          ,
          <source>J. Algorithms</source>
          <volume>45</volume>
          (
          <year>2002</year>
          )
          <fpage>40</fpage>
          -
          <lpage>54</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>E.</given-names>
            <surname>Shan</surname>
          </string-name>
          , L. Kang,
          <article-title>Coloring clique-hypergraphs of graphs with no subdivision of k5</article-title>
          ,
          <source>Theoretical Computer Science</source>
          <volume>592</volume>
          (
          <year>2015</year>
          )
          <fpage>166</fpage>
          -
          <lpage>175</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>H. B. M. Filho</surname>
            ,
            <given-names>R. C. S.</given-names>
          </string-name>
          <string-name>
            <surname>Machado</surname>
          </string-name>
          ,
          <string-name>
            <surname>C. M. H. de Figueiredo</surname>
          </string-name>
          ,
          <article-title>Efficient algorithms for clique-colouring and biclique-colouring unichord-free graphs</article-title>
          ,
          <source>Algorithmica</source>
          <volume>77</volume>
          (
          <year>2017</year>
          )
          <fpage>786</fpage>
          -
          <lpage>814</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <surname>H. B. M. Filho</surname>
            ,
            <given-names>R. C. S.</given-names>
          </string-name>
          <string-name>
            <surname>Machado</surname>
          </string-name>
          ,
          <string-name>
            <surname>C. M. H. de Figueiredo</surname>
          </string-name>
          ,
          <article-title>Hierarchical complexity of 2-clique-colouring weakly chordal graphs and perfect graphs having cliques of size at least 3, Theor</article-title>
          .
          <source>Comput. Sci</source>
          .
          <volume>618</volume>
          (
          <year>2016</year>
          )
          <fpage>122</fpage>
          -
          <lpage>134</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Liang</surname>
          </string-name>
          , E. Shan,
          <string-name>
            <given-names>H.</given-names>
            <surname>Xing</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Bai</surname>
          </string-name>
          ,
          <article-title>A linear-time algorithm for clique-coloring planar graphs</article-title>
          ,
          <source>Oper. Res. Lett</source>
          .
          <volume>47</volume>
          (
          <year>2019</year>
          )
          <fpage>241</fpage>
          -
          <lpage>243</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Liang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Dong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zhao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Xing</surname>
          </string-name>
          ,
          <article-title>Equitable clique-coloring in claw-free graphs with maximum degree at most 4</article-title>
          ,
          <string-name>
            <given-names>Graphs</given-names>
            <surname>Comb</surname>
          </string-name>
          .
          <volume>37</volume>
          (
          <year>2021</year>
          )
          <fpage>445</fpage>
          -
          <lpage>454</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>M.</given-names>
            <surname>Cochefert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Kratsch</surname>
          </string-name>
          ,
          <article-title>Exact algorithms to clique-colour graphs</article-title>
          ,
          <source>in: SOFSEM</source>
          , volume
          <volume>8327</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2014</year>
          , pp.
          <fpage>187</fpage>
          -
          <lpage>198</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>T.</given-names>
            <surname>Eiter</surname>
          </string-name>
          , G. Gottlob,
          <article-title>On the computational cost of disjunctive logic programming: Propositional case</article-title>
          ,
          <source>Ann. Math. Artif. Intell</source>
          .
          <volume>15</volume>
          (
          <year>1995</year>
          )
          <fpage>289</fpage>
          -
          <lpage>323</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>N.</given-names>
            <surname>Leone</surname>
          </string-name>
          , G. Pfeifer,
          <string-name>
            <given-names>W.</given-names>
            <surname>Faber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Eiter</surname>
          </string-name>
          , G. Gottlob,
          <string-name>
            <given-names>S.</given-names>
            <surname>Perri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Scarcello</surname>
          </string-name>
          ,
          <article-title>The DLV system for knowledge representation and reasoning</article-title>
          ,
          <source>ACM Trans. Comput. Log</source>
          .
          <volume>7</volume>
          (
          <year>2006</year>
          )
          <fpage>499</fpage>
          -
          <lpage>562</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>M. R.</given-names>
            <surname>Cerioli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. L.</given-names>
            <surname>Korenchendler</surname>
          </string-name>
          ,
          <article-title>Clique-coloring circular-arc graphs</article-title>
          ,
          <source>Electron. Notes Discret</source>
          . Math.
          <volume>35</volume>
          (
          <year>2009</year>
          )
          <fpage>287</fpage>
          -
          <lpage>292</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Liang</surname>
          </string-name>
          , E. Shan,
          <string-name>
            <surname>Y. Zhang,</surname>
          </string-name>
          <article-title>A linear-time algorithm for clique-coloring problem in circular-arc graphs</article-title>
          ,
          <source>J. Comb. Optim</source>
          .
          <volume>33</volume>
          (
          <year>2017</year>
          )
          <fpage>147</fpage>
          -
          <lpage>155</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>P.</given-names>
            <surname>Simons</surname>
          </string-name>
          , I. Niemelä, T. Soininen,
          <article-title>Extending and implementing the stable model semantics</article-title>
          ,
          <source>Artif. Intell</source>
          .
          <volume>138</volume>
          (
          <year>2002</year>
          )
          <fpage>181</fpage>
          -
          <lpage>234</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>M.</given-names>
            <surname>Alviano</surname>
          </string-name>
          , W. Faber,
          <article-title>Aggregates in answer set programming</article-title>
          ,
          <source>Künstliche Intell</source>
          .
          <volume>32</volume>
          (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>