Research Summary on Implementing Functional Patterns by Synthesizing Inverse Functions

Finn Teegen
(Kiel University)

In this research summary we present our recent work on implementing functional patterns with inverse functions in the lazy functional-logic programming language Curry. Our goal is the synthesis of the inverse of any given function in Curry itself. The setting of a functional-logic language especially allows the inversion of non-injective functions. In general, inverse computation is a non-trivial problem in lazy programming languages due to their non-strict semantics. We are so far able to directly derive the inverse function for a limited class of functions, namely those consisting of rules that do not involve both extra variables and non-linear right-hand sides. Because the synthesized definitions are based on standard code, known optimizations techniques can be applied to them. For all other functions we can still provide an inverse function by using non-strict unification.

In Francesco Ricca, Alessandra Russo, Sergio Greco, Nicola Leone, Alexander Artikis, Gerhard Friedrich, Paul Fodor, Angelika Kimmig, Francesca Lisi, Marco Maratea, Alessandra Mileo and Fabrizio Riguzzi: Proceedings 36th International Conference on Logic Programming (Technical Communications) (ICLP 2020), UNICAL, Rende (CS), Italy, 18-24th September 2020, Electronic Proceedings in Theoretical Computer Science 325, pp. 296–302.
Published: 19th September 2020.

ArXived at: https://dx.doi.org/10.4204/EPTCS.325.39 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org