15 research outputs found

    Encoding Agda Programs Using Rewriting

    Get PDF
    We present in this paper an encoding in an extension with rewriting of the Edimburgh Logical Framework (LF) [Harper et al., 1993] of two common features: universe polymorphism and eta-convertibility. This encoding is at the root of the translator between Agda and Dedukti developped by the author

    Dependency Pairs Termination in Dependent Type Theory Modulo Rewriting

    Get PDF
    Dependency pairs are a key concept at the core of modern automated termination provers for first-order term rewriting systems. In this paper, we introduce an extension of this technique for a large class of dependently-typed higher-order rewriting systems. This extends previous results by Wahlstedt on the one hand and the first author on the other hand to strong normalization and non-orthogonal rewriting systems. This new criterion is implemented in the type-checker Dedukti

    Sequential generation of structured arrays and its deductive verification

    Get PDF
    International audienceA structured array is an array satisfying given constraints, such as being sorted or having no duplicate values. Generation of all arrays with a given structure up to some given length has many applications, including bounded exhaustive testing. A sequential generator of structured arrays can be defined by two C functions: the first one computes an initial array, and the second one steps from one array to the next one according to some total order on the set of arrays. We formally specify with ACSL annotations that the generated arrays satisfy the prescribed structural constraints (soundness property) and that the generation is in increasing lexicographic order (progress property). We refine this specification into two programming and specification patterns: one for generation in lexicographic order and one for generation by filtering the output of another generator. We distribute a library of generators instantiating these patterns. After adding suitable loop invariants we automatically prove the soundness and progress properties with the Frama-C platform

    Vérification de la terminaison dans le λΠ-calcul modulo théorie.De la pratique à la théorie.

    Get PDF
    National audienceDedukti is a type-checker for the λΠ-calculus modulo theory, which has theparticularity to allow the user to declare rewrite rules, especially in order toencode the logic he/she wants to use. Thanks to the Curry-Howard-De Bruijncorrespondence, the type checking done by Dedukti can be used to check proofs.Unfortunately, to decide the type-checking, Dedukti needs the system ofrewrite rules declared by the user, together with β-reduction, to be confluentand terminating. An external tool already exists to check the confluence, but noautomatic tool exists for the termination, which must be checked independentlyby hand, before using Dedukti.The subject of this report (and more widely of the internship) is to developsuch a tool.A first part of it is dedicated to an algorithm of termination checking: theSize-Change Principle. After a brief introduction to Dedukti, the algorithm isexplained and the results obtained by an implementation of it for Dedukti arepresented.The second and longest part of this report is much more theoretic, sinceit presents reducibility candidates for the λΠ-calculus modulo theory. Thosereducibility candidates can then be used together with the Size-Change Principledetailed in the first part, to check the termination of a rewrite rule system, asexplained in [Wah07]

    Terminaison en présence de types dépendants et encodage par réécriture d’une théorie des types extensionelle avec polymorphisme d’univers

    No full text
    Dedukti is a logical framework in which the user encodes the theory she wantsto use via rewriting rules. To ensure the decidability of typing, the rewriting system must be terminating.After recalling some properties of pure type systems and their extension with rewriting, a termination criterion for higher-order rewriting with dependent types is presented. It is an extension of the dependency pairs to the lambda-pi-calculus modulo rewriting. This result features two main theorems. The first one states that the well-foundedness of the call relation defined from dependency pairs implies the strong normalization of the rewriting system.The second result of this part describes decidable sufficient conditions to use the first one. This decidable version of the termination criterion is implemented in “SizeChange Tool”.The second part of this thesis is dedicated to the use of the logical framework Dedukti to encode a rich type theory. We are interested in a fragment of the logic beyond Agda which includes two widely used features: extension of conversion with the eta rule and universe polymorphism.Once again, this work includes a theoretical part, with correct encodings of both features in the lambda-pi-calculus modulo rewriting, and a prototypical translator from Agda to Dedukti.Dedukti est un cadre logique dans lequel l’utilisateur encode la théorie qu’il souhaite utiliser à l’aide de règles de réécriture. Pour garantir la décidabilité du typage, il faut s’assurer que le système de réécriture utilisé est terminant.Après avoir rappelé les propriétés des systèmes de types purs et leur extension avec de la réécriture, un critère de terminaison pour la réécriture d’ordre supérieur avec types dépendants est présenté. Il s’agit d’une extension de la notion de paires de dépendances au cas du lambda-pi-calcul modulo réécriture. Cerésultat se décompose en deux théorèmes principaux. Le premier stipule que la bonne fondaison de la relation d’appel définie à partir des paires de dépendances implique la normalisation forte du système de réécriture.Le second résultat de cette partie décrit des conditions décidables suffisantes pour pouvoir utiliser le premier théorème. Cette version décidable du critère de terminaison est implémenté dans un outil appelé “SizeChange Tool”.La seconde partie de cette thèse est consacrée à l’utilisation du cadre logiqueDedukti pour encoder une théorie des types riche. Nous nous intéressons plusparticulièrement à la traduction d’un fragment d’Agda incluant deux fonctionnalités très répandues : l’extension de la conversion avec la règle eta et le polymorphisme d’univers.Une fois encore, ce travail possède un versant théorique, avec des encodagesprouvés corrects de ces deux fonctionnalités dans le lambda-pi-calcul modulo réécriture, ainsi qu’une implémentation prototypique de traducteur entre Agda et Dedukti

    Termination of λΠ modulo rewriting using the size-change principle (work in progress)

    No full text
    International audienceThe Size-Change Termination principle was first introduced to study the termination of first-order functional programs. In this work, we show that it can also be used to study the termination of higher-order rewriting in a system of dependent types extending LF

    Gagnez sur tous les tableaux

    Get PDF
    National audienceNous vérifions automatiquement des programmes impératifs d'énumération destructures combinatoires implantées dans des tableaux satisfaisant despropriétés structurelles données. Ces programmes C sont spécifiés en ACSL etvérifiés avec la plateforme Frama-C. La vérification déductive démontreautomatiquement que tous les tableaux produits satisfont leurs propriétésstructurelles. Elle est facilitée par sa combinaison avec des analysesdynamiques, qui permettent aussi de valider d'autres propriétés des programmes,comme leur exhaustivité. Nous proposons une bibliothèque de programmes vérifiéset des patrons de programmation et de spécification facilitant leur conceptionet leur mise au point. Ces programmes trouvent une application naturelle dansle test exhaustif borné de programmes manipulant ces tableaux
    corecore