diff -r 6dcb2cea827d -r cb3f370e66e1 src/HOL/Bali/DefiniteAssignment.thy --- a/src/HOL/Bali/DefiniteAssignment.thy Sun Jan 15 14:00:07 2012 +0100 +++ b/src/HOL/Bali/DefiniteAssignment.thy Sun Jan 15 14:17:42 2012 +0100 @@ -1037,11 +1037,10 @@ lemma rmlab_other_label [simp]: "l\l'\ (rmlab l A) l' = A l'" by (auto simp add: rmlab_def) -lemma range_inter_ts_subseteq [intro]: "\ k. A k \ B k \ \\A \ \\B" +lemma range_inter_ts_subseteq [intro]: "\ k. A k \ B k \ \\A \ \\B" by (auto simp add: range_inter_ts_def) -lemma range_inter_ts_subseteq': - "\\ k. A k \ B k; x \ \\A\ \ x \ \\B" +lemma range_inter_ts_subseteq': "\ k. A k \ B k \ x \ \\A \ x \ \\B" by (auto simp add: range_inter_ts_def) lemma da_monotone: @@ -1072,7 +1071,7 @@ where "Env\ B' \\c\\ C'" and A': "nrm A' = nrm C' \ brk C' l" "brk A' = rmlab l (brk C')" using Lab.prems - by - (erule da_elim_cases,simp) + by cases simp ultimately have "nrm C \ nrm C'" and hyp_brk: "(\l. brk C l \ brk C' l)" by auto then @@ -1095,7 +1094,7 @@ where da_c1: "Env\ B' \\c1\\ C1'" and da_c2: "Env\ nrm C1' \\c2\\ C2'" and A': "nrm A' = nrm C2'" "brk A' = brk C1' \\ brk C2'" - by (rule da_elim_cases) auto + by cases auto note `PROP ?Hyp Env B \c1\ C1` moreover note `B \ B'` moreover note da_c1 @@ -1116,7 +1115,7 @@ where da_c1: "Env\ B' \ assigns_if True e \\c1\\ C1'" and da_c2: "Env\ B' \ assigns_if False e \\c2\\ C2'" and A': "nrm A' = nrm C1' \ nrm C2'" "brk A' = brk C1' \\ brk C2'" - by (rule da_elim_cases) auto + by cases auto note `PROP ?Hyp Env (B \ assigns_if True e) \c1\ C1` moreover note B' = `B \ B'` moreover note da_c1 @@ -1138,7 +1137,7 @@ da_c': "Env\ B' \ assigns_if True e \\c\\ C'" and A': "nrm A' = nrm C' \ (B' \ assigns_if False e)" "brk A' = brk C'" - by (rule da_elim_cases) auto + by cases auto note `PROP ?Hyp Env (B \ assigns_if True e) \c\ C` moreover note B' = `B \ B'` moreover note da_c' @@ -1168,7 +1167,7 @@ case (Jmp jump B A Env B' A') thus ?case by (elim da_elim_cases) (auto split: jump.splits) next - case Throw thus ?case by - (erule da_elim_cases, auto) + case Throw thus ?case by (elim da_elim_cases) auto next case (Try Env B c1 C1 vn C c2 C2 A B' A') note A = `nrm A = nrm C1 \ nrm C2` `brk A = brk C1 \\ brk C2` @@ -1179,7 +1178,7 @@ \\c2\\ C2'" and A': "nrm A' = nrm C1' \ nrm C2'" "brk A' = brk C1' \\ brk C2'" - by (rule da_elim_cases) auto + by cases auto note `PROP ?Hyp Env B \c1\ C1` moreover note B' = `B \ B'` moreover note da_c1' @@ -1203,7 +1202,7 @@ da_c2': "Env\ B' \\c2\\ C2'" and A': "nrm A' = nrm C1' \ nrm C2'" "brk A' = (brk C1' \\\<^sub>\ nrm C2') \\ (brk C2')" - by (rule da_elim_cases) auto + by cases auto note `PROP ?Hyp Env B \c1\ C1` moreover note B' = `B \ B'` moreover note da_c1' @@ -1217,19 +1216,19 @@ show ?case by auto next - case Init thus ?case by - (erule da_elim_cases, auto) + case Init thus ?case by (elim da_elim_cases) auto next - case NewC thus ?case by - (erule da_elim_cases, auto) + case NewC thus ?case by (elim da_elim_cases) auto next - case NewA thus ?case by - (erule da_elim_cases, auto) + case NewA thus ?case by (elim da_elim_cases) auto next - case Cast thus ?case by - (erule da_elim_cases, auto) + case Cast thus ?case by (elim da_elim_cases) auto next - case Inst thus ?case by - (erule da_elim_cases, auto) + case Inst thus ?case by (elim da_elim_cases) auto next - case Lit thus ?case by - (erule da_elim_cases, auto) + case Lit thus ?case by (elim da_elim_cases) auto next - case UnOp thus ?case by - (erule da_elim_cases, auto) + case UnOp thus ?case by (elim da_elim_cases) auto next case (CondAnd Env B e1 E1 e2 E2 A B' A') note A = `nrm A = B \ @@ -1241,24 +1240,24 @@ assigns_if True (BinOp CondAnd e1 e2) \ assigns_if False (BinOp CondAnd e1 e2)" "brk A' = (\l. UNIV)" - by (rule da_elim_cases) auto + by cases auto note B' = `B \ B'` with A A' show ?case by auto next - case CondOr thus ?case by - (erule da_elim_cases, auto) + case CondOr thus ?case by (elim da_elim_cases) auto next - case BinOp thus ?case by - (erule da_elim_cases, auto) + case BinOp thus ?case by (elim da_elim_cases) auto next - case Super thus ?case by - (erule da_elim_cases, auto) + case Super thus ?case by (elim da_elim_cases) auto next - case AccLVar thus ?case by - (erule da_elim_cases, auto) + case AccLVar thus ?case by (elim da_elim_cases) auto next - case Acc thus ?case by - (erule da_elim_cases, auto) + case Acc thus ?case by (elim da_elim_cases) auto next - case AssLVar thus ?case by - (erule da_elim_cases, auto) + case AssLVar thus ?case by (elim da_elim_cases) auto next - case Ass thus ?case by - (erule da_elim_cases, auto) + case Ass thus ?case by (elim da_elim_cases) auto next case (CondBool Env c e1 e2 B C E1 E2 A B' A') note A = `nrm A = B \ @@ -1273,7 +1272,7 @@ assigns_if True (c ? e1 : e2) \ assigns_if False (c ? e1 : e2)" "brk A' = (\l. UNIV)" - by - (erule da_elim_cases,auto simp add: inj_term_simps) + by (elim da_elim_cases) (auto simp add: inj_term_simps) (* inj_term_simps needed to handle wt (defined without \\) *) note B' = `B \ B'` with A A' show ?case @@ -1289,7 +1288,7 @@ A': "nrm A' = nrm E1' \ nrm E2'" "brk A' = (\l. UNIV)" using not_bool - by - (erule da_elim_cases, auto simp add: inj_term_simps) + by (elim da_elim_cases) (auto simp add: inj_term_simps) (* inj_term_simps needed to handle wt (defined without \\) *) note `PROP ?Hyp Env (B \ assigns_if True c) \e1\ E1` moreover note B' = `B \ B'` @@ -1308,19 +1307,19 @@ from Call.prems and Call.hyps show ?case by cases auto next - case Methd thus ?case by - (erule da_elim_cases, auto) + case Methd thus ?case by (elim da_elim_cases) auto next - case Body thus ?case by - (erule da_elim_cases, auto) + case Body thus ?case by (elim da_elim_cases) auto next - case LVar thus ?case by - (erule da_elim_cases, auto) + case LVar thus ?case by (elim da_elim_cases) auto next - case FVar thus ?case by - (erule da_elim_cases, auto) + case FVar thus ?case by (elim da_elim_cases) auto next - case AVar thus ?case by - (erule da_elim_cases, auto) + case AVar thus ?case by (elim da_elim_cases) auto next - case Nil thus ?case by - (erule da_elim_cases, auto) + case Nil thus ?case by (elim da_elim_cases) auto next - case Cons thus ?case by - (erule da_elim_cases, auto) + case Cons thus ?case by (elim da_elim_cases) auto qed qed (rule da', rule `B \ B'`)