Section CENV_SUB.
intros.
rewrite <- (@eval_expr_cenv_sub_eq _ _ CSUB rho e); auto; congruence.
Qed.
intros.
rewrite <- (@eval_expr_cenv_sub_eq _ _ CSUB rho e); auto; congruence.
Qed.
intros.
rewrite <- (@eval_expr_cenv_sub_eq _ _ CSUB rho e); auto; congruence.
Qed.
intros.
rewrite <- (@eval_expr_cenv_sub_eq _ _ CSUB rho e); auto; congruence.
Qed.

Lemma denote_tc_nosignedover_eval_expr_cenv_sub {CS CS'} (CSUB : cenv_sub (@cenv_cs CS) (@cenv_cs CS')) rho e1 e2 w (z:Z -> Z -> Z)
(E: @app_pred rmap ag_rmap
(@liftx (Tarrow val (Tarrow val (LiftEnviron mpred)))
(denote_tc_nosignedover z) (@eval_expr CS e1)
(@eval_expr CS e2) rho) w):
@app_pred rmap ag_rmap
(@liftx (Tarrow val (Tarrow val (LiftEnviron mpred)))
(denote_tc_nosignedover z) (@eval_expr CS' e1)
(@eval_expr CS' e2) rho) w.