src/HOL/Bali/TypeSafe.thy
changeset 13601 fd3e3d6b37b2
parent 13384 a34e38154413
child 13688 a0b16d42d489
equal deleted inserted replaced
13600:9702c8636a7b 13601:fd3e3d6b37b2
  1893                 statM: "max_spec G accC statT \<lparr>name=mn,parTs=pTs\<rparr> 
  1893                 statM: "max_spec G accC statT \<lparr>name=mn,parTs=pTs\<rparr> 
  1894                          = {((statDeclT,statM),pTs')}" and
  1894                          = {((statDeclT,statM),pTs')}" and
  1895                  mode: "mode = invmode statM e" and
  1895                  mode: "mode = invmode statM e" and
  1896                     T: "T =Inl (resTy statM)" and
  1896                     T: "T =Inl (resTy statM)" and
  1897         eq_accC_accC': "accC=accC'"
  1897         eq_accC_accC': "accC=accC'"
  1898       by (rule wt_elim_cases) auto
  1898       by (rule wt_elim_cases) fastsimp+
  1899     from conf_s0 wt_e hyp_e 
  1899     from conf_s0 wt_e hyp_e 
  1900     obtain conf_s1: "s1\<Colon>\<preceq>(G, L)" and
  1900     obtain conf_s1: "s1\<Colon>\<preceq>(G, L)" and
  1901            conf_a': "normal s1 \<Longrightarrow> G, store s1\<turnstile>a'\<Colon>\<preceq>RefT statT" and
  1901            conf_a': "normal s1 \<Longrightarrow> G, store s1\<turnstile>a'\<Colon>\<preceq>RefT statT" and
  1902            error_free_s1: "error_free s1" 
  1902            error_free_s1: "error_free s1" 
  1903       by force
  1903       by force
  1945       from eq_s3'_s3 False keep_abrupt eval_methd
  1945       from eq_s3'_s3 False keep_abrupt eval_methd
  1946       have "s4=s3'"
  1946       have "s4=s3'"
  1947 	by auto
  1947 	by auto
  1948       ultimately have
  1948       ultimately have
  1949 	"set_lvars (locals (store s2)) s4 = s2"
  1949 	"set_lvars (locals (store s2)) s4 = s2"
  1950 	by (cases s2,cases s4) (simp add: init_lvars_def2)
  1950 	by (cases s2) (cases s4, fastsimp simp add: init_lvars_def2)
  1951       with False conf_s2 error_free_s2
  1951       with False conf_s2 error_free_s2
  1952       show ?thesis
  1952       show ?thesis
  1953 	by auto
  1953 	by auto
  1954     next
  1954     next
  1955       case True
  1955       case True
  1979 	have "s4=s3'"
  1979 	have "s4=s3'"
  1980 	  by auto
  1980 	  by auto
  1981 	ultimately have
  1981 	ultimately have
  1982 	  "set_lvars (locals (store s2)) s4 
  1982 	  "set_lvars (locals (store s2)) s4 
  1983            = (Some (Xcpt (Std NullPointer)),store s2)"
  1983            = (Some (Xcpt (Std NullPointer)),store s2)"
  1984 	  by (cases s2,cases s4) (simp add: init_lvars_def2)
  1984 	  by (cases s2) (cases s4, fastsimp simp add: init_lvars_def2)
  1985 	with conf_s2 error_free_s2
  1985 	with conf_s2 error_free_s2
  1986 	show ?thesis
  1986 	show ?thesis
  1987 	  by (cases s2) (auto dest: conforms_NormI)
  1987 	  by (cases s2) (auto dest: conforms_NormI)
  1988       next
  1988       next
  1989 	case True
  1989 	case True