Next Obligation. intros. apply rel_expr'_hered. Defined.
Program Definition rel_lvalue {CS: compspecs}  (e: expr) (v: val) (rho: environ) : pred rmap :=
fun phi => rel_lvalue' rho phi e v.
Next Obligation. intros. apply rel_lvalue'_hered. Defined.
Definition rel_lvalue'_expr'_sch CS rho phi P P0 :=
fun H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12 H13 H14 H15 H16 H17 =>
conj (rel_expr'_sch CS rho phi P P0 H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12 H13 H14 H15 H16 H17)
(rel_lvalue'_sch CS rho phi P P0 H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12 H13 H14 H15 H16 H17).

Lemma rel_lvalue_expr_relate:
forall {CS: compspecs} ge te ve rho jm,
genv_cenv ge = cenv_cs ->
rho = construct_rho (filter_genv ge) ve te ->
(forall e v,
rel_expr e v rho (m_phi jm) ->
Clight.eval_expr ge ve te (m_dry jm) e v) /\
(forall e v,
rel_lvalue e v rho (m_phi jm) ->
match v with
| Vptr b z => Clight.eval_lvalue ge ve te (m_dry jm) e b z
| _ => False
end).