# HG changeset patch # User paulson # Date 1033115701 -7200 # Node ID e14d963e3bc05e8c3417d839c458359109b588dd # Parent d8e98ef3ad1333a364780f1bde48c143e219efd5 Isar proof diff -r d8e98ef3ad13 -r e14d963e3bc0 src/HOL/GroupTheory/Group.thy --- a/src/HOL/GroupTheory/Group.thy Fri Sep 27 10:34:05 2002 +0200 +++ b/src/HOL/GroupTheory/Group.thy Fri Sep 27 10:35:01 2002 +0200 @@ -74,6 +74,11 @@ locale abelian_group = group + assumes sum_commute: "[|x \ carrier G; y \ carrier G|] ==> x \ y = y \ x" +lemma abelian_group_iff: + "abelian_group G = + (group G & (\x \ carrier G. \y \ carrier G. sum G x y = sum G y x))" +by (force simp add: abelian_group_axioms_def abelian_group_def group_def) + subsection{*Basic Group Theory Theorems*} @@ -90,23 +95,14 @@ done lemma (in group) left_cancellation: - "[| x \ y = x \ z; - x \ carrier G ; y \ carrier G; z \ carrier G |] - ==> y = z" -apply (drule arg_cong [of concl: "%z. (\x) \ z"]) -apply (simp add: sum_assoc [symmetric]) -done - -(*Isar version?? -lemma (in group) left_cancellation: assumes eq: "x \ y = x \ z" - shows "[| x \ carrier G ; y \ carrier G; z \ carrier G |] - ==> y = z" + and inG: "x \ carrier G" "y \ carrier G" "z \ carrier G" + shows "y = z" proof - - have "(\x) \ (x \ y) = (\x) \ (x \ z)" by (simp only: eq) - assume ?this - have "((\x) \ x) \ y = ((\x) \ x) \ z" by (simp only: sum_assoc) -*) + have "((\x) \ x) \ y = ((\x) \ x) \ z" + by (simp only: eq inG minus_closed sum_assoc) + then show ?thesis by (simp only: inG left_minus left_zero) +qed lemma (in group) left_cancellation_iff [simp]: "[| x \ carrier G; y \ carrier G; z \ carrier G |]