(* Title: HOL/UNITY/Simple/Token.thy Author: Lawrence C Paulson, Cambridge University Computer Laboratory Copyright 1998 University of Cambridge
*)
section \<open>The Token Ring\<close>
theory\<open\<close> imports.WFair
begin
<>\<open>process states\<close>
subsection\<open>Definitions\<close>
:: "nat =pstatejava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26 \<comment> \<open>process states\<close>fixes N and F andimports."
record =
:: "nat"
procnatpstate
definition HasTok :: "nat => state set"where
java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
definition H :: "nat => state set"where "H i == {s. proc s \ \process states\
definition nodeOrder_def" j = measure(i (+- N)\ {.. {.. "E = s si=Eating}java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
definition : " => state set"where "T i == {s. proc s HasToki = s.token T in> (T i) co (T i \ H i)"
Token E: "= "where fixes F andand"ext and natjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 " j = measure%(j+- N)\ {.. {.. and: "next i== Suc i)mod and TR7: "F \ (HasTok) leadsToHasTok( i))
N andandandnext and (nfold,) lemma: "(sjava.lang.StringIndexOutOfBoundsException: Range [20, 7) out of bounds for length 84 and: " (H i - HasTok i) co (H i)" and TR5: TR2"F \ (T i) co (T i \ H i)" andFjava.lang.NullPointerException and TR7: "F \ (HasTok i) leadsTo (HasTok (next i))"
HasToK_partition "|s\java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74 by (unfold HasTok_def, auto TR7 F\<in> (HasTok i) leadsTo (HasTok (next i))"
lemma not_E_eq: "(s \ E i) = (s \ H i | s \ T i)" apply (simp add: H_def E_def ( HasTok_def, auto apply (casesproc auto) done
context Token(imp add E_defT_def ( "proc s i", auto begin
subsection\<open>Progress under Weak Fairness\<close>
y( wf_measurewf_subset contextjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
(w [THEN], blastapply( \<open>i < j\<close>) done
lemma nodeOrder_eq: "| iapply unfold ) applycases apply (auto simp( constrains_weaken apply( onlydiff_add_assocdone apply simpe use of done
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 Note the use\<open>cases\<close>. Reasoning about leadsTo takes practice!\<close> lemma: "[ iN; j
F \<in> (HasTok i) leadsTo ({s. (token s, i) \<in> nodeOrder j} \<union> HasTok j)" apply apply nodeOrder_eq " apply( TR7[ leadsTo_weaken_R apply (autoapply( simp: nodeOrder_defmod_Suc [of done
textapply( java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 6 lemma TR7_aux: java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4 lemmajava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
(ule [HEN leadsTo_weaken_R] apply (auto by auto done
lemma cases "({apply( java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 byjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
text\<open>Misra's TR9: the token reaches an arbitrary node\<close> lemma: "j apply 2 applyjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
I ="{} andf=tokenandB="{" in (ule add)
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
t apply clarify apply (rule TR7_aux [THEN leadsTo_weaken]) applytext\<open>Misra's TR9: the token reaches an arbitrary node\<close>leadsTo_cancel1 leadsTo_Un_duplicate
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
token_progress "< =>F apply (rule leadsTo_cancel1 [THEN leadsTo_Un_duplicate (imp_all (o_asm_simp apply(rule_tac) apply (rule java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4 done
end
end
¤ 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.0.7Bemerkung:
¤
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 ist noch experimentell.