Nondeterminism in algebraic specifications and algebraic programs
Nondeterminism in algebraic specifications and algebraic programs
Unfolding-definition-folding, in this order, for avoiding unnecessary variables in logic programs
PLILP '91 Selected papers of the symposium on Programming language implementation and logic programming
Journal of the ACM (JACM)
A Rewriting Logic for Declarative Programming
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
Semantics and Types in Functional Logic Programming
FLOPS '99 Proceedings of the 4th Fuji International Symposium on Functional and Logic Programming
A proof theoretic approach to failure in functional logic programming
Theory and Practice of Logic Programming
Implementing functional logic languages using multiple threads and stores
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Specialization of functional logic programs based on needed narrowing
Theory and Practice of Logic Programming
Operational semantics for declarative multi-paradigm languages
Journal of Symbolic Computation
Overlapping rules and logic variables in functional logic programs
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Equivalence of Two Formal Semantics for Functional Logic Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
A Technique to Build Debugging Tools for Lazy Functional Logic Languages
Electronic Notes in Theoretical Computer Science (ENTCS)
Termination of narrowing in left-linear constructor systems
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
Goal-directed and relative dependency pairs for proving the termination of narrowing
LOPSTR'09 Proceedings of the 19th international conference on Logic-Based Program Synthesis and Transformation
Compiling a functional logic language: the basic scheme
FLOPS'12 Proceedings of the 11th international conference on Functional and Logic Programming
Are needed redexes really needed?
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
Hi-index | 0.00 |
Programs in modern functional logic languages are rewrite systems following the constructor discipline but where confluence and termination are not required, thus defining possibly non strict and non-deterministic functions. While in practice and in some theoretical papers rewrite rules can contain extra variables in right hand sides, some other works and techniques do not consider such possibility. We address in this paper the question of whether extra variables can be eliminated in such kind of functional logic programs, proving the soundness and completeness of an easy solution that takes advantage of the possibility of non-confluence. Although the focus of the paper is mainly theoretical, we give some first steps towards the practical usability of the technique.