Tabling, Rational Terms, and Coinduction Finally Together!
Thepfrastos Mantadelis, Ricardo Rocha, Paulo Moura

TL;DR
This paper extends Prolog's tabling mechanism to support rational terms, enabling more expressive logic programming with coinduction, and provides correctness proofs, implementation details, and algorithms for canonical representations.
Contribution
It introduces a novel extension of YAP's Prolog tabling to handle rational terms, supporting coinduction and ensuring correct, canonical representations.
Findings
Extended tabling mechanism supports rational terms.
Implemented a tabling-based coinduction approach.
Proved correctness and provided algorithms for canonical forms.
Abstract
To appear in Theory and Practice of Logic Programming (TPLP). 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 handling systems, and coinduction. In this paper, we report our extension of YAP's Prolog tabling mechanism to support rational terms. We describe the internal representation of rational terms within the table space and prove its correctness. We then use this extension to implement a tabling based approach to coinduction. We compare our approach with…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
