diff -r 27de2c976d90 -r eb2caacf3ba4 src/HOL/Library/RBT_Impl.thy --- a/src/HOL/Library/RBT_Impl.thy Wed Feb 12 08:35:56 2014 +0100 +++ b/src/HOL/Library/RBT_Impl.thy Wed Feb 12 08:35:56 2014 +0100 @@ -1167,7 +1167,7 @@ apfst (Branch B t1 k v) (rbtreeify_g n' kvs') else case rbtreeify_f n' kvs of (t1, (k, v) # kvs') \ apfst (Branch B t1 k v) (rbtreeify_f n' kvs'))" -by(subst rbtreeify_f.simps)(simp only: Let_def divmod_nat_div_mod prod.simps) +by (subst rbtreeify_f.simps) (simp only: Let_def divmod_nat_div_mod prod.case) lemma rbtreeify_g_code [code]: "rbtreeify_g n kvs = @@ -1178,7 +1178,7 @@ apfst (Branch B t1 k v) (rbtreeify_g n' kvs') else case rbtreeify_f n' kvs of (t1, (k, v) # kvs') \ apfst (Branch B t1 k v) (rbtreeify_g n' kvs'))" -by(subst rbtreeify_g.simps)(simp only: Let_def divmod_nat_div_mod prod.simps) +by(subst rbtreeify_g.simps)(simp only: Let_def divmod_nat_div_mod prod.case) lemma Suc_double_half: "Suc (2 * n) div 2 = n" by simp @@ -1250,8 +1250,8 @@ with "1.prems" False obtain t1 k' v' kvs'' where kvs'': "rbtreeify_f (n div 2) kvs = (t1, (k', v') # kvs'')" by(cases ?rest1)(auto simp add: snd_def split: prod.split_asm) - note this also note prod.simps(2) also note list.simps(5) - also note prod.simps(2) also note snd_apfst + note this also note prod.case also note list.simps(5) + also note prod.case also note snd_apfst also have "0 < n div 2" "n div 2 \ Suc (length kvs'')" using len "1.prems" False unfolding kvs'' by simp_all with True kvs''[symmetric] refl refl @@ -1276,8 +1276,8 @@ with "1.prems" `\ n \ 1` obtain t1 k' v' kvs'' where kvs'': "rbtreeify_f (n div 2) kvs = (t1, (k', v') # kvs'')" by(cases ?rest1)(auto simp add: snd_def split: prod.split_asm) - note this also note prod.simps(2) also note list.simps(5) - also note prod.simps(2) also note snd_apfst + note this also note prod.case also note list.simps(5) + also note prod.case also note snd_apfst also have "n div 2 \ length kvs''" using len "1.prems" False unfolding kvs'' by simp arith with False kvs''[symmetric] refl refl @@ -1315,8 +1315,8 @@ with "2.prems" obtain t1 k' v' kvs'' where kvs'': "rbtreeify_g (n div 2) kvs = (t1, (k', v') # kvs'')" by(cases ?rest1)(auto simp add: snd_def split: prod.split_asm) - note this also note prod.simps(2) also note list.simps(5) - also note prod.simps(2) also note snd_apfst + note this also note prod.case also note list.simps(5) + also note prod.case also note snd_apfst also have "n div 2 \ Suc (length kvs'')" using len "2.prems" unfolding kvs'' by simp with True kvs''[symmetric] refl refl `0 < n div 2` @@ -1341,8 +1341,8 @@ with "2.prems" `1 < n` False obtain t1 k' v' kvs'' where kvs'': "rbtreeify_f (n div 2) kvs = (t1, (k', v') # kvs'')" by(cases ?rest1)(auto simp add: snd_def split: prod.split_asm, arith) - note this also note prod.simps(2) also note list.simps(5) - also note prod.simps(2) also note snd_apfst + note this also note prod.case also note list.simps(5) + also note prod.case also note snd_apfst also have "n div 2 \ Suc (length kvs'')" using len "2.prems" False unfolding kvs'' by simp arith with False kvs''[symmetric] refl refl `0 < n div 2`