# What is logic programming and does it really add anything new to the logic?

I am acquinted with the basics of such notions as logic programming, monotonic and non-monotonic reasoning, modal logic (especially dynamic logic) and now I am wondering - does logic programming provides anything new to any logic?

As far as I understand, then (at least in dynamic logic) the logic programming refers to the formalization of state transitions (by actions, i.e. - logic programing can be understood just as logic about actions). But the same notion "logic programing" seems to be in use even in domains, where there is not state transition, just exploration of one state (or set of states - in case then the initial set of premises are vague enough to describe more than one state). It seems to me that some authors simply use the notions "logic programming" for describing the procedure how to evaluate the query (I am reading currently about defeasible logic programming). But such procedure (although practical indeed) does not add anything new to the underlying logic. E.g. there is notion of "rational closure" (e.g. used for adaptive logics; just the consequence set for some set of premises) which should contain all the possible knowledge about state and therefore all the possible results of "logic programing" (if it is indeed perceived just as state exploration, derivation).

So - the question is - does logic programming provides anything new to the logic and does every logic (to be completely understood and readied for applications) need to have its own logic programming?

Maybe I am just missing the point...

Just for reference I find the following works interesting about this subject, if there are more along this line, then it would be great to hear!

• Mathematical Aspects of Logic Programming Semantics by Pascal Hitzler, Anthony Seda
• Dynamic Logic (Foundations of Computing) by David Harel, Dexter Kozen, Jerzy Tiuryn
• Adaptive Logics for Defeasible Reasoning: Applications in Argumentation, Normative Reasoning and Default Reasoning (Trends in Logic) by Christian Straßer

The answer to such question can have practical applications as well - e.g. it can help to define some kind of formal semantics of the "business rules" (declarative programming paradigm that is used more and more in business applications, e.g. IBM ILOG, JBoss Drools, Oracle Business Rules, PHP and Python also have their own rules engined) and going further - this can be useful for cognitive robotics as well.

• Logic programming primarily/initially adds something new to programming. Apr 13, 2014 at 9:55
• I think this question mixes up several issues. It might be worthwhile to split it into several parts. As to logic programming, as @DaveClarke points out, it doesn't add anything to a logic. Instead, logic programming is a programming paradigm (like imperative programming, or functional programming). The key novelty in logic programming is the mechanism that drives computation. That mechanism is a generic proof search using the proof rules of the ambient logic. (Continued below.) Apr 14, 2014 at 14:39
• In principle we can use rules that are human-friendly (e.g. natural deduction) for this purpose, but in practise that would make logic programming even slower than it already is. Instead we use machine-oriented proof rules, primarily resolution and unification. You can think of the latter as some kind of bi-directional pattern matching and the former as a generalisation of Modus Ponens and cut-elimination. Apr 14, 2014 at 14:40