src/HOL/Algebra/Divisibility.thy
changeset 70214 58191e01f0b1
parent 69895 6b03a8cf092d
child 70215 8371a25ca177
equal deleted inserted replaced
70213:ff8386fc191d 70214:58191e01f0b1
   396   by (meson associated_def divides_trans)
   396   by (meson associated_def divides_trans)
   397 
   397 
   398 
   398 
   399 subsubsection \<open>Multiplication and associativity\<close>
   399 subsubsection \<open>Multiplication and associativity\<close>
   400 
   400 
   401 lemma (in monoid_cancel) mult_cong_r:
   401 lemma (in monoid) mult_cong_r:
   402   assumes "b \<sim> b'" "a \<in> carrier G"  "b \<in> carrier G"  "b' \<in> carrier G"
   402   assumes "b \<sim> b'" "a \<in> carrier G"  "b \<in> carrier G"  "b' \<in> carrier G"
   403   shows "a \<otimes> b \<sim> a \<otimes> b'"
   403   shows "a \<otimes> b \<sim> a \<otimes> b'"
   404   by (meson assms associated_def divides_mult_lI)
   404   by (meson assms associated_def divides_mult_lI)
   405 
   405 
   406 lemma (in comm_monoid_cancel) mult_cong_l:
   406 lemma (in comm_monoid) mult_cong_l:
   407   assumes "a \<sim> a'" "a \<in> carrier G"  "a' \<in> carrier G"  "b \<in> carrier G"
   407   assumes "a \<sim> a'" "a \<in> carrier G"  "a' \<in> carrier G"  "b \<in> carrier G"
   408   shows "a \<otimes> b \<sim> a' \<otimes> b"
   408   shows "a \<otimes> b \<sim> a' \<otimes> b"
   409   using assms m_comm mult_cong_r by auto
   409   using assms m_comm mult_cong_r by auto
   410 
   410 
   411 lemma (in monoid_cancel) assoc_l_cancel:
   411 lemma (in monoid_cancel) assoc_l_cancel:
   721     qed
   721     qed
   722     from this bunit show "P" by (rule e1)
   722     from this bunit show "P" by (rule e1)
   723   qed
   723   qed
   724 qed
   724 qed
   725 
   725 
       
   726 lemma divides_irreducible_condition:
       
   727   assumes "irreducible G r" and "a \<in> carrier G"
       
   728   shows "a divides\<^bsub>G\<^esub> r \<Longrightarrow> a \<in> Units G \<or> a \<sim>\<^bsub>G\<^esub> r"
       
   729   using assms unfolding irreducible_def properfactor_def associated_def
       
   730   by (cases "r divides\<^bsub>G\<^esub> a", auto)
   726 
   731 
   727 subsubsection \<open>Prime elements\<close>
   732 subsubsection \<open>Prime elements\<close>
   728 
   733 
   729 lemma primeI:
   734 lemma primeI:
   730   fixes G (structure)
   735   fixes G (structure)