src/HOL/MicroJava/BV/Step.thy
changeset 9664 4cae97480a6d
parent 9594 42d11e0a7a8b
child 9757 1024a2d80ac0
equal deleted inserted replaced
9663:e4d58f1be05b 9664:4cae97480a6d
   185 by (cases s, cases "2 < length (fst s)", auto dest: 1 2)
   185 by (cases s, cases "2 < length (fst s)", auto dest: 1 2)
   186 
   186 
   187 
   187 
   188 lemma appIAdd[simp]:
   188 lemma appIAdd[simp]:
   189 "app (IAdd, G, rT, s) = (\<exists> ST LT. s = (PrimT Integer#PrimT Integer#ST,LT))"  (is "?app s = ?P s")
   189 "app (IAdd, G, rT, s) = (\<exists> ST LT. s = (PrimT Integer#PrimT Integer#ST,LT))"  (is "?app s = ?P s")
   190 proof (cases s)
   190 proof (cases (open) s)
   191   case Pair
   191   case Pair
   192   have "?app (a,b) = ?P (a,b)"
   192   have "?app (a,b) = ?P (a,b)"
   193   proof (cases "a")
   193   proof (cases "a")
   194     fix t ts assume a: "a = t#ts"
   194     fix t ts assume a: "a = t#ts"
   195     show ?thesis
   195     show ?thesis
   232                                        s = ((rev apTs) @ (X # ST), LT) \<and> 
   232                                        s = ((rev apTs) @ (X # ST), LT) \<and> 
   233                                        length apTs = length fpTs \<and> 
   233                                        length apTs = length fpTs \<and> 
   234                                        G \<turnstile> X \<preceq> Class C \<and>  
   234                                        G \<turnstile> X \<preceq> Class C \<and>  
   235                                        (\<forall>(aT,fT)\<in>set(zip apTs fpTs). G \<turnstile> aT \<preceq> fT) \<and> 
   235                                        (\<forall>(aT,fT)\<in>set(zip apTs fpTs). G \<turnstile> aT \<preceq> fT) \<and> 
   236                                        method (G,C) (mn,fpTs) \<noteq> None)" (is "?app s = ?P s")
   236                                        method (G,C) (mn,fpTs) \<noteq> None)" (is "?app s = ?P s")
   237 proof (cases s)
   237 proof (cases (open) s)
   238   case Pair
   238   case Pair
   239   have "?app (a,b) \<Longrightarrow> ?P (a,b)"
   239   have "?app (a,b) \<Longrightarrow> ?P (a,b)"
   240   proof -
   240   proof -
   241     assume app: "?app (a,b)"
   241     assume app: "?app (a,b)"
   242     hence "a = (rev (rev (take (length fpTs) a))) @ (drop (length fpTs) a) \<and> length fpTs < length a" 
   242     hence "a = (rev (rev (take (length fpTs) a))) @ (drop (length fpTs) a) \<and> length fpTs < length a"