Synthesizing Set Functions

by Sergio Antoy, Michael Hanus, Finn Teegen

Long version of a paper to appear in Proceedings of the 26th International Workshop on Functional and Logic Programming (WFLP 2018), Springer LNCS 11285, pp. 93-111, 2019

Set functions are a feature of functional logic programming to encapsulate all results of a non-deterministic computation in a single data structure. Given a function $f$ of a functional logic program written in Curry, we describe a technique to synthesize the definition of the set function of $f$. The definition produced by our technique is based on standard Curry constructs. Our approach is interesting for three reasons. It allows reasoning about set functions, it offers an implementation of set functions which can be added to any Curry system, and it has the potential of changing our thinking about the implementation of non-determinism, a notoriously difficult problem.

PDF (411 KB) BibTeX-Entry Online