A proof of Moessner’s theorem by coinduction

Milad Niqui, Jan J. M. M. Rutten · LISP and Symbolic Computation · 2011

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.

Read the paper · More papers on PaperTik