Logic programming revisited: logic programs as inductive definitions
ACM Transactions on Computational Logic
Logic programming has been introduced as programming in the Horn clause subset of first order logic. This view breaks down for the negation as failure inference rule. To overcome the problem, one line of research has been to view a logic program as a set of iff-definitions. A second approach was to identify a unique canonical, preferred or intended model among the models of the program and to appeal to common sense to validate the choice of such model. Another line of research developed the
... of logic programming as a non-monotonic reasoning formalism strongly related to Default Logic and Auto-epistemic Logic. These competing approaches have resulted in some confusion about the declarative meaning of logic programming. This paper investigates the problem and proposes an alternative epistemological foundation for the canonical model approach, which is not based on common sense but on a solid mathematical information principle. The thesis is developed that logic programming can be understood as a natural and general logic of inductive definitions. In particular, logic programs with negation represent non-monotone inductive definitions. It is argued that this thesis results in an alternative justification of the well-founded model as the unique intended model of the logic program. In addition, it equips logic programs with an easy to comprehend meaning that corresponds very well with the intuitions of programmers.