Hint Resolve field_compatible0_ArraySubsc0 : field_compatible.
Hint Extern 2 (legal_nested_field0 _ _) =>
(apply compute_legal_nested_field0_spec'; repeat constructor; omega) : field_compatible.
Hint Extern 2 (field_compatible0 _ _ (offset_val _ _)) =>
(apply field_compatible0_nested_field_array; auto with field_compatible).

Lemma split2_data_at_Tarray {cs: compspecs} sh t n n1 (v v' v1 v2: list (reptype t)) p:
0 <= n1 <= n ->
n <= Zlength v' ->
v = (sublist 0 n v') ->
v1 = (sublist 0 n1 v') ->
v2 = (sublist n1 n v') ->
data_at sh (Tarray t n noattr) v p =
data_at sh (Tarray t n1 noattr) v1 p *
data_at sh (Tarray t (n - n1) noattr) v2 (field_address0 (Tarray t n noattr) (ArraySubsc n1::nil) p).