(** or it wasn't and the operation denoted by the event implies the permission*)
(** *** Properties about permission decay and events *)

Lemma lockRes_freelock_execution:
forall U tr tpi mi U' tpj mj tr' laddr rmapi
(Hres: lockRes tpi laddr = Some rmapi)
(Hres': lockRes tpj laddr = None)
(Hexec: multi_step (U, tr, tpi) mi (U', tr ++ tr', tpj) mj),
exists tr_pre evu U'' U''' tp_pre m_pre tp_mk m_mk,
multi_step (U, tr, tpi) mi (U'', tr ++ tr_pre, tp_pre) m_pre /\
MachStep (U'', tr ++ tr_pre, tp_pre) m_pre
(U''', tr ++ tr_pre ++ [:: evu], tp_mk) m_mk /\
multi_step (U''', tr ++ tr_pre ++ [:: evu], tp_mk) m_mk
(U', tr ++ tr',tpj) mj /\
action evu = Freelock /\
location evu = Some (laddr, lksize.LKSIZE_nat) /\
exists rmap,
lockRes tp_pre laddr = Some rmap /\
forall b ofs, rmap.1 !! b ofs = None /\
rmap.2 !! b ofs = None.