src/HOL/Old_Number_Theory/Euler.thy
changeset 57512 cc97b347b301
parent 57492 74bf65a1910a
child 57514 bdc2c6b40bf2
equal deleted inserted replaced
57511:de51a86fc903 57512:cc97b347b301
   146   apply (subgoal_tac "[x * (a * MultInv p x) = a * (x * MultInv p x)] (mod p)")
   146   apply (subgoal_tac "[x * (a * MultInv p x) = a * (x * MultInv p x)] (mod p)")
   147   apply (drule_tac a = "StandardRes p x * StandardRes p (a * MultInv p x)" and
   147   apply (drule_tac a = "StandardRes p x * StandardRes p (a * MultInv p x)" and
   148                    b = "x * (a * MultInv p x)" and
   148                    b = "x * (a * MultInv p x)" and
   149                    c = "a * (x * MultInv p x)" in  zcong_trans, force)
   149                    c = "a * (x * MultInv p x)" in  zcong_trans, force)
   150   apply (frule_tac p = p and x = x in MultInv_prop2, auto)
   150   apply (frule_tac p = p and x = x in MultInv_prop2, auto)
   151 apply (metis StandardRes_SRStar_prop3 mult_1_right mult_commute zcong_sym zcong_zmult_prop1)
   151 apply (metis StandardRes_SRStar_prop3 mult_1_right mult.commute zcong_sym zcong_zmult_prop1)
   152   apply (auto simp add: mult_ac)
   152   apply (auto simp add: mult_ac)
   153   done
   153   done
   154 
   154 
   155 lemma aux1: "[| 0 < x; (x::int) < a; x \<noteq> (a - 1) |] ==> x < a - 1"
   155 lemma aux1: "[| 0 < x; (x::int) < a; x \<noteq> (a - 1) |] ==> x < a - 1"
   156   by arith
   156   by arith