intros. symmetry.
unfold retainer_part.
rewrite (comp_parts comp_Lsh_Rsh sh) at 1.
f_equal; auto.
unfold writable0_share in H.
apply leq_join_sub in H.  apply Share.ord_spec1 in H. auto.
Qed.

(* Specifications: *)
Lemma address_mapsto_can_store: forall jm ch v sh (wsh: writable0_share sh) b ofs v' my,
(address_mapsto ch v sh (b, Ptrofs.unsigned ofs) * exactly my)%pred (m_phi jm) ->
decode_val ch (encode_val ch v') = v' ->
exists m',
{H: Mem.store ch (m_dry jm) b (Ptrofs.unsigned ofs) v' = Some m'|
(address_mapsto ch v' sh (b, Ptrofs.unsigned ofs) * exactly my)%pred
(m_phi (store_juicy_mem _ _ _ _ _ _ H))}.