Ltac destruct_cjoin phi HH :=
  match goal with
   |   |- context [@proj1_sig rmap _ ?X] => destruct X as [phi HH]; simpl
   |  H: context [@proj1_sig rmap _ ?X] |- _ => destruct X as [phi HH]; simpl in H
  end.

Lemma store_init_data_list_lem: forall F V (ge: Genv.t F V) m b lo d m', Genv.store_init_data_list ge m b lo d = Some m' -> (* b > 0 -> *) forall w IOK IOK' P sh (wsh: writable_share sh), ((P * VALspec_range (init_data_list_size d) sh (b,lo))%pred (m_phi (initial_mem m w IOK))) -> ((P * VALspec_range (init_data_list_size d) sh (b,lo))%pred (m_phi (initial_mem m' w IOK'))).