Section Machine.
Context (ge : genv).
Definition same_except_cur (m m' : Mem.mem) :=
Mem.mem_contents m = Mem.mem_contents m' /\
max_access_at m = max_access_at m' /\
Mem.nextblock m = Mem.nextblock m'.
(* Lemma isLKCT_rewrite r : (forall sh sh' z P, r <> YES sh sh' (LK z) P /\ r <> YES sh sh' (CT z) P) <-> ~isLK r /\ ~isCT r. *)
(* Lemma isLK_rewrite r : (forall (sh : Share.t) Psh (z : Z) (P : preds), r <> YES sh Psh (LK z) P) <-> ~ isLK r. *)
(* Lemma isCT_age_to n phi loc : isCT (age_to n phi @ loc) = isCT (phi @ loc). *)

Lemma predat1 {phi loc} {R: mpred} {z sh psh} :
phi @ loc = YES sh psh (LK z 0) (SomeP rmaps.Mpred (fun _ => R)) ->
predat phi loc (approx (level phi) R).