# Theory Semigroups

Up to index of Isabelle/HOL/AxClasses

theory Semigroups
imports Main
begin

    (*  Title:      HOL/AxClasses/Semigroups.thy
        ID:         $Id: Semigroups.thy,v 1.5 2005/06/17 14:13:06 haftmann Exp $
        Author:     Markus Wenzel, TU Muenchen
    *)

    theory Semigroups imports Main begin

    consts
      times :: "'a => 'a => 'a"    (infixl "[*]" 70)

    axclass semigroup < type
      assoc: "(x [*] y) [*] z = x [*] (y [*] z)"

    consts
      plus :: "'a => 'a => 'a"    (infixl "[+]" 70)

    axclass plus_semigroup < type
      assoc: "(x [+] y) [+] z = x [+] (y [+] z)"

    end