src/ZF/AC/WO6_WO1.thy
author nipkow
Fri, 21 May 1999 12:11:13 +0200
changeset 6691 8a1b5f9d8420
parent 6068 2d8f3e1f1151
child 11317 7f9e4c389318
permissions -rw-r--r--
qed indexed.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1478
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
     1
(*  Title:      ZF/AC/WO6_WO1.thy
1019
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
     2
    ID:         $Id$
1478
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
     3
    Author:     Krzysztof Grabczewski
1019
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
     4
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
     5
The proof of "WO6 ==> WO1".
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
     6
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
     7
From the book "Equivalents of the Axiom of Choice" by Rubin & Rubin,
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
     8
pages 2-5
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
     9
*)
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
    10
1042
04ef9b8ef1af Defined vv1 using let. Introduced gg1, gg2.
lcp
parents: 1019
diff changeset
    11
WO6_WO1 = "rel_is_fun" + AC_Equiv + Let +
1019
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
    12
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
    13
consts
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
    14
(* Auxiliary definitions used in proof *)
1401
0c439768f45c removed quotes from consts and syntax sections
clasohm
parents: 1203
diff changeset
    15
  NN            :: i => i
0c439768f45c removed quotes from consts and syntax sections
clasohm
parents: 1203
diff changeset
    16
  uu            :: [i, i, i, i] => i
0c439768f45c removed quotes from consts and syntax sections
clasohm
parents: 1203
diff changeset
    17
  vv1, ww1, gg1 :: [i, i, i] => i
0c439768f45c removed quotes from consts and syntax sections
clasohm
parents: 1203
diff changeset
    18
  vv2, ww2, gg2 :: [i, i, i, i] => i
1019
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
    19
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
    20
defs
992
4ef4f7ff2aeb New example of AC Equivalences by Krzysztof Grabczewski
lcp
parents:
diff changeset
    21
1155
928a16e02f9f removed \...\ inside strings
clasohm
parents: 1058
diff changeset
    22
  NN_def  "NN(y) == {m:nat. EX a. EX f. Ord(a) & domain(f)=a  &  
1478
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    23
                            (UN b<a. f`b) = y & (ALL b<a. f`b lepoll m)}"
1019
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
    24
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
    25
  uu_def  "uu(f, beta, gamma, delta) == (f`beta * f`gamma) Int f`delta"
1042
04ef9b8ef1af Defined vv1 using let. Introduced gg1, gg2.
lcp
parents: 1019
diff changeset
    26
04ef9b8ef1af Defined vv1 using let. Introduced gg1, gg2.
lcp
parents: 1019
diff changeset
    27
  (*Definitions for case 1*)
04ef9b8ef1af Defined vv1 using let. Introduced gg1, gg2.
lcp
parents: 1019
diff changeset
    28
1478
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    29
  vv1_def "vv1(f,m,b) ==                                                
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    30
           let g = LEAST g. (EX d. Ord(d) & (domain(uu(f,b,g,d)) ~= 0 & 
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    31
                                   domain(uu(f,b,g,d)) lepoll m));      
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    32
               d = LEAST d. domain(uu(f,b,g,d)) ~= 0 &                  
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    33
                           domain(uu(f,b,g,d)) lepoll m         
6068
2d8f3e1f1151 if-then-else syntax for ZF
paulson
parents: 1478
diff changeset
    34
           in  if f`b ~= 0 then domain(uu(f,b,g,d)) else 0"
1042
04ef9b8ef1af Defined vv1 using let. Introduced gg1, gg2.
lcp
parents: 1019
diff changeset
    35
04ef9b8ef1af Defined vv1 using let. Introduced gg1, gg2.
lcp
parents: 1019
diff changeset
    36
  ww1_def "ww1(f,m,b) == f`b - vv1(f,m,b)"
04ef9b8ef1af Defined vv1 using let. Introduced gg1, gg2.
lcp
parents: 1019
diff changeset
    37
6068
2d8f3e1f1151 if-then-else syntax for ZF
paulson
parents: 1478
diff changeset
    38
  gg1_def "gg1(f,a,m) == lam b:a++a. if b<a then vv1(f,m,b) else ww1(f,m,b--a)"
1019
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
    39
  
1042
04ef9b8ef1af Defined vv1 using let. Introduced gg1, gg2.
lcp
parents: 1019
diff changeset
    40
  (*Definitions for case 2*)
1019
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
    41
1155
928a16e02f9f removed \...\ inside strings
clasohm
parents: 1058
diff changeset
    42
  vv2_def "vv2(f,b,g,s) ==   
6068
2d8f3e1f1151 if-then-else syntax for ZF
paulson
parents: 1478
diff changeset
    43
           if f`g ~= 0 then {uu(f, b, g, LEAST d. uu(f,b,g,d) ~= 0)`s} else 0"
1019
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
    44
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
    45
  ww2_def "ww2(f,b,g,s) == f`g - vv2(f,b,g,s)"
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
    46
6068
2d8f3e1f1151 if-then-else syntax for ZF
paulson
parents: 1478
diff changeset
    47
  gg2_def "gg2(f,a,b,s) ==
2d8f3e1f1151 if-then-else syntax for ZF
paulson
parents: 1478
diff changeset
    48
	      lam g:a++a. if g<a then vv2(f,b,g,s) else ww2(f,b,g--a,s)"
1042
04ef9b8ef1af Defined vv1 using let. Introduced gg1, gg2.
lcp
parents: 1019
diff changeset
    49
  
1019
0697024c3cca Received some local definitions from AC_Equiv.thy.
lcp
parents: 992
diff changeset
    50
end