Instance Inhabitant_share : Inhabitant share := Share.bot. (* TODO: remove this, it's already in sublist.v *)
Instance Inhabitant_mpred : Inhabitant mpred := @FF mpred Nveric. (* TODO: remove this, it's already in sublist.v *)

Lemma data_at_array_value_cohere : forall {cs : compspecs} sh1 sh2 t z a v1 v2 p, readable_share sh1 ->
type_is_by_value t = true -> type_is_volatile t = false ->
data_at sh1 (Tarray t z a) v1 p * data_at sh2 (Tarray t z a) v2 p |--
data_at sh1 (Tarray t z a) v1 p * data_at sh2 (Tarray t z a) v1 p.