(* Title: Qmsg.thy
License : BSD 2 - Clause . See LICENSE .
Author : Timothy Bourke
*)
section "Model the standard queuing model"
theory Qmsg
imports AWN_SOS_Labels AWN_Invariants
begin
text ‹ Define the queue process›
fun ΓQ M S G :: "('m list, 'm, unit, unit label) seqp_env"
where
"ΓQ M S G () = labelled () (receive(λmsg msgs. msgs @ [msg]). call(())
⊕ ⟨ msgs. msgs ≠ []⟩
(send(λmsgs. hd msgs).
([ msgs. tl msgs] call(())
⊕ receive(λmsg msgs. tl msgs @ [msg]). call(()))
⊕ receive(λmsg msgs. msgs @ [msg]). call(())))"
definition σQ M S G :: "(('m::msg) list × ('m list, 'm, unit, unit label) seqp) set"
where "σQ M S G ≡ {([], ΓQ M S G ())}"
abbreviation qmsg
:: "(('m::msg) list × ('m list, 'm, unit, unit label) seqp, 'm seq_action) automaton"
where
"qmsg ≡ ( init = σQ M S G , trans = seqp_sos ΓQ M S G ) "
declare ΓQ M S G .simps [simp del, code del]
lemmas ΓQ M S G_simps [simp, code] = ΓQ M S G .simps [simplified]
lemma σQ M S G_not_empty [simp, intro]: "σQ M S G ≠ {}"
unfolding σQ M S G_def by simp
lemma σQ M S G_exists [simp]: "∃ qmsg q. (qmsg, q) ∈ σQ M S G "
unfolding σQ M S G_def by simp
lemma qmsg_wf [simp]: "wellformed ΓQ M S G "
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 ΓQ M S G (init qmsg)"
unfolding σQ M S G_def by (rule control_withinI) (auto simp del: ΓQ M S G_simps )
lemma qmsg_simple_labels [simp]: "simple_labels ΓQ M S G "
unfolding simple_labels_def by auto
lemma qmsg_trans: "trans qmsg = seqp_sos ΓQ M S G "
by simp
lemma σQ M S G_labels [simp]: "(ξ, q) ∈ σQ M S G ==> labels ΓQ M S G q = {()-:0}"
unfolding σQ M S G_def by simp
lemma qmsg_proc_cases [dest]:
fixes p pn
shows "p ∈ ctermsl (ΓQ M S G pn) ==> p ∈ ctermsl (ΓQ M S G ())"
by simp
declare
ΓQ M S G_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
Messung V0.5 in Prozent C=87 H=97 G=91
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet am 2026-06-10)
¤
*© Formatika GbR, Deutschland