equal
deleted
inserted
replaced
230 [succ_leq_mono, le_refl RS (leq_add_leq RS mp)]) 1); |
230 [succ_leq_mono, le_refl RS (leq_add_leq RS mp)]) 1); |
231 qed "plus_leq_lem"; |
231 qed "plus_leq_lem"; |
232 |
232 |
233 (* Lists *) |
233 (* Lists *) |
234 |
234 |
235 goal List.thy "(L @ (x#M)) ~= []"; |
235 goal List.thy "(xs @ (y#ys)) ~= []"; |
236 by (list_ind_tac "L" 1); |
236 by (list.induct_tac "xs" 1); |
237 by (simp_tac list_ss 1); |
237 by (simp_tac list_ss 1); |
238 by (asm_simp_tac list_ss 1); |
238 by (asm_simp_tac list_ss 1); |
239 qed "append_cons"; |
239 qed "append_cons"; |
240 |
240 |
241 goal List.thy "(X ~= hd(L@M)) = (X ~= if(L = [], hd(M), hd(L)))"; |
241 goal List.thy "(x ~= hd(xs@ys)) = (x ~= if(xs = [], hd(ys), hd(xs)))"; |
242 by (list_ind_tac "L" 1); |
242 by (list.induct_tac "xs" 1); |
243 by (simp_tac list_ss 1); |
243 by (simp_tac list_ss 1); |
244 by (asm_full_simp_tac list_ss 1); |
244 by (asm_full_simp_tac list_ss 1); |
245 qed "not_hd_append"; |
245 qed "not_hd_append"; |
246 |
246 |
247 goal List.thy "(L = (x#rst)) --> (L = []) --> P"; |
247 goal List.thy "(L = (x#rst)) --> (L = []) --> P"; |