Ltac ensure_normal_ret_assert :=
 match goal with
 | |- semax _ _ _ (normal_ret_assert _) => idtac
 | |- semax _ _ _ _ => apply sequential
 end.Ltac ensure_open_normal_ret_assert :=
 try simple apply sequential';
 match goal with
 | |- semax _ _ _ (normal_ret_assert ?X) => is_evar X
 end.Definition This_is_a_warning := tt.Inductive Warning: unit -> unit -> Prop :=
    ack : forall s s', Warning s s'.Ltac ack := apply ack.Definition IGNORE_THIS_WARNING_USING_THE_ack_TACTIC_IF_YOU_WISH := tt.Ltac assert_ P :=
  let H := fresh in assert (H: P); [ | clear H].Ltac warn s :=
   assert_ (Warning s
               IGNORE_THIS_WARNING_USING_THE_ack_TACTIC_IF_YOU_WISH).

(* Specifications: *)
Lemma subst_make_args1: forall i e j v, subst i e (make_args (j::nil) (v::nil)) = make_args (j::nil) (v::nil).