1996Unpublished venueRequires access

Declarative Logic Programming with Primitive Recursive Relations on Lists

Michael J. Maher

Open publisher page 0 citations

Abstract

In a previous paper we introduced a system of recursion operators for formulating pure logic programs, dispensing with explicit recursions. The recursion operators, some of which are similar to higher-order functions known from functional programming, take the form of quasi-higher order predicates. In this paper we identify a comprehensive class of logic programs called primitive recursive relations over lists (including primitive recursive functions) using the so called fold recursion operators. We formulate and prove a duality theorem connecting our relational fold operators. We show how correct well-moded procedural interpretations using any fixed computation rule can be obtained from a declarative logic program. This is accomplished in a principled manner by a simplified data flow analysis enabled by the recursion operator formulation and the duality theorem. The recursion operators are handled in ordinary clauses by means of established metalogic programming techniques.

About this research paper

What this paper is about

In a previous paper we introduced a system of recursion operators for formulating pure logic programs, dispensing with explicit recursions. The recursion operators, some of which are similar to higher-order functions known from functional programming, take the form of quasi-higher order predicates. In this paper we identify a comprehensive class of logic programs called primitive recursive relations over lists (including primitive recursive functions) using the so called fold recursion operators. We formulate and prove a duality theorem connecting our relational fold operators. We show how correct well-moded procedural interpretations using any fixed computation rule can be obtained from a declarative logic program. This is accomplished in a principled manner by a simplified data flow analysis enabled by the recursion operator formulation and the duality theorem. The recursion operators are handled in ordinary clauses by means of established metalogic programming techniques.

Why it matters

A significance statement is not available in the OpenAlex record.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

In a previous paper we introduced a system of recursion operators for formulating pure logic programs, dispensing with explicit recursions. The recursion operators, some of which are similar to higher-order functions known from functional programming, take the form of quasi-higher order predicates. In this paper we identify a comprehensive class of logic programs called primitive recursive relations over lists (including primitive recursive functions) using the so called fold recursion operators. We formulate and prove a duality theorem connecting our relational fold operators. We show how correct well-moded procedural interpretations using any fixed computation rule can be obtained from a declarative logic program. This is accomplished in a principled manner by a simplified data flow analysis enabled by the recursion operator formulation and the duality theorem. The recursion operators are handled in ordinary clauses by means of established metalogic programming techniques.

Key concepts: Recursion (computer science), Mutual recursion, Primitive recursive function, Double recursion, Logic programming, Functional programming, μ operator, Declarative programming

Related papers

Back to paper searchBrowse research topicsOriginal source
Declarative Logic Programming with Primitive Recursive Relations on Lists — Research Paper | ScholarLens