(* End copied from semax_switch. *)

(* Specifications: *)
Lemma unfash_fash:
forall (A : Type) (agA : ageable A) (P : pred A),
unfash (fash P) |-- P.
Lemma imp_imp:
forall (A : Type) (agA : ageable A) (P Q R: pred A),
P --> (Q --> R) = P && Q --> R.
Lemma imp_allp:
forall B (A : Type) (agA : ageable A) (P: pred A) (Q: B -> pred A),
P --> allp Q  = ALL x: B, P --> Q x.
Lemma fash_prop: forall P: Prop,
fash (!! P: pred rmap) = !! P.
Lemma fash_unfash:
forall (P : pred nat),
fash (unfash P: pred rmap) = P.
Lemma prop_true_imp:
forall (P: Prop) (Q: pred rmap),
P -> !! P --> Q = Q.
Lemma corable_unfash:
forall (A : Type) (JA : Join A) (PA : Perm_alg A) (SA : Sep_alg A) (agA : ageable A)
(AgeA : Age_alg A) (P : pred nat), corable (! P).