src/HOL/AxClasses/Tutorial/MonoidGroupInsts.thy
author wenzelm
Mon, 29 Nov 1999 15:52:49 +0100
changeset 8039 a901bafe4578
parent 1247 18b1441fb603
permissions -rw-r--r--
Goal: tuned pris;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1247
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
     1
(*  Title:      HOL/AxClass/Tutorial/MonoidGroupInsts.thy
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
     2
    ID:         $Id$
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
     3
    Author:     Markus Wenzel, TU Muenchen
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
     4
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
     5
Add derived class inclusions monoid < semigroup and group < monoid to
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
     6
type signature -- some kind of 'abstract instantiations'.
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
     7
*)
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
     8
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
     9
MonoidGroupInsts = Monoid + Group +
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
    10
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
    11
(* monoids are semigroups *)
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
    12
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
    13
instance
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
    14
  monoid < semigroup            (Monoid.assoc)
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
    15
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
    16
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
    17
(* groups are monoids *)
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
    18
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
    19
instance
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
    20
  group < monoid                (assoc, left_unit, right_unit)
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
    21
18b1441fb603 Various axiomatic type class demos;
wenzelm
parents:
diff changeset
    22
end