165 research outputs found

    Denotational Semantics of the Simplified Lambda-Mu Calculus and a New Deduction System of Classical Type Theory

    Full text link
    Classical (or Boolean) type theory is the type theory that allows the type inference σ→⊥)→⊥=>σ\sigma \to \bot) \to \bot => \sigma (the type counterpart of double-negation elimination), where σ\sigma is any type and ⊥\bot is absurdity type. This paper first presents a denotational semantics for a simplified version of Parigot's lambda-mu calculus, a premier example of classical type theory. In this semantics the domain of each type is divided into infinitely many ranks and contains not only the usual members of the type at rank 0 but also their negative, conjunctive, and disjunctive shadows in the higher ranks, which form an infinitely nested Boolean structure. Absurdity type ⊥\bot is identified as the type of truth values. The paper then presents a new deduction system of classical type theory, a sequent calculus called the classical type system (CTS), which involves the standard logical operators such as negation, conjunction, and disjunction and thus reflects the discussed semantic structure in a more straightforward fashion.Comment: In Proceedings CL&C 2016, arXiv:1606.0582

    Classical logic, continuation semantics and abstract machines

    Get PDF
    One of the goals of this paper is to demonstrate that denotational semantics is useful for operational issues like implementation of functional languages by abstract machines. This is exemplified in a tutorial way by studying the case of extensional untyped call-by-name λ-calculus with Felleisen's control operator 𝒞. We derive the transition rules for an abstract machine from a continuation semantics which appears as a generalization of the ¬¬-translation known from logic. The resulting abstract machine appears as an extension of Krivine's machine implementing head reduction. Though the result, namely Krivine's machine, is well known our method of deriving it from continuation semantics is new and applicable to other languages (as e.g. call-by-value variants). Further new results are that Scott's D∞-models are all instances of continuation models. Moreover, we extend our continuation semantics to Parigot's λμ-calculus from which we derive an extension of Krivine's machine for λμ-calculus. The relation between continuation semantics and the abstract machines is made precise by proving computational adequacy results employing an elegant method introduced by Pitts

    Programming Language Foundations in Agda

    Get PDF

    Kripke Models for Classical Logic

    Get PDF
    We introduce a notion of Kripke model for classical logic for which we constructively prove soundness and cut-free completeness. We discuss the novelty of the notion and its potential applications

    Types as Resources for Classical Natural Deduction

    Get PDF
    We define two resource aware typing systems for the lambda-mu-calculus based on non-idempotent intersection and union types. The non-idempotent approach provides very simple combinatorial arguments - based on decreasing measures of type derivations - to characterize head and strongly normalizing terms. Moreover, typability provides upper bounds for the length of head-reduction sequences and maximal reduction sequences
    • …
    corecore