11 research outputs found

    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

    Toward dependent choice: a classical sequent calculus with dependent types

    Get PDF
    International audienceThe dependent sum type of Martin-Löf's type theory provides a strong existential elimination, which allows to prove the full axiom of choice. The proof is simple and constructive: ACA:=λH.(λx.wit (H x),λx.prf (H x)):∀(x:A)∃(y:B)P(x,y)⇒∃(f:A→B)∀(x:A)P(x,f(x))AC_A := \lambda H. (\lambda x. wit\,(H\, x), \lambda x. prf\,(H\,x)) : \forall (x:A) \exists (y:B) P(x, y) \Rightarrow \exists (f:A\to B) \forall (x:A) P(x, f (x)) where 'wit' and 'prf' are the first and second projections of a strong existential quantifier. We present here a continuation of Herbelin's works, who proposed a way of scaling up Martin-Löf proof to classical logic. The first idea is to restrict the dependent sum type to a fragment of our system we call N-elimination-free, making it computationally compatible with classical logic. The second idea is to represent a countable universal quantification as an infinite conjunction. This allows to internalize into a formal system (called dPAω) the realizability approach as a direct proof-as-programs interpretation.In a recent paper, Ariola et al. presented a way to construct a CPS-translation for a call-by-need version of the λˉΌΌ~\bar\lambda\mu\tilde\mu-calculus, which allows some sharing facilities. Yet, this translation does notenjoy any typing property, and then does not give us a way of proving normalization. Moreover, the λˉΌΌ~\bar\lambda\mu\tilde\mu-calculus is typed with sequent calculus [4], which does not allow to manipulate dependent types immediately.We propose to deal with both problems while proving the normalization of our system in two steps. First, we translate our calculus to an adequate version of the λˉΌΌ~\bar\lambda\mu\tilde\mu-calculus that allows to manipulate dependent types on the N-elimination-free fragment. Then we will try to adapt the CPS-translation for call-by-need to our case, while adding it a type

    Dependent Type Theory in Polarised Sequent Calculus (abstract)

    Get PDF
    (conference cancelled due to events)International audienc

    Dependent Type Theory in Polarised Sequent Calculus (abstract)

    Get PDF
    (conference cancelled due to events)International audienc

    Proofs and Refutations for Intuitionistic and Second-Order Logic

    Get PDF
    The ?^{PRK}-calculus is a typed ?-calculus that exploits the duality between the notions of proof and refutation to provide a computational interpretation for classical propositional logic. In this work, we extend ?^{PRK} to encompass classical second-order logic, by incorporating parametric polymorphism and existential types. The system is shown to enjoy good computational properties, such as type preservation, confluence, and strong normalization, which is established by means of a reducibility argument. We identify a syntactic restriction on proofs that characterizes exactly the intuitionistic fragment of second-order ?^{PRK}, and we study canonicity results

    Type‐Preserving CPS Translation of Σ and Π Types is Not Not Possible

    Get PDF
    International audienceDependently typed languages like Coq are used to specify and prove functional correctness of source programs,but what we ultimately need are guarantees about correctness of compiled code. By preserving dependenttypes through each compiler pass, we could preserve source-level specifications and correctness proofs intothe generated target-language programs. Unfortunately, type-preserving compilation of dependent types isnontrivial. In 2002, Barthe and Uustalu showed that type-preserving CPS is not possible for languages likeCoq. Specifically, they showed that for strong dependent pairs (ÎŁ types), the standard typed call-by-name CPSis not type preserving. They further proved that for dependent case analysis on sums, a class of typed CPStranslations—including the standard translation—is not possible. In 2016, Morrisett noticed a similar problemwith the standard call-by-value CPS translation for dependent functions (Π types). In essence, the problem isthat the standard typed CPS translation by double-negation, in which computations are assigned types of theform (A → ⊄) → ⊄, disrupts the term/type equivalence that is used during type checking in a dependentlytyped language.In this paper, we prove that type-preserving CPS translation for dependently typed languages is not notpossible. We develop both call-by-name and call-by-value CPS translations from the Calculus of Constructionswith both Π and ÎŁ types (CC) to a dependently typed target language, and prove type preservation andcompiler correctness of each translation. Our target language is CC extended with an additional equivalencerule and an additional typing rule, which we prove consistent by giving a model in the extensional Calculus ofConstructions. Our key observation is that we can use a CPS translation that employs answer-type polymorphism,where CPS-translated computations have type ∀α.(A → α) → α. This type justifies, by a free theorem,the new equality rule in our target language and allows us to recover the term/type equivalences that CPStranslation disrupts. Finally, we conjecture that our translation extends to dependent case analysis on sums,despite the impossibility result, and provide a proof sketch

    A Classical Sequent Calculus with Dependent Types

    Get PDF
    International audienc

    A sequent calculus with dependent types for classical arithmetic

    Get PDF
    International audienceIn a recent paper, Herbelin developed a calculus dPAω^\omega in which constructive proofs for the axioms of countable and dependent choices could be derived via the encoding of a proof of countable universal quantification as a stream of it components. However, the property of normalization (and therefore the one of soundness) was only conjectured. The difficulty for the proof of normalization is due to the simultaneous presence of dependent dependent types (for the constructive part of the choice), of control operators (for classical logic), of coinductive objects (to encode functions of type N→A\mathbb{N} \to A into streams (a0,a1,
)(a_0,a_1,\ldots)) and of lazy evaluation with sharing (for these coinductive objects).Building on previous works, we introduce in this paper a variant of dPAω^\omega presented as a sequent calculus. On the one hand, we take advantage of a variant of Krivine classical realizability we developed to prove the normalization of classical call-by-need. On the other hand, we benefit of dL, a classical sequent calculus with dependent types in which type safety is ensured using delimited continuations together with a syntactic restriction. By combining the techniques developed in these papers, we manage to define a realizability interpretation Ă  la Krivine of our calculus that allows us to prove normalization and soundness

    Réalisabilité classique et effets de bords

    Get PDF
    This thesis focused on the computational content of classical proofs, and specifically on proofs with side-effects and Krivine classical realizability. The manuscript is divided in three parts, the first of which consists of a detailed introduction to the concepts used in the sequel.The second part deals with the computational content of the axiom of dependent choice in classical logic. This works is in the continuity of dPAω system of Hugo Herbelin, which allows to adapt the constructive proof of the axiom of choice in Martin-Löf's type theory in order to turn it into a constructive proof of the axiom of dependent choice in a setting compatible with classical logic. The principal goal of this part is to prove the property of normalization for dPAω, on which relies the consistency of the system. Such a proof is hard to obtain, due to the simultaneous presence of dependent types (for the constructive part of the choice), of control operators (for classical logic), of co-inductive objects (in order to "encode" functions of type N → A as streams (a₀,a₁,...)) and of lazy evaluation with sharing (for this co-inductive objects). This difficulties are first studied separately. In particular, we show the normalization of classical call-by-need (presented as an extension of the λ”̃”-calculus with shared environments) by means of realizability techniques. Next, we develop a classical sequent calculus with dependent types, defined again as an adaptation of the λ”̃”-calcul whose soundness is proved thanks to a CPS-translation which takes the dependencies into account. Last, a sequent-calculus variant of dPAω is introduced, combining the two previous systems. Its normalization is finally proved using realizability techniques.The last part, more oriented towards semantics, studies the duality between the call-by-name and call-by-value evaluation strategies in a purely algebraic setting, inspired from several works around classical realizability (and in particular Krivine realizability algebras). This work relies on the notion of implicative algebras developed by Alexandre Miquel, a very simple algebraic structure generalizing at the same time complete Boolean algebras and Krivine realizability algebras, in such a way that it allows to express in a same setting the theory of forcing (in the sense of Cohen) and the theory of classical realizability (in the sense of Krivine). The main default of these structures is that they are deeply oriented towards the λ-calculus, and that they only allows to faithfully interpret languages in call-by-name. To remediate the situation, we introduce two variants of implicative algebras: disjunctive algebras, centered on the "par" connective of linear logic (but in a non-linear framework) and naturally adapted to languages in call-by-name; and conjunctives algebras, centered on the "tensor" connective of linear logic and adapted to languages in call-by-value. Amongst other things, we show that disjunctive algebras are particular cases of implicative algebras and that conjunctive algebras can be obtained from disjunctive algebras (by reversing the underlying order). Moreover, we show how to interpret in these framework the fragments of Guillaume Munch-Maccagnoni's system L for call-by-value (within conjunctive algebras) and for call-by-name (within disjunctive algebras).Cette thĂšse s'intĂ©resse au contenu calculatoire des preuves classiques, et plus spĂ©cifiquement aux preuves avec effets de bord et Ă  la rĂ©alisabilitĂ© classique de Krivine. Le manuscrit est divisĂ© en trois parties, donc la premiĂšre consiste en une introduction dĂ©taillĂ©e aux concepts utilisĂ©s par la suite.La deuxiĂšme partie porte sur l’interprĂ©tation calculatoire de l’axiome du choix dĂ©pendant en logique classique, et en particulier au systĂšme dPAω d'Hugo Herbelin. Ce calcul fournit en effet, dans un cadre compatible avec la logique classique, un terme de preuve pour l'axiome du choix dĂ©pendant, qui peut ĂȘtre vu comme une adaptation de la preuve constructive de l’axiome du choix en thĂ©orie des types de Martin-Löf ou un internalisation dans un systĂšme de preuve de l'approche en rĂ©alisabilitĂ© de Berardi, Bezem et Coquand. L'objectif principal de cette partie est de dĂ©montrer la propriĂ©tĂ© de normalisation pour dPAω, sur laquelle repose la cohĂ©rence du systĂšme. La difficultĂ© d'une telle preuve est liĂ©e Ă  la prĂ©sence simultanĂ©e de types dĂ©pendants (pour la partie constructive du choix), d'opĂ©rateurs de contrĂŽle (pour la logique classique), d'objets co-inductifs (pour "encoder" les fonctions de type N → A par des streams (a₀,a₁,...)) et l'Ă©valuation paresseuse avec partage (pour ces objets co-inductifs). On montre dans un premier temps la normalisation du call-by-need classique (prĂ©sentĂ© comme une extension du λ””̃-calcul avec des environnements partagĂ©), en utilisant notamment des techniques de rĂ©alisabilitĂ© Ă  la Krivine. On dĂ©veloppe ensuite un calcul des sĂ©quents classique avec types dĂ©pendants, dont la correction est prouvĂ©e Ă  l'aide d'une traduction CPS tenant compte des dĂ©pendances. En combinant les deux points prĂ©cĂ©dents, on dĂ©finit enfin une variante en calcul des sĂ©quents du systĂšme dPAω dont on peut finalement prouver la normalisation.La derniĂšre partie porte sur la structure algĂ©brique des modĂšles induits par la rĂ©alisabilitĂ© classique. Ce travail se base sur une notion d'algĂšbres implicatives dĂ©veloppĂ©e par Alexandre Miquel, une structure algĂ©brique trĂšs simple gĂ©nĂ©ralisant Ă  la fois les algĂšbres de Boole complĂštes et les algĂšbres de rĂ©alisabilitĂ© de Krivine, de maniĂšre Ă  exprimer dans un mĂȘme cadre la thĂ©orie du forcing (au sens de Cohen) et la thĂ©orie de la rĂ©alisabilitĂ© classique (au sens de Krivine). Le principal dĂ©faut de cette structure est qu’elle est trĂšs orientĂ©e vers le λ-calcul, et ne permet d’interprĂ©ter fidĂšlement que les langages en appel par nom. Pour remĂ©dier Ă  cette situation, on introduit deux variantes des algĂšbres implicatives les algĂšbres disjonctives, centrĂ©es sur le “par” de la logique linĂ©aire (mais dans un cadre non linĂ©aire) et naturellement adaptĂ©es aux langages en appel par nom, et les algĂšbres conjonctives, centrĂ©es sur le “tenseur” de la logique linĂ©aire et adaptĂ©es aux langages en appel par valeur. On prouve en particulier que les algĂšbres disjonctives ne sont que des cas particuliers d'algĂšbres implicatives et que l'on peut obtenir une algĂšbre conjonctive Ă  partir d'une algĂšbre disjonctive (par renversement de l’ordre sous-jacent). De plus, on montre comment interprĂ©ter dans ces cadres les fragments du systĂšme L de Guillaume Munch-Maccagnoni en appel par valeur (dans les algĂšbres conjonctives) et en appel par nom (dans les algĂšbres disjonctives)
    corecore