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 derives_subp {A} `{agA : ageable A} :
forall (P Q: pred A) (st: nat), (P |-- Q) -> (P >=> Q) st.