<!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>Finite Groundings for ASP with Functions: A Journey through Consistency (Extended Abstract)</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Lukas Gerlach</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>David Carral</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Markus Hecher</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Figure 1: Wolf</institution>
          ,
          <addr-line>Goat, Cabbage Puzzle</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Knowledge-Based Systems Group, TU Dresden</institution>
          ,
          <addr-line>Nöthnitzer Straße 46, 01062 Dresden</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>LIRMM, Inria, University of Montpellier</institution>
          ,
          <addr-line>CNRS, Montpellier</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>MIT Computer Science &amp; Artificial Intelligence Laboratory, Massachusetts Institute of Technology</institution>
          ,
          <addr-line>32 Vassar St, Cambridge, MA 02139</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Answer set programming (ASP) is a logic programming formalism used in various areas of artificial intelligence like combinatorial problem solving and knowledge representation and reasoning. It is known that enhancing ASP with function symbols makes basic reasoning problems highly undecidable. However, even in simple cases, state of the art reasoners, specifically those relying on a ground-and-solve approach, fail to produce a result. Therefore, we reconsider consistency as a basic reasoning problem for ASP. We show reductions that give an intuition for the high level of undecidability. These insights allow for a more fine-grained analysis where we characterize ASP programs as “frugal” and “non-proliferous”. For such programs, we are not only able to semi-decide consistency but we also propose a grounding procedure that yields finite groundings on more ASP programs with the concept of “forbidden” facts.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Answer Set Programming</kwd>
        <kwd>Rule-Based Reasoning</kwd>
        <kwd>Knowledge Representation</kwd>
        <kwd>Computability Theory</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Answer set programming (ASP) [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ] is an established
