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
      }.

(* Specifications: *)
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'.
Lemma strong_tsim_refl: forall pmap tp m' i (cnti: containsThread tp i) (Hcomp: mem_compatible tp m') (HcompF: mem_compatible tp (@diluteMem FineDilMem m')) (ARGS:valid_val_list (id_ren init_mem) arg), @init_mach DryHybridMachine.dryResources _ _ _ pmap init_mem tp m' f arg -> SimDefs.strong_tsim (id_ren m') cnti cnti Hcomp HcompF.
Lemma setMaxPerm_inv: forall m, SimDefs.max_inv (@diluteMem FineDilMem m).