Coinductive logic programming software

Coinduction has recently been introduced as a powerful technique for reasoning about unfounded sets, unbounded structures, and interactive computations. In all of these languages, rules are written in the form of clauses. Where induction corresponds to least fixed point semantics, coinduction corresponds to greatest. Cologic programming colp 30, 4 is a cuttingedge logic programming technology that combines tabled and coinductive logic programming and allows extremely elegant and succinct. We present a novel formal operational semantics that is based on synthesizing a coinductive hypothesis for this coinductive logic programming language. Logic, coinduction and infinite computation microsoft research. To illustrate this, let us consider the following logic program which defines some. Extending coinductive logic programming with cofacts arxiv. Coinductive logic programming and its applications. Most people looking for ladder logic programming software downloaded. This enables some interesting programs, notably on infinite trees cyclic terms. This enables some interesting programs, notably on infinite trees cyclic.

This tool is used to convert the instructions of mitsubishi and siemens to. Major logic programming language families include prolog, answer set programming asp and datalog. Coinductive logic programming 11, 12,4 extends standard logic programming with the ability of reasoning about infinite objects and their properties. The idea behind coinduction is that a goal succeeds if it unifies to a parent goal. Whereas syntax of logic programs remains the same, semantics is different. Coinductive logic programming and its applications springerlink. We discuss applications of coinductive logic programming to verification and model checking, lazy evaluation, concurrent. Extending logic programming with coinduction by luke simon et al. We prove that this new operational semantics is equivalent to the declarative semantics.

Download ladder logic programming software for free windows. Extending coinductive logic programming with cofacts. In this paper we discuss the introduction of coinduction into logic programming. This section has defined the abstract or mathematical syntax of a logic program. Logic programming is a programming paradigm which is largely based on formal logic. Coinduction is a powerful technique for reasoning about unfounded sets. This simple module implements the directive coinductive1 as described in cologic programming.

The resulting coinductive logic programming language is syntactically identical to, yet semantically subsumes logic programming with rational terms and lazy evaluation. Coinductive lp allows one to program with infinite data structures and infinite proofs. Part of the lecture notes in computer science book series lncs, volume 4670 abstract. Finally, we show that our coinductive approach subsumes reachability logic, a recent languageindependent sound and relatively complete. If all things were finite, then coinduction would not be needed. Extending logic programming with coinduction citeseerx. Executing a logic program then involves using coinduction to check inclusion in the greatest fixedpoint. Any program written in a logic programming language is a set of sentences in logical form, expressing facts and rules about some problem domain. Extending logic programming with coinduction the university of. We introduce a generalized logic programming paradigm where programs, consisting of facts and rules with the usual syntax, can be.

A predicate answer set programming system includes source code and documentation. We prove that this new operational semantics is equivalent to the. Pdf coinductive logic programming and its applications. Perpetual programs, automata over infinite strings. The resulting coinductive logic programming language. An explainable ai system for discovering the logic from models learned using statistical methods includes source code and documentation.

1191 1153 447 904 913 74 352 121 1099 947 130 707 589 744 1493 7 793 527 1 1346 478 672 1432 690 702 478 1365 302