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".

(*Lemma mem_cohere_age_to_inv n m phi : mem_cohere' m (age_to n phi) -> mem_cohere' m phi.  Lemma mem_cohere_step c c' jm jm' Phi (X : rmap) ge : mem_cohere' (m_dry jm) Phi -> sepalg.join (m_phi jm) X Phi -> corestep (juicy_core_sem (cl_core_sem ge)) c jm c' jm' -> exists Phi', sepalg.join (m_phi jm') (age_to (level (m_phi jm')) X) Phi' /\ mem_cohere' (m_dry jm') Phi'.  (** About lock_coherence *)
Lemma lock_coherence_age_to lset Phi m n :
lock_coherence lset Phi m ->
lock_coherence (AMap.map (option_map (age_to n)) lset) Phi m.