28,428 research outputs found

    GAM: An abstract machine for GCLA

    Get PDF
    GCLA is a new programming language, which increases expressiveness compared with traditional logic programming languages and functional programming languages. The basis for the language is a generalization of the concept inductive definitions, called partial inductive definitions. The program defines a logic, which is used to make inferences to prove if a query holds or not. This report first presents a short introduction to these ideas. Then, an abstract machine, called GAM, for GCLA is presented; the instructions as well as an introduction to the compiling schema is given together with some examples. The main idea is to extend the Warren Abstract Machine (WAM), which is an abstract machine for the language Prolog

    A Definitional approach to the combination of functional and relational programming

    Get PDF
    We show how the programming language GCLA can be used to naturally express both relational and functional programs in an integrated framework. We give a short introduction to GCLA, and to the theory of partial inductive definitions on which GCLA is based. GCLA is best regarded as a logic programming language, but instead of saying that the query follows from the program in some a priori given logic, we say that the program defines the logic in which the query is proved. We then demonstrate how to implement both relational and functional programs as well as a combination of them in GCLA

    Sequent Calculus and Equational Programming

    Full text link
    Proof assistants and programming languages based on type theories usually come in two flavours: one is based on the standard natural deduction presentation of type theory and involves eliminators, while the other provides a syntax in equational style. We show here that the equational approach corresponds to the use of a focused presentation of a type theory expressed as a sequent calculus. A typed functional language is presented, based on a sequent calculus, that we relate to the syntax and internal language of Agda. In particular, we discuss the use of patterns and case splittings, as well as rules implementing inductive reasoning and dependent products and sums.Comment: In Proceedings LFMTP 2015, arXiv:1507.0759

    An Open Challenge Problem Repository for Systems Supporting Binders

    Get PDF
    A variety of logical frameworks support the use of higher-order abstract syntax in representing formal systems; however, each system has its own set of benchmarks. Even worse, general proof assistants that provide special libraries for dealing with binders offer a very limited evaluation of such libraries, and the examples given often do not exercise and stress-test key aspects that arise in the presence of binders. In this paper we design an open repository ORBI (Open challenge problem Repository for systems supporting reasoning with BInders). We believe the field of reasoning about languages with binders has matured, and a common set of benchmarks provides an important basis for evaluation and qualitative comparison of different systems and libraries that support binders, and it will help to advance the field.Comment: In Proceedings LFMTP 2015, arXiv:1507.0759
    • …
    corecore