doc-src/AxClass/Group/Semigroups.thy
author wenzelm
Sun, 21 May 2000 21:48:39 +0200
changeset 8903 78d6e47469e4
parent 8890 9a44d8d98731
child 8906 fc7841f31388
permissions -rw-r--r--
new Isar version;

theory Semigroups = Main:;

constdefs
  is_assoc :: "('a \\<Rightarrow> 'a \\<Rightarrow> 'a) \\<Rightarrow> bool"
  "is_assoc f \\<equiv> \\<forall>x y z. f (f x y) z = f x (f y z)";

consts
  plus :: "'a \\<Rightarrow> 'a \\<Rightarrow> 'a"    (infixl "\<Oplus>" 65);
axclass
  plus_semigroup < "term"
  assoc: "is_assoc (op \<Oplus>)";

consts
  times :: "'a \\<Rightarrow> 'a \\<Rightarrow> 'a"    (infixl "\<Otimes>" 65);
axclass
  times_semigroup < "term"
  assoc: "is_assoc (op \<Otimes>)";

end;