# Tabling, Rational Terms, and Coinduction Finally Together!

@article{Mantadelis2014TablingRT, title={Tabling, Rational Terms, and Coinduction Finally Together!}, author={Theofrastos Mantadelis and Ricardo Rocha and Paulo Moura}, journal={Theory and Practice of Logic Programming}, year={2014}, volume={14}, pages={429 - 443} }

Abstract Tabling is a commonly used technique in logic programming for avoiding cyclic behavior of logic programs and enabling more declarative program definitions. Furthermore, tabling often improves computational performance. Rational term are terms with one or more infinite sub-terms but with a finite representation. Rational terms can be generated in Prolog by omitting the occurs check when unifying two terms. Applications of rational terms include definite clause grammars, constraintâ€¦Â

## 7 Citations

Flexible coinductive logic programming

- Computer ScienceTheory and Practice of Logic Programming
- 2020

This work provides a detailed formal account of an extension of logic programming supporting flexible coinduction, and proves that the operational semantics is sound and complete with respect to declarative semantics restricted to finite comodels.

Coinduction Plain and Simple

- Computer ScienceArXiv
- 2020

Extensions of functional and logic programming with limited and decidable forms of the generalized coinduction proof principle are suggested, which makes the coinductions proof principle more intuitive and stresses its closeness with structural induction.

Generalizing Inference Systems by Coaxioms

- Economics, Computer ScienceESOP
- 2017

A generalized notion of inference system to support structural recursion on non-well-founded data types and allows formal reasoning in cases where the inductive and coinductive interpretation do not provide the intended meaning, or are mixed together.

A Theoretical Perspective of Coinductive Logic Programming

- Computer ScienceFundam. Informaticae
- 2015

A new operational semantics is proposed that allows a simple correctness result and the definition of a simple meta-interpreter, and is compared, and proved, with the operational semantics defined and used in other papers on this topic.

Coaxioms: flexible coinductive definitions by inference systems

- Economics, PhilosophyLog. Methods Comput. Sci.
- 2019

A generalized notion of inference system is introduced to support more flexible interpretations of recursive definitions, thus allowing formal reasoning in cases where the inductive and coinductive interpretation do not provide the intended meaning, but are rather mixed together.

Towards a model of corecursion with default

- Computer ScienceFTfJP@ECOOP
- 2016

New lattices for which the theorem of Kleene is applicable are studied so that the semantics of a corecursive method with default corresponds to the greatest fixed point computed as the greatest lower bound of a descending chain.

Infinite derivations as failures

- Computer ScienceCILC
- 2015

A Prolog meta-interpreter is presented that checks for the presence of cyclic computations at runtime and returns a failure if this is the case, thus allowing inductive predicates to properly deal with cyclic terms.

## References

SHOWING 1-10 OF 29 REFERENCES

Complexity of the CHR Rational Tree Equation Solver

- Computer Science
- 2006

It is shown that under the standard operational semantics of CHR there exist particular computations with n occurrences of variables and function symbols that produce O(2) constraints, thus leading to exponential time and space complexity.

Coinductive Logic Programming and Its Applications

- Computer ScienceICLP
- 2007

Applications of coinductive logic programming to verification and model checking, lazy evaluation, concurrent logic programming and non-monotonic reasoning are discussed.

XSB: Extending Prolog with Tabled Logic Programming

- Computer ScienceTheory and Practice of Logic Programming
- 2011

A survey of TLP and its applications as implemented in the XSB Prolog, along with discussion of how XSB supports tabling with dynamically changing code, and in a multi-threaded environment is provided.

Efficient Access Mechanisms for Tabled Logic Programs

- Computer ScienceJ. Log. Program.
- 1999

Semantics of Infinite Tree Logic Programming

- Computer Science, MathematicsTheor. Comput. Sci.
- 1986

Co-Logic Programming: Extending Logic Programming with Coinduction

- Computer ScienceICALP
- 2007

The theory and practice of co-logic programming is presented, a paradigm that combines both inductive and coinductive logic programming that has applications to rational trees, verifying infinitary properties, lazy evaluation, concurrent LP, model checking, bisimilarity proofs, etc.

A prolog technology theorem prover: Implementation by an extended prolog compiler

- Computer ScienceJournal of Automated Reasoning
- 2004

A Prolog technology theorem prover (PTTP) is an extension of Prolog that is complete for the full first-order predicate calculus. It differs from Prolog in its use of unification with the occursâ€¦

A Tutorial on Co-induction and Functional Programming

- Computer ScienceFunctional Programming
- 1994

It is shown how to prove properties of lazy streams by co-induction and derive Bird and Wadlerâ€™s Take Lemma, a well-known proof technique for lazy streams.

A Portable and Efficient Implementation of Coinductive Logic Programming

- Computer SciencePADL
- 2013

We describe the portable and efficient implementation of coinductive logic programming found in Logtalk, discussing its features and limitations. As Logtalk uses as a back-end compiler a compatibleâ€¦