# Stepwise Debugging of Answer-Set Programs

**Authors:** Johannes Oetsch, J\"org P\"uhrer, Hans Tompits

arXiv: 1705.06564 · 2017-05-19

## TL;DR

This paper presents a novel stepwise debugging methodology for answer-set programming (ASP), enabling users to observe rule effects during computation and identify bugs by comparing actual and expected semantics.

## Contribution

It introduces a formal framework for stepwise debugging in ASP, supporting various solver languages and integrating into the SeaLion IDE.

## Key findings

- Framework of computations for ASP developed
- Implemented in SeaLion IDE
- Supports multiple solver languages

## Abstract

We introduce a stepping methodology for answer-set programming (ASP) that allows for debugging answer-set programs and is based on the stepwise application of rules. Similar to debugging in imperative languages, where the behaviour of a program is observed during a step-by-step execution, stepping for ASP allows for observing the effects that rule applications have in the computation of an answer set. While the approach is inspired from debugging in imperative programming, it is conceptually different to stepping in other paradigms due to non-determinism and declarativity that are inherent to ASP. In particular, unlike statements in an imperative program that are executed following a strict control flow, there is no predetermined order in which to consider rules in ASP during a computation. In our approach, the user is free to decide which rule to consider active in the next step following his or her intuition. This way, one can focus on interesting parts of the debugging search space. Bugs are detected during stepping by revealing differences between the actual semantics of the program and the expectations of the user. As a solid formal basis for stepping, we develop a framework of computations for answer-set programs. For fully supporting different solver languages, we build our framework on an abstract ASP language that is sufficiently general to capture different solver languages. To this end, we make use of abstract constraints as an established abstraction for popular language constructs such as aggregates. Stepping has been implemented in SeaLion, an integrated development environment for ASP. We illustrate stepping using an example scenario and discuss the stepping plugin of SeaLion. Moreover, we elaborate on methodological aspects and the embedding of stepping in the ASP development process.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1705.06564/full.md

## Figures

15 figures with captions in the complete paper: https://tomesphere.com/paper/1705.06564/full.md

## References

58 references — full list in the complete paper: https://tomesphere.com/paper/1705.06564/full.md

---
Source: https://tomesphere.com/paper/1705.06564