### A logic of nonmonotone inductive definitions

Marc Denecker, Eugenia Ternovska
2008 ACM Transactions on Computational Logic
Well-known principles of induction include monotone induction and different sorts of nonmonotone induction such as inflationary induction, induction over well-founded sets and iterated induction. In this work, we define a logic formalizing induction over well-founded sets and monotone and iterated induction. Just as the principle of positive induction has been formalized in FO(LFP), and the principle of inflationary induction has been formalized in FO(IFP), this paper formalizes the principle
more » ... iterated induction in a new logic for Non-Monotone Inductive Definitions (ID-logic). The semantics of the logic is strongly influenced by the well-founded semantics of logic programming. This paper discusses the formalisation of different forms of (non-)monotone induction by the well-founded semantics and illustrates the use of the logic for formalizing mathematical and common-sense knowledge. To model different types of induction found in mathematics, we define several subclasses of definitions, and show that they are correctly formalized by the well-founded semantics. We also present translations into classical first or second order logic. We develop modularity and totality results and demonstrate their use to analyze and simplify complex definitions. We illustrate the use of the logic for temporal reasoning. The logic formally extends Logic Programming, Abductive Logic Programming and Datalog, and thus formalizes the view on these formalisms as logics of (generalized) inductive definitions. R[c] Assume thatK |I| ≺P [ā] or equivalently, K ≺P [ā] I. We shall prove thatJ |I | ≺P [ā] implies J 1 ≺P [ā] J 2 , or equivalently, ). By Proposition 5.14(a), it will follow then that |I | ≺P [ā] |Γ| ≺P [ā] (K). Assume thatJ |I | ≺P [ā] , i.e., J ≺P [ā] I . From Lemma 5.17, it follows that it holds that I oi [τ d ∆i : K] ≺P [ā] I. Again using Lemma 5.17, we find that R[c] J1 ≤ R[c] J2 . Hence, J 1 ≺P [ā] J 2 . This concludes the proof of (15). The proof of (16) differs from the one of (15) in subtle ways. Now assume that |I | ≺P [ā] K , or I ≺P [ā] K. This time, we use: I = lfp(T ∆ (·, I )),