:: Tarski's Classes and Ranks :: by Grzegorz Bancerek :: :: Received March 23, 1990 :: Copyright (c) 1990-2012 Association of Mizar Users begin definition let B be set ; attrB is subset-closed means :Def1: :: CLASSES1:def 1 for X, Y being set st X in B & Y c= X holds Y in B; end; :: deftheorem Def1 defines subset-closed CLASSES1:def_1_:_ for B being set holds ( B is subset-closed iff for X, Y being set st X in B & Y c= X holds Y in B ); definition let B be set ; attrB is Tarski means :Def2: :: CLASSES1:def 2 ( B is subset-closed & ( for X being set st X in B holds bool X in B ) & ( for X being set holds ( not X c= B or X,B are_equipotent or X in B ) ) ); end; :: deftheorem Def2 defines Tarski CLASSES1:def_2_:_ for B being set holds ( B is Tarski iff ( B is subset-closed & ( for X being set st X in B holds bool X in B ) & ( for X being set holds ( not X c= B or X,B are_equipotent or X in B ) ) ) ); definition let A, B be set ; predB is_Tarski-Class_of A means :Def3: :: CLASSES1:def 3 ( A in B & B is Tarski ); end; :: deftheorem Def3 defines is_Tarski-Class_of CLASSES1:def_3_:_ for A, B being set holds ( B is_Tarski-Class_of A iff ( A in B & B is Tarski ) ); definition let A be set ; func Tarski-Class A -> set means :Def4: :: CLASSES1:def 4 ( it is_Tarski-Class_of A & ( for D being set st D is_Tarski-Class_of A holds it c= D ) ); existence ex b1 being set st ( b1 is_Tarski-Class_of A & ( for D being set st D is_Tarski-Class_of A holds b1 c= D ) ) proofend; uniqueness for b1, b2 being set st b1 is_Tarski-Class_of A & ( for D being set st D is_Tarski-Class_of A holds b1 c= D ) & b2 is_Tarski-Class_of A & ( for D being set st D is_Tarski-Class_of A holds b2 c= D ) holds b1 = b2 proofend; end; :: deftheorem Def4 defines Tarski-Class CLASSES1:def_4_:_ for A, b2 being set holds ( b2 = Tarski-Class A iff ( b2 is_Tarski-Class_of A & ( for D being set st D is_Tarski-Class_of A holds b2 c= D ) ) ); registration let A be set ; cluster Tarski-Class A -> non empty ; coherence not Tarski-Class A is empty proofend; end; theorem :: CLASSES1:1 for W being set holds ( W is Tarski iff ( W is subset-closed & ( for X being set st X in W holds bool X in W ) & ( for X being set st X c= W & card X in card W holds X in W ) ) ) proofend; theorem Th2: :: CLASSES1:2 for X being set holds X in Tarski-Class X proofend; theorem Th3: :: CLASSES1:3 for Y, X, Z being set st Y in Tarski-Class X & Z c= Y holds Z in Tarski-Class X proofend; theorem Th4: :: CLASSES1:4 for Y, X being set st Y in Tarski-Class X holds bool Y in Tarski-Class X proofend; theorem Th5: :: CLASSES1:5 for Y, X being set holds ( not Y c= Tarski-Class X or Y, Tarski-Class X are_equipotent or Y in Tarski-Class X ) proofend; theorem :: CLASSES1:6 for Y, X being set st Y c= Tarski-Class X & card Y in card (Tarski-Class X) holds Y in Tarski-Class X proofend; definition let X be set ; let A be Ordinal; func Tarski-Class (X,A) -> set means :Def5: :: CLASSES1:def 5 ex L being T-Sequence st ( it = last L & dom L = succ A & L . {} = {X} & ( for C being Ordinal st succ C in succ A holds L . (succ C) = ( { u where u is Element of Tarski-Class X : ex v being Element of Tarski-Class X st ( v in L . C & u c= v ) } \/ { (bool v) where v is Element of Tarski-Class X : v in L . C } ) \/ ((bool (L . C)) /\ (Tarski-Class X)) ) & ( for C being Ordinal st C in succ A & C <> {} & C is limit_ordinal holds L . C = (union (rng (L | C))) /\ (Tarski-Class X) ) ); correctness existence ex b1 being set ex L being T-Sequence st ( b1 = last L & dom L = succ A & L . {} = {X} & ( for C being Ordinal st succ C in succ A holds L . (succ C) = ( { u where u is Element of Tarski-Class X : ex v being Element of Tarski-Class X st ( v in L . C & u c= v ) } \/ { (bool v) where v is Element of Tarski-Class X : v in L . C } ) \/ ((bool (L . C)) /\ (Tarski-Class X)) ) & ( for C being Ordinal st C in succ A & C <> {} & C is limit_ordinal holds L . C = (union (rng (L | C))) /\ (Tarski-Class X) ) ); uniqueness for b1, b2 being set st ex L being T-Sequence st ( b1 = last L & dom L = succ A & L . {} = {X} & ( for C being Ordinal st succ C in succ A holds L . (succ C) = ( { u where u is Element of Tarski-Class X : ex v being Element of Tarski-Class X st ( v in L . C & u c= v ) } \/ { (bool v) where v is Element of Tarski-Class X : v in L . C } ) \/ ((bool (L . C)) /\ (Tarski-Class X)) ) & ( for C being Ordinal st C in succ A & C <> {} & C is limit_ordinal holds L . C = (union (rng (L | C))) /\ (Tarski-Class X) ) ) & ex L being T-Sequence st ( b2 = last L & dom L = succ A & L . {} = {X} & ( for C being Ordinal st succ C in succ A holds L . (succ C) = ( { u where u is Element of Tarski-Class X : ex v being Element of Tarski-Class X st ( v in L . C & u c= v ) } \/ { (bool v) where v is Element of Tarski-Class X : v in L . C } ) \/ ((bool (L . C)) /\ (Tarski-Class X)) ) & ( for C being Ordinal st C in succ A & C <> {} & C is limit_ordinal holds L . C = (union (rng (L | C))) /\ (Tarski-Class X) ) ) holds b1 = b2; proofend; end; :: deftheorem Def5 defines Tarski-Class CLASSES1:def_5_:_ for X being set for A being Ordinal for b3 being set holds ( b3 = Tarski-Class (X,A) iff ex L being T-Sequence st ( b3 = last L & dom L = succ A & L . {} = {X} & ( for C being Ordinal st succ C in succ A holds L . (succ C) = ( { u where u is Element of Tarski-Class X : ex v being Element of Tarski-Class X st ( v in L . C & u c= v ) } \/ { (bool v) where v is Element of Tarski-Class X : v in L . C } ) \/ ((bool (L . C)) /\ (Tarski-Class X)) ) & ( for C being Ordinal st C in succ A & C <> {} & C is limit_ordinal holds L . C = (union (rng (L | C))) /\ (Tarski-Class X) ) ) ); Lm1: now__::_thesis:_for_X_being_set_holds_ (_H1(_{}_)_=_{X}_&_(_for_A_being_Ordinal_holds_H1(_succ_A)_=_H2(A,H1(A))_)_&_(_for_A_being_Ordinal for_L_being_T-Sequence_st_A_<>_{}_&_A_is_limit_ordinal_&_dom_L_=_A_&_(_for_B_being_Ordinal_st_B_in_A_holds_ L_._B_=_Tarski-Class_(X,B)_)_holds_ Tarski-Class_(X,A)_=_(union_(rng_L))_/\_(Tarski-Class_X)_)_) let X be set ; ::_thesis: ( H1( {} ) = {X} & ( for A being Ordinal holds H1( succ A) = H2(A,H1(A)) ) & ( for A being Ordinal for L being T-Sequence st A <> {} & A is limit_ordinal & dom L = A & ( for B being Ordinal st B in A holds L . B = Tarski-Class (X,B) ) holds Tarski-Class (X,A) = (union (rng L)) /\ (Tarski-Class X) ) ) deffunc H1( Ordinal) -> set = Tarski-Class (X,$1); deffunc H2( Ordinal, set ) -> set = ( { u where u is Element of Tarski-Class X : ex v being Element of Tarski-Class X st ( v in $2 & u c= v ) } \/ { (bool v) where v is Element of Tarski-Class X : v in $2 } ) \/ ((bool $2) /\ (Tarski-Class X)); deffunc H3( Ordinal, T-Sequence) -> set = (union (rng $2)) /\ (Tarski-Class X); A1: for A being Ordinal for x being set holds ( x = H1(A) iff ex L being T-Sequence st ( x = last L & dom L = succ A & L . {} = {X} & ( for C being Ordinal st succ C in succ A holds L . (succ C) = H2(C,L . C) ) & ( for C being Ordinal st C in succ A & C <> {} & C is limit_ordinal holds L . C = H3(C,L | C) ) ) ) by Def5; thus H1( {} ) = {X} from ORDINAL2:sch_8(A1); ::_thesis: ( ( for A being Ordinal holds H1( succ A) = H2(A,H1(A)) ) & ( for A being Ordinal for L being T-Sequence st A <> {} & A is limit_ordinal & dom L = A & ( for B being Ordinal st B in A holds L . B = Tarski-Class (X,B) ) holds Tarski-Class (X,A) = (union (rng L)) /\ (Tarski-Class X) ) ) thus for A being Ordinal holds H1( succ A) = H2(A,H1(A)) from ORDINAL2:sch_9(A1); ::_thesis: for A being Ordinal for L being T-Sequence st A <> {} & A is limit_ordinal & dom L = A & ( for B being Ordinal st B in A holds L . B = Tarski-Class (X,B) ) holds Tarski-Class (X,A) = (union (rng L)) /\ (Tarski-Class X) thus for A being Ordinal for L being T-Sequence st A <> {} & A is limit_ordinal & dom L = A & ( for B being Ordinal st B in A holds L . B = Tarski-Class (X,B) ) holds Tarski-Class (X,A) = (union (rng L)) /\ (Tarski-Class X) ::_thesis: verum proof let A be Ordinal; ::_thesis: for L being T-Sequence st A <> {} & A is limit_ordinal & dom L = A & ( for B being Ordinal st B in A holds L . B = Tarski-Class (X,B) ) holds Tarski-Class (X,A) = (union (rng L)) /\ (Tarski-Class X) let L be T-Sequence; ::_thesis: ( A <> {} & A is limit_ordinal & dom L = A & ( for B being Ordinal st B in A holds L . B = Tarski-Class (X,B) ) implies Tarski-Class (X,A) = (union (rng L)) /\ (Tarski-Class X) ) assume that A2: ( A <> {} & A is limit_ordinal ) and A3: dom L = A and A4: for B being Ordinal st B in A holds L . B = H1(B) ; ::_thesis: Tarski-Class (X,A) = (union (rng L)) /\ (Tarski-Class X) thus H1(A) = H3(A,L) from ORDINAL2:sch_10(A1, A2, A3, A4); ::_thesis: verum end; end; definition let X be set ; let A be Ordinal; :: original:Tarski-Class redefine func Tarski-Class (X,A) -> Subset of (Tarski-Class X); coherence Tarski-Class (X,A) is Subset of (Tarski-Class X) proofend; end; theorem :: CLASSES1:7 for X being set holds Tarski-Class (X,{}) = {X} by Lm1; theorem :: CLASSES1:8 for X being set for A being Ordinal holds Tarski-Class (X,(succ A)) = ( { u where u is Element of Tarski-Class X : ex v being Element of Tarski-Class X st ( v in Tarski-Class (X,A) & u c= v ) } \/ { (bool v) where v is Element of Tarski-Class X : v in Tarski-Class (X,A) } ) \/ ((bool (Tarski-Class (X,A))) /\ (Tarski-Class X)) by Lm1; theorem Th9: :: CLASSES1:9 for X being set for A being Ordinal st A <> {} & A is limit_ordinal holds Tarski-Class (X,A) = { u where u is Element of Tarski-Class X : ex B being Ordinal st ( B in A & u in Tarski-Class (X,B) ) } proofend; theorem Th10: :: CLASSES1:10 for Y, X being set for A being Ordinal holds ( Y in Tarski-Class (X,(succ A)) iff ( ( Y c= Tarski-Class (X,A) & Y in Tarski-Class X ) or ex Z being set st ( Z in Tarski-Class (X,A) & ( Y c= Z or Y = bool Z ) ) ) ) proofend; theorem :: CLASSES1:11 for Y, Z, X being set for A being Ordinal st Y c= Z & Z in Tarski-Class (X,A) holds Y in Tarski-Class (X,(succ A)) by Th10; theorem :: CLASSES1:12 for Y, X being set for A being Ordinal st Y in Tarski-Class (X,A) holds bool Y in Tarski-Class (X,(succ A)) by Th10; theorem Th13: :: CLASSES1:13 for X, x being set for A being Ordinal st A <> {} & A is limit_ordinal holds ( x in Tarski-Class (X,A) iff ex B being Ordinal st ( B in A & x in Tarski-Class (X,B) ) ) proofend; theorem :: CLASSES1:14 for Y, X, Z being set for A being Ordinal st A <> {} & A is limit_ordinal & Y in Tarski-Class (X,A) & ( Z c= Y or Z = bool Y ) holds Z in Tarski-Class (X,A) proofend; theorem Th15: :: CLASSES1:15 for X being set for A being Ordinal holds Tarski-Class (X,A) c= Tarski-Class (X,(succ A)) proofend; theorem Th16: :: CLASSES1:16 for X being set for A, B being Ordinal st A c= B holds Tarski-Class (X,A) c= Tarski-Class (X,B) proofend; theorem Th17: :: CLASSES1:17 for X being set ex A being Ordinal st Tarski-Class (X,A) = Tarski-Class (X,(succ A)) proofend; theorem Th18: :: CLASSES1:18 for X being set for A being Ordinal st Tarski-Class (X,A) = Tarski-Class (X,(succ A)) holds Tarski-Class (X,A) = Tarski-Class X proofend; theorem Th19: :: CLASSES1:19 for X being set ex A being Ordinal st Tarski-Class (X,A) = Tarski-Class X proofend; theorem :: CLASSES1:20 for X being set ex A being Ordinal st ( Tarski-Class (X,A) = Tarski-Class X & ( for B being Ordinal st B in A holds Tarski-Class (X,B) <> Tarski-Class X ) ) proofend; theorem :: CLASSES1:21 for Y, X being set st Y <> X & Y in Tarski-Class X holds ex A being Ordinal st ( not Y in Tarski-Class (X,A) & Y in Tarski-Class (X,(succ A)) ) proofend; theorem Th22: :: CLASSES1:22 for X being set st X is epsilon-transitive holds for A being Ordinal st A <> {} holds Tarski-Class (X,A) is epsilon-transitive proofend; theorem Th23: :: CLASSES1:23 for X being set st X is epsilon-transitive holds Tarski-Class X is epsilon-transitive proofend; theorem Th24: :: CLASSES1:24 for Y, X being set st Y in Tarski-Class X holds card Y in card (Tarski-Class X) proofend; theorem Th25: :: CLASSES1:25 for Y, X being set st Y in Tarski-Class X holds not Y, Tarski-Class X are_equipotent proofend; theorem Th26: :: CLASSES1:26 for X, x, y being set st x in Tarski-Class X & y in Tarski-Class X holds ( {x} in Tarski-Class X & {x,y} in Tarski-Class X ) proofend; theorem Th27: :: CLASSES1:27 for X, x, y being set st x in Tarski-Class X & y in Tarski-Class X holds [x,y] in Tarski-Class X proofend; theorem :: CLASSES1:28 for Y, X, Z being set st Y c= Tarski-Class X & Z c= Tarski-Class X holds [:Y,Z:] c= Tarski-Class X proofend; definition let A be Ordinal; func Rank A -> set means :Def6: :: CLASSES1:def 6 ex L being T-Sequence st ( it = last L & dom L = succ A & L . {} = {} & ( for C being Ordinal st succ C in succ A holds L . (succ C) = bool (L . C) ) & ( for C being Ordinal st C in succ A & C <> {} & C is limit_ordinal holds L . C = union (rng (L | C)) ) ); correctness existence ex b1 being set ex L being T-Sequence st ( b1 = last L & dom L = succ A & L . {} = {} & ( for C being Ordinal st succ C in succ A holds L . (succ C) = bool (L . C) ) & ( for C being Ordinal st C in succ A & C <> {} & C is limit_ordinal holds L . C = union (rng (L | C)) ) ); uniqueness for b1, b2 being set st ex L being T-Sequence st ( b1 = last L & dom L = succ A & L . {} = {} & ( for C being Ordinal st succ C in succ A holds L . (succ C) = bool (L . C) ) & ( for C being Ordinal st C in succ A & C <> {} & C is limit_ordinal holds L . C = union (rng (L | C)) ) ) & ex L being T-Sequence st ( b2 = last L & dom L = succ A & L . {} = {} & ( for C being Ordinal st succ C in succ A holds L . (succ C) = bool (L . C) ) & ( for C being Ordinal st C in succ A & C <> {} & C is limit_ordinal holds L . C = union (rng (L | C)) ) ) holds b1 = b2; proofend; end; :: deftheorem Def6 defines Rank CLASSES1:def_6_:_ for A being Ordinal for b2 being set holds ( b2 = Rank A iff ex L being T-Sequence st ( b2 = last L & dom L = succ A & L . {} = {} & ( for C being Ordinal st succ C in succ A holds L . (succ C) = bool (L . C) ) & ( for C being Ordinal st C in succ A & C <> {} & C is limit_ordinal holds L . C = union (rng (L | C)) ) ) ); deffunc H1( Ordinal) -> set = Rank $1; Lm2: now__::_thesis:_(_H1(_{}_)_=_{}_&_(_for_A_being_Ordinal_holds_H1(_succ_A)_=_H2(A,H1(A))_)_&_(_for_A_being_Ordinal for_L_being_T-Sequence_st_A_<>_{}_&_A_is_limit_ordinal_&_dom_L_=_A_&_(_for_B_being_Ordinal_st_B_in_A_holds_ L_._B_=_Rank_B_)_holds_ Rank_A_=_union_(rng_L)_)_) deffunc H2( Ordinal, set ) -> Element of bool (bool $2) = bool $2; deffunc H3( Ordinal, T-Sequence) -> set = union (rng $2); A1: for A being Ordinal for x being set holds ( x = H1(A) iff ex L being T-Sequence st ( x = last L & dom L = succ A & L . {} = {} & ( for C being Ordinal st succ C in succ A holds L . (succ C) = H2(C,L . C) ) & ( for C being Ordinal st C in succ A & C <> {} & C is limit_ordinal holds L . C = H3(C,L | C) ) ) ) by Def6; thus H1( {} ) = {} from ORDINAL2:sch_8(A1); ::_thesis: ( ( for A being Ordinal holds H1( succ A) = H2(A,H1(A)) ) & ( for A being Ordinal for L being T-Sequence st A <> {} & A is limit_ordinal & dom L = A & ( for B being Ordinal st B in A holds L . B = Rank B ) holds Rank A = union (rng L) ) ) thus for A being Ordinal holds H1( succ A) = H2(A,H1(A)) from ORDINAL2:sch_9(A1); ::_thesis: for A being Ordinal for L being T-Sequence st A <> {} & A is limit_ordinal & dom L = A & ( for B being Ordinal st B in A holds L . B = Rank B ) holds Rank A = union (rng L) thus for A being Ordinal for L being T-Sequence st A <> {} & A is limit_ordinal & dom L = A & ( for B being Ordinal st B in A holds L . B = Rank B ) holds Rank A = union (rng L) ::_thesis: verum proof let A be Ordinal; ::_thesis: for L being T-Sequence st A <> {} & A is limit_ordinal & dom L = A & ( for B being Ordinal st B in A holds L . B = Rank B ) holds Rank A = union (rng L) let L be T-Sequence; ::_thesis: ( A <> {} & A is limit_ordinal & dom L = A & ( for B being Ordinal st B in A holds L . B = Rank B ) implies Rank A = union (rng L) ) assume that A2: ( A <> {} & A is limit_ordinal ) and A3: dom L = A and A4: for B being Ordinal st B in A holds L . B = H1(B) ; ::_thesis: Rank A = union (rng L) thus H1(A) = H3(A,L) from ORDINAL2:sch_10(A1, A2, A3, A4); ::_thesis: verum end; end; theorem :: CLASSES1:29 Rank {} = {} by Lm2; theorem :: CLASSES1:30 for A being Ordinal holds Rank (succ A) = bool (Rank A) by Lm2; theorem Th31: :: CLASSES1:31 for A being Ordinal st A <> {} & A is limit_ordinal holds for x being set holds ( x in Rank A iff ex B being Ordinal st ( B in A & x in Rank B ) ) proofend; theorem Th32: :: CLASSES1:32 for X being set for A being Ordinal holds ( X c= Rank A iff X in Rank (succ A) ) proofend; registration let A be Ordinal; cluster Rank A -> epsilon-transitive ; coherence Rank A is epsilon-transitive proofend; end; theorem :: CLASSES1:33 for A being Ordinal holds Rank A c= Rank (succ A) proofend; theorem Th34: :: CLASSES1:34 for A being Ordinal holds union (Rank A) c= Rank A proofend; theorem :: CLASSES1:35 for X being set for A being Ordinal st X in Rank A holds union X in Rank A proofend; theorem Th36: :: CLASSES1:36 for A, B being Ordinal holds ( A in B iff Rank A in Rank B ) proofend; theorem Th37: :: CLASSES1:37 for A, B being Ordinal holds ( A c= B iff Rank A c= Rank B ) proofend; theorem Th38: :: CLASSES1:38 for A being Ordinal holds A c= Rank A proofend; theorem :: CLASSES1:39 for A being Ordinal for X being set st X in Rank A holds ( not X, Rank A are_equipotent & card X in card (Rank A) ) proofend; theorem :: CLASSES1:40 for X being set for A being Ordinal holds ( X c= Rank A iff bool X c= Rank (succ A) ) proofend; theorem Th41: :: CLASSES1:41 for X, Y being set for A being Ordinal st X c= Y & Y in Rank A holds X in Rank A proofend; theorem Th42: :: CLASSES1:42 for X being set for A being Ordinal holds ( X in Rank A iff bool X in Rank (succ A) ) proofend; theorem Th43: :: CLASSES1:43 for x being set for A being Ordinal holds ( x in Rank A iff {x} in Rank (succ A) ) proofend; theorem Th44: :: CLASSES1:44 for x, y being set for A being Ordinal holds ( ( x in Rank A & y in Rank A ) iff {x,y} in Rank (succ A) ) proofend; theorem :: CLASSES1:45 for x, y being set for A being Ordinal holds ( ( x in Rank A & y in Rank A ) iff [x,y] in Rank (succ (succ A)) ) proofend; theorem Th46: :: CLASSES1:46 for X being set for A being Ordinal st X is epsilon-transitive & (Rank A) /\ (Tarski-Class X) = (Rank (succ A)) /\ (Tarski-Class X) holds Tarski-Class X c= Rank A proofend; theorem Th47: :: CLASSES1:47 for X being set st X is epsilon-transitive holds ex A being Ordinal st Tarski-Class X c= Rank A proofend; theorem Th48: :: CLASSES1:48 for X being set st X is epsilon-transitive holds union X c= X proofend; theorem Th49: :: CLASSES1:49 for X, Y being set st X is epsilon-transitive & Y is epsilon-transitive holds X \/ Y is epsilon-transitive proofend; theorem :: CLASSES1:50 for X, Y being set st X is epsilon-transitive & Y is epsilon-transitive holds X /\ Y is epsilon-transitive proofend; deffunc H2( set , set ) -> set = union $2; definition let X be set ; func the_transitive-closure_of X -> set means :Def7: :: CLASSES1:def 7 for x being set holds ( x in it iff ex f being Function ex n being Element of omega st ( x in f . n & dom f = omega & f . 0 = X & ( for k being Nat holds f . (succ k) = union (f . k) ) ) ); existence ex b1 being set st for x being set holds ( x in b1 iff ex f being Function ex n being Element of omega st ( x in f . n & dom f = omega & f . 0 = X & ( for k being Nat holds f . (succ k) = union (f . k) ) ) ) proofend; uniqueness for b1, b2 being set st ( for x being set holds ( x in b1 iff ex f being Function ex n being Element of omega st ( x in f . n & dom f = omega & f . 0 = X & ( for k being Nat holds f . (succ k) = union (f . k) ) ) ) ) & ( for x being set holds ( x in b2 iff ex f being Function ex n being Element of omega st ( x in f . n & dom f = omega & f . 0 = X & ( for k being Nat holds f . (succ k) = union (f . k) ) ) ) ) holds b1 = b2 proofend; end; :: deftheorem Def7 defines the_transitive-closure_of CLASSES1:def_7_:_ for X, b2 being set holds ( b2 = the_transitive-closure_of X iff for x being set holds ( x in b2 iff ex f being Function ex n being Element of omega st ( x in f . n & dom f = omega & f . 0 = X & ( for k being Nat holds f . (succ k) = union (f . k) ) ) ) ); theorem Th51: :: CLASSES1:51 for X being set holds the_transitive-closure_of X is epsilon-transitive proofend; theorem Th52: :: CLASSES1:52 for X being set holds X c= the_transitive-closure_of X proofend; theorem Th53: :: CLASSES1:53 for X, Y being set st X c= Y & Y is epsilon-transitive holds the_transitive-closure_of X c= Y proofend; theorem Th54: :: CLASSES1:54 for X, Y being set st ( for Z being set st X c= Z & Z is epsilon-transitive holds Y c= Z ) & X c= Y & Y is epsilon-transitive holds the_transitive-closure_of X = Y proofend; theorem Th55: :: CLASSES1:55 for X being set st X is epsilon-transitive holds the_transitive-closure_of X = X proofend; theorem :: CLASSES1:56 the_transitive-closure_of {} = {} by Th55; theorem :: CLASSES1:57 for A being Ordinal holds the_transitive-closure_of A = A by Th55; theorem Th58: :: CLASSES1:58 for X, Y being set st X c= Y holds the_transitive-closure_of X c= the_transitive-closure_of Y proofend; theorem :: CLASSES1:59 for X being set holds the_transitive-closure_of (the_transitive-closure_of X) = the_transitive-closure_of X by Th51, Th55; theorem :: CLASSES1:60 for X, Y being set holds the_transitive-closure_of (X \/ Y) = (the_transitive-closure_of X) \/ (the_transitive-closure_of Y) proofend; theorem :: CLASSES1:61 for X, Y being set holds the_transitive-closure_of (X /\ Y) c= (the_transitive-closure_of X) /\ (the_transitive-closure_of Y) proofend; theorem Th62: :: CLASSES1:62 for X being set ex A being Ordinal st X c= Rank A proofend; definition let X be set ; func the_rank_of X -> Ordinal means :Def8: :: CLASSES1:def 8 ( X c= Rank it & ( for B being Ordinal st X c= Rank B holds it c= B ) ); existence ex b1 being Ordinal st ( X c= Rank b1 & ( for B being Ordinal st X c= Rank B holds b1 c= B ) ) proofend; uniqueness for b1, b2 being Ordinal st X c= Rank b1 & ( for B being Ordinal st X c= Rank B holds b1 c= B ) & X c= Rank b2 & ( for B being Ordinal st X c= Rank B holds b2 c= B ) holds b1 = b2 proofend; end; :: deftheorem Def8 defines the_rank_of CLASSES1:def_8_:_ for X being set for b2 being Ordinal holds ( b2 = the_rank_of X iff ( X c= Rank b2 & ( for B being Ordinal st X c= Rank B holds b2 c= B ) ) ); theorem Th63: :: CLASSES1:63 for X being set holds the_rank_of (bool X) = succ (the_rank_of X) proofend; theorem :: CLASSES1:64 for A being Ordinal holds the_rank_of (Rank A) = A proofend; theorem Th65: :: CLASSES1:65 for X being set for A being Ordinal holds ( X c= Rank A iff the_rank_of X c= A ) proofend; theorem Th66: :: CLASSES1:66 for X being set for A being Ordinal holds ( X in Rank A iff the_rank_of X in A ) proofend; theorem :: CLASSES1:67 for X, Y being set st X c= Y holds the_rank_of X c= the_rank_of Y proofend; theorem Th68: :: CLASSES1:68 for X, Y being set st X in Y holds the_rank_of X in the_rank_of Y proofend; theorem Th69: :: CLASSES1:69 for X being set for A being Ordinal holds ( the_rank_of X c= A iff for Y being set st Y in X holds the_rank_of Y in A ) proofend; theorem Th70: :: CLASSES1:70 for X being set for A being Ordinal holds ( A c= the_rank_of X iff for B being Ordinal st B in A holds ex Y being set st ( Y in X & B c= the_rank_of Y ) ) proofend; theorem :: CLASSES1:71 for X being set holds ( the_rank_of X = {} iff X = {} ) proofend; theorem Th72: :: CLASSES1:72 for X being set for A being Ordinal st the_rank_of X = succ A holds ex Y being set st ( Y in X & the_rank_of Y = A ) proofend; theorem :: CLASSES1:73 for A being Ordinal holds the_rank_of A = A proofend; theorem :: CLASSES1:74 for X being set holds ( the_rank_of (Tarski-Class X) <> {} & the_rank_of (Tarski-Class X) is limit_ordinal ) proofend; begin scheme :: CLASSES1:sch 1 NonUniqFuncEx{ F1() -> set , P1[ set , set ] } : ex f being Function st ( dom f = F1() & ( for e being set st e in F1() holds P1[e,f . e] ) ) provided A1: for e being set st e in F1() holds ex u being set st P1[e,u] proofend; :: from RFINSEQ, 2008.10.10, A.T. definition let F, G be Relation; predF,G are_fiberwise_equipotent means :Def9: :: CLASSES1:def 9 for x being set holds card (Coim (F,x)) = card (Coim (G,x)); reflexivity for F being Relation for x being set holds card (Coim (F,x)) = card (Coim (F,x)) ; symmetry for F, G being Relation st ( for x being set holds card (Coim (F,x)) = card (Coim (G,x)) ) holds for x being set holds card (Coim (G,x)) = card (Coim (F,x)) ; end; :: deftheorem Def9 defines are_fiberwise_equipotent CLASSES1:def_9_:_ for F, G being Relation holds ( F,G are_fiberwise_equipotent iff for x being set holds card (Coim (F,x)) = card (Coim (G,x)) ); Lm3: for F being Function for x being set st not x in rng F holds Coim (F,x) = {} proofend; theorem Th75: :: CLASSES1:75 for F, G being Function st F,G are_fiberwise_equipotent holds rng F = rng G proofend; theorem :: CLASSES1:76 for F, G, H being Function st F,G are_fiberwise_equipotent & F,H are_fiberwise_equipotent holds G,H are_fiberwise_equipotent proofend; theorem Th77: :: CLASSES1:77 for F, G being Function holds ( F,G are_fiberwise_equipotent iff ex H being Function st ( dom H = dom F & rng H = dom G & H is one-to-one & F = G * H ) ) proofend; theorem Th78: :: CLASSES1:78 for F, G being Function holds ( F,G are_fiberwise_equipotent iff for X being set holds card (F " X) = card (G " X) ) proofend; theorem :: CLASSES1:79 for D being non empty set for F, G being Function st rng F c= D & rng G c= D & ( for d being Element of D holds card (Coim (F,d)) = card (Coim (G,d)) ) holds F,G are_fiberwise_equipotent proofend; theorem Th80: :: CLASSES1:80 for F, G being Function st dom F = dom G holds ( F,G are_fiberwise_equipotent iff ex P being Permutation of (dom F) st F = G * P ) proofend; theorem :: CLASSES1:81 for F, G being Function st F,G are_fiberwise_equipotent holds card (dom F) = card (dom G) proofend; :: from CIRCCOMB, 2009.01.26, A.T. theorem :: CLASSES1:82 for f being set for p being Relation for x being set st x in rng p holds the_rank_of x in the_rank_of [p,f] proofend; :: from BAGORDER, 2011.07.24, A.T. theorem :: CLASSES1:83 for f, g, h being Function st dom f = dom g & rng f c= dom h & rng g c= dom h & f,g are_fiberwise_equipotent holds h * f,h * g are_fiberwise_equipotent proofend;