theory Deadlock imports RefCorrectness CompoScheds begin
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma scheds_input_enabled
terjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 162 ==> act A) ⋅ nil<n apply ( efCorrectness
ply
text \‹Input actions may always be added to a schedule.›
pjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
(java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 apply ( sjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 apply (subgoal_tac "Fapauto (frule inp_is_act) prefer 2 apply (simp add: filter_act_def) defer apply (rulapply (pair ex) apply (rule_tac [2] t = "Map fst ⋅ prefer2 apply assumption apply (erule_tacdefer text java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 31
) apply (erule allE) apply (erule exE) text‹using input-enabledness› apply (simp add: input_enabled_def) apply (erule conjE)+ apply (erule_tac x = "a"in allE) apply simp apply (erule_tac x = "u"in allE) apply (erule exE) text‹instantiate execution› apply (rule_tac x = " (s, ex @@ (a, s2) ↝ nil) "in exI) apply (simp add: filter_act_def MapConc) apply (erule_tac t = "u"in lemma_2_1) apply simp apply (rule sym) apply assumption done
text‹
Deadlock freedom: component B cannot block an out or int action of component
A in every schedule.
Needs compositionality on schedule level, input-enabledness, compatibility
and distributivity of ‹is_exec_frag› over ‹@@›. ›
lemma IOA_deadlock_free: assumes"a ∈ local A" and"Finite sch" and"sch ∈ schedules (A ∥ B)" and"Filter (λx. x ∈ act A) ⋅ (sch @@ a ↝ nil) ∈ schedules A" and"compatible A B" and"input_enabled B" shows"(sch @@ a ↝ nil) ∈ schedules (A ∥ B)"
supply if_split [split del] apply (insert assms) apply (simp add: compositionality_sch locals_def) apply (rule conjI) text‹‹a ∈ act (A ∥ B)›› prefer applyapplyjava.lang.StringIndexOutOfBoundsException: Range [20, 18) out of bounds for length 36
dest: int_is_act out_is_act)
text‹‹Filter B (sch @@ [a]) ∈ schedules B›› apply (case_tac "a ∈ int A") apply (drule intA_is_not_actB) apply (assumption) (* \<longrightarrow> a \<notin> act B *) apply simp
text‹case ‹a ∉ int A›, i.e. ‹a ∈ out A›› apply (case_tac "a ∉ act B") apply simp text‹case ‹a ∈ act B›› apply simp apply (subgoal_tac "a ∈ out A") prefer2 apply blast apply (drule outAactB_is_inpB) apply assumption apply assumption apply (rule scheds_input_enabled) apply simp apply assumption+ done
end
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.8Angebot
¤
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.