src/HOL/Algebra/Group.thy
changeset 44655 fe0365331566
parent 44472 6f2943e34d60
child 44890 22f665a2e91c
equal deleted inserted replaced
44654:d80fe56788a5 44655:fe0365331566
   284     from x y show "\<exists>y \<in> carrier G. y \<otimes> x = \<one> & x \<otimes> y = \<one>"
   284     from x y show "\<exists>y \<in> carrier G. y \<otimes> x = \<one> & x \<otimes> y = \<one>"
   285       by (fast intro: l_inv r_inv)
   285       by (fast intro: l_inv r_inv)
   286   qed
   286   qed
   287   then have carrier_subset_Units: "carrier G <= Units G"
   287   then have carrier_subset_Units: "carrier G <= Units G"
   288     by (unfold Units_def) fast
   288     by (unfold Units_def) fast
   289   show ?thesis proof qed (auto simp: r_one m_assoc carrier_subset_Units)
   289   show ?thesis by default (auto simp: r_one m_assoc carrier_subset_Units)
   290 qed
   290 qed
   291 
   291 
   292 lemma (in monoid) group_l_invI:
   292 lemma (in monoid) group_l_invI:
   293   assumes l_inv_ex:
   293   assumes l_inv_ex:
   294     "!!x. x \<in> carrier G ==> \<exists>y \<in> carrier G. y \<otimes> x = \<one>"
   294     "!!x. x \<in> carrier G ==> \<exists>y \<in> carrier G. y \<otimes> x = \<one>"
   692 
   692 
   693 lemma (in group) group_comm_groupI:
   693 lemma (in group) group_comm_groupI:
   694   assumes m_comm: "!!x y. [| x \<in> carrier G; y \<in> carrier G |] ==>
   694   assumes m_comm: "!!x y. [| x \<in> carrier G; y \<in> carrier G |] ==>
   695       x \<otimes> y = y \<otimes> x"
   695       x \<otimes> y = y \<otimes> x"
   696   shows "comm_group G"
   696   shows "comm_group G"
   697   proof qed (simp_all add: m_comm)
   697   by default (simp_all add: m_comm)
   698 
   698 
   699 lemma comm_groupI:
   699 lemma comm_groupI:
   700   fixes G (structure)
   700   fixes G (structure)
   701   assumes m_closed:
   701   assumes m_closed:
   702       "!!x y. [| x \<in> carrier G; y \<in> carrier G |] ==> x \<otimes> y \<in> carrier G"
   702       "!!x y. [| x \<in> carrier G; y \<in> carrier G |] ==> x \<otimes> y \<in> carrier G"
   720 
   720 
   721 text_raw {* \label{sec:subgroup-lattice} *}
   721 text_raw {* \label{sec:subgroup-lattice} *}
   722 
   722 
   723 theorem (in group) subgroups_partial_order:
   723 theorem (in group) subgroups_partial_order:
   724   "partial_order (| carrier = {H. subgroup H G}, eq = op =, le = op \<subseteq> |)"
   724   "partial_order (| carrier = {H. subgroup H G}, eq = op =, le = op \<subseteq> |)"
   725   proof qed simp_all
   725   by default simp_all
   726 
   726 
   727 lemma (in group) subgroup_self:
   727 lemma (in group) subgroup_self:
   728   "subgroup (carrier G) G"
   728   "subgroup (carrier G) G"
   729   by (rule subgroupI) auto
   729   by (rule subgroupI) auto
   730 
   730