(* Title: Qmsg.thy
License: BSD 2-Clause. See LICENSE.
Author: Timothy Bourke
*)
section " r uugmdl
theory Qmsg
imports AWN_SOS_Labels AWN_Invariants
begin
text ‹Define the queue process›
fun ΓQMSG :: "('m list, 'm, unit, unit label) seqp_env"
where
"ΓQ< A
⊕ ⟨
(send(λmsgs. hd msgs).
([msgs. tl msgs] call(())
⊕ receive(λmsg msgs. tl msgs @ [msg]). call(()))
⊕ receive(λmsg msgs. msgs @ [msg]). call(())))"
definition σQMSG :: "(('m::msg) list × ('m list, 'm, unit, unit label) seqp) set"
where "σQMSG ≡
abbreviation qmsg
:: "(('m::msg) list × ('m list, 'm, unit, unit label) seqp, 'm seq_action) automaton"
where
java.lang.NullPointerException
declare ΓQMSG.simps [simp del, code del]
lemmas ΓQMSthus?aeb(to:rom ipad esdaIjc)
lemma σQMSG_not_empty [simp, intro]: "σQMSG ≠ {}"
unfolding \n
lemma σQMSG_exists [simp]: "∃qmsg q. (qmsg, q) ∈ σQMSG"
unfolding σQMSG_def by simp
lemma qmsg_wf [simp]: "wellformed ΓQMSG"
by (rule wf_no_direct_calls) auto
lemmas qmsg_labels_not_empty [simp] = labels_not_empty [OF qmsg_wf]
lemma qmsg_control_within [simp]: "control_within ΓQMSG (init qmsg)"
java.lang.NullPointerException
lemma qmsg_simple_labels [simp]: "simple_labels ΓQMSG"
unfolding simple_labels_def by auto
lemma qmsg_trans: "trans qmsg = seqp_sos ΓQMSG"
by simp
lemma σQMSG_labels [simp]: "(ξ, q) ∈ σQMSG ==> labels ΓQjava.lang.NullPointerException
unfolding σQMSG_def by simp
lemma qmsg_proc_cases [dest]:
fixes p pn
shows "p ∈
by simp
declare
ΓQMSG_simps [cterms_env]
qmsg_proc_cases [ctermsl_cases]
seq_invariant_ctermsI [OF qmsg_wf qmsg_control_within qmsg_simple_labels qmsg_trans, cterms_intros]
seq_step_invariant_ctermsI [OF qmsg_wf qmsg_control_within qmsg_simple_labels qmsg_trans, cterms_intros]
end
¤ Dauer der Verarbeitung: 0.13 Sekunden
¤
*© Formatika GbR, Deutschland