8 research outputs found

    On Subexponentials, Synthetic Connectives, and Multi-level Delimited Control

    Get PDF
    International audienceWe construct a partially-ordered hierarchy of delimited control operators similar to those of the CPS hierarchy of Danvy and Filinski. However, instead of relying on nested CPS translations, these operators are directly interpreted in linear logic extended with subexponentials (i.e., multiple pairs of ! and ?). We construct an independent proof theory for a fragment of this logic based on the principle of focusing. It is then shown that the new constraints placed on the permutation of cuts correspond to multiple levels of delimited control

    Extended Call-by-Push-Value: Reasoning About Effectful Programs and Evaluation Order

    Get PDF
    Traditionally, reasoning about programs under varying evaluation regimes (call-by-value, call-by-name etc.) was done at the meta-level, treating them as term rewriting systems. Levy’s call-by-push-value (CBPV) calculus provides a more powerful approach for reasoning, by treating CBPV terms as a common intermediate language which captures both call-by-value and call-by-name, and by allowing equational reasoning about changes to evaluation order between or within programs. We extend CBPV to additionally deal with call-by-need, which is non-trivial because of shared reductions. This allows the equational reasoning to also support call-by-need. As an example, we then prove that call-by-need and call-by-name are equivalent if nontermination is the only side-effect in the source language. We then show how to incorporate an effect system. This enables us to exploit static knowledge of the potential effects of a given expression to augment equational reasoning; thus a program fragment might be invariant under change of evaluation regime only because of knowledge of its effects

    Realizability Interpretation and Normalization of Typed Call-by-Need λ\lambda-calculus With Control

    Get PDF
    We define a variant of realizability where realizers are pairs of a term and a substitution. This variant allows us to prove the normalization of a simply-typed call-by-need \lambda$-$calculus with control due to Ariola et al. Indeed, in such call-by-need calculus, substitutions have to be delayed until knowing if an argument is really needed. In a second step, we extend the proof to a call-by-need \lambda-calculus equipped with a type system equivalent to classical second-order predicate logic, representing one step towards proving the normalization of the call-by-need classical second-order arithmetic introduced by the second author to provide a proof-as-program interpretation of the axiom of dependent choice

    Deriving natural deduction rules from truth tables

    No full text
    We develop a general method for deriving natural deduction rules from the truth table for a connective. The method applies to both constructive and classical logic. This implies we can derive “constructively valid” rules for any classical connective. We show this constructive validity by giving a general Kripke semantics, that is shown to be sound and complete for the constructive rules. For the well-known connectives (˅, ˄, →, ¬) the constructive rules we derive are equivalent to the natural deduction rules we know from Gentzen and Prawitz. However, they have a different shape, because we want all our rules to have a standard “format”, to make it easier to define the notions of cut and to study proof reductions. In style they are close to the “general elimination rules” studied by Von Plato [13] and others. The rules also shed some new light on the classical connectives: e.g. the classical rules we derive for → allow to prove Peirce’s law. Our method also allows to derive rules for connectives that are usually not treated in natural deduction textbooks, like the “if- then-else”, whose truth table is clear but whose constructive deduction rules are not. We prove that “if-then-else”, in combination with ┴ and ┬, is functionally complete (all other constructive connectives can be defined from it). We define the notion of cut, generally for any constructive connective and we describe the process of “cut-elimination”.</p

    Types by Need

    Get PDF
    International audienceA cornerstone of the theory of λ-calculus is that intersection types characterise termination properties. They are a flexible tool that can be adapted to various notions of termination, and that also induces adequate denotational models. Since the seminal work of de Carvalho in 2007, it is known that multi types (i.e. non-idempotent intersection types) refine intersection types with quantitative information and a strong connection to linear logic. Typically, type derivations provide bounds for evaluation lengths, and minimal type derivations provide exact bounds. De Carvalho studied call-by-name evaluation, and Kesner used his system to show the termination equivalence of call-by-need and call-by-name. De Carvalho's system, however, cannot provide exact bounds on call-by-need evaluation lengths. In this paper we develop a new multi type system for call-by-need. Our system produces exact bounds and induces a denotational model of call-by-need, providing the first tight quantitative semantics of call-by-need

    Realizability Interpretation and Normalization of Typed Call-by-Need λ-calculus With Control

    Get PDF
    International audienceWe define a variant of realizability where realizers are pairs of a term and a substitution. This variant allows us to prove the normalization of a simply-typed call-by-need λ-calculus with control due to Ariola et al. Indeed, in such call-by-need calculus, substitutions have to be delayed until knowing if an argument is really needed. In a second step, we extend the proof to a call-by-need λ-calculus equipped with a type system equivalent to classical second-order predicate logic, representing one step towards proving the normalization of the call-by-need classical second-order arithmetic introduced by the second author to provide a proof-as-program interpretation of the axiom of dependent choice
    corecore