13 research outputs found

    Higher Order Implementation of Kahn Networks in Maude: Alternating Bit Protocol

    Get PDF
    We implement Kahn networks in Maude system by using behavioural theory of streams and encoding higher order function types. As an example we implement the alternating bit protocol in our framework

    Coiterative Morphisms: Interactive Equational Reasoning for Bisimulation, using Coalgebras

    Get PDF
    ter: SEN 3 Abstract: We study several techniques for interactive equational reasoning with the bisimulation equivalence. Our work is based on a modular library, formalised in Coq, that axiomatises weakly final coalgebras and bisimulation. As a theory we derive some coalgebraic schemes and an associated coinduction principle. This will help in interactive proofs by coinduction, modular derivation of congruence and co-fixed point equations and enables an extensional treatment of bisimulation. Finally we present a version of the lambda-coinduction proof principle in our framework

    An exercise in coinduction: Moessner's theorem

    Get PDF
    We present a coinductive proof of Moessner’s theorem. This theorem describes the construction of the stream (1^n,2^n,3^, ...) (for n > 0) out of the stream of natural numbers by repeatedly dropping and summing elements. Our formalisation consists of a direct translation of the operational description of Moessner’s procedure into the equivalence of - in essence - two functional programs. Our proof fully exploits the circularity that is present in Moessner’s procedure and is more elementary than existing proofs. As such, it serves as a non-trivial illustration of the relevance and power of coinduction

    Termination Casts: A Flexible Approach to Termination with General Recursion

    Full text link
    This paper proposes a type-and-effect system called Teqt, which distinguishes terminating terms and total functions from possibly diverging terms and partial functions, for a lambda calculus with general recursion and equality types. The central idea is to include a primitive type-form "Terminates t", expressing that term t is terminating; and then allow terms t to be coerced from possibly diverging to total, using a proof of Terminates t. We call such coercions termination casts, and show how to implement terminating recursion using them. For the meta-theory of the system, we describe a translation from Teqt to a logical theory of termination for general recursive, simply typed functions. Every typing judgment of Teqt is translated to a theorem expressing the appropriate termination property of the computational part of the Teqt term.Comment: In Proceedings PAR 2010, arXiv:1012.455

    Coalgebraic Reasoning in Coq: Bisimulation and the lambda-Coiteration Scheme

    No full text
    In this work we present a modular theory of the coalgebras and bisimulation in the intensional type theory implemented in Coq. On top of that we build the theory of weakly final coalgebras and develop the λ\lambda-coiteration scheme, thereby extending the class of specifications definable in Coq. We provide an instantiation of the theory for the coalgebra of streams and show how some of the productive specifications violating the guardedness condition of Coq can be formalised using our library

    Coalgebraic reasoning in Coq: bisimulation and lambda-coiteration scheme

    No full text
    In this work we present a modular theory of the coalgebras and bisimulation in the intensional type theory implemented in Coq. On top of that we build the theory of weakly final coalgebras and develop the lambda-coiteration scheme, thereby extending the class of specifications definable in Coq. We provide an instantiation of the theory for the coalgebra of streams and show how some of the productive specifications violating the guardedness condition of Coq can be formalised using our library

    Sampling, Splitting and Merging in Coinductive Stream Calculus

    No full text
    We study various operations for partitioning, projecting and merging streams of data. These operations are motivated by their use in dataflow programming and the stream processing languages. We use the framework of \emph{stream calculus} and \emph{stream circuits} for defining and proving properties of such operations using behavioural differential equations and coinduction proof principles. We study the invariance of certain well patterned classes of streams, namely rational and algebraic streams, under splitting and merging. Finally we show that stream circuits extended with gates for dyadic split and merge are expressive enough to realise some non-rational algebraic streams, thereby going beyond ordinary stream circuits

    A proof of Moessner's theorem by coinduction.

    No full text

    Coinductive Predicates as Final Coalgebras

    No full text
    We show that coinductive predicates expressing behavioural properties of infinite objects can be themselves expressed as final coalgebras in a category of relations. The well-known case of bisimulation will simply be a special case of such final predicates. We will show how some useful pointwise and mixed properties of streams can be modelled in this way
    corecore