tidied some messy proofs
authorpaulson
Mon, 17 Dec 2007 18:27:48 +0100
changeset 25675 2488fc510178
parent 25674 b04508c59b9d
child 25676 f3815084e89e
tidied some messy proofs
src/HOL/NumberTheory/Euler.thy
src/HOL/NumberTheory/Int2.thy
--- a/src/HOL/NumberTheory/Euler.thy	Mon Dec 17 18:24:44 2007 +0100
+++ b/src/HOL/NumberTheory/Euler.thy	Mon Dec 17 18:27:48 2007 +0100
@@ -91,9 +91,7 @@
   apply (auto simp add: MultInvPair_def)
   apply (subgoal_tac "~ (StandardRes p j = StandardRes p (a * MultInv p j))")
   apply auto
-  apply (simp only: StandardRes_prop2)
-  apply (drule MultInvPair_distinct)
-  apply auto back
+  apply (metis MultInvPair_distinct Pls_def StandardRes_prop2 int_0_less_1 less_Pls_Bit0 number_of_is_id one_is_num_one order_less_trans)
   done
 
 
@@ -297,15 +295,14 @@
                       [x^(nat (((p) - 1) div 2)) = 1](mod p)"
   apply (subgoal_tac "p \<in> zOdd")
   apply (auto simp add: QuadRes_def)
+   prefer 2 
+   apply (metis number_of_is_id numeral_1_eq_1 zprime_zOdd_eq_grt_2)
   apply (frule aux__1, auto)
   apply (drule_tac z = "nat ((p - 1) div 2)" in zcong_zpower)
-  apply (auto simp add: zpower_zpower)
+  apply (auto simp add: zpower_zpower) 
   apply (rule zcong_trans)
   apply (auto simp add: zcong_sym [of "x ^ nat ((p - 1) div 2)"])
-  apply (simp add: aux__2)
-  apply (frule odd_minus_one_even)
-  apply (frule even_div_2_prop2)
-  apply (auto intro: Little_Fermat simp add: zprime_zOdd_eq_grt_2)
+  apply (metis Little_Fermat even_div_2_prop2 mult_num0 number_of_is_id odd_minus_one_even one_is_num_one zmult_1 aux__2)
   done
 
 
--- a/src/HOL/NumberTheory/Int2.thy	Mon Dec 17 18:24:44 2007 +0100
+++ b/src/HOL/NumberTheory/Int2.thy	Mon Dec 17 18:27:48 2007 +0100
@@ -124,13 +124,7 @@
 
 lemma zcong_less_eq: "[| 0 < x; 0 < y; 0 < m; [x = y] (mod m);
     x < m; y < m |] ==> x = y"
-  apply (simp add: zcong_zmod_eq)
-  apply (subgoal_tac "(x mod m) = x")
-  apply (subgoal_tac "(y mod m) = y")
-  apply simp
-  apply (rule_tac [1-2] mod_pos_pos_trivial)
-  apply auto
-  done
+  by (metis zcong_not zcong_sym zless_linear)
 
 lemma zcong_neg_1_impl_ne_1: "[| 2 < p; [x = -1] (mod p) |] ==>
     ~([x = 1] (mod p))"