Ltac allp_left x :=
match goal with |- ?A |-- _ => match A with context [@allp ?T ?ND ?B ?P] =>
sep_apply_in_entailment (@allp_instantiate T ND B P x)
end end.

(* these two lemmas work better with new sep_apply and sep_eapply *)
Lemma allp_instantiate': forall (B : Type) (P : B -> mpred) (x : B),
allp P |-- P x.