consider A being finite set such that
A2:
P1[A]
by A1;
defpred S1[ set , set ] means $1 c= $2;
consider Y being set such that
A3:
for x being set holds
( x in Y iff ( x in bool A & P1[x] ) )
from XBOOLE_0:sch 1();
A c= A
;
then reconsider Y = Y as non empty set by A2, A3;
Y c= bool A
then reconsider Y = Y as non empty finite set ;
A4:
for x, y being Element of Y st S1[x,y] & S1[y,x] holds
x = y
by XBOOLE_0:def 10;
A5:
for x, y, z being Element of Y st S1[x,y] & S1[y,z] holds
S1[x,z]
by XBOOLE_1:1;
A6:
for X being set st X c= Y & ( for x, y being Element of Y st x in X & y in X & not S1[x,y] holds
S1[y,x] ) holds
ex y being Element of Y st
for x being Element of Y st x in X holds
S1[y,x]
proof
let X be
set ;
( X c= Y & ( for x, y being Element of Y st x in X & y in X & not S1[x,y] holds
S1[y,x] ) implies ex y being Element of Y st
for x being Element of Y st x in X holds
S1[y,x] )
assume that A7:
X c= Y
and A8:
for
x,
y being
Element of
Y st
x in X &
y in X & not
S1[
x,
y] holds
S1[
y,
x]
;
ex y being Element of Y st
for x being Element of Y st x in X holds
S1[y,x]
per cases
( X = {} or X <> {} )
;
suppose A10:
X <> {}
;
ex y being Element of Y st
for x being Element of Y st x in X holds
S1[y,x]consider x0 being
Element of
X;
x0 in X
by A10;
then reconsider x0 =
x0 as
Element of
Y by A7;
deffunc H1(
set )
-> set =
card { y where y is Element of Y : ( y in X & y c< $1 ) } ;
consider f being
Function such that A11:
(
dom f = X & ( for
x being
set st
x in X holds
f . x = H1(
x) ) )
from FUNCT_1:sch 3();
defpred S2[
Nat]
means ex
x being
Element of
Y st
(
x in X & $1
= f . x );
A12:
for
k being
Nat st
k <> 0 &
S2[
k] holds
ex
n being
Nat st
(
n < k &
S2[
n] )
proof
let k be
Nat;
( k <> 0 & S2[k] implies ex n being Nat st
( n < k & S2[n] ) )
assume A13:
k <> 0
;
( not S2[k] or ex n being Nat st
( n < k & S2[n] ) )
given x being
Element of
Y such that A14:
x in X
and A15:
k = f . x
;
ex n being Nat st
( n < k & S2[n] )
set fx =
{ a where a is Element of Y : ( a in X & a c< x ) } ;
{ a where a is Element of Y : ( a in X & a c< x ) } c= Y
then reconsider fx =
{ a where a is Element of Y : ( a in X & a c< x ) } as
finite set ;
A16:
k = card fx
by A11, A14, A15;
set A =
{ z where z is Element of Y : ( z in X & z c< x ) } ;
reconsider A =
{ z where z is Element of Y : ( z in X & z c< x ) } as non
empty set by A11, A13, A14, A15, CARD_1:47;
consider z being
Element of
A;
z in A
;
then consider y being
Element of
Y such that A17:
z = y
and A18:
y in X
and A19:
y c< x
;
set fx0 =
{ a where a is Element of Y : ( a in X & a c< y ) } ;
{ a where a is Element of Y : ( a in X & a c< y ) } c= Y
then reconsider fx0 =
{ a where a is Element of Y : ( a in X & a c< y ) } as
finite set ;
reconsider n =
card fx0 as
Element of
NAT ;
take
n
;
( n < k & S2[n] )
for
a being
Element of
Y holds
( not
y = a or not
a in X or not
a c< y )
;
then A20:
not
y in fx0
;
A21:
y in fx
by A17;
A22:
fx0 c= fx
then
card fx0 c= card fx
by CARD_1:27;
then
n <= k
by A16, NAT_1:40;
hence
n < k
by A16, A22, A21, A20, PRE_POLY:8, XXREAL_0:1;
S2[n]
take
y
;
( y in X & n = f . y )
thus
(
y in X &
n = f . y )
by A11, A18;
verum
end; set fx0 =
{ y where y is Element of Y : ( y in X & y c< x0 ) } ;
{ y where y is Element of Y : ( y in X & y c< x0 ) } c= Y
then reconsider fx0 =
{ y where y is Element of Y : ( y in X & y c< x0 ) } as
finite set ;
f . x0 = card fx0
by A10, A11;
then A26:
ex
n being
Nat st
S2[
n]
by A10;
S2[
0 ]
from NAT_1:sch 7(A26, A12);
then consider y being
Element of
Y such that A27:
y in X
and A28:
0 = f . y
;
take
y
;
for x being Element of Y st x in X holds
S1[y,x]let x be
Element of
Y;
( x in X implies S1[y,x] )assume A29:
x in X
;
S1[y,x]then
(
x c= y or
y c= x )
by A8, A27;
then
(
x c< y or
y c= x )
by XBOOLE_0:def 8;
then A30:
(
x in { z where z is Element of Y : ( z in X & z c< y ) } or
y c= x )
by A29;
f . y = card { z where z is Element of Y : ( z in X & z c< y ) }
by A11, A27;
hence
S1[
y,
x]
by A28, A30;
verum end; end;
end;
A31:
for x being Element of Y holds S1[x,x]
;
consider x being Element of Y such that
A32:
for y being Element of Y st x <> y holds
not S1[y,x]
from ORDERS_1:sch 2(A31, A4, A5, A6);
x in bool A
by A3;
then reconsider x = x as finite set ;
take
x
; ( P1[x] & ( for B being set st B c= x & P1[B] holds
B = x ) )
thus
P1[x]
by A3; for B being set st B c= x & P1[B] holds
B = x
let B be set ; ( B c= x & P1[B] implies B = x )
assume that
A33:
B c= x
and
A34:
P1[B]
; B = x
x in bool A
by A3;
then
B c= A
by A33, XBOOLE_1:1;
then
B in Y
by A3, A34;
hence
B = x
by A32, A33; verum