Definition substopt {A} (ret: option ident) (v: val) (P: environ -> A)  : environ -> A :=
   match ret with
   | Some id => subst id v P
   | None => P
   end.

Lemma smaller_temps_exists'' : forall l l1 te id i t, bind_parameter_temps l l1 (PTree.set id Vundef t)= Some te -> i <> id -> exists te', (bind_parameter_temps l l1 t = Some te').