abbreviation curr_init :: "'m prog <Rightarrow( "curr_init P e \ c r0)) abbreviation curr_inits :: "'m prog ==> cnameoption "curr_inits P es ≡ (HOs (Sr0)qq) (SHOs (Suc r0) qq)"
lemma icheck_curr_init': "∧ and icheck_curr_inits': "∧e. ss_exps es = withrhor0wjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 proof(induct rule: ss_exp_ss_exps_induct) qed(simp_all add: icheck_init_class)
lemma icheck_curr_init: "icheck (HOsuc (Sucr)) p (SHOs(Sc(u 0)p" by(rulecurr_init
lemma icheck_curr_initsqq. qq ∈ HOs ( by(rule icheck_curr_inits')
definition initPD :: "sheap ==> SHOs (Suc (Suc r0)) p ∩
"initPD sh Ctate qq ho
― checks that @{text INIT} and @{text RI}conform \> fun iconf :: "sheap ==> 'a exp ==>p' qq = Somee (Vot( ) "iconf sh (new C) = True" | "nfe) =nf
| "iconf sh (Val v) = True"
| "iconf sh (e= | "iconf sh
| "iconf sh (LAss V e) = iconf sh e"
| "iconf sh (e<lletD}) = icofs "
| "iconf sh (C∙qq <mu>p'q = Some (Voe (Somew))}"
| "iconf sh (eby (ato sp ard_mono) | "iconf sh (C∙
|fshM(es)) = (case val_of e of Some v ==> iconf sh e ∧sub_RIss
| java.lang.NullPointerException | "iconf sh ({V:T; e}) = iconf shuc))) p)" | "iconf sh (ejava.lang.NullPointerException
| None ==>case\^1 of Some p ==>iconf^>2
| None ==>
| "iconf sh (if (b) e\ by aut | "iconf sh (while (b) e) = (¬
| "iconf sh (throw e) = iconf sh e"
| java.lang.NullPointerException |<> | "iconf sh (RI runs
| "iconfs sh ([]) = True"
| "iconfs sh (e#es) = (case val_of e of Some v ==>aty commmunion predicate
lemma iconfs_map_throw: "iconfs sh (map Val vssatisfyperty by(induct vs,auto)
lemma nsub_RI_iconf: "¬ and nsub_RIs_iconfs: "¬sub_RIs es ==> proof - let ?R = "λe. ¬sub_RI e ⟶ let ?Rs = "λes. ¬ have"(∀ by(rule subexp_induct[where ?Rs = ?Rs]; clarsimp simp: nsub_RI_iconf_aux) moreover have "(∀e'. e' ∈r q. undefined by(rule subexps_induct nsub_RI_iconf_aux ultimatelyshow<ub_RI e ==> and"\<>sub_RIs qed
lemma lass_val_of_iconf: "lass_val_of e = ⌊a⌋ductionsus_is_local by(drule lass_val_of_nsub_RI, erule nsub_RI_iconf)
lemma icheck_iconf: assumes"icheck P C e" cruncrunHOs" by (unfold SHORun_def) using assms proof(cases e) case (SFAss C F D e) then show ?thesis using assms proof((uo) next case (SCall Ces) then shhesis usinssms by (auto simp: nsub_RIs_iconfs) next qed(auto)
subsection "Indicator boolean conformance"
\<comment> ‹‹ (i.e., if @{term b} is True, then @{term e} is an initialization-calling expression to a class that is marked either @{term Processing} or @{term Done}) › definition bconf :: " m prog ==> sheap ==> 'a exp ==> bool ==> bool" (‹_,_ ⊨b '(_,_') √› [51,51,0,0] 50)
"P,sh ⊨b (e,b) √≡ b ⟶ (∃C. icheck P C (ss_exp e) ∧ initPD sh C)"
bconfs :: "'m prog ==> sheap ==> 'a exp list ==> bool ==> bool" (‹_,_ ⊨b '(_,_') √› [51,51,0,0] 50)
"P,sh ⊨b (es,b) √≡ b ⟶ (∃C. (icheck P C (the(ss_exps es)) ∧ (curr_inits P es = Some C) ∧ initPD sh C))"
bconf_FAss[iff]:
"P,sh ⊨b (FAss e1 F D e2,b) √ ⟷ (case val_of e1 of Some v ==> P,sh ⊨b (e2,b) √ | _ ==> P,sh ⊨b (e1,b) √)"
by(cases b) (auto simp: bconf_def dest: val_of_spec)
bconf_SFAss[iff]:
val_of e2 = None ==> P,sh ⊨b (SFAss C F D e2,b) √⟷ P,sh ⊨b (e2,b) √"
by(cases b) (auto simp: bconf_def)
bconfs_Vals[iff]:
"P,sh ⊨b (map Val vs, b) √⟷¬ b"
by(unfold bconfs_def) simp
bconf_Call[iff]:
"P,sh ⊨b (e∙M(es),b) √ ⟷ (case val_of e of Some v ==> P,sh ⊨b (es,b) √ | _ ==> P,sh ⊨b (e,b) √)"
(cases b)
case True
then show ?thesis
proof(cases "ss_exps es")
case None
then obtain vs where "es = map Val vs" using ss_exps_Vals_NoneI by auto
then have mv: "map_vals_of es = ⌊vs⌋" by simp
then show ?thesis by(auto simp: bconf_def) (simp add: bconfs_def)
next
case (Some a)
then show ?thesis by(auto simp: bconf_def) (auto simp: bconfs_def icheck_init_class)
qed
(simp add: bconf_def bconfs_def)
bconf_SCall[iff]:
mvn: "map_vals_of es = None"
"P,sh ⊨b (C∙sM(es),b) √⟷ P,sh ⊨b (es,b) √"
(cases b)
case True
then show ?thesis
proof(cases "ss_exps es")
case None
then have "∃vs. es = map Val vs" using ss_exps_Vals_NoneI by auto
then show ?thesis using mvn finals_def by clarsimp
next
case (Some a)
then show ?thesis by(auto simp: bconf_def) (auto simp: bconfs_def icheck_init_class)
qed
(simp add: bconf_def bconfs_def)
bconf_Cons[iff]:
"P,sh ⊨b (e#es,b) √ ⟷ (case val_of e of Some v ==> P,sh ⊨b (es,b) √ | _ ==> P,sh ⊨b (e,b) √)"
(cases b)
case True
then show ?thesis
proof(cases "ss_exps es")
case None
then have "∃vs. es = map Val vs" using ss_exps_Vals_NoneI by auto
then show ?thesis using None by(auto simp: bconf_def bconfs_def icheck_init_class)
next
case (Some a)
then show ?thesis by(auto simp: bconf_def bconfs_def icheck_init_class)
qed
(simp add: bconf_def bconfs_def)
bconfs_map_throw[iff]:
"P,sh ⊨b (map Val vs @ throw e # es',b) √⟷ P,sh ⊨b (e,b) √"
by(induct vs) auto
Messung V0.5 in Prozent
¤ 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.38Bemerkung:
¤
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.