diff -r 6c7f5d5b7e9a -r 4d2f9a1c24c7 src/ZF/ex/Group.thy --- a/src/ZF/ex/Group.thy Wed Jan 12 15:22:24 2011 +0100 +++ b/src/ZF/ex/Group.thy Wed Jan 12 15:38:57 2011 +0100 @@ -148,7 +148,7 @@ qed show ?thesis by (blast intro: group.intro monoid.intro group_axioms.intro - prems r_one inv_ex) + assms r_one inv_ex) qed lemma (in group) inv [simp]: @@ -177,26 +177,26 @@ subsection {* Cancellation Laws and Basic Properties *} lemma (in group) l_cancel [simp]: - assumes [simp]: "x \ carrier(G)" "y \ carrier(G)" "z \ carrier(G)" + assumes "x \ carrier(G)" "y \ carrier(G)" "z \ carrier(G)" shows "(x \ y = x \ z) <-> (y = z)" proof assume eq: "x \ y = x \ z" hence "(inv x \ x) \ y = (inv x \ x) \ z" - by (simp only: m_assoc inv_closed prems) - thus "y = z" by simp + by (simp only: m_assoc inv_closed assms) + thus "y = z" by (simp add: assms) next assume eq: "y = z" then show "x \ y = x \ z" by simp qed lemma (in group) r_cancel [simp]: - assumes [simp]: "x \ carrier(G)" "y \ carrier(G)" "z \ carrier(G)" + assumes "x \ carrier(G)" "y \ carrier(G)" "z \ carrier(G)" shows "(y \ x = z \ x) <-> (y = z)" proof assume eq: "y \ x = z \ x" then have "y \ (x \ inv x) = z \ (x \ inv x)" - by (simp only: m_assoc [symmetric] inv_closed prems) - thus "y = z" by simp + by (simp only: m_assoc [symmetric] inv_closed assms) + thus "y = z" by (simp add: assms) next assume eq: "y = z" thus "y \ x = z \ x" by simp @@ -338,7 +338,7 @@ and h: "h \ carrier(H)" shows "inv \<^bsub>G \ H\<^esub> = G\<^esub> g, inv\<^bsub>H\<^esub> h>" apply (rule group.inv_equality [OF DirProdGroup_group]) - apply (simp_all add: prems group.l_inv) + apply (simp_all add: assms group.l_inv) done subsection {* Isomorphisms *} @@ -445,7 +445,7 @@ also from x have "... = h ` x \\<^bsub>H\<^esub> inv\<^bsub>H\<^esub> (h ` x)" by (simp add: hom_mult [symmetric] H.r_inv del: hom_mult) finally have "h ` x \\<^bsub>H\<^esub> h ` (inv x) = h ` x \\<^bsub>H\<^esub> inv\<^bsub>H\<^esub> (h ` x)" . - with x show ?thesis by (simp del: inv add: is_group) + with x show ?thesis by (simp del: inv) qed subsection {* Commutative Structures *} @@ -482,7 +482,7 @@ lemma (in group) subgroup_self: "subgroup (carrier(G),G)" -by (simp add: subgroup_def prems) +by (simp add: subgroup_def) lemma (in group) subgroup_imp_group: "subgroup(H,G) \ group (update_carrier(G,H))" @@ -493,8 +493,8 @@ and inv: "!!a. a \ H ==> inv a \ H" and mult: "!!a b. [|a \ H; b \ H|] ==> a \ b \ H" shows "subgroup(H,G)" -proof (simp add: subgroup_def prems) - show "\ \ H" by (rule one_in_subset) (auto simp only: prems) +proof (simp add: subgroup_def assms) + show "\ \ H" by (rule one_in_subset) (auto simp only: assms) qed @@ -783,8 +783,7 @@ apply (auto simp add: subgroup.m_closed set_mult_def Sigma_def image_def) apply (rule_tac x = x in bexI) apply (rule bexI [of _ "\"]) -apply (auto simp add: subgroup.m_closed subgroup.one_closed - r_one subgroup.subset [THEN subsetD]) +apply (auto simp add: subgroup.one_closed subgroup.subset [THEN subsetD]) done @@ -792,27 +791,27 @@ lemma (in normal) rcos_inv: assumes x: "x \ carrier(G)" - shows "set_inv (H #> x) = H #> (inv x)" + shows "set_inv (H #> x) = H #> (inv x)" proof (simp add: r_coset_def SET_INV_def x inv_mult_group, safe intro!: equalityI) fix h - assume "h \ H" - show "inv x \ inv h \ (\j\H. {j \ inv x})" - proof (rule UN_I) - show "inv x \ inv h \ x \ H" - by (simp add: inv_op_closed1 prems) - show "inv x \ inv h \ {inv x \ inv h \ x \ inv x}" - by (simp add: prems m_assoc) - qed -next - fix h - assume "h \ H" - show "h \ inv x \ (\j\H. {inv x \ inv j})" - proof (rule UN_I) - show "x \ inv h \ inv x \ H" - by (simp add: inv_op_closed2 prems) - show "h \ inv x \ {inv x \ inv (x \ inv h \ inv x)}" - by (simp add: prems m_assoc [symmetric] inv_mult_group) - qed + assume h: "h \ H" + { + show "inv x \ inv h \ (\j\H. {j \ inv x})" + proof (rule UN_I) + show "inv x \ inv h \ x \ H" + by (simp add: inv_op_closed1 h x) + show "inv x \ inv h \ {inv x \ inv h \ x \ inv x}" + by (simp add: h x m_assoc) + qed + next + show "h \ inv x \ (\j\H. {inv x \ inv j})" + proof (rule UN_I) + show "x \ inv h \ inv x \ H" + by (simp add: inv_op_closed2 h x) + show "h \ inv x \ {inv x \ inv (x \ inv h \ inv x)}" + by (simp add: h x m_assoc [symmetric] inv_mult_group) + qed + } qed @@ -844,7 +843,7 @@ "\x \ carrier(G); y \ carrier(G)\ \ (H <#> (H #> x)) #> y = H #> (x \ y)" by (simp add: setmult_rcos_assoc coset_mult_assoc - subgroup_mult_id subset prems normal.axioms) + subgroup_mult_id subset normal_axioms normal.axioms) lemma (in normal) rcos_sum: "\x \ carrier(G); y \ carrier(G)\ @@ -854,7 +853,7 @@ lemma (in normal) rcosets_mult_eq: "M \ rcosets H \ H <#> M = M" -- {* generalizes @{text subgroup_mult_id} *} by (auto simp add: RCOSETS_def subset - setmult_rcos_assoc subgroup_mult_id prems normal.axioms) + setmult_rcos_assoc subgroup_mult_id normal_axioms normal.axioms) subsubsection{*Two distinct right cosets are disjoint*} @@ -881,7 +880,7 @@ fix x y assume [simp]: "x \ carrier(G)" "y \ carrier(G)" and "inv x \ y \ H" - hence "inv (inv x \ y) \ H" by (simp add: m_inv_closed) + hence "inv (inv x \ y) \ H" by simp thus "inv y \ x \ H" by (simp add: inv_mult_group) qed next @@ -932,7 +931,7 @@ interpret subgroup H G by fact show "PROP ?P" apply (simp add: RCOSETS_def r_coset_def) - apply (blast intro: rcos_equation prems sym) + apply (blast intro: rcos_equation assms sym) done qed @@ -962,7 +961,7 @@ show ?thesis apply (rule equalityI) apply (force simp add: RCOSETS_def r_coset_def) - apply (auto simp add: RCOSETS_def intro: rcos_self prems) + apply (auto simp add: RCOSETS_def intro: rcos_self assms) done qed @@ -1051,7 +1050,7 @@ lemma (in normal) rcosets_inv_mult_group_eq: "M \ rcosets H \ set_inv M <#> M = H" -by (auto simp add: RCOSETS_def rcos_inv rcos_sum subgroup.subset prems normal.axioms) +by (auto simp add: RCOSETS_def rcos_inv rcos_sum subgroup.subset normal_axioms normal.axioms) theorem (in normal) factorgroup_is_group: "group (G Mod H)" @@ -1090,12 +1089,12 @@ lemma (in group_hom) subgroup_kernel: "subgroup (kernel(G,H,h), G)" apply (rule subgroup.intro) -apply (auto simp add: kernel_def group.intro prems) +apply (auto simp add: kernel_def group.intro) done text{*The kernel of a homomorphism is a normal subgroup*} lemma (in group_hom) normal_kernel: "(kernel(G,H,h)) \ G" -apply (simp add: group.normal_inv_iff subgroup_kernel group.intro prems) +apply (simp add: group.normal_inv_iff subgroup_kernel group.intro) apply (simp add: kernel_def) done