A proof of Moessner’s theorem by coinduction
We present a coinductive proof of Moessner’s theorem. This theorem describes the construction of the stream (1 n ,2 n ,3 n ,…) (for n≥1) out of the stream of positive 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 implicitly present in Moessner’s procedure, and it is more elementary than existing proofs. As such, it serves as a non-trivial illustration of the relevance and power of coinduction.
- A proof of Moessner’s theorem by coinduction
- Open Access
- Available under Open Access This content is freely available online to anyone, anywhere at any time.
Higher-Order and Symbolic Computation
Volume 24, Issue 3 , pp 191-206
- Cover Date
- Print ISSN
- Online ISSN
- Springer US
- Additional Links
- Stream bisimulation
- Stream differential equation
- Stream calculus
- Moessner’s theorem