Tactic Notation "assert_LOCAL" constr(A) :=
apply (assert_LOCAL A).
Tactic Notation "assert_LOCAL" constr(A) "by" tactic1(t) :=
apply (assert_LOCAL A); [ now t | ].

Lemma drop_LOCAL:
forall (n: nat) Espec {cs: compspecs} Delta P Q R c Post,
@semax cs Espec Delta (PROPx P (LOCALx (delete_nth n Q) (SEPx R))) c Post ->
@semax cs Espec Delta (PROPx P (LOCALx Q (SEPx R))) c Post.