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

Lemma nested_field_ramif_store: forall sh t gfs0 gfs1 (v_reptype: reptype (nested_field_type t gfs0)) (v0_reptype: reptype (nested_field_type (nested_field_type t gfs0) gfs1)) (v_val: val) p,
field_compatible t (gfs1 ++ gfs0) p ->
JMeq v0_reptype v_val ->
exists v0_reptype',
JMeq v0_reptype' v_val /\
field_at sh t gfs0 v_reptype p |--
field_at_ sh t (gfs1 ++ gfs0) p *
(field_at sh t (gfs1 ++ gfs0) v0_reptype' p -*
field_at sh t gfs0 (upd_reptype (nested_field_type t gfs0) gfs1 v_reptype v0_reptype) p).