:: CARD_4 semantic presentation

Lm1: ( 0 = Card 0 & 1 = Card 1 & 2 = Card 2 )
by CARD_1:def 5;

theorem Th1: :: CARD_4:1
for X being set holds
( X is finite iff Card X is finite )
proof end;

theorem Th2: :: CARD_4:2
for X being set holds
( X is finite iff Card X <` alef 0 )
proof end;

theorem :: CARD_4:3
for X being set st X is finite holds
( Card X in alef 0 & Card X in omega ) by Th2, CARD_1:83;

theorem :: CARD_4:4
for X being set holds
( X is finite iff ex n being Element of NAT st Card X = Card n )
proof end;

theorem :: CARD_4:5
canceled;

theorem :: CARD_4:6
canceled;

theorem :: CARD_4:7
canceled;

theorem :: CARD_4:8
for A being Ordinal holds
( not A is finite iff omega c= A )
proof end;

theorem :: CARD_4:9
for M being Cardinal holds
( M is finite iff M in alef 0 ) by CARD_1:83, CARD_1:103;

theorem :: CARD_4:10
canceled;

theorem Th11: :: CARD_4:11
for M being Cardinal holds
( not M is finite iff alef 0 c= M )
proof end;

theorem :: CARD_4:12
canceled;

theorem Th13: :: CARD_4:13
for N, M being Cardinal st N is finite & not M is finite holds
( N <` M & N <=` M )
proof end;

theorem :: CARD_4:14
for X being set holds
( not X is finite iff ex Y being set st
( Y c= X & Card Y = alef 0 ) )
proof end;

theorem :: CARD_4:15
not NAT is finite ;

theorem :: CARD_4:16
canceled;

theorem :: CARD_4:17
for X being set holds
( X = {} iff Card X = 0 ) by CARD_1:47, CARD_2:59;

theorem :: CARD_4:18
canceled;

theorem Th19: :: CARD_4:19
for M being Cardinal holds 0 <=` M
proof end;

theorem Th20: :: CARD_4:20
for X, Y being set holds
( Card X = Card Y iff nextcard X = nextcard Y )
proof end;

theorem :: CARD_4:21
for M, N being Cardinal holds
( M = N iff nextcard N = nextcard M )
proof end;

theorem Th22: :: CARD_4:22
for N, M being Cardinal holds
( N <` M iff nextcard N <=` M )
proof end;

theorem :: CARD_4:23
for N, M being Cardinal holds
( N <` nextcard M iff N <=` M )
proof end;

theorem Th24: :: CARD_4:24
for M being Cardinal holds
( 0 <` M iff 1 <=` M )
proof end;

theorem :: CARD_4:25
for M being Cardinal holds
( 1 <` M iff 2 <=` M )
proof end;

theorem Th26: :: CARD_4:26
for M, N being Cardinal st M is finite & ( N <=` M or N <` M ) holds
N is finite
proof end;

set two = succ 1;

theorem Th27: :: CARD_4:27
for A being Ordinal holds
( A is_limit_ordinal iff for B being Ordinal
for n being Element of NAT st B in A holds
B +^ n in A )
proof end;

theorem Th28: :: CARD_4:28
for n being Element of NAT
for A being Ordinal holds
( A +^ (succ n) = (succ A) +^ n & A +^ (n + 1) = (succ A) +^ n )
proof end;

theorem Th29: :: CARD_4:29
for A being Ordinal ex n being Element of NAT st A *^ (succ 1) = A +^ n
proof end;

theorem Th30: :: CARD_4:30
for A being Ordinal st A is_limit_ordinal holds
A *^ (succ 1) = A
proof end;

Lm2: omega is_limit_ordinal
by ORDINAL1:def 12;

theorem Th31: :: CARD_4:31
for A being Ordinal st omega c= A holds
1 +^ A = A
proof end;

theorem Th32: :: CARD_4:32
for M being Cardinal st not M is finite holds
M is_limit_ordinal
proof end;

theorem Th33: :: CARD_4:33
for M being Cardinal st not M is finite holds
M +` M = M
proof end;

theorem Th34: :: CARD_4:34
for M, N being Cardinal st not M is finite & ( N <=` M or N <` M ) holds
( M +` N = M & N +` M = M )
proof end;

theorem :: CARD_4:35
for X, Y being set st not X is finite & ( X,Y are_equipotent or Y,X are_equipotent ) holds
( X \/ Y,X are_equipotent & Card (X \/ Y) = Card X )
proof end;

theorem :: CARD_4:36
for X, Y being set st not X is finite & Y is finite holds
( X \/ Y,X are_equipotent & Card (X \/ Y) = Card X )
proof end;

theorem :: CARD_4:37
for X, Y being set st not X is finite & ( Card Y <` Card X or Card Y <=` Card X ) holds
( X \/ Y,X are_equipotent & Card (X \/ Y) = Card X )
proof end;

theorem :: CARD_4:38
for M, N being finite Cardinal holds M +` N is finite
proof end;

theorem :: CARD_4:39
for M, N being Cardinal st not M is finite holds
( not M +` N is finite & not N +` M is finite )
proof end;

theorem :: CARD_4:40
for M, N being finite Cardinal holds M *` N is finite
proof end;

theorem Th41: :: CARD_4:41
for K, L, M, N being Cardinal st ( ( K <` L & M <` N ) or ( K <=` L & M <` N ) or ( K <` L & M <=` N ) or ( K <=` L & M <=` N ) ) holds
( K +` M <=` L +` N & M +` K <=` L +` N )
proof end;

theorem :: CARD_4:42
for M, N, K being Cardinal st ( M <` N or M <=` N ) holds
( K +` M <=` K +` N & K +` M <=` N +` K & M +` K <=` K +` N & M +` K <=` N +` K ) by Th41;

definition
let X be set ;
attr X is countable means :Def1: :: CARD_4:def 1
Card X <=` alef 0 ;
end;

:: deftheorem Def1 defines countable CARD_4:def 1 :
for X being set holds
( X is countable iff Card X <=` alef 0 );

theorem Th43: :: CARD_4:43
for X being set st X is finite holds
X is countable
proof end;

theorem Th44: :: CARD_4:44
( omega is countable & NAT is countable )
proof end;

theorem Th45: :: CARD_4:45
for X being set holds
( X is countable iff ex f being Function st
( dom f = NAT & X c= rng f ) )
proof end;

theorem Th46: :: CARD_4:46
for Y, X being set st Y c= X & X is countable holds
Y is countable
proof end;

theorem Th47: :: CARD_4:47
for X, Y being set st X is countable & Y is countable holds
X \/ Y is countable
proof end;

theorem :: CARD_4:48
for X, Y being set st X is countable holds
( X /\ Y is countable & Y /\ X is countable ) by Th46, XBOOLE_1:17;

theorem :: CARD_4:49
for X, Y being set st X is countable holds
X \ Y is countable by Th46;

theorem :: CARD_4:50
for X, Y being set st X is countable & Y is countable holds
X \+\ Y is countable
proof end;

theorem Th51: :: CARD_4:51
for n being Element of NAT
for r being Real holds
( ( r <> 0 or n = 0 ) iff r |^ n <> 0 )
proof end;

Lm3: for n1, m1, n2, m2 being Element of NAT st (2 |^ n1) * ((2 * m1) + 1) = (2 |^ n2) * ((2 * m2) + 1) holds
n1 <= n2
proof end;

theorem Th52: :: CARD_4:52
for n1, m1, n2, m2 being Element of NAT st (2 |^ n1) * ((2 * m1) + 1) = (2 |^ n2) * ((2 * m2) + 1) holds
( n1 = n2 & m1 = m2 )
proof end;

Lm4: for x being set st x in [:NAT ,NAT :] holds
ex n1, n2 being Element of NAT st x = [n1,n2]
proof end;

theorem Th53: :: CARD_4:53
( [:NAT ,NAT :], NAT are_equipotent & Card NAT = Card [:NAT ,NAT :] )
proof end;

theorem Th54: :: CARD_4:54
(alef 0 ) *` (alef 0 ) = alef 0 by Th53, CARD_1:83, CARD_1:84, CARD_2:def 2;

theorem Th55: :: CARD_4:55
for X, Y being set st X is countable & Y is countable holds
[:X,Y:] is countable
proof end;

theorem Th56: :: CARD_4:56
for D being non empty set holds
( 1 -tuples_on D,D are_equipotent & Card (1 -tuples_on D) = Card D )
proof end;

theorem Th57: :: CARD_4:57
for D being non empty set
for n, m being Element of NAT holds
( [:(n -tuples_on D),(m -tuples_on D):],(n + m) -tuples_on D are_equipotent & Card [:(n -tuples_on D),(m -tuples_on D):] = Card ((n + m) -tuples_on D) )
proof end;

theorem Th58: :: CARD_4:58
for D being non empty set
for n being Element of NAT st D is countable holds
n -tuples_on D is countable
proof end;

theorem Th59: :: CARD_4:59
for M, N being Cardinal
for f being Function st Card (dom f) <=` M & ( for x being set st x in dom f holds
Card (f . x) <=` N ) holds
Card (Union f) <=` M *` N
proof end;

theorem Th60: :: CARD_4:60
for X being set
for M, N being Cardinal st Card X <=` M & ( for Y being set st Y in X holds
Card Y <=` N ) holds
Card (union X) <=` M *` N
proof end;

