src/HOL/AxClasses/Tutorial/ProductInsts.thy
author nipkow
Mon Oct 21 09:50:50 1996 +0200 (1996-10-21)
changeset 2115 9709f9188549
parent 1247 18b1441fb603
permissions -rw-r--r--
Added trans_tac (see Provers/nat_transitive.ML)
wenzelm@1247
     1
(*  Title:      HOL/AxClasses/Tutorial/ProductInsts.thy
wenzelm@1247
     2
    ID:         $Id$
wenzelm@1247
     3
    Author:     Markus Wenzel, TU Muenchen
wenzelm@1247
     4
wenzelm@1247
     5
Instantiate the 'syntactic' class "product", then define "<*>" on type
wenzelm@1247
     6
"bool".
wenzelm@1247
     7
wenzelm@1247
     8
Note: This may look like Haskell-instance, but is not quite the same!
wenzelm@1247
     9
*)
wenzelm@1247
    10
wenzelm@1247
    11
ProductInsts = Product +
wenzelm@1247
    12
wenzelm@1247
    13
instance
wenzelm@1247
    14
  bool :: product
wenzelm@1247
    15
wenzelm@1247
    16
defs
wenzelm@1247
    17
  prod_bool_def "x <*> y  == x & y::bool"
wenzelm@1247
    18
wenzelm@1247
    19
end