### Sequences of Ordinal Numbers

by
Grzegorz Bancerek

Copyright (c) 1989 Association of Mizar Users

MML identifier: ORDINAL2
[ MML identifier index ]

```environ

vocabulary ORDINAL1, FUNCT_1, BOOLE, SETFAM_1, TARSKI, RELAT_1, ORDINAL2;
notation TARSKI, XBOOLE_0, ZFMISC_1, SUBSET_1, RELAT_1, FUNCT_1, ORDINAL1,
SETFAM_1;
constructors ORDINAL1, SETFAM_1, XBOOLE_0;
clusters FUNCT_1, SUBSET_1, ORDINAL1, ZFMISC_1, XBOOLE_0;
requirements SUBSET, BOOLE;
definitions TARSKI, XBOOLE_0, ORDINAL1;
theorems TARSKI, XBOOLE_0, ORDINAL1, SETFAM_1, ZFMISC_1, FUNCT_1, RELAT_1,
XBOOLE_1;
schemes XBOOLE_0, FUNCT_1, ORDINAL1;

begin

reserve A,A1,A2,B,C,D for Ordinal,
X,Y,Z for set,
x,y,a,b,c for set,
L,L1,L2,L3 for T-Sequence,
f for Function;

scheme Ordinal_Ind { P[Ordinal] } :
for A holds P[A]
provided
A1:  P[{}] and
A2:  for A st P[A] holds P[succ A] and
A3:  for A st A <> {} & A is_limit_ordinal & for B st B in A holds P[B]
holds P[A]
proof
defpred PP[Ordinal] means P[\$1];
A4:for A st for B st B in A holds PP[B] holds PP[A]
proof let A such that
A5:     for B st B in A holds P[B];
A6:     now given B such that
A7:      A = succ B;
B in A by A7,ORDINAL1:10;
then P[B] by A5;
hence thesis by A2,A7;
end;
now assume
A8:      A <> {} & for B holds A <> succ B;
then A is_limit_ordinal by ORDINAL1:42;
hence thesis by A3,A5,A8;
end;
hence thesis by A1,A6;
end;
thus for A holds PP[A] from Transfinite_Ind(A4);
end;

theorem
Th1: A c= B iff succ A c= succ B
proof
(A c= B iff A in succ B) & (A in succ B iff succ A c= succ B)
by ORDINAL1:33,34;
hence thesis;
end;

Lm1: succ {} = { {} }
proof
thus succ {} = {} \/ { {} } by ORDINAL1:def 1
.= { {} };
end;

theorem
Th2: union succ A = A
proof
A1:    A in succ A by ORDINAL1:10;
thus union succ A c= A
proof let x; assume x in union succ A;
then consider X such that
A2:     x in X & X in succ A by TARSKI:def 4;
reconsider X as Ordinal by A2,ORDINAL1:23;
X c= A by A2,ORDINAL1:34;
hence x in A by A2;
end;
thus thesis by A1,ZFMISC_1:92;
end;

theorem
succ A c= bool A
proof let x; assume A1: x in succ A;
then A2:  x in A or x = A by ORDINAL1:13;
reconsider B = x as Ordinal by A1,ORDINAL1:23;
B c= A by A2,ORDINAL1:def 2;
hence x in bool A;
end;

theorem
{} is_limit_ordinal
proof
thus {} = union {} by ZFMISC_1:2;
end;

theorem
Th5: union A c= A
proof let x; assume x in union A;
then consider Y such that
A1:  x in Y & Y in A by TARSKI:def 4;
Y c= A by A1,ORDINAL1:def 2;
hence thesis by A1;
end;

definition let L;
func last L -> set equals
:Def1:  L.(union dom L);
coherence;
end;

canceled;

theorem
Th7: dom L = succ A implies last L = L.A
proof
union succ A = A by Th2;
hence thesis by Def1;
end;

definition let X;
func On X -> set means
:Def2:  x in it iff x in X & x is Ordinal;
existence
proof
defpred P[set] means \$1 is Ordinal;
thus ex Y being set st
for x being set holds x in Y iff x in X & P[x] from Separation;
end;
uniqueness
proof
defpred P[set] means \$1 in X & \$1 is Ordinal;
let Y,Z such that
A1:   x in Y iff P[x] and
A2:   x in Z iff P[x];
thus Y = Z from Extensionality(A1,A2);
end;

func Lim X -> set means
:Def3: x in it iff x in X & ex A st x = A & A is_limit_ordinal;
existence
proof
defpred P[set] means ex A st \$1 = A & A is_limit_ordinal;
thus ex Y being set st
for x being set holds x in Y iff x in X & P[x] from Separation;
end;
uniqueness
proof
defpred P[set] means \$1 in X & ex A st \$1 = A & A is_limit_ordinal;
let Y,Z such that
A3:   x in Y iff P[x] and
A4:   x in Z iff P[x];
thus Y = Z from Extensionality(A3,A4);
end;
end;

canceled;

theorem
On X c= X
proof thus x in On X implies x in X by Def2; end;

theorem
Th10: On A = A
proof
x in A iff x in A & x is Ordinal by ORDINAL1:23;
hence thesis by Def2;
end;

theorem
Th11: X c= Y implies On X c= On Y
proof assume
A1:  X c= Y;
let x; assume x in On X;
then x in X & x is Ordinal by Def2; hence x in On Y by A1,Def2;
end;

canceled;

theorem
Lim X c= X
proof thus x in Lim X implies x in X by Def3; end;

theorem
X c= Y implies Lim X c= Lim Y
proof assume
A1:  X c= Y;
let x; assume x in Lim X;
then x in X & ex A st x = A & A is_limit_ordinal by Def3;
hence x in Lim Y by A1,Def3;
end;

theorem
Lim X c= On X
proof let x; assume x in Lim X;
then x in X & ex A st x = A & A is_limit_ordinal by Def3;
hence x in On X by Def2;
end;

theorem Th16:
for D ex A st D in A & A is_limit_ordinal
proof let D;
consider Field being set such that
A1:  D in Field &
(for X,Y holds X in Field & Y c= X implies Y in Field) &
(for X holds X in Field implies bool X in Field) &
(for X holds X c= Field implies X,Field are_equipotent or X in Field)
by ZFMISC_1:136;
for X st X in On Field holds X is Ordinal & X c= On Field
proof let X; assume
A2:    X in On Field;
hence X is Ordinal by Def2;
reconsider A = X as Ordinal by A2,Def2;
let y; assume
A3:    y in X;
then y in A;
then reconsider B = y as Ordinal by ORDINAL1:23;
B c= A & A in Field by A2,A3,Def2,ORDINAL1:def 2;
then B in Field by A1;
hence thesis by Def2;
end;
then reconsider ON = On Field as Ordinal by ORDINAL1:31;
take ON;
thus D in ON by A1,Def2;
A in ON implies succ A in ON
proof assume A in ON;
then A in Field by Def2;
then A4:    bool A in Field by A1;
succ A c= bool A
proof let x;
assume x in succ A;
then x in A or x = A by ORDINAL1:13;
then x c= A by ORDINAL1:def 2;
hence x in bool A;
end;
then succ A in Field by A1,A4;
hence thesis by Def2;
end;
hence thesis by ORDINAL1:41;
end;

theorem
Th17: (for x st x in X holds x is Ordinal) implies meet X is Ordinal
proof assume
A1:  for x st x in X holds x is Ordinal;
now assume
A2:    X <> {}; consider x being Element of X;
defpred P[Ordinal] means \$1 in X;
x is Ordinal by A1,A2;
then A3:    ex A st P[A] by A2;
consider A such that
A4:    P[A] & for B st P[B] holds A c= B from Ordinal_Min(A3);
for x holds x in A iff for Y st Y in X holds x in Y
proof let x;
thus x in A implies for Y st Y in X holds x in Y
proof assume
A5:         x in A; let Y; assume
A6:         Y in X;
then reconsider B = Y as Ordinal by A1;
A c= B by A4,A6;
hence x in Y by A5;
end;
assume for Y st Y in X holds x in Y;
hence x in A by A4;
end;
hence thesis by A2,SETFAM_1:def 1;
end;
hence thesis by SETFAM_1:def 1;
end;

definition
func one -> non empty Ordinal equals
:Def4:  succ {};
correctness;
end;

definition
func omega -> set means
:Def5: {} in it & it is_limit_ordinal & it is ordinal &
for A st {} in A & A is_limit_ordinal holds it c= A;
existence
proof
defpred P[Ordinal] means {} in \$1 & \$1 is_limit_ordinal;
A1:   ex A st P[A] by Th16;
ex C st P[C] & for A st P[A] holds C c= A
from Ordinal_Min(A1);
hence thesis;
end;
uniqueness
proof let B,C be set such that
A2:   {} in B & B is_limit_ordinal & B is ordinal &
for A st {} in A & A is_limit_ordinal holds B c= A and
A3:   {} in C & C is_limit_ordinal & C is ordinal &
for A st {} in A & A is_limit_ordinal holds C c= A;
thus B c= C & C c= B by A2,A3;
end;
end;

definition
cluster omega -> non empty ordinal;
coherence by Def5;
end;

definition
let X;
func inf X -> Ordinal equals
:Def6:  meet On X;
coherence
proof
x in On X implies x is Ordinal by Def2; hence thesis by Th17;
end;

func sup X -> Ordinal means
:Def7:  On X c= it & for A st On X c= A holds it c= A;
existence
proof
x in On X implies x is Ordinal by Def2;
then reconsider A = union On X as Ordinal by ORDINAL1:35;
defpred P[Ordinal] means On X c= \$1;
On X c= succ A
proof let x; assume
A1:     x in On X;
then reconsider B = x as Ordinal by Def2;
B c= A by A1,ZFMISC_1:92;
hence x in succ A by ORDINAL1:34;
end;
then A2:   ex A st P[A];
thus ex F being Ordinal st
P[F] & for A st P[A] holds F c= A from Ordinal_Min(A2);
end;
uniqueness
proof let B,C such that
A3:   On X c= B & for A st On X c= A holds B c= A and
A4:   On X c= C & for A st On X c= A holds C c= A;
thus B c= C & C c= B by A3,A4;
end;
end;

canceled;

theorem
{} in omega & omega is_limit_ordinal &
for A st {} in A & A is_limit_ordinal holds omega c= A by Def5;

canceled 2;

theorem
A in X implies inf X c= A
proof assume A in X;
then A in On X by Def2;
then meet On X c= A by SETFAM_1:4;
hence thesis by Def6;
end;

theorem
On X <> {} & (for A st A in X holds D c= A) implies D c= inf X
proof assume
A1:  On X <> {} & for A st A in X holds D c= A;
let x such that
A2:  x in D;
for Y st Y in On X holds x in Y
proof let Y; assume
A3:     Y in On X;
then reconsider A = Y as Ordinal by Def2;
A in X by A3,Def2;
then D c= A by A1;
hence x in Y by A2;
end;
then x in meet On X by A1,SETFAM_1:def 1;
hence x in inf X by Def6;
end;

theorem
A in X & X c= Y implies inf Y c= inf X
proof assume
A in X;
then A1:   On X <> {} by Def2;
assume X c= Y;
then On X c= On Y & inf X = meet On X & inf Y = meet On Y by Def6,Th11;
hence thesis by A1,SETFAM_1:7;
end;

theorem
A in X implies inf X in X
proof
defpred P[Ordinal] means \$1 in X;
assume A in X;
then A1:   ex A st P[A];
consider A such that
A2:   P[A] & for B st P[B] holds A c= B from Ordinal_Min(A1);
A3:   A in On X by A2,Def2;
A4:   On X <> {} by A2,Def2;
now let x;
thus x in A implies for Y st Y in On X holds x in Y
proof assume
A5:        x in A;
let Y; assume A6: Y in On X;
then A7:        Y in X & Y is Ordinal by Def2;
reconsider B = Y as Ordinal by A6,Def2;
A c= B by A2,A7;
hence x in Y by A5;
end;
assume for Y st Y in On X holds x in Y;
hence x in A by A3;
end;
then A = meet On X by A4,SETFAM_1:def 1 .= inf X by Def6;
hence thesis by A2;
end;

theorem
Th26: sup A = A
proof
A1:  On A = A by Th10;
for B st On A c= B holds A c= B by Th10;
hence thesis by A1,Def7;
end;

theorem
Th27: A in X implies A in sup X
proof assume A in X; then A in On X & On X c= sup X by Def2,Def7;
hence thesis;
end;

theorem
Th28: (for A st A in X holds A in D) implies sup X c= D
proof assume
A1:  for A st A in X holds A in D;
On X c= D
proof let x; assume
A2:     x in On X;
then reconsider A = x as Ordinal by Def2;
A in X by A2,Def2;
hence x in D by A1;
end;
hence thesis by Def7;
end;

theorem
A in sup X implies ex B st B in X & A c= B
proof assume
A1:   A in sup X & for B st B in X holds not A c= B;
now let B; assume B in X;
then not A c= B by A1;
hence B in A by ORDINAL1:26;
end;
then sup X c= A by Th28;
end;

theorem
X c= Y implies sup X c= sup Y
proof assume X c= Y;
then On X c= On Y & On Y c= sup Y by Def7,Th11;
then On X c= sup Y & for A st On X c= A holds sup X c= A by Def7,XBOOLE_1:1
;
hence thesis;
end;

theorem
sup { A } = succ A
proof
A1:  On { A } c= succ A
proof let x; assume x in On { A };
then x in { A } by Def2;
then x = A by TARSKI:def 1;
hence thesis by ORDINAL1:10;
end;
now let B such that
A2:    On { A } c= B;
A in { A } by TARSKI:def 1;
then A in On { A } by Def2; hence succ A c= B by A2,ORDINAL1:33;
end;
hence thesis by A1,Def7;
end;

theorem
inf X c= sup X
proof let x; assume x in inf X;
then A1:  x in meet On X by Def6;
consider y being Element of On X;
reconsider y as Ordinal by A1,Def2,SETFAM_1:2;
On X c= sup X by Def7;
then y in sup X by A1,SETFAM_1:2,TARSKI:def 3;
then y c= sup X & x in y by A1,ORDINAL1:def 2,SETFAM_1:2,def 1;
hence thesis;
end;

scheme TS_Lambda { A()->Ordinal, F(Ordinal)->set } :
ex L st dom L = A() & for A st A in A() holds L.A = F(A)
proof
deffunc G(set) = F(sup union { \$1 });
consider f such that
A1:   dom f = A() & for x st x in A() holds f.x = G(x) from Lambda;
reconsider f as T-Sequence by A1,ORDINAL1:def 7;
take L = f;
thus dom L = A() by A1;
let A; assume A in A();
hence L.A = F(sup union { A }) by A1 .= F(sup A) by ZFMISC_1:31
.= F(A) by Th26;
end;

definition let f;
attr f is Ordinal-yielding means
:Def8:  ex A st rng f c= A;
end;

definition
cluster Ordinal-yielding T-Sequence;
existence
proof
consider A; consider L being T-Sequence of A;
reconsider K = L as T-Sequence;
take K,A;
thus thesis by ORDINAL1:def 8;
end;
end;

definition
mode Ordinal-Sequence is Ordinal-yielding T-Sequence;
end;

definition let A;
cluster -> Ordinal-yielding T-Sequence of A;
coherence
proof let L be T-Sequence of A;
take A;
thus rng L c= A by ORDINAL1:def 8;
end;
end;

definition let L be Ordinal-Sequence; let A;
cluster L|A -> Ordinal-yielding;
coherence
proof
consider B such that
A1:   rng L c= B by Def8;
L|A is Ordinal-yielding
proof
take B;
rng(L|A) c= rng L by FUNCT_1:76;
hence thesis by A1,XBOOLE_1:1;
end;
hence thesis;
end;

end;

reserve fi,psi for Ordinal-Sequence;

canceled;

theorem
Th34: A in dom fi implies fi.A is Ordinal
proof assume A in dom fi;
then A1:  fi.A in rng fi by FUNCT_1:def 5;
consider B such that
A2:  rng fi c= B by Def8;
thus thesis by A1,A2,ORDINAL1:23;
end;

definition
let f be Ordinal-Sequence, a be Ordinal;
cluster f.a -> ordinal;
coherence
proof
a in dom f or not a in dom f; hence thesis by FUNCT_1:def 4,Th34;
end;
end;

scheme OS_Lambda { A()->Ordinal, F(Ordinal)->Ordinal } :
ex fi st dom fi = A() & for A st A in A() holds fi.A = F(A)
proof
deffunc FF(Ordinal) = F(\$1);
consider L such that
A1:   dom L = A() & for A st A in A() holds L.A = FF(A) from TS_Lambda;
L is Ordinal-yielding
proof
take A = sup rng L;
let x; assume
A2:      x in rng L;
then consider y such that
A3:      y in dom L & x = L.y by FUNCT_1:def 5;
reconsider y as Ordinal by A3,ORDINAL1:23;
L.y = F(y) by A1,A3;
then x in On rng L & On rng L c= sup rng L by A2,A3,Def2,Def7;
hence x in A;
end;
then reconsider L as Ordinal-Sequence;
take fi = L;
thus dom fi = A() by A1;
let A; assume A in A();
hence fi.A = F(A) by A1;
end;

scheme TS_Uniq1 { A()->Ordinal, B()->set, C(Ordinal,set)->set,
D(Ordinal,T-Sequence)->set,
L1()->T-Sequence, L2()->T-Sequence } :
L1() = L2() provided
A1: dom L1() = A() and
A2: {} in A() implies L1().{} = B() and
A3: for A st succ A in A() holds L1().(succ A) = C(A,L1().A) and
A4: for A st A in A() & A <> {} & A is_limit_ordinal
holds L1().A = D(A,L1()|A) and
A5: dom L2() = A() and
A6: {} in A() implies L2().{} = B() and
A7: for A st succ A in A() holds L2().(succ A) = C(A,L2().A) and
A8: for A st A in A() & A <> {} & A is_limit_ordinal
holds L2().A = D(A,L2()|A)
proof
assume
L1() <> L2();
then consider a such that
A9:  a in A() & L1().a <> L2().a by A1,A5,FUNCT_1:9;
defpred P[set] means L1().\$1 <> L2().\$1;
consider X such that
A10:  Y in X iff Y in A() & P[Y] from Separation;
A11:  X <> {} by A9,A10;
for b holds
b in X implies b in A() by A10;
then X c= A() by TARSKI:def 3;
then consider B such that
A12:  B in X & for C st C in X holds B c= C by A11,ORDINAL1:32;
A13: B in A() & L1().B <> L2().B by A10,A12;
then A14:  B c= A() by ORDINAL1:def 2;
A15:  now let C; assume
A16:   C in B;
then not B c= C by ORDINAL1:7;
then not C in X by A12;
hence L1().C = L2().C by A10,A14,A16;
end;
A17:  dom(L1()|B) = B & dom(L2()|B) = B by A1,A5,A14,RELAT_1:91;
A18:    now let a; assume
A19:   a in B;
then reconsider a' = a as Ordinal by ORDINAL1:23;
A20:   L1().a' = L2().a' by A15,A19;
L1()|B.a = L1().a & L2()|B.a = L2().a by A17,A19,FUNCT_1:70;
hence L1()|B.a = L2()|B.a by A20;
end;
A21: now given C such that
A22:   B = succ C;
A23:   L1().B = C(C,L1().C) & L2().B = C(C,L2().C) & C in B
by A3,A7,A13,A22,ORDINAL1:10;
then L1().C = L1()|B.C & L2().C = L2()|B.C by FUNCT_1:72;
hence L1().B = L2().B by A18,A23;
end;
now assume
A24:   B <> {} & for C holds B <> succ C;
then B is_limit_ordinal by ORDINAL1:42;
then L1().B = D(B,L1()|B) & L2().B = D(B,L2()|B) by A4,A8,A13,A24;
hence L1().B = L2().B by A17,A18,FUNCT_1:9;
end;
end;

scheme TS_Exist1 { A()->Ordinal, B()->set, C(Ordinal,set)->set,
D(Ordinal,T-Sequence)->set } :
ex L st dom L = A() &
({} in A() implies L.{} = B() ) &
(for A st succ A in A() holds L.(succ A) = C(A,L.A) ) &
(for A st A in A() & A <> {} & A is_limit_ordinal
holds L.A = D(A,L|A) )
proof
defpred P[Ordinal,T-Sequence] means
dom \$2 = \$1 &
({} in \$1 implies \$2.{} = B() ) &
(for A st succ A in \$1 holds \$2.(succ A) = C(A,\$2.A) ) &
for A st A in \$1 & A <> {} & A is_limit_ordinal holds \$2.A = D(A,\$2|A);
defpred R[Ordinal] means ex L st P[\$1,L];
deffunc CC(Ordinal,set) = C(\$1,\$2);
deffunc DD(Ordinal,set) = D(\$1,\$2);
A1:  for B st for C st C in B holds R[C] holds R[B]
proof let B such that
A2:    for C st C in B ex L st P[C,L];
defpred R[set,set] means
\$1 is Ordinal & \$2 is T-Sequence &
for A,L st A = \$1 & L = \$2 holds P[A,L];
A3:    for a,b,c st R[a,b] & R[a,c] holds b = c
proof let a,b,c; assume
A4:       ( a is Ordinal & b is T-Sequence &
for A,L st A = a & L = b holds P[A,L] ) &
( a is Ordinal & c is T-Sequence &
for A,L st A = a & L = c holds P[A,L] );
then reconsider a as Ordinal;
reconsider b as T-Sequence by A4;
reconsider c as T-Sequence by A4;
A5:       dom b = a by A4;
A6:       {} in a implies b.{} = B() by A4;
A7:       for A st succ A in a holds b.(succ A) = CC(A,b.A) by A4;
A8:       for A st A in a & A <> {} & A is_limit_ordinal
holds b.A = DD(A,b|A) by A4;
A9:       dom c = a by A4;
A10:       {} in a implies c.{} = B() by A4;
A11:       for A st succ A in a holds c.(succ A) = CC(A,c.A) by A4;
A12:       for A st A in a & A <> {} & A is_limit_ordinal
holds c.A = DD(A,c|A) by A4;
b = c from TS_Uniq1(A5,A6,A7,A8,A9,A10,A11,A12);
hence thesis;
end;
consider G being Function such that
A13:    [a,b] in G iff a in B & R[a,b] from GraphFunc(A3);
A14:    dom G = B
proof
thus a in dom G implies a in B
proof assume a in dom G;
then ex b st [a,b] in G by RELAT_1:def 4;
hence a in B by A13;
end;
let a; assume
A15:       a in B;
then reconsider a' = a as Ordinal by ORDINAL1:23;
consider L such that
A16:       P[a',L] by A2,A15;
for A holds for K be T-Sequence holds
A = a' & K = L implies P[A,K] by A16;
then [a',L] in G by A13,A15;
hence a in dom G by RELAT_1:def 4;
end;
defpred Q[set,set] means
ex A,L st A = \$1 & L = G.\$1 &
(A = {} & \$2 = B() or
(ex B st A = succ B & \$2 = C(B,L.B)) or
A <> {} & A is_limit_ordinal & \$2 = D(A,L));
A17:    for a,b,c st a in B & Q[a,b] & Q[a,c] holds b = c
proof let a,b,c such that
a in B;
given Ab being Ordinal,Lb being T-Sequence such that
A18:       Ab = a & Lb = G.a and
A19:       Ab = {} & b = B() or
(ex B st Ab = succ B & b = C(B,Lb.B)) or
Ab <> {} & Ab is_limit_ordinal & b = D(Ab,Lb);
given Ac being Ordinal,Lc being T-Sequence such that
A20:       Ac = a & Lc = G.a and
A21:       Ac = {} & c = B() or
(ex B st Ac = succ B & c = C(B,Lc.B)) or
Ac <> {} & Ac is_limit_ordinal & c = D(Ac,Lc);
now given C such that
A22:         Ab = succ C;
consider A such that
A23:         Ab = succ A & b = C(A,Lb.A) by A19,A22,ORDINAL1:42;
consider D such that
A24:         Ac = succ D & c = C(D,Lc.D) by A18,A20,A21,A22,ORDINAL1:42;
A = D by A18,A20,A23,A24,ORDINAL1:12;
hence thesis by A18,A20,A23,A24;
end;
hence thesis by A18,A19,A20,A21;
end;
A25:    for a st a in B ex b st Q[a,b]
proof let a; assume
A26:       a in B;
then consider c such that
A27:       [a,c] in G by A14,RELAT_1:def 4;
reconsider L = c as T-Sequence by A13,A27;
reconsider A = a as Ordinal by A26,ORDINAL1:23;
A28:       now assume
A29:         A = {};
thus Q[a,B()]
proof take A,L;
thus A = a & L = G.a by A27,FUNCT_1:8;
thus thesis by A29;
end;
end;
A30:       now given C such that
A31:         A = succ C;
thus ex b st Q[a,b]
proof take C(C,L.C), A, L;
thus A = a & L = G.a by A27,FUNCT_1:8;
thus thesis by A31;
end;
end;
now assume
A32:         A <> {} & for C holds A <> succ C;
thus Q[a,D(A,L)]
proof take A,L;
thus A = a & L = G.a by A27,FUNCT_1:8;
thus thesis by A32,ORDINAL1:42;
end;
end;
hence thesis by A28,A30;
end;
consider F being Function such that
A33:    dom F = B & for a st a in B holds Q[a,F.a] from FuncEx(A17,A25);
reconsider L = F as T-Sequence by A33,ORDINAL1:def 7;
take L;
thus dom L = B by A33;
thus {} in B implies L.{} = B()
proof assume {} in B;
then ex A being Ordinal, K being T-Sequence st
A = {} & K = G.{} & (A = {} & F.{} = B() or
(ex B st A = succ B & F.{} = C(B,K.B)) or
A <> {} & A is_limit_ordinal & F.{} = D(A,K)) by A33;
hence thesis;
end;
A34:     for A,L1 st A in B & L1 = G.A holds L|A = L1
proof
defpred P[Ordinal] means
for L1 st \$1 in B & L1 = G.\$1 holds L|\$1 = L1;
A35:        for A st for C st C in A holds P[C] holds P[A]
proof let A such that
A36:          for C st C in A for L1 st C in B & L1 = G.C holds L|C = L1;
let L1; assume
A37:          A in B & L1 = G.A;
then A38: [A,L1] in G by A14,FUNCT_1:8;
then A39:         P[A,L1] & A c= dom L by A13,A33,A37,ORDINAL1:def 2;
then A40:          dom L1 = A & dom(L|A) = A &
({} in A implies L1.{} = B() ) &
(for B,x st succ B in A & x = L1.B holds L1.(succ B) = C(B,x) ) &
(for B,L2 st B in A & B <> {} & B is_limit_ordinal & L2 = L1|B
holds L1.B = D(B,L2) ) by RELAT_1:91;
now let x; assume
A41:            x in A;
then reconsider x' = x as Ordinal by ORDINAL1:23;
A42:            x' in B by A37,A41,ORDINAL1:19;
then consider A1,L2 such that
A43:            A1 = x' & L2 = G.x' and
A44:            A1 = {} & L.x' = B() or
(ex B st A1 = succ B & L.x' = C(B,L2.B)) or
A1 <> {} & A1 is_limit_ordinal & L.x' = D(A1,L2) by A33;
A45:            L|x' = L2 & L|A.x = L.x by A36,A41,A42,A43,FUNCT_1:72;
for D,L3 st D = x' & L3 = L1|x' holds P[D,L3]
proof let D,L3 such that
A46:               D = x' & L3 = L1|x';
x' c= A by A41,ORDINAL1:def 2;
hence dom L3 = D by A39,A46,RELAT_1:91;
thus {} in D implies L3.{} = B() by A39,A41,A46,FUNCT_1:72,
ORDINAL1:19;
thus succ C in D implies L3.(succ C) = C(C,L3.C)
proof assume
A47:                  succ C in D;
C in succ C by ORDINAL1:10;
then A48: C in D by A47,ORDINAL1:19;
then A49:                  succ C in A & succ C in x' & C in A & C in x'
by A41,A46,A47,ORDINAL1:19;
L1|x'.succ C = L1.succ C & L1|x'.C = L1.C
by A46,A47,A48,FUNCT_1:72;
hence L3.(succ C) = C(C,L3.C) by A13,A38,A46,A49;
end;
let C; assume
A50:               C in D & C <> {} & C is_limit_ordinal;
then C c= x' by A46,ORDINAL1:def 2;
then L1|C = L3|C & C in A by A41,A46,A50,FUNCT_1:82,ORDINAL1:19;
then L1.C = D(C,L3|C) & L1|x'.C = L1.C by A13,A38,A46,A50,
FUNCT_1:72;
hence L3.C = D(C,L3|C) by A46;
end;
then [x',L1|x'] in G by A13,A42;
then A51:            L1|x' = L2 by A43,FUNCT_1:8;
now given D such that
A52:              x' = succ D;
A53:              D in x' by A52,ORDINAL1:10;
consider C such that
A54:              A1 = succ C & L.x' = C(C,L2.C) by A43,A44,A52,ORDINAL1:42;
C = D & L1.x = C(D,L1.D) by A13,A38,A41,A43,A52,A54,ORDINAL1:12
;
hence L1.x = L|A.x by A45,A51,A53,A54,FUNCT_1:72;
end;
hence L1.x = L|A.x by A13,A38,A41,A43,A44,A45,A51;
end;
hence thesis by A40,FUNCT_1:9;
end;
thus for A holds P[A] from Transfinite_Ind(A35);
end;
thus succ A in B implies L.(succ A) = C(A,L.A)
proof assume
A55:        succ A in B;
then consider C being Ordinal, K being T-Sequence such that
A56:        C = succ A & K = G.succ A and
A57:        C = {} & F.succ A = B() or
(ex B st C = succ B & F.succ A = C(B,K.B)) or
C <> {} & C is_limit_ordinal & F.succ A = D(C,K) by A33;
consider D such that
A58:        C = succ D & F.succ A = C(D,K.D) by A56,A57,ORDINAL1:42;
A = D & K = L|succ A & A in succ A
by A34,A55,A56,A58,ORDINAL1:10,12;
hence L.succ A = C(A,L.A) by A58,FUNCT_1:72;
end;
let D; assume
A59:     D in B & D <> {} & D is_limit_ordinal;
then ex A being Ordinal, K being T-Sequence st A = D & K = G.D &
(A = {} & F.D = B() or
(ex B st A = succ B & F.D = C(B,K.B)) or
A <> {} & A is_limit_ordinal & F.D = D(A,K)) by A33;
hence L.D = D(D,L|D) by A34,A59,ORDINAL1:42;
end;
for A holds R[A] from Transfinite_Ind(A1);
hence ex L st P[A(),L];
end;

scheme TS_Result
{ L()->T-Sequence, F(Ordinal)->set, A()->Ordinal, B()->set,
C(Ordinal,set)->set, D(Ordinal,T-Sequence)->set } :
for A st A in dom L() holds L().A = F(A)
provided
A1:  for A,x holds x = F(A) iff
ex L st x = last L & dom L = succ A & L.{} = B() &
(for C st succ C in succ A holds L.succ C = C(C,L.C)) &
for C st C in succ A & C <> {} & C is_limit_ordinal
holds L.C = D(C,L|C) and
A2:  dom L() = A() and
A3:  {} in A() implies L().{} = B() and
A4:  for A st succ A in A() holds L().(succ A) = C(A,L().A) and
A5:  for A st A in A() & A <> {} & A is_limit_ordinal
holds L().A = D(A,L()|A)
proof let A;
set L = L()|succ A;
assume
A in dom L();
then A6:  succ A c= dom L() & A in succ A by ORDINAL1:33;
then A7:  dom L = succ A by RELAT_1:91;
then last L = L.A by Th7;
then A8:  last L = L().A by A6,FUNCT_1:72;
succ A <> {} & {} c= succ A by XBOOLE_1:2;
then {} c< succ A by XBOOLE_0:def 8;
then {} in succ A by ORDINAL1:21;
then A9:  L().{} = B() & L.{} = L().{} by A2,A3,A6,FUNCT_1:72;
A10:  for C st succ C in succ A holds L.succ C = C(C,L.C)
proof let C such that
A11:    succ C in succ A;
C in succ C by ORDINAL1:10;
then C in succ A by A11,ORDINAL1:19;
then L.C = L().C & L.succ C = L().succ C by A11,FUNCT_1:72;
hence L.succ C = C(C,L.C) by A2,A4,A6,A11;
end;
for C st C in succ A & C <> {} & C is_limit_ordinal
holds L.C = D(C,L|C)
proof let C; assume
A12:    C in succ A & C <> {} & C is_limit_ordinal;
then C in A() & C c= succ A by A2,A6,ORDINAL1:def 2;
then L.C = L().C & L|C = L()|C by A12,FUNCT_1:72,82;
hence L.C = D(C,L|C) by A2,A5,A6,A12;
end;
hence thesis by A1,A7,A8,A9,A10;
end;

scheme TS_Def { A()->Ordinal, B()->set, C(Ordinal,set)->set,
D(Ordinal,T-Sequence)->set } :
(ex x,L st x = last L & dom L = succ A() & L.{} = B() &
(for C st succ C in succ A() holds L.succ C = C(C,L.C)) &
for C st C in succ A() & C <> {} & C is_limit_ordinal
holds L.C = D(C,L|C) ) &
for x1,x2 being set st
(ex L st x1 = last L & dom L = succ A() & L.{} = B() &
(for C st succ C in succ A() holds L.succ C = C(C,L.C)) &
for C st C in succ A() & C <> {} & C is_limit_ordinal
holds L.C = D(C,L|C) ) &
(ex L st x2 = last L & dom L = succ A() & L.{} = B() &
(for C st succ C in succ A() holds L.succ C = C(C,L.C)) &
for C st C in succ A() & C <> {} & C is_limit_ordinal
holds L.C = D(C,L|C) )
holds x1 = x2
proof
deffunc DD(Ordinal,T-Sequence) = D(\$1,\$2);
deffunc CC(Ordinal,set) = C(\$1,\$2);
consider L such that
A1:  dom L = succ A() &
({} in succ A() implies L.{} = B() ) &
(for C st succ C in succ A() holds L.(succ C) = CC(C,L.C)) &
for C st C in succ A() & C <> {} & C is_limit_ordinal
holds L.C = DD(C,L|C) from TS_Exist1;
thus ex x,L st x = last L & dom L = succ A() & L.{} = B() &
(for C st succ C in succ A() holds L.succ C = C(C,L.C)) &
for C st C in succ A() & C <> {} & C is_limit_ordinal
holds L.C = D(C,L|C)
proof take x = last L, L;
thus x = last L & dom L = succ A() by A1;
succ A() <> {} & {} c= succ A() by XBOOLE_1:2;
then {} c< succ A() by XBOOLE_0:def 8;
hence thesis by A1,ORDINAL1:21;
end;
let x1,x2 be set;
given L1 such that
A2: x1 = last L1 and
A3: dom L1 = succ A() and
A4: L1.{} = B() and
A5: for C st succ C in succ A() holds L1.succ C = CC(C,L1.C) and
A6: for C st C in succ A() & C <> {} & C is_limit_ordinal
holds L1.C = DD(C,L1|C);
given L2 such that
A7: x2 = last L2 and
A8: dom L2 = succ A() and
A9: L2.{} = B() and
A10: for C st succ C in succ A() holds L2.succ C = CC(C,L2.C) and
A11: for C st C in succ A() & C <> {} & C is_limit_ordinal
holds L2.C = DD(C,L2|C);
A12: {} in succ A() implies L1.{} = B() by A4;
A13: {} in succ A() implies L2.{} = B() by A9;
L1 = L2 from TS_Uniq1(A3,A12,A5,A6,A8,A13,A10,A11);
hence thesis by A2,A7;
end;

scheme TS_Result0
{ F(Ordinal)->set, B()->set, C(Ordinal,set)->set,
D(Ordinal,T-Sequence)->set } :
F({}) = B()
provided
A1:  for A,x holds x = F(A) iff
ex L st x = last L & dom L = succ A & L.{} = B() &
(for C st succ C in succ A holds L.succ C = C(C,L.C)) &
for C st C in succ A & C <> {} & C is_limit_ordinal
holds L.C = D(C,L|C)
proof
deffunc DD(Ordinal,T-Sequence) = D(\$1,\$2);
deffunc CC(Ordinal,set) = C(\$1,\$2);
consider L such that
A2:  dom L = succ {} &
({} in succ {} implies L.{} = B() ) &
(for A st succ A in succ {} holds L.(succ A) = CC(A,L.A) ) &
for A st A in succ {} & A <> {} & A is_limit_ordinal
holds L.A = DD(A,L|A) from TS_Exist1;
B() = last L & L.{} = B() by A2,Th7,ORDINAL1:10;
hence thesis by A1,A2;
end;

scheme TS_ResultS
{ B()->set, C(Ordinal,set)->set,
D(Ordinal,T-Sequence)->set, F(Ordinal)->set } :
for A holds F(succ A) = C(A,F(A))
provided
A1:  for A,x holds x = F(A) iff
ex L st x = last L & dom L = succ A & L.{} = B() &
(for C st succ C in succ A holds L.succ C = C(C,L.C)) &
for C st C in succ A & C <> {} & C is_limit_ordinal
holds L.C = D(C,L|C)
proof
deffunc DD(Ordinal,T-Sequence) = D(\$1,\$2);
deffunc CC(Ordinal,set) = C(\$1,\$2);
deffunc FF(Ordinal) = F(\$1);
let A;
A2:  for A,x holds x = FF(A) iff
ex L st x = last L & dom L = succ A & L.{} = B() &
(for C st succ C in succ A holds L.succ C = CC(C,L.C)) &
for C st C in succ A & C <> {} & C is_limit_ordinal
holds L.C = DD(C,L|C) by A1;
consider L such that
A3: dom L = succ succ A and
A4: {} in succ succ A implies L.{} = B() and
A5: for C st succ C in succ succ A holds L.(succ C) = CC(C,L.C) and
A6: for C st C in succ succ A & C <> {} & C is_limit_ordinal
holds L.C = DD(C,L|C) from TS_Exist1;
A7:  for B st B in dom L holds L.B = FF(B) from TS_Result(A2,A3,A4,A5,A6);
A8:  A in succ A & succ A in succ succ A by ORDINAL1:10;
then A in succ succ A by ORDINAL1:19;
then L.A = F(A) & L.succ A = F(succ A) by A3,A7,A8;
hence thesis by A5,A8;
end;

scheme TS_ResultL
{ L()->T-Sequence, A()->Ordinal, F(Ordinal)->set, B()->set,
C(Ordinal,set)->set, D(Ordinal,T-Sequence)->set } :
F(A()) = D(A(),L())
provided
A1:  for A,x holds x = F(A) iff
ex L st x = last L & dom L = succ A & L.{} = B() &
(for C st succ C in succ A holds L.succ C = C(C,L.C)) &
for C st C in succ A & C <> {} & C is_limit_ordinal
holds L.C = D(C,L|C) and
A2:  A() <> {} & A() is_limit_ordinal and
A3:  dom L() = A() and
A4:  for A st A in A() holds L().A = F(A)
proof
deffunc DD(Ordinal,T-Sequence) = D(\$1,\$2);
deffunc CC(Ordinal,set) = C(\$1,\$2);
deffunc FF(Ordinal) = F(\$1);
A5:  for A,x holds x = FF(A) iff
ex L st x = last L & dom L = succ A & L.{} = B() &
(for C st succ C in succ A holds L.succ C = CC(C,L.C)) &
for C st C in succ A & C <> {} & C is_limit_ordinal
holds L.C = DD(C,L|C) by A1;
consider L such that
A6: dom L = succ A() and
A7: {} in succ A() implies L.{} = B() and
A8: for C st succ C in succ A() holds L.(succ C) = CC(C,L.C) and
A9: for C st C in succ A() & C <> {} & C is_limit_ordinal
holds L.C = DD(C,L|C) from TS_Exist1;
A10:  for B st B in dom L holds L.B = FF(B) from TS_Result(A5,A6,A7,A8,A9);
set L1 = L|A();
A11:  A() in succ A() by ORDINAL1:10;
then A() c= dom L by A6,ORDINAL1:def 2;
then A12:  dom L1 = A() by RELAT_1:91;
now let x; assume
A13:    x in A();
then reconsider x' = x as Ordinal by ORDINAL1:23;
A14:    x' in succ A() by A11,A13,ORDINAL1:19;
thus L1.x = L.x' by A13,FUNCT_1:72 .= F(x') by A6,A10,A14 .= L().x by A4,
A13;
end;
then L1 = L() by A3,A12,FUNCT_1:9;
then L.A() = D(A(),L()) by A2,A9,A11;
hence thesis by A6,A10,A11;
end;

scheme OS_Exist { A()->Ordinal, B()->Ordinal, C(Ordinal,Ordinal)->Ordinal,
D(Ordinal,T-Sequence)->Ordinal } :
ex fi st dom fi = A() &
({} in A() implies fi.{} = B() ) &
(for A st succ A in A() holds fi.(succ A) = C(A,fi.A) ) &
(for A st A in A() & A <> {} & A is_limit_ordinal
holds fi.A = D(A,fi|A) )
proof
deffunc DD(Ordinal,T-Sequence) = D(\$1,\$2);
deffunc CC(Ordinal,set) = C(\$1,sup union {\$2});
consider L such that
A1: dom L = A() and
A2: {} in A() implies L.{} = B() and
A3: for A st succ A in A() holds
L.(succ A) = CC(A,L.A) and
A4: for A st A in A() & A <> {} & A is_limit_ordinal
holds L.A = DD(A,L|A) from TS_Exist1;
L is Ordinal-yielding
proof take A = sup rng L;
let x; assume
A5:     x in rng L;
then consider y such that
A6:     y in dom L & x = L.y by FUNCT_1:def 5;
reconsider y as Ordinal by A6,ORDINAL1:23;
A7:     now given B such that
A8:      y = succ B;
L.y = C(B,sup union {L.B}) by A1,A3,A6,A8;
hence x is Ordinal by A6;
end;
now assume
A9:      y <> {} & for B holds y <> succ B;
then y is_limit_ordinal by ORDINAL1:42;
then L.y = D(y,L|y) by A1,A4,A6,A9;
hence x is Ordinal by A6;
end;
then x in On rng L & On rng L c= sup rng L by A1,A2,A5,A6,A7,Def2,Def7;
hence x in A;
end;
then reconsider L as Ordinal-Sequence;
take fi = L;
thus dom fi = A() &
({} in A() implies fi.{} = B() ) by A1,A2;
thus for A st succ A in A() holds fi.(succ A) = C(A,fi.A)
proof let A;
reconsider B = fi.A as Ordinal;
sup union {B} = sup B by ZFMISC_1:31 .= B by Th26;
hence thesis by A3;
end;
thus thesis by A4;
end;

scheme OS_Result
{ fi()->Ordinal-Sequence, F(Ordinal)->Ordinal, A()->Ordinal, B()->Ordinal,
C(Ordinal,Ordinal)->Ordinal, D(Ordinal,T-Sequence)->Ordinal } :
for A st A in dom fi() holds fi().A = F(A)
provided
A1:  for A,B holds B = F(A) iff
ex fi st B = last fi & dom fi = succ A & fi.{} = B() &
(for C st succ C in succ A holds fi.succ C = C(C,fi.C)) &
for C st C in succ A & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) and
A2:  dom fi() = A() and
A3:  {} in A() implies fi().{} = B() and
A4:  for A st succ A in A() holds fi().(succ A) = C(A,fi().A) and
A5:  for A st A in A() & A <> {} & A is_limit_ordinal
holds fi().A = D(A,fi()|A)
proof let A;
set fi = fi()|succ A;
assume
A in dom fi();
then A6:  succ A c= dom fi() & A in succ A by ORDINAL1:33;
then A7:  dom fi = succ A by RELAT_1:91;
then A8: last fi = fi.A by Th7;
then reconsider B = last fi as Ordinal;
A9:  last fi = fi().A by A6,A8,FUNCT_1:72;
succ A <> {} & {} c= succ A by XBOOLE_1:2;
then {} c< succ A by XBOOLE_0:def 8;
then {} in succ A by ORDINAL1:21;
then A10:  fi().{} = B() & fi.{} = fi().{} by A2,A3,A6,FUNCT_1:72;
A11:  for C st succ C in succ A holds fi.succ C = C(C,fi.C)
proof let C such that
A12:    succ C in succ A;
C in succ C by ORDINAL1:10;
then C in succ A by A12,ORDINAL1:19;
then fi.C = fi().C & fi.succ C = fi().succ C by A12,FUNCT_1:72;
hence fi.succ C = C(C,fi.C) by A2,A4,A6,A12;
end;
for C st C in succ A & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C)
proof let C; assume
A13:    C in succ A & C <> {} & C is_limit_ordinal;
then C in A() & C c= succ A by A2,A6,ORDINAL1:def 2;
then fi.C = fi().C & fi|C = fi()|C by A13,FUNCT_1:72,82;
hence fi.C = D(C,fi|C) by A2,A5,A6,A13;
end;
then ex fi st B = last fi & dom fi = succ A & fi.{} = B() &
(for C st succ C in succ A holds fi.succ C = C(C,fi.C)) &
for C st C in succ A & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) by A7,A10,A11;
hence thesis by A1,A9;
end;

scheme OS_Def { A()->Ordinal, B()->Ordinal, C(Ordinal,Ordinal)->Ordinal,
D(Ordinal,T-Sequence)->Ordinal } :
(ex A,fi st A = last fi & dom fi = succ A() & fi.{} = B() &
(for C st succ C in succ A() holds fi.succ C = C(C,fi.C)) &
for C st C in succ A() & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) ) &
for A1,A2 st
(ex fi st A1 = last fi & dom fi = succ A() & fi.{} = B() &
(for C st succ C in succ A() holds fi.succ C = C(C,fi.C)) &
for C st C in succ A() & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) ) &
(ex fi st A2 = last fi & dom fi = succ A() & fi.{} = B() &
(for C st succ C in succ A() holds fi.succ C = C(C,fi.C)) &
for C st C in succ A() & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) )
holds A1 = A2
proof
deffunc DD(Ordinal,T-Sequence) = D(\$1,\$2);
deffunc CC(Ordinal,set) = C(\$1,\$2);
consider fi such that
A1:  dom fi = succ A() &
({} in succ A() implies fi.{} = B() ) &
(for C st succ C in succ A() holds fi.(succ C) = CC(C,fi.C)) &
for C st C in succ A() & C <> {} & C is_limit_ordinal
holds fi.C = DD(C,fi|C) from OS_Exist;
last fi = fi.A() & A() in dom fi by A1,Th7,ORDINAL1:10;
then reconsider A = last fi as Ordinal;
thus ex A,fi st A = last fi & dom fi = succ A() & fi.{} = B() &
(for C st succ C in succ A() holds fi.succ C = C(C,fi.C)) &
for C st C in succ A() & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C)
proof take A, fi;
thus A = last fi & dom fi = succ A() by A1;
succ A() <> {} & {} c= succ A() by XBOOLE_1:2;
then {} c< succ A() by XBOOLE_0:def 8;
hence thesis by A1,ORDINAL1:21;
end;
let A1,A2 be Ordinal;
given L1 being Ordinal-Sequence such that
A2: A1 = last L1 and
A3: dom L1 = succ A() and
A4: L1.{} = B() and
A5: for C st succ C in succ A() holds L1.succ C = C(C,L1.C) and
A6: for C st C in succ A() & C <> {} & C is_limit_ordinal
holds L1.C = D(C,L1|C);
given L2 being Ordinal-Sequence such that
A7: A2 = last L2 and
A8: dom L2 = succ A() and
A9: L2.{} = B() and
A10: for C st succ C in succ A() holds L2.succ C = CC(C,L2.C) and
A11: for C st C in succ A() & C <> {} & C is_limit_ordinal
holds L2.C = DD(C,L2|C);
A12: {} in succ A() implies L1.{} = B() by A4;
A13: {} in succ A() implies L2.{} = B() by A9;
deffunc CD(Ordinal,Ordinal) = CC(\$1,sup union { \$2 });
A14: for C st succ C in succ A() holds L1.(succ C) = CD(C,L1.C)
proof let C such that
A15:    succ C in succ A();
reconsider x' = L1.C as Ordinal;
sup union { L1.C } = sup x' by ZFMISC_1:31 .= x' by Th26;
hence thesis by A5,A15;
end;
A16: for C st succ C in succ A() holds L2.(succ C) = CD(C,L2.C)
proof let C such that
A17:  succ C in succ A();
reconsider x' = L2.C as Ordinal;
sup union { L2.C } = sup x' by ZFMISC_1:31 .= x' by Th26;
hence thesis by A10,A17;
end;
A18: for C st C in succ A() & C <> {} & C is_limit_ordinal
holds L1.C = DD(C,L1|C) by A6;
A19: for C st C in succ A() & C <> {} & C is_limit_ordinal
holds L2.C = DD(C,L2|C) by A11;
L1 = L2 from TS_Uniq1(A3,A12,A14,A18,A8,A13,A16,A19);
hence thesis by A2,A7;
end;

scheme OS_Result0
{ F(Ordinal)->Ordinal, B()->Ordinal, C(Ordinal,Ordinal)->Ordinal,
D(Ordinal,T-Sequence)->Ordinal } :
F({}) = B()
provided
A1:  for A,B holds B = F(A) iff
ex fi st B = last fi & dom fi = succ A & fi.{} = B() &
(for C st succ C in succ A holds fi.succ C = C(C,fi.C)) &
for C st C in succ A & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C)
proof
deffunc CC(Ordinal,Ordinal) = C(\$1,\$2);
deffunc DD(Ordinal,Ordinal) = D(\$1,\$2);
consider fi such that
A2:  dom fi = succ {} &
({} in succ {} implies fi.{} = B() ) &
(for A st succ A in succ {} holds fi.(succ A) = CC(A,fi.A) ) &
for A st A in succ {} & A <> {} & A is_limit_ordinal
holds fi.A = DD(A,fi|A) from OS_Exist;
B() = last fi & fi.{} = B() by A2,Th7,ORDINAL1:10;
hence thesis by A1,A2;
end;

scheme OS_ResultS
{ B()->Ordinal, C(Ordinal,Ordinal)->Ordinal,
D(Ordinal,T-Sequence)->Ordinal, F(Ordinal)->Ordinal } :
for A holds F(succ A) = C(A,F(A))
provided
A1:  for A,B holds B = F(A) iff
ex fi st B = last fi & dom fi = succ A & fi.{} = B() &
(for C st succ C in succ A holds fi.succ C = C(C,fi.C)) &
for C st C in succ A & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C)
proof let A;
deffunc CC(Ordinal,Ordinal) = C(\$1,\$2);
deffunc DD(Ordinal,Ordinal) = D(\$1,\$2);
deffunc FF(Ordinal) = F(\$1);
A2:  for A,B holds B = FF(A) iff
ex fi st B = last fi & dom fi = succ A & fi.{} = B() &
(for C st succ C in succ A holds fi.succ C = CC(C,fi.C)) &
for C st C in succ A & C <> {} & C is_limit_ordinal
holds fi.C = DD(C,fi|C) by A1;
consider fi such that
A3: dom fi = succ succ A and
A4: {} in succ succ A implies fi.{} = B() and
A5: for C st succ C in succ succ A holds fi.(succ C) = CC(C,fi.C) and
A6: for C st C in succ succ A & C <> {} & C is_limit_ordinal
holds fi.C = DD(C,fi|C) from OS_Exist;
A7:  for B st B in dom fi holds fi.B = FF(B)
from OS_Result(A2,A3,A4,A5,A6);
A8:  A in succ A & succ A in succ succ A by ORDINAL1:10;
then A in succ succ A by ORDINAL1:19;
then fi.A = F(A) & fi.succ A = F(succ A) by A3,A7,A8;
hence thesis by A5,A8;
end;

scheme OS_ResultL
{ fi()->Ordinal-Sequence, A()->Ordinal, F(Ordinal)->Ordinal, B()->Ordinal,
C(Ordinal,Ordinal)->Ordinal, D(Ordinal,T-Sequence)->Ordinal } :
F(A()) = D(A(),fi())
provided
A1:  for A,B holds B = F(A) iff
ex fi st B = last fi & dom fi = succ A & fi.{} = B() &
(for C st succ C in succ A holds fi.succ C = C(C,fi.C)) &
for C st C in succ A & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) and
A2:  A() <> {} & A() is_limit_ordinal and
A3:  dom fi() = A() and
A4:  for A st A in A() holds fi().A = F(A)
proof
deffunc CC(Ordinal,Ordinal) = C(\$1,\$2);
deffunc DD(Ordinal,Ordinal) = D(\$1,\$2);
deffunc FF(Ordinal) = F(\$1);
A5:  for A,B holds B = FF(A) iff
ex fi st B = last fi & dom fi = succ A & fi.{} = B() &
(for C st succ C in succ A holds fi.succ C = CC(C,fi.C)) &
for C st C in succ A & C <> {} & C is_limit_ordinal
holds fi.C = DD(C,fi|C) by A1;
consider fi such that
A6: dom fi = succ A() and
A7: {} in succ A() implies fi.{} = B() and
A8: for C st succ C in succ A() holds fi.(succ C) = CC(C,fi.C) and
A9: for C st C in succ A() & C <> {} & C is_limit_ordinal
holds fi.C = DD(C,fi|C) from OS_Exist;
A10:  for B st B in dom fi holds fi.B = FF(B) from OS_Result(A5,A6,A7,A8,A9);
set psi = fi|A();
A11:  A() in succ A() by ORDINAL1:10;
then A() c= dom fi by A6,ORDINAL1:def 2;
then A12:  dom psi = A() by RELAT_1:91;
now let x; assume
A13:    x in A();
then reconsider x' = x as Ordinal by ORDINAL1:23;
A14:    x' in succ A() by A11,A13,ORDINAL1:19;
thus psi.x = fi.x' by A13,FUNCT_1:72 .= F(x') by A6,A10,A14
.= fi().x by A4,A13;
end;
then psi = fi() by A3,A12,FUNCT_1:9;
then fi.A() = D(A(),fi()) by A2,A9,A11;
hence thesis by A6,A10,A11;
end;

definition let L;
func sup L -> Ordinal equals :Def9: sup rng L;
correctness;
func inf L -> Ordinal equals :Def10: inf rng L;
correctness;
end;

theorem
sup L = sup rng L & inf L = inf rng L by Def9,Def10;

definition let L;
func lim_sup L -> Ordinal means
ex fi st it = inf fi & dom fi = dom L &
for A st A in dom L holds fi.A = sup rng (L|(dom L \ A));
existence
proof
deffunc F(Ordinal) = sup rng (L|(dom L \ \$1));
consider fi such that
A1:   dom fi = dom L & for A st A in dom L holds fi.A = F(A)
from OS_Lambda;
take inf fi, fi;
thus thesis by A1;
end;
uniqueness
proof let A1,A2 be Ordinal;
given fi such that
A2:  A1 = inf fi and
A3:  dom fi = dom L &
for A st A in dom L holds fi.A = sup rng (L|(dom L \ A));
given psi such that
A4:  A2 = inf psi and
A5:  dom psi = dom L &
for A st A in dom L holds psi.A = sup rng (L|(dom L \ A));
now let x; assume
A6:     x in dom L;
then reconsider A = x as Ordinal by ORDINAL1:23;
fi.A = sup rng (L|(dom L \ A)) & psi.A = sup rng (L|(dom L \ A))
by A3,A5,A6;
hence fi.x = psi.x;
end;
hence thesis by A2,A3,A4,A5,FUNCT_1:9;
end;

func lim_inf L -> Ordinal means
ex fi st it = sup fi & dom fi = dom L &
for A st A in dom L holds fi.A = inf rng (L|(dom L \ A));
existence
proof
deffunc F(Ordinal) = inf rng (L|(dom L \ \$1));
consider fi such that
A7:   dom fi = dom L & for A st A in dom L holds fi.A = F(A)
from OS_Lambda;
take sup fi, fi;
thus thesis by A7;
end;
uniqueness
proof let A1,A2 be Ordinal;
given fi such that
A8:  A1 = sup fi and
A9:  dom fi = dom L &
for A st A in dom L holds fi.A = inf rng (L|(dom L \ A));
given psi such that
A10:  A2 = sup psi and
A11:  dom psi = dom L &
for A st A in dom L holds psi.A = inf rng (L|(dom L \ A));
now let x; assume
A12:     x in dom L;
then reconsider A = x as Ordinal by ORDINAL1:23;
fi.A = inf rng (L|(dom L \ A)) & psi.A = inf rng (L|(dom L \ A))
by A9,A11,A12;
hence fi.x = psi.x;
end;
hence thesis by A8,A9,A10,A11,FUNCT_1:9;
end;
end;

definition let A,fi;
pred A is_limes_of fi means :Def13:
ex B st B in dom fi & for C st B c= C & C in dom fi holds fi.C = {}
if A = {} otherwise
for B,C st B in A & A in C ex D st D in dom fi &
for E being Ordinal st D c= E & E in dom fi holds B in fi.E & fi.E in C;
consistency;
end;

definition let fi;
given A such that
A1:   A is_limes_of fi;
func lim fi -> Ordinal means
:Def14:  it is_limes_of fi;
existence by A1;
uniqueness
proof let A1,A2 be Ordinal such that
A2:  (A1 = {} &
ex B st B in dom fi & for C st B c= C & C in dom fi holds fi.C = {}) or
(A1 <> {} & for B,C st B in A1 & A1 in C ex D st D in dom fi &
for E being Ordinal st D c= E & E in dom fi holds B in fi.E & fi.E in
C) and
A3:  (A2 = {} &
ex B st B in dom fi & for C st B c= C & C in dom fi holds fi.C = {}) or
(A2 <> {} & for B,C st B in A2 & A2 in C ex D st D in dom fi &
for E being Ordinal st D c= E & E in dom fi holds B in fi.E & fi.E in C);
assume A4: A1 <> A2;
then A5:  A1 in A2 or A2 in A1 by ORDINAL1:24;
A6:     now assume
A7:     A1 in A2;
then A2 in succ A2 & A2 <> {} by ORDINAL1:10;
then consider D such that
A8:     D in dom fi and
A9:     for A st D c= A & A in dom fi holds A1 in fi.A & fi.A in
succ A2 by A3,A7;
A10:     now assume
A11:      A1 = {};
then consider B such that
A12:       B in dom fi & for C st B c= C & C in dom fi holds fi.C = {} by A2;
B c= D or D c= B;
then consider E being Ordinal such that
A13:       E = D & B c= D or E = B & D c= B;
fi.E = {} & {} in fi.E by A8,A9,A11,A12,A13;
end;
consider x being Element of A1;
reconsider x as Ordinal by A10,ORDINAL1:23;
A1 in succ A1 by ORDINAL1:10;
then consider C such that
A14:     C in dom fi and
A15:     for A st C c= A & A in dom fi holds x in fi.A & fi.A in succ A1 by A2,
A10;
C c= D or D c= C;
then consider E being Ordinal such that
A16:     E = D & C c= D or E = C & D c= C;
A17:     fi.E in succ A1 & A1 in fi.E by A8,A9,A14,A15,A16;
then fi.E in A1 or fi.E = A1 by ORDINAL1:13;
end;
then A1 in succ A1 & A1 <> {} by A4,ORDINAL1:10,24;
then consider D such that
A18:   D in dom fi and
A19:   for A st D c= A & A in dom fi holds A2 in fi.A & fi.A in
succ A1 by A2,A5,A6;
A20:  now assume
A21:    A2 = {};
then consider B such that
A22:     B in dom fi & for C st B c= C & C in dom fi holds fi.C = {} by A3;
B c= D or D c= B;
then consider E being Ordinal such that
A23:     E = D & B c= D or E = B & D c= B;
fi.E = {} & {} in fi.E by A18,A19,A21,A22,A23;
end;
consider x being Element of A2;
reconsider x as Ordinal by A20,ORDINAL1:23;
A2 in succ A2 by ORDINAL1:10;
then consider C such that
A24:   C in dom fi and
A25:   for A st C c= A & A in dom fi holds x in fi.A & fi.A in
succ A2 by A3,A20;
C c= D or D c= C;
then consider E being Ordinal such that
A26:   E = D & C c= D or E = C & D c= C;
A27:   fi.E in succ A2 & A2 in fi.E by A18,A19,A24,A25,A26;
then fi.E in A2 or fi.E = A2 by ORDINAL1:13;
end;
end;

definition let A,fi;
func lim(A,fi) -> Ordinal equals
lim(fi|A);
correctness;
end;

definition let L be Ordinal-Sequence;
attr L is increasing means
for A,B st A in B & B in dom L holds L.A in L.B;
attr L is continuous means
for A,B st A in dom L & A <> {} & A is_limit_ordinal & B = L.A
holds B is_limes_of L|A;
end;

definition let A,B;
func A +^ B -> Ordinal means
:Def18:  ex fi st it = last fi & dom fi = succ B &
fi.{} = A &
(for C st succ C in succ B holds fi.succ C = succ(fi.C)) &
for C st C in succ B & C <> {} & C is_limit_ordinal
holds fi.C = sup(fi|C);
correctness
proof
deffunc C(Ordinal,Ordinal) = succ \$2;
deffunc D(Ordinal,T-Sequence) = sup \$2;
(ex F being Ordinal,fi st
F = last fi & dom fi = succ B & fi.{} = A &
(for C st succ C in succ B holds fi.succ C = C(C,fi.C)) &
for C st C in succ B & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) ) &
for A1,A2 st
(ex fi st A1 = last fi & dom fi = succ B & fi.{} = A &
(for C st succ C in succ B holds fi.succ C = C(C,fi.C)) &
for C st C in succ B & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) ) &
(ex fi st A2 = last fi & dom fi = succ B & fi.{} = A &
(for C st succ C in succ B holds fi.succ C = C(C,fi.C)) &
for C st C in succ B & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) )
holds A1 = A2 from OS_Def;
hence thesis;
end;
end;

definition let A,B;
func A *^ B -> Ordinal means
:Def19:  ex fi st it = last fi & dom fi = succ A &
fi.{} = {} &
(for C st succ C in succ A holds fi.succ C = (fi.C)+^B) &
for C st C in succ A & C <> {} & C is_limit_ordinal
holds fi.C = union sup(fi|C);
correctness
proof
deffunc C(Ordinal,Ordinal) = \$2+^B;
deffunc D(Ordinal,Ordinal-Sequence) = union sup \$2;
(ex F being Ordinal,fi st
F = last fi & dom fi = succ A & fi.{} = {} &
(for C st succ C in succ A holds fi.succ C = C(C,fi.C)) &
for C st C in succ A & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) ) &
for A1,A2 st
(ex fi st A1 = last fi & dom fi = succ A & fi.{} = {} &
(for C st succ C in succ A holds fi.succ C = C(C,fi.C)) &
for C st C in succ A & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) ) &
(ex fi st A2 = last fi & dom fi = succ A & fi.{} = {} &
(for C st succ C in succ A holds fi.succ C = C(C,fi.C)) &
for C st C in succ A & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) )
holds A1 = A2 from OS_Def;
hence thesis;
end;
end;

definition let A,B;
func exp(A,B) -> Ordinal means
:Def20:  ex fi st it = last fi & dom fi = succ B &
fi.{} = one &
(for C st succ C in succ B holds fi.succ C = A*^(fi.C)) &
for C st C in succ B & C <> {} & C is_limit_ordinal
holds fi.C = lim(fi|C);
correctness
proof
deffunc C(Ordinal,Ordinal) = A*^\$2;
deffunc D(Ordinal,Ordinal-Sequence) = lim \$2;
(ex F being Ordinal,fi st
F = last fi & dom fi = succ B & fi.{} = one &
(for C st succ C in succ B holds fi.succ C = C(C,fi.C)) &
for C st C in succ B & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) ) &
for A1,A2 st
(ex fi st A1 = last fi & dom fi = succ B & fi.{} = one &
(for C st succ C in succ B holds fi.succ C = C(C,fi.C)) &
for C st C in succ B & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) ) &
(ex fi st A2 = last fi & dom fi = succ B & fi.{} = one &
(for C st succ C in succ B holds fi.succ C = C(C,fi.C)) &
for C st C in succ B & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) )
holds A1 = A2 from OS_Def;
hence thesis;
end;
end;

canceled 8;

theorem
Th44: A+^{} = A
proof
deffunc F(Ordinal) = A+^\$1;
deffunc D(Ordinal,T-Sequence) = sup \$2;
deffunc C(Ordinal,Ordinal) = succ \$2;
A1:  for B,C holds C = F(B) iff ex fi st C = last fi & dom fi = succ B &
fi.{} = A &
(for C st succ C in succ B holds fi.succ C = C(C,fi.C)) &
for C st C in succ B & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) by Def18;
thus F({}) = A from OS_Result0(A1);
end;

theorem
Th45: A+^succ B = succ(A+^B)
proof
deffunc F(Ordinal) = A+^\$1;
deffunc D(Ordinal,T-Sequence) = sup \$2;
deffunc C(Ordinal,Ordinal) = succ \$2;
A1:  for B,C holds C = F(B) iff ex fi st C = last fi & dom fi = succ B &
fi.{} = A &
(for C st succ C in succ B holds fi.succ C = C(C,fi.C)) &
for C st C in succ B & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) by Def18;
for B holds F(succ B) = C(B,F(B)) from OS_ResultS(A1);
hence thesis;
end;

theorem
Th46: B <> {} & B is_limit_ordinal implies
for fi st dom fi = B & for C st C in B holds fi.C = A+^C holds A+^B = sup fi
proof assume
A1:  B <> {} & B is_limit_ordinal;
deffunc F(Ordinal) = A+^\$1;
deffunc D(Ordinal,Ordinal-Sequence) = sup \$2;
deffunc C(Ordinal,Ordinal) = succ \$2;
let fi such that
A2:  dom fi = B and
A3:  for C st C in B holds fi.C = F(C);
A4:  for B,C holds C = F(B) iff ex fi st C = last fi & dom fi = succ B &
fi.{} = A &
(for C st succ C in succ B holds fi.succ C = C(C,fi.C)) &
for C st C in succ B & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) by Def18;
thus F(B) = D(B,fi) from OS_ResultL(A4,A1,A2,A3);
end;

theorem
Th47: {}+^A = A
proof
defpred P[Ordinal] means {}+^\$1 = \$1;
A1:  P[{}] by Th44;
A2:  for A holds P[A] implies P[succ A] by Th45;
A3:  for A st A <> {} & A is_limit_ordinal & for B st B in A holds P[B]
holds P[A]
proof let A; assume that
A4:   A <> {} & A is_limit_ordinal and
A5:   for B st B in A holds {}+^B = B;
deffunc F(Ordinal) = {}+^\$1;
consider fi such that
A6:    dom fi = A & for B st B in A holds fi.B = F(B) from OS_Lambda;
A7:    {}+^A = sup fi by A4,A6,Th46 .= sup rng fi by Def9;
rng fi = A
proof
thus x in rng fi implies x in A
proof assume x in rng fi;
then consider y such that
A8:         y in dom fi & x = fi.y by FUNCT_1:def 5;
reconsider y as Ordinal by A8,ORDINAL1:23;
x = {}+^y by A6,A8 .= y by A5,A6,A8;
hence thesis by A6,A8;
end;
let x; assume
A9:      x in A;
then reconsider B = x as Ordinal by ORDINAL1:23;
{}+^B = B & fi.B = {}+^B by A5,A6,A9;
hence x in rng fi by A6,A9,FUNCT_1:def 5;
end;
hence {}+^A = A by A7,Th26;
end;
for A holds P[A] from Ordinal_Ind(A1,A2,A3);
hence thesis;
end;

theorem
A+^one = succ A
proof
thus A+^one = succ(A+^{}) by Def4,Th45 .= succ A by Th44;
end;

theorem
Th49: A in B implies C +^ A in C +^ B
proof
defpred P[Ordinal] means A in \$1 implies C +^ A in C +^ \$1;
A1:  for B st for D st D in B holds P[D] holds P[B]
proof let B such that
A2:     for D st D in B holds A in D implies C +^ A in C +^ D and
A3:     A in B;
A4:     now given D such that
A5:      B = succ D;
A6:      D in B by A5,ORDINAL1:10;
A7:      now A8: A c< D iff A c= D & A <> D by XBOOLE_0:def 8;
assume not A in D;
then C +^ A in succ(C +^ D) & succ(C +^ D) = C +^ succ D
by A3,A5,A8,Th45,ORDINAL1:21,34;
hence thesis by A5;
end;
now assume A in D;
then C +^ A in C +^ D & succ(C +^ D) = C +^ succ D & C +^ D in
succ(C +^ D)
by A2,A6,Th45,ORDINAL1:10;
hence thesis by A5,ORDINAL1:19;
end;
hence thesis by A7;
end;
now assume for D holds B <> succ D;
then A9:      B is_limit_ordinal by ORDINAL1:42;
deffunc F(Ordinal) = C+^\$1;
consider fi such that
A10:      dom fi = B & for D st D in B holds fi.D = F(D) from OS_Lambda;
A11:      C+^B = sup fi by A3,A9,A10,Th46 .= sup rng fi by Def9;
fi.A = C+^A by A3,A10;
then C+^A in rng fi by A3,A10,FUNCT_1:def 5;
hence thesis by A11,Th27;
end;
hence thesis by A4;
end;
for B holds P[B] from Transfinite_Ind(A1);
hence thesis;
end;

theorem
Th50: A c= B implies C +^ A c= C +^ B
proof assume
A1:  A c= B;
now assume A <> B;
then A c< B by A1,XBOOLE_0:def 8;
then A in B by ORDINAL1:21;
then C +^ A in C +^ B by Th49;
hence thesis by ORDINAL1:def 2;
end;
hence thesis;
end;

theorem
Th51: A c= B implies A +^ C c= B +^ C
proof assume
A1:  A c= B;
defpred P[Ordinal] means A +^ \$1 c= B +^ \$1;
A2:for C st for D st D in C holds P[D] holds P[C]
proof let C such that
A3:     for D st D in C holds A +^ D c= B +^ D;
A4:     now assume C = {};
then A +^ C = A & B +^ C = B by Th44;
hence thesis by A1;
end;
A5:     now given D such that
A6:      C = succ D;
D in C by A6,ORDINAL1:10;
then A7:      A +^ D c= B +^ D by A3;
A +^ C = succ(A +^ D) & B +^ C = succ(B +^ D) by A6,Th45;
hence thesis by A7,Th1;
end;
now assume
A8:      C <> {} & for D holds C <> succ D;
then A9:      C is_limit_ordinal by ORDINAL1:42;
deffunc F(Ordinal) = A+^\$1;
consider fi such that
A10:      dom fi = C & for D st D in C holds fi.D = F(D) from OS_Lambda;
A11:      A+^C = sup fi by A8,A9,A10,Th46 .= sup rng fi by Def9;
now let D; assume
D in rng fi;
then consider x such that
A12:        x in dom fi & D = fi.x by FUNCT_1:def 5;
reconsider x as Ordinal by A12,ORDINAL1:23;
A13:        D = A+^x by A10,A12;
A +^ x c= B +^ x & B +^ x in B +^ C by A3,A10,A12,Th49;
hence D in B +^ C by A13,ORDINAL1:22;
end;
hence thesis by A11,Th28;
end;
hence thesis by A4,A5;
end;
for C holds P[C] from Transfinite_Ind(A2);
hence thesis;
end;

theorem
Th52: {}*^A = {}
proof
deffunc F(Ordinal) = \$1*^A;
deffunc D(Ordinal,T-Sequence) = union sup \$2;
deffunc C(Ordinal,Ordinal) = \$2+^A;
A1:  for B,C holds C = F(B) iff ex fi st C = last fi & dom fi = succ B &
fi.{} = {} &
(for C st succ C in succ B holds fi.succ C = C(C,fi.C)) &
for C st C in succ B & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) by Def19;
thus F({}) = {} from OS_Result0(A1);
end;

theorem
Th53: (succ B)*^A = B*^A +^ A
proof
deffunc F(Ordinal) = \$1*^A;
deffunc D(Ordinal,T-Sequence) = union sup \$2;
deffunc C(Ordinal,Ordinal) = \$2 +^ A;
A1:  for B,C holds C = F(B) iff ex fi st C = last fi & dom fi = succ B &
fi.{} = {} &
(for C st succ C in succ B holds fi.succ C = C(C,fi.C)) &
for C st C in succ B & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) by Def19;
for B holds F(succ B) = C(B,F(B)) from OS_ResultS(A1);
hence thesis;
end;

theorem
Th54: B <> {} & B is_limit_ordinal implies
for fi st dom fi = B & for C st C in B holds fi.C = C*^A holds
B*^A = union sup fi
proof assume
A1:  B <> {} & B is_limit_ordinal;
deffunc F(Ordinal) = \$1*^A;
deffunc D(Ordinal,Ordinal-Sequence) = union sup \$2;
deffunc C(Ordinal,Ordinal) = \$2+^A;
let fi such that
A2:  dom fi = B and
A3:  for C st C in B holds fi.C = F(C);
A4:  for B,C holds C = F(B) iff ex fi st C = last fi & dom fi = succ B &
fi.{} = {} &
(for C st succ C in succ B holds fi.succ C = C(C,fi.C)) &
for C st C in succ B & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) by Def19;
thus F(B) = D(B,fi) from OS_ResultL(A4,A1,A2,A3);
end;

theorem
Th55: A*^{} = {}
proof
defpred P[Ordinal] means \$1*^{} = {};
A1:  P[{}] by Th52;
A2:  for A st P[A] holds P[succ A]
proof let A; assume A*^{} = {};
hence (succ A)*^{} = {}+^{} by Th53 .= {} by Th44;
end;
A3:  for A st A <> {} & A is_limit_ordinal &
for B st B in A holds P[B] holds P[A]
proof let A; assume that
A4:    A <> {} & A is_limit_ordinal and
A5:    for B st B in A holds B*^{} = {};
deffunc F(Ordinal) = \$1*^{};
consider fi such that
A6:     dom fi = A & for B st B in A holds fi.B = F(B) from OS_Lambda;
A7:     A*^{} = union sup fi by A4,A6,Th54 .= union sup rng fi by Def9;
rng fi = succ {}
proof
{} c= A by XBOOLE_1:2;
then {} c< A by A4,XBOOLE_0:def 8;
then A8:       {} in A by ORDINAL1:21;
thus x in rng fi implies x in succ {}
proof assume x in rng fi;
then consider y such that
A9:          y in dom fi & x = fi.y by FUNCT_1:def 5;
reconsider y as Ordinal by A9,ORDINAL1:23;
x = y*^{} by A6,A9 .= {} by A5,A6,A9;
hence x in succ {} by Lm1,TARSKI:def 1;
end;
let x; assume x in succ {};
then A10:       x = {} & {} *^ {} = {} by Lm1,Th52,TARSKI:def 1;
then fi.x = x by A6,A8;
hence x in rng fi by A6,A8,A10,FUNCT_1:def 5;
end;
then sup rng fi = succ {} by Th26;
hence A*^{} = {} by A7,Th2;
end;
for A holds P[A] from Ordinal_Ind(A1,A2,A3);
hence thesis;
end;

theorem
Th56: one*^A = A & A*^one = A
proof
thus one*^A = {}*^A +^ A by Def4,Th53
.= {} +^ A by Th52 .= A by Th47;
defpred P[Ordinal] means \$1*^succ {} = \$1;
A1:for A st for B st B in A holds P[B] holds P[A]
proof let A such that
A2:     for B st B in A holds B*^(succ {}) = B;
A3:     now given B such that
A4:      A = succ B;
A5:         B in A by A4,ORDINAL1:10;
thus A*^(succ {}) = B*^(succ {}) +^ succ {} by A4,Th53
.= B +^ succ {} by A2,A5 .= succ(B +^ {}) by Th45
.= A by A4,Th44;
end;
now assume
A6:      A <> {} & for B holds A <> succ B;
then A7:      A is_limit_ordinal by ORDINAL1:42;
deffunc F(Ordinal) = \$1*^succ {};
consider fi such that
A8:      dom fi = A & for D st D in A holds fi.D = F(D) from OS_Lambda;
A9:      A*^succ {} = union sup fi by A6,A7,A8,Th54
.= union sup rng fi by Def9;
A = rng fi
proof
thus A c= rng fi
proof let x; assume
A10:            x in A;
then reconsider B = x as Ordinal by ORDINAL1:23;
x = B*^succ {} by A2,A10 .= fi.x by A8,A10;
hence x in rng fi by A8,A10,FUNCT_1:def 5;
end;
let x; assume x in rng fi;
then consider y such that
A11:         y in dom fi & x = fi.y by FUNCT_1:def 5;
reconsider y as Ordinal by A11,ORDINAL1:23;
fi.y = y*^succ {} by A8,A11 .= y by A2,A8,A11;
hence x in A by A8,A11;
end;
hence A*^succ {} = union A by A9,Th26 .= A by A7,ORDINAL1:def 6;
end;
hence thesis by A3,Th52;
end;
for A holds P[A] from Transfinite_Ind(A1); hence thesis by Def4;
end;

theorem
Th57: C <> {} & A in B implies A*^C in B*^C
proof assume
A1: C <> {};
{} c= C by XBOOLE_1:2;
then {} c< C by A1,XBOOLE_0:def 8;
then A2:  {} in C by ORDINAL1:21;
defpred P[Ordinal] means A in \$1 implies A*^C in \$1*^C;
A3:for B st for D st D in B holds P[D] holds P[B]
proof let B such that
A4:     for D st D in B holds A in D implies A *^ C in D *^ C and
A5:     A in B;
A6:     now given D such that
A7:      B = succ D;
A8:      D in B by A7,ORDINAL1:10;
A9:      now
A10:         A c< D iff A c= D & A <> D by XBOOLE_0:def 8;
assume not A in D;
then A*^C +^ {} = A*^C & A*^C +^ {} in D*^C +^ C &
D*^C +^ C = (succ D) *^ C by A2,A5,A7,A10,Th44,Th49,Th53,ORDINAL1:21
,34;
hence thesis by A7;
end;
now assume A in D;
then A*^C in D*^C & D*^C +^ C = (succ D)*^C & D*^C +^ {} = D*^C &
D*^C +^ {} in D*^C +^ C by A2,A4,A8,Th44,Th49,Th53;
hence thesis by A7,ORDINAL1:19;
end;
hence thesis by A9;
end;
now assume for D holds B <> succ D;
then A11:      B is_limit_ordinal by ORDINAL1:42;
deffunc F(Ordinal) = \$1*^C;
consider fi such that
A12:      dom fi = B & for D st D in B holds fi.D = F(D) from OS_Lambda;
A13:      B*^C = union sup fi by A5,A11,A12,Th54 .= union sup rng fi by Def9;
A14:      succ A in B by A5,A11,ORDINAL1:41;
then fi.(succ A) = (succ A)*^C by A12;
then (succ A)*^C in rng fi by A12,A14,FUNCT_1:def 5;
then (succ A)*^C in sup rng fi by Th27;
then A15:      (succ A)*^C c= union sup rng fi by ZFMISC_1:92;
A*^C +^ {} = A*^C & A*^C +^ {} in A*^C +^ C &
(succ A)*^C = A*^C +^ C
by A2,Th44,Th49,Th53;
hence thesis by A13,A15;
end;
hence thesis by A6;
end;
for B holds P[B] from Transfinite_Ind(A3);
hence thesis;
end;

theorem
A c= B implies A*^C c= B*^C
proof assume
A1:  A c= B;
A2:  now assume C = {}; then A*^C = {} & B*^C = {} by Th55;
hence thesis;
end;
now assume
A3:    C <> {};
now assume A <> B;
then A c< B by A1,XBOOLE_0:def 8;
then A in B by ORDINAL1:21;
then A*^C in B*^C by A3,Th57;
hence thesis by ORDINAL1:def 2;
end;
hence thesis;
end;
hence thesis by A2;
end;

theorem
A c= B implies C*^A c= C*^B
proof assume
A1:  A c= B;
now assume
A2:    B <> {};
defpred P[Ordinal] means \$1*^A c= \$1*^B;
A3:  for C st for D st D in C holds P[D] holds P[C]
proof let C such that
A4:       for D st D in C holds D*^A c= D*^B;
A5:       now assume C = {};
then C*^A = {} & C*^B = {} by Th52;
hence thesis;
end;
A6:       now given D such that
A7:        C = succ D;
D in C by A7,ORDINAL1:10;
then D*^A c= D*^B by A4;
then D*^A +^ A c= D*^B +^ A & D*^B +^ A c= D*^B +^ B & C*^A = D*^A
+^ A &
C*^B = D*^B +^ B by A1,A7,Th50,Th51,Th53;
hence thesis by XBOOLE_1:1;
end;
now assume
A8:        C <> {} & for D holds C <> succ D;
then A9:        C is_limit_ordinal by ORDINAL1:42;
deffunc F(Ordinal) = \$1*^A;
consider fi such that
A10:        dom fi = C & for D st D in C holds fi.D = F(D) from OS_Lambda;
A11:        C*^A = union sup fi by A8,A9,A10,Th54 .= union sup rng fi by Def9;
now let D; assume
D in rng fi;
then consider x such that
A12:          x in dom fi & D = fi.x by FUNCT_1:def 5;
reconsider x as Ordinal by A12,ORDINAL1:23;
A13:          D = x*^A by A10,A12;
x*^A c= x*^B & x*^B in C*^B by A2,A4,A10,A12,Th57;
hence D in C*^B by A13,ORDINAL1:22;
end;
then sup rng fi c= C*^B & union sup rng fi c= sup rng fi by Th5,Th28
;
hence thesis by A11,XBOOLE_1:1;
end;
hence thesis by A5,A6;
end;
for C holds P[C] from Transfinite_Ind(A3);
hence thesis;
end;
hence thesis by A1,XBOOLE_1:3;
end;

theorem
Th60: exp(A,{}) = one
proof
deffunc F(Ordinal) = exp(A,\$1);
deffunc D(Ordinal,Ordinal-Sequence) = lim \$2;
deffunc C(Ordinal,Ordinal) = A*^\$2;
A1:  for B,C holds C = F(B) iff ex fi st C = last fi & dom fi = succ B &
fi.{} = one &
(for C st succ C in succ B holds fi.succ C = C(C,fi.C)) &
for C st C in succ B & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) by Def20;
thus F({}) = one from OS_Result0(A1);
end;

theorem
Th61: exp(A,succ B) = A*^exp(A,B)
proof
deffunc F(Ordinal) = exp(A,\$1);
deffunc D(Ordinal,Ordinal-Sequence) = lim \$2;
deffunc C(Ordinal,Ordinal) = A *^ \$2;
A1:  for B,C holds C = F(B) iff ex fi st C = last fi & dom fi = succ B &
fi.{} = one &
(for C st succ C in succ B holds fi.succ C = C(C,fi.C)) &
for C st C in succ B & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) by Def20;
for B holds F(succ B) = C(B,F(B)) from OS_ResultS(A1);
hence thesis;
end;

theorem
Th62: B <> {} & B is_limit_ordinal implies
for fi st dom fi = B & for C st C in B holds fi.C = exp(A,C) holds
exp(A,B) = lim fi
proof assume
A1:  B <> {} & B is_limit_ordinal;
deffunc F(Ordinal) = exp(A,\$1);
deffunc D(Ordinal,Ordinal-Sequence) = lim \$2;
deffunc C(Ordinal,Ordinal) = A*^\$2;
let fi such that
A2:  dom fi = B and
A3:  for C st C in B holds fi.C = F(C);
A4:  for B,C holds C = F(B) iff ex fi st C = last fi & dom fi = succ B &
fi.{} = one &
(for C st succ C in succ B holds fi.succ C = C(C,fi.C)) &
for C st C in succ B & C <> {} & C is_limit_ordinal
holds fi.C = D(C,fi|C) by Def20;
thus F(B) = D(B,fi) from OS_ResultL(A4,A1,A2,A3);
end;

theorem
exp(A,one) = A & exp(one,A) = one
proof
thus exp(A,one) = A*^exp(A,{}) by Def4,Th61
.= A*^one by Th60 .= A by Th56;
defpred P[Ordinal] means exp(one,\$1) = one;
A1:   P[{}] by Th60;
A2:   for A st P[A] holds P[succ A]
proof let A; assume exp(one,A) = one;
hence exp(one,succ A) = one*^one by Th61 .= one by Th56;
end;
A3:   for A st A <> {} & A is_limit_ordinal &
for B st B in A holds P[B] holds P[A]
proof let A such that
A4:      A <> {} & A is_limit_ordinal and
A5:      for B st B in A holds exp(one,B) = one;
deffunc F(Ordinal) = exp(one,\$1);
consider fi such that
A6:      dom fi = A & for B st B in A holds fi.B = F(B) from OS_Lambda;
A7:      exp(one,A) = lim fi by A4,A6,Th62;
A8:      rng fi c= { one }
proof let x; assume x in rng fi;
then consider y such that
A9:         y in dom fi & x = fi.y by FUNCT_1:def 5;
reconsider y as Ordinal by A9,ORDINAL1:23;
x = exp(one,y) by A6,A9 .= one by A5,A6,A9;
hence x in { one } by TARSKI:def 1;
end;
now
thus {} <> one;
let B,C such that
A10:        B in one & one in C;
consider x being Element of A;
reconsider x as Ordinal by A4,ORDINAL1:23;
take D = x; thus D in dom fi by A4,A6;
let E be Ordinal; assume
D c= E & E in dom fi;
then fi.E in rng fi by FUNCT_1:def 5; hence B in fi.E & fi.E in C
by A8,A10,TARSKI:def 1;
end;
then one is_limes_of fi by Def13;
hence exp(one,A) = one by A7,Def14;
end;
for A holds P[A] from Ordinal_Ind(A1,A2,A3);
hence thesis;
end;

definition let A be set;
attr A is natural means
:Def21:  A in omega;
end;

canceled;

theorem
for A ex B,C st B is_limit_ordinal & C is natural & A = B +^ C
proof
defpred Th[Ordinal] means
ex B,C st B is_limit_ordinal & C is natural & \$1 = B +^ C;
A1:for A st for B st B in A holds Th[B] holds Th[A]
proof let A such that
A2:     for B st B in A holds Th[B];
A3:     (for B holds A <> succ B) implies Th[A]
proof assume A4: for D holds A <> succ D;
take B = A, C = {};
thus B is_limit_ordinal by A4,ORDINAL1:42;
thus C in omega by Def5;
thus A = B +^ C by Th44;
end;
(ex B st A = succ B) implies Th[A]
proof given B such that
A5:       A = succ B;
B in A by A5,ORDINAL1:10;
then consider C,D such that
A6:       C is_limit_ordinal & D is natural & B = C +^ D by A2;
take C, E = succ D;
thus C is_limit_ordinal by A6;
D in omega & omega is_limit_ordinal by A6,Def5,Def21;
hence E in omega by ORDINAL1:41;
thus A = C +^ E by A5,A6,Th45;
end;
hence thesis by A3;
end;
thus for A holds Th[A] from Transfinite_Ind(A1);
end;
```