equal
deleted
inserted
replaced
2126 by (induct n arbitrary: xs) (auto, case_tac xs, auto) |
2126 by (induct n arbitrary: xs) (auto, case_tac xs, auto) |
2127 |
2127 |
2128 lemma drop_all [simp]: "length xs \<le> n \<Longrightarrow> drop n xs = []" |
2128 lemma drop_all [simp]: "length xs \<le> n \<Longrightarrow> drop n xs = []" |
2129 by (induct n arbitrary: xs) (auto, case_tac xs, auto) |
2129 by (induct n arbitrary: xs) (auto, case_tac xs, auto) |
2130 |
2130 |
|
2131 lemma take_all_iff [simp]: "take n xs = xs \<longleftrightarrow> length xs \<le> n" |
|
2132 by (metis length_take min.order_iff take_all) |
|
2133 |
|
2134 lemma drop_all_iff [simp]: "drop n xs = [] \<longleftrightarrow> length xs \<le> n" |
|
2135 by (metis diff_is_0_eq drop_all length_drop list.size(3)) |
|
2136 |
2131 lemma take_append [simp]: |
2137 lemma take_append [simp]: |
2132 "take n (xs @ ys) = (take n xs @ take (n - length xs) ys)" |
2138 "take n (xs @ ys) = (take n xs @ take (n - length xs) ys)" |
2133 by (induct n arbitrary: xs) (auto, case_tac xs, auto) |
2139 by (induct n arbitrary: xs) (auto, case_tac xs, auto) |
2134 |
2140 |
2135 lemma drop_append [simp]: |
2141 lemma drop_append [simp]: |