Summa Summarum: Moessner's Theorem without Dynamic Programming

Olivier Danvy
DOI: https://doi.org/10.4204/EPTCS.413.5
2024-12-04
Abstract:Seventy years on, Moessner's theorem and Moessner's process -- i.e., the additive computation of integral powers -- continue to fascinate. They have given rise to a variety of elegant proofs, to an implementation in hardware, to generalizations, and now even to a popular video, "The Moessner Miracle.'' The existence of this video, and even more its title, indicate that while the "what'' of Moessner's process is understood, its "how'' and even more its "why'' are still elusive. And indeed all the proofs of Moessner's theorem involve more complicated concepts than both the theorem and the process. This article identifies that Moessner's process implements an additive function with dynamic programming. A version of this implementation without dynamic programming (1) gives rise to a simpler statement of Moessner's theorem and (2) can be abstracted and then instantiated into related additive computations. The simpler statement also suggests a simpler and more efficient implementation to compute integral powers as well as simple additive functions to compute, e.g., Factorial numbers. It also reveals the source of -- to quote John Conway and Richard Guy -- Moessner's magic.
Discrete Mathematics,Logic in Computer Science,Programming Languages,Symbolic Computation
What problem does this paper attempt to address?
The problem that this paper attempts to solve is to reveal the essence of Moessner's theorem without relying on dynamic programming. Specifically, by removing the dynamic - programming infrastructure in the Moessner process, the author re - examines and simplifies the statement of Moessner's theorem and its proof. The following are the core issues of the paper: 1. **Understanding the essence of the Moessner process**: Moessner's theorem describes a method for calculating integer powers, that is, generating a target sequence from an initial sequence through a series of filtering and prefix - sum operations. Although there are multiple proof methods, these proofs often involve complex concepts. This paper aims to make the statement of Moessner's theorem more concise and clear by removing dynamic programming. 2. **Simplifying the statement of Moessner's theorem**: The author proposes a version of the Moessner process without using dynamic programming, which not only simplifies the statement of the theorem but also provides a basis for further abstracting and instantiating other addition calculations. For example, calculating factorial numbers, binomial coefficients, Catalan numbers, etc. 3. **Improving computational efficiency**: The simplified Moessner process is not only easier to understand theoretically but also more efficient in practical applications. For example, it can calculate integer powers and other simple addition functions more effectively. 4. **Revealing the "magic" of the Moessner process**: By removing dynamic programming, the author reveals the mathematical mechanism behind the Moessner process and explains why this process can calculate complex mathematical objects in such a simple way. ### Main contributions of the paper - **Simplifying the statement of Moessner's theorem**: By removing dynamic programming, the author provides a more concise statement of Moessner's theorem. - **New corollaries**: The article proposes several new corollaries, including calculation formulas for binomial coefficients, Catalan numbers, Fibonacci numbers, and Euler (zigzag) numbers. - **Efficient implementation**: The simplified Moessner process can calculate integer powers and other addition functions more efficiently. - **Combination of theory and practice**: The article not only simplifies Moessner's theorem theoretically but also provides a more efficient implementation method for practical applications. ### Formula display In order to better understand Moessner's theorem, the following are some key formulas mentioned in the article: 1. **Simplified form of Moessner's theorem**: \[ \forall x, n\in\mathbb{N}, \quad \sum_{i_1 = 0}^{\left\lfloor\frac{2\cdot i_1}{1}\right\rfloor}\sum_{i_2 = 0}^{\left\lfloor\frac{3\cdot i_2}{2}\right\rfloor}\cdots\sum_{i_n = 0}^{\left\lfloor\frac{n\cdot i_{n - 1}}{n - 1}\right\rfloor}1=(x + 1)^n \] 2. **Calculation of binomial coefficients**: \[ \sum_{i_1 = 0}^{x}\sum_{i_2 = 0}^{i_1}\sum_{i_3 = 0}^{i_2}\cdots\sum_{i_n = 0}^{i_{n - 1}}1=\binom{x + n}{n} \] 3. **Calculation of Catalan numbers**: \[ \sum_{i_1 = 0}^{0}\sum_{i_2 = 0}^{i_1 + 1}\sum_{i_3 = 0}^{i_2 + 1}\cdots\sum_{i_n = 0}^{i_{n - 1}+ 1}1 = C_n=\frac{1}{n + 1}\binom{2n}{n} \] 4. **Calculation of Fibonacci numbers**: \[ \sum_{i_1 = 0}^{0}\sum_{i_2 = 0}^{1 - i_1}\sum_{i_3 = 0}^{1 - i_2}\cdots