:: Sequences of Ordinal Numbers. Beginnings of Ordinal Arithmetics
:: by Grzegorz Bancerek
::
:: Received July 18, 1989
:: Copyright (c) 1990-2016 Association of Mizar Users
:: (Stowarzyszenie Uzytkownikow Mizara, Bialystok, Poland).
:: This code can be distributed under the GNU General Public Licence
:: version 3.0 or later, or the Creative Commons Attribution-ShareAlike
:: License version 3.0 or later, subject to the binding interpretation
:: detailed in file COPYING.interpretation.
:: See COPYING.GPL and COPYING.CC-BY-SA for the full text of these
:: licenses, or see http://www.gnu.org/licenses/gpl.html and
:: http://creativecommons.org/licenses/by-sa/3.0/.
environ
vocabularies ORDINAL1, FUNCT_1, XBOOLE_0, TARSKI, ZFMISC_1, RELAT_1, SETFAM_1,
SUBSET_1, FUNCOP_1, ORDINAL2, NAT_1, CARD_1;
notations TARSKI, XBOOLE_0, ZFMISC_1, SUBSET_1, RELAT_1, FUNCT_1, ORDINAL1,
SETFAM_1, FUNCOP_1;
constructors SETFAM_1, ORDINAL1, FUNCOP_1;
registrations SUBSET_1, FUNCT_1, ORDINAL1, FUNCOP_1;
requirements SUBSET, BOOLE, NUMERALS;
definitions ORDINAL1, TARSKI, XBOOLE_0;
equalities ORDINAL1, XBOOLE_0;
expansions ORDINAL1, TARSKI, XBOOLE_0;
theorems TARSKI, ORDINAL1, SETFAM_1, ZFMISC_1, FUNCT_1, RELAT_1, XBOOLE_1,
FUNCOP_1, XTUPLE_0;
schemes XBOOLE_0, FUNCT_1, ORDINAL1;
begin
reserve A,A1,A2,B,C,D for Ordinal,
X,Y for set,
x,y,a,b,c for object,
L,L1,L2,L3 for Sequence,
f for Function;
scheme
OrdinalInd { P[Ordinal] } : for A holds P[A]
provided
A1: P[0] and
A2: for A st P[A] holds P[succ A] and
A3: for A st A <> 0 & A is limit_ordinal & for B st B in A holds P[B]
holds P[A]
proof
A4: for A st for B st B in A holds P[B] holds P[A]
proof
let A such that
A5: for B st B in A holds P[B];
A6: A <> 0 & (for B holds A <> succ B) implies thesis by A3,A5,ORDINAL1:29;
now
given B such that
A7: A = succ B;
B in A by A7,ORDINAL1:6;
hence thesis by A2,A5,A7;
end;
hence thesis by A1,A6;
end;
thus for A holds P[A] from ORDINAL1:sch 2(A4);
end;
theorem Th1:
A c= B iff succ A c= succ B
proof
A c= B iff A in succ B by ORDINAL1:22;
hence thesis by ORDINAL1:21;
end;
theorem Th2:
union succ A = A
proof
thus union succ A c= A
proof
let x be object;
assume x in union succ A;
then consider X such that
A1: x in X and
A2: X in succ A by TARSKI:def 4;
reconsider X as Ordinal by A2;
X c= A by A2,ORDINAL1:22;
hence thesis by A1;
end;
thus thesis by ORDINAL1:6,ZFMISC_1:74;
end;
theorem
succ A c= bool A
proof
let x be object;
assume
A1: x in succ A;
then reconsider B = x as Ordinal;
x in A or x = A by A1,ORDINAL1:8;
then B c= A by ORDINAL1:def 2;
hence thesis;
end;
theorem
0 is limit_ordinal
by ZFMISC_1:2;
theorem Th5:
union A c= A
proof
let x be object;
assume x in union A;
then consider Y such that
A1: x in Y and
A2: Y in A by TARSKI:def 4;
Y c= A by A2,ORDINAL1:def 2;
hence thesis by A1;
end;
definition
let L;
func last L -> set equals
L.(union dom L);
coherence;
end;
theorem
dom L = succ A implies last L = L.A by Th2;
theorem
On X c= X
by ORDINAL1:def 9;
theorem Th8:
On A = A
proof
for x being object holds x in A iff x in A & x is Ordinal;
hence thesis by ORDINAL1:def 9;
end;
theorem Th9:
X c= Y implies On X c= On Y
proof
assume
A1: X c= Y;
let x be object;
assume x in On X;
then x in X & x is Ordinal by ORDINAL1:def 9;
hence thesis by A1,ORDINAL1:def 9;
end;
theorem
Lim X c= X
by ORDINAL1:def 10;
theorem
X c= Y implies Lim X c= Lim Y
proof
assume
A1: X c= Y;
let x be object;
assume x in Lim X;
then x in X & ex A st x = A & A is limit_ordinal by ORDINAL1:def 10;
hence thesis by A1,ORDINAL1:def 10;
end;
theorem
Lim X c= On X
proof
let x be object;
assume x in Lim X;
then x in X & ex A st x = A & A is limit_ordinal by ORDINAL1:def 10;
hence thesis by ORDINAL1:def 9;
end;
theorem Th13:
(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
defpred P[Ordinal] means $1 in X;
set x = the Element of X;
assume
A2: X <> 0;
then x is Ordinal by A1;
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 ORDINAL1:sch 1(A3);
for x being object holds x in A iff for Y st Y in X holds x in Y
proof
let x be object;
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 thesis by A5;
end;
assume for Y st Y in X holds x in Y;
hence thesis by A4;
end;
hence thesis by A2,SETFAM_1:def 1;
end;
hence thesis by SETFAM_1:def 1;
end;
registration
cluster limit_ordinal for Ordinal;
existence
proof
take omega;
thus thesis by ORDINAL1:def 11;
end;
end;
definition
let X;
func inf X -> Ordinal equals
meet On X;
coherence
proof
x in On X implies x is Ordinal by ORDINAL1:def 9;
hence thesis by Th13;
end;
func sup X -> Ordinal means
:Def3:
On X c= it & for A st On X c= A holds it c= A;
existence
proof
defpred P[Ordinal] means On X c= $1;
x in On X implies x is Ordinal by ORDINAL1:def 9;
then reconsider A = union On X as epsilon-transitive epsilon-connected set
by ORDINAL1:23;
On X c= succ A
proof
let x be object;
assume
A1: x in On X;
then reconsider B = x as Ordinal by ORDINAL1:def 9;
B c= A by A1,ZFMISC_1:74;
hence thesis by ORDINAL1:22;
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 ORDINAL1
:sch 1(A2);
end;
uniqueness;
end;
theorem
A in X implies inf X c= A
proof
assume A in X;
then A in On X by ORDINAL1:def 9;
hence thesis by SETFAM_1:3;
end;
theorem
On X <> 0 & (for A st A in X holds D c= A) implies D c= inf X
proof
assume that
A1: On X <> 0 and
A2: for A st A in X holds D c= A;
let x be object such that
A3: x in D;
for Y st Y in On X holds x in Y
proof
let Y;
assume
A4: Y in On X;
then reconsider A = Y as Ordinal by ORDINAL1:def 9;
A in X by A4,ORDINAL1:def 9;
then D c= A by A2;
hence thesis by A3;
end;
hence thesis by A1,SETFAM_1:def 1;
end;
theorem
A in X & X c= Y implies inf Y c= inf X
proof
assume A in X;
then
A1: On X <> 0 by ORDINAL1:def 9;
assume X c= Y;
then On X c= On Y by Th9;
hence thesis by A1,SETFAM_1:6;
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 ORDINAL1:sch 1(A1);
A3: A in On X by A2,ORDINAL1:def 9;
A4: now
let x be object;
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 reconsider B = Y as Ordinal by ORDINAL1:def 9;
Y in X by A6,ORDINAL1:def 9;
then A c= B by A2;
hence thesis by A5;
end;
assume for Y st Y in On X holds x in Y;
hence x in A by A3;
end;
On X <> 0 by A2,ORDINAL1:def 9;
hence thesis by A2,A4,SETFAM_1:def 1;
end;
theorem Th18:
sup A = A
proof
On A = A & for B st On A c= B holds A c= B by Th8;
hence thesis by Def3;
end;
theorem Th19:
A in X implies A in sup X
proof
assume A in X;
then
A1: A in On X by ORDINAL1:def 9;
On X c= sup X by Def3;
hence thesis by A1;
end;
theorem Th20:
(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 be object;
assume
A2: x in On X;
then reconsider A = x as Ordinal by ORDINAL1:def 9;
A in X by A2,ORDINAL1:def 9;
hence thesis by A1;
end;
hence thesis by Def3;
end;
theorem
A in sup X implies ex B st B in X & A c= B
proof
assume that
A1: A in sup X and
A2: for B st B in X holds not A c= B;
for B st B in X holds B in A by A2,ORDINAL1:16;
then sup X c= A by Th20;
hence contradiction by A1,ORDINAL1:5;
end;
theorem
X c= Y implies sup X c= sup Y
proof
assume X c= Y;
then
A1: On X c= On Y by Th9;
On Y c= sup Y by Def3;
then On X c= sup Y by A1;
hence thesis by Def3;
end;
theorem
sup { A } = succ A
proof
A1: On { A } c= succ A
proof
let x be object;
assume x in On { A };
then x in { A } by ORDINAL1:def 9;
then x = A by TARSKI:def 1;
hence thesis by ORDINAL1:6;
end;
now
A in { A } by TARSKI:def 1;
then
A2: A in On { A } by ORDINAL1:def 9;
let B;
assume On { A } c= B;
hence succ A c= B by A2,ORDINAL1:21;
end;
hence thesis by A1,Def3;
end;
theorem
inf X c= sup X
proof
let x be object;
set y = the Element of On X;
assume
A1: x in inf X;
then reconsider y as Ordinal by ORDINAL1:def 9,SETFAM_1:1;
On X c= sup X by Def3;
then y in sup X by A1,SETFAM_1:1;
then
A2: y c= sup X by ORDINAL1:def 2;
x in y by A1,SETFAM_1:1,def 1;
hence thesis by A2;
end;
scheme
TSLambda { 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(object) = F(sup union { $1 });
consider f such that
A1: dom f = A() & for x being object st x in A() holds f.x = G(x)
from FUNCT_1:sch 3;
reconsider f as 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:25
.= F(A) by Th18;
end;
definition
let f;
attr f is Ordinal-yielding means
:Def4:
ex A st rng f c= A;
end;
registration
cluster Ordinal-yielding for Sequence;
existence
proof
set A = the Ordinal;
set L = the Sequence of A;
take L,A;
thus thesis by RELAT_1:def 19;
end;
end;
definition
mode Ordinal-Sequence is Ordinal-yielding Sequence;
end;
registration
let A;
cluster -> Ordinal-yielding for Sequence of A;
coherence
by RELAT_1:def 19;
end;
registration
let L be Ordinal-Sequence;
let A;
cluster L|A -> Ordinal-yielding;
coherence
proof
consider B such that
A1: rng L c= B by Def4;
L|A is Ordinal-yielding
proof
take B;
rng(L|A) c= rng L by RELAT_1:70;
hence thesis by A1;
end;
hence thesis;
end;
end;
reserve fi,psi for Ordinal-Sequence;
theorem Th25:
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 3;
ex B st rng fi c= B by Def4;
hence thesis by A1;
end;
registration
let f be Ordinal-Sequence, a be object;
cluster f.a -> ordinal;
coherence
proof
a in dom f or not a in dom f;
hence thesis by Th25,FUNCT_1:def 2;
end;
end;
scheme
OSLambda { A()->Ordinal, F(Ordinal)->Ordinal } : ex fi st dom fi = A() & for
A st A in A() holds fi.A = F(A) proof
consider L such that
A1: dom L = A() & for A st A in A() holds L.A = F(A) from TSLambda;
L is Ordinal-yielding
proof
take sup rng L;
let x be object;
assume
A2: x in rng L;
then consider y being object such that
A3: y in dom L and
A4: x = L.y by FUNCT_1:def 3;
reconsider y as Ordinal by A3;
L.y = F(y) by A1,A3;
then
A5: x in On rng L by A2,A4,ORDINAL1:def 9;
On rng L c= sup rng L by Def3;
hence thesis by A5;
end;
then reconsider L as Ordinal-Sequence;
take fi = L;
thus dom fi = A() by A1;
let A;
assume A in A();
hence thesis by A1;
end;
scheme
TSUniq1 { A()->Ordinal, B()->object, C(Ordinal,set)->object,
D(Ordinal,Sequence)->object, L1()->Sequence, L2()->Sequence } :
L1() = L2()
provided
A1: dom L1() = A() and
A2: 0 in A() implies L1().0 = 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 <> 0 & A is limit_ordinal holds L1().A = D(A,
L1()|A) and
A5: dom L2() = A() and
A6: 0 in A() implies L2().0 = 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 <> 0 & A is limit_ordinal holds L2().A = D(A,
L2()|A)
proof
defpred P[object] means L1().$1 <> L2().$1;
consider X such that
A9: for Y being object holds Y in X iff Y in A() & P[Y] from XBOOLE_0:sch 1;
for b being object holds b in X implies b in A() by A9;
then
A10: X c= A();
assume L1() <> L2();
then ex a being object st a in A() & L1().a <> L2().a by A1,A5,FUNCT_1:2;
then X <> 0 by A9;
then consider B such that
A11: B in X and
A12: for C st C in X holds B c= C by A10,ORDINAL1:20;
A13: B in A() by A9,A11;
then
A14: B c= A() by ORDINAL1:def 2;
then
A15: dom(L1()|B) = B & dom(L2()|B) = B by A1,A5,RELAT_1:62;
A16: now
let C;
assume
A17: C in B;
then not C in X by A12,ORDINAL1:5;
hence L1().C = L2().C by A9,A14,A17;
end;
A18: now
let a be object;
assume
A19: a in B;
L1()|B.a = L1().a & L2()|B.a = L2().a by A15,A19,FUNCT_1:47;
hence L1()|B.a = L2()|B.a by A16,A19;
end;
A20: now
given C such that
A21: B = succ C;
A22: L1().C = L1()|B.C & L2().C = L2()|B.C by A21,FUNCT_1:49,ORDINAL1:6;
L1().B = C(C,L1().C) & L2().B = C(C,L2().C) by A3,A7,A13,A21;
hence L1().B = L2().B by A18,A21,A22,ORDINAL1:6;
end;
now
assume that
A23: B <> 0 and
A24: for C holds B <> succ C;
B is limit_ordinal by A24,ORDINAL1:29;
then L1().B = D(B,L1()|B) & L2().B = D(B,L2()|B) by A4,A8,A13,A23;
hence L1().B = L2().B by A15,A18,FUNCT_1:2;
end;
hence contradiction by A2,A6,A9,A11,A20;
end;
scheme
TSExist1 { A()->Ordinal, B()->object, C(Ordinal,set)->object,
D(Ordinal,Sequence)->object } :
ex L st dom L = A() & (0 in A() implies L.0 = B() ) & (for A st
succ A in A() holds L.(succ A) = C(A,L.A) ) & for A st A in A() & A <> 0 & A
is limit_ordinal holds L.A = D(A,L|A);
defpred P[Ordinal,Sequence] means dom $2 = $1 & (0 in $1 implies $2.0 =
B() ) & (for A st succ A in $1 holds $2.(succ A) = C(A,$2.A) ) & for A st A in
$1 & A <> 0 & A is limit_ordinal holds $2.A = D(A,$2|A);
defpred R[Ordinal] means ex L st P[$1,L];
A1: for B st for C st C in B holds R[C] holds R[B]
proof
defpred R[object,object] means
$1 is Ordinal & $2 is Sequence & for A,L st A = $1 & L = $2 holds P[A,L];
let B such that
A2: for C st C in B ex L st P[C,L];
A3: for a,b,c being object st R[a,b] & R[a,c] holds b = c
proof
let a,b,c be object;
assume that
A4: a is Ordinal and
A5: b is Sequence and
A6: for A,L st A = a & L = b holds P[A,L] and
a is Ordinal and
A7: c is Sequence and
A8: for A,L st A = a & L = c holds P[ A,L];
reconsider a as Ordinal by A4;
reconsider c as Sequence by A7;
A9: dom c = a by A8;
A10: for A st A in a & A <> 0 & A is limit_ordinal holds c.A = D(A,c|A)
by A8;
A11: for A st succ A in a holds c.(succ A) = C(A,c.A) by A8;
A12: 0 in a implies c.0 = B() by A8;
reconsider b as Sequence by A5;
A13: 0 in a implies b.0 = B() by A6;
A14: for A st succ A in a holds b.(succ A) = C(A,b.A) by A6;
A15: for A st A in a & A <> 0 & A is limit_ordinal holds b.A = D(A,b|A)
by A6;
A16: dom b = a by A6;
b = c from TSUniq1(A16,A13,A14,A15,A9,A12,A11,A10);
hence thesis;
end;
consider G being Function such that
A17: for a,b being object holds [a,b] in G iff a in B & R[a,b]
from FUNCT_1:sch 1(A3);
defpred Q[object,object] means
ex A,L st A = $1 & L = G.$1 & (A = 0 & $2 = B()
or (ex B st A = succ B & $2 = C(B,L.B)) or A <> 0 & A is limit_ordinal & $2 =
D(A,L));
A18: dom G = B
proof
thus for a being object holds a in dom G implies a in B
proof let a be object;
assume a in dom G;
then ex b being object st [a,b] in G by XTUPLE_0:def 12;
hence thesis by A17;
end;
let a be object;
assume
A19: a in B;
then reconsider a9 = a as Ordinal;
consider L such that
A20: P[a9,L] by A2,A19;
for A holds for K be Sequence holds A = a9 & K = L implies P[A,K]
by A20;
then [a9,L] in G by A17,A19;
hence thesis by XTUPLE_0:def 12;
end;
A21: for a being object st a in B ex b being object st Q[a,b]
proof
let a be object;
assume
A22: a in B;
then reconsider A = a as Ordinal;
consider c being object such that
A23: [a,c] in G by A18,A22,XTUPLE_0:def 12;
reconsider L = c as Sequence by A17,A23;
A24: now
given C such that
A25: A = succ C;
thus ex b being object st Q[a,b]
proof
take C(C,L.C), A, L;
thus A = a & L = G.a by A23,FUNCT_1:1;
thus thesis by A25;
end;
end;
A26: now
assume
A27: A <> 0 & for C holds A <> succ C;
thus Q[a,D(A,L)]
proof
take A,L;
thus A = a & L = G.a by A23,FUNCT_1:1;
thus thesis by A27,ORDINAL1:29;
end;
end;
now
assume
A28: A = 0;
thus Q[a,B()]
proof
take A,L;
thus A = a & L = G.a by A23,FUNCT_1:1;
thus thesis by A28;
end;
end;
hence thesis by A24,A26;
end;
A29: for a,b,c being object st a in B & Q[a,b] & Q[a,c] holds b = c
proof
let a,b,c being object such that
a in B;
given Ab being Ordinal,Lb being Sequence such that
A30: Ab = a and
A31: Lb = G.a and
A32: Ab = 0 & b = B() or (ex B st Ab = succ B & b = C(B,Lb.B)) or
Ab <> 0 & Ab is limit_ordinal & b = D(Ab,Lb);
given Ac being Ordinal,Lc being Sequence such that
A33: Ac = a and
A34: Lc = G.a and
A35: Ac = 0 & c = B() or (ex B st Ac = succ B & c = C(B,Lc.B)) or
Ac <> 0 & Ac is limit_ordinal & c = D(Ac,Lc);
now
given C such that
A36: Ab = succ C;
consider A such that
A37: Ab = succ A and
A38: b = C(A,Lb.A) by A32,A36,ORDINAL1:29;
consider D such that
A39: Ac = succ D and
A40: c = C(D,Lc.D) by A30,A33,A35,A36,ORDINAL1:29;
A = D by A30,A33,A37,A39,ORDINAL1:7;
hence thesis by A31,A34,A38,A40;
end;
hence thesis by A30,A31,A32,A33,A34,A35;
end;
consider F being Function such that
A41: dom F = B & for a being object st a in B holds Q[a,F.a]
from FUNCT_1:sch 2(A29
,A21);
reconsider L = F as Sequence by A41,ORDINAL1:def 7;
take L;
thus dom L = B by A41;
thus 0 in B implies L.0 = B()
proof
assume 0 in B;
then ex A being Ordinal, K being Sequence st A = 0 & K = G.0 & (A =
0 & F.0 = B() or (ex B st A = succ B & F.0 = C(B,K.B)) or A <> 0 & A is
limit_ordinal & F.0 = D(A,K)) by A41;
hence thesis;
end;
A42: 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;
A43: for A st for C st C in A holds P[C] holds P[A]
proof
let A such that
for C st C in A for L1 st C in B & L1 = G.C holds L|C = L1;
let L1;
assume that
A44: A in B and
A45: L1 = G.A;
A46: [A,L1] in G by A18,A44,A45,FUNCT_1:1;
then
A47: P[A,L1] by A17;
A48: now
let x be object;
assume
A49: x in A;
then reconsider x9 = x as Ordinal;
A50: x9 in B by A44,A49,ORDINAL1:10;
then consider A1,L2 such that
A51: A1 = x9 and
A52: L2 = G.x9 and
A53: A1 = 0 & L.x9 = B() or (ex B st A1 = succ B & L.x9 = C(B,
L2.B)) or A1 <> 0 & A1 is limit_ordinal & L.x9 = D(A1,L2) by A41;
for D,L3 st D = x9 & L3 = L1|x9 holds P[D,L3]
proof
let D,L3 such that
A54: D = x9 and
A55: L3 = L1|x9;
x9 c= A by A49,ORDINAL1:def 2;
hence dom L3 = D by A47,A54,A55,RELAT_1:62;
thus 0 in D implies L3.0 = B() by A47,A49,A54,A55,FUNCT_1:49
,ORDINAL1:10;
thus succ C in D implies L3.(succ C) = C(C,L3.C)
proof
assume
A56: succ C in D;
C in succ C by ORDINAL1:6;
then
A57: L1|x9.C = L1.C by A54,A56,FUNCT_1:49,ORDINAL1:10;
succ C in A & L1|x9.succ C = L1.succ C by A49,A54,A56,FUNCT_1:49
,ORDINAL1:10;
hence thesis by A17,A46,A55,A57;
end;
let C;
assume that
A58: C in D and
A59: C <> 0 & C is limit_ordinal;
C c= x9 by A54,A58,ORDINAL1:def 2;
then
A60: L1|C = L3|C by A55,FUNCT_1:51;
C in A by A49,A54,A58,ORDINAL1:10;
then L1.C = D(C,L3|C) by A17,A46,A59,A60;
hence thesis by A54,A55,A58,FUNCT_1:49;
end;
then [x9,L1|x9] in G by A17,A50;
then
A61: L1|x9 = L2 by A52,FUNCT_1:1;
A62: L|A.x = L.x by A49,FUNCT_1:49;
now
given D such that
A63: x9 = succ D;
A64: L1.x = C(D,L1.D) by A17,A46,A49,A63;
consider C such that
A65: A1 = succ C and
A66: L.x9 = C(C,L2.C) by A51,A53,A63,ORDINAL1:29;
C = D by A51,A63,A65,ORDINAL1:7;
hence L1.x = L|A.x by A62,A61,A63,A66,A64,FUNCT_1:49,ORDINAL1:6;
end;
hence L1.x = L|A.x by A17,A46,A49,A51,A53,A62,A61;
end;
A c= dom L by A41,A44,ORDINAL1:def 2;
then dom(L|A) = A by RELAT_1:62;
hence thesis by A47,A48,FUNCT_1:2;
end;
thus for A holds P[A] from ORDINAL1:sch 2(A43);
end;
thus succ A in B implies L.(succ A) = C(A,L.A)
proof
assume
A67: succ A in B;
then consider C being Ordinal, K being Sequence such that
A68: C = succ A and
A69: K = G.succ A and
A70: C = 0 & F.succ A = B() or (ex B st C = succ B & F.succ A = C(B
,K.B)) or C <> 0 & C is limit_ordinal & F.succ A = D(C,K) by A41;
A71: K = L|succ A by A42,A67,A69;
consider D such that
A72: C = succ D and
A73: F.succ A = C(D,K.D) by A68,A70,ORDINAL1:29;
A = D by A68,A72,ORDINAL1:7;
hence thesis by A73,A71,FUNCT_1:49,ORDINAL1:6;
end;
let D;
assume that
A74: D in B and
A75: D <> 0 & D is limit_ordinal;
ex A being Ordinal, K being Sequence st A = D & K = G.D & (A = 0
& F.D = B() or (ex B st A = succ B & F.D = C(B,K.B)) or A <> 0 & A is
limit_ordinal & F.D = D(A,K)) by A41,A74;
hence thesis by A42,A74,A75,ORDINAL1:29;
end;
for A holds R[A] from ORDINAL1:sch 2(A1);
hence thesis;
end;
scheme
TSResult { L()->Sequence, F(Ordinal)->set, A()->Ordinal, B()->set, C(
Ordinal,set)->set, D(Ordinal,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.
0 = 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 <> 0 & C is limit_ordinal holds L.C = D(C,L|C) and
A2: dom L() = A() and
A3: 0 in A() implies L().0 = 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 <> 0 & 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() by ORDINAL1:21;
A7: for C st succ C in succ A holds L.succ C = C(C,L.C)
proof
let C such that
A8: succ C in succ A;
C in succ C by ORDINAL1:6;
then
A9: L.C = L().C by A8,FUNCT_1:49,ORDINAL1:10;
L.succ C = L().succ C by A8,FUNCT_1:49;
hence thesis by A2,A4,A6,A8,A9;
end;
A10: for C st C in succ A & C <> 0 & C is limit_ordinal holds L.C = D(C,L|C )
proof
let C;
assume that
A11: C in succ A and
A12: C <> 0 & C is limit_ordinal;
C c= succ A by A11,ORDINAL1:def 2;
then
A13: L|C = L()|C by FUNCT_1:51;
L.C = L().C by A11,FUNCT_1:49;
hence thesis by A2,A5,A6,A11,A12,A13;
end;
0 c= succ A;
then 0 c< succ A;
then
A14: 0 in succ A & L.0 = L().0 by FUNCT_1:49,ORDINAL1:11;
A15: dom L = succ A by A6,RELAT_1:62;
then A in succ A & last L = L.A by Th2,ORDINAL1:21;
then last L = L().A by FUNCT_1:49;
hence thesis by A1,A2,A3,A6,A15,A14,A7,A10;
end;
scheme
TSDef { A()->Ordinal, B()->set, C(Ordinal,set)->set, D(Ordinal,Sequence)->
set } : (ex x,L st x = last L & dom L = succ A() & L.0 = 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 <> 0 & 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.0 = 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 <> 0 & C is limit_ordinal
holds L.C = D(C,L|C) ) & (ex L st x2 = last L & dom L = succ A() & L.0 = 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 <> 0 & C is limit_ordinal holds L.C = D(C,L|C) ) holds x1 = x2 proof
consider L such that
A1: dom L = succ A() & (0 in succ A() implies L.0 = 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 <>
0 & C is limit_ordinal holds L.C = D(C,L|C) from TSExist1;
thus ex x,L st x = last L & dom L = succ A() & L.0 = 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 <> 0 & 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;
0 c= succ A();
then 0 c< succ A();
hence thesis by A1,ORDINAL1:11;
end;
let x1,x2 be set;
given L1 such that
A2: x1 = last L1 and
A3: dom L1 = succ A() and
A4: L1.0 = 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 <> 0 & C is limit_ordinal holds L1.C = D
(C,L1|C);
A7: 0 in succ A() implies L1.0 = B() by A4;
given L2 such that
A8: x2 = last L2 and
A9: dom L2 = succ A() and
A10: L2.0 = B() and
A11: for C st succ C in succ A() holds L2.succ C = C(C,L2.C) and
A12: for C st C in succ A() & C <> 0 & C is limit_ordinal holds L2.C =
D(C,L2|C);
A13: 0 in succ A() implies L2.0 = B() by A10;
L1 = L2 from TSUniq1(A3,A7,A5,A6,A9,A13,A11,A12);
hence thesis by A2,A8;
end;
scheme
TSResult0 { F(Ordinal)->set, B()->set, C(Ordinal,set)->set, D(Ordinal,
Sequence)->set } : F(0) = B()
provided
A1: for A,x holds x = F(A) iff ex L st x = last L & dom L = succ A & L.
0 = 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 <> 0 & C is limit_ordinal holds L.C = D(C,L|C)
proof
consider L such that
A2: dom L = succ 0 & (0 in succ 0 implies L.0 = B() ) & (for A st
succ A in succ 0 holds L.(succ A) = C(A,L.A) ) & for A st A in succ 0 & A <>
0 & A is limit_ordinal holds L.A = D(A,L|A) from TSExist1;
B() = last L by A2,Th2,ORDINAL1:6;
hence thesis by A1,A2,ORDINAL1:6;
end;
scheme
TSResultS { B()->set, C(Ordinal,set)->set, D(Ordinal,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.
0 = 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 <> 0 & C is limit_ordinal holds L.C = D(C,L|C)
proof
let A;
consider L such that
A2: dom L = succ succ A and
A3: 0 in succ succ A implies L.0 = B() and
A4: for C st succ C in succ succ A holds L.(succ C) = C(C,L.C) and
A5: for C st C in succ succ A & C <> 0 & C is limit_ordinal holds L.C =
D(C,L|C) from TSExist1;
A6: for A,x holds x = F(A) iff ex L st x = last L & dom L = succ A & L.0 =
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 <> 0 & C is limit_ordinal holds L.C = D(C,L|C) by A1;
A7: for B st B in dom L holds L.B = F(B) from TSResult(A6,A2,A3,A4, A5);
then
A8: L.succ A = F(succ A) by A2,ORDINAL1:6;
A in succ A & succ A in succ succ A by ORDINAL1:6;
then L.A = F(A) by A2,A7,ORDINAL1:10;
hence thesis by A4,A8,ORDINAL1:6;
end;
scheme
TSResultL { L()->Sequence, A()->Ordinal, F(Ordinal)->set, B()->set, C(
Ordinal,set)->set, D(Ordinal,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.
0 = 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 <> 0 & C is limit_ordinal holds L.C = D(C,L|C) and
A2: A() <> 0 & A() is limit_ordinal and
A3: dom L() = A() and
A4: for A st A in A() holds L().A = F(A)
proof
A5: A() in succ A() by ORDINAL1:6;
consider L such that
A6: dom L = succ A() and
A7: 0 in succ A() implies L.0 = B() and
A8: for C st succ C in succ A() holds L.(succ C) = C(C,L.C) and
A9: for C st C in succ A() & C <> 0 & C is limit_ordinal holds L.C = D(
C,L|C) from TSExist1;
set L1 = L|A();
A10: for A,x holds x = F(A) iff ex L st x = last L & dom L = succ A & L.0 =
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 <> 0 & C is limit_ordinal holds L.C = D(C,L|C) by A1;
A11: for B st B in dom L holds L.B = F(B) from TSResult(A10,A6,A7,A8, A9);
A12: now
let x be object;
assume
A13: x in A();
then reconsider x9 = x as Ordinal;
thus L1.x = L.x9 by A13,FUNCT_1:49
.= F(x9) by A6,A11,A5,A13,ORDINAL1:10
.= L().x by A4,A13;
end;
A() c= dom L by A6,A5,ORDINAL1:def 2;
then dom L1 = A() by RELAT_1:62;
then L1 = L() by A3,A12,FUNCT_1:2;
then L.A() = D(A(),L()) by A2,A9,ORDINAL1:6;
hence thesis by A6,A11,ORDINAL1:6;
end;
scheme
OSExist { A()->Ordinal, B()->Ordinal, C(Ordinal,Ordinal)->Ordinal, D(Ordinal
,Sequence)->Ordinal } : ex fi st dom fi = A() & (0 in A() implies fi.0 = B(
) ) & (for A st succ A in A() holds fi.(succ A) = C(A,fi.A) ) & for A st A in A
() & A <> 0 & A is limit_ordinal holds fi.A = D(A,fi|A) proof
deffunc CC(Ordinal,set) = C($1,sup union {$2});
consider L such that
A1: dom L = A() and
A2: 0 in A() implies L.0 = 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 <> 0 & A is limit_ordinal holds L.A = D(A,L|A
) from TSExist1;
L is Ordinal-yielding
proof
take sup rng L;
let x be object;
assume
A5: x in rng L;
then consider y being object such that
A6: y in dom L and
A7: x = L.y by FUNCT_1:def 3;
reconsider y as Ordinal by A6;
A8: now
assume that
A9: y <> 0 and
A10: for B holds y <> succ B;
y is limit_ordinal by A10,ORDINAL1:29;
then L.y = D(y,L|y) by A1,A4,A6,A9;
hence x is Ordinal by A7;
end;
A11: On rng L c= sup rng L by Def3;
now
given B such that
A12: y = succ B;
L.y = C(B,sup union {L.B}) by A1,A3,A6,A12;
hence x is Ordinal by A7;
end;
then x in On rng L by A1,A2,A5,A6,A7,A8,ORDINAL1:def 9;
hence thesis by A11;
end;
then reconsider L as Ordinal-Sequence;
take fi = L;
thus dom fi = A() & (0 in A() implies fi.0 = 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:25
.= B by Th18;
hence thesis by A3;
end;
thus thesis by A4;
end;
scheme
OSResult { fi()->Ordinal-Sequence, F(Ordinal)->Ordinal, A()->Ordinal, B()->
Ordinal, C(Ordinal,Ordinal)->Ordinal, D(Ordinal,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.0 = 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 <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C) and
A2: dom fi() = A() and
A3: 0 in A() implies fi().0 = 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 <> 0 & 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() by ORDINAL1:21;
A7: for C st succ C in succ A holds fi.succ C = C(C,fi.C)
proof
let C such that
A8: succ C in succ A;
C in succ C by ORDINAL1:6;
then
A9: fi.C = fi().C by A8,FUNCT_1:49,ORDINAL1:10;
fi.succ C = fi().succ C by A8,FUNCT_1:49;
hence thesis by A2,A4,A6,A8,A9;
end;
A10: for C st C in succ A & C <> 0 & C is limit_ordinal holds fi.C = D(C,fi
|C)
proof
let C;
assume that
A11: C in succ A and
A12: C <> 0 & C is limit_ordinal;
C c= succ A by A11,ORDINAL1:def 2;
then
A13: fi|C = fi()|C by FUNCT_1:51;
fi.C = fi().C by A11,FUNCT_1:49;
hence thesis by A2,A5,A6,A11,A12,A13;
end;
0 c= succ A;
then 0 c< succ A;
then
A14: 0 in succ A & fi.0 = fi().0 by FUNCT_1:49,ORDINAL1:11;
A15: dom fi = succ A by A6,RELAT_1:62;
then A in succ A & last fi = fi.A by Th2,ORDINAL1:21;
then last fi = fi().A by FUNCT_1:49;
hence thesis by A1,A2,A3,A6,A15,A14,A7,A10;
end;
scheme
OSDef { A()->Ordinal, B()->Ordinal, C(Ordinal,Ordinal)->Ordinal, D(Ordinal,
Sequence)->Ordinal } : (ex A,fi st A = last fi & dom fi = succ A() & fi.0 =
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 <> 0 & 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.0 = 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 <> 0 & C is
limit_ordinal holds fi.C = D(C,fi|C) ) & (ex fi st A2 = last fi & dom fi = succ
A() & fi.0 = 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 <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C) )
holds A1 = A2 proof
consider fi such that
A1: dom fi = succ A() & (0 in succ A() implies fi.0 = 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 <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C) from OSExist;
reconsider A = last fi as Ordinal;
thus ex A,fi st A = last fi & dom fi = succ A() & fi.0 = 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 <>
0 & 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;
0 c= succ A();
then 0 c< succ A();
hence thesis by A1,ORDINAL1:11;
end;
deffunc CD(Ordinal,Ordinal) = C($1,sup union { $2 });
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.0 = 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 <> 0 & C is limit_ordinal holds L1.C = D
(C,L1|C);
A7: 0 in succ A() implies L1.0 = B() by A4;
A8: for C st succ C in succ A() holds L1.(succ C) = CD(C,L1.C)
proof
let C such that
A9: succ C in succ A();
reconsider x9 = L1.C as Ordinal;
sup union { L1.C } = sup x9 by ZFMISC_1:25
.= x9 by Th18;
hence thesis by A5,A9;
end;
given L2 being Ordinal-Sequence such that
A10: A2 = last L2 and
A11: dom L2 = succ A() and
A12: L2.0 = B() and
A13: for C st succ C in succ A() holds L2.succ C = C(C,L2.C) and
A14: for C st C in succ A() & C <> 0 & C is limit_ordinal holds L2.C =
D(C,L2|C);
A15: for C st C in succ A() & C <> 0 & C is limit_ordinal holds L2.C = D(C,
L2|C) by A14;
A16: for C st C in succ A() & C <> 0 & C is limit_ordinal holds L1.C = D(C,
L1|C) by A6;
A17: for C st succ C in succ A() holds L2.(succ C) = CD(C,L2.C)
proof
let C such that
A18: succ C in succ A();
reconsider x9 = L2.C as Ordinal;
sup union { L2.C } = sup x9 by ZFMISC_1:25
.= x9 by Th18;
hence thesis by A13,A18;
end;
A19: 0 in succ A() implies L2.0 = B() by A12;
L1 = L2 from TSUniq1(A3,A7,A8,A16,A11,A19,A17,A15);
hence thesis by A2,A10;
end;
scheme
OSResult0 { F(Ordinal)->Ordinal, B()->Ordinal, C(Ordinal,Ordinal)->Ordinal,
D(Ordinal,Sequence)->Ordinal } : F(0) = B()
provided
A1: for A,B holds B = F(A) iff ex fi st B = last fi & dom fi = succ A &
fi.0 = 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 <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C)
proof
consider fi such that
A2: dom fi = succ 0 & (0 in succ 0 implies fi.0 = B() ) & (for A st
succ A in succ 0 holds fi.(succ A) = C(A,fi.A) ) & for A st A in succ 0 & A
<> 0 & A is limit_ordinal holds fi.A = D(A,fi|A) from OSExist;
B() = last fi by A2,Th2,ORDINAL1:6;
hence thesis by A1,A2,ORDINAL1:6;
end;
scheme
OSResultS { B()->Ordinal, C(Ordinal,Ordinal)->Ordinal, D(Ordinal,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.0 = 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 <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C)
proof
let A;
consider fi such that
A2: dom fi = succ succ A and
A3: 0 in succ succ A implies fi.0 = B() and
A4: for C st succ C in succ succ A holds fi.(succ C) = C(C,fi.C) and
A5: for C st C in succ succ A & C <> 0 & C is limit_ordinal holds fi.C
= D(C,fi|C) from OSExist;
A6: for A,B holds B = F(A) iff ex fi st B = last fi & dom fi = succ A & fi.
0 = 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 <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C) by A1;
A7: for B st B in dom fi holds fi.B = F(B) from OSResult(A6,A2,A3,A4, A5);
then
A8: fi.succ A = F(succ A) by A2,ORDINAL1:6;
A in succ A & succ A in succ succ A by ORDINAL1:6;
then fi.A = F(A) by A2,A7,ORDINAL1:10;
hence thesis by A4,A8,ORDINAL1:6;
end;
scheme
OSResultL { fi()->Ordinal-Sequence, A()->Ordinal, F(Ordinal)->Ordinal, B()->
Ordinal, C(Ordinal,Ordinal)->Ordinal, D(Ordinal,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.0 = 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 <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C) and
A2: A() <> 0 & A() is limit_ordinal and
A3: dom fi() = A() and
A4: for A st A in A() holds fi().A = F(A)
proof
A5: A() in succ A() by ORDINAL1:6;
consider fi such that
A6: dom fi = succ A() and
A7: 0 in succ A() implies fi.0 = B() and
A8: for C st succ C in succ A() holds fi.(succ C) = C(C,fi.C) and
A9: for C st C in succ A() & C <> 0 & C is limit_ordinal holds fi.C = D
(C,fi|C) from OSExist;
set psi = fi|A();
A10: for A,B holds B = F(A) iff ex fi st B = last fi & dom fi = succ A & fi.
0 = 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 <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C) by A1;
A11: for B st B in dom fi holds fi.B = F(B) from OSResult(A10,A6,A7,A8, A9);
A12: now
let x be object;
assume
A13: x in A();
then reconsider x9 = x as Ordinal;
thus psi.x = fi.x9 by A13,FUNCT_1:49
.= F(x9) by A6,A11,A5,A13,ORDINAL1:10
.= fi().x by A4,A13;
end;
A() c= dom fi by A6,A5,ORDINAL1:def 2;
then dom psi = A() by RELAT_1:62;
then psi = fi() by A3,A12,FUNCT_1:2;
then fi.A() = D(A(),fi()) by A2,A9,ORDINAL1:6;
hence thesis by A6,A11,ORDINAL1:6;
end;
definition
let L;
func sup L -> Ordinal equals
sup rng L;
correctness;
func inf L -> Ordinal equals
inf rng L;
correctness;
end;
theorem
sup L = sup rng L & inf L = inf rng L;
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
OSLambda;
take inf fi, fi;
thus thesis by A1;
end;
uniqueness
proof
let A1,A2 be Ordinal;
given fi such that
A2: A1 = inf fi & dom fi = dom L and
A3: for A st A in dom L holds fi.A = sup rng (L|(dom L \ A));
given psi such that
A4: A2 = inf psi & dom psi = dom L and
A5: for A st A in dom L holds psi.A = sup rng (L|(dom L \ A));
now
let x be object;
assume
A6: x in dom L;
then reconsider A = x as Ordinal;
fi.A = sup rng (L|(dom L \ A)) by A3,A6;
hence fi.x = psi.x by A5,A6;
end;
hence thesis by A2,A4,FUNCT_1:2;
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
OSLambda;
take sup fi, fi;
thus thesis by A7;
end;
uniqueness
proof
let A1,A2 be Ordinal;
given fi such that
A8: A1 = sup fi & dom fi = dom L and
A9: for A st A in dom L holds fi.A = inf rng (L|(dom L \ A));
given psi such that
A10: A2 = sup psi & dom psi = dom L and
A11: for A st A in dom L holds psi.A = inf rng (L|(dom L \ A));
now
let x be object;
assume
A12: x in dom L;
then reconsider A = x as Ordinal;
fi.A = inf rng (L|(dom L \ A)) by A9,A12;
hence fi.x = psi.x by A11,A12;
end;
hence thesis by A8,A10,FUNCT_1:2;
end;
end;
definition
let A,fi;
pred A is_limes_of fi means
:Def9:
ex B st B in dom fi & for C st B c= C &
C in dom fi holds fi.C = 0 if A = 0 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
:Def10:
it is_limes_of fi;
existence by A1;
uniqueness
proof
let A1,A2 be Ordinal such that
A2: (A1 = 0 & ex B st B in dom fi & for C st B c= C & C in dom fi
holds fi.C = 0) or (A1 <> 0 & 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 = 0 & ex B st B in dom fi & for C st B c= C & C in dom fi
holds fi.C = 0) or (A2 <> 0 & 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);
A4: now
set x = the Element of A1;
reconsider x as Ordinal;
assume A1 in A2;
then consider D such that
A5: D in dom fi and
A6: for A st D c= A & A in dom fi holds A1 in fi.A & fi.A in succ A2
by A3,ORDINAL1:6;
now
assume A1 = 0;
then consider B such that
A7: B in dom fi and
A8: for C st B c= C & C in dom fi holds fi.C = 0 by A2;
B c= D or D c= B;
then consider E being Ordinal such that
A9: E = D & B c= D or E = B & D c= B;
fi.E = 0 by A5,A7,A8,A9;
hence contradiction by A5,A6,A7,A9;
end;
then consider C such that
A10: C in dom fi and
A11: for A st C c= A & A in dom fi holds x in fi.A & fi.A in succ A1
by A2,ORDINAL1:6;
C c= D or D c= C;
then consider E being Ordinal such that
A12: E = D & C c= D or E = C & D c= C;
fi.E in succ A1 by A5,A10,A11,A12;
then
A13: fi.E in A1 or fi.E = A1 by ORDINAL1:8;
A1 in fi.E by A5,A6,A10,A12;
hence contradiction by A13;
end;
set x = the Element of A2;
reconsider x as Ordinal;
assume A1 <> A2;
then A1 in A2 or A2 in A1 by ORDINAL1:14;
then consider D such that
A14: D in dom fi and
A15: for A st D c= A & A in dom fi holds A2 in fi.A & fi.A in succ A1
by A2,A4,ORDINAL1:6;
now
assume A2 = 0;
then consider B such that
A16: B in dom fi and
A17: for C st B c= C & C in dom fi holds fi.C = 0 by A3;
B c= D or D c= B;
then consider E being Ordinal such that
A18: E = D & B c= D or E = B & D c= B;
fi.E = 0 by A14,A16,A17,A18;
hence contradiction by A14,A15,A16,A18;
end;
then consider C such that
A19: C in dom fi and
A20: for A st C c= A & A in dom fi holds x in fi.A & fi.A in succ A2
by A3,ORDINAL1:6;
C c= D or D c= C;
then consider E being Ordinal such that
A21: E = D & C c= D or E = C & D c= C;
fi.E in succ A2 by A14,A19,A20,A21;
then
A22: fi.E in A2 or fi.E = A2 by ORDINAL1:8;
A2 in fi.E by A14,A15,A19,A21;
hence contradiction by A22;
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 <> 0 & A is
limit_ordinal & B = L.A holds B is_limes_of L|A;
end;
definition
let A,B be Ordinal;
func A +^ B -> Ordinal means
:Def14:
ex fi st it = last fi & dom fi = succ B
& fi.0 = A & (for C st succ C in succ B holds fi.succ C = succ(fi.C)) & for C
st C in succ B & C <> 0 & C is limit_ordinal holds fi.C = sup(fi|C);
correctness
proof
deffunc D(Ordinal,Sequence) = sup $2;
deffunc C(Ordinal,Ordinal) = succ $2;
(ex F being Ordinal,fi st F = last fi & dom fi = succ B & fi.0 = 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 <> 0 & 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.0 = 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 <> 0 & C is
limit_ordinal holds fi.C = D(C,fi|C) ) & (ex fi st A2 = last fi & dom fi = succ
B & fi.0 = 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 <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C) ) holds A1
= A2 from OSDef;
hence thesis;
end;
end;
definition
let A,B;
func A *^ B -> Ordinal means
:Def15:
ex fi st it = last fi & dom fi = succ A
& fi.0 = 0 & (for C st succ C in succ A holds fi.succ C = (fi.C)+^B) & for C
st C in succ A & C <> 0 & C is limit_ordinal holds fi.C = union sup(fi|C);
correctness
proof
deffunc D(Ordinal,Ordinal-Sequence) = union sup $2;
deffunc C(Ordinal,Ordinal) = $2+^B;
(ex F being Ordinal,fi st F = last fi & dom fi = succ A & fi.0 = 0 &
(for C st succ C in succ A holds fi.succ C = C(C,fi.C)) & for C st C in succ A
& C <> 0 & 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.0 = 0 & (for C st succ C in succ A
holds fi.succ C = C(C,fi.C)) & for C st C in succ A & C <> 0 & C is
limit_ordinal holds fi.C = D(C,fi|C) ) & (ex fi st A2 = last fi & dom fi = succ
A & fi.0 = 0 & (for C st succ C in succ A holds fi.succ C = C(C,fi.C)) & for
C st C in succ A & C <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C) ) holds
A1 = A2 from OSDef;
hence thesis;
end;
end;
registration
let O be Ordinal;
cluster -> ordinal for Element of O;
coherence;
end;
definition
let A,B;
func exp(A,B) -> Ordinal means
:Def16:
ex fi st it = last fi & dom fi = succ
B & fi.0 = 1 & (for C st succ C in succ B holds fi.succ C = A*^(fi.C)) & for C
st C in succ B & C <> 0 & C is limit_ordinal holds fi.C = lim(fi|C);
correctness
proof
deffunc D(Ordinal,Ordinal-Sequence) = lim $2;
deffunc C(Ordinal,Ordinal) = A*^$2;
(ex F being Ordinal,fi st F = last fi & dom fi = succ B & fi.0 = 1 &
(for C st succ C in succ B holds fi.succ C = C(C,fi.C)) & for C st C in succ B
& C <> 0 & 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.0 = 1 & (for C st succ C in succ B
holds fi.succ C = C(C,fi.C)) & for C st C in succ B & C <> 0 & C is
limit_ordinal holds fi.C = D(C,fi|C) ) & (ex fi st A2 = last fi & dom fi = succ
B & fi.0 = 1 & (for C st succ C in succ B holds fi.succ C = C(C,fi.C)) & for C
st C in succ B & C <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C) ) holds A1
= A2 from OSDef;
hence thesis;
end;
end;
theorem Th27:
A+^0 = A
proof
deffunc C(Ordinal,Ordinal) = succ $2;
deffunc D(Ordinal,Sequence) = sup $2;
deffunc F(Ordinal) = A+^$1;
A1: for B,C holds C = F(B) iff ex fi st C = last fi & dom fi = succ B & fi.
0 = 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 <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C) by Def14;
thus F(0) = A from OSResult0(A1);
end;
theorem Th28:
A+^succ B = succ(A+^B)
proof
deffunc C(Ordinal,Ordinal) = succ $2;
deffunc D(Ordinal,Sequence) = sup $2;
deffunc F(Ordinal) = A+^$1;
A1: for B,C holds C = F(B) iff ex fi st C = last fi & dom fi = succ B & fi.
0 = 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 <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C) by Def14;
for B holds F(succ B) = C(B,F(B)) from OSResultS(A1);
hence thesis;
end;
theorem Th29:
B <> 0 & 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
deffunc C(Ordinal,Ordinal) = succ $2;
deffunc D(Ordinal,Ordinal-Sequence) = sup $2;
assume
A1: B <> 0 & B is limit_ordinal;
deffunc F(Ordinal) = A+^$1;
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.
0 = 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 <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C) by Def14;
thus F(B) = D(B,fi) from OSResultL(A4,A1,A2,A3);
end;
theorem Th30:
0+^A = A
proof
defpred P[Ordinal] means 0+^$1 = $1;
A1: for A holds P[A] implies P[succ A] by Th28;
A2: for A st A <> 0 & A is limit_ordinal & for B st B in A holds P[B] holds
P[A]
proof
deffunc F(Ordinal) = 0+^$1;
let A;
assume that
A3: A <> 0 & A is limit_ordinal and
A4: for B st B in A holds 0+^B = B;
consider fi such that
A5: dom fi = A & for B st B in A holds fi.B = F(B) from OSLambda;
A6: rng fi = A
proof
thus for x being object holds x in rng fi implies x in A
proof let x be object;
assume x in rng fi;
then consider y being object such that
A7: y in dom fi and
A8: x = fi.y by FUNCT_1:def 3;
reconsider y as Ordinal by A7;
x = 0+^y by A5,A7,A8
.= y by A4,A5,A7;
hence thesis by A5,A7;
end;
let x be object;
assume
A9: x in A;
then reconsider B = x as Ordinal;
0+^B = B & fi.B = 0+^B by A4,A5,A9;
hence thesis by A5,A9,FUNCT_1:def 3;
end;
0+^A = sup fi by A3,A5,Th29
.= sup rng fi;
hence thesis by A6,Th18;
end;
A10: P[0] by Th27;
for A holds P[A] from OrdinalInd(A10,A1,A2);
hence thesis;
end;
Lm1: 1 = succ 0;
theorem
A+^1 = succ A
proof
thus A+^1 = succ(A+^0) by Lm1,Th28
.= succ A by Th27;
end;
theorem Th32:
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: now
assume A in D;
then
A7: C +^ A in C +^ D by A2,A5,ORDINAL1:6;
succ(C +^ D) = C +^ succ D & C +^ D in succ(C +^ D) by Th28,ORDINAL1:6;
hence thesis by A5,A7,ORDINAL1:10;
end;
now
assume
A8: not A in D;
A c< D iff A c= D & A <> D;
then C +^ A in succ(C +^ D) by A3,A5,A8,ORDINAL1:11,22;
hence thesis by A5,Th28;
end;
hence thesis by A6;
end;
now
deffunc F(Ordinal) = C+^$1;
consider fi such that
A9: dom fi = B & for D st D in B holds fi.D = F(D) from OSLambda;
fi.A = C+^A by A3,A9;
then
A10: C+^A in rng fi by A3,A9,FUNCT_1:def 3;
assume for D holds B <> succ D;
then B is limit_ordinal by ORDINAL1:29;
then C+^B = sup fi by A3,A9,Th29
.= sup rng fi;
hence thesis by A10,Th19;
end;
hence thesis by A4;
end;
for B holds P[B] from ORDINAL1:sch 2(A1);
hence thesis;
end;
theorem Th33:
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;
then C +^ A in C +^ B by Th32,ORDINAL1:11;
hence thesis by ORDINAL1:def 2;
end;
hence thesis;
end;
theorem Th34:
A c= B implies A +^ C c= B +^ C
proof
defpred P[Ordinal] means A +^ $1 c= B +^ $1;
assume
A1: A c= B;
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
given D such that
A5: C = succ D;
A6: B +^ C = succ(B +^ D) by A5,Th28;
A +^ D c= B +^ D & A +^ C = succ(A +^ D) by A3,A5,Th28,ORDINAL1:6;
hence thesis by A6,Th1;
end;
A7: now
deffunc F(Ordinal) = A+^$1;
assume that
A8: C <> 0 and
A9: for D holds C <> succ D;
consider fi such that
A10: dom fi = C & for D st D in C holds fi.D = F(D) from OSLambda;
A11: now
let D;
assume D in rng fi;
then consider x being object such that
A12: x in dom fi and
A13: D = fi.x by FUNCT_1:def 3;
reconsider x as Ordinal by A12;
A14: B +^ x in B +^ C by A10,A12,Th32;
D = A+^x & A +^ x c= B +^ x by A3,A10,A12,A13;
hence D in B +^ C by A14,ORDINAL1:12;
end;
C is limit_ordinal by A9,ORDINAL1:29;
then A+^C = sup fi by A8,A10,Th29
.= sup rng fi;
hence thesis by A11,Th20;
end;
now
assume
A15: C = 0;
then A +^ C = A by Th27;
hence thesis by A1,A15,Th27;
end;
hence thesis by A4,A7;
end;
for C holds P[C] from ORDINAL1:sch 2(A2);
hence thesis;
end;
theorem Th35:
0*^A = 0
proof
deffunc D(Ordinal,Sequence) = union sup $2;
deffunc F(Ordinal) = $1*^A;
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.
0 = 0 & (for C st succ C in succ B holds fi.succ C = C(C,fi.C)) & for C st C
in succ B & C <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C) by Def15;
thus F(0) = 0 from OSResult0(A1);
end;
theorem Th36:
(succ B)*^A = B*^A +^ A
proof
deffunc D(Ordinal,Sequence) = union sup $2;
deffunc F(Ordinal) = $1*^A;
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.
0 = 0 & (for C st succ C in succ B holds fi.succ C = C(C,fi.C)) & for C st C
in succ B & C <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C) by Def15;
for B holds F(succ B) = C(B,F(B)) from OSResultS(A1);
hence thesis;
end;
theorem Th37:
B <> 0 & 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
deffunc D(Ordinal,Ordinal-Sequence) = union sup $2;
assume
A1: B <> 0 & B is limit_ordinal;
deffunc C(Ordinal,Ordinal) = $2+^A;
deffunc F(Ordinal) = $1*^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.
0 = 0 & (for C st succ C in succ B holds fi.succ C = C(C,fi.C)) & for C st C
in succ B & C <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C) by Def15;
thus F(B) = D(B,fi) from OSResultL(A4,A1,A2,A3);
end;
theorem Th38:
A*^0 = 0
proof
defpred P[Ordinal] means $1*^0 = 0;
A1: for A st P[A] holds P[succ A]
proof
let A;
assume A*^0 = 0;
hence (succ A)*^0 = 0+^0 by Th36
.= 0 by Th27;
end;
A2: for A st A <> 0 & A is limit_ordinal & for B st B in A holds P[B] holds
P[A]
proof
deffunc F(Ordinal) = $1*^0;
let A;
assume that
A3: A <> 0 and
A4: A is limit_ordinal and
A5: for B st B in A holds B*^0 = 0;
consider fi such that
A6: dom fi = A & for B st B in A holds fi.B = F(B) from OSLambda;
rng fi = succ 0
proof
thus for x being object holds x in rng fi implies x in succ 0
proof let x be object;
assume x in rng fi;
then consider y being object such that
A7: y in dom fi and
A8: x = fi.y by FUNCT_1:def 3;
reconsider y as Ordinal by A7;
x = y*^0 by A6,A7,A8
.= 0 by A5,A6,A7;
hence thesis by TARSKI:def 1;
end;
let x be object;
assume x in succ 0;
then
A9: x = 0 by TARSKI:def 1;
0 c= A;
then
A10: 0 c< A by A3;
then
A11: 0 in A by ORDINAL1:11;
0 *^ 0 = 0 by Th35;
then fi.x = x by A6,A10,A9,ORDINAL1:11;
hence thesis by A6,A11,A9,FUNCT_1:def 3;
end;
then
A12: sup rng fi = succ 0 by Th18;
A*^0 = union sup fi by A3,A4,A6,Th37
.= union sup rng fi;
hence thesis by A12,Th2;
end;
A13: P[0] by Th35;
for A holds P[A] from OrdinalInd(A13,A1,A2);
hence thesis;
end;
theorem Th39:
1*^A = A & A*^1 = A
proof
defpred P[Ordinal] means $1*^succ 0 = $1;
thus 1*^A = 0*^A +^ A by Lm1,Th36
.= 0 +^ A by Th35
.= A by Th30;
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 0) = B;
A3: now
deffunc F(Ordinal) = $1*^succ 0;
assume that
A4: A <> 0 and
A5: for B holds A <> succ B;
consider fi such that
A6: dom fi = A & for D st D in A holds fi.D = F(D) from OSLambda;
A7: A = rng fi
proof
thus A c= rng fi
proof
let x be object;
assume
A8: x in A;
then reconsider B = x as Ordinal;
x = B*^succ 0 by A2,A8
.= fi.x by A6,A8;
hence thesis by A6,A8,FUNCT_1:def 3;
end;
let x be object;
assume x in rng fi;
then consider y being object such that
A9: y in dom fi and
A10: x = fi.y by FUNCT_1:def 3;
reconsider y as Ordinal by A9;
fi.y = y*^succ 0 by A6,A9
.= y by A2,A6,A9;
hence thesis by A6,A9,A10;
end;
A11: A is limit_ordinal by A5,ORDINAL1:29;
then A*^succ 0 = union sup fi by A4,A6,Th37
.= union sup rng fi;
hence A*^succ 0 = union A by A7,Th18
.= A by A11;
end;
now
given B such that
A12: A = succ B;
thus A*^(succ 0) = B*^(succ 0) +^ succ 0 by A12,Th36
.= B +^ succ 0 by A2,A12,ORDINAL1:6
.= succ(B +^ 0) by Th28
.= A by A12,Th27;
end;
hence thesis by A3,Th35;
end;
for A holds P[A] from ORDINAL1:sch 2(A1);
hence thesis;
end;
theorem Th40:
C <> 0 & A in B implies A*^C in B*^C
proof
A1: 0 c= C;
defpred P[Ordinal] means A in $1 implies A*^C in $1*^C;
assume C <> 0;
then
A2: 0 c< C by A1;
then
A3: 0 in C by ORDINAL1:11;
A4: for B st for D st D in B holds P[D] holds P[B]
proof
let B such that
A5: for D st D in B holds A in D implies A *^ C in D *^ C and
A6: A in B;
A7: now
given D such that
A8: B = succ D;
A9: now
assume A in D;
then
A10: A*^C in D*^C by A5,A8,ORDINAL1:6;
A11: D*^C +^ 0 in D*^C +^ C by A2,Th32,ORDINAL1:11;
D*^C +^ C = (succ D)*^C & D*^C +^ 0 = D*^C by Th27,Th36;
hence thesis by A8,A10,A11,ORDINAL1:10;
end;
now
A12: A*^C +^ 0 = A*^C by Th27;
assume
A13: not A in D;
A c< D iff A c= D & A <> D;
then A*^C +^ 0 in D*^C +^ C by A3,A6,A8,A13,Th32,ORDINAL1:11,22;
hence thesis by A8,A12,Th36;
end;
hence thesis by A9;
end;
now
A14: A*^C +^ 0 = A*^C & A*^C +^ 0 in A*^C +^ C by A2,Th27,Th32,ORDINAL1:11;
A15: (succ A)*^C = A*^C +^ C by Th36;
deffunc F(Ordinal) = $1*^C;
consider fi such that
A16: dom fi = B & for D st D in B holds fi.D = F(D) from OSLambda;
assume for D holds B <> succ D;
then
A17: B is limit_ordinal by ORDINAL1:29;
then
A18: succ A in B by A6,ORDINAL1:28;
then fi.(succ A) = (succ A)*^C by A16;
then (succ A)*^C in rng fi by A16,A18,FUNCT_1:def 3;
then
A19: (succ A)*^C c= union sup rng fi by Th19,ZFMISC_1:74;
B*^C = union sup fi by A6,A17,A16,Th37
.= union sup rng fi;
hence thesis by A19,A14,A15;
end;
hence thesis by A7;
end;
for B holds P[B] from ORDINAL1:sch 2(A4);
hence thesis;
end;
theorem
A c= B implies A*^C c= B*^C
proof
assume
A1: A c= B;
A2: now
assume
A3: C <> 0;
now
assume A <> B;
then A c< B by A1;
then A*^C in B*^C by A3,Th40,ORDINAL1:11;
hence thesis by ORDINAL1:def 2;
end;
hence thesis;
end;
C = 0 implies thesis by Th38;
hence thesis by A2;
end;
theorem
A c= B implies C*^A c= C*^B
proof
assume
A1: A c= B;
now
defpred P[Ordinal] means $1*^A c= $1*^B;
assume
A2: B <> 0;
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
given D such that
A6: C = succ D;
D*^A c= D*^B by A4,A6,ORDINAL1:6;
then
A7: D*^A +^ A c= D*^B +^ A by Th34;
A8: C*^A = D*^A +^ A & C*^B = D*^B +^ B by A6,Th36;
D*^B +^ A c= D*^B +^ B by A1,Th33;
hence thesis by A7,A8,XBOOLE_1:1;
end;
A9: now
deffunc F(Ordinal) = $1*^A;
assume that
A10: C <> 0 and
A11: for D holds C <> succ D;
consider fi such that
A12: dom fi = C & for D st D in C holds fi.D = F(D) from OSLambda;
now
let D;
assume D in rng fi;
then consider x being object such that
A13: x in dom fi and
A14: D = fi.x by FUNCT_1:def 3;
reconsider x as Ordinal by A13;
A15: x*^B in C*^B by A2,A12,A13,Th40;
D = x*^A & x*^A c= x*^B by A4,A12,A13,A14;
hence D in C*^B by A15,ORDINAL1:12;
end;
then
A16: sup rng fi c= C*^B by Th20;
C is limit_ordinal by A11,ORDINAL1:29;
then
A17: C*^A = union sup fi by A10,A12,Th37
.= union sup rng fi;
union sup rng fi c= sup rng fi by Th5;
hence thesis by A17,A16,XBOOLE_1:1;
end;
now
assume C = 0;
then C*^A = 0 by Th35;
hence thesis;
end;
hence thesis by A5,A9;
end;
for C holds P[C] from ORDINAL1:sch 2(A3);
hence thesis;
end;
hence thesis by A1;
end;
theorem Th43:
exp(A,0) = 1
proof
deffunc D(Ordinal,Ordinal-Sequence) = lim $2;
deffunc F(Ordinal) = exp(A,$1);
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.
0 = 1 & (for C st succ C in succ B holds fi.succ C = C(C,fi.C)) & for C st C
in succ B & C <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C) by Def16;
thus F(0) = 1 from OSResult0(A1);
end;
theorem Th44:
exp(A,succ B) = A*^exp(A,B)
proof
deffunc D(Ordinal,Ordinal-Sequence) = lim $2;
deffunc F(Ordinal) = exp(A,$1);
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.
0 = 1 & (for C st succ C in succ B holds fi.succ C = C(C,fi.C)) & for C st C
in succ B & C <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C) by Def16;
for B holds F(succ B) = C(B,F(B)) from OSResultS(A1);
hence thesis;
end;
theorem Th45:
B <> 0 & 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
deffunc D(Ordinal,Ordinal-Sequence) = lim $2;
assume
A1: B <> 0 & B is limit_ordinal;
deffunc C(Ordinal,Ordinal) = A*^$2;
deffunc F(Ordinal) = exp(A,$1);
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.
0 = 1 & (for C st succ C in succ B holds fi.succ C = C(C,fi.C)) & for C st C
in succ B & C <> 0 & C is limit_ordinal holds fi.C = D(C,fi|C) by Def16;
thus F(B) = D(B,fi) from OSResultL(A4,A1,A2,A3);
end;
theorem
exp(A,1) = A & exp(1,A) = 1
proof
defpred P[Ordinal] means exp(1,$1) = 1;
A1: for A st P[A] holds P[succ A]
proof
let A;
assume exp(1,A) = 1;
hence exp(1,succ A) = 1*^1 by Th44
.= 1 by Th39;
end;
thus exp(A,1) = A*^exp(A,0) by Lm1,Th44
.= A*^1 by Th43
.= A by Th39;
A2: for A st A <> 0 & A is limit_ordinal & for B st B in A holds P[B] holds
P[A]
proof
deffunc F(Ordinal) = exp(1,$1);
let A such that
A3: A <> 0 and
A4: A is limit_ordinal and
A5: for B st B in A holds exp(1,B) = 1;
consider fi such that
A6: dom fi = A & for B st B in A holds fi.B = F(B) from OSLambda;
A7: rng fi c= { 1 }
proof
let x be object;
assume x in rng fi;
then consider y being object such that
A8: y in dom fi and
A9: x = fi.y by FUNCT_1:def 3;
reconsider y as Ordinal by A8;
x = exp(1,y) by A6,A8,A9
.= 1 by A5,A6,A8;
hence thesis by TARSKI:def 1;
end;
now
set x = the Element of A;
thus 0 <> 1;
let B,C such that
A10: B in 1 & 1 in C;
reconsider x as Ordinal;
take D = x;
thus D in dom fi by A3,A6;
let E be Ordinal;
assume that
D c= E and
A11: E in dom fi;
fi.E in rng fi by A11,FUNCT_1:def 3;
hence B in fi.E & fi.E in C by A7,A10,TARSKI:def 1;
end;
then
A12: 1 is_limes_of fi by Def9;
exp(1,A) = lim fi by A3,A4,A6,Th45;
hence thesis by A12,Def10;
end;
A13: P[0] by Th43;
for A holds P[A] from OrdinalInd(A13,A1,A2);
hence thesis;
end;
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: (ex B st A = succ B) implies Th[A]
proof
given B such that
A4: A = succ B;
consider C,D such that
A5: C is limit_ordinal and
A6: D is natural and
A7: B = C +^ D by A2,A4,ORDINAL1:6;
take C, E = succ D;
thus C is limit_ordinal by A5;
thus E in omega by A6,ORDINAL1:def 12;
thus thesis by A4,A7,Th28;
end;
(for B holds A <> succ B) implies Th[A]
proof
assume
A8: for D holds A <> succ D;
take B = A, C = 0;
thus B is limit_ordinal by A8,ORDINAL1:29;
thus C in omega by ORDINAL1:def 11;
thus thesis by Th27;
end;
hence thesis by A3;
end;
thus for A holds Th[A] from ORDINAL1:sch 2(A1);
end;
:: 2005.05.04, A.T.
registration
let X be set, o be Ordinal;
cluster X --> o -> Ordinal-yielding;
coherence
proof
rng(X --> o) c= {o} & {o} c= succ o by FUNCOP_1:13,XBOOLE_1:7;
then rng(X --> o) c= succ o;
hence thesis;
end;
end;
registration
let O be Ordinal, x be object;
cluster O --> x -> Sequence-like;
coherence by FUNCOP_1:13;
end;
:: from ZFREFLE1, 2007.03.14, A.T.
definition
let A,B be Ordinal;
pred A is_cofinal_with B means
ex xi being Ordinal-Sequence st dom xi = B &
rng xi c= A & xi is increasing & A = sup xi;
reflexivity
proof
let A;
A1: dom id A = A by RELAT_1:45;
then reconsider xi = id A as Sequence by ORDINAL1:def 7;
A2: rng id A = A by RELAT_1:45;
then reconsider xi as Ordinal-Sequence by Def4;
take xi;
thus dom xi = A & rng xi c= A by RELAT_1:45;
thus xi is increasing
proof
let B,C;
assume that
A3: B in C and
A4: C in dom xi;
xi.C = C by A1,A4,FUNCT_1:18;
hence thesis by A1,A3,A4,FUNCT_1:18,ORDINAL1:10;
end;
thus thesis by A2,Th18;
end;
end;
reserve e,u for set;
theorem Th48:
e in rng psi implies e is Ordinal
proof
assume e in rng psi;
then ex u being object st u in dom psi & e = psi.u by FUNCT_1:def 3;
hence thesis;
end;
theorem
rng psi c= sup psi
proof
let e be object;
assume
A1: e in rng psi;
then e is Ordinal by Th48;
hence thesis by A1,Th19;
end;
theorem
A is_cofinal_with 0 implies A = 0
proof
given psi such that
A1: dom psi = 0 and
rng psi c= A and
psi is increasing and
A2: A = sup psi;
thus A = sup 0 by A1,A2,RELAT_1:42
.= 0 by Th18;
end;
:: from ARYTM_3, 2007.10.23, A.T.
scheme
OmegaInd {a()-> Nat, P[object]}:
P[a()]
provided
A1: P[0] and
A2: for a being Nat st P[a] holds P[succ a]
proof
defpred P[Ordinal] means $1 is natural implies P[$1];
A3: now
let A;
assume
A4: P[A];
now
assume succ A is natural;
then
A5: succ A in omega;
A in succ A by ORDINAL1:6;
then A is Element of omega by A5,ORDINAL1:10;
hence P[succ A] by A2,A4;
end;
hence P[succ A];
end;
A6: now
let A;
assume
A7: A <> 0;
0 c= A;
then 0 c< A by A7;
then
A8: 0 in A by ORDINAL1:11;
A9: not A in A;
assume A is limit_ordinal;
then omega c= A by A8,ORDINAL1:def 11;
then not A in omega by A9;
hence (for B st B in A holds P[B]) implies P[A] by ORDINAL1:def 12;
end;
A10: P[0] by A1;
for A holds P[A] from OrdinalInd(A10,A3,A6);
hence thesis;
end;
registration
let a, b be Nat;
cluster a +^ b -> natural;
coherence
proof
defpred P[Nat] means a+^$1 is natural;
A1: now
let b be Nat;
assume P[b];
then reconsider c = a+^b as Nat;
a+^succ b = succ c by Th28;
hence P[succ b];
end;
A2: P[0] by Th27;
thus P[b] from OmegaInd(A2,A1);
end;
end;
:: from AMI_2, 2008.02.14, A.T.
registration
let x,y be set, a,b be Nat;
cluster IFEQ(x,y,a,b) -> natural;
coherence
proof
per cases;
suppose
x = y;
hence thesis by FUNCOP_1:def 8;
end;
suppose
x <> y;
hence thesis by FUNCOP_1:def 8;
end;
end;
end;
:: 2010.03.16, A.T.
scheme LambdaRecEx{A() -> set,G(set,set) -> set}:
ex f being Function st dom f = omega & f.0 = A() &
for n being Nat holds f.succ n = G(n,f.n)
proof
deffunc D(set,set) = 0;
consider L being Sequence such that
A1: dom L = omega and
A2: 0 in omega implies L.0 = A() and
A3: for A being Ordinal st succ A in omega holds L.(succ A) = G(A,L.A) and
for A being Ordinal st A in omega & A <> 0 & A is limit_ordinal holds L.A
= D(A,L|A) from TSExist1;
take L;
thus dom L = omega by A1;
0 in omega by ORDINAL1:def 12;
hence L.0 = A() by A2;
let n be Nat;
succ n in omega by ORDINAL1:def 12;
hence thesis by A3;
end;
reserve n for Nat;
scheme RecUn{A() -> set, F, G() -> Function, P[set,set,set]}:
F() = G()
provided
A1: dom F() = omega and
A2: F().0 = A() and
A3: for n holds P[n,F().n,F().(succ n)] and
A4: dom G() = omega and
A5: G().0 = A() and
A6: for n holds P[n,G().n,G().(succ n)] and
A7: for n for x,y1,y2 being set st P[n,x,y1] & P[n,x,y2] holds y1 = y2
proof
defpred P[Nat] means F().$1 = G().$1;
A8: for n st P[n] holds P[succ n]
proof
let n;
assume F().n = G().n;
then
A9: P[n,F().n,G().(succ n)] by A6;
P[n,F().n,F().(succ n)] by A3;
hence thesis by A7,A9;
end;
A10: P[0] by A2,A5;
for n holds P[n] proof let n;
thus thesis from OmegaInd(A10,A8);
end;
then for x being object st x in omega holds F().x = G().x;
hence thesis by A1,A4,FUNCT_1:2;
end;
scheme LambdaRecUn{A() -> set, F(set,set) -> set, F, G() -> Function}:
F() = G()
provided
A1: dom F() = omega and
A2: F().0 = A() and
A3: for n holds F().(succ n) = F(n,F().n) and
A4: dom G() = omega and
A5: G().0 = A() and
A6: for n holds G().(succ n) = F(n,G().n)
proof
defpred P[Nat,set,set] means $3=F($1,$2);
A7: for n holds P[n,G().n,G().(succ n)] by A6;
A8: for n being Nat,x,y1,y2 being set st P[n,x,y1] & P[n,x,y2]
holds y1=y2;
A9: for n holds P[n,F().n,F().(succ n)] by A3;
thus F() = G() from RecUn(A1,A2,A9,A4,A5,A7,A8);
end;