src/HOL/Number_Theory/UniqueFactorization.thy
changeset 60981 e1159bd15982
parent 60567 19c277ea65ae
child 61714 7c1ad030f0c9
equal deleted inserted replaced
60980:213bae1c0757 60981:e1159bd15982
   723   shows "gcd x y =
   723   shows "gcd x y =
   724     (\<Prod>p \<in> prime_factors x \<union> prime_factors y. p ^ min (multiplicity p x) (multiplicity p y))"
   724     (\<Prod>p \<in> prime_factors x \<union> prime_factors y. p ^ min (multiplicity p x) (multiplicity p y))"
   725   (is "_ = ?z")
   725   (is "_ = ?z")
   726 proof -
   726 proof -
   727   have [arith]: "?z > 0"
   727   have [arith]: "?z > 0"
   728     by (rule setprod_pos_nat) auto
   728     by auto
   729   have aux: "\<And>p. prime p \<Longrightarrow> multiplicity p ?z = min (multiplicity p x) (multiplicity p y)"
   729   have aux: "\<And>p. prime p \<Longrightarrow> multiplicity p ?z = min (multiplicity p x) (multiplicity p y)"
   730     apply (subst multiplicity_prod_prime_powers_nat)
   730     apply (subst multiplicity_prod_prime_powers_nat)
   731     apply auto
   731     apply auto
   732     done
   732     done
   733   have "?z dvd x"
   733   have "?z dvd x"
   757   shows "lcm (x::nat) y =
   757   shows "lcm (x::nat) y =
   758     (\<Prod>p \<in> prime_factors x \<union> prime_factors y. p ^ max (multiplicity p x) (multiplicity p y))"
   758     (\<Prod>p \<in> prime_factors x \<union> prime_factors y. p ^ max (multiplicity p x) (multiplicity p y))"
   759   (is "_ = ?z")
   759   (is "_ = ?z")
   760 proof -
   760 proof -
   761   have [arith]: "?z > 0"
   761   have [arith]: "?z > 0"
   762     by (rule setprod_pos_nat, auto)
   762     by auto
   763   have aux: "\<And>p. prime p \<Longrightarrow> multiplicity p ?z = max (multiplicity p x) (multiplicity p y)"
   763   have aux: "\<And>p. prime p \<Longrightarrow> multiplicity p ?z = max (multiplicity p x) (multiplicity p y)"
   764     apply (subst multiplicity_prod_prime_powers_nat)
   764     apply (subst multiplicity_prod_prime_powers_nat)
   765     apply auto
   765     apply auto
   766     done
   766     done
   767   have "x dvd ?z"
   767   have "x dvd ?z"