Document Type


Publication Date



The question how knowledge can be represented by means of logic programs with negation has been a driving force for the field of non-monotonic reasoning. Implemented systems, known as answer set programming systems, have emerged recently and are currently being used in various application domains like the semantic web.

Intuitively, logic programs are being used for encoding commonsense reasoning, in particular the phenomenon that human reasoning tends to ”jump to conclusions” under incomplete knowledge. Formally, this kind of reasoning is described by interpreting the first-order syntax of logic programs in a more sophisticated way. This, in turn, is most easily done by means of fixed points of semantic operators.

The study of different semantic operators and their relationships gives rise to a rich theory. In this lecture, we will undertake a thorough formal study of these issues as a foundation for the study of advanced topics in theoretical or applied non-mononotonic reasoning. Particular emphasis will be on basic paradigms and on the supported, Kripke-Kleene, stable, and well-founded semantics for logic programs and their rich relationships.


Lecture script for the International Master Program in Computational Logic at the Dresden University of Technology, Germany.