src/HOL/List.thy
changeset 53015 a1119cf551e8
parent 52435 6646bb548c6b
child 53017 0f376701e83b
equal deleted inserted replaced
53009:bb18eed53ed6 53015:a1119cf551e8
  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"