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 method for specifying and reasoning about infinite data types and automata with inf...
Coinduction is a method for specifying and reasoning about infinite data types and automata with inf...
Programmers happily use induction to prove properties of recursive programs. To show properties of c...
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 ...
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 ...
This paper shows how to reason about streams concisely and precisely. Streams, infinite sequences of...
Based on the presence of a final coalgebra structure on the set of streams (infinite sequences of re...
Several algorithmic variants of circular coinduction have been proposed and implemented during the l...
Coinductive reasoning about infinitary structures such as streams is widely applicable. However, pra...
Contains fulltext : 159576.pdf (preprint version ) (Open Access
Coinduction is a mathematical tool that is used pervasively in computer science: to program and reas...
The paper introduces two corecursion schemes for stream-generating functions, scans and convolutions...
Coinduction is a method for specifying and reasoning about infinite data types and automata with inf...
Coinduction is a method for specifying and reasoning about infinite data types and automata with inf...
Programmers happily use induction to prove properties of recursive programs. To show properties of c...
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 ...
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 ...
This paper shows how to reason about streams concisely and precisely. Streams, infinite sequences of...
Based on the presence of a final coalgebra structure on the set of streams (infinite sequences of re...
Several algorithmic variants of circular coinduction have been proposed and implemented during the l...
Coinductive reasoning about infinitary structures such as streams is widely applicable. However, pra...
Contains fulltext : 159576.pdf (preprint version ) (Open Access
Coinduction is a mathematical tool that is used pervasively in computer science: to program and reas...
The paper introduces two corecursion schemes for stream-generating functions, scans and convolutions...
Coinduction is a method for specifying and reasoning about infinite data types and automata with inf...
Coinduction is a method for specifying and reasoning about infinite data types and automata with inf...
Programmers happily use induction to prove properties of recursive programs. To show properties of c...