2
$\begingroup$

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.

$\endgroup$
  • 5
    $\begingroup$ Logic programming primarily/initially adds something new to programming. $\endgroup$ – Dave Clarke Apr 13 '14 at 9:55
  • 1
    $\begingroup$ 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.) $\endgroup$ – Martin Berger Apr 14 '14 at 14:39
  • $\begingroup$ 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. $\endgroup$ – Martin Berger Apr 14 '14 at 14:40
11
$\begingroup$

I will just write what Frank Pfenning taught me (all mistakes go on my account).

A traditional formal system in logic, such as natural deduction, is descriptive in the sense that it tells us what valid deductions are, but it does not tell us how we are supposed to look for them.

The starting point of logic programming is to take the rules of deduction and reformulate them in such a way that they can be read both as rules of deduction and an evaluation strategy for a computation. This way a strong connection between deduction and computation is created. Both logic and theory of computation benefit from it, and it is perhaps a bit pointless to ask whether logic programming "really adds" anything new to logic. Logic and computation are not separate entities anyway.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.