Hint Rewrite (@subst_TT mpred Nveric) (@subst_FF mpred Nveric): subst.

(* Specifications: *)
Lemma subst_sepcon: forall i v (P Q: environ->mpred),
subst i v (P * Q) = (subst i v P * subst i v Q).
Lemma env_set_eval_id: forall id rho Delta t,
tc_environ Delta rho ->
(temp_types Delta) ! id = Some t ->
env_set rho id (eval_id id rho) = rho.
Lemma resubst: forall {A} i (v v1: val) (e: environ -> A), subst i (`v1) (subst i `(v) e) = subst i `(v) e.
Hint Rewrite @resubst : subst.
Lemma resubst_full: forall {A} i (v: environ -> val) v1 (e: environ -> A), subst i v1 (subst i v e) = subst i (subst i v1 v) e.
Lemma subst_ewand: forall i v (P Q: environ->mpred),
subst i v (ewand P Q) = ewand (subst i v P) (subst i v Q).
Lemma subst_prop {A}{NA: NatDed A}: forall i v P,
subst i v (prop P) = prop P.