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 bind_exists_te : forall l1 l2 t1 t2 te, bind_parameter_temps l1 l2 t1 = Some te -> exists te2, bind_parameter_temps l1 l2 t2 = Some te2.