Shades of Iteration: from Elgot to Kleene
Notions of iteration range from the arguably most general Elgot iteration to a very specific Kleene iteration. The fundamental nature of Elgot iteration has been extensively explored by Bloom and Esik in the form of iteration theories, while Kleene iteration became extremely popular as an integral part of (untyped) formalisms, such as automata theory, regular expressions and Kleene algebra. Here, we establish a formal connection between Elgot iteration and Kleene iteration in the form of Elgot monads and Kleene monads, respectively. We also introduce a novel class of while-monads, which like Kleene monads admit a relatively simple description in purely algebraic terms, and like Elgot monads cover a large diversity of models that meaningfully support while-loops, but may fail to support a Kleene-style iteration operator altogether, or else fail the Kleene algebra laws.
READ FULL TEXT