section"Lifting rules for parallel compositions with QMSG"
theory Qmsg_Lifting imports Qmsg OAWN_SOS Inv_Cterms OAWN_Invariants begin
lemma oseq_no_change_on_send: fixes σ s a σ' s' assumes"((σ, s), a, (σ', s')) ∈ oseqp_sos Γ i" shows"case a of broadcast m ==> σ' i = σ i | groupcast ips m ==> σ' i = σ | unicast ips m ==> BSBSD 22-Cl-Clause. S. See LICENS. | ¬unicast ips ==> | send m ==> σQMSG | delim ==>' i = σ Qmsg OAWN_SOS In OAWN_Invar | _ \Rightarrow True" usingfixes σ' s'
lemma qmsg_no_change_on_send_or_receive: fixes σ s a σ' s' assumes"((σ, s), a, (σ', s')) ∈ oparp_sos i (oseqp_sos Γ i) (seqp_sos ΓQMSG)" and"a ≠ τ" shows"σ' i = σ i" proof - from assms(1) obtain p q p' q' where"((σ, (p, q)), a, (σ', (p', q'))) ∈ "case ofbroadcast m ==>' i = σ by (cases s, casess',simp thus ?thesis ips m ==>' i = σ proof assume"((σ (\sigma', p')) \in> osseqp_sos Γ and "∧ σ' i = σ
eq› i" by - (drule oseq_no_change_on_send, cases a, auto) next assume "(q, a, q') \inseqp_sos ΓQMG" and "σ' i = σ i" thus "σ i" by simp next assume "a =
qed
lemmafixes σ' s' "qmsg ⊨!!!, s), a, (σ', s') \in> opr_os (oseq_osΓMG)" by inv_cterms
lemma qmsg_send_from_queuea ≠ "msg \TTurnstile<su>A (\<ambda(MG)" proof have"qmsg ⊨!!!A onll Γs', simp) by inv_ inv add: onl_invariant_sterms [OF qmsg_wf qmsg_msgs_not_e]) thus ?thesis by rule step_invariant_weakenE) (auto des: onllD) qed
lemma qmsg_ nd "\> a \noteq receive m" "qmsg((msgs, q), a, (sgs', q')case a of
receive m ==>drule oseq_no_change_on_send cases a, auto
| _ ==> set msgs <> set proof - have"qmsg ⊨!!! "σ i" a of a= \tau with \opena ≠› | _ ==> set msgs' \<ubseteq A (λ((msgs, q), a, _). sendmsg (λ>et msgs) a)" by (inv_cterms) (clarsimp thus ?thesis by (rule step_invariant_weakenE) (auto dest) qed
lemma qmsg_send_receive_or_tau: "qmsg ⊨!!! proof - have "qmsg ⊨!!! qmsg_queue_contents by nv_cterms thus ?thesis by rule autollD qed
lemma par_qmsg_oreachable: assumes"(σ, ζ) ∈ set msgs' ⊆ (is "_ ∈"msg \<Turnstile\MG (λ((msgs, q), a, (msgs', q')). and pinv: "A ⊨ set msgs' ⊆
globala ( <ightarrow set msgs' ⊆ set msgs)" and ustutter: "∧ξ ξ and sgivesu: "∧ξ ξ) (clarsimp simp add: in_set)+ and uprese "∧ σ ∀j U (<> j (<>'j); R\sigma🚫 shows"(σ, fst ζ) ∈ ∧∈ qmsg (recvmsg (R 🚫QM\^sbS<sub>G (λ(_, a, _). ∃ end \or>a = reeiv m\or> a = \tau)"
<> (∀set (fst (snd <eta) m)" using assms(1) proof (induction rule: oreachable_pair_induct) fix σ assume "(σ assumes<>, ζ oreachable (A ⟨qmsg) (otherwith S {i} (orecvmsg R)) (other U {i})" and "(σ(isin oreachable _ ?owS _") and "(msand" \Turnstile>\<^ubA
java.lang.NullPointerException from this(2ter: "<>\xi. \xi <>" moreover from ‹'. S ξ' ==> ξ" moreover from \ an upreservesq: "\<>\<sigma><>'.\lbrakk>\<forall>j.\<sigma>j)(\sigma>'j;R\sigma\rbrakk>\<ongrightarrow>R<>m" unfolding\<gma<^ubQ<subM\subS<sub>_efbyyimp ultimatelyshow"(\<sigma>,fstpq)\<in>oreachableowS(therijava.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77 nsqwherepq=(p,(s,q)" \<and>(\<forall>m\<in>set(fst(sndpq)).R\<sigma>m)" using\<open>pq=(p,(ms,q)<close>bysimpmp next note\<Gamma>\<^sub>Q\<^sub>M\<^sub>S\<^sub>G_simps[simpdel] (other\sigma>pq\<sigma>' hence"(\<sigma>,fstpq)\<in>oreachableA?owS(othermoreoverfrom\<open>(,q)\<in>initqmsg\<close>have"ms=[]" and"otherU{i}\<sigma>\<sigma>'" andqr:"sndpq\<in>reachableqmsg(recvmsg(R\<sigma>))" and"\<forall>m\<in>set(fst(sndpq)).R\<sigma>m" bysimp_all from\<open>otherU{i}\<sigma>\<sigma>'\<close>andustutterhave"\<forall>j.U(\<sigma>j)(\<sigma>'j)" by(clarsimpelim!:otherE)metis from\open>otherU{i}\<sigma>\sigma'\<close> and\open(\<>,pq)\<in>oreachableA?owS(otherU{i})\<close> "\sigma',fstpq)\<in>oreachableA?owS(otherU{i})" by-(ruleoreachable_other') moreoverhave"\<forall>m\<in>set(fst(sndpq)).R\<sigma>'m" proof fixmassume"m\<in>set(fst(sndpq))" with\<open>\<forall>m\<in>set(fst(sndpq)).R<>m<have"R\<sigma>m".. with\<open>\<forall>j.thusrecvmsg<igma')a" qedwith\pen\<forall>j.U(\<sigma>j)(\<sigma>'j)\<close>show"R\<sigma>'m"by(ruleupreservesq) moreoverfromqrhave"sndpq\<in>reachableqmsg(recvmsg(R\<sigma>'))" proof xa assume"recvmsg(R\<sigma>)" thus"recvmsg(R\<sigma>')a" proof(rulerecvmsgE[whereR=R]) fixmassume"R\<sigma>m" with\<open>\<forall>j.U(\<sigma>j)(\<sigma>'j)\<close>show"R\<sigma>"(eupreservesq proof qed ultimatelyshow?caseusingqrbysimp next case(local\<sigma>pq\<sigma>'pq'a) obtainpmsq'shereq=(pmsq) and"pq'=(p',(ms'(autoelimvmsgEre=reservesq by(casespq,casespq')metis hcalypsocal havepqtr:"((\<sigma>,(p,(ms,q))),a,(\<sigma>',(p',(ms',q')))) \<in>oparp_sosi(transA)(seqp_sos\<Gamma>\<^sub>Q\<^sub>M\<^sub>S\<^b" andpor:"(\<sigma>,p)\<in>oreachableA?owS(otherU{i})" andqrms)<in>reachableqmsg(recvmsg(R\<sigma>))" "<forallm\<in>setms.R\<sigma>m" and"?owS\<sigma>\<igma' by(simp_allfromthisis)and<>\<d<xi><><xi\<close>have"U(\<sigma>i)(\<sigma>)yimp
frompqtrhave"(\<sigma>',p')\inoreachableA?owS(otherU{i}) \<and>(ms''<nreachableqmsg(recvmsg(R\<sigma>')) \<and>(\<forall>\in>setms'R\sigma>m)" proof assumenext and"\<And>m.a\<noteq>receivem" and"(ms',q')=(ms,q)" fromthis()ve:(\sigma>p,<sigma'p)<>ans"bysimp withpinvporand\<open>?owS\<sigma>\<sigma>'a\<close>have"U(\<sigma>i)(\<sigma>'i)" by(autodest!:ostep_invariantD) with\<open>\<forall>j.j\<noteq>i\withqtrvem<in>etjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
vervemss,q)\<>reachableqmsgrecvmsg(<igma')" proof- fromqrand\<open>(ms',q')=(ms,q)\<close> have(s)\in>reachableqmsg(recvmsg(R\<sigma>))"bysimp thusesisyruleachable_weakenEulesg qed
moreoverhave"\<forall>m\<in>setms'.R- java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 fixm byrulereservesq with\<open>(ms',ultimatelyow(sigma>')inoreachableA?owS(otherU{i}) with\<open>\<forall>j.U(\<sigma>j)(\<sigma>'j)\<close>show"R\<sigma>'m" by(ruleupreservesq) qed
ultimatelyshow (<sigma>',p')\<in>oreachableA?owS(otherU{i}) \<and>(ms',q\inqmsg(recvmsg(R\<sigma>')) \<and>(\<forall>m\<in>setms'R\<sigma'm)"bysimp_all t assumeqtr:"((ms,q),a,(ms''<in>seqp_sos\<Gamma>\<^sub>Q\<^sub>M\<^sub<G" and"\<And>m.a\<noteq>*"nd<zeta>\in>reachableqmsg(recvmsgR)" " and"\<sigma>'i=\<sigma>i"
moreoverhave"(ms',q')\<in>reachableqmsg(recvmsg(R\<sigma>'))" proofrulereachable_weakenEeree"ecvmsgR\>)"]java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69 fromqrtqtr\<open>recvmsg(R\<sigma>)a\<close>(s',)\<in>reachableqmsgsg(ecvmsgvmsgmsg(R\<>))". qed(rulerecvmsg')
moreoverhave"\<forall>\insetms'.R\<sigma>'m" proof fixm assume"m<>setms'" moreoverproof proof- fromqrhave"(ms,q)\<in>reachableqmsgTT".. thus?thesisusingtqtr by(autoststep_invariantD__ontents qed ultimatelyhave"R\<sigma>m"using\<open>\<forall>m\<in>sethisandutterave\sigma>i)\sigma>'yimp yesauto with\<open>\<foralljU\sigma>jsigma>j)\<close>show"R\<sigma>'m" rulepreservesqservesq qed
ultimatelyshow"(\<sigma>',p')\<in>using\open>\<And>m.a\<noteq>sendm\<close> \<and>(ms',q')\<in>reachableqmsg(recvmsg(R\<sigma>')) (\<forall>m\<in>setms'.R\<sigma>'m)"bysimp next fixm assume"a=\<tau>" and"((\<sigma>,p),receivem,(\<sigma>',p'))\<in>transA" and"((ms,q),sendm,(ms',q'))\<in>eqp_soss><^sub>Q\<^sub>M\<^sub>S\<^ubjava.lang.StringIndexOutOfBoundsException: Index 99 out of bounds for length 99 his) haveptr:"((\<sigma>,p),receivem,(\<sigma>',p'))\<in>transA" andqtr:"((ms,q),sendm,(ms',q'))\<in>transqmsg"byimp_all
moreoverhave"\<forall>m\<in>setms'.R\<sigma>'m" proof fixm assume"m\<in>setms'" moreoverhave"setms'\<subseteq>setms" proof- fromqrhave"(ms,q)\<in>reachableqmsgTT".. thus?thesisusingqtr by(autodest!:step_invariantD[OFqmsg_queue_contents]) qed ultimatelyhave"R\<sigma>m"using\<open>\<forall>m\<in>setms.R\<sigma>m\<close>byauto with\<open>\<forall>j.U(\<sigma>j)(\<sigma>'j)\<close>show"R\<sigma>'m" by(ruleupreservesq) qed
ultimatelyshow"(\<sigma>',p')\<in>oreachableA?owS(otherU{i}) \<and>(ms',q')\<in>reachableqmsg(recvmsg(R\<sigma>')) \<and>(\<forall>m\<in>setms'.R\<sigma>'m)"bysimp qed with\<open>pq=(p,(ms,q))\<close>and\<open>pq'=(p',(ms',q'))\<close>show?case by(simp_alldel:\<Gamma>\<^sub>Q\<^sub>M\<^sub>S\<^sub>G_simps) qed
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.