src/HOL/Nat.ML
changeset 12931 2c0251fada94
parent 12486 0ed8bdd883e0
child 12949 b94843ffc0d1
--- a/src/HOL/Nat.ML	Sun Feb 24 21:47:33 2002 +0100
+++ b/src/HOL/Nat.ML	Mon Feb 25 10:42:34 2002 +0100
@@ -258,6 +258,18 @@
                                  delsimps [add_0_right]) 1);
 qed "add_eq_self_zero";
 
+(* a rather special thm needed for arith_tac: m+n = 0 may arise where m or n
+contain Suc. This contradiction must be detected. It cannot be detected by
+pulling Suc outside because this interferes with simprocs on
+numerals. Sigh. *)
+
+Goal "m ~= 0 ==> m+n ~= (0::nat)";
+by(Asm_full_simp_tac 1);
+qed "add_not_0_if_left_not_0";
+
+Goal "n ~= 0 ==> m+n ~= (0::nat)";
+by(Asm_full_simp_tac 1);
+qed "add_not_0_if_right_not_0";
 
 (**** Additional theorems about "less than" ****)