Semantics of a Relational {\lambda}-Calculus (Extended Version)
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}
}