src/HOL/Integ/Group.thy
changeset 2281 e00c13a29eda
child 4230 eb5586526bc9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/Integ/Group.thy	Fri Nov 29 15:11:37 1996 +0100
@@ -0,0 +1,38 @@
+(*  Title:      HOL/Integ/Group.thy
+    ID:         $Id$
+    Author:     Tobias Nipkow
+    Copyright   1996 TU Muenchen
+
+A little bit of group theory leading up to rings. Hence groups are additive.
+*)
+
+Group = Set +
+
+(* 0 already used in Nat *)
+axclass  zero < term
+consts   zero :: "'a::zero"
+
+(* additive semigroups *)
+
+axclass  add_semigroup < plus
+  plus_assoc   "(x + y) + z = x + (y + z)"
+
+
+(* additive monoids *)
+
+axclass  add_monoid < add_semigroup, zero
+  zeroL    "zero + x = x"
+  zeroR    "x + zero = x"
+
+(* additive groups *)
+
+axclass  add_group < add_monoid, minus
+  left_inv  "(zero-x)+x = zero"
+  minus_inv "x-y = x + (zero-y)"
+
+(* additive abelian groups *)
+
+axclass  add_agroup < add_group
+  plus_commute  "x + y = y + x"
+
+end