src/HOL/Library/GCD.thy
changeset 23431 25ca91279a9b
parent 23365 f31794033ae1
child 23687 06884f7ffb18
equal deleted inserted replaced
23430:771117253634 23431:25ca91279a9b
   263     unfolding dvd_def
   263     unfolding dvd_def
   264     by (rule_tac x= "nat \<bar>h\<bar>" in exI, simp add: h nat_abs_mult_distrib [symmetric])
   264     by (rule_tac x= "nat \<bar>h\<bar>" in exI, simp add: h nat_abs_mult_distrib [symmetric])
   265   from relprime_dvd_mult [OF g th] obtain h' where h': "nat \<bar>k\<bar> = nat \<bar>i\<bar> * h'"
   265   from relprime_dvd_mult [OF g th] obtain h' where h': "nat \<bar>k\<bar> = nat \<bar>i\<bar> * h'"
   266     unfolding dvd_def by blast
   266     unfolding dvd_def by blast
   267   from h' have "int (nat \<bar>k\<bar>) = int (nat \<bar>i\<bar> * h')" by simp
   267   from h' have "int (nat \<bar>k\<bar>) = int (nat \<bar>i\<bar> * h')" by simp
   268   then have "\<bar>k\<bar> = \<bar>i\<bar> * int h'" by simp
   268   then have "\<bar>k\<bar> = \<bar>i\<bar> * int h'" by (simp add: int_mult)
   269   then show ?thesis
   269   then show ?thesis
   270     apply (subst zdvd_abs1 [symmetric])
   270     apply (subst zdvd_abs1 [symmetric])
   271     apply (subst zdvd_abs2 [symmetric])
   271     apply (subst zdvd_abs2 [symmetric])
   272     apply (unfold dvd_def)
   272     apply (unfold dvd_def)
   273     apply (rule_tac x = "int h'" in exI, simp)
   273     apply (rule_tac x = "int h'" in exI, simp)