Local Open Scope logic.
Section NESTED_RAMIF.
Context {cs: compspecs}.

(* This lemma is mainly dealing with all JMeq subtle issues and combine 3 ramif lemmas together. *)
Lemma gfield_ramif: forall sh t gfs gf v v0 p,
JMeq (proj_gfield_reptype (nested_field_type t gfs) gf v) v0 ->
field_compatible t (gf :: gfs) p ->
field_at sh t gfs v p |-- field_at sh t (gf :: gfs) v0 p *
(ALL v0': _,
(field_at sh t (gf :: gfs) v0' p -*
field_at sh t gfs
(upd_gfield_reptype (nested_field_type t gfs) gf v
(eq_rect_r reptype v0' (eq_sym (nested_field_type_ind t _))))
p)).