40 research outputs found

    Guided Unfoldings for Finding Loops in Standard Term Rewriting

    Full text link
    In this paper, we reconsider the unfolding-based technique that we have introduced previously for detecting loops in standard term rewriting. We improve it by guiding the unfolding process, using distinguished positions in the rewrite rules. This results in a depth-first computation of the unfoldings, whereas the original technique was breadth-first. We have implemented this new approach in our tool NTI and compared it to the previous one on a bunch of rewrite systems. The results we get are promising (better times, more successful proofs).Comment: Pre-proceedings paper presented at the 28th International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2018), Frankfurt am Main, Germany, 4-6 September 2018 (arXiv:1808.03326

    How to Specify It!: A Guide to Writing Properties of Pure Functions

    Get PDF
    Property-based testing tools test software against a\ua0specification, rather than a set of examples. This tutorial paper presents five generic approaches to writing such specifications (for purely functional code). We discuss the costs, benefits, and bug-finding power of each approach, with reference to a simple example with eight buggy variants. The lessons learned should help the reader to develop effective property-based tests in the future

    Unification modulo Lists with Reverse, Relation with Certain Word Equations

    Get PDF
    International audienceDecision procedures for various list theories have been investigated in the literature with applications to automated verification. Here we show that the unifiability problem for some list theories with a \emph{reverse} operator is NP-complete. We also give a unifiability algorithm for the case where the theories are extended with a \emph{length} operator on lists

    A Semantics for a Larch/Modula-3 Interface Language

    No full text

    Semantic Analysis of Larch Interface Specifications

    No full text

    Introduction History and Overview

    No full text

    Preliminary Design of Larch/C++

    Get PDF
    We describe the problems encountered in the design of Larch/C++, especially its object-oriented features. We discuss a range of possible solutions to these problems, and give the rationale for our particular solutions. We also present examples of Larch/C++ specifications and discuss differences from Larch/C

    A new Front-End for the Larch Prover

    No full text

    Developing a new language to construct algebraic hierarchies for Event-B

    No full text
    This paper proposes a new extension to the Event-B modelling method to facilitate the building of hierarchical mathematical libraries to ease the formal modelling of many systems. The challenges are to facilitate building mathematical theories, be compatible with the current method and tools, and to be extensible by users within the Rodin Platform supporting Event-B.Our contribution is a new language, called B#, which includes the additional features of type classes and sub-typing. The B# language compiles to the current language used by the Rodin's Theory Plug-in, which ensures consistency, and also gives compatibility with the current Rodin tools. We demonstrate the advantages of the new language by comparative examples with the existing Theory Plug-in language.<br/
    corecore