Require Export VST.veric.base.
Require Export VST.veric.assert_lemmas.
Local Open Scope pred.
Hint Resolve corable_funassert : core.
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_ptr_si fs (Vptr b Ptrofs.zero)).
Definition allp_fun_id_sigcc (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) &&
match fs with
mk_funspec sig cc _ _ _ _ _ => sigcc_at sig cc (b, 0)
end))).

(* 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.