IOA/example/Lemmas.ML
changeset 193 61f39dcc1685
parent 171 16c4ea954511
child 226 da0e86b4b352
equal deleted inserted replaced
192:2adddba98924 193:61f39dcc1685
   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";