tidying and consolidating files
authorpaulson
Tue, 26 Jun 2001 17:04:09 +0200
changeset 11381 4ab3b7b0938f
parent 11380 e76366922751
child 11382 a816fead971a
tidying and consolidating files
src/ZF/Integ/Bin.ML
src/ZF/Integ/Bin.thy
src/ZF/Integ/Int.ML
src/ZF/Integ/IntDiv.ML
--- a/src/ZF/Integ/Bin.ML	Tue Jun 26 16:54:39 2001 +0200
+++ b/src/ZF/Integ/Bin.ML	Tue Jun 26 17:04:09 2001 +0200
@@ -396,10 +396,6 @@
 by (asm_simp_tac (simpset() addsimps [equation_zminus, int_of_diff RS sym])1);
 qed "neg_integ_of_BIT"; 
 
-Goal "w: bin ==> iszero (integ_of (w BIT 0)) <-> iszero (integ_of(w))"; 
-by (asm_simp_tac (ZF_ss addsimps [iszero_integ_of_BIT]) 1); 
-qed "iszero_integ_of_0"; 
-
 (** Less-than-or-equals (<=) **)
 
 Goal "(integ_of(x) $<= (integ_of(w))) <-> ~ (integ_of(w) $< (integ_of(x)))";
--- a/src/ZF/Integ/Bin.thy	Tue Jun 26 16:54:39 2001 +0200
+++ b/src/ZF/Integ/Bin.thy	Tue Jun 26 17:04:09 2001 +0200
@@ -14,8 +14,6 @@
 
 The representation expects that (m mod 2) is 0 or 1, even if m is negative;
 For instance, ~5 div 2 = ~3 and ~5 mod 2 = 1; thus ~5 = (~3)*2 + 1
-
-Division is not defined yet!
 *)
 
 Bin = Int + Datatype +
--- a/src/ZF/Integ/Int.ML	Tue Jun 26 16:54:39 2001 +0200
+++ b/src/ZF/Integ/Int.ML	Tue Jun 26 17:04:09 2001 +0200
@@ -986,6 +986,29 @@
 Addsimps [zadd_right_cancel_zle, zadd_left_cancel_zle];
 
 
+(*"v $<= w ==> v$+z $<= w$+z"*)
+bind_thm ("zadd_zless_mono1", zadd_right_cancel_zless RS iffD2);
+
+(*"v $<= w ==> z$+v $<= z$+w"*)
+bind_thm ("zadd_zless_mono2", zadd_left_cancel_zless RS iffD2);
+
+(*"v $<= w ==> v$+z $<= w$+z"*)
+bind_thm ("zadd_zle_mono1", zadd_right_cancel_zle RS iffD2);
+
+(*"v $<= w ==> z$+v $<= z$+w"*)
+bind_thm ("zadd_zle_mono2", zadd_left_cancel_zle RS iffD2);
+
+Goal "[| w' $<= w; z' $<= z |] ==> w' $+ z' $<= w $+ z";
+by (etac (zadd_zle_mono1 RS zle_trans) 1);
+by (Simp_tac 1);
+qed "zadd_zle_mono";
+
+Goal "[| w' $< w; z' $<= z |] ==> w' $+ z' $< w $+ z";
+by (etac (zadd_zless_mono1 RS zless_zle_trans) 1);
+by (Simp_tac 1);
+qed "zadd_zless_mono";
+
+
 (*** Comparison laws ***)
 
 Goal "($- x $< $- y) <-> (y $< x)";
--- a/src/ZF/Integ/IntDiv.ML	Tue Jun 26 16:54:39 2001 +0200
+++ b/src/ZF/Integ/IntDiv.ML	Tue Jun 26 17:04:09 2001 +0200
@@ -90,51 +90,6 @@
 qed "add1_left_zle_iff";
 
 
