src/ZF/ex/Group.thy
changeset 22931 11cc1ccad58e
parent 21404 eb85850d3eb7
child 26199 04817a8802f2
--- a/src/ZF/ex/Group.thy	Thu May 10 22:11:38 2007 +0200
+++ b/src/ZF/ex/Group.thy	Fri May 11 00:43:45 2007 +0200
@@ -64,13 +64,13 @@
   by (simp add: update_carrier_def)
 
 lemma carrier_update_carrier [simp]: "carrier(update_carrier(M,B)) = B"
-by (simp add: update_carrier_def) 
+  by (simp add: update_carrier_def) 
 
 lemma mult_update_carrier [simp]: "mmult(update_carrier(M,B),x,y) = mmult(M,x,y)"
-by (simp add: update_carrier_def mmult_def) 
+  by (simp add: update_carrier_def mmult_def) 
 
 lemma one_update_carrier [simp]: "one(update_carrier(M,B)) = one(M)"
-by (simp add: update_carrier_def one_def) 
+  by (simp add: update_carrier_def one_def) 
 
 
 lemma (in monoid) inv_unique:
@@ -92,7 +92,7 @@
   assumes inv_ex:
      "\<And>x. x \<in> carrier(G) \<Longrightarrow> \<exists>y \<in> carrier(G). y \<cdot> x = \<one> & x \<cdot> y = \<one>"
 
-lemma (in group) is_group [simp]: "group(G)" .
+lemma (in group) is_group [simp]: "group(G)" by fact
 
 theorem groupI:
   includes struct G
@@ -308,7 +308,7 @@
 lemma DirProdGroup_group:
   includes group G + group H
   shows "group (G \<Otimes> H)"
-by (force intro!: groupI G.m_assoc H.m_assoc G.l_inv H.l_inv
+  by (force intro!: groupI G.m_assoc H.m_assoc G.l_inv H.l_inv
           simp add: DirProdGroup_def)
 
 lemma carrier_DirProdGroup [simp]:
@@ -322,7 +322,7 @@
 lemma mult_DirProdGroup [simp]:
      "[|g \<in> carrier(G); h \<in> carrier(H); g' \<in> carrier(G); h' \<in> carrier(H)|]
       ==> <g, h> \<cdot>\<^bsub>G \<Otimes> H\<^esub> <g', h'> = <g \<cdot>\<^bsub>G\<^esub> g', h \<cdot>\<^bsub>H\<^esub> h'>"
-by (simp add: DirProdGroup_def)
+  by (simp add: DirProdGroup_def)
 
 lemma inv_DirProdGroup [simp]:
   includes group G + group H
@@ -366,7 +366,7 @@
   "G \<cong> H == hom(G,H) \<inter> bij(carrier(G), carrier(H))"
 
 lemma (in group) iso_refl: "id(carrier(G)) \<in> G \<cong> G"
-by (simp add: iso_def hom_def id_type id_bij) 
+  by (simp add: iso_def hom_def id_type id_bij) 
 
 
 lemma (in group) iso_sym:
@@ -380,18 +380,18 @@
 
 lemma (in group) iso_trans: 
      "\<lbrakk>h \<in> G \<cong> H; i \<in> H \<cong> I\<rbrakk> \<Longrightarrow> i O h \<in> G \<cong> I"
-by (auto simp add: iso_def hom_compose comp_bij)
+  by (auto simp add: iso_def hom_compose comp_bij)
 
 lemma DirProdGroup_commute_iso:
   includes group G + group H
   shows "(\<lambda><x,y> \<in> carrier(G \<Otimes> H). <y,x>) \<in> (G \<Otimes> H) \<cong> (H \<Otimes> G)"
-by (auto simp add: iso_def hom_def inj_def surj_def bij_def) 
+  by (auto simp add: iso_def hom_def inj_def surj_def bij_def) 
 
 lemma DirProdGroup_assoc_iso:
   includes group G + group H + group I
   shows "(\<lambda><<x,y>,z> \<in> carrier((G \<Otimes> H) \<Otimes> I). <x,<y,z>>)
           \<in> ((G \<Otimes> H) \<Otimes> I) \<cong> (G \<Otimes> (H \<Otimes> I))"
-by (auto intro: lam_type simp add: iso_def hom_def inj_def surj_def bij_def) 
+  by (auto intro: lam_type simp add: iso_def hom_def inj_def surj_def bij_def) 
 
 text{*Basis for homomorphism proofs: we assume two groups @{term G} and
   @term{H}, with a homomorphism @{term h} between them*}
@@ -1003,7 +1003,7 @@
   shows "H \<in> rcosets H"
 proof -
   have "H #> \<one> = H"
-    by (rule coset_join2, auto)
+    using _ `subgroup(H, G)` by (rule coset_join2) simp_all
   then show ?thesis
     by (auto simp add: RCOSETS_def intro: sym)
 qed