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
Coinduction is a mathematical tool that is used pervasively in computer science: to program and reas...
We present a simple tool in Haskell, QStream, implementing the technique of coinductive counting by ...
Coinduction is a method for specifying and reasoning about infinite data types and automata with inf...
We present a coinductive proof of Moessner’s theorem. This theorem describes the construction of the...
Moessner's Theorem describes a construction of the sequence of powers (1n, 2n, 3n,…), by repeatedly ...
Moessner's theorem describes a procedure for generating a sequence of n integer sequences that lead ...
Based on the presence of a final coalgebra structure on the set of streams (infinite sequences of re...
This paper provides a construction on fibrations that gives access to the so-called later modality, ...
Induction is a well-established proof principle that is taught in most undergraduate programs in mat...
Induction is a well-established proof principle that is taught in most undergraduate programs in mat...
Moessner's theorem describes a procedure for generating a sequence of n integer sequences that lead ...
Several algorithmic variants of circular coinduction have been proposed and implemented during the l...
International audienceWe revisit coinductive proof principles from a lattice theoretic point of view...
The recently developed coinductive calculus of streams finds here a further application in enumerati...
This paper shows how to reason about streams concisely and precisely. Streams, infinite sequences of...
Coinduction is a mathematical tool that is used pervasively in computer science: to program and reas...
We present a simple tool in Haskell, QStream, implementing the technique of coinductive counting by ...
Coinduction is a method for specifying and reasoning about infinite data types and automata with inf...
We present a coinductive proof of Moessner’s theorem. This theorem describes the construction of the...
Moessner's Theorem describes a construction of the sequence of powers (1n, 2n, 3n,…), by repeatedly ...
Moessner's theorem describes a procedure for generating a sequence of n integer sequences that lead ...
Based on the presence of a final coalgebra structure on the set of streams (infinite sequences of re...
This paper provides a construction on fibrations that gives access to the so-called later modality, ...
Induction is a well-established proof principle that is taught in most undergraduate programs in mat...
Induction is a well-established proof principle that is taught in most undergraduate programs in mat...
Moessner's theorem describes a procedure for generating a sequence of n integer sequences that lead ...
Several algorithmic variants of circular coinduction have been proposed and implemented during the l...
International audienceWe revisit coinductive proof principles from a lattice theoretic point of view...
The recently developed coinductive calculus of streams finds here a further application in enumerati...
This paper shows how to reason about streams concisely and precisely. Streams, infinite sequences of...
Coinduction is a mathematical tool that is used pervasively in computer science: to program and reas...
We present a simple tool in Haskell, QStream, implementing the technique of coinductive counting by ...
Coinduction is a method for specifying and reasoning about infinite data types and automata with inf...