src/HOL/Arith.ML
changeset 1152 b6e1e74695f6
parent 972 e61b058d58d2
child 1198 23be92d5bf4d
equal deleted inserted replaced
1151:c820b3cc3df0 1152:b6e1e74695f6
   301 bind_thm ("trans_less_add1", le_add1 RSN (2,less_le_trans));
   301 bind_thm ("trans_less_add1", le_add1 RSN (2,less_le_trans));
   302 
   302 
   303 (*"i < j ==> i < m+j"*)
   303 (*"i < j ==> i < m+j"*)
   304 bind_thm ("trans_less_add2", le_add2 RSN (2,less_le_trans));
   304 bind_thm ("trans_less_add2", le_add2 RSN (2,less_le_trans));
   305 
   305 
       
   306 goal Arith.thy "!!i. i+j < (k::nat) ==> i<k";
       
   307 be rev_mp 1;
       
   308 by(nat_ind_tac "j" 1);
       
   309 by (ALLGOALS(asm_simp_tac arith_ss));
       
   310 by(fast_tac (HOL_cs addDs [Suc_lessD]) 1);
       
   311 qed "add_lessD1";
       
   312 
   306 goal Arith.thy "!!k::nat. m <= n ==> m <= n+k";
   313 goal Arith.thy "!!k::nat. m <= n ==> m <= n+k";
   307 by (eresolve_tac [le_trans] 1);
   314 by (eresolve_tac [le_trans] 1);
   308 by (resolve_tac [le_add1] 1);
   315 by (resolve_tac [le_add1] 1);
   309 qed "le_imp_add_le";
   316 qed "le_imp_add_le";
   310 
   317