Hint Resolve corable_funassert.
Definition allp_fun_id (Delta : tycontext) (rho : environ): pred rmap :=
(ALL id : ident ,
(ALL fs : funspec ,
!! ((glob_specs Delta) ! id = Some fs) -->
(EX b : block, !! (Map.get (ge_of rho) id = Some b) && func_at fs (b, 0)))).

(* Specifications: *)
Lemma corable_allp_fun_id: forall Delta rho,
corable (allp_fun_id Delta rho).
Lemma allp_fun_id_sub: forall Delta Delta' rho,
tycontext_sub Delta Delta' ->
allp_fun_id Delta' rho |-- allp_fun_id Delta rho.
Lemma funassert_allp_fun_id_sub: forall Delta Delta' rho,
tycontext_sub Delta Delta' ->
funassert Delta' rho |-- allp_fun_id Delta rho.
(* Lemma corable_jam: forall {B} {S': B -> Prop} (S: forall l, {S' l}+{~ S' l}) (P Q: B -> pred rmap), (forall loc, corable (P loc)) -> (forall loc, corable (Q loc)) -> forall b, corable (jam S P Q b). *)
Lemma prop_derives {A}{H: ageable A}:
forall (P Q: Prop), (P -> Q) -> prop P |-- prop Q.