4 research outputs found

    Imperative LF Meta-Programming

    Get PDF
    AbstractLogical frameworks have enjoyed wide adoption as meta-languages for describing deductive systems. While the techniques for representing object languages in logical frameworks are relatively well understood, languages and techniques for meta-programming with them are much less so. This paper presents work in progress on a programming language called Rogue-Sigma-Pi (RSP), in which general programs can be written for soundly manipulating objects represented in the Edinburgh Logical Framework (LF). The manipulation is sound in the sense that, in the absence of runtime errors, any putative LF object produced by a well-typed RSP program is guaranteed to type check in LF. An important contribution is an approach for soundly combining imperative features with higher-order abstract syntax. The focus of the paper is on demonstrating RSP through representative LF meta-programs

    Abella: A System for Reasoning about Relational Specifications

    Get PDF
    International audienceThe Abella interactive theorem prover is based on an intuitionistic logic that allows for inductive and co-inductive reasoning over relations. Abella supports the λ-tree approach to treating syntax containing binders: it allows simply typed λ-terms to be used to represent such syntax and it provides higher-order (pattern) unification, the ∇ quantifier, and nominal constants for reasoning about these representations. As such, it is a suitable vehicle for formalizing the meta-theory of formal systems such as logics and programming languages. This tutorial exposes Abella incrementally, starting with its capabilities at a first-order logic level and gradually presenting more sophisticated features, ending with the support it offers to the two-level logic approach to meta-theoretic reasoning. Along the way, we show how Abella can be used prove theorems involving natural numbers, lists, and automata, as well as involving typed and untyped λ-calculi and the π-calculus

    Code incorporant un modèle certifié

    Get PDF
    L'évolution et le succès qu'a connu Internet les dernières années a profondément marqué le domaine du génie logiciel et plus particulièrement des aspects tels que la conception, l'implémentation et l'exploitation de systèmes distribués. Cette ouverture qu'offre la toile aux systèmes brave les limites architecturales et géographiques pour permettre une interconnexion permanente des utilisateurs. Cependant, ce flux de communication et de code mobile comporte des risques de sécurité qui vont à l'encontre des politiques des entreprises concernées par ces échanges. Étant données la multitude et la diversité des intervenants, des mesures préventives s'imposent pour remédier à cette faille sécuritaire. Ce mémoire s'inscrit dans le cadre d'une contribution à cet effort, par la voie de la certification. En effet, le potentiel de l'approche proposée émerge de la synthèse des techniques fondamentales de ce domaine, qui sont le code incorporant une preuve (PCC), le langage assembleur typé (TAL) et le code incorporant un modèle (MCC). Toujours dans l'optique de renforcer la relation de confiance entre le producteur et le consommateur, et au-delà de la vérification du respect du code envers une politique de sécurité, notre projet qui s'intitule ±code incorporant un modèle certifié¿ (CMCC) couvre en plus des aspects pratiques jusque là souvent délaissés par les concepteurs
    corecore