src/HOL/List.thy
changeset 54863 82acc20ded73
parent 54600 ac54bc80a5cc
child 54868 bab6cade3cc5
equal deleted inserted replaced
54862:c65e5cbdbc97 54863:82acc20ded73
  2063 apply (case_tac xs, auto)
  2063 apply (case_tac xs, auto)
  2064 done
  2064 done
  2065 
  2065 
  2066 lemma butlast_take:
  2066 lemma butlast_take:
  2067   "n <= length xs ==> butlast (take n xs) = take (n - 1) xs"
  2067   "n <= length xs ==> butlast (take n xs) = take (n - 1) xs"
  2068 by (simp add: butlast_conv_take min_max.inf_absorb1 min_max.inf_absorb2)
  2068 by (simp add: butlast_conv_take min.absorb1 min.absorb2)
  2069 
  2069 
  2070 lemma butlast_drop: "butlast (drop n xs) = drop n (butlast xs)"
  2070 lemma butlast_drop: "butlast (drop n xs) = drop n (butlast xs)"
  2071 by (simp add: butlast_conv_take drop_take add_ac)
  2071 by (simp add: butlast_conv_take drop_take add_ac)
  2072 
  2072 
  2073 lemma take_butlast: "n < length xs ==> take n (butlast xs) = take n xs"
  2073 lemma take_butlast: "n < length xs ==> take n (butlast xs) = take n xs"
  2074 by (simp add: butlast_conv_take min_max.inf_absorb1)
  2074 by (simp add: butlast_conv_take min.absorb1)
  2075 
  2075 
  2076 lemma drop_butlast: "drop n (butlast xs) = butlast (drop n xs)"
  2076 lemma drop_butlast: "drop n (butlast xs) = butlast (drop n xs)"
  2077 by (simp add: butlast_conv_take drop_take add_ac)
  2077 by (simp add: butlast_conv_take drop_take add_ac)
  2078 
  2078 
  2079 lemma hd_drop_conv_nth: "n < length xs \<Longrightarrow> hd(drop n xs) = xs!n"
  2079 lemma hd_drop_conv_nth: "n < length xs \<Longrightarrow> hd(drop n xs) = xs!n"