src/HOL/Number_Theory/Cong.thy
changeset 55242 413ec965f95d
parent 55161 8eb891539804
child 55321 eadea363deb6
equal deleted inserted replaced
55241:ef601c60ccbe 55242:413ec965f95d
   259 
   259 
   260 lemma cong_abs_int: "[(x::int) = y] (mod abs m) = [x = y] (mod m)"
   260 lemma cong_abs_int: "[(x::int) = y] (mod abs m) = [x = y] (mod m)"
   261   by (simp add: cong_altdef_int)
   261   by (simp add: cong_altdef_int)
   262 
   262 
   263 lemma cong_square_int:
   263 lemma cong_square_int:
   264    "\<lbrakk> prime (p::int); 0 < a; [a * a = 1] (mod p) \<rbrakk>
   264   fixes a::int
       
   265   shows "\<lbrakk> prime p; 0 < a; [a * a = 1] (mod p) \<rbrakk>
   265     \<Longrightarrow> [a = 1] (mod p) \<or> [a = - 1] (mod p)"
   266     \<Longrightarrow> [a = 1] (mod p) \<or> [a = - 1] (mod p)"
   266   apply (simp only: cong_altdef_int)
   267   apply (simp only: cong_altdef_int)
   267   apply (subst prime_dvd_mult_eq_int [symmetric], assumption)
   268   apply (subst prime_dvd_mult_eq_int [symmetric], assumption)
   268   apply (auto simp add: field_simps)
   269   apply (auto simp add: field_simps)
   269   done
   270   done