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)  Delta P Q R Post,
ENTAIL Delta, PROPx P (LOCALx (delete_nth n Q) (SEPx R)) |-- Post ->
ENTAIL Delta, PROPx P (LOCALx Q (SEPx R)) |-- Post.