src/HOLCF/Porder0.thy
author wenzelm
Wed, 08 Jan 1997 15:12:44 +0100
changeset 2494 5d45c2094ff6
parent 2394 91d8abf108be
child 2640 ee4dfce170a0
permissions -rw-r--r--
IsaMakefile for HOLCF;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1479
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
     1
(*  Title:      HOLCF/porder0.thy
298
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
     2
    ID:         $Id$
1479
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
     3
    Author:     Franz Regensburger
298
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
     4
    Copyright   1993 Technische Universitaet Muenchen
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
     5
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
     6
Definition of class porder (partial order)
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
     7
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
     8
The prototype theory for this class is void.thy 
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
     9
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    10
*)
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    11
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    12
Porder0 = Void +
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    13
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    14
(* Introduction of new class. The witness is type void. *)
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    15
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    16
classes po < term
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    17
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    18
(* default type is still term ! *)
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    19
(* void is the prototype in po *)
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    20
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    21
arities void :: po
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    22
2394
91d8abf108be adaptions for symbol font
oheimb
parents: 2291
diff changeset
    23
consts
91d8abf108be adaptions for symbol font
oheimb
parents: 2291
diff changeset
    24
91d8abf108be adaptions for symbol font
oheimb
parents: 2291
diff changeset
    25
  "<<"		:: "['a,'a::po] => bool"	(infixl 55)
91d8abf108be adaptions for symbol font
oheimb
parents: 2291
diff changeset
    26
91d8abf108be adaptions for symbol font
oheimb
parents: 2291
diff changeset
    27
syntax (symbols)
91d8abf108be adaptions for symbol font
oheimb
parents: 2291
diff changeset
    28
91d8abf108be adaptions for symbol font
oheimb
parents: 2291
diff changeset
    29
  "op <<"	:: "['a,'a::po] => bool"	(infixl "\\<sqsubseteq>" 55)
298
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    30
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    31
rules
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    32
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    33
(* class axioms: justification is theory Void *)
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    34
2394
91d8abf108be adaptions for symbol font
oheimb
parents: 2291
diff changeset
    35
refl_less       "x<<x"        
1479
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
    36
                                (* witness refl_less_void    *)
298
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    37
1479
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
    38
antisym_less    "[|x<<y ; y<<x |] ==> x = y"    
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
    39
                                (* witness antisym_less_void *)
298
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    40
1479
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
    41
trans_less      "[|x<<y ; y<<z |] ==> x<<z"
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
    42
                                (* witness trans_less_void   *)
298
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    43
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    44
(* instance of << for the prototype void *)
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    45
1479
21eb5e156d91 expanded tabs
clasohm
parents: 1274
diff changeset
    46
inst_void_po    "((op <<)::[void,void]=>bool) = less_void"
298
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    47
3a0485439396 structural induction for strict lists
nipkow
parents:
diff changeset
    48
end 
1274
ea0668a1c0ba added 8bit pragmas
regensbu
parents: 442
diff changeset
    49
ea0668a1c0ba added 8bit pragmas
regensbu
parents: 442
diff changeset
    50
ea0668a1c0ba added 8bit pragmas
regensbu
parents: 442
diff changeset
    51
ea0668a1c0ba added 8bit pragmas
regensbu
parents: 442
diff changeset
    52
ea0668a1c0ba added 8bit pragmas
regensbu
parents: 442
diff changeset
    53