Tabling, Rational Terms, and Coinduction Finally Together!

dc.contributor.author Theofrastos Mantadelis en
dc.contributor.author Ricardo Rocha en
dc.contributor.author Paulo Moura en
dc.date.accessioned 2017-11-20T10:49:49Z
dc.date.available 2017-11-20T10:49:49Z
dc.date.issued 2014 en
dc.description.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 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 current coinductive transformations and describe the implementation. In addition, we present an algorithm that ensures a canonical representation for rational terms. en
dc.identifier.uri http://repositorio.inesctec.pt/handle/123456789/3629
dc.identifier.uri http://dx.doi.org/10.1017/s147106841400012x en
dc.language eng en
dc.relation 6034 en
dc.relation 5128 en
dc.relation 5127 en
dc.rights info:eu-repo/semantics/openAccess en
dc.title Tabling, Rational Terms, and Coinduction Finally Together! en
dc.type article en
dc.type Publication en
Files