:: CARD_1 semantic presentation

E1: for b1, b2 being Ordinal holds
( b1 c= b2 implies succ b1 c= succ b2 )
proof
let c1, c2 be Ordinal;
assume E2: c1 c= c2 ;
let c3 be set ; :: uses TARSKI:def 3
assume c3 in succ c1 ;
then E3: ( c3 in c1 or c3 = c1 ) by ORDINAL1:13;
c2 in succ c2 by ORDINAL1:10;
then ( ( c3 in c2 or c3 in succ c2 ) & c2 c= succ c2 ) by E2, E3, ORDINAL1:22;
hence c3 <` succ c2 ;
end;

definition
let c1 be set ;
attr a1 is cardinal means :E2: :: CARD_1:def 1
ex b1 being Ordinal st
( a1 = b1 & for b2 being Ordinal holds
( b2,b1 are_equipotent implies b1 c= b2 ) );
end;

:: deftheorem E2 defines cardinal CARD_1:def 1 :
for b1 being set holds
( b1 is cardinal iff ex b2 being Ordinal st
( b1 = b2 & for b3 being Ordinal holds
( b3,b2 are_equipotent implies b2 c= b3 ) ) );

registration
cluster cardinal set ;
existence
ex b1 being set st b1 is cardinal
proof
consider c1 being Ordinal;
defpred S1[ Ordinal] means a1,c1 are_equipotent ;
E3: ex b1 being Ordinal st
S1[b1] ;
consider c2 being Ordinal such that
E4: ( S1[c2] & for b1 being Ordinal holds
( S1[b1] implies c2 c= b1 ) ) from ORDINAL1:sch 1(E3);
reconsider c3 = c2 as set ;
take c3 ;
take c2 ; :: uses CARD_1:def 1
thus c3 = c2 ;
let c4 be Ordinal;
assume c4,c2 are_equipotent ;
then c4,c1 are_equipotent by E4, WELLORD2:22;
hence c2 c= c4 by E4;
end;
end;

definition
mode Cardinal is cardinal set ;
end;

registration
cluster cardinal -> ordinal set ;
coherence
for b1 being set holds
( b1 is cardinal implies b1 is ordinal )
proof
let c1 be set ;
assume c1 is cardinal ;
then ex b1 being Ordinal st
( c1 = b1 & for b2 being Ordinal holds
( b2,b1 are_equipotent implies b1 c= b2 ) ) by E2;
hence c1 is ordinal ;
end;
end;

theorem :: CARD_1:1
canceled;

theorem :: CARD_1:2
canceled;

theorem :: CARD_1:3
canceled;

theorem E3: :: CARD_1:4
for b1 being set holds
ex b2 being Ordinal st b1,b2 are_equipotent
proof
let c1 be set ;
consider c2 being Relation such that
E4: c2 well_orders c1 by WELLORD2:26;
set c3 = c2 |_2 c1;
E5: ( field (c2 |_2 c1) = c1 & c2 |_2 c1 is well-ordering ) by E4, WELLORD2:25;
take c4 = order_type_of (c2 |_2 c1);
c2 |_2 c1, RelIncl c4 are_isomorphic by E5, WELLORD2:def 2;
then consider c5 being Function such that
E6: c5 is_isomorphism_of c2 |_2 c1, RelIncl c4 by WELLORD1:def 8;
E7: ( dom c5 = field (c2 |_2 c1) & rng c5 = field (RelIncl c4) & c5 is one-to-one & for b1, b2 being set holds
( [b1,b2] in c2 |_2 c1 iff ( b1 in field (c2 |_2 c1) & b2 in field (c2 |_2 c1) & [(c5 . b1),(c5 . b2)] in RelIncl c4 ) ) ) by E6, WELLORD1:def 7;
take c5 ; :: uses WELLORD2:def 4
thus ( c5 is one-to-one & dom c5 = c1 & rng c5 = c4 ) by E4, E7, WELLORD2:25, WELLORD2:def 1;
end;

notation
let c1, c2 be Cardinal;
end;

theorem :: CARD_1:5
canceled;

theorem :: CARD_1:6
canceled;

theorem :: CARD_1:7
canceled;

theorem E4: :: CARD_1:8
for b1, b2 being Cardinal holds
( b1 = b2 iff b1,b2 are_equipotent )
proof
let c1, c2 be Cardinal;
thus ( c1 = c2 implies c1,c2 are_equipotent ) ;
consider c3 being Ordinal such that
E5: ( c1 = c3 & for b1 being Ordinal holds
( b1,c3 are_equipotent implies c3 c= b1 ) ) by E2;
consider c4 being Ordinal such that
E6: ( c2 = c4 & for b1 being Ordinal holds
( b1,c4 are_equipotent implies c4 c= b1 ) ) by E2;
assume E7: c1,c2 are_equipotent ;
then E8: ( c4 c= c3 & c2,c1 are_equipotent ) by E5, E6;
c3 c= c4 by E5, E6, E7;
hence c1 = c2 by E5, E6, E8, XBOOLE_0:def 10;
end;

theorem :: CARD_1:9
canceled;

theorem :: CARD_1:10
canceled;

theorem :: CARD_1:11
canceled;

theorem :: CARD_1:12
canceled;

theorem :: CARD_1:13
for b1, b2 being Cardinal holds
( b1 <` b2 iff ( b1 <=` b2 & b1 <> b2 ) )
proof
let c1, c2 be Cardinal;
( c1 c< c2 iff ( c1 c= c2 & c1 <> c2 ) ) by XBOOLE_0:def 8;
hence ( c1 <` c2 iff ( c1 <=` c2 & c1 <> c2 ) ) by ORDINAL1:21, ORDINAL1:def 2;
end;

theorem :: CARD_1:14
for b1, b2 being Cardinal holds
( b1 <` b2 iff not b2 <=` b1 ) by ORDINAL1:7, ORDINAL1:26;

definition
let c1 be set ;
canceled;
canceled;
canceled;
func Card a1 -> Cardinal means :E5: :: CARD_1:def 5
a1,a2 are_equipotent ;
existence
ex b1 being Cardinal st c1,b1 are_equipotent
proof
defpred S1[ Ordinal] means a1,c1 are_equipotent ;
E5: ex b1 being Ordinal st
S1[b1] by E3;
consider c2 being Ordinal such that
E6: ( S1[c2] & for b1 being Ordinal holds
( S1[b1] implies c2 c= b1 ) ) from ORDINAL1:sch 1(E5);
c2 is cardinal
proof
take c2 ; :: uses CARD_1:def 1
thus c2 = c2 ;
let c3 be Ordinal;
assume c3,c2 are_equipotent ;
then c1,c3 are_equipotent by E6, WELLORD2:22;
hence c2 c= c3 by E6;
end;
then reconsider c3 = c2 as Cardinal ;
take c3 ;
thus c1,c3 are_equipotent by E6;
end;
uniqueness
for b1, b2 being Cardinal holds
( ( c1,b1 are_equipotent & c1,b2 are_equipotent ) implies ( b1 = b2 ) )
proof
let c2, c3 be Cardinal;
assume that E5: c1,c2 are_equipotent
and E6: c1,c3 are_equipotent ;
c2,c3 are_equipotent by E5, E6, WELLORD2:22;
hence c2 = c3 by E4;
end;
end;

:: deftheorem CARD_1:def 2 :
canceled;

:: deftheorem CARD_1:def 3 :
canceled;

:: deftheorem CARD_1:def 4 :
canceled;

:: deftheorem E5 defines Card CARD_1:def 5 :
for b1 being set
for b2 being Cardinal holds
( b2 = Card b1 iff b1,b2 are_equipotent );

theorem :: CARD_1:15
canceled;

theorem :: CARD_1:16
canceled;

theorem :: CARD_1:17
canceled;

theorem :: CARD_1:18
canceled;

theorem :: CARD_1:19
canceled;

theorem :: CARD_1:20
canceled;

theorem E6: :: CARD_1:21
for b1, b2 being set holds
( b1,b2 are_equipotent iff Card b1 = Card b2 )
proof
let c1, c2 be set ;
E7: ( c1, Card c1 are_equipotent & c2, Card c2 are_equipotent ) by E5;
thus ( c1,c2 are_equipotent implies Card c1 = Card c2 )
proof
assume c1,c2 are_equipotent ;
then Card c1,c2 are_equipotent by E7, WELLORD2:22;
hence Card c1 = Card c2 by E5;
end;
assume Card c1 = Card c2 ;
hence c1,c2 are_equipotent by E7, WELLORD2:22;
end;

theorem E7: :: CARD_1:22
for b1 being Relation holds
( b1 is well-ordering implies field b1, order_type_of b1 are_equipotent )
proof
let c1 be Relation;
assume c1 is well-ordering ;
then c1, RelIncl (order_type_of c1) are_isomorphic by WELLORD2:def 2;
then consider c2 being Function such that
E8: c2 is_isomorphism_of c1, RelIncl (order_type_of c1) by WELLORD1:def 8;
take c2 ; :: uses WELLORD2:def 4
field (RelIncl (order_type_of c1)) = order_type_of c1 by WELLORD2:def 1;
hence ( c2 is one-to-one & dom c2 = field c1 & rng c2 = order_type_of c1 ) by E8, WELLORD1:def 7;
end;

theorem E8: :: CARD_1:23
for b1 being set
for b2 being Cardinal holds
( b1 c= b2 implies Card b1 <=` b2 )
proof
let c1 be set ;
let c2 be Cardinal;
defpred S1[ Ordinal] means ( a1 c= c2 & c1,a1 are_equipotent );
reconsider c3 = c2 as Ordinal ;
assume c1 c= c2 ;
then E9: ( order_type_of (RelIncl c1) c= c3 & RelIncl c1 is well-ordering & field (RelIncl c1) = c1 ) by WELLORD2:9, WELLORD2:17, WELLORD2:def 1;
then c1, order_type_of (RelIncl c1) are_equipotent by E7;
then E10: ex b1 being Ordinal st
S1[b1] by E9;
consider c4 being Ordinal such that
E11: ( S1[c4] & for b1 being Ordinal holds
( S1[b1] implies c4 c= b1 ) ) from ORDINAL1:sch 1(E10);
c4 is cardinal
proof
take c4 ; :: uses CARD_1:def 1
thus c4 = c4 ;
let c5 be Ordinal;
assume c5,c4 are_equipotent ;
then E12: c1,c5 are_equipotent by E11, WELLORD2:22;
assume E13: not c4 c= c5 ;
then c3 c= c5 by E11, E12;
hence not verum by E11, E13, XBOOLE_1:1;
end;
then reconsider c5 = c4 as Cardinal ;
Card c1 = c5 by E11, E5;
hence Card c1 c= c2 by E11;
end;

theorem E9: :: CARD_1:24
for b1 being Ordinal holds Card b1 c= b1
proof
let c1 be Ordinal;
E10: ex b1 being Ordinal st
( Card c1 = b1 & for b2 being Ordinal holds
( b2,b1 are_equipotent implies b1 c= b2 ) ) by E2;
c1, Card c1 are_equipotent by E5;
hence Card c1 c= c1 by E10;
end;

theorem :: CARD_1:25
for b1 being set
for b2 being Cardinal holds
( b1 in b2 implies Card b1 <` b2 )
proof
let c1 be set ;
let c2 be Cardinal;
assume E10: c1 in c2 ;
then reconsider c3 = c1 as Ordinal by ORDINAL1:23;
( Card c3 c= c3 & Card c1 = Card c3 ) by E9;
hence Card c1 in c2 by E10, ORDINAL1:22;
end;

theorem E10: :: CARD_1:26
for b1, b2 being set holds
( Card b1 <=` Card b2 iff ex b3 being Function st
( b3 is one-to-one & dom b3 = b1 & rng b3 c= b2 ) )
proof
let c1, c2 be set ;
thus not ( Card c1 <=` Card c2 & for b1 being Function holds
not ( b1 is one-to-one & dom b1 = c1 & rng b1 c= c2 ) )
proof
assume E11: Card c1 c= Card c2 ;
E12: ( c1, Card c1 are_equipotent & c2, Card c2 are_equipotent ) by E5;
then consider c3 being Function such that
E13: ( c3 is one-to-one & dom c3 = c1 & rng c3 = Card c1 ) by WELLORD2:def 4;
consider c4 being Function such that
E14: ( c4 is one-to-one & dom c4 = c2 & rng c4 = Card c2 ) by E12, WELLORD2:def 4;
take c5 = c3 * (c4 " );
c4 " is one-to-one by E14, FUNCT_1:62;
hence c5 is one-to-one by E13, FUNCT_1:46;
( rng c4 = dom (c4 " ) & dom c4 = rng (c4 " ) ) by E14, FUNCT_1:55;
hence ( dom c5 = c1 & rng c5 c= c2 ) by E11, E13, E14, RELAT_1:45, RELAT_1:46;
end;
given c3 being Function such that E11: ( c3 is one-to-one & dom c3 = c1 & rng c3 c= c2 ) ;
c2, Card c2 are_equipotent by E5;
then consider c4 being Function such that
E12: ( c4 is one-to-one & dom c4 = c2 & rng c4 = Card c2 ) by WELLORD2:def 4;
E13: c1, rng (c3 * c4) are_equipotent
proof
take c3 * c4 ; :: uses WELLORD2:def 4
thus c3 * c4 is one-to-one by E11, E12, FUNCT_1:46;
thus dom (c3 * c4) = c1 by E11, E12, RELAT_1:46;
thus rng (c3 * c4) = rng (c3 * c4) ;
end;
rng (c3 * c4) c= Card c2 by E12, RELAT_1:45;
then E14: Card (rng (c3 * c4)) <=` Card c2 by E8;
( c1, Card c1 are_equipotent & rng (c3 * c4), Card (rng (c3 * c4)) are_equipotent ) by E5;
then ( Card c1,c1 are_equipotent & c1, Card (rng (c3 * c4)) are_equipotent ) by E13, WELLORD2:22;
then Card c1, Card (rng (c3 * c4)) are_equipotent by WELLORD2:22;
hence Card c1 <=` Card c2 by E14, E4;
end;

theorem E11: :: CARD_1:27
for b1, b2 being set holds
( b1 c= b2 implies Card b1 <=` Card b2 )
proof
let c1, c2 be set ;
assume E12: c1 c= c2 ;
ex b1 being Function st
( b1 is one-to-one & dom b1 = c1 & rng b1 c= c2 )
proof
take id c1 ;
thus ( id c1 is one-to-one & dom (id c1) = c1 & rng (id c1) c= c2 ) by E12, FUNCT_1:52, RELAT_1:71;
end;
hence Card c1 <=` Card c2 by E10;
end;

theorem :: CARD_1:28
for b1, b2 being set holds
( Card b1 <=` Card b2 iff ex b3 being Function st
( dom b3 = b2 & b1 c= rng b3 ) )
proof
let c1, c2 be set ;
thus not ( Card c1 <=` Card c2 & for b1 being Function holds
not ( dom b1 = c2 & c1 c= rng b1 ) )
proof
assume Card c1 <=` Card c2 ;
then consider c3 being Function such that
E12: ( c3 is one-to-one & dom c3 = c1 & rng c3 c= c2 ) by E10;
defpred S1[ set , set ] means ( ( a1 in rng c3 & a2 = (c3 " ) . a1 ) or ( not a1 in rng c3 & a2 = 0 ) );
E13: for b1 being set holds
not ( b1 in c2 & for b2 being set holds
not S1[b1,b2] )
proof
let c4 be set ;
assume c4 in c2 ;
not ( not c4 in rng c3 & for b1 being set holds
not S1[c4,b1] ) ;
hence ex b1 being set st
S1[c4,b1] ;
end;
E14: for b1, b2, b3 being set holds
( ( b1 in c2 & S1[b1,b2] & S1[b1,b3] ) implies ( b2 = b3 ) ) ;
consider c4 being Function such that
E15: ( dom c4 = c2 & for b1 being set holds
( b1 in c2 implies S1[b1,c4 . b1] ) ) from FUNCT_1:sch 2(E14, E13);
take c4 ;
thus dom c4 = c2 by E15;
let c5 be set ; :: uses TARSKI:def 3
assume c5 in c1 ;
then E16: ( (c3 " ) . (c3 . c5) = c5 & c3 . c5 in rng c3 ) by E12, FUNCT_1:56, FUNCT_1:def 5;
then c5 = c4 . (c3 . c5) by E12, E15;
hence c5 in rng c4 by E12, E15, E16, FUNCT_1:def 5;
end;
given c3 being Function such that E12: ( dom c3 = c2 & c1 c= rng c3 ) ;
deffunc H1( set ) -> set = c3 " {a1};
consider c4 being Function such that
E13: ( dom c4 = c1 & for b1 being set holds
( b1 in c1 implies c4 . b1 = H1(b1) ) ) from FUNCT_1:sch 3();
E14: ( c1 = {} implies Card c1 <=` Card c2 )
proof
assume c1 = {} ;
then c1 c= c2 by XBOOLE_1:2;
hence Card c1 <=` Card c2 by E11;
end;
( c1 <> {} implies Card c1 <=` Card c2 )
proof
assume c1 <> {} ;
then reconsider c5 = rng c4 as non empty set by E13, RELAT_1:65;
for b1 being set holds
not ( b1 in c5 & not b1 <> {} )
proof
let c6 be set ;
assume c6 in c5 ;
then consider c7 being set such that
E15: ( c7 in dom c4 & c6 = c4 . c7 ) by FUNCT_1:def 5;
E16: ( c6 = c3 " {c7} & c7 in rng c3 ) by E12, E13, E15;
consider c8 being set such that
E17: ( c8 in dom c3 & c7 = c3 . c8 ) by E12, E13, E15, FUNCT_1:def 5;
c7 in {c7} by TARSKI:def 1;
hence c6 <> {} by E16, E17, FUNCT_1:def 13;
end;
then consider c6 being Function such that
E15: ( dom c6 = c5 & for b1 being set holds
( b1 in c5 implies c6 . b1 in b1 ) ) by WELLORD2:28;
E16: dom (c4 * c6) = c1 by E13, E15, RELAT_1:46;
E17: c4 * c6 is one-to-one
proof
let c7 be set ; :: uses FUNCT_1:def 8
let c8 be set ;
assume E18: ( c7 in dom (c4 * c6) & c8 in dom (c4 * c6) & (c4 * c6) . c7 = (c4 * c6) . c8 ) ;
then E19: ( c4 . c7 = c3 " {c7} & c4 . c8 = c3 " {c8} & (c4 * c6) . c7 = c6 . (c4 . c7) & (c4 * c6) . c8 = c6 . (c4 . c8) ) by E13, E16, FUNCT_1:23;
then ( c6 . (c3 " {c7}) = c6 . (c3 " {c8}) & c3 " {c7} in c5 & c3 " {c8} in c5 ) by E13, E16, E18, FUNCT_1:def 5;
then ( c6 . (c3 " {c7}) in c3 " {c7} & c6 . (c3 " {c8}) in c3 " {c8} ) by E15;
then ( c3 . (c6 . (c3 " {c7})) in {c7} & c3 . (c6 . (c3 " {c8})) in {c8} ) by FUNCT_1:def 13;
then ( c3 . (c6 . (c3 " {c7})) = c7 & c3 . (c6 . (c3 " {c8})) = c8 ) by TARSKI:def 1;
hence c7 = c8 by E18, E19;
end;
rng (c4 * c6) c= c2
proof
let c7 be set ; :: uses TARSKI:def 3
assume c7 in rng (c4 * c6) ;
then consider c8 being set such that
E18: ( c8 in dom (c4 * c6) & c7 = (c4 * c6) . c8 ) by FUNCT_1:def 5;
E19: ( c4 . c8 = c3 " {c8} & c7 = c6 . (c4 . c8) ) by E13, E16, E18, FUNCT_1:23;
then c3 " {c8} in c5 by E13, E16, E18, FUNCT_1:def 5;
then c7 in c3 " {c8} by E15, E19;
hence c7 in c2 by E12, FUNCT_1:def 13;
end;
hence Card c1 <=` Card c2 by E16, E17, E10;
end;
hence Card c1 <=` Card c2 by E14;
end;

theorem E12: :: CARD_1:29
for b1 being set holds
not b1, bool b1 are_equipotent
proof
let c1 be set ;
given c2 being Function such that E13: ( c2 is one-to-one & dom c2 = c1 & rng c2 = bool c1 ) ; :: uses WELLORD2:def 4
defpred S1[ set ] means for b1 being set holds
not ( b1 = c2 . a1 & a1 in b1 );
consider c3 being set such that
E14: for b1 being set holds
( b1 in c3 iff ( b1 in c1 & S1[b1] ) ) from XBOOLE_0:sch 1();
c3 c= c1
proof
let c4 be set ; :: uses TARSKI:def 3
thus not ( c4 <` c3 & not c4 <` c1 ) by E14;
end;
then consider c4 being set such that
E15: ( c4 in c1 & c3 = c2 . c4 ) by E13, FUNCT_1:def 5;
not c4 in c3 by E14, E15;
then ex b1 being set st
( b1 = c2 . c4 & c4 in b1 ) by E14, E15;
hence not verum by E14, E15;
end;

theorem E13: :: CARD_1:30
for b1 being set holds Card b1 <` Card (bool b1)
proof
let c1 be set ;
deffunc H1( set ) -> set = {a1};
consider c2 being Function such that
E14: ( dom c2 = c1 & for b1 being set holds
( b1 in c1 implies c2 . b1 = H1(b1) ) ) from FUNCT_1:sch 3();
E15: c2 is one-to-one
proof
let c3 be set ; :: uses FUNCT_1:def 8
let c4 be set ;
assume E16: ( c3 in dom c2 & c4 in dom c2 & c2 . c3 = c2 . c4 ) ;
then ( c2 . c3 = {c3} & c2 . c4 = {c4} ) by E14;
hence c3 = c4 by E16, ZFMISC_1:6;
end;
rng c2 c= bool c1
proof
let c3 be set ; :: uses TARSKI:def 3
assume c3 in rng c2 ;
then consider c4 being set such that
E16: ( c4 in dom c2 & c3 = c2 . c4 ) by FUNCT_1:def 5;
E17: c2 . c4 = {c4} by E14, E16;
{c4} c= c1
proof
let c5 be set ; :: uses TARSKI:def 3
assume c5 in {c4} ;
hence c5 <` c1 by E14, E16, TARSKI:def 1;
end;
hence c3 <` bool c1 by E16, E17;
end;
then E16: Card c1 <=` Card (bool c1) by E14, E15, E10;
not c1, bool c1 are_equipotent by E12;
then Card c1 <> Card (bool c1) by E6;
then Card c1 c< Card (bool c1) by E16, XBOOLE_0:def 8;
hence Card c1 <` Card (bool c1) by ORDINAL1:21;
end;

definition
let c1 be set ;
func nextcard a1 -> Cardinal means :E14: :: CARD_1:def 6
( Card a1 <` a2 & for b1 being Cardinal holds
( Card a1 <` b1 implies a2 <=` b1 ) );
existence
ex b1 being Cardinal st
( Card c1 <` b1 & for b2 being Cardinal holds
( Card c1 <` b2 implies b1 <=` b2 ) )
proof
defpred S1[ Ordinal] means ex b1 being Cardinal st
( a1 = b1 & Card c1 <` b1 );
( Card c1 <` Card (bool c1) & Card (bool c1) = Card (bool c1) ) by E13;
then E14: ex b1 being Ordinal st
S1[b1] ;
consider c2 being Ordinal such that
E15: S1[c2]
and E16: for b1 being Ordinal holds
( S1[b1] implies c2 c= b1 ) from ORDINAL1:sch 1(E14);
consider c3 being Cardinal such that
E17: ( c2 = c3 & Card c1 <` c3 ) by E15;
take c3 ;
thus Card c1 <` c3 by E17;
let c4 be Cardinal;
assume Card c1 <` c4 ;
hence c3 c= c4 by E16, E17;
end;
uniqueness
for b1, b2 being Cardinal holds
( ( Card c1 <` b1 & for b3 being Cardinal holds
( Card c1 <` b3 implies b1 <=` b3 ) & Card c1 <` b2 & for b3 being Cardinal holds
( Card c1 <` b3 implies b2 <=` b3 ) ) implies ( b1 = b2 ) )
proof
let c2, c3 be Cardinal;
assume that E14: ( Card c1 <` c2 & for b1 being Cardinal holds
( Card c1 <` b1 implies c2 <=` b1 ) )
and E15: ( Card c1 <` c3 & for b1 being Cardinal holds
( Card c1 <` b1 implies c3 <=` b1 ) ) ;
( c2 <=` c3 & c3 <=` c2 ) by E14, E15;
hence c2 = c3 by XBOOLE_0:def 10;
end;
end;

:: deftheorem E14 defines nextcard CARD_1:def 6 :
for b1 being set
for b2 being Cardinal holds
( b2 = nextcard b1 iff ( Card b1 <` b2 & for b3 being Cardinal holds
( Card b1 <` b3 implies b2 <=` b3 ) ) );

theorem :: CARD_1:31
canceled;

theorem E15: :: CARD_1:32
for b1 being Cardinal holds b1 <` nextcard b1
proof
let c1 be Cardinal;
( Card c1 <` nextcard c1 & c1 = Card c1 ) by E5, E14;
hence c1 <` nextcard c1 ;
end;

theorem :: CARD_1:33
for b1 being set holds Card {} <` nextcard b1
proof
let c1 be set ;
{} c= c1 by XBOOLE_1:2;
then ( Card {} <=` Card c1 & Card c1 <` nextcard c1 ) by E14, E11;
hence Card {} <` nextcard c1 by ORDINAL1:22;
end;

theorem E16: :: CARD_1:34
for b1, b2 being set holds
( Card b1 = Card b2 implies nextcard b1 = nextcard b2 )
proof
let c1, c2 be set ;
assume E17: Card c1 = Card c2 ;
( Card c1 <` nextcard c1 & for b1 being Cardinal holds
( Card c1 <` b1 implies nextcard c1 <=` b1 ) ) by E14;
hence nextcard c1 = nextcard c2 by E17, E14;
end;

theorem E17: :: CARD_1:35
for b1, b2 being set holds
( b1,b2 are_equipotent implies nextcard b1 = nextcard b2 )
proof
let c1, c2 be set ;
assume c1,c2 are_equipotent ;
then Card c1 = Card c2 by E6;
hence nextcard c1 = nextcard c2 by E16;
end;

theorem :: CARD_1:36
for b1 being Ordinal holds b1 in nextcard b1
proof
let c1 be Ordinal;
assume not c1 in nextcard c1 ;
then ( nextcard c1 c= c1 & c1, Card c1 are_equipotent ) by E5, ORDINAL1:26;
then ( Card (nextcard c1) <=` Card c1 & Card (nextcard c1) = nextcard c1 & nextcard (Card c1) = nextcard c1 & Card c1 <` nextcard (Card c1) ) by E5, E11, E15, E17;
hence not verum by ORDINAL1:7;
end;

definition
let c1 be Cardinal;
attr a1 is limit means :E18: :: CARD_1:def 7
for b1 being Cardinal holds
not a1 = nextcard b1;
end;

:: deftheorem E18 defines limit CARD_1:def 7 :
for b1 being Cardinal holds
( b1 is limit iff for b2 being Cardinal holds
not b1 = nextcard b2 );

notation
let c1 be Cardinal;
end;

definition
let c1 be Ordinal;
func alef a1 -> set means :E19: :: CARD_1:def 8
ex b1 being T-Sequence st
( a2 = last b1 & dom b1 = succ a1 & b1 . {} = Card NAT & for b2 being Ordinal holds
( succ b2 in succ a1 implies b1 . (succ b2) = nextcard (union {(b1 . b2)}) ) & for b2 being Ordinal holds
( ( b2 in succ a1 & b2 is is_limit_ordinal ) implies ( not b2 <> {} or b1 . b2 = Card (sup (b1 | b2)) ) ) );
correctness
existence
ex b1 being set ex b2 being T-Sequence st
( b1 = last b2 & dom b2 = succ c1 & b2 . {} = Card NAT & for b3 being Ordinal holds
( succ b3 in succ c1 implies b2 . (succ b3) = nextcard (union {(b2 . b3)}) ) & for b3 being Ordinal holds
( ( b3 in succ c1 & b3 is is_limit_ordinal ) implies ( not b3 <> {} or b2 . b3 = Card (sup (b2 | b3)) ) ) )
;
uniqueness
for b1, b2 being set holds
( ( ) implies ( for b3 being T-Sequence holds
not ( b1 = last b3 & dom b3 = succ c1 & b3 . {} = Card NAT & for b4 being Ordinal holds
( succ b4 in succ c1 implies b3 . (succ b4) = nextcard (union {(b3 . b4)}) ) & for b4 being Ordinal holds
( ( b4 in succ c1 & b4 is is_limit_ordinal ) implies ( not b4 <> {} or b3 . b4 = Card (sup (b3 | b4)) ) ) ) or for b3 being T-Sequence holds
not ( b2 = last b3 & dom b3 = succ c1 & b3 . {} = Card NAT & for b4 being Ordinal holds
( succ b4 in succ c1 implies b3 . (succ b4) = nextcard (union {(b3 . b4)}) ) & for b4 being Ordinal holds
( ( b4 in succ c1 & b4 is is_limit_ordinal ) implies ( not b4 <> {} or b3 . b4 = Card (sup (b3 | b4)) ) ) ) or b1 = b2 ) )
;
proof
deffunc H1( Ordinal, set ) -> Cardinal = nextcard (union {a2});
deffunc H2( Ordinal, T-Sequence) -> Cardinal = Card (sup a2);
set c2 = Card NAT ;
thus ( ex b1 being set ex b2 being T-Sequence st
( b1 = last b2 & dom b2 = succ c1 & b2 . {} = Card NAT & for b3 being Ordinal holds
( succ b3 in succ c1 implies b2 . (succ b3) = H1(b3,b2 . b3) ) & for b3 being Ordinal holds
( ( b3 in succ c1 & b3 is is_limit_ordinal ) implies ( not b3 <> {} or b2 . b3 = H2(b3,b2 | b3) ) ) ) & for b1, b2 being set holds
( ( ) implies ( for b3 being T-Sequence holds
not ( b1 = last b3 & dom b3 = succ c1 & b3 . {} = Card NAT & for b4 being Ordinal holds
( succ b4 in succ c1 implies b3 . (succ b4) = H1(b4,b3 . b4) ) & for b4 being Ordinal holds
( ( b4 in succ c1 & b4 is is_limit_ordinal ) implies ( not b4 <> {} or b3 . b4 = H2(b4,b3 | b4) ) ) ) or for b3 being T-Sequence holds
not ( b2 = last b3 & dom b3 = succ c1 & b3 . {} = Card NAT & for b4 being Ordinal holds
( succ b4 in succ c1 implies b3 . (succ b4) = H1(b4,b3 . b4) ) & for b4 being Ordinal holds
( ( b4 in succ c1 & b4 is is_limit_ordinal ) implies ( not b4 <> {} or b3 . b4 = H2(b4,b3 | b4) ) ) ) or b1 = b2 ) ) ) from ORDINAL2:sch 7();
end;
end;

:: deftheorem E19 defines alef CARD_1:def 8 :
for b1 being Ordinal
for b2 being set holds
( b2 = alef b1 iff ex b3 being T-Sequence st
( b2 = last b3 & dom b3 = succ b1 & b3 . {} = Card NAT & for b4 being Ordinal holds
( succ b4 in succ b1 implies b3 . (succ b4) = nextcard (union {(b3 . b4)}) ) & for b4 being Ordinal holds
( ( b4 in succ b1 & b4 is is_limit_ordinal ) implies ( not b4 <> {} or b3 . b4 = Card (sup (b3 | b4)) ) ) ) );

E20: now
deffunc H1( Ordinal) -> set = alef a1;
deffunc H2( Ordinal, set ) -> Cardinal = nextcard (union {a2});
deffunc H3( Ordinal, T-Sequence) -> Cardinal = Card (sup a2);
E21: for b1 being Ordinal
for b2 being set holds
( b2 = H1(b1) iff ex b3 being T-Sequence st
( b2 = last b3 & dom b3 = succ b1 & b3 . {} = Card NAT & for b4 being Ordinal holds
( succ b4 in succ b1 implies b3 . (succ b4) = H2(b4,b3 . b4) ) & for b4 being Ordinal holds
( ( b4 in succ b1 & b4 is is_limit_ordinal ) implies ( not b4 <> {} or b3 . b4 = H3(b4,b3 | b4) ) ) ) ) by E19;
H1( {} ) = Card NAT from ORDINAL2:sch 8(E21);
hence alef 0 = Card NAT ;
thus for b1 being Ordinal holds H1( succ b1) = H2(b1,H1(b1)) from ORDINAL2:sch 9(E21);
thus for b1 being Ordinal holds
( ( b1 is is_limit_ordinal ) implies ( not b1 <> {} or for b2 being T-Sequence holds
( ( dom b2 = b1 & for b3 being Ordinal holds
( b3 in b1 implies b2 . b3 = alef b3 ) ) implies ( alef b1 = Card (sup b2) ) ) ) )
proof
let c1 be Ordinal;
assume E22: ( c1 <> {} & c1 is is_limit_ordinal ) ;
let c2 be T-Sequence;
assume that E23: dom c2 = c1
and E24: for b1 being Ordinal holds
( b1 in c1 implies c2 . b1 = H1(b1) ) ;
thus H1(c1) = H3(c1,c2) from ORDINAL2:sch 10(E21, E22, E23, E24);
end;
end;

deffunc H1( Ordinal) -> set = alef a1;

registration
let c1 be Ordinal;
cluster alef a1 -> ordinal cardinal ;
coherence
alef c1 is cardinal
proof
E21: now
given c2 being Ordinal such that E22: c1 = succ c2 ;
alef c1 = nextcard (union {(alef c2)}) by E22, E20;
hence alef c1 is cardinal ;
end;
now
assume E22: ( c1 <> {} & for b1 being Ordinal holds
c1 <> succ b1 ) ;
then E23: c1 is is_limit_ordinal by ORDINAL1:42;
consider c2 being T-Sequence such that
E24: ( dom c2 = c1 & for b1 being Ordinal holds
( b1 in c1 implies c2 . b1 = H1(b1) ) ) from ORDINAL2:sch 2();
alef c1 = Card (sup c2) by E22, E23, E24, E20;
hence alef c1 is Cardinal ;
end;
hence alef c1 is cardinal by E21, E20;
end;
end;

theorem :: CARD_1:37
canceled;

theorem :: CARD_1:38
alef 0 = Card NAT by E20;

theorem E21: :: CARD_1:39
for b1 being Ordinal holds alef (succ b1) = nextcard (alef b1)
proof
let c1 be Ordinal;
thus alef (succ c1) = nextcard (union {(alef c1)}) by E20
.= nextcard (alef c1) by ZFMISC_1:31 ;
end;

theorem :: CARD_1:40
for b1 being Ordinal holds
( ( b1 is is_limit_ordinal ) implies ( not b1 <> {} or for b2 being T-Sequence holds
( ( dom b2 = b1 & for b3 being Ordinal holds
( b3 in b1 implies b2 . b3 = alef b3 ) ) implies ( alef b1 = Card (sup b2) ) ) ) ) by E20;

theorem E22: :: CARD_1:41
for b1, b2 being Ordinal holds
( b1 in b2 iff alef b1 <` alef b2 )
proof
let c1, c2 be Ordinal;
defpred S1[ Ordinal] means for b1 being Ordinal holds
( b1 in a1 implies alef b1 <` alef a1 );
E23: S1[ {} ] ;
E24: for b1 being Ordinal holds
( S1[b1] implies S1[ succ b1] )
proof
let c3 be Ordinal;
assume E25: S1[c3] ;
let c4 be Ordinal;
assume E26: c4 in succ c3 ;
E27: alef (succ c3) = nextcard (alef c3) by E21;
E28: ( c4 c< c3 iff ( c4 c= c3 & c4 <> c3 ) ) by XBOOLE_0:def 8;
now
assume c4 in c3 ;
then ( alef c4 <` alef c3 & alef c3 <` nextcard (alef c3) ) by E25, E15;
hence alef c4 <` alef (succ c3) by E27, ORDINAL1:19;
end;
hence alef c4 <` alef (succ c3) by E26, E27, E28, E15, ORDINAL1:21, ORDINAL1:34;
end;
E25: for b1 being Ordinal holds
( ( b1 is is_limit_ordinal & for b2 being Ordinal holds
( b2 in b1 implies S1[b2] ) ) implies ( not b1 <> {} or S1[b1] ) )
proof
let c3 be Ordinal;
assume that E26: ( c3 <> {} & c3 is is_limit_ordinal )
and for b1 being Ordinal holds
( b1 in c3 implies for b2 being Ordinal holds
( b2 in b1 implies alef b2 <` alef b1 ) ) ;
consider c4 being T-Sequence such that
E27: dom c4 = c3
and E28: for b1 being Ordinal holds
( b1 in c3 implies c4 . b1 = H1(b1) ) from ORDINAL2:sch 2();
E29: alef c3 = Card (sup c4) by E26, E27, E28, E20;
let c5 be Ordinal;
assume c5 in c3 ;
then succ c5</