nonmonotonic reasoning formalism in the fields of
knowledgerepresentation and reasoning as well as combinatorial
problem solving. State-of-the-art ASP systems such as clasp [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
or wasp [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] utilize a ground-and-solve approach to compute
answer sets of a given program. In the stage of grounding,
the given program is instantiated with all relevant terms.
Afterwards, the ground program can be eficiently solved
usually with a SAT solver extended by unfounded set
propagation, excluding sets of atoms that lack foundation (i.e.
unfounded sets), thereby eficiently computing answer sets.
      </p>
      <p>
        When function symbols occur in ASP programs, the
grounding step will often not terminate and approach an
infinite ground program. This is also a problem when
using numbers, which we consider to merely be syntactic
sugar around a successor function. While this behavior
is in principle not incorrect as there are indeed programs
that have infinite answer sets or infinitely many answer
sets, for many programs it is clear that they only admit
ifnite answer sets and only finitely many of them. In this
case, we should always be able to give a large enough but
ifnite ground program. There is a lot of related work
discussing function symbols in ASP or logic programming
in general [
        <xref ref-type="bibr" rid="ref5 ref6 ref7">5, 6, 7</xref>
        ], also classifying programs according
to conditions that guarantee finite groundings [
        <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
        ], and
diferent works on ASP grounding and solving techniques
[
        <xref ref-type="bibr" rid="ref10 ref11 ref12 ref13 ref14 ref15 ref16 ref17 ref18 ref19">10, 11, 12, 13, 14, 15, 16, 17, 18, 19</xref>
        ]. Still, these approaches
do not have support for function symbols as their primary
goal. In practice, the problem of infinite ground programs
is often counteracted by using auxiliary predicates to
artificially limit the size of the grounding.
position(, ,  + 1) ←
      </p>
      <p>transport (,  ),
position (, ,  ), opposite(, ), steps ( + 1).</p>
      <sec id="sec-1-1">
        <title>That is, if we guess that item  is transported in step  ,</title>
        <p>then its position is updated to the opposite river bank if we
are not out of steps yet. Additional rules are introduced to
detect and avoid redundant positions. However, despite the
redundancy check, we need to bound (guard) the term  +1,
as otherwise the grounding is infinite.</p>
        <p>
          The goal of our work is to make the artificial limit on the
number of steps obsolete in the above example. We aim to
define a grounding procedure that is guaranteed to
terminate on programs that can only have finitely many finite
answer sets. It turns out that such a procedure must be
uncomputable but we also outline a computable relaxation still
reflecting the key idea. In this extended abstract, we give
a brief overview of the main ideas introduced in our
previously published paper [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], where we make the following
contributions. (1) We classify ASP programs as frugal, if they
only have finite answer sets, and non-proliferous, if they only
have finitely many finite answer sets. (2) We show that both
properties are highly undecidable using novel reductions
based on reconsiderations of the problem of consistency, i.e.
checking if an ASP program has an answer set. (3) We
propose a novel grounding procedure that ignores forbidden
atoms. While deciding if an atom is forbidden is also
undecidable, we give a suficient condition able to capture cases
like the redundancy check in Example 1.
        </p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. Preliminaries</title>
      <p>We define Preds, Funs, Cons, and Vars to be mutually
disjoint and countably infinite sets of predicates,
function symbols, constants, and variables, respectively.
Every  ∈ Preds ∪ Funs is associated with some arity
ar() ≥ 0. For every  ≥ 0, both Preds = { ∈
Preds | ar( ) = } and Funs = { ∈ Funs |
ar( ) = } are countably infinite. The set Terms of terms
includes Cons and Vars; and contains  (1, . . . , ) for
every  ≥ 1, every  ∈ Funs, and every 1, . . . ,  ∈
Terms. A term  ∈/ Vars ∪ Cons is functional. An
ASP program  is a set of (non-ground) rules of the form
 ← 1(1), . . . , (), ¬+1(+1), . . . , ¬()
where  = 1(1), . . . , ℓ(ℓ) with 0 ≤ ℓ ≤ 1,
||=ar() for every 1 ≤  ≤ ℓ, and ||=ar() for every
1 ≤  ≤ . In the above, 1, . . . , ℓ, 1, . . . ,  ∈ Preds
are predicates and 1, . . . , ℓ, 1, . . . ,  are vectors over
terms, i.e. variables, constants or functional terms (featuring
variables or constants). We assume that rules are safe; that is,
every variable in a rule occurs in some  with 1 ≤  ≤ .
For such a rule , we define  = , + as the set of
all positive atoms, and − as the set of all negative atoms
in the antecedent. We call a program ground if it does not
feature variables. The ground program Ground( ) results
from a (non-ground) program  by creating all possible
instantiations of rules where variables are replaced by terms
from the herbrand universe of  . An interpretation , i.e. a
set of atoms, is a model for a ground program  if it satisfies
all rules in  . That is, ( ∪ − ) ∩  ̸= ∅ or + ∖  ̸= ∅.
Furthermore,  is an answer set of  , if additionally, every
atom  in  is proven, meaning that {} =  for some
rule  ∈  such that  contains + but no atom in − and
there is an ordering of atoms over  such that the order of
atoms in + is strictly smaller than the order of .</p>
    </sec>
    <sec id="sec-3">
      <title>3. Characterization of Programs with Infinite Groundings</title>
      <p>There are essentially two high level reasons why a given
ASP program does not admit a finite ground program that
would allow to solve it reliably. They can have (1) at least
one infinite answer set or (2) infinitely many finite answer
sets. The intuition here is that a valid ground program
needs to overestimate all possible answer sets of a program.
Formally, a ground program  is a valid grounding for a
program  if  and  have the same answer sets. To
be able to obtain valid groundings that are finite, we limit
ourselves to programs, which are frugal and non-proliferous.</p>
      <sec id="sec-3-1">
        <title>Definition 1. A program is frugal if it only admits finite</title>
        <p>answer sets; it is non-proliferous if it only admits finitely
many finite answer sets (but arbitrarily many infinite ones).</p>
        <p>Both conditions are independent of each other. For
example, a program that has no finite answer sets but at least one
infinite one is non-proliferous but not frugal. The existence
of program that is frugal and proliferous is less obvious.
Example 2. The following ASP program admits infinitely
many finite answer sets but no infinite one.</p>
        <p>next (,  ( )) ← next (,  ), ¬last ( ).</p>
        <p>last ( ) ← next (,  ), ¬next (,  ( )).</p>
        <p>done ← last ( ).</p>
        <p>← ¬
done. next (, ).</p>
        <sec id="sec-3-1-1">
          <title>Clearly, {next (, ), last (), done} is an answer set. Also,</title>
          <p>any finite chain of next relations terminated by last is an
answer set. However, an infinite next -chain is not an answer
set as it cannot contain any last atom, hence does not feature
done, and therefore violates the constraint.</p>
          <p>
            Unfortunately, checking if a program is frugal or
nonproliferous is highly undecidable. Both checks are complete
for respective levels in the arithmetical or even analytical
hierarchy (see [
            <xref ref-type="bibr" rid="ref21">21</xref>
            ] for an introduction). The specific
definitions of the classes are not vital as we show reductions from
and to problems already known to be complete. Checking
if a program is non-proliferous is comparably easy.
          </p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>Theorem 1 ([22, Theorem 2]). Deciding if a program is</title>
        <p>non-proliferous is Σ 20-complete.</p>
        <p>Membership is achieved as follows. Note that we can
semi-decide whether a given ASP program has at least 
answer sets for a given . We can now semi-decide if the
program is non-proliferous by using an oracle for the
previous problem: we enumerate all natural numbers  and check
with the oracle if the program has at least  answer sets; if
the oracle rejects, we accept, otherwise we continue.</p>
        <p>
          Hardness follows by a reduction from the complement
of the universal halting problem of Turing machines (TM),
i.e. the question whether a given TM halts on all inputs,
which is known to be Π 20-complete. The main idea of the
proof is to generate all arbitrarily long but finite inputs to
a TM with a construction similar to Example 2. We then
mount a standard TM simulation on top. Another important
ingredient is the realization that we can reduce universal
halting to checking if a TM halts on infinitely many inputs.
For details, see [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ].
        </p>
        <p>
          Checking if a program is frugal is much harder, namely
Π 11-complete. Luckily, we can reuse reductions that we can
also use to (re-)prove that consistency of ASP programs is
Σ 11-complete (for other existing proofs see Corollary 5.12 in
[
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] and Theorem 5.9 in [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]).
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>Theorem 2 ([22, Theorem 1]). Deciding program consis</title>
        <p>tency is Σ 11-complete.</p>
        <p>
          In this extended abstract we only briefly present the
reductions in both directions. For correctness arguments, we
refer the interested reader to our technical report [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]. We
obtain membership by reducing to the following problem.
Proposition 1 ([23, Corollary 6.2]1). Checking if some run
of a non-deterministic Turing machine on the empty word
visits the start state infinitely many times is in Σ 11.
        </p>
        <p>For a program  and an interpretation , let Active ( )
be the set of all rules in Ground( ) that are not satisfied
by . If  is finite, then so is Active ( ) and Active is
computable.</p>
        <p>Definition 2. For a program  , let  be the
nondeterministic TM that, regardless of the input, executes the
following instructions:
1. Initialize an empty set 0 of literals, and some
counters  := 0 and  := 0.</p>
        <sec id="sec-3-3-1">
          <title>2. If + and − are not disjoint, halt.</title>
        </sec>
        <sec id="sec-3-3-2">
          <title>3. If + is an answer set of  , loop on the start state.</title>
          <p>1The original result shows Π11-completeness for the complement.
4. Initialize +1 :=  ∪  ∪ {¬ |  ∈ − }
where  is some non-deterministically chosen rule in
Active+ ( ).</p>
        </sec>
      </sec>
      <sec id="sec-3-4">
        <title>5. If  satisfies all of the rules in</title>
        <p>Active+ ( ), then
increment  :=  + 1 and visit the start state once.
6. Increment  :=  + 1 and go to Step 2.</p>
        <p>Now the program  is consistent if and only if  admits
a run on the empty word that visits its start state infinitely
many times. For hardness, we reduce to the following.
Definition 3. A tiling system is a tuple ⟨ , HI, VI, 0⟩ where
 is a finite set of tiles, HI and VI are subsets of  ×  , and 0
is a tile in  . Such a tiling system admits a recurring solution
if there is a function  : N × N →  such that:
1. For every ,  ≥ 0, we have that ⟨ (, ),  ( +
1, )⟩ ∈/ HI and ⟨ (, ),  (,  + 1)⟩ ∈/ VI.
2. There is an infinite subset  of N such that  (0, ) =
0 for every  ∈ .</p>
        <p>Proposition 2 ([23, Theorem 6.4]2). Checking if a tiling
system admits a recurring solution is Σ 11-hard.</p>
        <p>We can encode this problem with the following program.
Definition 4. For a tiling system T = ⟨ , HI, VI, 0⟩, let
T be the program that contains the ground atom Dom(0)
and all of the following rules:</p>
        <p>Dom(()) ←
Tile(,  ) ←</p>
        <p>Dom()</p>
        <p>Dom(), Dom( ),
{¬Tile′ (,  ) | ′ ∈  ∖ {}} ∀ ∈ 
←</p>
        <p>Tile(,  ), Tile′ ((),  ) ∀⟨, ′⟩ ∈ HI</p>
        <p>Tile(,  ), Tile′ (, ( )) ∀⟨, ′⟩ ∈ VI
←
Below0 ( ) ←
Below0 ( ) ←</p>
        <p>Tile0 (0, ( ))</p>
        <p>Below0 (( ))</p>
        <p>Dom( ), ¬Below0 ( )
←</p>
        <p>We obtain that T has a recurring solution if and only if
T is consistent. This concludes that consistency for ASP
programs is Σ 11-complete. To show that frugality is Π
11complete, we essentially use the same reductions but for the
complement of frugality.</p>
      </sec>
      <sec id="sec-3-5">
        <title>Theorem 3 ([22, Theorem 3]). Deciding if a program is</title>
        <p>frugal is Π 11-complete.</p>
        <p>For membership, we need to slightly change the machine
 to halt in step 3 instead of looping on the start state.
Then, the modified machine admits a run on the empty word
that visits the start state infinitely many times if and only
if the program has an infinite answer set, i.e. the program
is not frugal. The hardness reduction works as is since T
either has an infinite answer set or none at all. Therefore
it is not frugal if and only if it admits an answer set if and
only if the tiling-system has a recurring solution.</p>
        <p>Even if a program is both frugal and non-proliferous,
consistency is still undecidable.</p>
      </sec>
      <sec id="sec-3-6">
        <title>Theorem 4 ([22, Theorem 5]). Consistency for frugal and</title>
        <p>non-proliferous programs is Σ 10-hard.</p>
        <p>Still, whenever a program is frugal, we can semi-decide
consistency by enumerating all answer set candidates.</p>
      </sec>
      <sec id="sec-3-7">
        <title>Theorem 5 ([22, Theorem 4]). Consistency for frugal pro</title>
        <p>grams is in Σ 10.
2The original result shows Σ11-completeness.
Based on the results from the previous section, we cannot
hope to obtain a procedure that produces finite valid
groundings for all frugal and non-proliferous programs. If this was
the case, we could decide consistency for such programs.
Instead, we sketch a procedure that requires to check if atoms
are forbidden. While this property is undecidable itself, we
give a checkable suficient condition.</p>
        <p>
          An atom is forbidden in the context of a program  , if
it does not occur in any answer set of  . Undecidability
follows by reducing from the halting problem of TMs, which
is also done in Theorem 4. For a suficient condition, the
idea is to check all possible ways in which a given atom
could be proven. If each of these ways is unsuccessful, e.g.
by requiring contradictory literals, then the atom must be
forbidden (see [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]). With the notion of forbidden atoms in
place, we define the following grounding procedure.
Definition 5. Define GroundNotForbidden(· ) that takes a
program  as input and executes the following instructions:
1. Initialize  := 1, 0 := ∅, and  := ∅.
2. Initialize  := − 1 and for each  ∈ Ground( )
with + ⊆ − 1, do the following. If all atoms in
 are forbidden in  , add ←  to . Otherwise,
add  to  and add the single atom in  to .
3. Stop if  = − 1; else set  :=  + 1 and go to 2.
        </p>
      </sec>
      <sec id="sec-3-8">
        <title>The output of the procedure is .</title>
        <p>Correctness of the procedure is not hard to verify.
Theorem 6 ([22, Theorem 7]). For a program  ,</p>
      </sec>
      <sec id="sec-3-9">
        <title>GroundNotForbidden( ) is a valid grounding, i.e.  and</title>
      </sec>
      <sec id="sec-3-10">
        <title>GroundNotForbidden( ) have the same answer sets.</title>
        <p>Indeed, we also obtain that the procedure always
terminates for frugal and non-proliferous programs.</p>
        <p>Proposition 3 ([22, Proposition 5]). For a frugal and
nonproliferous program  , GroundNotForbidden( ) is finite.</p>
        <p>However, we need to stress again that the procedure is
not computable. To obtain a computable version, we need to
exchange the check for forbidden atoms with a computable
suficient condition. While this retains correctness, it might
not retain termination of the procedure.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>5. Outlook</title>
      <p>We hope that our results inspire further theoretical and
practical research on support for function symbols in ASP.
In particular, we hope that common workarounds like
artificially limiting the size of the grounding with a “step”
predicate as in Example 1 will become obsolete in the future.
Obvious future work revolves around implementing our
proposed grounding approach. An eficient implementation
including a viable suficient check for forbidden atoms
requires in-depth considerations. Boosting generality of such
a suficient condition or taking disjunctions into account are
interesting directions for theoretical research. In practice, a
tradeof between generality and performance needs to be
found. Our work can be a reference for a first prototypical
implementation that enables further experiments. Ideally,
suficient checks for forbidden atoms could then directly be
integrated into existing grounders and ASP systems.</p>
    </sec>
    <sec id="sec-5">
      <title>Acknowledgments</title>
      <p>We want to acknowledge that the full modeling of the wolf,
goat cabbage puzzle from the introduction is inspired by
lecture slides created by Jean-François Baget.</p>
      <p>On TU Dresden side, this work was partly supported
by Deutsche Forschungsgemeinschaft (DFG) in project
389792660 (TRR 248, CPEC); by the Bundesministerium für
Bildung und Forschung (BMBF) in the ScaDS.AI; by BMBF
and DAAD (German Academic Exchange Service) in project
57616814 (SECAI); and by the cfaed.</p>
      <p>Carral was financially supported by the ANR project
CQFD (ANR-18-CE23-0003).</p>
      <p>Hecher is funded by the Austrian Science Fund (FWF),
grants J 4656 and P 32830, the Society for Research
Funding in Lower Austria (GFF, Gesellschaft für
Forschungsförderung NÖ) grant ExzF-0004, as well as the Vienna
Science and Technology Fund (WWTF) grant ICT19-065. Parts
of the research were carried out while visiting the Simons
institute for the theory of computing at UC Berkeley.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <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>
          . URL: https://doi.org/10.1145/2043174.2043195. doi:
          <volume>10</volume>
          .1145/2043174.2043195.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gebser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kaminski</surname>
          </string-name>
          , B. Kaufmann, T. Schaub, Answer Set Solving in Practice, Morgan &amp; Claypool,
          <year>2012</year>
          . doi:
          <volume>10</volume>
          .2200/S00457ED1V01Y201211AIM019.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gebser</surname>
          </string-name>
          , B. Kaufmann, T. Schaub,
          <article-title>Solution enumeration for projected boolean search problems</article-title>
          , in: CPAIOR'
          <volume>09</volume>
          , volume
          <volume>5547</volume>
          ,
          <year>2009</year>
          , pp.
          <fpage>71</fpage>
          -
          <lpage>86</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Alviano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Dodaro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Fiorentino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Previti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricca</surname>
          </string-name>
          ,
          <article-title>Enumeration of Minimal Models and MUSes in WASP</article-title>
          , in: LPNMR, volume
          <volume>13416</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2022</year>
          , pp.
          <fpage>29</fpage>
          -
          <lpage>42</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>V. W.</given-names>
            <surname>Marek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Nerode</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. B.</given-names>
            <surname>Remmel</surname>
          </string-name>
          ,
          <article-title>The Stable Models of a Predicate Logic Program</article-title>
          ,
          <source>The Journal of Logic Programming</source>
          <volume>21</volume>
          (
          <year>1994</year>
          )
          <fpage>129</fpage>
          -
          <lpage>154</lpage>
          . URL: https://www.sciencedirect. com/science/article/pii/S0743106614800083. doi:
          <volume>10</volume>
          .1016/S0743-
          <volume>1066</volume>
          (
          <issue>14</issue>
          )
          <fpage>80008</fpage>
          -
          <lpage>3</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>E.</given-names>
            <surname>Dantsin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Eiter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Gottlob</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Voronkov</surname>
          </string-name>
          ,
          <article-title>Complexity and expressive power of logic programming</article-title>
          ,
          <source>ACM Comput. Surv</source>
          .
          <volume>33</volume>
          (
          <year>2001</year>
          )
          <fpage>374</fpage>
          -
          <lpage>425</lpage>
          . URL: https:// dl.acm.org/doi/10.1145/502807.502810. doi:
          <volume>10</volume>
          .1145/ 502807.502810.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>V.</given-names>
            <surname>Marek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. B.</given-names>
            <surname>Remmel</surname>
          </string-name>
          ,
          <article-title>Efectively Reasoning about Inifnite Sets in Answer Set Programming</article-title>
          , in: M.
          <string-name>
            <surname>Balduccini</surname>
          </string-name>
          , T. C. Son (Eds.),
          <string-name>
            <surname>Logic</surname>
            <given-names>Programming</given-names>
          </string-name>
          ,
          <source>Knowledge Representation, and Nonmonotonic Reasoning: Essays Dedicated to Michael Gelfond on the Occasion of His 65th Birthday, Lecture Notes in Computer Science</source>
          , Springer, Berlin, Heidelberg,
          <year>2011</year>
          , pp.
          <fpage>131</fpage>
          -
          <lpage>147</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -20832-
          <issue>4</issue>
          _9. doi:
          <volume>10</volume>
          . 1007/978-3-
          <fpage>642</fpage>
          -20832-
          <issue>4</issue>
          _
          <fpage>9</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <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>W.</given-names>
            <surname>Faber</surname>
          </string-name>
          , G. Ianni,
          <string-name>
            <given-names>N.</given-names>
            <surname>Leone</surname>
          </string-name>
          ,
          <article-title>Function Symbols in ASP: Overview and Perspectives (</article-title>
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>F.</given-names>
            <surname>Calimeri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Cozza</surname>
          </string-name>
          , G. Ianni,
          <string-name>
            <given-names>N.</given-names>
            <surname>Leone</surname>
          </string-name>
          ,
          <article-title>Computable functions in ASP: theory and implementation</article-title>
          , in: M. G.
          <string-name>
            <surname>de la Banda</surname>
          </string-name>
          , E. Pontelli (Eds.),
          <source>Logic Programming</source>
          , 24th International Conference, ICLP 2008, Udine, Italy, December 9-
          <issue>13</issue>
          <year>2008</year>
          , Proceedings, volume
          <volume>5366</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2008</year>
          , pp.
          <fpage>407</fpage>
          -
          <lpage>424</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>540</fpage>
          -89982-2_
          <fpage>37</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>540</fpage>
          -89982-2\_
          <fpage>37</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A.</given-names>
            <surname>Weinzierl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Taupe</surname>
          </string-name>
          , G. Friedrich,
          <string-name>
            <surname>Advancing LazyGrounding ASP Solving Techniques - Restarts</surname>
            , Phase Saving, Heuristics, and More,
            <given-names>Theory</given-names>
          </string-name>
          <string-name>
            <surname>Pract</surname>
          </string-name>
          . Log. Program.
          <volume>20</volume>
          (
          <year>2020</year>
          )
          <fpage>609</fpage>
          -
          <lpage>624</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>R.</given-names>
            <surname>Kaminski</surname>
          </string-name>
          , B. Kaufmann, T. Schaub,
          <article-title>Multishot ASP solving with clingo</article-title>
          ,
          <source>Theory Pract. Log. Program</source>
          .
          <volume>19</volume>
          (
          <year>2019</year>
          )
          <fpage>27</fpage>
          -
          <lpage>82</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Alviano</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>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Perri</surname>
          </string-name>
          , G. Pfeifer,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Terracina, The Disjunctive Datalog System DLV</article-title>
          , in: O. de Moor, G. Gottlob,
          <string-name>
            <given-names>T.</given-names>
            <surname>Furche</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. J.</given-names>
            <surname>Sellers</surname>
          </string-name>
          (Eds.), Datalog Reloaded - First International Workshop,
          <year>Datalog 2010</year>
          , Oxford, UK, March
          <volume>16</volume>
          -19,
          <year>2010</year>
          .
          <source>Revised Selected Papers</source>
          , volume
          <volume>6702</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2010</year>
          , pp.
          <fpage>282</fpage>
          -
          <lpage>301</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -24206-9_
          <fpage>17</fpage>
          . doi:
          <volume>10</volume>
          . 1007/978-3-
          <fpage>642</fpage>
          -24206-9\_
          <fpage>17</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>F.</given-names>
            <surname>Calimeri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Fuscà</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Perri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Zangari</surname>
          </string-name>
          ,
          <string-name>
            <surname>I-DLV</surname>
          </string-name>
          :
          <article-title>the new intelligent grounder of DLV, Intelligenza Artiifciale 11 (</article-title>
          <year>2017</year>
          )
          <fpage>5</fpage>
          -
          <lpage>20</lpage>
          . URL: https://doi.org/10.3233/ IA-170104. doi:
          <volume>10</volume>
          .3233/IA-170104.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>R.</given-names>
            <surname>Kaminski</surname>
          </string-name>
          , T. Schaub,
          <article-title>On the foundations of grounding in answer set programming</article-title>
          ,
          <source>CoRR abs/2108</source>
          .04769 (
          <year>2021</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>N.</given-names>
            <surname>Hippen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Lierler</surname>
          </string-name>
          ,
          <article-title>Estimating grounding sizes of logic programs under answer set semantics</article-title>
          ,
          <source>in: JELIA</source>
          , volume
          <volume>12678</volume>
          , Springer,
          <year>2021</year>
          , pp.
          <fpage>346</fpage>
          -
          <lpage>361</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Banbara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Kaufmann</surname>
          </string-name>
          , M. Ostrowski, T. Schaub,
          <article-title>Clingcon: The next generation</article-title>
          ,
          <source>Theory Pract. Log. Program</source>
          .
          <volume>17</volume>
          (
          <year>2017</year>
          )
          <fpage>408</fpage>
          -
          <lpage>461</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>T.</given-names>
            <surname>Janhunen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kaminski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ostrowski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Schellhorn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Wanko</surname>
          </string-name>
          , T. Schaub,
          <article-title>Clingo goes linear constraints over reals and integers</article-title>
          ,
          <source>Theory Pract. Log. Program</source>
          .
          <volume>17</volume>
          (
          <year>2017</year>
          )
          <fpage>872</fpage>
          -
          <lpage>888</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>P.</given-names>
            <surname>Cabalar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Fandinno</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Schaub</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Wanko</surname>
          </string-name>
          ,
          <article-title>A uniform treatment of aggregates and constraints in hybrid ASP</article-title>
          , in: KR,
          <year>2020</year>
          , pp.
          <fpage>193</fpage>
          -
          <lpage>202</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>M.</given-names>
            <surname>Bichler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Morak</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          <article-title>Woltran, lpopt: A Rule Optimization Tool for Answer Set Programming</article-title>
          ,
          <source>Fundamenta Informaticae</source>
          <volume>177</volume>
          (
          <year>2020</year>
          )
          <fpage>275</fpage>
          -
          <lpage>296</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>L.</given-names>
            <surname>Gerlach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Carral</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hecher</surname>
          </string-name>
          ,
          <article-title>Finite groundings for asp with functions: A journey through consistency</article-title>
          , in: K. Larson (Ed.),
          <source>Proceedings of the Thirty-Third International Joint Conference on Artificial Intelligence, IJCAI-24, International Joint Conferences on Artificial Intelligence Organization</source>
          ,
          <year>2024</year>
          , pp.
          <fpage>3386</fpage>
          -
          <lpage>3394</lpage>
          . URL: https://doi.org/10.24963/ijcai.
          <year>2024</year>
          /375. doi:
          <volume>10</volume>
          . 24963/ijcai.
          <year>2024</year>
          /375, main Track.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>H.</given-names>
            <surname>Rogers</surname>
          </string-name>
          , Jr.,
          <article-title>Theory of recursive functions and efective computability (Reprint from</article-title>
          <year>1967</year>
          ), MIT Press,
          <year>1987</year>
          . URL: http://mitpress.mit.edu/catalog/item/ default.asp?ttype=2&amp;tid=
          <fpage>3182</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>L.</given-names>
            <surname>Gerlach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Carral</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hecher</surname>
          </string-name>
          ,
          <article-title>Finite groundings for ASP with functions: A journey through consistency</article-title>
          ,
          <source>CoRR abs/2405</source>
          .15794 (
          <year>2024</year>
          ). URL: https: //doi.org/10.48550/arXiv.2405.15794. doi:
          <volume>10</volume>
          .48550/ ARXIV.2405.15794. arXiv:
          <volume>2405</volume>
          .
          <fpage>15794</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>D.</given-names>
            <surname>Harel</surname>
          </string-name>
          ,
          <article-title>Efective transformations on infinite trees, with applications to high undecidability, dominoes, and fairness</article-title>
          ,
          <source>J. ACM</source>
          <volume>33</volume>
          (
          <year>1986</year>
          )
          <fpage>224</fpage>
          -
          <lpage>248</lpage>
          . URL: https://doi.org/10.1145/4904.4993. doi:
          <volume>10</volume>
          .1145/ 4904.4993.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>