src/HOL/ex/Classpackage.thy
changeset 22473 753123c89d72
parent 22424 8a5412121687
child 22845 5f9138bcb3d7
equal deleted inserted replaced
22472:bfd9c0fd70b1 22473:753123c89d72
     6 
     6 
     7 theory Classpackage
     7 theory Classpackage
     8 imports Main
     8 imports Main
     9 begin
     9 begin
    10 
    10 
    11 class semigroup =
    11 class semigroup = type +
    12   fixes mult :: "'a \<Rightarrow> 'a \<Rightarrow> 'a" (infixl "\<^loc>\<otimes>" 70)
    12   fixes mult :: "'a \<Rightarrow> 'a \<Rightarrow> 'a" (infixl "\<^loc>\<otimes>" 70)
    13   assumes assoc: "x \<^loc>\<otimes> y \<^loc>\<otimes> z = x \<^loc>\<otimes> (y \<^loc>\<otimes> z)"
    13   assumes assoc: "x \<^loc>\<otimes> y \<^loc>\<otimes> z = x \<^loc>\<otimes> (y \<^loc>\<otimes> z)"
    14 
    14 
    15 instance nat :: semigroup
    15 instance nat :: semigroup
    16   "m \<otimes> n \<equiv> m + n"
    16   "m \<otimes> n \<equiv> m + n"