Definition E_consume_external d i this tag m from P :=
let: d' := {| dstate := upd this (loc this d) (dstate d);
dsoup := consume_msg (dsoup d) i |} in
coh d ->
find i (dsoup d) =
Some {| content := {| tag := tag; tms_cont := m |};
from := from;
to := this;
active := true |} ->
~~ internal_msg tag from this ->
P d ->
P d'.

Lemma msg_specE_consume_external d i this tag m from from' to' tag' m' :
internal_msg tag' from' to' ->
E_consume_external d i this tag m from (fun d => msg_spec from' to' tag' m' (dsoup d)).