English

Semantics of a Relational {\lambda}-Calculus (Extended Version)

Programming Languages 2021-03-02 v4

Abstract

We extend the {\lambda}-calculus with constructs suitable for relational and functional-logic programming: non-deterministic choice, fresh variable introduction, and unification of expressions. In order to be able to unify {\lambda}-expressions and still obtain a confluent theory, we depart from related approaches, such as {\lambda}Prolog, in that we do not attempt to solve higher-order unification. Instead, abstractions are decorated with a location, which intuitively may be understood as its memory address, and we impose a simple coherence invariant: abstractions in the same location must be equal. This allows us to formulate a confluent small-step operational semantics which only performs first-order unification and does not require strong evaluation (below lambdas). We study a simply typed version of the system. Moreover, a denotational semantics for the calculus is proposed and reduction is shown to be sound with respect to the denotational semantics.

Keywords

Cite

@article{arxiv.2009.10929,
  title  = {Semantics of a Relational {\lambda}-Calculus (Extended Version)},
  author = {Pablo Barenbaum and Federico Lochbaum and Mariana Milicich},
  journal= {arXiv preprint arXiv:2009.10929},
  year   = {2021}
}
R2 v1 2026-06-23T18:44:07.868Z