223 research outputs found

    A Simply Numbered Lambda Calculus

    Get PDF
    While programming languages traditionally lean towards functions, query languages are often relational in character. Taking the relations language of Harkes and Visser as a starting point, I explore how the functional paradigm, represented by the lambda calculus, can be extended to form the basis of a relational language. It turns out that a straightforward extension with strings of terms not only supports surprisingly many features of the relations language, but also opens it up for higher-order relations, one prominent feature the relations language does not offer

    The structural lambda-calculus

    Get PDF
    Inspired by a recent graphical formalism for lambda-calculus based on Linear Logic technology, we introduce an untyped structural lambda-calculus, called lambda_j, which combines action at a distance with exponential rules decomposing the substitution by means of weakening, contraction and dereliction. Firstly, we prove fundamental properties such as confluence and preservation of beta-strong normalisation. Secondly, we use lambda_j to describe known notions of developments and superdevelopments, and introduce a more general one called XL-development. Then we show how to reformulate Regnier's sigma-equivalence in lambda_j so that it becomes a strong bisimulation. Finally, we prove that explicit composition or de-composition of substitutions can be added to lambda_j while still preserving beta-strong normalisation

    Synthesis of Programs from Linear Types

    Get PDF

    Uniformity and the Taylor expansion of ordinary lambda-terms

    Get PDF
    AbstractWe define the complete Taylor expansion of an ordinary lambda-term as an infinite linear combination–with rational coefficients–of terms of a resource calculus similar to Boudol’s lambda-calculus with multiplicities (or with resources). In our resource calculus, all applications are (multi)linear in the algebraic sense, i.e. commute with linear combinations of the function or the argument. We study the collective behaviour of the beta-reducts of the terms occurring in the Taylor expansion of any ordinary lambda-term, using, in a surprisingly crucial way, a uniformity property that they enjoy. As a corollary, we obtain (the main part of) a proof that this Taylor expansion commutes with Böhm tree computation, syntactically

    Types and Terms Translated:Unrestricted Resources in Encoding Functions as Processes

    Get PDF
    Type-preserving translations are effective rigorous tools in the study of core programming calculi. In this paper, we develop a new typed translation that connects sequential and concurrent calculi; it is governed by type systems that control resource consumption. Our main contribution is the source language, a new resource λ-calculus with non-collapsing non-determinism and failures, dubbed uλ^{↯}_{⊕}. In uλ^{↯}_{⊕}, resources are split into linear and unrestricted; failures are explicit and arise from this distinction. We define a type system based on intersection types to control resources and fail-prone computation. The target language is 𝗌π, an existing session-typed π-calculus that results from a Curry-Howard correspondence between linear logic and session types. Our typed translation subsumes our prior work; interestingly, it treats unrestricted resources in uλ^{↯}_{⊕} as client-server session behaviours in 𝗌π

    Non-Deterministic Functions as Non-Deterministic Processes

    Get PDF
    We study encodings of the λ-calculus into the π-calculus in the unexplored case of calculi with non-determinism and failures. On the sequential side, we consider λ^↯_⊕, a new non-deterministic calculus in which intersection types control resources (terms); on the concurrent side, we consider sπ, a π-calculus in which non-determinism and failure rest upon a Curry-Howard correspondence between linear logic and session types. We present a typed encoding of λ^↯_⊕ into sπ and establish its correctness. Our encoding precisely explains the interplay of non-deterministic and fail-prone evaluation in λ^↯_⊕ via typed processes in sπ. In particular, it shows how failures in sequential evaluation (absence/excess of resources) can be neatly codified as interactio
    corecore