Prove equivalence relations
Theorem -> Example where appropriate.
Lemmas [step_None] and [step_Some].

Two lemmas that says something about when [step] returns None or Some x.
Change the DSL syntax to avoid keyword clashes

Sometimes variables like [i] and [o] will be generated in proofs. These
clashed with the DSL keywords for input and output. I will instead use
[←] for input and [→] for output.
Make some parameters for symmetry implicit
Fix [iter_idem]