2 research outputs found
Automated verification of weak equivalence within the SMODELS system
In answer set programming (ASP), a problem at hand is solved by (i) writing a
logic program whose answer sets correspond to the solutions of the problem, and
by (ii) computing the answer sets of the program using an answer set solver as
a search engine. Typically, a programmer creates a series of gradually
improving logic programs for a particular problem when optimizing program
length and execution time on a particular solver. This leads the programmer to
a meta-level problem of ensuring that the programs are equivalent, i.e., they
give rise to the same answer sets. To ease answer set programming at
methodological level, we propose a translation-based method for verifying the
equivalence of logic programs. The basic idea is to translate logic programs P
and Q under consideration into a single logic program EQT(P,Q) whose answer
sets (if such exist) yield counter-examples to the equivalence of P and Q. The
method is developed here in a slightly more general setting by taking the
visibility of atoms properly into account when comparing answer sets. The
translation-based approach presented in the paper has been implemented as a
translator called lpeq that enables the verification of weak equivalence within
the smodels system using the same search engine as for the search of models.
Our experiments with lpeq and smodels suggest that establishing the equivalence
of logic programs in this way is in certain cases much faster than naive
cross-checking of answer sets.Comment: 48 pages, 7 figures, 2 table
Modularity Aspects of Disjunctive Stable Models
Practically all programming languages allow the programmer to split a program
into several modules which brings along several advantages in software
development. In this paper, we are interested in the area of answer-set
programming where fully declarative and nonmonotonic languages are applied. In
this context, obtaining a modular structure for programs is by no means
straightforward since the output of an entire program cannot in general be
composed from the output of its components. To better understand the effects of
disjunctive information on modularity we restrict the scope of analysis to the
case of disjunctive logic programs (DLPs) subject to stable-model semantics. We
define the notion of a DLP-function, where a well-defined input/output
interface is provided, and establish a novel module theorem which indicates the
compositionality of stable-model semantics for DLP-functions. The module
theorem extends the well-known splitting-set theorem and enables the
decomposition of DLP-functions given their strongly connected components based
on positive dependencies induced by rules. In this setting, it is also possible
to split shared disjunctive rules among components using a generalized shifting
technique. The concept of modular equivalence is introduced for the mutual
comparison of DLP-functions using a generalization of a translation-based
verification method