751 research outputs found

    Relating Nominal and Higher-order Abstract Syntax Specifications

    Full text link
    Nominal abstract syntax and higher-order abstract syntax provide a means for describing binding structure which is higher-level than traditional techniques. These approaches have spawned two different communities which have developed along similar lines but with subtle differences that make them difficult to relate. The nominal abstract syntax community has devices like names, freshness, name-abstractions with variable capture, and the new-quantifier, whereas the higher-order abstract syntax community has devices like lambda-binders, lambda-conversion, raising, and the nabla-quantifier. This paper aims to unify these communities and provide a concrete correspondence between their different devices. In particular, we develop a semantics-preserving translation from alpha-Prolog, a nominal abstract syntax based logic programming language, to G-, a higher-order abstract syntax based logic programming language. We also discuss higher-order judgments, a common and powerful tool for specifications with higher-order abstract syntax, and we show how these can be incorporated into G-. This establishes G- as a language with the power of higher-order abstract syntax, the fine-grained variable control of nominal specifications, and the desirable properties of higher-order judgments.Comment: To appear in PPDP 201

    Towards a Formalization of pi-calculus Processes in Higher Order Abstract Syntax

    Get PDF
    Higher order abstract syntax is a natural way to formalize programming languages with binders, like the pi-calculus, because alpha-conversion and beta-reduction are delegated to the meta level of the provers, making tedious substitutions superfluous. However, such formalizations usually lack induction principles, and often give rise to exotic terms. Induction is necessary in syntax analysis, and certain important syntactic properties might be invalid in the presence of exotic terms. The paper introduces well formedness predicates for the pi-calculus with which exotic terms are excluded and, simultaneously, induction principles are obtained. The principles are then used in formal proofs of vital syntactic properties, mechanized in Isabelle/HOL.La syntaxe abstraite d'ordre supérieur est une technique pour la formalisation de langages comportant des constructions liantes tels que le pi-calcul. Grâce à cette technique, l'utilisateur n'a pas à gérer explicitement une notion de substitution, l'alpha-conversion et la béta-réduction faisant intervenir les variables du niveau meta; Cependant, dans une telle approche, l'on ne dispose pas de principe d'induction de manière naturelle, et de plus le langage tel qu'il est formalisé peut englober des termes considérés comme exotiques; Dans ce travail nous définissons des prédicats de bonne formation pour le pi-calcul permettant d’éliminer les termes exotiques et fournissant des principes d'induction? Ceci rend possible la preuve de propriétés syntaxiques essentielles pour le pi-calcul., que nous formalisons dans le système Isabelle/HO

    Syntax for free: representing syntax with binding using parametricity

    Get PDF
    We show that, in a parametric model of polymorphism, the type ∀ α. ((α → α) → α) → (α → α → α) → α is isomorphic to closed de Bruijn terms. That is, the type of closed higher-order abstract syntax terms is isomorphic to a concrete representation. To demonstrate the proof we have constructed a model of parametric polymorphism inside the Coq proof assistant. The proof of the theorem requires parametricity over Kripke relations. We also investigate some variants of this representation
    • …
    corecore