:: K\"onig's Theorem
:: by Grzegorz Bancerek
::
:: Received April 10, 1990
:: Copyright (c) 1990-2018 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, CARD_1, SUBSET_1, FUNCT_1, RELAT_1, FUNCOP_1, XBOOLE_0,
ZFMISC_1, TARSKI, FUNCT_2, MCART_1, FINSET_1, NAT_1, WELLORD1, WELLORD2,
RELAT_2, SETFAM_1, PARTFUN1, FUNCT_4, CARD_3, PBOOLE, NAGATA_1;
notations TARSKI, XBOOLE_0, ZFMISC_1, XTUPLE_0, SUBSET_1, CARD_1, RELAT_1,
RELAT_2, FUNCT_1, RELSET_1, PARTFUN1, FUNCT_2, SETFAM_1, ORDINAL1,
WELLORD1, MCART_1, WELLORD2, FUNCOP_1, FUNCT_4, FINSET_1, FINSUB_1,
PBOOLE;
constructors SETFAM_1, RELAT_2, WELLORD1, PARTFUN1, WELLORD2, FUNCOP_1,
FUNCT_4, CLASSES1, ORDINAL2, ORDINAL3, FINSET_1, CARD_1, FINSUB_1,
RELSET_1, FUNCT_1, PBOOLE, XTUPLE_0;
registrations XBOOLE_0, SUBSET_1, RELAT_1, FUNCT_1, ORDINAL1, FUNCOP_1,
FUNCT_4, FINSET_1, CARD_1, PBOOLE, RELSET_1, XTUPLE_0;
requirements NUMERALS, BOOLE, SUBSET;
definitions TARSKI, FUNCT_1, RELAT_2, WELLORD1, WELLORD2, XBOOLE_0, RELAT_1,
ORDINAL1, PARTFUN1;
equalities XBOOLE_0, FUNCOP_1, RELAT_1, ORDINAL1;
expansions TARSKI, FUNCT_1, RELAT_2, WELLORD1, WELLORD2, XBOOLE_0, RELAT_1,
ORDINAL1, PARTFUN1;
theorems TARSKI, ZFMISC_1, FUNCT_1, FUNCT_2, MCART_1, ORDINAL1, RELAT_1,
WELLORD1, WELLORD2, CARD_1, FUNCOP_1, FUNCT_5, GRFUNC_1, XBOOLE_0,
XBOOLE_1, SETFAM_1, FUNCT_4, PARTFUN1, RELSET_1, SUBSET_1, FINSET_1,
XTUPLE_0;
schemes FUNCT_1, PARTFUN1, ORDINAL1, FUNCT_5, RELAT_1, XBOOLE_0, CLASSES1,
XFAMILY;
begin
reserve A,B,C for Ordinal,
K,L,M,N for Cardinal,
x,y,y1,y2,z,u for object,X,Y,Z,Z1,Z2 for set,
n for Nat,
f,f1,g,h for Function,
Q,R for Relation;
definition
let IT be Function;
attr IT is Cardinal-yielding means
:Def1: for x st x in dom IT holds IT.x is Cardinal;
end;
registration
cluster empty -> Cardinal-yielding for Function;
coherence;
end;
registration
cluster Cardinal-yielding for Function;
existence
proof
take {};
thus thesis;
end;
end;
definition
mode Cardinal-Function is Cardinal-yielding Function;
end;
reserve ff for Cardinal-Function;
registration
let ff,X;
cluster ff|X -> Cardinal-yielding;
coherence
proof
ff|X is Cardinal-yielding
proof
let x;
assume
A1: x in dom(ff|X);
then
A2: (ff|X).x = ff.x by FUNCT_1:47;
dom(ff|X) = dom ff /\ X by RELAT_1:61;
then x in dom ff by A1,XBOOLE_0:def 4;
hence thesis by A2,Def1;
end;
hence thesis;
end;
end;
registration
let X,K;
cluster X --> K -> Cardinal-yielding;
coherence
proof
let x;
assume x in dom(X --> K);
hence thesis by FUNCOP_1:7;
end;
end;
registration
let X be object; let K;
cluster X .--> K -> Cardinal-yielding;
coherence;
end;
scheme CFLambda { A()->set, F(object)->Cardinal } :
ex ff st dom ff = A() & for x being set st x in A() holds ff.x = F(x)
proof
consider f such that
A1: dom f = A() & for x being object st x in A()
holds f.x = F(x) from FUNCT_1:sch 3;
f is Cardinal-yielding
proof
let x;
assume x in dom f;
then f.x = F(x) by A1;
hence thesis;
end;
then reconsider f as Cardinal-Function;
take f;
thus thesis by A1;
end;
definition
let f;
func Card f -> Cardinal-Function means
:
Def2: dom it = dom f & for x st x in dom f holds it.x = card(f.x);
existence
proof
deffunc f(object) = card (f.$1);
consider g being Cardinal-Function such that
A1: dom g = dom f and
A2: for x being set st x in dom f holds g.x = f(x) from CFLambda;
take g;
thus dom g = dom f by A1;
let x be object such that
A3: x in dom f;
reconsider x as set by TARSKI:1;
g.x = f(x) by A3,A2;
hence thesis;
end;
uniqueness
proof
let a1,a2 be Cardinal-Function such that
A4: dom a1 = dom f and
A5: for x st x in dom f holds a1.x = card(f.x) and
A6: dom a2 = dom f and
A7: for x st x in dom f holds a2.x = card(f.x);
now
let x be object;
assume
A8: x in dom f;
then a1.x = card(f.x) by A5;
hence a1.x = a2.x by A7,A8;
end;
hence thesis by A4,A6;
end;
func disjoin f -> Function means
:
Def3: dom it = dom f &
for x being object st x in dom f holds it.x = [:f.x,{x}:];
existence
proof
deffunc f(object) = [:f.$1,{$1}:];
thus ex g being Function st
dom g = dom f &
for x being object st x in dom f holds g.x = f(x) from FUNCT_1:sch 3;
end;
uniqueness
proof
let a1,a2 be Function such that
A9: dom a1 = dom f and
A10: for x being object st x in dom f holds a1.x = [:f.x,{x}:] and
A11: dom a2 = dom f and
A12: for x being object st x in dom f holds a2.x = [:f.x,{x}:];
now
let x be object;
assume
A13: x in dom f;
then a1.x = [:f.x,{x}:] by A10;
hence a1.x = a2.x by A12,A13;
end;
hence thesis by A9,A11;
end;
func Union f -> set equals
union rng f;
correctness;
defpred P[object] means
ex g st $1 = g & dom g = dom f &
for x being object st x in dom f holds g.x in f.x;
func product f -> set means
:Def5: for x being object holds x in it iff ex g st x = g & dom g = dom f &
for y being object st y in dom f holds g.y in f.y;
existence
proof
consider X such that
A14: for x being object holds
x in X iff x in Funcs(dom f, union rng f) & P[x] from XBOOLE_0:sch 1;
take X;
let x be object;
thus x in X implies ex g st x = g & dom g = dom f &
for x being object st x in dom f holds g.x in f.x by A14;
given g such that
A15: x = g and
A16: dom g = dom f and
A17: for x being object st x in dom f holds g.x in f.x;
rng g c= union rng f
proof
let y be object;
assume y in rng g;
then consider z being object such that
A18: z in dom g and
A19: y = g.z by FUNCT_1:def 3;
A20: y in f.z by A16,A17,A18,A19;
f.z in rng f by A16,A18,FUNCT_1:def 3;
hence thesis by A20,TARSKI:def 4;
end;
then x in Funcs(dom f, union rng f) by A15,A16,FUNCT_2:def 2;
hence thesis by A14,A15,A16,A17;
end;
uniqueness
proof
let X1,X2 be set such that
A21: for x being object holds x in X1 iff P[x] and
A22: for x being object holds x in X2 iff P[x];
thus thesis from XBOOLE_0:sch 2(A21,A22);
end;
end;
theorem Th1:
Card ff = ff
proof
now
let x;
assume x in dom ff;
then reconsider M = ff.x as Cardinal by Def1;
card M = M;
hence ff.x = card (ff.x);
end;
hence thesis by Def2;
end;
theorem
Card (X --> Y) = X --> card Y
proof
A1: dom Card (X --> Y) = dom(X --> Y) by Def2;
then
A2: dom Card (X --> Y) = X by FUNCOP_1:13;
A3: dom (X --> card Y) = X by FUNCOP_1:13;
now
let x be object;
assume
A4: x in X;
then
A5: Card (X --> Y).x = card ((X --> Y).x) by A1,A2,Def2;
(X --> card Y).x = card Y by A4,FUNCOP_1:7;
hence Card (X --> Y).x = (X --> card Y).x by A4,A5,FUNCOP_1:7;
end;
hence thesis by A2,A3;
end;
theorem
disjoin {} = {}
by Def3,RELAT_1:38;
theorem Th4:
disjoin (x .--> X) = x .--> [:X,{x}:]
proof
A1: dom disjoin ({x} --> X) = dom ({x} --> X) by Def3;
A2: dom ({x} --> X) = {x} by FUNCOP_1:13;
A3: dom ({x} --> [:X,{x}:]) = {x} by FUNCOP_1:13;
now
let y be object;
assume
A4: y in {x};
then
A5: disjoin ({x} --> X).y = [:({x} --> X).y,{y}:] by A2,Def3;
A6: ({x} --> X).y = X by A4,FUNCOP_1:7;
({x} --> [:X,{x}:]).y = [:X,{x}:] by A4,FUNCOP_1:7;
hence disjoin ({x} --> X).y = ({x} --> [:X,{x}:]).y by A4,A5,A6,
TARSKI:def 1;
end;
hence thesis by A1,A2,A3;
end;
theorem
x in dom f & y in dom f & x <> y implies (disjoin f).x misses (disjoin f).y
proof
assume that
A1: x in dom f and
A2: y in dom f and
A3: x <> y;
set z = the Element of ((disjoin f).x) /\ ((disjoin f).y);
assume
A4: ((disjoin f).x) /\ ((disjoin f).y) <> {};
A5: (disjoin f).x = [:f.x,{x}:] by A1,Def3;
A6: (disjoin f).y = [:f.y,{y}:] by A2,Def3;
A7: z in (disjoin f).x by A4,XBOOLE_0:def 4;
A8: z in (disjoin f).y by A4,XBOOLE_0:def 4;
A9: z`2 in {x} by A5,A7,MCART_1:10;
A10: z`2 in {y} by A6,A8,MCART_1:10;
z`2 = x by A9,TARSKI:def 1;
hence contradiction by A3,A10,TARSKI:def 1;
end;
theorem Th6:
Union (X --> Y) c= Y
proof
let x be object;
assume x in Union (X --> Y);
then consider Z such that
A1: x in Z and
A2: Z in rng (X --> Y) by TARSKI:def 4;
ex z being object st z in dom (X --> Y) & Z = (X --> Y).z
by A2,FUNCT_1:def 3;
hence thesis by A1,FUNCOP_1:7;
end;
theorem Th7:
X <> {} implies Union (X --> Y) = Y
proof
assume
A1: X <> {};
set x = the Element of X;
thus Union (X --> Y) c= Y by Th6;
A2: dom (X --> Y) = X by FUNCOP_1:13;
(X --> Y).x = Y by A1,FUNCOP_1:7;
then Y in rng (X --> Y) by A1,A2,FUNCT_1:def 3;
hence thesis by ZFMISC_1:74;
end;
theorem
Union (x .--> Y) = Y by Th7;
theorem Th9:
g in product f iff dom g = dom f &
for x being object st x in dom f holds g.x in f.x
proof
thus g in product f implies
dom g = dom f & for x being object st x in dom f holds g.x in f.x
proof
assume g in product f;
then ex h being Function st
g = h & dom h = dom f &
for x being object st x in dom f holds h.x in f.x by Def5;
hence thesis;
end;
thus thesis by Def5;
end;
theorem Th10:
product {} = {{}}
proof
thus product {} c= {{}}
proof
let x be object;
assume x in product {};
then ex g st
x = g & dom g = dom {} &
for y being object st y in dom {} holds g.y in {} .y by Def5;
then x = {};
hence thesis by TARSKI:def 1;
end;
let x be object;
assume x in {{}};
then
A1: x = {} by TARSKI:def 1;
for y being object st y in dom {} holds {} .y in {} .y;
hence thesis by A1,Th9;
end;
theorem Th11:
Funcs(X,Y) = product (X --> Y)
proof
set f = (X --> Y);
A1: dom f = X by FUNCOP_1:13;
thus Funcs(X,Y) c= product f
proof
let x be object;
assume x in Funcs(X,Y);
then consider g such that
A2: x = g and
A3: dom g = X and
A4: rng g c= Y by FUNCT_2:def 2;
now
let y be object;
assume
A5: y in dom f;
then
A6: f.y = Y by FUNCOP_1:7;
g.y in rng g by A3,A5,FUNCT_1:def 3;
hence g.y in f.y by A4,A6;
end;
hence thesis by A1,A2,A3,Def5;
end;
let x be object;
assume x in product f;
then consider g such that
A7: x = g and
A8: dom g = dom f and
A9: for x being object st x in dom f holds g.x in f.x by Def5;
rng g c= Y
proof
let y be object;
assume y in rng g;
then consider z being object such that
A10: z in dom g and
A11: y = g.z by FUNCT_1:def 3;
y in f.z by A8,A9,A10,A11;
hence thesis by A8,A10,FUNCOP_1:7;
end;
hence thesis by A1,A7,A8,FUNCT_2:def 2;
end;
defpred P[object] means $1 is Function;
definition
let x be object; let X;
defpred R[object,object] means ex g st $1 = g & $2 = g.x;
func pi(X,x) -> set means
: Def6:
for y being object holds y in it iff ex f st f in X & y = f.x;
existence
proof
consider Y such that
A1: for y being object holds y in Y iff y in X & P[y] from XBOOLE_0:sch 1;
A2: for y being object st y in Y ex z being object st R[y,z]
proof
let y be object;
assume y in Y;
then reconsider y as Function by A1;
take y.x, y;
thus thesis;
end;
consider f such that
A3: dom f = Y &
for y being object st y in Y holds R[y,f.y] from CLASSES1:sch 1(A2);
take rng f;
let y be object;
thus y in rng f implies ex f st f in X & y = f.x
proof
assume y in rng f;
then consider z being object such that
A4: z in dom f and
A5: y = f.z by FUNCT_1:def 3;
consider g such that
A6: z = g and
A7: f.z = g.x by A3,A4;
take g;
thus thesis by A1,A3,A4,A5,A6,A7;
end;
given g such that
A8: g in X and
A9: y = g.x;
A10: g in Y by A1,A8;
then ex f1 st g = f1 & f.g = f1.x by A3;
hence thesis by A3,A9,A10,FUNCT_1:def 3;
end;
uniqueness
proof
defpred Z[object] means ex f st f in X & $1 = f.x;
let X1,X2 be set such that
A11: for y being object holds y in X1 iff Z[y] and
A12: for y being object holds y in X2 iff Z[y];
thus thesis from XBOOLE_0:sch 2(A11,A12);
end;
end;
theorem
x in dom f & product f <> {} implies pi(product f,x) = f.x
proof
assume that
A1: x in dom f and
A2: product f <> {};
A3: pi(product f,x) c= f.x
proof
let y be object;
assume y in pi(product f,x);
then ex g st g in product f & y = g.x by Def6;
hence thesis by A1,Th9;
end;
f.x c= pi(product f,x)
proof set z = the Element of product f;
consider g such that
z = g and
A4: dom g = dom f and
A5: for x being object st x in dom f holds g.x in f.x by A2,Def5;
let y be object;
reconsider yy=y as set by TARSKI:1;
deffunc f(object) = yy;
deffunc g(object) = g.$1;
defpred C[object] means x = $1;
consider h being Function such that
A6: dom h = dom g & for z being object st z in dom g holds
(C[z] implies h.z = f(z)) & (not C[z] implies h.z = g(z)) from
PARTFUN1:sch 1;
assume
A7: y in f.x;
now
let z be object;
assume
A8: z in dom f;
then x <> z implies g.z = h.z by A4,A6;
hence h.z in f.z by A4,A5,A6,A7,A8;
end;
then
A9: h in product f by A4,A6,Th9;
h.x = y by A1,A4,A6;
hence thesis by A9,Def6;
end;
hence thesis by A3;
end;
theorem
pi({},x) = {}
proof
set y = the Element of pi({},x);
assume not thesis;
then ex f st f in {} & y = f.x by Def6;
hence contradiction;
end;
theorem
pi({g},x) = {g.x}
proof
thus pi({g},x) c= {g.x}
proof
let y be object;
assume y in pi({g},x);
then consider f such that
A1: f in {g} and
A2: y = f.x by Def6;
f = g by A1,TARSKI:def 1;
hence thesis by A2,TARSKI:def 1;
end;
let y be object;
assume
A3: y in {g.x};
A4: g in {g} by TARSKI:def 1;
y = g.x by A3,TARSKI:def 1;
hence thesis by A4,Def6;
end;
theorem
pi({f,g},x) = {f.x,g.x}
proof
thus pi({f,g},x) c= {f.x,g.x}
proof
let y be object;
assume y in pi({f,g},x);
then consider f1 such that
A1: f1 in {f,g} and
A2: y = f1.x by Def6;
f1 = f or f1 = g by A1,TARSKI:def 2;
hence thesis by A2,TARSKI:def 2;
end;
let y be object;
assume
A3: y in {f.x,g.x};
A4: f in {f,g} by TARSKI:def 2;
A5: g in {f,g} by TARSKI:def 2;
y = g.x or y = f.x by A3,TARSKI:def 2;
hence thesis by A4,A5,Def6;
end;
theorem Th16:
pi(X \/ Y,x) = pi(X,x) \/ pi(Y,x)
proof
thus pi(X \/ Y,x) c= pi(X,x) \/ pi(Y,x)
proof
let y be object;
assume y in pi(X \/ Y,x);
then consider f such that
A1: f in X \/ Y and
A2: y = f.x by Def6;
f in X or f in Y by A1,XBOOLE_0:def 3;
then y in pi(X,x) or y in pi(Y,x) by A2,Def6;
hence thesis by XBOOLE_0:def 3;
end;
let y be object;
assume y in pi(X,x) \/ pi(Y,x);
then
A3: y in pi(X,x) or y in pi(Y,x) by XBOOLE_0:def 3;
A4: now
assume y in pi(X,x);
then consider f such that
A5: f in X and
A6: y = f.x by Def6;
f in X \/ Y by A5,XBOOLE_0:def 3;
hence thesis by A6,Def6;
end;
now
assume not y in pi(X,x);
then consider f such that
A7: f in Y and
A8: y = f.x by A3,Def6;
f in X \/ Y by A7,XBOOLE_0:def 3;
hence thesis by A8,Def6;
end;
hence thesis by A4;
end;
theorem
pi(X /\ Y,x) c= pi(X,x) /\ pi(Y,x)
proof
let y be object;
assume y in pi(X /\ Y,x);
then consider f such that
A1: f in X /\ Y and
A2: y = f.x by Def6;
A3: f in X by A1,XBOOLE_0:def 4;
A4: f in Y by A1,XBOOLE_0:def 4;
A5: y in pi(X,x) by A2,A3,Def6;
y in pi(Y,x) by A2,A4,Def6;
hence thesis by A5,XBOOLE_0:def 4;
end;
theorem Th18:
pi(X,x) \ pi(Y,x) c= pi(X \ Y,x)
proof
let y be object;
assume
A1: y in pi(X,x) \ pi(Y,x);
then consider f such that
A2: f in X and
A3: y = f.x by Def6;
not y in pi(Y,x) by A1,XBOOLE_0:def 5;
then not f in Y by A3,Def6;
then f in X \ Y by A2,XBOOLE_0:def 5;
hence thesis by A3,Def6;
end;
theorem
pi(X,x) \+\ pi(Y,x) c= pi(X \+\ Y,x)
proof
A1: pi(X,x) \ pi(Y,x) c= pi(X\Y,x) by Th18;
A2: pi(Y,x) \ pi(X,x) c= pi(Y\X,x) by Th18;
pi(X\Y,x) \/ pi(Y\X,x) = pi((X\Y) \/ (Y\X),x) by Th16;
hence thesis by A1,A2,XBOOLE_1:13;
end;
theorem Th20:
card pi(X,x) c= card X
proof
consider Y such that
A1: for y being object holds y in Y iff y in X & P[y] from XBOOLE_0:sch 1;
defpred R[object,object] means ex g st $1 = g & $2 = g.x;
A2: for y being object st y in Y ex z being object st R[y,z]
proof
let y be object;
assume y in Y;
then reconsider y as Function by A1;
take y.x, y;
thus thesis;
end;
consider f such that
A3: dom f = Y &
for y being object st y in Y holds R[y,f.y] from CLASSES1:sch 1(A2);
now
let y be object;
thus y in rng f implies ex f st f in X & y = f.x
proof
assume y in rng f;
then consider z being object such that
A4: z in dom f and
A5: y = f.z by FUNCT_1:def 3;
consider g such that
A6: z = g and
A7: f.z = g.x by A3,A4;
take g;
thus thesis by A1,A3,A4,A5,A6,A7;
end;
given g such that
A8: g in X and
A9: y = g.x;
A10: g in Y by A1,A8;
then ex f1 st g = f1 & f.g = f1.x by A3;
hence y in rng f by A3,A9,A10,FUNCT_1:def 3;
end;
then rng f = pi(X,x) by Def6;
then
A11: card pi(X,x) c= card Y by A3,CARD_1:12;
Y c= X
by A1;
then card Y c= card X by CARD_1:11;
hence thesis by A11;
end;
theorem Th21:
x in Union disjoin f implies ex y,z being object st x = [y,z]
proof
assume x in Union disjoin f;
then consider X such that
A1: x in X and
A2: X in rng disjoin f by TARSKI:def 4;
consider y being object such that
A3: y in dom disjoin f and
A4: X = (disjoin f).y by A2,FUNCT_1:def 3;
y in dom f by A3,Def3;
then X = [:f.y,{y}:] by A4,Def3;
hence thesis by A1,RELAT_1:def 1;
end;
theorem Th22:
x in Union disjoin f iff x`2 in dom f & x`1 in f.(x`2) & x = [x`1,x`2]
proof
thus x in Union disjoin f implies
x`2 in dom f & x`1 in f.(x`2) & x = [x`1,x`2]
proof
assume x in Union disjoin f;
then consider X such that
A1: x in X and
A2: X in rng disjoin f by TARSKI:def 4;
consider y being object such that
A3: y in dom disjoin f and
A4: X = (disjoin f).y by A2,FUNCT_1:def 3;
A5: y in dom f by A3,Def3;
then
A6: X = [:f.y,{y}:] by A4,Def3;
then
A7: x`1 in f.y by A1,MCART_1:10;
x`2 in {y} by A1,A6,MCART_1:10;
hence thesis by A1,A5,A6,A7,MCART_1:21,TARSKI:def 1;
end;
assume that
A8: x`2 in dom f and
A9: x`1 in f.(x`2) and
A10: x = [x`1,x`2];
A11: (disjoin f).(x`2) = [:f.(x`2),{x`2}:] by A8,Def3;
A12: dom f = dom disjoin f by Def3;
x`2 in {x`2} by TARSKI:def 1;
then
A13: x in [:f.(x`2),{x`2}:] by A9,A10,ZFMISC_1:87;
[:f.(x`2),{x`2}:] in rng disjoin f by A8,A11,A12,FUNCT_1:def 3;
hence thesis by A13,TARSKI:def 4;
end;
theorem Th23:
f c= g implies disjoin f c= disjoin g
proof
assume
A1: f c= g;
then
A2: dom f c= dom g by GRFUNC_1:2;
A3: dom disjoin f = dom f by Def3;
A4: dom disjoin g = dom g by Def3;
now
let x be object;
assume
A5: x in dom disjoin f;
then
A6: (disjoin f).x = [:f.x,{x}:] by A3,Def3;
f.x = g.x by A1,A3,A5,GRFUNC_1:2;
hence (disjoin f).x = (disjoin g).x by A2,A3,A5,A6,Def3;
end;
hence thesis by A2,A3,A4,GRFUNC_1:2;
end;
theorem Th24:
f c= g implies Union f c= Union g
proof
assume
A1: f c= g;
then
A2: dom f c= dom g by GRFUNC_1:2;
let x be object;
assume x in Union f;
then consider X such that
A3: x in X and
A4: X in rng f by TARSKI:def 4;
consider y being object such that
A5: y in dom f and
A6: X = f.y by A4,FUNCT_1:def 3;
f.y = g.y by A1,A5,GRFUNC_1:2;
then X in rng g by A2,A5,A6,FUNCT_1:def 3;
hence thesis by A3,TARSKI:def 4;
end;
theorem
Union disjoin (Y --> X) = [:X,Y:]
proof
set f = Y --> X;
A1: dom f = Y by FUNCOP_1:13;
thus Union disjoin f c= [:X,Y:]
proof
let x be object;
assume x in Union disjoin f;
then consider Z such that
A2: x in Z and
A3: Z in rng disjoin f by TARSKI:def 4;
consider y being object such that
A4: y in dom disjoin f and
A5: Z = (disjoin f).y by A3,FUNCT_1:def 3;
A6: y in Y by A1,A4,Def3;
then
A7: Z = [:f.y,{y}:] by A1,A5,Def3;
A8: f.y = X by A6,FUNCOP_1:7;
{y} c= Y by A6,ZFMISC_1:31;
then Z c= [:X,Y:] by A7,A8,ZFMISC_1:95;
hence thesis by A2;
end;
let x1,x2 be object;
assume
A9: [x1,x2] in [:X,Y:];
then
A10: x1 in X by ZFMISC_1:87;
A11: x2 in Y by A9,ZFMISC_1:87;
then
A12: f.x2 = X by FUNCOP_1:7;
A13: (disjoin f).(x2) = [:f.x2,{x2}:] by A1,A11,Def3;
A14: x2 in dom disjoin f by A1,A11,Def3;
x2 in {x2} by TARSKI:def 1;
then
A15: [x1,x2] in [:f.x2,{x2}:] by A10,A12,ZFMISC_1:87;
[:f.x2,{x2}:] in rng disjoin f by A13,A14,FUNCT_1:def 3;
hence thesis by A15,TARSKI:def 4;
end;
theorem Th26:
product f = {} iff {} in rng f
proof
thus product f = {} implies {} in rng f
proof
assume that
A1: product f = {} and
A2: not {} in rng f;
A3: now
assume dom f = {};
then for x being object st x in dom f holds f.x in f.x;
hence thesis by A1,Def5;
end;
now
assume dom f <> {};
then reconsider M = rng f as non empty set by RELAT_1:42;
X in M implies X <> {} by A2;
then consider f1 such that
dom f1 = M and
A4: for X st X in M holds f1.X in X by FUNCT_1:111;
deffunc g(object) = f1.(f.$1);
consider g such that
A5: dom
g = dom f &
for x being object st x in dom f holds g.x = g(x) from FUNCT_1:sch 3;
now
let x be object;
assume
A6: x in dom f;
then
A7: f.x in M by FUNCT_1:def 3;
g.x = f1.(f.x) by A5,A6;
hence g.x in f.x by A4,A7;
end;
hence thesis by A1,A5,Def5;
end;
hence thesis by A3;
end;
assume {} in rng f;
then
A8: ex x being object st x in dom f & {} = f.x by FUNCT_1:def 3;
assume
A9: product f <> {};
set y = the Element of product f;
ex g st ( y = g)&( dom g = dom f)&( for x being object st x in dom f
holds g.x in f.x) by A9,Def5;
hence contradiction by A8;
end;
theorem Th27:
dom f = dom g & (for x st x in dom f holds f.x c= g.x) implies
product f c= product g
proof
assume that
A1: dom f = dom g and
A2: for x st x in dom f holds f.x c= g.x;
let x be object;
assume x in product f;
then consider f1 such that
A3: x = f1 and
A4: dom f1 = dom f and
A5: for x being object st x in dom f holds f1.x in f.x by Def5;
now
let x be object;
assume
A6: x in dom g;
then
A7: f1.x in f.x by A1,A5;
f.x c= g.x by A1,A2,A6;
hence f1.x in g.x by A7;
end;
hence thesis by A1,A3,A4,Def5;
end;
reserve F,G for Cardinal-Function;
theorem
for x st x in dom F holds card (F.x) = F.x
proof
let x;
assume x in dom F;
then reconsider M = F.x as Cardinal by Def1;
card M = M;
hence thesis;
end;
theorem Th29:
for x st x in dom F holds card ((disjoin F).x) = F.x
proof
let x;
assume
A1: x in dom F;
then reconsider M = F.x as Cardinal by Def1;
M,[:M,{x}:] are_equipotent by CARD_1:69;
then M = card [:M,{x}:] by CARD_1:def 2;
hence thesis by A1,Def3;
end;
definition
let F;
func Sum F -> Cardinal equals
card Union disjoin F;
correctness;
func Product F -> Cardinal equals
card product F;
correctness;
end;
theorem
dom F = dom G & (for x st x in dom F holds F.x c= G.x) implies Sum F c= Sum
G
proof
assume that
A1: dom F = dom G and
A2: for x st x in dom F holds F.x c= G.x;
Union disjoin F c= Union disjoin G
proof
let x be object;
assume x in Union disjoin F;
then consider X such that
A3: x in X and
A4: X in rng disjoin F by TARSKI:def 4;
consider y being object such that
A5: y in dom disjoin F and
A6: X = (disjoin F).y by A4,FUNCT_1:def 3;
A7: y in dom F by A5,Def3;
then
A8: F.y c= G.y by A2;
A9: X = [:F.y,{y}:] by A6,A7,Def3;
A10: (disjoin G).y = [:G.y,{y}:] by A1,A7,Def3;
A11: y in dom disjoin G by A1,A7,Def3;
A12: X c= [:G.y,{y}:] by A8,A9,ZFMISC_1:95;
[:G.y,{y}:] in rng disjoin G by A10,A11,FUNCT_1:def 3;
hence thesis by A3,A12,TARSKI:def 4;
end;
hence thesis by CARD_1:11;
end;
theorem
{} in rng F iff Product F = 0
proof
thus {} in rng F implies Product F = 0 by Th26,CARD_1:27;
assume Product F = 0;
then product F = {};
hence thesis by Th26;
end;
theorem
dom F = dom G & (for x st x in dom F holds F.x c= G.x) implies
Product F c= Product G by Th27,CARD_1:11;
theorem
F c= G implies Sum F c= Sum G
proof
assume F c= G;
then disjoin F c= disjoin G by Th23;
hence thesis by Th24,CARD_1:11;
end;
theorem
F c= G & not 0 in rng G implies Product F c= Product G
proof
assume
A1: F c= G;
then
A2: dom F c= dom G by GRFUNC_1:2;
assume
A3: not 0 in rng G;
deffunc f(Function) = $1|dom F;
consider f such that
A4: dom f = product G & for g st g in product G holds f.g = f(g)
from FUNCT_5:sch 1;
product F c= rng f
proof
let x be object;
assume x in product F;
then consider g such that
A5: x = g and
A6: dom g = dom F and
A7: for x being object st x in dom F holds g.x in F.x by Def5;
A8: product G <> {} by A3,Th26;
set y = the Element of product G;
consider h such that
y = h
and dom h = dom G and
A9: for x being object st x in dom G holds h.x in G.x by A8,Def5;
deffunc f(object) = g.$1;
deffunc g(object) = h.$1;
defpred C[object] means $1 in dom F;
consider f1 such that
A10: dom f1 = dom G & for x being object st x in dom G holds
(C[x] implies f1.x = f(x)) & (not C[x] implies f1.x = g(x))
from PARTFUN1:sch 1;
now
let z be object such that
A11: z in dom G;
A12: now
assume
A13: z in dom F;
then
A14: f1.z = g.z by A10,A11;
g.z in F.z by A7,A13;
hence f1.z in G.z by A1,A13,A14,GRFUNC_1:2;
end;
not z in dom F implies f1.z = h.z by A10,A11;
hence f1.z in G.z by A9,A11,A12;
end;
then
A15: f1 in product G by A10,Def5;
then
A16: f.f1 = f1|dom F by A4;
A17: dom(f1|dom F) = dom F by A2,A10,RELAT_1:62;
now
let z be object;
assume
A18: z in dom F;
then (f1|dom F).z = f1.z by A17,FUNCT_1:47;
hence (f1|dom F).z = g.z by A2,A10,A18;
end;
then f.f1 = g by A6,A16,A17,FUNCT_1:2;
hence thesis by A4,A5,A15,FUNCT_1:def 3;
end;
hence thesis by A4,CARD_1:12;
end;
theorem
Sum({} --> K) = 0
proof dom ({} --> K) = {};
then dom disjoin ({} --> K) = {} by Def3;
hence thesis by CARD_1:27,RELAT_1:42,ZFMISC_1:2;
end;
theorem
Product ({} --> K) = 1 by Th10,CARD_1:30;
theorem
Sum(x .--> K) = K
proof
thus Sum(x .--> K) = card Union (x .--> [:K,{x}:]) by Th4
.= card [:K,{x}:] by Th7
.= card K by CARD_1:69
.= K;
end;
theorem
Product(x .--> K) = K
proof
thus Product(x .--> K) = card Funcs({x},K) by Th11
.= card K by FUNCT_5:58
.= K;
end;
theorem Th39:
card Union f c= Sum Card f
proof
A1: now
assume dom f = {};
then {} = Union f by RELAT_1:42,ZFMISC_1:2;
hence thesis;
end;
now
assume
A2: dom f <> {};
defpred P[set,object] means
ex A being set st A = $2 &
for x being object holds
x in A iff x in Funcs(card $1,$1) & ex g st x = g & rng g = $1;
defpred W[object,object] means P[f.$1,$2];
A3: for x being object st x in dom f ex y being object st W[x,y]
proof
let x be object such that x in dom f;
defpred A[object] means ex g st $1 = g & rng g = f.x;
consider Y such that
A4: for z being object holds z in Y iff z in Funcs(card (f.x),f.x) & A[z]
from XBOOLE_0:sch 1;
take Y;
P[f.x,Y] by A4;
hence W[x,Y];
end;
consider k being Function such that
A5: dom k = dom f &
for x being object st x in dom f holds W[x,k.x] from CLASSES1:sch 1
(A3);
reconsider M = rng k as non empty set by A2,A5,RELAT_1:42;
now
let X;
assume X in M;
then consider x being object such that
A6: x in dom k and
A7: X = k.x by FUNCT_1:def 3;
card(f.x),f.x are_equipotent by CARD_1:def 2;
then consider g such that
g is one-to-one and
A8: dom g = card(f.x) and
A9: rng g = f.x;
A10: g in Funcs(card(f.x),f.x) by A8,A9,FUNCT_2:def 2;
W[x,k.x] by A5,A6;
hence X <> {} by A7,A9,A10;
end;
then consider FF being Function such that
dom FF = M and
A11: for X st X in M holds FF.X in X by FUNCT_1:111;
set DD = union rng disjoin Card f;
defpred S[object,object] means
ex g st g = FF.(k.$1`2) & $2 = g.$1`1;
A12: for x being object st x in DD ex y being object st S[x,y]
proof
let x be object;
assume x in DD;
then consider X such that
A13: x in X and
A14: X in rng disjoin Card f by TARSKI:def 4;
consider y being object such that
A15: y in dom disjoin Card f and
A16: X = (disjoin Card f).y by A14,FUNCT_1:def 3;
A17: dom disjoin Card f = dom Card f by Def3;
A18: dom Card f = dom f by Def2;
X = [:(Card f).y,{y}:] by A15,A16,A17,Def3;
then x`2 in {y} by A13,MCART_1:10;
then
A19: x`2 in dom f by A15,A17,A18,TARSKI:def 1;
then k.x`2 in M by A5,FUNCT_1:def 3;
then
A20: FF.(k.x`2) in k.x`2 by A11;
W[x`2,k.x`2] by A5,A19;
then FF.(k.x`2) in Funcs(card (f.x`2),f.x`2) by A20;
then consider g such that
A21: FF.(k.x`2) = g
and dom g = card (f.x`2)
and rng g c= f.x`2 by FUNCT_2:def 2;
take g.x`1, g;
thus thesis by A21;
end;
consider t being Function such that
A22: dom t = DD &
for x being object st x in DD holds S[x,t.x] from CLASSES1:sch 1
(A12);
union rng f c= rng t
proof
let x be object;
assume x in union rng f;
then consider X such that
A23: x in X and
A24: X in rng f by TARSKI:def 4;
consider y being object such that
A25: y in dom f and
A26: X = f.y by A24,FUNCT_1:def 3;
k.y in M by A5,A25,FUNCT_1:def 3;
then
A27: FF.(k.y) in k.y by A11;
A28: W[y,k.y] by A5,A25;
then FF.(k.y) in Funcs(card(f.y),f.y) by A27;
then consider g such that
A29: FF.(k.y) = g and
A30: dom g = card(f.y)
and rng g c= f.y by FUNCT_2:def 2;
ex g st FF.(k.y) = g & rng g = f.y by A27,A28;
then consider z being object such that
A31: z in dom g and
A32: x = g.z by A23,A26,A29,FUNCT_1:def 3;
A33: (Card f).y = card(f.y) by A25,Def2;
A34: dom Card f = dom f by Def2;
then
A35: (disjoin Card f).y = [:dom g,{y}:] by A25,A30,A33,Def3;
A36: y in {y} by TARSKI:def 1;
A37: dom disjoin Card f = dom f by A34,Def3;
A38: [z,y] in [:dom g,{y}:] by A31,A36,ZFMISC_1:87;
[:dom g,{y}:] in rng disjoin Card f by A25,A35,A37,FUNCT_1:def 3;
then
A39: [z,y] in DD by A38,TARSKI:def 4;
A40: [z,y]`1 = z;
[z,y]`2 = y;
then ex g st g = FF.(k.y) & t.[z,y] = g.z by A22,A39,A40;
hence thesis by A22,A29,A32,A39,FUNCT_1:def 3;
end;
hence thesis by A22,CARD_1:12;
end;
hence thesis by A1;
end;
theorem
card Union F c= Sum F
proof Card F = F by Th1;
hence thesis by Th39;
end;
::$N Koenig Theorem
theorem
dom F = dom G & (for x st x in dom F holds F.x in G.x) implies
Sum F in Product G
proof
assume that
A1: dom F = dom G and
A2: for x st x in dom F holds F.x in G.x;
deffunc f(object) = (G.$1)\(F.$1);
consider f such that
A3: dom f = dom F & for x being object st x in dom F holds f.x = f(x)
from FUNCT_1:sch 3;
now
assume {} in rng f;
then consider x being object such that
A4: x in dom f and
A5: {} = f.x by FUNCT_1:def 3;
reconsider Fx = F.x, Gx = G.x as Cardinal by A1,A3,A4,Def1;
A6: Fx in Gx by A2,A3,A4;
not Fx in Fx;
then Fx in Gx \ Fx by A6,XBOOLE_0:def 5;
hence contradiction by A3,A4,A5;
end;
then
A7: product f <> {} by Th26;
set a = the Element of product f;
consider h being Function such that
a = h
and dom h = dom f and
A8: for x being object st x in dom f holds h.x in f.x by A7,Def5;
defpred P[object,Function] means dom $2 = dom F & for x st x in dom F holds
($1`2 = x implies $2.x = $1`1) & ($1`2 <> x implies $2.x = h.x);
defpred R[object,object] means ex g st $2 = g & P[$1,g];
A9: for x being object st x in Union disjoin F ex y being object st R[x,y]
proof
let x be object such that x in Union disjoin F;
deffunc f(object) = x`1;
deffunc g(object) = h.$1;
defpred C[object] means $1 = x`2;
consider g such that
A10: dom g = dom F & for u being object st u in dom F holds
(C[u] implies g.u = f(u)) & (not C[u] implies g.u = g(u))
from PARTFUN1:sch 1;
reconsider y = g as object;
take y,g;
thus thesis by A10;
end;
consider f1 such that
A11: dom f1 = Union disjoin F &
for x being object st x in Union disjoin F holds R[x,f1.x]
from CLASSES1:sch 1(A9);
A12: f1 is one-to-one
proof
let x,y be object;
assume that
A13: x in dom f1 and
A14: y in dom f1 and
A15: f1.x = f1.y and
A16: x <> y;
consider g1 being Function such that
A17: f1.x = g1 and
A18: P[x,g1] by A11,A13;
consider g2 being Function such that
A19: f1.y = g2 and
A20: P[y,g2] by A11,A14;
A21: x`2 in dom F by A11,A13,Th22;
A22: y`2 in dom F by A11,A14,Th22;
A23: y`1 in F.(y`2) by A11,A14,Th22;
A24: ex x1,x2 being object st x = [x1,x2] by A11,A13,Th21;
A25: ex x1,x2 being object st y = [x1,x2] by A11,A14,Th21;
A26: x = [x`1,x`2] by A24;
A27: y = [y`1,y`2] by A25;
A28: now
assume
A29: x`1 = y`1;
A30: g2.(y`2) = y`1 by A20,A22;
A31: g1.(y`2) = h.(y`2) by A16,A18,A22,A26,A27,A29;
A32: f.(y`2) = (G.(y`2))\(F.(y`2)) by A3,A22;
h.(y`2) in f.(y`2) by A3,A8,A22;
hence contradiction by A15,A17,A19,A23,A30,A31,A32,XBOOLE_0:def 5;
end;
A33: x`2 = y`2 implies g1.(x`2) = x`1 & g2.(x`2) = y`1 by A18,A20,A21;
A34: g1.(y`2) = y`1 by A15,A17,A19,A20,A22;
A35: g1.(y`2) = h.(y`2) by A15,A17,A18,A19,A22,A28,A33;
A36: f.(y`2) = (G.(y`2))\(F.(y`2) ) by A3,A22;
h.(y`2) in f.(y`2) by A3,A8,A22;
hence contradiction by A23,A34,A35,A36,XBOOLE_0:def 5;
end;
rng f1 c= product G
proof
let x be object;
assume x in rng f1;
then consider y being object such that
A37: y in dom f1 and
A38: x = f1.y by FUNCT_1:def 3;
consider g such that
A39: f1.y = g and
A40: P[y,g] by A11,A37;
now
let x be object;
assume
A41: x in dom G;
then reconsider Gx = G.x, Fx = F.x as Cardinal by A1,Def1;
A42: Fx in Gx by A1,A2,A41;
A43: y`2 = x implies g.x = y`1 by A1,A40,A41;
A44: y`2 <> x implies g.x = h.x by A1,A40,A41;
A45: h.x in f.x by A1,A3,A8,A41;
A46: f.x = Gx \ Fx by A1,A3,A41;
A47: y`1 in F.(y`2) by A11,A37,Th22;
Fx c= Gx by A42,CARD_1:3;
hence g.x in G.x by A43,A44,A45,A46,A47;
end;
hence thesis by A1,A38,A39,A40,Def5;
end;
then
A48: Sum F c= Product G by A11,A12,CARD_1:10;
now
assume Sum F = Product G;
then Union disjoin F,product G are_equipotent by CARD_1:5;
then consider f such that
f is one-to-one and
A49: dom f = Union disjoin F and
A50: rng f = product G;
deffunc f(object) = G.$1 \ pi(f.:((disjoin F).$1),$1);
consider K being Function such that
A51: dom K = dom F & for x being object st x in dom F holds K.x = f(x)
from FUNCT_1:sch 3;
now
assume {} in rng K;
then consider x being object such that
A52: x in dom F and
A53: {} = K.x by A51,FUNCT_1:def 3;
reconsider x as set by TARSKI:1;
A54: K.x = G.x \ pi(f.:((disjoin F).x),x) by A51,A52;
reconsider Fx = F.x, Gx = G.x as Cardinal by A1,A52,Def1;
A55: card pi(f.:((disjoin F).x),x) c= card (f.:((disjoin F).x)) by Th20;
A56: card (f.:((disjoin F).x)) c= card ((disjoin F).x) by CARD_1:67;
card ((disjoin F).x) = Fx by A52,Th29;
then
A57: card pi(f.:((disjoin F).x),x) c= Fx by A55,A56;
A58: Fx in Gx by A2,A52;
card Gx = Gx;
hence contradiction by A53,A54,A57,A58,CARD_1:68,ORDINAL1:12;
end;
then
A59: product K <> {} by Th26;
set t = the Element of product K;
consider g such that
A60: t = g
and dom g = dom K and
A61: for x being object st x in dom K holds g.x in K.x by A59,Def5;
now
let x;
assume x in dom K;
then K.x = G.x \ pi(f.:((disjoin F).x),x) by A51;
hence K.x c= G.x;
end;
then product K c= product G by A1,A51,Th27;
then t in product G by A59;
then consider y being object such that
A62: y in dom f and
A63: t = f.y by A50,FUNCT_1:def 3;
consider X such that
A64: y in X and
A65: X in rng disjoin F by A49,A62,TARSKI:def 4;
consider x being object such that
A66: x in dom disjoin F and
A67: X = (disjoin F).x by A65,FUNCT_1:def 3;
reconsider x as set by TARSKI:1;
g in f.:X by A60,A62,A63,A64,FUNCT_1:def 6;
then
A68: g.x in pi(f.:((disjoin F).x),x) by A67,Def6;
A69: x in dom F by A66,Def3;
A70: not g.x in G.x \ pi(f.:((disjoin F).x),x) by A68,XBOOLE_0:def 5;
g.x in (K.x) by A51,A61,A69;
hence contradiction by A51,A69,A70;
end;
hence thesis by A48,CARD_1:3;
end;
scheme FuncSeparation { X()->set, F(object)->set, P[object,object] }:
ex f st dom f = X() &
for x being object st x in X()
for y being object holds y in f.x iff y in F(x) & P[x,y]
proof
defpred Q[object,object] means
ex A being set st A = $2 &
for y holds y in A iff y in F($1) & P[$1,y];
A1: for x being object st x in X() ex y being object st Q[x,y]
proof
let x be object such that x in X();
defpred R[object] means P[x,$1];
consider Y such that
A2: for y being object holds y in Y iff y in F(x) & R[y] from XBOOLE_0:sch 1;
take Y;
reconsider A = Y as set;
take A;
thus A = Y &
for y holds y in A iff y in F(x) & P[x,y] by A2;
end;
consider f such that
A3: dom f = X() and
A4: for x being object st x in X() holds Q[x,f.x] from CLASSES1:sch 1(A1);
take f;
thus dom f = X() by A3;
let x be object;
assume x in X();
then consider A being set such that
A5: A = f.x and
A6: for y holds y in A iff y in F(x) & P[x,y] by A4;
thus thesis by A5,A6;
end;
Lm1: x in field R implies ex y being object st [x,y] in R or [y,x] in R
proof
assume x in field R;
then x in dom R or x in rng R by XBOOLE_0:def 3;
hence thesis by XTUPLE_0:def 12,def 13;
end;
theorem Th42:
X is finite implies card X in card omega
proof
assume X is finite;
then ex n being Nat st ( card X = card n) by CARD_1:48;
hence thesis;
end;
theorem Th43:
card A in card B implies A in B
proof
assume that
A1: card A in card B and
A2: not A in B;
not card B c= card A by A1,CARD_1:4;
hence contradiction by A2,CARD_1:11,ORDINAL1:16;
end;
theorem Th44:
card A in M implies A in M
proof
card M = M;
hence thesis by Th43;
end;
theorem Th45:
X is c=-linear implies
ex Y st Y c= X & union Y = union X & for Z st Z c= Y & Z <> {}
ex Z1 st Z1 in Z & for Z2 st Z2 in Z holds Z1 c= Z2
proof
assume
A1: X is c=-linear;
consider R such that
A2: R well_orders X by WELLORD2:17;
A3: R|_2 X is well-ordering by A2,WELLORD2:16;
A4: field(R|_2 X) = X by A2,WELLORD2:16;
R|_2 X, RelIncl order_type_of R|_2 X are_isomorphic by A3,WELLORD2:def 2;
then RelIncl order_type_of R|_2 X, R|_2 X are_isomorphic by WELLORD1:40;
then consider f such that
A5: f is_isomorphism_of RelIncl order_type_of R|_2 X, R|_2 X;
field RelIncl order_type_of R|_2 X = order_type_of R|_2 X by WELLORD2:def 1;
then
A6: dom f = order_type_of R|_2 X by A5;
A7: rng f = X by A4,A5;
defpred P[object] means for A,B st B in A & $1 = A holds f.B c= f.A;
consider Y such that
A8: for x being set holds x in Y iff x in dom f & P[x] from XFAMILY:sch 1;
take Z = f.:Y;
thus Z c= X by A7,RELAT_1:111;
thus union Z c= union X by A7,RELAT_1:111,ZFMISC_1:77;
thus union X c= union Z
proof
let x be object;
assume x in union X;
then consider Z1 such that
A9: x in Z1 and
A10: Z1 in X by TARSKI:def 4;
consider y being object such that
A11: y in dom f and
A12: Z1 = f.y by A7,A10,FUNCT_1:def 3;
reconsider y as Ordinal by A6,A11;
defpred P[Ordinal] means $1 c= y & x in f.$1;
A13: ex A st P[A] by A9,A12;
consider A such that
A14: P[A] & for B st P[B] holds A c= B from ORDINAL1:sch 1(A13);
A15: A in dom f by A6,A11,A14,ORDINAL1:12;
now
let B,C;
assume that
A16: C in B and
A17: A = B;
A18: C in dom f by A6,A11,A14,A16,A17,ORDINAL1:10;
A19: not C c= y or not x in f.C by A14,A16,A17,ORDINAL1:5;
A20: f.A in X by A7,A15,FUNCT_1:def 3;
f.C in X by A7,A18,FUNCT_1:def 3;
then f.C,f.A are_c=-comparable by A1,A20;
then f.C c= f.A or f.A c= f.C;
hence f.C c= f.B by A14,A16,A17,A19,ORDINAL1:def 2;
end;
then A in Y by A8,A15;
then f.A in Z by A15,FUNCT_1:def 6;
hence thesis by A14,TARSKI:def 4;
end;
let V be set;
assume that
A21: V c= Z and
A22: V <> {};
set x = the Element of V;
x in Z by A21,A22;
then consider y being object such that
A23: y in dom f and
A24: y in Y and
A25: x = f.y by FUNCT_1:def 6;
reconsider y as Ordinal by A6,A23;
defpred P[Ordinal] means $1 in Y & f.$1 in V;
y = y;
then
A26: ex A st P[A] by A22,A24,A25;
consider A such that
A27: P[A] & for B st P[B] holds A c= B from ORDINAL1:sch 1(A26);
take Z1 = f.A;
thus Z1 in V by A27;
let Z2;
assume
A28: Z2 in V;
then consider y being object such that
A29: y in dom f and
A30: y in Y and
A31: Z2 = f.y by A21,FUNCT_1:def 6;
reconsider y as Ordinal by A6,A29;
A c< y iff A c= y & A <> y;
then A = y or A in y by A27,A28,A30,A31,ORDINAL1:11;
hence thesis by A8,A30,A31;
end;
theorem
(for Z st Z in X holds card Z in M) & X is c=-linear implies
card union X c= M
proof
assume that
A1: Z in X implies card Z in M and
A2: X is c=-linear;
consider XX being set such that
A3: XX c= X and
A4: union XX = union X and
A5: for Z st Z c= XX & Z <> {}
ex Z1 st Z1 in Z & for Z2 st Z2 in Z holds Z1 c= Z2 by A2,Th45;
A6: for Z1,Z2 st Z1 in XX & Z2 in XX holds Z1 c= Z2 or Z2 c= Z1
by A2,A3,XBOOLE_0:def 9;
consider R such that
A7: R well_orders union X by WELLORD2:17;
A8: R is_reflexive_in union X by A7;
A9: R is_transitive_in union X by A7;
A10: R is_antisymmetric_in union X by A7;
A11: R is_connected_in union X by A7;
defpred P[object,object] means
((ex Z1 st Z1 in XX & $1 in Z1 & not $2 in Z1) or
(for Z1 st Z1 in XX holds $1 in Z1 iff $2 in Z1) & [$1,$2] in R);
consider Q such that
A12: for x,y being object holds
[x,y] in Q iff x in union X & y in union X & P[x,y] from RELAT_1:sch 1;
A13: field Q = union X
proof
thus field Q c= union X
proof
let x be object;
assume x in field Q;
then ex y being object st [x,y] in Q or [y,x] in Q by Lm1;
hence thesis by A12;
end;
let x be object;
assume
A14: x in union X;
then
A15: [x,x] in R by A8;
for Z1 st Z1 in XX holds x in Z1 iff x in Z1;
then [x,x] in Q by A12,A14,A15;
hence thesis by RELAT_1:15;
end;
A16: Q is reflexive
proof
let x be object;
assume
A17: x in field Q;
then
A18: [x,x] in R by A8,A13;
for Z1 st Z1 in XX holds x in Z1 iff x in Z1;
hence thesis by A12,A13,A17,A18;
end;
A19: Q is transitive
proof
let x,y,z be object such that
A20: x in field Q and
A21: y in field Q and
A22: z in field Q and
A23: [x,y] in Q and
A24: [y,z] in Q;
A25: now
given Z1 such that
A26: Z1 in XX and
A27: x in Z1 and
A28: not y in Z1;
given Z2 such that
A29: Z2 in XX and
A30: y in Z2 and
A31: not z in Z2;
Z1 c= Z2 or Z2 c= Z1 by A6,A26,A29;
hence thesis by A12,A13,A20,A22,A27,A28,A29,A30,A31;
end;
A32: now
given Z1 such that
A33: Z1 in XX and
A34: x in Z1 and
A35: not y in Z1;
assume that
A36: for Z1 st Z1 in XX holds y in Z1 iff z in Z1
and [y,z] in R;
not z in Z1 by A33,A35,A36;
hence thesis by A12,A13,A20,A22,A33,A34;
end;
A37: now
given Z1 such that
A38: Z1 in XX and
A39: y in Z1 and
A40: not z in Z1;
assume that
A41: for Z1 st Z1 in XX holds x in Z1 iff y in Z1
and [x,y] in R;
x in Z1 by A38,A39,A41;
hence thesis by A12,A13,A20,A22,A38,A40;
end;
now
assume that
A42: for Z1 st Z1 in XX holds x in Z1 iff y in Z1 and
A43: [x,y] in R and
A44: for Z1 st Z1 in XX holds y in Z1 iff z in Z1 and
A45: [y,z] in R;
A46: [x,z] in R by A9,A13,A20,A21,A22,A43,A45;
now
let Z;
assume
A47: Z in XX;
then x in Z iff y in Z by A42;
hence x in Z iff z in Z by A44,A47;
end;
hence thesis by A12,A13,A20,A22,A46;
end;
hence thesis by A12,A23,A24,A25,A32,A37;
end;
A48: Q is antisymmetric
proof
let x,y be object;
assume that
A49: x in field Q and
A50: y in field Q and
A51: [x,y] in Q and
A52: [y,x] in Q;
A53: (ex Z1 st Z1 in XX & x in Z1 & not y in Z1) or (for Z1 st Z1 in XX
holds x in Z1 iff y in Z1) & [x,y] in R by A12,A51;
A54: (ex Z1 st Z1 in XX & y in Z1 & not x in Z1) or (for Z1 st Z1 in XX
holds y in Z1 iff x in Z1) & [y,x] in R by A12,A52;
now
given Z1 such that
A55: Z1 in XX and
A56: x in Z1 and
A57: not y in Z1;
given Z2 such that
A58: Z2 in XX and
A59: y in Z2 and
A60: not x in Z2;
Z1 c= Z2 or Z2 c= Z1 by A6,A55,A58;
hence thesis by A56,A57,A59,A60;
end;
hence thesis by A10,A13,A49,A50,A53,A54;
end;
A61: Q is connected
proof
let x,y be object such that
A62: x in field Q and
A63: y in field Q and
A64: x <> y;
now
assume
A65: for Z st Z in XX holds x in Z iff y in Z;
A66: [x,y] in R or [y,x] in R by A11,A13,A62,A63,A64;
for Z st Z in XX holds y in Z iff x in Z by A65;
hence thesis by A12,A13,A62,A63,A65,A66;
end;
hence thesis by A12,A13,A62,A63;
end;
Q is well_founded
proof
let Y such that
A67: Y c= field Q and
A68: Y <> {};
defpred P[set] means $1 /\ Y <> {};
consider Z such that
A69: for x being set holds x in Z iff x in XX & P[x] from XFAMILY:sch 1;
A70: Z c= XX
by A69;
set x = the Element of Y;
x in union XX by A4,A13,A67,A68;
then consider Z1 such that
A71: x in Z1 and
A72: Z1 in XX by TARSKI:def 4;
Z1 /\ Y <> {} by A68,A71,XBOOLE_0:def 4;
then Z <> {} by A69,A72;
then consider Z1 such that
A73: Z1 in Z and
A74: for Z2 st Z2 in Z holds Z1 c= Z2 by A5,A70;
A75: Z1 in XX by A69,A73;
A76: Z1 /\ Y c= Z1 by XBOOLE_1:17;
A77: Z1 c= union X by A3,A75,ZFMISC_1:74;
Z1 /\ Y <> {} by A69,A73;
then consider x being object such that
A78: x in Z1 /\ Y and
A79: for y being object st y in Z1 /\ Y holds [x,y] in R
by A7,A76,A77,WELLORD1:5,XBOOLE_1:1;
take x;
thus x in Y by A78,XBOOLE_0:def 4;
assume
A80: Q-Seg x /\ Y <> {};
set y = the Element of Q-Seg x /\ Y;
A81: x in Z1 by A78,XBOOLE_0:def 4;
A82: y in Q-Seg x by A80,XBOOLE_0:def 4;
A83: y in Y by A80,XBOOLE_0:def 4;
A84: y <> x by A82,WELLORD1:1;
A85: [y,x] in Q by A82,WELLORD1:1;
A86: now
given Z2 such that
A87: Z2 in XX and
A88: y in Z2 and
A89: not x in Z2;
Z2 /\ Y <> {} by A83,A88,XBOOLE_0:def 4;
then Z2 in Z by A69,A87;
then Z1 c= Z2 by A74;
hence contradiction by A81,A89;
end;
then
A90: y in Z1 by A12,A75,A81,A85;
A91: [y,x] in R by A12,A85,A86;
y in Z1 /\ Y by A83,A90,XBOOLE_0:def 4;
then
A92: [x,y] in R by A79;
A93: x in union X by A12,A85;
y in union X by A12,A85;
hence contradiction by A10,A84,A91,A92,A93;
end;
then Q is well-ordering by A16,A19,A48,A61;
then Q,RelIncl order_type_of Q are_isomorphic by WELLORD2:def 2;
then RelIncl order_type_of Q,Q are_isomorphic by WELLORD1:40;
then consider g such that
A94: g is_isomorphism_of RelIncl order_type_of Q,Q;
A95: field RelIncl order_type_of Q = order_type_of Q by WELLORD2:def 1;
then
A96: dom g = order_type_of Q by A94;
A97: rng g = union X by A13,A94;
A98: g is one-to-one by A94;
A99: for Z,x st Z in XX & x in Z holds Q-Seg x c= Z
proof
let Z,x such that
A100: Z in XX and
A101: x in Z;
let y be object;
assume y in Q-Seg x;
then
A102: [y,x] in Q by WELLORD1:1;
now
given Z1 such that
A103: Z1 in XX and
A104: y in Z1 and
A105: not x in Z1;
Z1 c= Z or Z c= Z1 by A6,A100,A103;
hence thesis by A101,A104,A105;
end;
hence thesis by A12,A100,A101,A102;
end;
A106: for A st A in order_type_of Q holds card A = card (Q-Seg(g.A))
proof
let A such that
A107: A in order_type_of Q;
A,Q-Seg(g.A) are_equipotent
proof
take f = g|A;
A c= dom g by A96,A107,ORDINAL1:def 2;
hence
A108: f is one-to-one & dom f = A by A98,FUNCT_1:52,RELAT_1:62;
thus rng f c= Q-Seg(g.A)
proof
let x be object;
assume x in rng f;
then consider y being object such that
A109: y in dom f and
A110: x = f.y by FUNCT_1:def 3;
reconsider B = y as Ordinal by A108,A109;
A111: B in order_type_of Q by A107,A108,A109,ORDINAL1:10;
B c= A by A108,A109,ORDINAL1:def 2;
then
A112: [B,A] in RelIncl order_type_of Q by A107,A111,WELLORD2:def 1;
A113: x = g.B by A109,A110,FUNCT_1:47;
reconsider BB = B as set;
not BB in BB; then
A114: A <> B by A108,A109;
A115: [x,g.A] in Q by A94,A112,A113;
x <> g.A by A96,A98,A107,A111,A113,A114;
hence thesis by A115,WELLORD1:1;
end;
let x be object;
assume
A116: x in Q-Seg(g.A);
then
A117: [x,g.A] in Q by WELLORD1:1;
then x in union X by A12;
then consider y being object such that
A118: y in dom g and
A119: x = g.y by A97,FUNCT_1:def 3;
reconsider B = y as Ordinal by A96,A118;
[B,A] in RelIncl order_type_of Q by A94,A95,A107,A117,A118,A119;
then
A120: B c= A by A96,A107,A118,WELLORD2:def 1;
B <> A by A116,A119,WELLORD1:1;
then B c< A by A120;
hence thesis by A118,A119,FUNCT_1:50,ORDINAL1:11;
end;
hence thesis by CARD_1:5;
end;
A121: order_type_of Q c= M
proof
let x be Ordinal;
assume
A122: x in order_type_of Q;
reconsider A = x as Ordinal;
g.x in union X by A96,A97,A122,FUNCT_1:def 3;
then consider Z such that
A123: g.x in Z and
A124: Z in XX by A4,TARSKI:def 4;
A125: card (Q-Seg(g.x)) c= card Z by A99,A123,A124,CARD_1:11;
A126: card (Q-Seg(g.x)) = card A by A106,A122;
card (Q-Seg(g.x)) in M by A1,A3,A124,A125,ORDINAL1:12;
hence thesis by A126,Th44;
end;
order_type_of Q,union X are_equipotent by A96,A97,A98;
then
A127: card order_type_of Q = card union X by CARD_1:5;
card M = M;
hence thesis by A121,A127,CARD_1:11;
end;
begin :: Addenda
:: from AMI_1
registration
let f be Function;
cluster product f -> functional;
coherence
proof
set d = product f;
let x be object;
assume x in d;
then ex g being Function
st x = g & dom g= dom f &
for x being object st x in dom f holds g.x in f.x by Def5;
hence thesis;
end;
end;
registration
let A be set;
let B be with_non-empty_elements set;
cluster -> non-empty for Function of A,B;
coherence
proof
let f be Function of A,B;
thus not {} in rng f;
end;
end;
:: from PRVECT_1
registration
let f be non-empty Function;
cluster product f -> non empty;
coherence
proof
not {} in rng f;
hence thesis by Th26;
end;
end;
:: from AMI_1, 2006.03.14, A.T.
theorem
for a,b,c,d being set st a <> b holds
product (a,b) --> ({c},{d}) = { (a,b) --> (c,d) }
proof
let a,b,c,d be set such that
A1: a <> b;
set X = { (a,b) --> (c,d) }, f = (a,b) --> ({c},{d});
A2: dom f = {a,b} by FUNCT_4:62;
now
let x be object;
thus x in X implies ex g being Function st x = g & dom g = dom f &
for x being object st x in dom f holds g.x in f.x
proof
assume
A3: x in X;
take g = (a,b) --> (c,d);
thus x = g by A3,TARSKI:def 1;
thus dom g = dom f by A2,FUNCT_4:62;
let x be object;
assume x in dom f;
then
A4: x = a or x = b by A2,TARSKI:def 2;
A5: g.a = c by A1,FUNCT_4:63;
A6: f.a = {c} by A1,FUNCT_4:63;
A7: g.b = d by FUNCT_4:63;
f.b = {d} by FUNCT_4:63;
hence thesis by A4,A5,A6,A7,TARSKI:def 1;
end;
given g being Function such that
A8: x = g and
A9: dom g = dom f and
A10: for x being object st x in dom f holds g.x in f.x;
A11: a in dom f by A2,TARSKI:def 2;
A12: b in dom f by A2,TARSKI:def 2;
A13: g.a in f.a by A10,A11;
A14: g.b in f.b by A10,A12;
A15: f.a = {c} by A1,FUNCT_4:63;
A16: f.b = {d} by FUNCT_4:63;
A17: g.a = c by A13,A15,TARSKI:def 1;
g.b = d by A14,A16,TARSKI:def 1;
then g = (a,b) --> (c,d) by A2,A9,A17,FUNCT_4:66;
hence x in X by A8,TARSKI:def 1;
end;
hence thesis by Def5;
end;
:: from AMI_1, 2006.03.14, A.T.
theorem
x in product f implies x is Function;
begin :: Superproducts, from AMI_1, 2006.03.14, A.T.
reserve A,B for set;
definition
let f be Function;
func sproduct f -> set means
:Def9:
for x being object holds x in it iff ex g st x = g & dom g c= dom f &
for x being object st x in dom g holds g.x in f.x;
existence
proof
defpred P[object] means ex g st $1 = g & dom g c= dom f &
for x being object st x in dom g holds g.x in f.x;
consider A being set such that
A1: for x being object holds
x in A iff x in PFuncs(dom f, union rng f) & P[x] from XBOOLE_0:sch 1;
now
let x be object;
thus x in A implies ex g st x = g & dom g c= dom f &
for x being object st x in dom g holds g.x in f.x by A1;
given g such that
A2: x = g and
A3: dom g c= dom f and
A4: for x being object st x in dom g holds g.x in f.x;
rng g c= union rng f
proof
let y be object;
assume y in rng g;
then consider z being object such that
A5: z in dom g and
A6: y = g.z by FUNCT_1:def 3;
A7: g.z in f.z by A4,A5;
f.z in rng f by A3,A5,FUNCT_1:def 3;
hence thesis by A6,A7,TARSKI:def 4;
end;
then x in PFuncs(dom f, union rng f) by A2,A3,PARTFUN1:def 3;
hence x in A by A1,A2,A3,A4;
end;
hence thesis;
end;
uniqueness
proof
defpred P[object] means ex g st $1 = g & dom g c= dom f &
for x being object st x in dom g holds g.x in f.x;
let A,B be set such that
A8: for x being object holds x in A iff P[x] and
A9: for x being object holds x in B iff P[x];
thus thesis from XBOOLE_0:sch 2(A8,A9);
end;
end;
registration
let f be Function;
cluster sproduct f -> functional non empty;
coherence
proof
defpred P[object] means ex g st $1 = g & dom g c= dom f &
for x being object st x in dom g holds g.x in f.x;
consider A being set such that
A1: for x being object holds
x in A iff x in PFuncs(dom f, union rng f) & P[x]
from XBOOLE_0:sch 1;
{} is PartFunc of dom f, union rng f by RELSET_1:12;
then
A2: {} in PFuncs(dom f, union rng f) by PARTFUN1:45;
A3: dom {} c= dom f;
A4: for x being object st x in dom {} holds {} .x in f.x;
now
let x be object;
assume x in A;
then ex g st x = g & dom g c= dom f &
for x being object st x in dom g holds g.x in f.x by A1;
hence x is Function;
end;
then reconsider A as functional non empty set by A1,A2,A3,A4,FUNCT_1:def 13
;
now
let x be object;
thus x in A implies ex g st x = g & dom g c= dom f &
for x being object st x in dom g holds g.x in f.x by A1;
given g such that
A5: x = g and
A6: dom g c= dom f and
A7: for x being object st x in dom g holds g.x in f.x;
rng g c= union rng f
proof
let y be object;
assume y in rng g;
then consider z being object such that
A8: z in dom g and
A9: y = g.z by FUNCT_1:def 3;
A10: g.z in f.z by A7,A8;
f.z in rng f by A6,A8,FUNCT_1:def 3;
hence thesis by A9,A10,TARSKI:def 4;
end;
then x in PFuncs(dom f, union rng f) by A5,A6,PARTFUN1:def 3;
hence x in A by A1,A5,A6,A7;
end;
hence thesis by Def9;
end;
end;
theorem Th49:
g in sproduct f implies dom g c= dom f &
for x st x in dom g holds g.x in f.x
proof
assume g in sproduct f;
then ex h st g = h & dom h c= dom f &
for x being object st x in dom h holds h.x in f.x by Def9;
hence thesis;
end;
theorem Th50:
{} in sproduct f
proof
A1: dom {} c= dom f;
for x being object st x in dom {} holds {} .x in f.x;
hence thesis by A1,Def9;
end;
registration let f;
cluster empty for Element of sproduct f;
existence
proof
{} in sproduct f by Th50;
hence thesis;
end;
end;
theorem Th51:
product f c= sproduct f
proof
let x be object;
assume x in product f;
then ex g st x = g & dom g = dom f &
for x being object st x in dom f holds g.x in f.x by Def5;
hence thesis by Def9;
end;
theorem Th52:
x in sproduct f implies x is PartFunc of dom f, union rng f
proof
assume x in sproduct f;
then consider g such that
A1: x = g and
A2: dom g c= dom f and
A3: for x being object st x in dom g holds g.x in f.x by Def9;
rng g c= union rng f
proof
let y be object;
assume y in rng g;
then consider z being object such that
A4: z in dom g and
A5: y = g.z by FUNCT_1:def 3;
A6: g.z in f.z by A3,A4;
f.z in rng f by A2,A4,FUNCT_1:def 3;
hence thesis by A5,A6,TARSKI:def 4;
end;
hence thesis by A1,A2,RELSET_1:4;
end;
theorem Th53:
g in product f & h in sproduct f implies g +* h in product f
proof
assume
A1: g in product f;
then
A2: dom g = dom f by Th9;
assume
A3: h in sproduct f;
then
A4: dom g \/ dom h = dom f by A2,Th49,XBOOLE_1:12;
then
A5: dom(g +* h) = dom f by FUNCT_4:def 1;
now
let x be object;
assume
A6: x in dom f;
A7: (dom g \ dom h) \/ dom h = dom f by A4,XBOOLE_1:39;
now per cases by A6,A7,XBOOLE_0:def 3;
case
A8: x in dom g \ dom h;
then not x in dom h by XBOOLE_0:def 5;
hence x in dom f & (g +* h).x = g.x by A2,A8,FUNCT_4:11;
end;
case x in dom h;
hence (g +* h).x = h.x by FUNCT_4:13;
end;
end;
hence (g +* h).x in f.x by A1,A3,Th9,Th49;
end;
hence thesis by A5,Th9;
end;
theorem
product f <> {} implies
(g in sproduct f iff ex h st h in product f & g c= h)
proof
assume
A1: product f <> {};
thus g in sproduct f implies ex h st h in product f & g c= h
proof
assume
A2: g in sproduct f;
set k = the Element of product f;
reconsider k as Function;
take k +* g;
thus k +* g in product f by A1,A2,Th53;
thus thesis by FUNCT_4:25;
end;
given h such that
A3: h in product f and
A4: g c= h;
A5: dom h = dom f by A3,Th9;
A6: dom g c= dom h by A4,RELAT_1:11;
now
let x be object;
assume
A7: x in dom g;
then g.x = h.x by A4,GRFUNC_1:2;
hence g.x in f.x by A3,A5,A6,A7,Th9;
end;
hence thesis by A5,A6,Def9;
end;
theorem Th55:
sproduct f c= PFuncs(dom f,union rng f)
proof
let x be object;
assume x in sproduct f;
then x is PartFunc of dom f, union rng f by Th52;
hence thesis by PARTFUN1:45;
end;
theorem Th56:
f c= g implies sproduct f c= sproduct g
proof
assume
A1: f c= g;
then
A2: dom f c= dom g by GRFUNC_1:2;
let y be object;
assume y in sproduct f;
then consider h such that
A3: y = h and
A4: dom h c= dom f and
A5: for x being object st x in dom h holds h.x in f.x by Def9;
A6: dom h c= dom g by A2,A4;
now
let x be object;
assume
A7: x in dom h;
then f.x = g.x by A1,A4,GRFUNC_1:2;
hence h.x in g.x by A5,A7;
end;
hence thesis by A3,A6,Def9;
end;
theorem Th57:
sproduct {} = {{}}
proof
sproduct {} c= PFuncs({},{}) by Th55,RELAT_1:38,ZFMISC_1:2;
hence sproduct {} c= {{}} by PARTFUN1:48;
let x be object;
assume x in {{}};
then x = {} by TARSKI:def 1;
hence thesis by Th50;
end;
theorem
PFuncs(A,B) = sproduct (A --> B)
proof
now per cases;
case
A1: A = {};
then A --> B = {} --> B;
hence thesis by A1,Th57,PARTFUN1:48;
end;
case A <> {};
then
A2: rng (A --> B) = { B } by FUNCOP_1:8;
A3: dom(A --> B) = A by FUNCOP_1:13;
A4: B = union rng (A --> B) by A2,ZFMISC_1:25;
thus PFuncs(A,B) c= sproduct (A --> B)
proof
let x be object;
assume x in PFuncs(A,B);
then consider f being Function such that
A5: x = f and
A6: dom f c= A and
A7: rng f c= B by PARTFUN1:def 3;
A8: dom f c= dom (A --> B) by A6,FUNCOP_1:13;
now
let x be object;
assume
A9: x in dom f;
then f.x in rng f by FUNCT_1:def 3;
then f.x in B by A7;
hence f.x in (A --> B).x by A6,A9,FUNCOP_1:7;
end;
hence thesis by A5,A8,Def9;
end;
thus sproduct (A --> B) c= PFuncs(A,B) by A3,A4,Th55;
end;
end;
hence thesis;
end;
theorem
for A, B being non empty set for f being Function of A,B
holds sproduct f = sproduct(f|{x where x is Element of A: f.x <> {} })
proof
let A, B be non empty set;
let f be Function of A,B;
set X = {x where x is Element of A: f.x <> {} };
thus sproduct f c= sproduct(f|X)
proof
let x be object;
assume x in sproduct f;
then consider g such that
A1: x = g and
A2: dom g c= dom f and
A3: for x being object st x in dom g holds g.x in f.x by Def9;
A4: now
let x;
assume
A5: x in dom g;
then reconsider a = x as Element of A by A2,FUNCT_2:def 1;
f.a <> {} by A3,A5;
hence x in X;
end;
A6: now
let x;
assume
A7: x in dom g;
then x in X by A4;
hence x in (dom f)/\ X by A2,A7,XBOOLE_0:def 4;
end;
A8: dom g c= dom(f|X)
proof
let x be object;
assume x in dom g;
then x in (dom f)/\ X by A6;
hence thesis by RELAT_1:61;
end;
now
let x be object;
assume
A9: x in dom g;
then g.x in f.x by A3;
hence g.x in (f|X).x by A6,A9,FUNCT_1:48;
end;
hence thesis by A1,A8,Def9;
end;
thus thesis by Th56,RELAT_1:59;
end;
theorem Th60:
x in dom f & y in f.x implies x .--> y in sproduct f
proof
assume that
A1: x in dom f and
A2: y in f.x;
dom(x .--> y) = {x} by FUNCOP_1:13;
then
A3: dom(x .--> y) c= dom f by A1,ZFMISC_1:31;
now
let z be object;
assume z in dom(x .--> y);
then z = x by TARSKI:def 1;
hence (x .--> y).z in f.z by A2,FUNCOP_1:72;
end;
hence thesis by A3,Def9;
end;
theorem
sproduct f = {{}} iff for x st x in dom f holds f.x = {}
proof
thus sproduct f = {{}} implies for x st x in dom f holds f.x = {}
proof
assume
A1: sproduct f = {{}};
let x;
assume
A2: x in dom f;
assume
A3: f.x <> {};
set y = the Element of f.x;
x .--> y in sproduct f by A2,A3,Th60;
hence contradiction by A1,TARSKI:def 1;
end;
assume
A4: for x st x in dom f holds f.x = {};
now
let x be object;
thus x in sproduct f implies x = {}
proof
assume x in sproduct f;
then consider g such that
A5: x = g and
A6: dom g c= dom f and
A7: for y being object st y in dom g holds g.y in f.y by Def9;
assume
A8: x <> {};
set y = the Element of dom g;
A9: f.y <> {} by A5,A7,A8;
y in dom f by A5,A6,A8;
hence contradiction by A4,A9;
end;
thus x = {} implies x in sproduct f by Th50;
end;
hence thesis by TARSKI:def 1;
end;
theorem Th62:
A c= sproduct f &
(for h1,h2 being Function st h1 in A & h2 in A holds h1 tolerates h2)
implies union A in sproduct f
proof
assume that
A1: A c= sproduct f and
A2: for h1,h2 being Function st h1 in A & h2 in A holds h1 tolerates h2;
reconsider g = union A as Function by A1,A2,PARTFUN1:78;
A3: dom g c= dom f
proof
let x be object;
assume x in dom g;
then consider y being object such that
A4: [x,y] in g by XTUPLE_0:def 12;
consider h being set such that
A5: [x,y] in h and
A6: h in A by A4,TARSKI:def 4;
reconsider h as Function by A1,A6;
A7: x in dom h by A5,XTUPLE_0:def 12;
dom h c= dom f by A1,A6,Th49;
hence thesis by A7;
end;
now
let x be object;
assume x in dom g;
then consider y being object such that
A8: [x,y] in g by XTUPLE_0:def 12;
consider h being set such that
A9: [x,y] in h and
A10: h in A by A8,TARSKI:def 4;
reconsider h as Function by A1,A10;
A11: x in dom h by A9,XTUPLE_0:def 12;
h.x = y by A9,FUNCT_1:1
.= g.x by A8,FUNCT_1:1;
hence g.x in f.x by A1,A10,A11,Th49;
end;
hence thesis by A3,Def9;
end;
theorem
g tolerates h & g in sproduct f & h in sproduct f
implies g \/ h in sproduct f
proof
assume that
A1: g tolerates h and
A2: g in sproduct f and
A3: h in sproduct f;
A4: {g,h} c= sproduct f by A2,A3,ZFMISC_1:32;
A5: now
let h1,h2 be Function;
assume that
A6: h1 in {g,h} and
A7: h2 in {g,h};
A8: h1 = g or h1 = h by A6,TARSKI:def 2;
h2 = g or h2 = h by A7,TARSKI:def 2;
hence h1 tolerates h2 by A1,A8;
end;
union {g,h} = g \/ h by ZFMISC_1:75;
hence thesis by A4,A5,Th62;
end;
theorem Th64:
for x being set holds
x c= h & h in sproduct f implies x in sproduct f
proof let x be set;
assume that
A1: x c= h and
A2: h in sproduct f;
reconsider g = x as Function by A1;
A3: dom g c= dom h by A1,GRFUNC_1:2;
dom h c= dom f by A2,Th49;
then
A4: dom g c= dom f by A3;
now
let x be object;
assume
A5: x in dom g;
then h.x in f.x by A2,A3,Th49;
hence g.x in f.x by A1,A5,GRFUNC_1:2;
end;
hence thesis by A4,Def9;
end;
theorem Th65:
g in sproduct f implies g|A in sproduct f by Th64,RELAT_1:59;
theorem Th66:
g in sproduct f implies g|A in sproduct f|A
proof
A1: dom(g|A) = dom g /\ A by RELAT_1:61;
A2: dom(f|A) = dom f /\ A by RELAT_1:61;
assume
A3: g in sproduct f;
then
A4: dom(g|A) c= dom(f|A) by A1,A2,Th49,XBOOLE_1:26;
now
let x be object;
assume
A5: x in dom(g|A);
then
A6: (g|A).x = g.x by FUNCT_1:47;
A7: (f|A).x = f.x by A4,A5,FUNCT_1:47;
x in dom g by A1,A5,XBOOLE_0:def 4;
hence (g|A).x in (f|A).x by A3,A6,A7,Th49;
end;
hence thesis by A4,Def9;
end;
theorem
h in sproduct(f+*g) implies
ex f9,g9 being Function st f9 in sproduct f & g9 in sproduct g & h = f9+*g9
proof
assume
A1: h in sproduct(f+*g);
take h|(dom f \ dom g), h|dom g;
A2: h|(dom f \ dom g) in sproduct (f +* g)|(dom f \ dom g) by A1,Th66;
sproduct (f +* g)|(dom f \ dom g) c= sproduct f by Th56,FUNCT_4:24;
hence h|(dom f \ dom g) in sproduct f by A2;
(f +* g)|dom g = g by FUNCT_4:23;
hence h|dom g in sproduct g by A1,Th66;
dom h c= dom(f+*g) by A1,Th49;
then dom h c= dom f \/ dom g by FUNCT_4:def 1;
then dom h c= (dom f \ dom g) \/ dom g by XBOOLE_1:39;
hence thesis by FUNCT_4:70;
end;
theorem Th68:
for f9,g9 being Function st dom g misses dom f9 \ dom g9 &
f9 in sproduct f & g9 in sproduct g holds f9+*g9 in sproduct(f+*g)
proof
let f9,g9 be Function such that
A1: dom g misses dom f9 \ dom g9 and
A2: f9 in sproduct f and
A3: g9 in sproduct g;
set h = f9+*g9;
A4: dom f9 c= dom f by A2,Th49;
A5: dom g9 c= dom g by A3,Th49;
then
A6: dom f9 \/ dom g9 c= dom f \/ dom g by A4,XBOOLE_1:13;
A7: dom h = dom f9 \/ dom g9 by FUNCT_4:def 1;
then
A8: dom h c= dom(f+*g) by A6,FUNCT_4:def 1;
for x being object holds x in dom h implies h.x in (f+*g).x
proof let x be object;
assume
A9: x in dom h;
then x in dom(f+*g) by A8;
then
A10: x in dom f \/ dom g by FUNCT_4:def 1;
x in dom f9 \ dom g9 \/ dom g9 by A7,A9,XBOOLE_1:39;
then
A11: x in dom f9 \ dom g9 or x in dom g9 by XBOOLE_0:def 3;
now per cases;
case
A12: x in dom g;
then h.x = g9.x by A1,A7,A9,A11,FUNCT_4:def 1,XBOOLE_0:3;
hence h.x in g.x by A1,A3,A11,A12,Th49,XBOOLE_0:3;
end;
case not x in dom g;
then
A13: not x in dom g9 by A5;
then
A14: h.x = f9.x by A7,A9,FUNCT_4:def 1;
x in dom f9 by A7,A9,A13,XBOOLE_0:def 3;
hence h.x in f.x by A2,A14,Th49;
end;
end;
hence thesis by A10,FUNCT_4:def 1;
end;
hence thesis by A8,Def9;
end;
theorem
for f9,g9 being Function st dom f9 misses dom g \ dom g9 &
f9 in sproduct f & g9 in sproduct g holds f9+*g9 in sproduct(f+*g)
proof
let f9,g9 be Function;
assume dom f9 misses dom g \ dom g9;
then dom g misses dom f9 \ dom g9 by XBOOLE_1:81;
hence thesis by Th68;
end;
theorem Th70:
g in sproduct f & h in sproduct f implies g +* h in sproduct f
proof
assume that
A1: g in sproduct f and
A2: h in sproduct f;
A3: dom g c= dom f by A1,Th49;
dom h c= dom f by A2,Th49;
then dom g \/ dom h c= dom f by A3,XBOOLE_1:8;
then
A4: dom(g+*h) c= dom f by FUNCT_4:def 1;
now
let x be object;
assume x in dom(g+*h);
then x in dom g \/ dom h by FUNCT_4:def 1;
then
A5: x in (dom g \ dom h \/ dom h) by XBOOLE_1:39;
now per cases by A5,XBOOLE_0:def 3;
suppose
A6: x in dom h;
then h.x in f.x by A2,Th49;
hence (g+*h).x in f.x by A6,FUNCT_4:13;
end;
suppose
A7: x in dom g \ dom h;
then
A8: g.x in f.x by A1,Th49;
not x in dom h by A7,XBOOLE_0:def 5;
hence (g+*h).x in f.x by A8,FUNCT_4:11;
end;
end;
hence (g+*h).x in f.x;
end;
hence thesis by A4,Def9;
end;
theorem
for x1,x2,y1,y2 being set holds
x1 in dom f & y1 in f.x1 & x2 in dom f & y2 in f.x2
implies (x1,x2)-->(y1,y2) in sproduct f
proof
let x1,x2,y1,y2 be set;
assume that
A1: x1 in dom f and
A2: y1 in f.x1;
A3: x1 .--> y1 in sproduct f by A1,A2,Th60;
assume that
A4: x2 in dom f and
A5: y2 in f.x2;
A6: x2 .--> y2 in sproduct f by A4,A5,Th60;
(x1,x2)-->(y1,y2) = (x1 .--> y1) +* (x2 .--> y2) by FUNCT_4:def 4;
hence thesis by A3,A6,Th70;
end;
begin :: from PRALG_2, 2007.11.14, A.T.
definition
let IT be set;
attr IT is with_common_domain means
:Def10:
for f,g be Function st f in IT & g in IT holds dom f = dom g;
end;
registration
cluster with_common_domain functional non empty for set;
existence
proof
set h = the Function;
take A = {h};
for f,g be Function st f in A & g in A holds dom f = dom g
proof
let f,g be Function;
assume that
A1: f in A and
A2: g in A;
f = h by A1,TARSKI:def 1;
hence thesis by A2,TARSKI:def 1;
end;
hence A is with_common_domain;
thus A is functional;
thus thesis;
end;
end;
registration
let f;
cluster {f} -> with_common_domain;
coherence
proof
let g,h be Function;
assume g in {f};
then g = f by TARSKI:def 1;
hence thesis by TARSKI:def 1;
end;
end;
definition
let X be functional set;
func DOM X -> set equals
meet the set of all dom f where f is Element of X;
coherence;
end;
Lm2: for X being functional with_common_domain set
for f being Function st f in X holds dom f = DOM X
proof let X be functional with_common_domain set;
set A = the set of all dom f where f is Element of X;
let f be Function;
assume
A1: f in X;
then dom f in A;
then
A2: { dom f } c= A by ZFMISC_1:31;
A c= { dom f }
proof let e be object;
assume e in A;
then consider g being Element of X such that
A3: e = dom g;
e = dom f by A3,Def10,A1;
hence e in { dom f } by TARSKI:def 1;
end;
then A = { dom f } by A2;
hence dom f = DOM X by SETFAM_1:10;
end;
theorem Th72:
for X be with_common_domain functional set st X = {{}} holds DOM X = {}
proof
let X be with_common_domain functional set;
assume
A1: X = {{}};
{} in {{}} by TARSKI:def 1;
hence thesis by A1,Lm2,RELAT_1:38;
end;
registration let X be empty set;
cluster DOM X -> empty;
coherence
proof set A = the set of all dom f where f is Element of X;
A1: A c= {{}}
proof let e be object;
assume e in A;
then ex f being Element of X st e = dom f;
then e = dom {} by SUBSET_1:def 1;
hence thesis by TARSKI:def 1;
end;
{{}} c= A
proof let e be object;
assume e in {{}};
then e = {} by TARSKI:def 1;
then e = dom {};
then e = dom the Element of X by SUBSET_1:def 1;
hence thesis;
end;
then A = {{}} by A1;
hence thesis by SETFAM_1:10;
end;
end;
begin :: Product like sets, from AMISTD_2, 2007.11.14, A.T.
definition
let S be functional set;
func product" S -> Function means :: tu trzeba uzyc DOM
:Def12: dom it = DOM S &
for i being set st i in dom it holds it.i = pi(S,i);
existence
proof
per cases;
suppose
A1: S = {};
take {};
thus thesis by A1;
end;
suppose
S <> {};
then reconsider S1 = S as non empty functional set;
set D = the set of all dom f where f is Element of S1;
defpred P[object,object] means
ex A being set st A = $1 & $2 = pi(S,A);
A2: for e being object st e in meet D ex u being object st P[e,u]
proof let e be object;
reconsider A = e as set by TARSKI:1;
assume e in meet D;
take u = pi(S,A);
thus thesis;
end;
consider g being Function such that
A3: dom g = meet D and
A4: for e being object st e in meet D holds P[e,g.e]
from CLASSES1:sch 1(A2);
take g;
thus dom g = DOM S by A3;
let i be set;
assume i in dom g;
then P[i,g.i] by A3,A4;
hence thesis;
end;
end;
uniqueness
proof
let f, g be Function such that
A5: dom f = DOM S and
A6: for i being set st i in dom f holds f.i = pi(S,i) and
A7: dom g = DOM S and
A8: for i being set st i in dom g holds g.i = pi(S,i);
for x being object st x in dom f holds f.x = g.x
proof let x be object;
assume
A9: x in dom f;
hence f.x = pi(S,x) by A6 .= g.x by A5,A7,A9,A8;
end;
hence f = g by A5,A7;
end;
end;
::$CT
theorem Th73:
for S being non empty functional set,
i being set st i in dom product" S holds
(product" S).i = the set of all f.i where f is Element of S
proof
let S be non empty functional set, i be set;
assume
A1: i in dom product" S;
hereby
let x be object;
assume x in (product" S).i;
then x in pi(S,i) by A1,Def12;
then ex f being Function st f in S & x = f.i by Def6;
hence x in the set of all f.i where f is Element of S;
end;
let x be object;
assume x in the set of all f.i where f is Element of S;
then ex f being Element of S st x = f.i;
then x in pi(S,i) by Def6;
hence thesis by A1,Def12;
end;
definition
let S be set;
attr S is product-like means
:Def13:
ex f being Function st S = product f;
end;
registration
let f be Function;
cluster product f -> product-like;
coherence;
end;
registration
cluster product-like -> functional with_common_domain for set;
coherence
proof
let S be set;
given f being Function such that
A1: S = product f;
thus S is functional by A1;
let h, g be Function such that
A2: h in S and
A3: g in S;
thus dom h = dom f by A1,A2,Th9
.= dom g by A1,A3,Th9;
end;
end;
registration
cluster product-like non empty for set;
existence
proof
set B = the with_non-empty_elements set,f = the Function of 0,B;
take product f;
thus thesis;
end;
end;
::$CT 2
theorem Th74:
for S being functional with_common_domain set holds S c= product product" S
proof
let S be functional with_common_domain set;
let f be object;
assume
A1: f in S;
then reconsider f as Element of S;
A2: dom f = DOM S by A1,Lm2
.= dom product" S by Def12;
for i being object st i in dom product" S holds f.i in (product" S).i
proof
let i be object;
assume i in dom product" S;
then (product" S).i = pi(S,i) by Def12;
hence thesis by A1,Def6;
end;
hence thesis by A2,Th9;
end;
theorem
for S being non empty product-like set holds S = product product" S
proof
let S be non empty product-like set;
thus S c= product product" S by Th74;
let x be object;
assume x in product product" S;
then consider g being Function such that
A1: x = g and
A2: dom g = dom product" S and
A3: for z being object st z in dom product" S holds g.z in (product" S).z
by Def5;
consider p being Function such that
A4: S = product p by Def13;
set s = the Element of S;
A5: dom g = DOM S by A2,Def12
.= dom s by Lm2
.= dom p by A4,Th9;
for z being object st z in dom p holds g.z in p.z
proof
let z be object;
assume
A6: z in dom p;
then g.z in (product" S).z by A2,A3,A5;
then g.z in pi(S,z) by A2,A5,A6,Def12;
then ex f being Function st f in S & g.z = f.z by Def6;
hence thesis by A4,A6,Th9;
end;
hence thesis by A1,A4,A5,Th9;
end;
:: from AMI_1, 2008.04.11, A.T. (generalized)
theorem
for f being Function
for s, t being Element of product f, A be set holds
s +* t|A is Element of product f
proof
let f be Function;
let s, t be Element of product f, A be set;
per cases;
suppose f is non-empty;
then product f <> {};
then
A1: t in product f;
product f c= sproduct f by Th51;
hence thesis by A1,Th53,Th65;
end;
suppose f is not non-empty;
then {} in rng f;
then
A2: product f = {} by Th26;
t = {} by A2,SUBSET_1:def 1;
then t|A = {};
hence thesis;
end;
end;
theorem
for f being non-empty Function
for p being Element of sproduct f
ex s being Element of product f st p c= s
proof
let f be non-empty Function,
p be Element of sproduct f;
set h = the Element of product f;
reconsider s = h +* p as Element of product f by Th53;
take s;
thus thesis by FUNCT_4:25;
end;
theorem Th78:
g in product f implies g|A in sproduct f
proof
A1: product f c= sproduct f by Th51;
assume g in product f;
hence thesis by A1,Th64,RELAT_1:59;
end;
:: needed, 2008.04.20, A.T.
definition
let f be non-empty Function;
let g be Element of product f;
let X;
redefine func g|X -> Element of sproduct f;
coherence by Th78;
end;
theorem
for f being non-empty Function
for s,ss being Element of product f, A being set
holds (ss +* s | A) | A = s | A
proof
let f be non-empty Function;
let s,ss be Element of product f;
let A be set;
dom s = dom f by Th9
.= dom ss by Th9;
then A /\ dom ss c= A /\ dom s;
hence thesis by FUNCT_4:88;
end;
:: from PRE_CIRC, 2008.06.02, A.T.
theorem
for M,x, g being Function st x in product M holds x * g in product (M * g)
proof
let M, x, g be Function;
assume
A1: x in product M;
set xg = x * g;
set Mg = M * g;
A2: ex gg being Function st ( x = gg)&( dom gg = dom M)&( for x
being object st x in dom M holds gg.x in M.x) by A1,Def5;
then
A3: dom xg = dom Mg by RELAT_1:163;
now
let y be object;
assume
A4: y in dom Mg;
then
A5: y in dom g by FUNCT_1:11;
A6: g.y in dom M by A4,FUNCT_1:11;
A7: xg.y = x.(g.y) by A5,FUNCT_1:13;
Mg.y = M.(g.y) by A5,FUNCT_1:13;
hence xg.y in Mg.y by A2,A6,A7;
end;
hence thesis by A3,Def5;
end;
:: moved from CARD_4, 2008.10.08, A.T.
theorem
X is finite iff card X in omega by Th42;
reserve A,B for Ordinal;
theorem Th82:
A is infinite iff omega c= A
proof omega c= A iff not A in omega by ORDINAL1:16;
hence thesis;
end;
theorem
N is finite & not M is finite implies N in M & N c= M
proof
assume that
A1: N is finite and
A2: not M is finite;
A3: N in omega by A1,CARD_1:61;
omega c= M by A2,Th82;
hence N in M by A3;
thus thesis by A1,A2;
end;
theorem
not X is finite iff ex Y st Y c= X & card Y = omega
proof
thus not X is finite implies ex Y st Y c= X & card Y = omega
proof
assume not X is finite;
then not card X in omega;
then
A1: omega c= card X by CARD_1:4;
card X,X are_equipotent by CARD_1:def 2;
then consider f such that
A2: f is one-to-one and
A3: dom f = card X and
A4: rng f = X;
take Y = f.:(omega);
thus Y c= X by A4,RELAT_1:111;
omega,Y are_equipotent
proof
take f|(omega);
thus thesis by A1,A2,A3,FUNCT_1:52,RELAT_1:62,115;
end;
hence thesis by CARD_1:def 2;
end;
given Y such that
A5: Y c= X and
A6: card Y = omega;
thus thesis by A5,A6;
end;
theorem Th85:
card X = card Y iff nextcard X = nextcard Y
proof
thus card X = card Y implies nextcard X = nextcard Y by CARD_1:16;
assume that
A1: nextcard X = nextcard Y and
A2: card X <> card Y;
card X in card Y or card Y in card X by A2,ORDINAL1:14;
then nextcard X c= card Y & card Y in nextcard Y or
nextcard Y c= card X & card X in nextcard X by CARD_1:def 3;
hence thesis by A1,ORDINAL1:12;
end;
theorem
nextcard N = nextcard M implies M = N
proof
A1: card N = N;
card M = M;
hence thesis by A1,Th85;
end;
theorem Th87:
N in M iff nextcard N c= M
proof
A1: N in nextcard N by CARD_1:18;
card N = N;
hence thesis by A1,CARD_1:def 3;
end;
theorem
N in nextcard M iff N c= M
proof
A1: not N c= M iff M in N by CARD_1:4;
N in nextcard M iff not nextcard M c= N by CARD_1:4;
hence thesis by A1,Th87;
end;
theorem
M is finite & (N c= M or N in M) implies N is finite
proof
assume that
A1: M is finite and
A2: N c= M or N in M;
N c= M by A2,CARD_1:3;
hence thesis by A1;
end;
reserve n,k for Nat;
definition
let X;
attr X is countable means
: Def14:
card X c= omega;
attr X is denumerable means
card X = omega;
end;
registration
cluster denumerable -> countable infinite for set;
coherence;
cluster countable infinite -> denumerable for set;
coherence
proof
let X be set;
assume
A1: card X c= omega;
assume X is infinite;
then omega c= card X by Th82;
hence card X = omega by A1;
end;
end;
registration
cluster finite -> countable for set;
coherence;
end;
registration
cluster omega -> denumerable;
coherence;
end;
registration
cluster denumerable for set;
existence
proof
take omega;
thus thesis;
end;
end;
theorem Th90:
X is countable iff ex f st dom f = omega & X c= rng f
by CARD_1:12,CARD_1:47;
registration
let X be countable set;
cluster -> countable for Subset of X;
coherence
proof
let Y be Subset of X;
A1: card Y c= card X by CARD_1:11;
card X c= omega by Def14;
hence card Y c= omega by A1;
end;
end;
Lm3: Y c= X & X is countable implies Y is countable;
theorem
X is countable implies X /\ Y is countable
by Lm3,XBOOLE_1:17;
theorem
X is countable implies X \ Y is countable;
theorem
for A being non empty countable set
ex f being Function of omega, A st rng f = A
proof
let A be non empty countable set;
consider f being Function such that
A1: dom f = omega and
A2: A c= rng f by Th90;
consider x being object such that
A3: x in A by XBOOLE_0:def 1;
set F = f|(f"A) +* (omega \ f"A --> x);
A4: rng F = A & dom F = omega
proof
A5: f"A c= omega by A1,RELAT_1:132;
A6: dom(f|(f"A)) = omega /\ (f"A) by A1,RELAT_1:61;
per cases;
suppose
A7: omega = f"A;
then
A8: omega \ f"A = {} by XBOOLE_1:37;
then dom(f|(f"A)) /\ dom(omega \ f"A --> x) = {};
then dom(f|(f"A)) misses dom(omega \ f"A --> x);
then F = (f|(f"A)) \/ (omega \ f"A --> x) by FUNCT_4:31;
hence rng F = rng(f|(f"A)) \/ rng(omega \ f"A --> x) by RELAT_1:12
.= rng(f|(f"A)) \/ {} by A8
.= f.:(f"A) by RELAT_1:115
.= A by A2,FUNCT_1:77;
thus
dom F = dom(f|(f"A)) \/ dom(omega \ f"A --> x) by FUNCT_4:def 1
.= dom(f|(f"A)) \/ {} by A8
.= omega by A6,A7;
end;
suppose omega <> f"A; then
A9: omega \ f"A is non empty by A5,XBOOLE_1:37;
dom(omega \ f"A --> x) = omega \ f"A by FUNCOP_1:13;
then F = (f|(f"A)) \/ (omega \ f"A --> x) by A6,FUNCT_4:31,XBOOLE_1:89;
hence rng F = rng(f|(f"A)) \/ rng(omega \ f"A --> x) by RELAT_1:12
.= rng(f|(f"A)) \/ {x} by A9,FUNCOP_1:8
.= f.:(f"A) \/ {x} by RELAT_1:115
.= A \/ {x} by A2,FUNCT_1:77
.= A by A3,ZFMISC_1:40;
thus
dom F = dom(f|(f"A)) \/ dom(omega \ f"A --> x) by FUNCT_4:def 1
.= omega /\ (f"A) \/ (omega \ f"A) by A6,FUNCOP_1:13
.= omega by XBOOLE_1:51;
end;
end;
then reconsider F as Function of omega, A by FUNCT_2:def 1,RELSET_1:4;
take F;
thus thesis by A4;
end;
:: from CIRCCOMB, 2009.01.26, A.T.
theorem
for f,g being non-empty Function, x being Element of product f,
y being Element of product g holds x+*y in product (f+*g)
proof
let f,g be non-empty Function, x be Element of product f;
let y be Element of product g;
A1: dom x = dom f by Th9;
A2: dom y = dom g by Th9;
then
A3: dom (x+*y) = dom f \/ dom g by A1,FUNCT_4:def 1;
A4: dom (f+*g) = dom f \/ dom g by FUNCT_4:def 1;
now
let z be object;
assume
A5: z in dom (f+*g);
then z in dom g or not z in dom g & z in dom f by A4,XBOOLE_0:def 3;
then (x+*y).z = x.z & (f+*g).z = f.z & x.z in f.z or
(x+*y).z = y.z & (f+*g).z = g.z & y.z in g.z
by A1,A2,A4,A5,Th9,FUNCT_4:def 1;
hence (x+*y).z in (f+*g).z;
end;
hence thesis by A3,A4,Th9;
end;
theorem
for f,g being non-empty Function
for x being Element of product (f+*g) holds x|dom g in product g
proof
let f,g be non-empty Function;
let x be Element of product (f+*g);
A1: dom x = dom (f+*g) by Th9;
A2: dom (f+*g) = dom f \/ dom g by FUNCT_4:def 1;
then
A3: dom g c= dom x by A1,XBOOLE_1:7;
A4: dom (x|dom g) = dom g by A1,A2,RELAT_1:62,XBOOLE_1:7;
now
let z be object;
assume
A5: z in dom (x|dom g);
then
A6: (x|dom g).z = x.z by FUNCT_1:47;
(f+*g).z = g.z by A4,A5,FUNCT_4:13;
hence (x|dom g).z in g.z by A1,A3,A4,A5,A6,Th9;
end;
hence thesis by A4,Th9;
end;
theorem
for f,g being non-empty Function st f tolerates g
for x being Element of product (f+*g) holds x|dom f in product f
proof
let f,g be non-empty Function such that
A1: f tolerates g;
let x be Element of product (f+*g);
A2: dom x = dom (f+*g) by Th9;
A3: dom (f+*g) = dom f \/ dom g by FUNCT_4:def 1;
then
A4: dom f c= dom x by A2,XBOOLE_1:7;
A5: dom (x|dom f) = dom f by A2,A3,RELAT_1:62,XBOOLE_1:7;
now
let z be object;
assume
A6: z in dom (x|dom f);
then
A7: (x|dom f).z = x.z by FUNCT_1:47;
(f+*g).z = f.z by A1,A5,A6,FUNCT_4:15;
hence (x|dom f).z in f.z by A2,A4,A5,A6,A7,Th9;
end;
hence thesis by A5,Th9;
end;
:: missing, 2009.09.06, A.T.
theorem Th97:
for S being with_common_domain functional set, f be Function
st f in S holds dom f = dom product" S
proof let S be with_common_domain functional set, f be Function such that
A1: f in S;
thus dom f = DOM S by A1,Lm2
.= dom product" S by Def12;
end;
theorem Th98:
for S being functional set, f be Function, i be set
st f in S & i in dom product" S holds f.i in (product" S).i
proof
let S being functional set, F be Function, i be set such that
A1: F in S;
assume i in dom product" S;
then (product" S).i = the set of all f.i where f is Element of S
by A1,Th73;
hence F.i in (product" S).i by A1;
end;
theorem
for S being with_common_domain functional set, f be Function, i be set
st f in S & i in dom f holds f.i in (product" S).i
proof let S be with_common_domain functional set, f be Function, i be set;
assume that
A1: f in S and
A2: i in dom f;
dom f = dom(product" S) by A1,Th97;
hence f.i in (product" S).i by A1,A2,Th98;
end;
:: 2009.09.12, A.T.
registration let X be with_common_domain set;
cluster -> with_common_domain for Subset of X;
coherence
by Def10;
end;
:: from PRALG_3, 2009.09.18, A.T.
definition
let f be Function, x be object;
func proj(f,x) -> Function means
:Def16:
dom it = product f & for y being
Function st y in dom it holds it.y = y.x;
existence
proof
defpred P[object,object] means
for g be Function st $1 = g holds $2 = g.x;
A1: now
let q be object;
assume q in product f;
then reconsider q1 = q as Function;
reconsider y = q1.x as object;
take y;
thus P[q,y];
end;
consider F be Function such that
A2: dom F = product f & for a being object st a in product f holds P[a,F.a]
from CLASSES1:sch 1(A1);
take F;
thus thesis by A2;
end;
uniqueness
proof
let F,G be Function such that
A3: dom F = product f and
A4: for y being Function st y in dom F holds F.y = y.x and
A5: dom G = product f and
A6: for y being Function st y in dom G holds G.y = y.x;
now
let y be object;
assume
A7: y in product f;
then reconsider x1 = y as Function;
thus F.y = x1.x by A3,A4,A7
.= G.y by A5,A6,A7;
end;
hence thesis by A3,A5;
end;
end;
registration
let f be Function, x be object;
cluster proj(f,x) -> (product f)-defined;
coherence
by Def16;
end;
registration
let f be Function, x be object;
cluster proj(f,x) -> total;
coherence
by Def16;
end;
registration
let f be non-empty Function;
cluster -> f-compatible for Element of product f;
coherence
proof let e be Element of product f;
let x be object;
assume x in dom e;
then x in dom f by Th9;
hence e.x in f.x by Th9;
end;
end;
registration
let I be set; let f be I-defined non-empty Function;
cluster -> I-defined for Element of product f;
coherence;
end;
registration
let f be Function;
cluster -> f-compatible for Element of sproduct f;
coherence
by Th49;
end;
registration
let I be set; let f be I-defined Function;
cluster -> I-defined for Element of sproduct f;
coherence;
end;
registration
let I be set; let f be total I-defined non-empty Function;
cluster -> total for Element of product f;
coherence
proof let e be Element of product f;
thus dom e = dom f by Th9
.= I by PARTFUN1:def 2;
end;
end;
theorem Th100:
for I being set, f being non-empty I-defined Function
for p being f-compatible I-defined Function
holds p in sproduct f
proof let I be set, f be non-empty I-defined Function;
let p be f-compatible I-defined Function;
A1: dom p c= dom f by FUNCT_1:105;
for x being object st x in dom p holds p.x in f.x by FUNCT_1:def 14;
hence p in sproduct f by A1,Def9;
end;
theorem
for I being set, f being non-empty I-defined Function
for p being f-compatible I-defined Function
ex s being Element of product f st p c= s
proof let I be set;
let f be non-empty I-defined Function,
p be f-compatible I-defined Function;
reconsider p as Element of sproduct f by Th100;
set h = the Element of product f;
reconsider s = h +* p as Element of product f by Th53;
take s;
thus thesis by FUNCT_4:25;
end;
:: from AMISTD_2, 2010.01.10, A.T
registration
let X be infinite set, a be set;
cluster X --> a -> infinite;
coherence;
end;
registration
cluster infinite for Function;
existence
proof
take omega --> 0;
thus thesis;
end;
end;
:: ORDERS_1:86, 2012.10.02, A.T.
Lm4: field R is finite implies R is finite
proof
assume field R is finite;
then reconsider A = field R as finite set;
R c= [:A,A:] :: by Lm4; from ORDERS_1
proof
let y,z be object;
assume
A1: [y,z] in R;
then
A2: z in field R by RELAT_1:15;
y in field R by A1,RELAT_1:15;
hence thesis by A2,ZFMISC_1:87;
end;
hence thesis;
end;
registration
let R be infinite Relation;
cluster field R -> infinite;
coherence by Lm4;
end;
registration
let X be infinite set;
cluster RelIncl X -> infinite;
coherence by CARD_1:63;
end;
theorem
for R,S being Relation st R,S are_isomorphic & R is finite
holds S is finite
proof
let R,S be Relation;
given F being Function such that
A1: F is_isomorphism_of R,S;
assume R is finite;
then field R is finite;
then dom F is finite by A1;
then rng F is finite by FINSET_1:8;
then field S is finite by A1;
hence thesis;
end;
theorem
product" {{}} = {}
proof
dom product" {{}} = DOM {{}} by Def12
.= {} by Th72;
hence thesis;
end;
theorem Th104:
for I being set, f being non-empty ManySortedSet of I
for s being f-compatible ManySortedSet of I
holds s in product f
proof let I be set, f be non-empty ManySortedSet of I;
let s be f-compatible ManySortedSet of I;
A1: dom s = I by PARTFUN1:def 2 .= dom f by PARTFUN1:def 2;
then for x being object st x in dom f holds s.x in f.x by FUNCT_1:def 14;
hence s in product f by A1,Th9;
end;
registration
let I be set, f be non-empty ManySortedSet of I;
cluster -> total for Element of product f;
coherence;
end;
definition
let I be set, f be non-empty ManySortedSet of I;
let M be f-compatible ManySortedSet of I;
func down M -> Element of product f equals M;
coherence by Th104;
end;
theorem
for X being functional with_common_domain set
for f being Function st f in X holds dom f = DOM X by Lm2;
theorem
for x being object, X being non empty functional set
st for f being Function st f in X holds x in dom f
holds x in DOM X
proof let x be object, X be non empty functional set such that
A1: for f being Function st f in X holds x in dom f;
set A = the set of all dom f where f is Element of X;
consider Y being object such that
A2: Y in X by XBOOLE_0:def 1;
reconsider Y as Function by A2;
A3: dom Y in A by A2;
for Y holds Y in A implies x in Y
proof let Y;
assume Y in A;
then ex f being Element of X st Y = dom f;
hence x in Y by A1;
end;
hence x in DOM X by A3,SETFAM_1:def 1;
end;
scheme FuncSepOrg { X()->set, F(object)->set, P[object,object] }:
ex f st dom f = X() &
for x being set st x in X()
for y being set holds y in f.x iff y in F(x) & P[x,y]
proof
consider f such that
A1: dom f = X() and
A2: for x being object st x in X()
for y being object holds y in f.x iff y in F(x) & P[x,y]
from FuncSeparation;
take f;
thus thesis by A1,A2;
end;
:: from NAGATA_1, 2013.01.13, A.T.
notation
let X be set;
antonym X is uncountable for X is countable;
end;
registration
cluster uncountable -> non empty for set;
coherence;
end;