equal
deleted
inserted
replaced
422 (fn [prem] => [rtac (prem RS arg_cong) 1]); |
422 (fn [prem] => [rtac (prem RS arg_cong) 1]); |
423 |
423 |
424 qed_goal "nat_rec_weak_cong" Nat.thy |
424 qed_goal "nat_rec_weak_cong" Nat.thy |
425 "m=n ==> nat_rec a f m = nat_rec a f n" |
425 "m=n ==> nat_rec a f m = nat_rec a f n" |
426 (fn [prem] => [rtac (prem RS arg_cong) 1]); |
426 (fn [prem] => [rtac (prem RS arg_cong) 1]); |
|
427 |
|
428 qed_goal "expand_nat_case" Nat.thy |
|
429 "P(nat_case z s n) = ((n=0 --> P z) & (!m. n = Suc m --> P(s m)))" |
|
430 (fn _ => [nat_ind_tac "n" 1, ALLGOALS Asm_simp_tac]); |
427 |
431 |
428 val prems = goalw Nat.thy [le_def] "~n<m ==> m<=(n::nat)"; |
432 val prems = goalw Nat.thy [le_def] "~n<m ==> m<=(n::nat)"; |
429 by (resolve_tac prems 1); |
433 by (resolve_tac prems 1); |
430 qed "leI"; |
434 qed "leI"; |
431 |
435 |