theorem Th61: :: CARD_4:61
for f being Function st dom f is countable & ( for x being set st x in dom f holds
f . x is countable ) holds
Union f is countable
proof end;

theorem :: CARD_4:62
for X being set st X is countable & ( for Y being set st Y in X holds
Y is countable ) holds
union X is countable
proof end;

theorem Th63: :: CARD_4:63
for f being Function st dom f is finite & ( for x being set st x in dom f holds
f . x is finite ) holds
Union f is finite
proof end;

theorem :: CARD_4:64
canceled;

theorem :: CARD_4:65
for D being non empty set st D is countable holds
D * is countable
proof end;

theorem :: CARD_4:66
for D being non empty set holds alef 0 <=` Card (D * )
proof end;

scheme :: CARD_4:sch 1
FraenCoun1{ F1( set ) -> set , P1[ set ] } :
{ F1(n) where n is Element of NAT : P1[n] } is countable
proof end;

scheme :: CARD_4:sch 2
FraenCoun2{ F1( set , set ) -> set , P1[ set , set ] } :
{ F1(n1,n2) where n1, n2 is Element of NAT : P1[n1,n2] } is countable
proof end;

scheme :: CARD_4:sch 3
FraenCoun3{ F1( set , set , set ) -> set , P1[ set , set , set ] } :
{ F1(n1,n2,n3) where n1, n2, n3 is Element of NAT : P1[n1,n2,n3] } is countable
proof end;

theorem Th67: :: CARD_4:67
for n being Element of NAT holds
( (alef 0 ) *` (Card n) <=` alef 0 & (Card n) *` (alef 0 ) <=` alef 0 )
proof end;

theorem Th68: :: CARD_4:68
for K, L, M, N being Cardinal st ( ( K <` L & M <` N ) or ( K <=` L & M <` N ) or ( K <` L & M <=` N ) or ( K <=` L & M <=` N ) ) holds
( K *` M <=` L *` N & M *` K <=` L *` N )
proof end;

theorem :: CARD_4:69
for M, N, K being Cardinal st ( M <` N or M <=` N ) holds
( K *` M <=` K *` N & K *` M <=` N *` K & M *` K <=` K *` N & M *` K <=` N *` K ) by Th68;

theorem Th70: :: CARD_4:70
for K, L, M, N being Cardinal holds
( ( not ( K <` L & M <` N ) & not ( K <=` L & M <` N ) & not ( K <` L & M <=` N ) & not ( K <=` L & M <=` N ) ) or K = 0 or exp K,M <=` exp L,N )
proof end;

