fact: Definition collatz := mfix1 f (n : nat) : M (list nat) := let n := rcbv n in let rest := if n == 1 then ret nil else if is_even n then f (Nat.div2 n) else f (3 * n + 1) in s <- rest; ret (n :: s).
imports: Mtac2.Mtac2 Arith.Arith Lists.List Strings.String