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 proj_except_reptype_is_proj_except_reptye1_gupd_reptype: forall t gf gfs v,
legal_nested_field t (gf :: gfs) ->
JMeq (proj_except_reptype t gf gfs v)
(gupd_reptype t gfs _ v
(proj_except_reptype _ gf nil (proj_reptype t gfs v))).