src/HOL/AxClasses/Tutorial/ProdGroupInsts.thy
author nipkow
Mon Oct 21 09:50:50 1996 +0200 (1996-10-21)
changeset 2115 9709f9188549
parent 1266 3ae9fe3c0f68
child 4091 771b1f6422a8
permissions -rw-r--r--
Added trans_tac (see Provers/nat_transitive.ML)
     1 (*  Title:      HOL/AxClasses/Tutorial/ProdGroupInsts.thy
     2     ID:         $Id$
     3     Author:     Markus Wenzel, TU Muenchen
     4 
     5 Lift constant "<*>" to cartesian products, then prove that the
     6 'functor' "*" maps semigroups into semigroups.
     7 *)
     8 
     9 ProdGroupInsts = Prod + Group +
    10 
    11 (* direct products of semigroups *)
    12 
    13 defs
    14   prod_prod_def "p <*> q == (fst p <*> fst q, snd p <*> snd q)"
    15 
    16 instance
    17   "*" :: (semigroup, semigroup) semigroup
    18     {| simp_tac (!simpset addsimps [assoc]) 1 |}
    19 
    20 end