Local Arguments getThreadR {_} {_} {_} _ _ _.
Local Arguments getThreadC {_} {_} {_} _ _ _.
Local Arguments personal_mem : clear implicits.
Local Arguments updThread {_} {_} {_} _ _ _ _ _.
Local Arguments updThreadR {_} {_} {_} _ _ _ _.
Local Arguments updThreadC {_} {_} {_} _ _ _ _.
Local Arguments juicyRestrict : clear implicits.
Set Bullet Behavior "Strict Subproofs".
Open Scope string_scope.
(* Lemma isLK_rewrite r : (forall (sh : Share.t) (rsh : shares.readable_share sh) (z : Z) (P : preds), r <> YES sh rsh (LK z) P) <-> ~ isLK r. *)

Lemma resource_decay_lock_coherence {b phi phi' lset m} :
resource_decay b phi phi' ->
lockSet_block_bound lset b ->
(forall l p, AMap.find l lset = Some (Some p) -> level p = level phi) ->
lock_coherence lset phi m ->
lock_coherence (AMap.map (Coqlib.option_map (age_to (level phi'))) lset) phi' m.