Class FineInit :=
      { init_mem : Memory.Mem.mem; (** some initial memory *)
        init_mem_wd: (** The initial memory is well-defined*)
          valid_mem init_mem;
        the_ge_wd:   (** The initial global env is well-defined*)
          ge_wd (id_ren init_mem) the_ge
      }.Class FineInit :=
      { init_mem : Memory.Mem.mem; (** some initial memory *)
        init_mem_wd: (** The initial memory is well-defined*)
          valid_mem init_mem;
        the_ge_wd:   (** The initial global env is well-defined*)
          ge_wd (id_ren init_mem) the_ge
      }.Class FineInit :=
      { init_mem : Memory.Mem.mem; (** some initial memory *)
        init_mem_wd: (** The initial memory is well-defined*)
          valid_mem init_mem;
        the_ge_wd:   (** The initial global env is well-defined*)
          ge_wd (id_ren init_mem) the_ge
      }.Class FineInit :=
      { init_mem : Memory.Mem.mem; (** some initial memory *)
        init_mem_wd: (** The initial memory is well-defined*)
          valid_mem init_mem;
        the_ge_wd:   (** The initial global env is well-defined*)
          ge_wd (id_ren init_mem) the_ge
      }.

Lemma init_tp_wd: forall pmap v args m' tp (ARGS:valid_val_list (id_ren init_mem) args), @init_mach DryHybridMachine.dryResources _ _ _ pmap init_mem tp m' v args -> tp_wd (id_ren m') tp /\ valid_mem m'.