Program Definition unfash {A} `{agA: ageable A} (P: pred nat) : pred A :=
fun x => P (level x).
Next Obligation.
apply age_level in H.
rewrite H in H0.
eapply pred_hereditary; eauto. unfold age;  simpl. auto.
Qed.
Notation "'!' e" := (unfash e) (at level 30, right associativity): pred.

Lemma subp_derives {A} `{agA : ageable A} :
forall (P P' Q Q': pred A),
P' |-- P ->
Q |-- Q' ->
(P >=> Q) |-- (P' >=> Q').