DeepAI AI Chat
Log In Sign Up

From Logic to Functional Logic Programs

by   Michael Hanus, et al.
Christian-Albrechts-Universität zu Kiel

Logic programming is a flexible programming paradigm due to the use of predicates without a fixed data flow. To extend logic languages with the compact notation of functional programming, there are various proposals to map evaluable functions into predicates in order to stay in the logic programming framework. Since amalgamated functional logic languages offer flexible as well as efficient evaluation strategies, we propose an opposite approach in this paper. By mapping logic programs into functional logic programs with a transformation based on inferring functional dependencies, we develop a fully automatic transformation which keeps the flexibility of logic programming but can improve computations by reducing infinite search spaces to finite ones.


page 1

page 2

page 3

page 4


In Praise of Impredicativity: A Contribution to the Formalisation of Meta-Programming

Processing programs as data is one of the successes of functional and lo...

Ideas for the future of Prolog inspired by Oz

Both Prolog and Oz are multiparadigm languages with a logic programming ...

One Monad to Prove Them All (Functional Pearl)

One Monad to Prove Them All is a modern fairy tale about curiosity and p...

Composing bidirectional programs monadically (with appendices)

Software frequently converts data from one representation to another and...

Making Bubbling Practical

Bubbling is a run-time graph transformation studied for the execution of...

The Divide-and-Conquer Subgoal-Ordering Algorithm for Speeding up Logic Inference

It is common to view programs as a combination of logic and control: the...

A Transformational Approach to Resource Analysis with Typed-norms Inference

In order to automatically infer the resource consumption of programs, an...