src/HOL/Computational_Algebra/Primes.thy
changeset 82518 da14e77a48b2
parent 80084 173548e4d5d0
equal deleted inserted replaced
82517:111b1b2a2d13 82518:da14e77a48b2
   540   fixes p :: nat
   540   fixes p :: nat
   541   assumes p: "prime p"
   541   assumes p: "prime p"
   542   shows "d dvd p ^ k \<longleftrightarrow> (\<exists>i\<le>k. d = p ^ i)"
   542   shows "d dvd p ^ k \<longleftrightarrow> (\<exists>i\<le>k. d = p ^ i)"
   543   using assms divides_primepow [of p d k] by (auto intro: le_imp_power_dvd)
   543   using assms divides_primepow [of p d k] by (auto intro: le_imp_power_dvd)
   544 
   544 
       
   545 lemma gcd_prime_int:
       
   546   assumes "prime (p :: int)"
       
   547   shows   "gcd p k = (if p dvd k then p else 1)"
       
   548 proof -
       
   549   have "p \<ge> 0"
       
   550     using assms prime_ge_0_int by auto
       
   551   show ?thesis
       
   552   proof (cases "p dvd k")
       
   553     case True
       
   554     thus ?thesis using assms \<open>p \<ge> 0\<close> by auto
       
   555   next
       
   556     case False
       
   557     hence "coprime p k"
       
   558       using assms by (simp add: prime_imp_coprime)
       
   559     with False show ?thesis
       
   560       by auto
       
   561   qed
       
   562 qed
       
   563 
   545 
   564 
   546 subsection \<open>Chinese Remainder Theorem Variants\<close>
   565 subsection \<open>Chinese Remainder Theorem Variants\<close>
   547 
   566 
   548 lemma bezout_gcd_nat:
   567 lemma bezout_gcd_nat:
   549   fixes a::nat shows "\<exists>x y. a * x - b * y = gcd a b \<or> b * x - a * y = gcd a b"
   568   fixes a::nat shows "\<exists>x y. a * x - b * y = gcd a b \<or> b * x - a * y = gcd a b"