spock - Detecting Errors in Logic Programs under the Answer-Set Semantics: System Description ⋆ Martin Gebser 1 ,J¨ org P¨ uhrer 2 , Torsten Schaub 1 , Hans Tompits 2 , and Stefan Woltran 2 1 Institut f¨ ur Informatik, Universit¨ at Potsdam, August-Bebel-Straße 89, D-14482 Potsdam, Germany {gebser,torsten}@cs.uni-potsdam.de 2 Institut f¨ ur Informationssysteme, Technische Universit¨ at Wien, Favoritenstraße 9–11, A–1040 Vienna, Austria {puehrer,tompits,stefan}@kr.tuwien.ac.at Abstract. Answer-set programming (ASP) is an emerging logic-programming paradigm, which strictly separates the description of a problem from its solutions. Despite its semantic elegance, ASP suffers from a lack of comfort for software developers. In particular, tools are needed which support engineers in detecting errornous parts of their programs . Unlike in other areas of logic programming, applying tracing techniques for debugging logic programs under the answer-set semantics seems rather unnatural, since sticking to imperative solving algorithms would undermine the declarative flavor of ASP. In this system description, we present the system spock, a debugging support tool for answer-set programs making use of ASP itself. The implemented tech- niques maintain the declarative nature of ASP within the debugging process and are independent from the actual computation of answer sets. 1 General Information Answer-set programming (ASP) [3] has become an important logic-programming paradigm for declarative problem solving, which incorporates fundamental concepts of non-monotonic reasoning. The non-monotonicity of answer-set programs, however, is an aggravating factor for detecting sources of errors, since every rule of a program might significantly influence the resulting answer sets. The system spock [2] supports developers of answer-set programs to detect and locate errors in their programs, independent of specific ASP solvers. The theoretical background of the implemented methods was introduced in previ- ous work [1], and exploits and extends a tagging technique, as used by Delgrande et al. [4] for compiling ordered logic programs into standard ones. In our approach, a pro- gram to debug, Π , is translated into another program, T K [Π ], equipped with specialized meta-atoms, called tags, serving two purposes. Firstly, they allow for controlling and ⋆ This work was partially supported by the Austrian Science Fund (FWF) under project P18019.