Rewriting and narrowing for constructor systems with call-time choice semantics
Francisco J. L\'opez-Fraguas, Enrique Martin-Martin, Juan, Rodr\'iguez-Hortal\'a, Jaime S\'anchez-Hern\'andez

TL;DR
This paper develops a formal theory for let-rewriting and let-narrowing in constructor systems with call-time choice semantics, enabling better reasoning about non-deterministic, non-strict functional logic programs.
Contribution
It introduces a first-order let-rewriting framework with a proper one-step reduction notion, linking it to CRWL semantics and ordinary rewriting, enhancing understanding of call-time choice.
Findings
Let-rewriting is equivalent to a conservative extension of CRWL.
Let-narrowing is sound and complete for call-time choice.
The framework facilitates reasoning about non-determinism and non-strict semantics.
Abstract
Non-confluent and non-terminating constructor-based term rewrite systems are useful for the purpose of specification and programming. In particular, existing functional logic languages use such kind of rewrite systems to define possibly non-strict non-deterministic functions. The semantics adopted for non-determinism is call-time choice, whose combination with non-strictness is a non trivial issue, addressed years ago from a semantic point of view with the Constructor-based Rewriting Logic (CRWL), a well-known semantic framework commonly accepted as suitable semantic basis of modern functional logic languages. A drawback of CRWL is that it does not come with a proper notion of one-step reduction, which would be very useful to understand and reason about how computations proceed. In this paper we develop thoroughly the theory for the first order version of let-rewriting, a simple…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
