Summary: Optimal Non-Deterministic
Functional Logic Computations ?
Portland State University
Abstract. We show that non-determinism simplies coding certain prob-
lems into programs. We dene a non-con
uent, but well-behaved class of
rewrite systems for supporting non-deterministic computations in functional
logic programming. We show the benets of using this class on a few examples.
We dene a narrowing strategy for this class of systems and prove that our
strategy is sound, complete, and optimal, modulo non-deterministic choices,
for appropriate denitions of these concepts. We compare our strategy with
related work and show that our overall approach is fully compatible with the
current proposal of a universal, broad-based functional logic language.
Curry , a recently proposed, general-purpose, broad-based functional logic lan-
guage, oers lazy evaluation, higher order functions, non-deterministic choices, and a
unied computation model which integrates narrowing and residuation. Curry models
functions by the dened operations of a constructor-based, almost orthogonal, term
rewriting system (CAT ). Non-determinism occurs typically in three situations: when
variables are instantiated during a narrowing step; when certain arguments of a non-