src/HOL/GCD.thy
changeset 69768 7e4966eaf781
parent 69593 3dda49e08b9d
child 69785 9e326f6f8a24
equal deleted inserted replaced
69767:d10fafeb93c0 69768:7e4966eaf781
  1028   have "c dvd c * x"
  1028   have "c dvd c * x"
  1029     by simp
  1029     by simp
  1030   also from x have "c * x dvd Lcm ((*) c ` A)"
  1030   also from x have "c * x dvd Lcm ((*) c ` A)"
  1031     by (intro dvd_Lcm) auto
  1031     by (intro dvd_Lcm) auto
  1032   finally have dvd: "c dvd Lcm ((*) c ` A)" .
  1032   finally have dvd: "c dvd Lcm ((*) c ` A)" .
  1033 
  1033   moreover have "Lcm A dvd Lcm ((*) c ` A) div c"
  1034   have "Lcm A dvd Lcm ((*) c ` A) div c"
       
  1035     by (intro Lcm_least dvd_mult_imp_div)
  1034     by (intro Lcm_least dvd_mult_imp_div)
  1036       (auto intro!: Lcm_least dvd_Lcm simp: mult.commute[of _ c])
  1035       (auto intro!: Lcm_least dvd_Lcm simp: mult.commute[of _ c])
  1037   then have "c * Lcm A dvd Lcm ((*) c ` A)"
  1036   ultimately have "c * Lcm A dvd Lcm ((*) c ` A)"
  1038     by (subst (asm) dvd_div_iff_mult) (auto intro!: Lcm_least simp: mult_ac dvd)
  1037     by auto
  1039   also have "c * Lcm A = (normalize c * Lcm A) * unit_factor c"
  1038   also have "c * Lcm A = (normalize c * Lcm A) * unit_factor c"
  1040     by (subst unit_factor_mult_normalize [symmetric]) (simp only: mult_ac)
  1039     by (subst unit_factor_mult_normalize [symmetric]) (simp only: mult_ac)
  1041   also have "\<dots> dvd Lcm ((*) c ` A) \<longleftrightarrow> normalize c * Lcm A dvd Lcm ((*) c ` A)"
  1040   also have "\<dots> dvd Lcm ((*) c ` A) \<longleftrightarrow> normalize c * Lcm A dvd Lcm ((*) c ` A)"
  1042     by (simp add: mult_unit_dvd_iff)
  1041     by (simp add: mult_unit_dvd_iff)
  1043   finally have "normalize c * Lcm A dvd Lcm ((*) c ` A)" .
  1042   finally have "normalize c * Lcm A dvd Lcm ((*) c ` A)" .