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.

(* Specifications: *)
(* 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.
Lemma prop_sepcon2: forall {A}{ND: NatDed A}{SL: SepLog A}
P Q, Q * !! P = !! P && (TT * Q).