Definition gupd_reptype_array_is_pair: forall t n a i t0,
0 <= i < n ->
sigT (fun F => sigT (fun G =>
forall v v0,
F (gupd_reptype_array t n a i t0 v v0) =
(proj_except_reptype_array t n a i v, v0) /\
gupd_reptype_array t n a i t0 v v0 =
G (proj_except_reptype_array t n a i v, v0)
)).

Lemma gupd_reptype_is_gupd_reptye1_gupd_reptype: forall t gf gfs t0 v v0,
legal_nested_field t (gf :: gfs) ->
JMeq (gupd_reptype t (gf :: gfs) t0 v v0)
(gupd_reptype t gfs _ v
(gupd_reptype _ (gf :: nil) _ (proj_reptype t gfs v) v0)).