Hint Rewrite @subst_stackframe_of : subst.

(* Specifications: *)
Lemma remove_localdef_temp_PROP: forall (i: ident) P Q R,
EX old: val, subst i `(old) (PROPx P (LOCALx Q (SEPx R))) |--
PROPx P (LOCALx (remove_localdef_temp i Q) (SEPx R)).
Lemma eval_id_denote_tc_initialized: forall Delta i t v,
(temp_types Delta) ! i = Some t ->
local (tc_environ Delta) && local (`and (`(eq v) (eval_id i)) `(v <> Vundef)) |-- denote_tc_initialized i t.
Lemma PQR_denote_tc_initialized: forall Delta i t v P Q R,
(temp_types Delta) ! i = Some t ->
local (tc_environ Delta) && PROPx P (LOCALx (temp i v :: Q) R) |-- denote_tc_initialized i t.
Lemma derives_remove_localdef_PQR: forall P Q R i,
PROPx P (LOCALx Q (SEPx R)) |-- PROPx P (LOCALx (remove_localdef_temp i Q) (SEPx R)).
Lemma subst_remove_localdef_PQR: forall P Q R i v,
subst i v (PROPx P (LOCALx (remove_localdef_temp i Q) (SEPx R))) |-- PROPx P (LOCALx (remove_localdef_temp i Q) (SEPx R)).