Moessner’s theorem: an exercise in coinductive reasoning in Coq

Se ha publicado un artículo de razonamiento formalizado en Coq sobre coindución titulado Moessner’s theorem: an exercise in coinductive reasoning in Coq.

Sus autores son

Su resumen es

Moessner’s Theorem describes a construction of the sequence of powers (1ⁿ, 2ⁿ, 3ⁿ,…), by repeatedly dropping and summing elements from the sequence of positive natural numbers. The theorem was presented by Moessner in 1951 without a proof and later proved and generalized in several directions. More recently, a coinductive proof of the original theorem was given by Niqui and Rutten. We present a formalization of their proof in the Coq proof assistant. This formalization serves as a non-trivial illustration of the use of coinduction in Coq. In the process of formalizing the original proof we discovered that Long and Salié’s generalization of Moessner’s Theorem could also be proved using (almost) the same bisimulation.

El trabajo se presentó en el seminario del COIN (Coalgebra in the Netherlands) . Las transparencias de la presentación se encuentran aquí.

El código de las correspondientes teorías en Coq se encuentra aquí.