-(*** Monotonicity results ***)
-
-Goal "(v$+z $< w$+z) <-> (v $< w)";
-by (Simp_tac 1);
-qed "zadd_right_cancel_zless";
-
-Goal "(z$+v $< z$+w) <-> (v $< w)";
-by (Simp_tac 1);
-qed "zadd_left_cancel_zless";
-
-Addsimps [zadd_right_cancel_zless, zadd_left_cancel_zless];
-
-Goal "(v$+z $<= w$+z) <-> (v $<= w)";
-by (Simp_tac 1);
-qed "zadd_right_cancel_zle";
-
-Goal "(z$+v $<= z$+w) <-> (v $<= w)";
-by (Simp_tac 1);
-qed "zadd_left_cancel_zle";
-
-Addsimps [zadd_right_cancel_zle, zadd_left_cancel_zle];
-
-(*"v $<= w ==> v$+z $<= w$+z"*)
-bind_thm ("zadd_zless_mono1", zadd_right_cancel_zless RS iffD2);
-
-(*"v $<= w ==> z$+v $<= z$+w"*)
-bind_thm ("zadd_zless_mono2", zadd_left_cancel_zless RS iffD2);
-
-(*"v $<= w ==> v$+z $<= w$+z"*)
-bind_thm ("zadd_zle_mono1", zadd_right_cancel_zle RS iffD2);
-
-(*"v $<= w ==> z$+v $<= z$+w"*)
-bind_thm ("zadd_zle_mono2", zadd_left_cancel_zle RS iffD2);
-
-Goal "[| w' $<= w; z' $<= z |] ==> w' $+ z' $<= w $+ z";
-by (etac (zadd_zle_mono1 RS zle_trans) 1);
-by (Simp_tac 1);
-qed "zadd_zle_mono";
-
-Goal "[| w' $< w; z' $<= z |] ==> w' $+ z' $< w $+ z";
-by (etac (zadd_zless_mono1 RS zless_zle_trans) 1);
-by (Simp_tac 1);
-qed "zadd_zless_mono";
-
-
 (*** Monotonicity of Multiplication ***)
 
 Goal "k \\<in> nat ==> i $<= j ==> i $* $#k $<= j $* $#k";
@@ -235,6 +190,9 @@
 				      zmult_zless_mono2, zless_zminus]) 1);
 qed "zmult_zless_mono2_neg";
 
+
+(** Products of zeroes **)
+
 Goal "[| m \\<in> int; n \\<in> int |] ==> (m$*n = #0) <-> (m = #0 | n = #0)";
 by (case_tac "m $< #0" 1);
 by (auto_tac (claset(), 
@@ -247,6 +205,7 @@
 Goal "(m$*n = #0) <-> (intify(m) = #0 | intify(n) = #0)";
 by (asm_full_simp_tac (simpset() addsimps [lemma RS iff_sym]) 1);
 qed "zmult_eq_0_iff";
+AddIffs [zmult_eq_0_iff];
 
 
 (** Cancellation laws for k*m < k*n and m*k < n*k, also for <= and =,
@@ -437,27 +396,6 @@
 qed "intify_eq_0_iff_zle";
 
 
-
-(*** Products of zeroes ***)
-
-Goal "[| x \\<in> int; y \\<in> int |] \
-\     ==> (x $* y = #0) <-> (intify(x) = #0 | intify(y) = #0)";
-by (case_tac "x $< #0" 1);
-by (auto_tac (claset(), 
-      simpset() addsimps [not_zless_iff_zle, zle_def, neq_iff_zless]));
-by (REPEAT
-    (force_tac (claset() addDs [zmult_zless_mono1_neg, zmult_zless_mono1], 
-		simpset()) 1));
-qed "zmult_eq_0_iff_lemma";
-
-Goal "(x $* y = #0) <-> (intify(x) = #0 | intify(y) = #0)";
-by (cut_inst_tac [("x","intify(x)"),("y","intify(y)")] 
-                 zmult_eq_0_iff_lemma 1);
-by Auto_tac; 
-qed "zmult_eq_0_iff";
-AddIffs [zmult_eq_0_iff];
-
-
 (*** Some convenient biconditionals for products of signs ***)
 
 Goal "[| #0 $< i; #0 $< j |] ==> #0 $< i $* j";