DeepAI AI Chat
Log In Sign Up

Semantics of a Relational λ-Calculus (Extended Version)

by   Pablo Barenbaum, et al.

We extend the λ-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 λ-expressions and still obtain a confluent theory, we depart from related approaches, such as λ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.


page 1

page 2

page 3

page 4


The Functional Machine Calculus II: Semantics

The Functional Machine Calculus (FMC), recently introduced by the author...

Relational Reasoning for Markov Chains in a Probabilistic Guarded Lambda Calculus

We extend the simply-typed guarded λ-calculus with discrete probabilitie...

Universal Semantics for the Stochastic Lambda-Calculus

We define sound and adequate denotational and operational semantics for ...

Recovering Purity with Comonads and Capabilities

In this paper, we take a pervasively effectful (in the style of ML) type...

Coherent differentiation

The categorical models of the differential lambda-calculus are additive ...

Semantic Bounds and Strong Call-by-Value Normalization

This paper explores two topics at once: the use of denotational semantic...

Direct Foundations for Compositional Programming

The recently proposed CP language adopts Compositional Programming: a ne...