Hint Extern 2 (field_compatible0 (Tarray _ _ _) (ArraySubsc _ :: nil) _) =>
(eapply field_compatible0_array_smaller1; [eassumption | omega | omega]) : field_compatible.
Hint Extern 2 (field_compatible0 (tarray _ _) (ArraySubsc _ :: nil) _) =>
(eapply field_compatible0_array_smaller1; [eassumption | omega | omega]) : field_compatible.
Arguments nested_field_array_type {cs} t gfs lo hi / .
Hint Resolve field_compatible_field_compatible0 : field_compatible.

(* Specifications: *)
Lemma field_compatible0_ArraySubsc0:
forall {cs: compspecs} t gfs p,
field_compatible0 t gfs p ->
legal_nested_field0 t (gfs SUB 0) ->
field_compatible0 t (gfs SUB 0) p.
Lemma field_compatible_Tarray_split:
forall {cs: compspecs} t i n d,
0 <= i <= n ->
(field_compatible (tarray t n) nil d <->
field_compatible (tarray t i) nil d /\
field_compatible (tarray t (n-i)) nil
(field_address0 (tarray t n) (ArraySubsc i::nil) d)).