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 decay_rewrite m m' :
decay m m' <->
forall loc,
(~valid_block m (fst loc) ->
valid_block m' (fst loc) ->
(forall k, access_at m' loc k = Some Freeable) \/
(forall k, access_at m' loc k = None))
/\ (valid_block m (fst loc) ->
(forall k, (access_at m loc k = Some Freeable /\ access_at m' loc k = None)) \/
(forall k, access_at m loc k = access_at m' loc k)).