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' ->
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'))).