Definition field_address t gfs p :=
if (field_compatible_dec t gfs p)
then offset_val (nested_field_offset t gfs) p
else Vundef.
Definition field_address0 t gfs p :=
if (field_compatible0_dec t gfs p)
then offset_val (nested_field_offset t gfs) p
else Vundef.

Lemma nested_field_array_type_nest_pred: forall {atom_pred: type -> bool},
atom_pred Tvoid = true ->
(forall t n m a,
0 <= m ->
atom_pred (Tarray t n a) = true ->
atom_pred (Tarray t m (no_alignas_attr a)) = true) ->
forall (t: type) gfs lo hi,
lo <= hi ->
legal_nested_field0 t (ArraySubsc lo :: gfs) ->
nested_pred atom_pred t = true ->
nested_pred atom_pred (nested_field_array_type t gfs lo hi) = true.