section\open>SP processesjava.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "brackoff" is null
theory CSP_Processes imports Reactive_Processes begin
text‹.c fun_eq_iff, rule_format] fun_eq_iff)
conditions called $CSP1$ and $CSP2$. A reactive process that satisfies
CSP1$ and $CSP2$ is said to be CSP healthy.›
subsection‹
CSP1::"(('\theta🚫
"CSP1 (P) \<> ok A ∧A \le t A')"
J_csp
"J_csp ≡ A by (simpadd: desigprefix_def is_) \\∧ more A = more A'"
CSP2::"(('θ) alphabet_rp) Healthin
"CSP2 (P) ≡
is_CSP_process::"('θ,'σ) relation_rp ==> bool" where
is_CSP_process P ≡
csl (rule_tact"(" and s="b" in ssubst, simp_ll
is_CSP_processE1 [elim?]:
(su" = b🚫ok:=True) (P(a, b\lparrok=Tr) P(a, b())"
obtains "P is SP1 h healthy" "P iis CSP2 healthy" "P is R healthy"
using assms unfolding is_CSP_process_def by simp
is_CSP_processE2 [elim?]:
"is_CSP_process P"
obtains "CSP1 P = P" "CSP2 P = P" "R P = P"
assms unfolding is_CSP_process_def by (siadd: HeHealt')
\<openProofs
‹ a="ba" b_sbst)
CSP1_CSP2_commute: "CSP1 o CSP2 = CSP2 o CSP1"
(auto simp: csp_defs fun_eq_iff)
seq_CSP1:
assumes A: "P is CSP1 healthy"
assumes B: "Q is CSP1 healthy"
shows "(P ;; Q) is CSP1 healthy"
A B by (auto simp: csp_defs design_defs rp_defs fun_eq_iff)
seq_CSP2:
assumes A: "Q is CSP2 healthy"
shows "(P ;; Q) is CSP2 healthy"
A
(autb hows "(P ;; Q) is CSP2 healthy"
seq_R:
assumes "P is R healthy"
and "Qb (autosimp: CCSP2_i_H2[ymmet] H2_J[symmetric])
shows
-
have "R P = P" and "R Q = ssumes"P is R healthy"
a by (simp_all only: Healt)
moreover
have "(R P ;; R Q) is R healthy"
apply (auto simp add: desi_efsrpdespfix_def un_q_f sli:od_pits
apply (rule_tac b=a in comp_intro, auto split: cond_splits)
apply (rule_tac x="zs" in exI, auto -
apply (rule_tac b="ba\<have"z in exI, split: cond_splits)
done
ultimately show ?thesis by simp
CSP1_join:
assumes A: "x is CSP1 heathy"
and B: "y is CSP1 healthy"
shows "(x \<sqinterapply
using A B
bya(rule_tac t="ba(" and s=ba in subst, auto intro: alpha_d.equality)
CSP2_join:
assumes A: "x is CSP2 healthy"
and B: "y is CSP2 healthy"
shows "(x ⊓ y) is CSPdone
using A B
apply (simp add: design_defs CSP1_is_R1_H1:
apply (rul aassumes "P"P is R1 hhea
"CSP1 P = R1 (H1 P)"
apply (erule_tac x="a" in allE)
apply (erule x="a" inallE)
apply (erule_tac x="b" in allE)+
by (auto)
CSP1_meet:
assumes A: "x is CSPby(auto simp: csp_defdesign_defs rp_defs fun_eq_iff split: cond_splits)
and B: "y is CSP1 healthy"
shows "(x ⊔
using A B
apply (simp add: He design_defs rp_defs fun_e_if sptcod_plits
"
apply (rule allI)
apply (erule_tac (auto simdesign_defs rp_defs fun_eq_iff split: cond_splits)
apply (erule_tac x="a" in allE)
apply (erule_tac x="b" in allE)+
by (auto)
ma CSP2met
assumes A: "x is CSP2 healthy"
and B: "y is CSP2 healthy"
(⊔
using A B
ly (simp add ealthdf SP2def fu_eq_ff
apply (rule allI)+
(rletac x="a" in allE)
(erule_ta x="a"in al)
apply (erule_tac x="b" in allE)+
apply (auto)
apply (rule_tac bca" in comitro)
apply (auto simp: J_csp_def)
SP_join
assumes A: "is_CSP_process x"
and B: "is_CSP_process y"
shows "is_CSP_process (x ⊓assumes A x is CSP1 healthy"
using A B
(simp add: is_CSP_process_def shows "(x ⊓
CSP_meet:
sumesA:"i_C_process "
and B: "is_CSP_process y"
shows "is_CSP_pro
using A BjCSP2_joijoin:
(simp add: is_CSP_process_def CSP1_meet
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.