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).