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

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