(************************************************  Reroot lemmas  ************************************************)

Lemma array_at_data_at':
forall sh t gfs lo hi v p,
lo <= hi ->
field_compatible0 t (ArraySubsc lo :: gfs) p ->
field_compatible0 t (ArraySubsc hi :: gfs) p ->
array_at sh t gfs lo hi v p =
data_at sh (nested_field_array_type t gfs lo hi) v
(field_address0 t (ArraySubsc lo::gfs) p).