equal
deleted
inserted
replaced
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 |