theorem :: CARD_4:71
for M, N, K being Cardinal holds
( ( not M <` N & not M <=` N ) or K = 0 or ( exp K,M <=` exp K,N & exp M,K <=` exp N,K ) )
proof end;

theorem Th72: :: CARD_4:72
for M, N being Cardinal holds
( M <=` M +` N & N <=` M +` N )
proof end;

theorem :: CARD_4:73
for N, M being Cardinal st N <> 0 holds
( M <=` M *` N & M <=` N *` M )
proof end;

theorem Th74: :: CARD_4:74
for K, L, M, N being Cardinal st K <` L & M <` N holds
( K +` M <` L +` N & M +` K <` L +` N )
proof end;

theorem :: CARD_4:75
for K, M, N being Cardinal st K +` M <` K +` N holds
M <` N
proof end;

theorem Th76: :: CARD_4:76
for X, Y being set st (Card X) +` (Card Y) = Card X & Card Y <` Card X holds
Card (X \ Y) = Card X
proof end;

theorem Th77: :: CARD_4:77
for M being Cardinal st not M is finite holds
M *` M = M
proof end;

theorem Th78: :: CARD_4:78
for M, N being Cardinal st not M is finite & 0 <` N & ( N <=` M or N <` M ) holds
( M *` N = M & N *` M = M )
proof end;

theorem Th79: :: CARD_4:79
for M, N being Cardinal st not M is finite & ( N <=` M or N <` M ) holds
( M *` N <=` M & N *` M <=` M )
proof end;

theorem :: CARD_4:80
for X being set st not X is finite holds
( [:X,X:],X are_equipotent & Card [:X,X:] = Card X )
proof end;

theorem :: CARD_4:81
for X, Y being set st not X is finite & Y is finite & Y <> {} holds
( [:X,Y:],X are_equipotent & Card [:X,Y:] = Card X )
proof end;

theorem :: CARD_4:82
for K, L, M, N being Cardinal st K <` L & M <` N holds
( K *` M <` L *` N & M *` K <` L *` N )
proof end;

theorem :: CARD_4:83
for K, M, N being Cardinal st K *` M <` K *` N holds
M <` N
proof end;

theorem Th84: :: CARD_4:84
for X being set st not X is finite holds
Card X = (alef 0 ) *` (Card X)
proof end;

theorem :: CARD_4:85
for X, Y being set st X <> {} & X is finite & not Y is finite holds
(Card Y) *` (Card X) = Card Y
proof end;

theorem Th86: :: CARD_4:86
for D being non empty set
for n being Element of NAT st not D is finite & n <> 0 holds
( n -tuples_on D,D are_equipotent & Card (n -tuples_on D) = Card D )
proof end;

theorem :: CARD_4:87
for D being non empty set st not D is finite holds
Card D = Card (D * )
proof end;

registration
let A be finite set ;
let B be set ;
let f be Function of A, Fin B;
cluster Union f -> finite ;
coherence
Union f is finite
proof end;
end;