equal
deleted
inserted
replaced
|
1 (* Title: HOL/AxClass/Tutorial/MonoidGroupInsts.thy |
|
2 ID: $Id$ |
|
3 Author: Markus Wenzel, TU Muenchen |
|
4 |
|
5 Add derived class inclusions monoid < semigroup and group < monoid to |
|
6 type signature -- some kind of 'abstract instantiations'. |
|
7 *) |
|
8 |
|
9 MonoidGroupInsts = Monoid + Group + |
|
10 |
|
11 (* monoids are semigroups *) |
|
12 |
|
13 instance |
|
14 monoid < semigroup (Monoid.assoc) |
|
15 |
|
16 |
|
17 (* groups are monoids *) |
|
18 |
|
19 instance |
|
20 group < monoid (assoc, left_unit, right_unit) |
|
21 |
|
22 end |