Inductive valid_genv {F V:Type} (ge:Genv.t F V) (m:mem) : Type :=
  mk_valid_genv :
    (forall b, isGlobalBlock ge b=true -> val_valid (Vptr b Ptrofs.zero) m) ->
    (forall b f, Genv.find_funct_ptr ge b = Some f -> val_valid (Vptr b Ptrofs.zero) m) ->
    valid_genv ge m.Inductive valid_genv {F V:Type} (ge:Genv.t F V) (m:mem) : Type :=
  mk_valid_genv :
    (forall b, isGlobalBlock ge b=true -> val_valid (Vptr b Ptrofs.zero) m) ->
    (forall b f, Genv.find_funct_ptr ge b = Some f -> val_valid (Vptr b Ptrofs.zero) m) ->
    valid_genv ge m.

Lemma mem_wd_storebytes: forall m b ofs bytes m' (WDm: mem_wd m) (ST: Mem.storebytes m b ofs bytes = Some m') (BytesValid: forall v, In v bytes -> memval_inject (Mem.flat_inj (Mem.nextblock m)) v v), mem_wd m'.