| 1440 |      1 | (*  Title:      OrdDefs.thy
 | 
|  |      2 |     ID:         $Id$
 | 
|  |      3 |     Author:     Markus Wenzel, TU Muenchen
 | 
|  |      4 | 
 | 
|  |      5 | Some overloaded definitions.
 | 
|  |      6 | *)
 | 
|  |      7 | 
 | 
|  |      8 | OrdDefs = Order + Prod +
 | 
|  |      9 | 
 | 
|  |     10 | 
 | 
|  |     11 | (* binary / general products *)
 | 
|  |     12 | 
 | 
|  |     13 | instance
 | 
|  |     14 |   "*" :: (le, le) le
 | 
|  |     15 | 
 | 
|  |     16 | instance
 | 
|  |     17 |   fun :: (term, le) le
 | 
|  |     18 | 
 | 
|  |     19 | defs
 | 
|  |     20 |   le_prod_def   "p [= q == fst p [= fst q & snd p [= snd q"
 | 
|  |     21 |   le_fun_def    "f [= g == ALL x. f x [= g x"
 | 
|  |     22 | 
 | 
|  |     23 | 
 | 
|  |     24 | (* duals *)
 | 
|  |     25 | 
 | 
| 1476 |     26 | typedef
 | 
| 1440 |     27 |   'a dual = "{x::'a. True}"
 | 
|  |     28 | 
 | 
|  |     29 | instance
 | 
|  |     30 |   dual :: (le) le
 | 
|  |     31 | 
 | 
|  |     32 | defs
 | 
|  |     33 |   le_dual_def   "x [= y == Rep_dual y [= Rep_dual x"
 | 
|  |     34 | 
 | 
|  |     35 | end
 |