equal
deleted
inserted
replaced
1652 apply(erule (2) Lcm_in_lcm_closed_set_nat) |
1652 apply(erule (2) Lcm_in_lcm_closed_set_nat) |
1653 apply clarsimp |
1653 apply clarsimp |
1654 apply (metis Lcm0_iff dvd_Lcm_nat dvd_imp_le neq0_conv) |
1654 apply (metis Lcm0_iff dvd_Lcm_nat dvd_imp_le neq0_conv) |
1655 done |
1655 done |
1656 |
1656 |
1657 lemma Lcm_set_nat [code_unfold]: |
1657 lemma Lcm_set_nat [code, code_unfold]: |
1658 "Lcm (set ns) = fold lcm ns (1::nat)" |
1658 "Lcm (set ns) = fold lcm ns (1::nat)" |
1659 by (fact gcd_lcm_complete_lattice_nat.Sup_set_fold) |
1659 by (fact gcd_lcm_complete_lattice_nat.Sup_set_fold) |
1660 |
1660 |
1661 lemma Gcd_set_nat [code_unfold]: |
1661 lemma Gcd_set_nat [code, code_unfold]: |
1662 "Gcd (set ns) = fold gcd ns (0::nat)" |
1662 "Gcd (set ns) = fold gcd ns (0::nat)" |
1663 by (fact gcd_lcm_complete_lattice_nat.Inf_set_fold) |
1663 by (fact gcd_lcm_complete_lattice_nat.Inf_set_fold) |
1664 |
1664 |
1665 lemma mult_inj_if_coprime_nat: |
1665 lemma mult_inj_if_coprime_nat: |
1666 "inj_on f A \<Longrightarrow> inj_on g B \<Longrightarrow> ALL a:A. ALL b:B. coprime (f a) (g b) |
1666 "inj_on f A \<Longrightarrow> inj_on g B \<Longrightarrow> ALL a:A. ALL b:B. coprime (f a) (g b) |
1728 lemma dvd_Gcd_int[simp]: |
1728 lemma dvd_Gcd_int[simp]: |
1729 fixes M :: "int set" |
1729 fixes M :: "int set" |
1730 assumes "\<forall>m\<in>M. n dvd m" shows "n dvd Gcd M" |
1730 assumes "\<forall>m\<in>M. n dvd m" shows "n dvd Gcd M" |
1731 using assms by (simp add: Gcd_int_def dvd_int_iff) |
1731 using assms by (simp add: Gcd_int_def dvd_int_iff) |
1732 |
1732 |
1733 lemma Lcm_set_int [code_unfold]: |
1733 lemma Lcm_set_int [code, code_unfold]: |
1734 "Lcm (set xs) = fold lcm xs (1::int)" |
1734 "Lcm (set xs) = fold lcm xs (1::int)" |
1735 by (induct xs rule: rev_induct, simp_all add: lcm_commute_int) |
1735 by (induct xs rule: rev_induct, simp_all add: lcm_commute_int) |
1736 |
1736 |
1737 lemma Gcd_set_int [code_unfold]: |
1737 lemma Gcd_set_int [code, code_unfold]: |
1738 "Gcd (set xs) = fold gcd xs (0::int)" |
1738 "Gcd (set xs) = fold gcd xs (0::int)" |
1739 by (induct xs rule: rev_induct, simp_all add: gcd_commute_int) |
1739 by (induct xs rule: rev_induct, simp_all add: gcd_commute_int) |
1740 |
1740 |
1741 end |
1741 end |
1742 |
1742 |