792 research outputs found

    TRX: A Formally Verified Parser Interpreter

    Full text link
    Parsing is an important problem in computer science and yet surprisingly little attention has been devoted to its formal verification. In this paper, we present TRX: a parser interpreter formally developed in the proof assistant Coq, capable of producing formally correct parsers. We are using parsing expression grammars (PEGs), a formalism essentially representing recursive descent parsing, which we consider an attractive alternative to context-free grammars (CFGs). From this formalization we can extract a parser for an arbitrary PEG grammar with the warranty of total correctness, i.e., the resulting parser is terminating and correct with respect to its grammar and the semantics of PEGs; both properties formally proven in Coq.Comment: 26 pages, LMC

    CoLoR: a Coq library on well-founded rewrite relations and its application to the automated verification of termination certificates

    Get PDF
    Termination is an important property of programs; notably required for programs formulated in proof assistants. It is a very active subject of research in the Turing-complete formalism of term rewriting systems, where many methods and tools have been developed over the years to address this problem. Ensuring reliability of those tools is therefore an important issue. In this paper we present a library formalizing important results of the theory of well-founded (rewrite) relations in the proof assistant Coq. We also present its application to the automated verification of termination certificates, as produced by termination tools

    Foundational nonuniform (co)datatypes for higher-order logic

    Get PDF
    Nonuniform (or “nested” or “heterogeneous”) datatypes are recursively defined types in which the type arguments vary recursively. They arise in the implementation of finger trees and other efficient functional data structures. We show how to reduce a large class of nonuniform datatypes and codatatypes to uniform types in higher-order logic. We programmed this reduction in the Isabelle/HOL proof assistant, thereby enriching its specification language. Moreover, we derive (co)recusion and (co)induction principles based on a weak variant of parametricity

    Foundational nonuniform (co)datatypes for higher-order logic

    Get PDF
    Nonuniform (or “nested” or “heterogeneous”) datatypes are recursively defined types in which the type arguments vary recursively. They arise in the implementation of finger trees and other efficient functional data structures. We show how to reduce a large class of nonuniform datatypes and codatatypes to uniform types in higher-order logic. We programmed this reduction in the Isabelle/HOL proof assistant, thereby enriching its specification language. Moreover, we derive (co)recusion and (co)induction principles based on a weak variant of parametricity

    Univalence for free

    Get PDF
    We present an internalization of the 2-groupoid interpretation of the calculus of construction that allows to realize the univalence axiom, proof irrelevance and reasoning modulo. As an example, we show that in our setting, the type of Church integers is equal to the inductive type of natural numbers

    Object grasping and manipulation in capuchin monkeys (genera Cebus and Sapajus)

    Get PDF
    The abilities to perform skilled hand movements and to manipulate objects dexterously are landmarks in the evolution of primates. The study of how primates use their hands to grasp and manipulate objects in accordance with their needs sheds light on how these species are physically and mentally equipped to deal with the problems they encounter in their daily life. We report data on capuchin monkeys, highly manipulative platyrrhine species that usually spend a great deal of time in active manipulation to search for food and to prepare it for ingestion. Our aim is to provide an overview of current knowledge on the ability of capuchins to grasp and manipulate objects, with a special focus on how these species express their cognitive potential through manual behaviour. Data on the ability of capuchins to move their hands and on the neural correlates sustaining their actions are reported, as are findings on the manipulative ability of capuchins to anticipate future actions and to relate objects to other objects and substrates. The manual behaviour of capuchins is considered in different domains, such as motor planning, extractive foraging and tool use, in both captive and natural settings. Anatomofunctional and behavioural similarities to and differences from other haplorrhine species regarding manual dexterity are also discussed
    • …
    corecore