(*  Title:      HOL/AxClasses/Tutorial/Semigroup.thy
    ID:         $Id$
    Author:     Markus Wenzel, TU Muenchen
Define class "semigroup".
*)
Semigroup = HOL +
consts
  "<*>"         :: "['a, 'a] => 'a"             (infixl 70)
axclass
  semigroup < term
  assoc         "(x <*> y) <*> z = x <*> (y <*> z)"
end