Lemmas about list iterators #
This module provides lemmas about the interactions of List.iterM with IterM.step and various
collectors.
theorem
List.step_iterM
{m : Type w → Type w'}
[Monad m]
{β : Type w}
{l : List β}
:
(l.iterM m).step = match l with
| [] => pure (Std.Shrink.deflate ⟨Std.IterStep.done, ⋯⟩)
| x :: xs => pure (Std.Shrink.deflate ⟨Std.IterStep.yield (xs.iterM m) x, ⋯⟩)