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

Lemma lockRes_mklock_execution:
forall U tr tpi mi U' tpj mj tr' laddr rmapj
(Hres: lockRes tpi laddr = None)
(Hres': lockRes tpj laddr = Some rmapj)
(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 = Mklock /\
location evu = Some (laddr, lksize.LKSIZE_nat) /\
lockRes tp_mk laddr = Some (empty_map, empty_map).