proposition: Lemma insertC j i v u a : i != j -> insert j v (insert i u a) = insert i u (insert j v a).
proof: Proof. move=> h; apply funext => k; rewrite /insert; case: ifPn => // /eqP <-{k}. by rewrite (negbTE h). Qed.
imports: mathcomp(all_ssreflect) imonae_lib HB(structures) ihierarchy imonad_lib ifail_lib istate_lib itrace_lib imonad_transformer