src/HOL/Algebra/Zassenhaus.thy
changeset 70019 095dce9892e8
parent 68605 440aa6b7d99a
equal deleted inserted replaced
70018:571909ef3103 70019:095dce9892e8
   201   have "\<one> \<in> H" using  assms(2) subgroup_def by blast
   201   have "\<one> \<in> H" using  assms(2) subgroup_def by blast
   202   hence "N #> \<one>  \<subseteq> N <#> H" unfolding set_mult_def r_coset_def by blast
   202   hence "N #> \<one>  \<subseteq> N <#> H" unfolding set_mult_def r_coset_def by blast
   203   hence N_incl : "N \<subseteq> N <#> H"
   203   hence N_incl : "N \<subseteq> N <#> H"
   204     by (metis assms(1) normal_imp_subgroup coset_mult_one subgroup_def)
   204     by (metis assms(1) normal_imp_subgroup coset_mult_one subgroup_def)
   205   thus "normal N (G\<lparr>carrier := N <#> H\<rparr>)"
   205   thus "normal N (G\<lparr>carrier := N <#> H\<rparr>)"
   206     using normal_inter_subgroup[OF mult_norm_subgroup[OF assms] assms(1)]
   206     using normal_Int_subgroup[OF mult_norm_subgroup[OF assms] assms(1)]
   207     by (simp add : inf_absorb1)
   207     by (simp add : inf_absorb1)
   208 qed
   208 qed
   209 
   209 
   210 
   210 
   211 proposition (in group) weak_snd_iso_thme:
   211 proposition (in group) weak_snd_iso_thme:
   306         by simp
   306         by simp
   307     qed
   307     qed
   308     ultimately have "(G\<lparr>carrier := H\<rparr> Mod N \<inter> H) \<cong> (G\<lparr>carrier := N <#> H\<rparr> Mod N)"
   308     ultimately have "(G\<lparr>carrier := H\<rparr> Mod N \<inter> H) \<cong> (G\<lparr>carrier := N <#> H\<rparr> Mod N)"
   309       using group_hom.FactGroup_iso[OF homomorphism im_f] by auto
   309       using group_hom.FactGroup_iso[OF homomorphism im_f] by auto
   310     hence "G\<lparr>carrier := N <#> H\<rparr> Mod N \<cong> G\<lparr>carrier := H\<rparr> Mod N \<inter> H"
   310     hence "G\<lparr>carrier := N <#> H\<rparr> Mod N \<cong> G\<lparr>carrier := H\<rparr> Mod N \<inter> H"
   311       by (simp add: group.iso_sym assms normal.factorgroup_is_group normal_inter_subgroup)
   311       by (simp add: group.iso_sym assms normal.factorgroup_is_group normal_Int_subgroup)
   312     thus "G\<lparr>carrier := N <#> H\<rparr> Mod N \<cong> G\<lparr>carrier := H\<rparr> Mod N \<inter> H" by auto
   312     thus "G\<lparr>carrier := N <#> H\<rparr> Mod N \<cong> G\<lparr>carrier := H\<rparr> Mod N \<inter> H" by auto
   313 qed
   313 qed
   314 
   314 
   315 
   315 
   316 theorem (in group) snd_iso_thme:
   316 theorem (in group) snd_iso_thme:
   634     show "subgroup (K \<inter> H1) (G\<lparr>carrier := H \<inter> K\<rparr>)"
   634     show "subgroup (K \<inter> H1) (G\<lparr>carrier := H \<inter> K\<rparr>)"
   635       using subgroup_incl by (simp add: assms inf_commute normal_imp_subgroup normal_inter)
   635       using subgroup_incl by (simp add: assms inf_commute normal_imp_subgroup normal_inter)
   636   qed
   636   qed
   637   hence  "Gmod3  = Gmod4" using Hp Gmod4_def by simp
   637   hence  "Gmod3  = Gmod4" using Hp Gmod4_def by simp
   638   hence "Gmod1 \<cong> Gmod2"
   638   hence "Gmod1 \<cong> Gmod2"
   639     using group.iso_sym group.iso_trans Hyp normal.factorgroup_is_group
   639     by (metis assms group.iso_sym iso_trans Hyp normal.factorgroup_is_group Gmod2_def preliminary2)
   640     by (metis assms Gmod1_def Gmod2_def preliminary2)
       
   641   thus ?thesis using Gmod1_def Gmod2_def by (simp add: inf_commute)
   640   thus ?thesis using Gmod1_def Gmod2_def by (simp add: inf_commute)
   642 qed
   641 qed
   643 
   642 
   644 end
   643 end