src/ZF/Order.thy
author paulson
Wed May 08 10:14:07 2002 +0200 (2002-05-08)
changeset 13119 6f7526467e5a
parent 9683 f87c8c449018
child 13140 6d97dbb189a9
permissions -rw-r--r--
better xsymbol syntax
clasohm@1478
     1
(*  Title:      ZF/Order.thy
lcp@435
     2
    ID:         $Id$
clasohm@1478
     3
    Author:     Lawrence C Paulson, Cambridge University Computer Laboratory
lcp@435
     4
    Copyright   1994  University of Cambridge
lcp@435
     5
lcp@435
     6
Orders in Zermelo-Fraenkel Set Theory 
lcp@435
     7
*)
lcp@435
     8
lcp@435
     9
Order = WF + Perm + 
lcp@435
    10
consts
clasohm@1478
    11
  part_ord        :: [i,i]=>o           (*Strict partial ordering*)
clasohm@1478
    12
  linear, tot_ord :: [i,i]=>o           (*Strict total ordering*)
clasohm@1478
    13
  well_ord        :: [i,i]=>o           (*Well-ordering*)
clasohm@1478
    14
  mono_map        :: [i,i,i,i]=>i       (*Order-preserving maps*)
clasohm@1478
    15
  ord_iso         :: [i,i,i,i]=>i       (*Order isomorphisms*)
paulson@1851
    16
  pred            :: [i,i,i]=>i		(*Set of predecessors*)
clasohm@1478
    17
  ord_iso_map     :: [i,i,i,i]=>i       (*Construction for linearity theorem*)
lcp@435
    18
lcp@578
    19
defs
lcp@435
    20
  part_ord_def "part_ord(A,r) == irrefl(A,r) & trans[A](r)"
lcp@435
    21
lcp@435
    22
  linear_def   "linear(A,r) == (ALL x:A. ALL y:A. <x,y>:r | x=y | <y,x>:r)"
lcp@435
    23
lcp@435
    24
  tot_ord_def  "tot_ord(A,r) == part_ord(A,r) & linear(A,r)"
lcp@435
    25
lcp@435
    26
  well_ord_def "well_ord(A,r) == tot_ord(A,r) & wf[A](r)"
lcp@435
    27
clasohm@1155
    28
  mono_map_def "mono_map(A,r,B,s) == 
clasohm@1155
    29
                   {f: A->B. ALL x:A. ALL y:A. <x,y>:r --> <f`x,f`y>:s}"
lcp@786
    30
clasohm@1155
    31
  ord_iso_def  "ord_iso(A,r,B,s) == 
clasohm@1155
    32
                   {f: bij(A,B). ALL x:A. ALL y:A. <x,y>:r <-> <f`x,f`y>:s}"
lcp@435
    33
lcp@435
    34
  pred_def     "pred(A,x,r) == {y:A. <y,x>:r}"
lcp@435
    35
lcp@786
    36
  ord_iso_map_def
clasohm@1155
    37
     "ord_iso_map(A,r,B,s) == 
paulson@9683
    38
       UN x:A. UN y:B. UN f: ord_iso(pred(A,x,r), r, pred(B,y,s), s). {<x,y>}"
lcp@786
    39
paulson@2469
    40
constdefs
paulson@2469
    41
paulson@2469
    42
  first :: [i, i, i] => o
paulson@2469
    43
    "first(u, X, R) == u:X & (ALL v:X. v~=u --> <u,v> : R)"
paulson@2469
    44
paulson@9683
    45
syntax (xsymbols)
paulson@13119
    46
    ord_iso :: [i,i,i,i]=>i       ("(\\<langle>_, _\\<rangle> \\<cong>/ \\<langle>_, _\\<rangle>)" 51)
paulson@9683
    47
paulson@9683
    48
lcp@435
    49
end