equal
deleted
inserted
replaced
204 subgroup.m_closed solve_equation) |
204 subgroup.m_closed solve_equation) |
205 |
205 |
206 lemma (in group) coset_join2: |
206 lemma (in group) coset_join2: |
207 assumes "x \<in> carrier G" "subgroup H G" "x \<in> H" |
207 assumes "x \<in> carrier G" "subgroup H G" "x \<in> H" |
208 shows "H #> x = H" using assms |
208 shows "H #> x = H" using assms |
209 \<comment> \<open>Alternative proof is to put @{term "x=\<one>"} in \<open>repr_independence\<close>.\<close> |
209 \<comment> \<open>Alternative proof is to put \<^term>\<open>x=\<one>\<close> in \<open>repr_independence\<close>.\<close> |
210 by (force simp add: subgroup.m_closed r_coset_def solve_equation) |
210 by (force simp add: subgroup.m_closed r_coset_def solve_equation) |
211 |
211 |
212 lemma (in group) coset_join3: |
212 lemma (in group) coset_join3: |
213 assumes "x \<in> carrier G" "subgroup H G" "x \<in> H" |
213 assumes "x \<in> carrier G" "subgroup H G" "x \<in> H" |
214 shows "x <# H = H" |
214 shows "x <# H = H" |
932 by (simp add: \<open>X \<in> rcosets H\<close> setinv_closed) |
932 by (simp add: \<open>X \<in> rcosets H\<close> setinv_closed) |
933 ultimately show ?thesis |
933 ultimately show ?thesis |
934 by (simp add: FactGroup_def group.inv_equality) |
934 by (simp add: FactGroup_def group.inv_equality) |
935 qed |
935 qed |
936 |
936 |
937 text\<open>The coset map is a homomorphism from @{term G} to the quotient group |
937 text\<open>The coset map is a homomorphism from \<^term>\<open>G\<close> to the quotient group |
938 @{term "G Mod H"}\<close> |
938 \<^term>\<open>G Mod H\<close>\<close> |
939 lemma (in normal) r_coset_hom_Mod: |
939 lemma (in normal) r_coset_hom_Mod: |
940 "(\<lambda>a. H #> a) \<in> hom G (G Mod H)" |
940 "(\<lambda>a. H #> a) \<in> hom G (G Mod H)" |
941 by (auto simp add: FactGroup_def RCOSETS_def Pi_def hom_def rcos_sum) |
941 by (auto simp add: FactGroup_def RCOSETS_def Pi_def hom_def rcos_sum) |
942 |
942 |
943 |
943 |
1039 hence h: "h g = h g'" |
1039 hence h: "h g = h g'" |
1040 by (simp add: all FactGroup_nonempty X X' the_elem_image_unique) |
1040 by (simp add: all FactGroup_nonempty X X' the_elem_image_unique) |
1041 show "X=X'" by (rule equalityI) (simp_all add: FactGroup_subset h gX) |
1041 show "X=X'" by (rule equalityI) (simp_all add: FactGroup_subset h gX) |
1042 qed |
1042 qed |
1043 |
1043 |
1044 text\<open>If the homomorphism @{term h} is onto @{term H}, then so is the |
1044 text\<open>If the homomorphism \<^term>\<open>h\<close> is onto \<^term>\<open>H\<close>, then so is the |
1045 homomorphism from the quotient group\<close> |
1045 homomorphism from the quotient group\<close> |
1046 lemma (in group_hom) FactGroup_onto: |
1046 lemma (in group_hom) FactGroup_onto: |
1047 assumes h: "h ` carrier G = carrier H" |
1047 assumes h: "h ` carrier G = carrier H" |
1048 shows "(\<lambda>X. the_elem (h ` X)) ` carrier (G Mod kernel G H h) = carrier H" |
1048 shows "(\<lambda>X. the_elem (h ` X)) ` carrier (G Mod kernel G H h) = carrier H" |
1049 proof |
1049 proof |
1064 done |
1064 done |
1065 qed |
1065 qed |
1066 qed |
1066 qed |
1067 |
1067 |
1068 |
1068 |
1069 text\<open>If @{term h} is a homomorphism from @{term G} onto @{term H}, then the |
1069 text\<open>If \<^term>\<open>h\<close> is a homomorphism from \<^term>\<open>G\<close> onto \<^term>\<open>H\<close>, then the |
1070 quotient group @{term "G Mod (kernel G H h)"} is isomorphic to @{term H}.\<close> |
1070 quotient group \<^term>\<open>G Mod (kernel G H h)\<close> is isomorphic to \<^term>\<open>H\<close>.\<close> |
1071 theorem (in group_hom) FactGroup_iso_set: |
1071 theorem (in group_hom) FactGroup_iso_set: |
1072 "h ` carrier G = carrier H |
1072 "h ` carrier G = carrier H |
1073 \<Longrightarrow> (\<lambda>X. the_elem (h`X)) \<in> iso (G Mod (kernel G H h)) H" |
1073 \<Longrightarrow> (\<lambda>X. the_elem (h`X)) \<in> iso (G Mod (kernel G H h)) H" |
1074 by (simp add: iso_def FactGroup_hom FactGroup_inj_on bij_betw_def |
1074 by (simp add: iso_def FactGroup_hom FactGroup_inj_on bij_betw_def |
1075 FactGroup_onto) |
1075 FactGroup_onto) |