131 research outputs found

    Classical realizability in the CPS target language

    Get PDF
    AbstractMotivated by considerations about Krivine's classical realizability, we introduce a term calculus for an intuitionistic logic with record types, which we call the CPS target language. We give a reformulation of the constructions of classical realizability in this language, using the categorical techniques of realizability triposes and toposes.We argue that the presentation of classical realizability in the CPS target language simplifies calculations in realizability toposes, in particular it admits a nice presentation of conjunction as intersection type which is inspired by Girard's ludics

    Revisiting the Duality of Computation: An Algebraic Analysis of Classical Realizability Models

    Get PDF

    Game semantics for first-order logic

    Full text link
    We refine HO/N game semantics with an additional notion of pointer (mu-pointers) and extend it to first-order classical logic with completeness results. We use a Church style extension of Parigot's lambda-mu-calculus to represent proofs of first-order classical logic. We present some relations with Krivine's classical realizability and applications to type isomorphisms

    A Classical Sequent Calculus with Dependent Types

    Get PDF
    International audienceDependent types are a key feature of type systems, typically used in the context of both richly-typed programming languages and proof assistants. Control operators, which are connected with classical logic along the proof-as-program correspondence, are known to misbehave in the presence of dependent types, unless dependencies are restricted to values. We place ourselves in the context of the sequent calculus which has the ability to smoothly provide control under the form of the µ operator dual to the common "let" operator, as well as to smoothly support abstract machine and continuation-passing style interpretations. We start from the call-by-value version of the λμμ̃ language and design a minimal language with a value restriction and a type system that includes a list of explicit dependencies and maintains type safety. We then show how to relax the value restriction and introduce delimited continuations to directly prove the consistency by means of a continuation-passing-style translation. Finally, we relate our calculus to a similar system by Lepigre , and present a methodology to transfer properties from this system to our own

    The Definitional Side of the Forcing

    Get PDF
    International audienceThis paper studies forcing translations of proofs in dependent type theory, through the Curry-Howard correspondence. Based on a call-by-push-value decomposition, we synthesize two simply-typed translations: i) one call-by-value, corresponding to the translation derived from the presheaf construction as studied in a previous paper ; ii) one call-by-name, whose intuitions already appear in Kriv-ine and Miquel's work. Focusing on the call-by-name translation, we adapt it to the dependent case and prove that it is compatible with the definitional equality of our system, thus avoiding coherence problems. This allows us to use any category as forcing conditions , which is out of reach with the call-by-value translation. Our construction also exploits the notion of storage operators in order to interpret dependent elimination for inductive types. This is a novel example of a dependent theory with side-effects, clarifying how dependent elimination for inductive types must be restricted in a non-pure setting. Being implemented as a Coq plugin, this work gives the possibility to formalize easily consistency results, for instance the consistency of the negation of Voevodsky's univalence axiom

    Proving termination of evaluation for System F with control operators

    Full text link
    We present new proofs of termination of evaluation in reduction semantics (i.e., a small-step operational semantics with explicit representation of evaluation contexts) for System F with control operators. We introduce a modified version of Girard's proof method based on reducibility candidates, where the reducibility predicates are defined on values and on evaluation contexts as prescribed by the reduction semantics format. We address both abortive control operators (callcc) and delimited-control operators (shift and reset) for which we introduce novel polymorphic type systems, and we consider both the call-by-value and call-by-name evaluation strategies.Comment: In Proceedings COS 2013, arXiv:1309.092

    Une Dialectica matérialiste

    Get PDF
    In this thesis, we give a computational interpretation to Gödel's Dialectica translation, in a fashion inspired by classical realizability. In particular, it can be shown that the Dialectica translation manipulates stacks of the Krivine machine as first-class objects and that the main effect at work lies in the accumulation of those stacks at each variable use. The original translation suffers from a handful of defects due to hacks used by Gödel to work around historical limitations. Once these defects are solved, the translation naturally extends to much more expressive settings such as dependent type theory. A few variants are studied thanks to the linear decomposition, and relationships with other translations such as forcing and CPS are scrutinized.Cette thèse fournit une interprétation calculatoire de la traduction dite Dialectica de Gödel, dans une démarche inspirée par la réalisabilité classique. On peut en particulier montrer que Dialectica manipule des piles de la machine de Krivine comme objets de première classe et que le principal effet de cette traduction consiste à accumuler ces piles à chaque utilisation de variables. La traduction d'origine souffre d'une certaine quantité de défauts dus aux hacks utilisés par Gödel pour contourner des limitations historiques. Une fois ces problèmes résolus, la traduction s'étend naturellement à des paradigmes beaucoup plus expressifs tels que la théorie des types dépendants. On étudie d'autres variantes par la suite grâce à la décomposition linéaire, ainsi que lien de parenté avec d'autres traductions tels que le forcing et les CPS

    Temporal Stream Logic: Synthesis beyond the Bools

    Full text link
    Reactive systems that operate in environments with complex data, such as mobile apps or embedded controllers with many sensors, are difficult to synthesize. Synthesis tools usually fail for such systems because the state space resulting from the discretization of the data is too large. We introduce TSL, a new temporal logic that separates control and data. We provide a CEGAR-based synthesis approach for the construction of implementations that are guaranteed to satisfy a TSL specification for all possible instantiations of the data processing functions. TSL provides an attractive trade-off for synthesis. On the one hand, synthesis from TSL, unlike synthesis from standard temporal logics, is undecidable in general. On the other hand, however, synthesis from TSL is scalable, because it is independent of the complexity of the handled data. Among other benchmarks, we have successfully synthesized a music player Android app and a controller for an autonomous vehicle in the Open Race Car Simulator (TORCS.

    The stack calculus

    Get PDF
    We introduce a functional calculus with simple syntax and operational semantics in which the calculi introduced so far in the Curry-Howard correspondence for Classical Logic can be faithfully encoded. Our calculus enjoys confluence without any restriction. Its type system enforces strong normalization of expressions and it is a sound and complete system for full implicational Classical Logic. We give a very simple denotational semantics which allows easy calculations of the interpretation of expressions.Comment: In Proceedings LSFA 2012, arXiv:1303.713
    corecore