New theorem add_leE
authorpaulson
Thu, 09 Jan 1997 10:22:42 +0100
changeset 2498 7914881f47c0
parent 2497 47de509bdd55
child 2499 0bc87b063447
New theorem add_leE
src/HOL/Arith.ML
--- a/src/HOL/Arith.ML	Thu Jan 09 10:22:11 1997 +0100
+++ b/src/HOL/Arith.ML	Thu Jan 09 10:22:42 1997 +0100
@@ -475,6 +475,15 @@
 by (fast_tac (!claset addDs [Suc_leD]) 1);
 qed_spec_mp "add_leD1";
 
+goal Arith.thy "!!n::nat. m+k<=n ==> k<=n";
+by (full_simp_tac (!simpset addsimps [add_commute]) 1);
+by (etac add_leD1 1);
+qed_spec_mp "add_leD2";
+
+goal Arith.thy "!!n::nat. m+k<=n ==> m<=n & k<=n";
+by (fast_tac (!claset addDs [add_leD1, add_leD2]) 1);
+bind_thm ("add_leE", result() RS conjE);
+
 goal Arith.thy "!!k l::nat. [| k<l; m+l = k+n |] ==> m<n";
 by (safe_tac (!claset addSDs [less_eq_Suc_add]));
 by (asm_full_simp_tac