equal
deleted
inserted
replaced
2093 apply (induct xs arbitrary: i, auto) |
2093 apply (induct xs arbitrary: i, auto) |
2094 apply (case_tac i, simp_all) |
2094 apply (case_tac i, simp_all) |
2095 done |
2095 done |
2096 |
2096 |
2097 lemma append_eq_append_conv_if: |
2097 lemma append_eq_append_conv_if: |
2098 "(xs\<^isub>1 @ xs\<^isub>2 = ys\<^isub>1 @ ys\<^isub>2) = |
2098 "(xs\<^sub>1 @ xs\<^sub>2 = ys\<^sub>1 @ ys\<^sub>2) = |
2099 (if size xs\<^isub>1 \<le> size ys\<^isub>1 |
2099 (if size xs\<^sub>1 \<le> size ys\<^sub>1 |
2100 then xs\<^isub>1 = take (size xs\<^isub>1) ys\<^isub>1 \<and> xs\<^isub>2 = drop (size xs\<^isub>1) ys\<^isub>1 @ ys\<^isub>2 |
2100 then xs\<^sub>1 = take (size xs\<^sub>1) ys\<^sub>1 \<and> xs\<^sub>2 = drop (size xs\<^sub>1) ys\<^sub>1 @ ys\<^sub>2 |
2101 else take (size ys\<^isub>1) xs\<^isub>1 = ys\<^isub>1 \<and> drop (size ys\<^isub>1) xs\<^isub>1 @ xs\<^isub>2 = ys\<^isub>2)" |
2101 else take (size ys\<^sub>1) xs\<^sub>1 = ys\<^sub>1 \<and> drop (size ys\<^sub>1) xs\<^sub>1 @ xs\<^sub>2 = ys\<^sub>2)" |
2102 apply(induct xs\<^isub>1 arbitrary: ys\<^isub>1) |
2102 apply(induct xs\<^sub>1 arbitrary: ys\<^sub>1) |
2103 apply simp |
2103 apply simp |
2104 apply(case_tac ys\<^isub>1) |
2104 apply(case_tac ys\<^sub>1) |
2105 apply simp_all |
2105 apply simp_all |
2106 done |
2106 done |
2107 |
2107 |
2108 lemma take_hd_drop: |
2108 lemma take_hd_drop: |
2109 "n < length xs \<Longrightarrow> take n xs @ [hd (drop n xs)] = take (Suc n) xs" |
2109 "n < length xs \<Longrightarrow> take n xs @ [hd (drop n xs)] = take (Suc n) xs" |