(* in between access_rec_invariant_holds and get_random_nat_invariant_holds there should be similar lemmas about almost every line that invariant holds.  *)

Lemma init_invariantholds:
forall (memSz : nat) (op : Op) (bID : nat) (dataN : option nat) (s0 : st_rand),
init_invariant s0 memSz ->
let (_, s) := runState (access op bID dataN) s0 in
init_invariant s memSz.