
diff -r 3ae38d4b090c -r e33ee7369ecb src/HOL/GCD.thy
--- a/src/HOL/GCD.thy	Fri Jan 01 16:34:51 2010 +0100
+++ b/src/HOL/GCD.thy	Fri Jan 01 17:21:44 2010 +0100
@@ -1684,6 +1684,20 @@
   show ?thesis by(simp add: Gcd_def fold_set gcd_commute_int)
 qed
 
+
+lemma mult_inj_if_coprime_nat:
+  "inj_on f A \<Longrightarrow> inj_on g B \<Longrightarrow> ALL a:A. ALL b:B. coprime (f a) (g b)
+   \<Longrightarrow> inj_on (%(a,b). f a * g b::nat) (A \<times> B)"
+apply(auto simp add:inj_on_def)
+apply (metis coprime_dvd_mult_nat dvd.eq_iff gcd_lcm_lattice_nat.inf_sup_absorb
+     gcd_semilattice_nat.inf_le2 lcm_proj2_iff_nat nat_mult_1 prod_gcd_lcm_nat)
+apply (metis coprime_dvd_mult_nat gcd_proj1_if_dvd_nat
+       gcd_semilattice_nat.inf_commute lcm_dvd1_nat nat_mult_1
+       nat_mult_commute prod_gcd_lcm_nat)
+done
+
+text{* Nitpick: *}
+
 lemma gcd_eq_nitpick_gcd [nitpick_def]: "gcd x y \<equiv> Nitpick.nat_gcd x y"
 apply (rule eq_reflection)
 apply (induct x y rule: nat_gcd.induct)




