Ltac slurp :=
apply imp_lem0;
match goal with |-  app_pred (_ --> _)  ?st =>
repeat match goal with
| H: app_pred ?P st |- app_pred (?b --> ?c) st =>
(apply (@conjoin_hyp0 _ _ P c st H) ||
(apply (@conjoin_hyp1 _ _ P b c st H)));
clear H
end;
try (revert st; apply derives_e)
end.

Lemma True_andp_eq {A}`{ageable A}:
forall (P: Prop) (Q: pred A), P -> (!!P && Q)%pred = Q.