  Abstraction is a well-known approach to simplify a complex problem by
over-approximating it with a deliberate loss of information. It was not
considered so far in Answer Set Programming (ASP), a convenient tool for
problem solving. We introduce a method to automatically abstract ASP programs
that preserves their structure by reducing the vocabulary while ensuring an
over-approximation (i.e., each original answer set maps to some abstract answer
set). This allows for generating partial answer set candidates that can help
with approximation of reasoning. Computing the abstract answer sets is
intuitively easier due to a smaller search space, at the cost of encountering
spurious answer sets. Faithful (non-spurious) abstractions may be used to
represent projected answer sets and to guide solvers in answer set
construction. For dealing with spurious answer sets, we employ an ASP debugging
approach to help with abstraction refinement, which determines atoms as badly
omitted and adds them back in the abstraction. As a show case, we apply
abstraction to explain unsatisfiability of ASP programs in terms of blocker
sets, which are the sets of atoms such that abstraction to them preserves
unsatisfiability. Their usefulness is demonstrated by experimental results.
