[STATEMENT]
lemma wt_makelist [simp]:
  "wt_method E test_name [] Void 3 2 make_list_ins [] \<phi>\<^sub>m"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. wt_method E test_name [] Void 3 2 make_list_ins [] \<phi>\<^sub>m
[PROOF STEP]
(*<*)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. wt_method E test_name [] Void 3 2 make_list_ins [] \<phi>\<^sub>m
[PROOF STEP]
apply (simp add: wt_method_def)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. make_list_ins \<noteq> [] \<and> length \<phi>\<^sub>m = length make_list_ins \<and> wt_start E test_name [] 2 \<phi>\<^sub>m \<and> (\<forall>pc a b. \<phi>\<^sub>m ! pc = \<lfloor>(a, b)\<rfloor> \<longrightarrow> pc < length make_list_ins \<longrightarrow> app\<^sub>i (make_list_ins ! pc, E, pc, 3, Void, a, b) \<and> (\<forall>(f, t, C, ab)\<in>set (relevant_entries E (make_list_ins ! pc) pc []). (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < 3)) \<and> (\<forall>(pc', \<tau>')\<in>(\<lambda>pc'. (pc', \<lfloor>eff\<^sub>i (make_list_ins ! pc, E, a, b)\<rfloor>)) ` set (succs (make_list_ins ! pc) (a, b) pc) \<union> (\<lambda>(f, t, C, h, d). (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E (make_list_ins ! pc) pc []). pc' < length make_list_ins) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>pc'. (pc', \<lfloor>eff\<^sub>i (make_list_ins ! pc, E, a, b)\<rfloor>)) ` set (succs (make_list_ins ! pc) (a, b) pc) \<longrightarrow> E \<turnstile> ba \<le>' \<phi>\<^sub>m ! aa) \<and> ((aa, ba) \<in> (\<lambda>(f, t, C, h, d). (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E (make_list_ins ! pc) pc []) \<longrightarrow> E \<turnstile> ba \<le>' \<phi>\<^sub>m ! aa)))
[PROOF STEP]
apply (unfold make_list_ins_def phi_makelist_def)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. [New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store 1, Load 1, Push (Intg 2), Putfield val_name list_name, New list_name, Store 2, Load 2, Push (Intg 3), Putfield val_name list_name, Load 0, Load 1, Invoke append_name 1, Pop, Load 0, Load 2, Invoke append_name 1, Return] \<noteq> [] \<and> length (map (\<lambda>(x, y). \<lfloor>(x, y)\<rfloor>) [([], [OK Ctest, Err, Err]), ([Clist], [OK Ctest, Err, Err]), ([], [OK Clist, Err, Err]), ([Clist], [OK Clist, Err, Err]), ([Integer, Clist], [OK Clist, Err, Err]), ([], [OK Clist, Err, Err]), ([Clist], [OK Clist, Err, Err]), ([], [OK Clist, OK Clist, Err]), ([Clist], [OK Clist, OK Clist, Err]), ([Integer, Clist], [OK Clist, OK Clist, Err]), ([], [OK Clist, OK Clist, Err]), ([Clist], [OK Clist, OK Clist, Err]), ([], [OK Clist, OK Clist, OK Clist]), ([Clist], [OK Clist, OK Clist, OK Clist]), ([Integer, Clist], [OK Clist, OK Clist, OK Clist]), ([], [OK Clist, OK Clist, OK Clist]), ([Clist], [OK Clist, OK Clist, OK Clist]), ([Clist, Clist], [OK Clist, OK Clist, OK Clist]), ([Void], [OK Clist, OK Clist, OK Clist]), ([], [OK Clist, OK Clist, OK Clist]), ([Clist], [OK Clist, OK Clist, OK Clist]), ([Clist, Clist], [OK Clist, OK Clist, OK Clist]), ([Void], [OK Clist, OK Clist, OK Clist])]) = length [New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store 1, Load 1, Push (Intg 2), Putfield val_name list_name, New list_name, Store 2, Load 2, Push (Intg 3), Putfield val_name list_name, Load 0, Load 1, Invoke append_name 1, Pop, Load 0, Load 2, Invoke append_name 1, Return] \<and> wt_start E test_name [] 2 (map (\<lambda>(x, y). \<lfloor>(x, y)\<rfloor>) [([], [OK Ctest, Err, Err]), ([Clist], [OK Ctest, Err, Err]), ([], [OK Clist, Err, Err]), ([Clist], [OK Clist, Err, Err]), ([Integer, Clist], [OK Clist, Err, Err]), ([], [OK Clist, Err, Err]), ([Clist], [OK Clist, Err, Err]), ([], [OK Clist, OK Clist, Err]), ([Clist], [OK Clist, OK Clist, Err]), ([Integer, Clist], [OK Clist, OK Clist, Err]), ([], [OK Clist, OK Clist, Err]), ([Clist], [OK Clist, OK Clist, Err]), ([], [OK Clist, OK Clist, OK Clist]), ([Clist], [OK Clist, OK Clist, OK Clist]), ([Integer, Clist], [OK Clist, OK Clist, OK Clist]), ([], [OK Clist, OK Clist, OK Clist]), ([Clist], [OK Clist, OK Clist, OK Clist]), ([Clist, Clist], [OK Clist, OK Clist, OK Clist]), ([Void], [OK Clist, OK Clist, OK Clist]), ([], [OK Clist, OK Clist, OK Clist]), ([Clist], [OK Clist, OK Clist, OK Clist]), ([Clist, Clist], [OK Clist, OK Clist, OK Clist]), ([Void], [OK Clist, OK Clist, OK Clist])]) \<and> (\<forall>pc a b. map (\<lambda>(x, y). \<lfloor>(x, y)\<rfloor>) [([], [OK Ctest, Err, Err]), ([Clist], [OK Ctest, Err, Err]), ([], [OK Clist, Err, Err]), ([Clist], [OK Clist, Err, Err]), ([Integer, Clist], [OK Clist, Err, Err]), ([], [OK Clist, Err, Err]), ([Clist], [OK Clist, Err, Err]), ([], [OK Clist, OK Clist, Err]), ([Clist], [OK Clist, OK Clist, Err]), ([Integer, Clist], [OK Clist, OK Clist, Err]), ([], [OK Clist, OK Clist, Err]), ([Clist], [OK Clist, OK Clist, Err]), ([], [OK Clist, OK Clist, OK Clist]), ([Clist], [OK Clist, OK Clist, OK Clist]), ([Integer, Clist], [OK Clist, OK Clist, OK Clist]), ([], [OK Clist, OK Clist, OK Clist]), ([Clist], [OK Clist, OK Clist, OK Clist]), ([Clist, Clist], [OK Clist, OK Clist, OK Clist]), ([Void], [OK Clist, OK Clist, OK Clist]), ([], [OK Clist, OK Clist, OK Clist]), ([Clist], [OK Clist, OK Clist, OK Clist]), ([Clist, Clist], [OK Clist, OK Clist, OK Clist]), ([Void], [OK Clist, OK Clist, OK Clist])] ! pc = \<lfloor>(a, b)\<rfloor> \<longrightarrow> pc < length [New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store 1, Load 1, Push (Intg 2), Putfield val_name list_name, New list_name, Store 2, Load 2, Push (Intg 3), Putfield val_name list_name, Load 0, Load 1, Invoke append_name 1, Pop, Load 0, Load 2, Invoke append_name 1, Return] \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store 1, Load 1, Push (Intg 2), Putfield val_name list_name, New list_name, Store 2, Load 2, Push (Intg 3), Putfield val_name list_name, Load 0, Load 1, Invoke append_name 1, Pop, Load 0, Load 2, Invoke append_name 1, Return] ! pc, E, pc, 3, Void, a, b) \<and> (\<forall>(f, t, C, ab)\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store 1, Load 1, Push (Intg 2), Putfield val_name list_name, New list_name, Store 2, Load 2, Push (Intg 3), Putfield val_name list_name, Load 0, Load 1, Invoke append_name 1, Pop, Load 0, Load 2, Invoke append_name 1, Return] ! pc) pc []). (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < 3)) \<and> (\<forall>(pc', \<tau>')\<in>(\<lambda>pc'. (pc', \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store 1, Load 1, Push (Intg 2), Putfield val_name list_name, New list_name, Store 2, Load 2, Push (Intg 3), Putfield val_name list_name, Load 0, Load 1, Invoke append_name 1, Pop, Load 0, Load 2, Invoke append_name 1, Return] ! pc, E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store 1, Load 1, Push (Intg 2), Putfield val_name list_name, New list_name, Store 2, Load 2, Push (Intg 3), Putfield val_name list_name, Load 0, Load 1, Invoke append_name 1, Pop, Load 0, Load 2, Invoke append_name 1, Return] ! pc) (a, b) pc) \<union> (\<lambda>(f, t, C, h, d). (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store 1, Load 1, Push (Intg 2), Putfield val_name list_name, New list_name, Store 2, Load 2, Push (Intg 3), Putfield val_name list_name, Load 0, Load 1, Invoke append_name 1, Pop, Load 0, Load 2, Invoke append_name 1, Return] ! pc) pc []). pc' < length [New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store 1, Load 1, Push (Intg 2), Putfield val_name list_name, New list_name, Store 2, Load 2, Push (Intg 3), Putfield val_name list_name, Load 0, Load 1, Invoke append_name 1, Pop, Load 0, Load 2, Invoke append_name 1, Return]) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>pc'. (pc', \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store 1, Load 1, Push (Intg 2), Putfield val_name list_name, New list_name, Store 2, Load 2, Push (Intg 3), Putfield val_name list_name, Load 0, Load 1, Invoke append_name 1, Pop, Load 0, Load 2, Invoke append_name 1, Return] ! pc, E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store 1, Load 1, Push (Intg 2), Putfield val_name list_name, New list_name, Store 2, Load 2, Push (Intg 3), Putfield val_name list_name, Load 0, Load 1, Invoke append_name 1, Pop, Load 0, Load 2, Invoke append_name 1, Return] ! pc) (a, b) pc) \<longrightarrow> E \<turnstile> ba \<le>' map (\<lambda>(x, y). \<lfloor>(x, y)\<rfloor>) [([], [OK Ctest, Err, Err]), ([Clist], [OK Ctest, Err, Err]), ([], [OK Clist, Err, Err]), ([Clist], [OK Clist, Err, Err]), ([Integer, Clist], [OK Clist, Err, Err]), ([], [OK Clist, Err, Err]), ([Clist], [OK Clist, Err, Err]), ([], [OK Clist, OK Clist, Err]), ([Clist], [OK Clist, OK Clist, Err]), ([Integer, Clist], [OK Clist, OK Clist, Err]), ([], [OK Clist, OK Clist, Err]), ([Clist], [OK Clist, OK Clist, Err]), ([], [OK Clist, OK Clist, OK Clist]), ([Clist], [OK Clist, OK Clist, OK Clist]), ([Integer, Clist], [OK Clist, OK Clist, OK Clist]), ([], [OK Clist, OK Clist, OK Clist]), ([Clist], [OK Clist, OK Clist, OK Clist]), ([Clist, Clist], [OK Clist, OK Clist, OK Clist]), ([Void], [OK Clist, OK Clist, OK Clist]), ([], [OK Clist, OK Clist, OK Clist]), ([Clist], [OK Clist, OK Clist, OK Clist]), ([Clist, Clist], [OK Clist, OK Clist, OK Clist]), ([Void], [OK Clist, OK Clist, OK Clist])] ! aa) \<and> ((aa, ba) \<in> (\<lambda>(f, t, C, h, d). (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store 1, Load 1, Push (Intg 2), Putfield val_name list_name, New list_name, Store 2, Load 2, Push (Intg 3), Putfield val_name list_name, Load 0, Load 1, Invoke append_name 1, Pop, Load 0, Load 2, Invoke append_name 1, Return] ! pc) pc []) \<longrightarrow> E \<turnstile> ba \<le>' map (\<lambda>(x, y). \<lfloor>(x, y)\<rfloor>) [([], [OK Ctest, Err, Err]), ([Clist], [OK Ctest, Err, Err]), ([], [OK Clist, Err, Err]), ([Clist], [OK Clist, Err, Err]), ([Integer, Clist], [OK Clist, Err, Err]), ([], [OK Clist, Err, Err]), ([Clist], [OK Clist, Err, Err]), ([], [OK Clist, OK Clist, Err]), ([Clist], [OK Clist, OK Clist, Err]), ([Integer, Clist], [OK Clist, OK Clist, Err]), ([], [OK Clist, OK Clist, Err]), ([Clist], [OK Clist, OK Clist, Err]), ([], [OK Clist, OK Clist, OK Clist]), ([Clist], [OK Clist, OK Clist, OK Clist]), ([Integer, Clist], [OK Clist, OK Clist, OK Clist]), ([], [OK Clist, OK Clist, OK Clist]), ([Clist], [OK Clist, OK Clist, OK Clist]), ([Clist, Clist], [OK Clist, OK Clist, OK Clist]), ([Void], [OK Clist, OK Clist, OK Clist]), ([], [OK Clist, OK Clist, OK Clist]), ([Clist], [OK Clist, OK Clist, OK Clist]), ([Clist, Clist], [OK Clist, OK Clist, OK Clist]), ([Void], [OK Clist, OK Clist, OK Clist])] ! aa)))
[PROOF STEP]
apply (simp add: wt_start_def eval_nat_numeral)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>pc a b. [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! pc = \<lfloor>(a, b)\<rfloor> \<longrightarrow> pc < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc, E, pc, Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>(f, t, C, ab)\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) pc []). (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>(pc', \<tau>')\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc, E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) (a, b) pc) \<union> (\<lambda>(f, t, C, h, d). (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) pc []). pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc, E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) (a, b) pc) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>(f, t, C, h, d). (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) pc []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
[PROOF STEP]
apply (simp add: wt_instr_def)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>pc a b. [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! pc = \<lfloor>(a, b)\<rfloor> \<longrightarrow> pc < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc, E, pc, Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) pc []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc, E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) (a, b) pc) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) pc []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc, E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) (a, b) pc) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) pc []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
[PROOF STEP]
apply clarify
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>pc a b. \<lbrakk>[\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! pc = \<lfloor>(a, b)\<rfloor>; pc < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))\<rbrakk> \<Longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc, E, pc, Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) pc []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc, E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) (a, b) pc) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) pc []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc, E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) (a, b) pc) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) pc []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
[PROOF STEP]
apply (drule sym)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>pc a b. \<lbrakk>pc < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))); \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! pc\<rbrakk> \<Longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc, E, pc, Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) pc []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc, E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) (a, b) pc) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) pc []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc, E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) (a, b) pc) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) pc []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
[PROOF STEP]
apply (erule_tac P="x = y" for x y in rev_mp)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>pc a b. pc < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<Longrightarrow> \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! pc \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc, E, pc, Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) pc []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc, E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) (a, b) pc) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) pc []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc, E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) (a, b) pc) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! pc) pc []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
[PROOF STEP]
apply (elim pc_end pc_next pc_0)
[PROOF STATE]
proof (prove)
goal (23 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! 0 \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! 0, E, 0, Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! 0) 0 []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! 0, E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! 0) (a, b) 0) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! 0) 0 []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! 0, E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! 0) (a, b) 0) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! 0) 0 []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc 0 \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc 0, E, Suc 0, Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc 0) (Suc 0) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc 0, E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc 0) (a, b) (Suc 0)) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc 0) (Suc 0) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc 0, E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc 0) (a, b) (Suc 0)) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc 0) (Suc 0) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc 0) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0), E, Suc (Suc 0), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0)) (Suc (Suc 0)) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0)) (a, b) (Suc (Suc 0))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0)) (Suc (Suc 0)) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0)) (a, b) (Suc (Suc 0))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0)) (Suc (Suc 0)) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc 0)) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0)), E, Suc (Suc (Suc 0)), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (Suc (Suc (Suc 0))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0)), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (a, b) (Suc (Suc (Suc 0)))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (Suc (Suc (Suc 0))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0)), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (a, b) (Suc (Suc (Suc 0)))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (Suc (Suc (Suc 0))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc 0))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0))), E, Suc (Suc (Suc (Suc 0))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (Suc (Suc (Suc (Suc 0)))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (a, b) (Suc (Suc (Suc (Suc 0))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (Suc (Suc (Suc (Suc 0)))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (a, b) (Suc (Suc (Suc (Suc 0))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (Suc (Suc (Suc (Suc 0)))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 6. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc 0)))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0)))), E, Suc (Suc (Suc (Suc (Suc 0)))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (Suc (Suc (Suc (Suc (Suc 0))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0)))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (a, b) (Suc (Suc (Suc (Suc (Suc 0)))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (Suc (Suc (Suc (Suc (Suc 0))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0)))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (a, b) (Suc (Suc (Suc (Suc (Suc 0)))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (Suc (Suc (Suc (Suc (Suc 0))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 7. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, Suc (Suc (Suc (Suc (Suc (Suc 0))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 8. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 9. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 10. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
A total of 23 subgoals...
[PROOF STEP]
apply (simp add: relevant_entries_def is_relevant_entry_def)
[PROOF STATE]
proof (prove)
goal (22 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc 0 \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc 0, E, Suc 0, Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc 0) (Suc 0) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc 0, E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc 0) (a, b) (Suc 0)) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc 0) (Suc 0) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc 0, E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc 0) (a, b) (Suc 0)) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc 0) (Suc 0) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc 0) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0), E, Suc (Suc 0), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0)) (Suc (Suc 0)) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0)) (a, b) (Suc (Suc 0))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0)) (Suc (Suc 0)) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0)) (a, b) (Suc (Suc 0))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0)) (Suc (Suc 0)) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc 0)) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0)), E, Suc (Suc (Suc 0)), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (Suc (Suc (Suc 0))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0)), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (a, b) (Suc (Suc (Suc 0)))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (Suc (Suc (Suc 0))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0)), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (a, b) (Suc (Suc (Suc 0)))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (Suc (Suc (Suc 0))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc 0))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0))), E, Suc (Suc (Suc (Suc 0))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (Suc (Suc (Suc (Suc 0)))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (a, b) (Suc (Suc (Suc (Suc 0))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (Suc (Suc (Suc (Suc 0)))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (a, b) (Suc (Suc (Suc (Suc 0))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (Suc (Suc (Suc (Suc 0)))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc 0)))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0)))), E, Suc (Suc (Suc (Suc (Suc 0)))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (Suc (Suc (Suc (Suc (Suc 0))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0)))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (a, b) (Suc (Suc (Suc (Suc (Suc 0)))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (Suc (Suc (Suc (Suc (Suc 0))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0)))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (a, b) (Suc (Suc (Suc (Suc (Suc 0)))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (Suc (Suc (Suc (Suc (Suc 0))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 6. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, Suc (Suc (Suc (Suc (Suc (Suc 0))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 7. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 8. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 9. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 10. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
A total of 22 subgoals...
[PROOF STEP]
apply (simp add: relevant_entries_def is_relevant_entry_def)
[PROOF STATE]
proof (prove)
goal (21 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc 0) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0), E, Suc (Suc 0), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0)) (Suc (Suc 0)) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0)) (a, b) (Suc (Suc 0))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0)) (Suc (Suc 0)) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0)) (a, b) (Suc (Suc 0))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc 0)) (Suc (Suc 0)) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc 0)) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0)), E, Suc (Suc (Suc 0)), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (Suc (Suc (Suc 0))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0)), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (a, b) (Suc (Suc (Suc 0)))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (Suc (Suc (Suc 0))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0)), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (a, b) (Suc (Suc (Suc 0)))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (Suc (Suc (Suc 0))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc 0))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0))), E, Suc (Suc (Suc (Suc 0))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (Suc (Suc (Suc (Suc 0)))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (a, b) (Suc (Suc (Suc (Suc 0))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (Suc (Suc (Suc (Suc 0)))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (a, b) (Suc (Suc (Suc (Suc 0))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (Suc (Suc (Suc (Suc 0)))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc 0)))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0)))), E, Suc (Suc (Suc (Suc (Suc 0)))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (Suc (Suc (Suc (Suc (Suc 0))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0)))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (a, b) (Suc (Suc (Suc (Suc (Suc 0)))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (Suc (Suc (Suc (Suc (Suc 0))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0)))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (a, b) (Suc (Suc (Suc (Suc (Suc 0)))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (Suc (Suc (Suc (Suc (Suc 0))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, Suc (Suc (Suc (Suc (Suc (Suc 0))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 6. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 7. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 8. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 9. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 10. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
A total of 21 subgoals...
[PROOF STEP]
apply (simp add: relevant_entries_def is_relevant_entry_def)
[PROOF STATE]
proof (prove)
goal (20 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc 0)) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0)), E, Suc (Suc (Suc 0)), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (Suc (Suc (Suc 0))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0)), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (a, b) (Suc (Suc (Suc 0)))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (Suc (Suc (Suc 0))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0)), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (a, b) (Suc (Suc (Suc 0)))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc 0))) (Suc (Suc (Suc 0))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc 0))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0))), E, Suc (Suc (Suc (Suc 0))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (Suc (Suc (Suc (Suc 0)))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (a, b) (Suc (Suc (Suc (Suc 0))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (Suc (Suc (Suc (Suc 0)))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (a, b) (Suc (Suc (Suc (Suc 0))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (Suc (Suc (Suc (Suc 0)))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc 0)))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0)))), E, Suc (Suc (Suc (Suc (Suc 0)))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (Suc (Suc (Suc (Suc (Suc 0))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0)))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (a, b) (Suc (Suc (Suc (Suc (Suc 0)))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (Suc (Suc (Suc (Suc (Suc 0))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0)))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (a, b) (Suc (Suc (Suc (Suc (Suc 0)))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (Suc (Suc (Suc (Suc (Suc 0))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, Suc (Suc (Suc (Suc (Suc (Suc 0))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 6. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 7. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 8. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 9. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 10. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
A total of 20 subgoals...
[PROOF STEP]
apply (simp add: relevant_entries_def is_relevant_entry_def)
[PROOF STATE]
proof (prove)
goal (19 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc 0))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0))), E, Suc (Suc (Suc (Suc 0))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (Suc (Suc (Suc (Suc 0)))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (a, b) (Suc (Suc (Suc (Suc 0))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (Suc (Suc (Suc (Suc 0)))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (a, b) (Suc (Suc (Suc (Suc 0))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc 0)))) (Suc (Suc (Suc (Suc 0)))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc 0)))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0)))), E, Suc (Suc (Suc (Suc (Suc 0)))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (Suc (Suc (Suc (Suc (Suc 0))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0)))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (a, b) (Suc (Suc (Suc (Suc (Suc 0)))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (Suc (Suc (Suc (Suc (Suc 0))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0)))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (a, b) (Suc (Suc (Suc (Suc (Suc 0)))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (Suc (Suc (Suc (Suc (Suc 0))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, Suc (Suc (Suc (Suc (Suc (Suc 0))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 6. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 7. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 8. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 9. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 10. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
A total of 19 subgoals...
[PROOF STEP]
apply (fastforce simp add:
    relevant_entries_def is_relevant_entry_def sees_field_def list_class_def
    distinct_classes intro: Fields.intros)
[PROOF STATE]
proof (prove)
goal (18 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc 0)))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0)))), E, Suc (Suc (Suc (Suc (Suc 0)))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (Suc (Suc (Suc (Suc (Suc 0))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0)))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (a, b) (Suc (Suc (Suc (Suc (Suc 0)))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (Suc (Suc (Suc (Suc (Suc 0))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0)))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (a, b) (Suc (Suc (Suc (Suc (Suc 0)))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc 0))))) (Suc (Suc (Suc (Suc (Suc 0))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, Suc (Suc (Suc (Suc (Suc (Suc 0))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 6. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 7. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 8. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 9. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 10. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
A total of 18 subgoals...
[PROOF STEP]
apply (simp add: relevant_entries_def is_relevant_entry_def)
[PROOF STATE]
proof (prove)
goal (17 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, Suc (Suc (Suc (Suc (Suc (Suc 0))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc 0)))))) (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 6. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 7. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 8. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 9. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 10. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
A total of 17 subgoals...
[PROOF STEP]
apply (simp add: relevant_entries_def is_relevant_entry_def)
[PROOF STATE]
proof (prove)
goal (16 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 6. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 7. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 8. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 9. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 10. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
A total of 16 subgoals...
[PROOF STEP]
apply (simp add: relevant_entries_def is_relevant_entry_def)
[PROOF STATE]
proof (prove)
goal (15 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 6. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 7. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 8. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 9. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 10. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
A total of 15 subgoals...
[PROOF STEP]
apply (simp add: relevant_entries_def is_relevant_entry_def)
[PROOF STATE]
proof (prove)
goal (14 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 6. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 7. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 8. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 9. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 10. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
A total of 14 subgoals...
[PROOF STEP]
apply (fastforce simp add:
    relevant_entries_def is_relevant_entry_def sees_field_def list_class_def
    distinct_classes intro: Fields.intros)
[PROOF STATE]
proof (prove)
goal (13 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 6. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 7. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 8. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 9. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 10. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
A total of 13 subgoals...
[PROOF STEP]
apply (simp add: relevant_entries_def is_relevant_entry_def)
[PROOF STATE]
proof (prove)
goal (12 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 6. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 7. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 8. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 9. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 10. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
A total of 12 subgoals...
[PROOF STEP]
apply (simp add: relevant_entries_def is_relevant_entry_def)
[PROOF STATE]
proof (prove)
goal (11 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 6. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 7. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 8. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 9. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 10. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
A total of 11 subgoals...
[PROOF STEP]
apply (simp add: relevant_entries_def is_relevant_entry_def)
[PROOF STATE]
proof (prove)
goal (10 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 6. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 7. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 8. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 9. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 10. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
[PROOF STEP]
apply (simp add: relevant_entries_def is_relevant_entry_def)
[PROOF STATE]
proof (prove)
goal (9 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 6. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 7. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 8. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 9. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
[PROOF STEP]
apply (fastforce simp add:
    relevant_entries_def is_relevant_entry_def sees_field_def list_class_def
    distinct_classes intro: Fields.intros)
[PROOF STATE]
proof (prove)
goal (8 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 6. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 7. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 8. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
[PROOF STEP]
apply (simp add: relevant_entries_def is_relevant_entry_def)
[PROOF STATE]
proof (prove)
goal (7 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 6. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 7. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
[PROOF STEP]
apply (simp add: relevant_entries_def is_relevant_entry_def)
[PROOF STATE]
proof (prove)
goal (6 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 6. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
[PROOF STEP]
apply (fastforce simp add:
    relevant_entries_def is_relevant_entry_def list_class_def
    distinct_classes Method_def intro: Methods.intros)
[PROOF STATE]
proof (prove)
goal (5 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 5. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
[PROOF STEP]
apply (simp add: relevant_entries_def is_relevant_entry_def)
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 4. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
[PROOF STEP]
apply (simp add: relevant_entries_def is_relevant_entry_def)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 3. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
[PROOF STEP]
apply (simp add: relevant_entries_def is_relevant_entry_def)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
 2. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
[PROOF STEP]
apply (fastforce simp add:
    relevant_entries_def is_relevant_entry_def list_class_def
    distinct_classes Method_def intro: Methods.intros)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>pc a b. \<lfloor>(a, b)\<rfloor> = [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))) \<longrightarrow> app\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), Suc (Suc (Suc 0)), Void, a, b) \<and> (\<forall>x\<in>set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (f, t, C, ab) \<Rightarrow> (\<exists>a aa b. class E C = \<lfloor>(a, aa, b)\<rfloor>) \<and> (case ab of (h, d) \<Rightarrow> d \<le> length a \<and> d < Suc (Suc (Suc 0)))) \<and> (\<forall>x\<in>(\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<union> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []). case x of (pc', \<tau>') \<Rightarrow> pc' < Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<and> (\<forall>aa ba. ((aa, ba) \<in> (\<lambda>x. (x, \<lfloor>eff\<^sub>i ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))), E, a, b)\<rfloor>)) ` set (succs ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (a, b) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0))))))))))))))))))))))) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa) \<and> ((aa, ba) \<in> (\<lambda>x. case x of (f, t, C, h, d) \<Rightarrow> (h, \<lfloor>(Class C # drop (length a - d) a, b)\<rfloor>)) ` set (relevant_entries E ([New list_name, Store 0, Load 0, Push (Intg 1), Putfield val_name list_name, New list_name, Store (Suc 0), Load (Suc 0), Push (Intg 2), Putfield val_name list_name, New list_name, Store (Suc (Suc 0)), Load (Suc (Suc 0)), Push (Intg 3), Putfield val_name list_name, Load 0, Load (Suc 0), Invoke append_name (Suc 0), Pop, Load 0, Load (Suc (Suc 0)), Invoke append_name (Suc 0), Return] ! Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc (Suc 0)))))))))))))))))))))) []) \<longrightarrow> E \<turnstile> ba \<le>' [\<lfloor>([], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Ctest, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, Err, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, Err])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Integer, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Clist, Clist], [OK Clist, OK Clist, OK Clist])\<rfloor>, \<lfloor>([Void], [OK Clist, OK Clist, OK Clist])\<rfloor>] ! aa))
[PROOF STEP]
apply (simp add: relevant_entries_def is_relevant_entry_def)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done