Print mkState.
Print put.

Lemma runStateGetPut: forall leafIdx lIDs lvl (init_s : st_rand)
(f: nat -> list nat -> nat -> st_rand -> st_rand),
runState (let* s := get in
let s' := (f leafIdx lIDs lvl s) in
put s') init_s =
runState (put (f leafIdx lIDs lvl init_s)) init_s.