9 research outputs found

    Strategies in PRholog

    Full text link
    PRholog is an experimental extension of logic programming with strategic conditional transformation rules, combining Prolog with Rholog calculus. The rules perform nondeterministic transformations on hedges. Queries may have several results that can be explored on backtracking. Strategies provide a control on rule applications in a declarative way. With strategy combinators, the user can construct more complex strategies from simpler ones. Matching with four different kinds of variables provides a flexible mechanism of selecting (sub)terms during execution. We give an overview on programming with strategies in PRholog and demonstrate how rewriting strategies can be expressed

    From nominal to higher-order rewriting and back again

    Full text link
    We present a translation function from nominal rewriting systems (NRSs) to combinatory reduction systems (CRSs), transforming closed nominal rules and ground nominal terms to CRSs rules and terms, respectively, while preserving the rewriting relation. We also provide a reduction-preserving translation in the other direction, from CRSs to NRSs, improving over a previously defined translation. These tools, together with existing translations between CRSs and other higher-order rewriting formalisms, open up the path for a transfer of results between higher-order and nominal rewriting. In particular, techniques and properties of the rewriting relation, such as termination, can be exported from one formalism to the other.Comment: 41 pages, journa

    Termination of rewrite relations on λ\lambda-terms based on Girard's notion of reducibility

    Get PDF
    In this paper, we show how to extend the notion of reducibility introduced by Girard for proving the termination of β\beta-reduction in the polymorphic λ\lambda-calculus, to prove the termination of various kinds of rewrite relations on λ\lambda-terms, including rewriting modulo some equational theory and rewriting with matching modulo β\betaη\eta, by using the notion of computability closure. This provides a powerful termination criterion for various higher-order rewriting frameworks, including Klop's Combinatory Reductions Systems with simple types and Nipkow's Higher-order Rewrite Systems

    Twenty years of rewriting logic

    Get PDF
    AbstractRewriting logic is a simple computational logic that can naturally express both concurrent computation and logical deduction with great generality. This paper provides a gentle, intuitive introduction to its main ideas, as well as a survey of the work that many researchers have carried out over the last twenty years in advancing: (i) its foundations; (ii) its semantic framework and logical framework uses; (iii) its language implementations and its formal tools; and (iv) its many applications to automated deduction, software and hardware specification and verification, security, real-time and cyber-physical systems, probabilistic systems, bioinformatics and chemical systems

    The Rewriting Calculus - Part II

    No full text
    Article dans revue scientifique avec comité de lecture.The rho-calculus integrates in a uniform and simple setting first-order rewriting, lambda-calculus and non-deterministic computations. Its abstraction mechanism is based on the rewrite rule formation and its main evaluation rule is based on matching modulo a theory T. We have seen in the first part of this work the motivations, definitions and basic properties of the rho-calculus. This second part is first devoted to the use of an extension of the rho-calculus for encoding a (conditional) rewrite relation. This extension is based on the ``first'' operator whose purpose is to detect rule application failure. It allows us to express recursively rule application and therefore to encode strategy based rewriting processes. We then use this extended calculus to give an operational semantics to ELAN programs. We conclude with an overview of ongoing and future works on rho-calculus

    The rewriting calculus - part II

    No full text
    corecore