:: Differentiation in Normed Spaces
:: by Noboru Endou and Yasunari Shidama
::
:: Received May 19, 2013
:: Copyright (c) 2013-2017 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 NUMBERS, REAL_1, ZFMISC_1, NORMSP_1, PRE_TOPC, PARTFUN1, FUNCT_1,
NAT_1, FDIFF_1, SUBSET_1, RELAT_1, LOPBAN_1, ORDINAL4, RCOMP_1, TARSKI,
ARYTM_3, VALUED_1, FUNCT_2, ARYTM_1, CARD_1, XXREAL_0, XBOOLE_0, CARD_3,
FINSEQ_1, NDIFF_6;
notations TARSKI, XBOOLE_0, ZFMISC_1, SUBSET_1, RELAT_1, FUNCT_1, ORDINAL1,
RELSET_1, PARTFUN1, FUNCT_2, BINOP_1, CARD_3, NUMBERS, XCMPLX_0,
XXREAL_0, XREAL_0, FINSEQ_1, STRUCT_0, PRE_TOPC, RLVECT_1, NORMSP_1,
VFUNCT_1, LOPBAN_1, NFCONT_1, NDIFF_1;
constructors NFCONT_1, VFUNCT_1, NDIFF_1, RELSET_1, PRVECT_2;
registrations RELSET_1, STRUCT_0, ORDINAL1, XREAL_0, FUNCT_1, INT_1, FUNCT_2,
XBOOLE_0, SUBSET_1, FINSEQ_1, CARD_3, LOPBAN_1, PRVECT_3, NAT_1,
AOFA_A00;
requirements SUBSET, REAL, NUMERALS, ARITHM;
equalities XCMPLX_0, BINOP_1;
theorems TARSKI, ZFMISC_1, XBOOLE_0, XBOOLE_1, BINOP_1, NAT_1, RELAT_1,
FUNCT_1, VFUNCT_1, INT_1, FUNCT_2, FINSEQ_1, NDIFF_1, XREAL_1, XXREAL_0,
RELSET_1, PRVECT_3, XTUPLE_0, PARTFUN1;
schemes FUNCT_2, NAT_1, BINOP_1, RECDEF_1;
begin :: Preliminaries
theorem
for D,E,F be non empty set holds
ex I be Function of Funcs(D,Funcs(E,F)), Funcs([:D,E:],F)
st I is bijective
& for f be Function of D,Funcs(E,F), d,e be object st d in D & e in E
holds (I.f).(d,e) = (f.d).e
proof
let D,E,F be non empty set;
defpred P[object,object] means
ex f be Function of D,Funcs(E,F), g be Function of [:D,E:],F
st $1=f & $2=g &
for d,e be object st d in D & e in E holds g.(d,e) = (f.d).e;
A1:for x be object st x in Funcs(D,Funcs(E,F))
ex y be object st y in Funcs([:D,E:],F) & P[x,y]
proof
let x be object;
assume x in Funcs(D,Funcs(E,F)); then
consider f being Function such that
A2: x = f & dom f = D & rng f c= Funcs(E,F) by FUNCT_2:def 2;
reconsider f as Function of D,Funcs(E,F) by FUNCT_2:2,A2;
deffunc F0(object, object) = (f.$1).$2;
A3:for x,y be object st x in D & y in E holds F0(x,y) in F
proof
let d,e be object;
assume A4: d in D & e in E; then
f.d is Function of E,F by FUNCT_2:5,66;
hence thesis by A4,FUNCT_2:5;
end;
consider g being Function of [:D,E:],F such that
A5: for x,y be object st
x in D & y in E holds g.(x,y) = F0(x,y) from BINOP_1:sch 2(A3);
g in Funcs([:D,E:],F) by FUNCT_2:8;
hence thesis by A2,A5;
end;
consider I be Function of Funcs(D,Funcs(E,F)), Funcs([:D,E:],F) such that
A6: for x be object st x in Funcs(D,Funcs(E,F)) holds P[x,I.x]
from FUNCT_2:sch 1(A1);
A7:for f be Function of D,Funcs(E,F), d,e be object st d in D & e in E holds
(I.f).(d,e) = (f.d).e
proof
let f be Function of D,Funcs(E,F), d,e be object;
assume A8: d in D & e in E;
f in Funcs(D,Funcs(E,F)) by FUNCT_2:8; then
ex f0 be Function of D,Funcs(E,F), g0 be Function of [:D,E:],F
st f=f0 & I.f=g0 &
for d,e be object st d in D & e in E holds g0.(d,e) = (f0.d).e by A6;
hence (I.f).(d,e) = (f.d).e by A8;
end;
now let z1,z2 be object;
assume A9: z1 in Funcs(D,Funcs(E,F))
& z2 in Funcs(D,Funcs(E,F)) & I.z1=I.z2; then
reconsider z1f = z1, z2f = z2 as Function of D,Funcs(E,F) by FUNCT_2:66;
now let d be object;
assume A10: d in D; then
A11: z1f.d is Function of E,F & z2f.d is Function of E,F by FUNCT_2:5,66;
now let e be object;
assume A12: e in E; then
(z1f.d).e = (I.z2f).(d,e) by A7,A10,A9;
hence (z1f.d).e = (z2f.d).e by A7,A10,A12;
end;
hence z1f.d = z2f.d by A11,FUNCT_2:12;
end;
hence z1=z2 by FUNCT_2:12;
end; then
A13:I is one-to-one by FUNCT_2:19;
now let w be object;
assume w in Funcs([:D,E:],F); then
reconsider wf = w as Function of [:D,E:],F by FUNCT_2:66;
defpred P[object,object] means
ex f be Function of E,F st
$2=f &
for e be object st e in E holds f.e = wf.($1,e);
A14: for d be object st d in D ex y be object st y in Funcs(E,F) & P[d,y]
proof
let d be object;
assume A15: d in D;
deffunc F0(object) = wf.(d,$1);
A16: for e be object st e in E holds F0(e) in F
proof
let e be object;
assume e in E; then
[d,e] in [:D,E:] by A15,ZFMISC_1:def 2;
hence thesis by FUNCT_2:5;
end;
consider f being Function of E,F such that
A17: for e be object st e in E holds f.e = F0(e) from FUNCT_2:sch 2(A16);
f in Funcs(E,F) by FUNCT_2:8;
hence thesis by A17;
end;
consider zf be Function of D,Funcs(E,F) such that
A18: for d be object st d in D holds P[d,zf.d] from FUNCT_2:sch 1(A14);
A19: zf in Funcs(D,Funcs(E,F)) by FUNCT_2:8;
A20: now let d,e be set;
assume A21: d in D & e in E; then
A22: (I.zf).(d,e) = (zf.d).e by A7;
ex L be Function of E,F st
zf.d = L
& for e be object st e in E holds L.e = wf.(d,e) by A18,A21;
hence (I.zf).(d,e) = wf.(d,e) by A22,A21;
end;
I.zf is Function of [:D,E:],F by A19,FUNCT_2:5,66; then
I.zf = w by BINOP_1:1,A20;
hence w in rng I by A19,FUNCT_2:112;
end; then
Funcs([:D,E:],F) c= rng I by TARSKI:def 3; then
I is onto by FUNCT_2:def 3,XBOOLE_0:def 10;
hence thesis by A7,A13;
end;
theorem Th2:
for D,E,F be non empty set holds
ex I be Function of Funcs(D,Funcs(E,F)), Funcs([:E,D:],F)
st I is bijective
& for f be Function of D,Funcs(E,F), e,d be object
st e in E & d in D holds (I.f).(e,d) = (f.d).e
proof
let D,E,F be non empty set;
defpred P[object,object] means
ex f be Function of D,Funcs(E,F), g be Function of [:E,D:],F
st $1=f & $2=g
& for e,d be object st e in E & d in D holds g.(e,d) = (f.d).e;
A1:for x be object st x in Funcs(D,Funcs(E,F))
ex y be object st y in Funcs([:E,D:],F) & P[x,y]
proof
let x be object;
assume x in Funcs(D,Funcs(E,F)); then
consider f being Function such that
A2: x = f & dom f = D & rng f c= Funcs(E,F) by FUNCT_2:def 2;
reconsider f as Function of D,Funcs(E,F) by FUNCT_2:2,A2;
deffunc F0(object,object) = (f.$2).$1;
A3:for y,x be object st y in E & x in D holds F0(y,x) in F
proof
let e,d be object;
assume A4: e in E & d in D; then
f.d is Function of E,F by FUNCT_2:5,66;
hence F0(e,d) in F by A4,FUNCT_2:5;
end;
consider g being Function of [:E,D:],F such that
A5: for y,x be object st
y in E & x in D holds g.(y,x) = F0(y,x) from BINOP_1:sch 2(A3);
g in Funcs([:E,D:],F) by FUNCT_2:8;
hence thesis by A2,A5;
end;
consider I be Function of Funcs(D,Funcs(E,F)), Funcs([:E,D:],F)
such that
A6: for x be object st x in Funcs(D,Funcs(E,F)) holds P[x,I.x]
from FUNCT_2:sch 1(A1);
A7:for f be Function of D,Funcs(E,F), e,d be object st
e in E & d in D holds (I.f).(e,d) = (f.d).e
proof
let f be Function of D,Funcs(E,F), e,d be object;
assume A8: e in E & d in D;
f in Funcs(D,Funcs(E,F)) by FUNCT_2:8; then
ex f0 be Function of D,Funcs(E,F), g0 be Function of [:E,D:],F
st f=f0 & I.f=g0
& for e,d be object st e in E & d in D holds
g0.(e,d) = (f0.d).e by A6;
hence (I.f).(e,d) = (f.d).e by A8;
end;
now let z1,z2 be object;
assume A9: z1 in Funcs(D,Funcs(E,F))
& z2 in Funcs(D,Funcs(E,F))
& I.z1=I.z2; then
reconsider z1f = z1, z2f = z2 as Function of D,Funcs(E,F) by FUNCT_2:66;
now let d be object;
assume A10: d in D; then
A11: z1f.d is Function of E,F & z2f.d is Function of E,F by FUNCT_2:5,66;
now let e be object;
assume A12: e in E; then
(z1f.d).e = (I.z2f).(e,d) by A7,A10,A9;
hence (z1f.d).e = (z2f.d).e by A7,A10,A12;
end;
hence z1f.d = z2f.d by A11,FUNCT_2:12;
end;
hence z1=z2 by FUNCT_2:12;
end; then
A13:I is one-to-one by FUNCT_2:19;
now let w be object;
assume w in Funcs([:E,D:],F); then
reconsider wf = w as Function of [:E,D:],F by FUNCT_2:66;
defpred P[object,object] means
ex f be Function of E,F
st $2=f & for e be object st e in E holds f.e = wf.(e,$1);
A14: for d be object st d in D
ex y be object st y in Funcs(E,F) & P[d,y]
proof
let d be object;
assume A15: d in D;
deffunc F0(object) = wf.($1,d);
A16: for e be object st e in E holds F0(e) in F
proof
let e be object;
assume e in E; then
[e,d] in [:E,D:] by A15,ZFMISC_1:def 2;
hence thesis by FUNCT_2:5;
end;
consider f being Function of E,F such that
A17: for e be object st e in E holds f.e = F0(e) from FUNCT_2:sch 2(A16);
f in Funcs(E,F) by FUNCT_2:8;
hence thesis by A17;
end;
consider zf be Function of D,Funcs(E,F) such that
A18: for d be object st d in D holds P[d,zf.d] from FUNCT_2:sch 1(A14);
A19: zf in Funcs(D,Funcs(E,F)) by FUNCT_2:8;
A20: now let e,d be set;
assume A21: e in E & d in D; then
A22: (I.zf).(e,d) = (zf.d).e by A7;
ex L be Function of E,F st
zf.d = L &
for e be object st e in E holds L.e = wf.(e,d) by A18,A21;
hence (I.zf).(e,d) = wf.(e,d) by A22,A21;
end;
I.zf is Function of [:E,D:],F by A19,FUNCT_2:5,66; then
I.zf = w by BINOP_1:1,A20;
hence w in rng I by A19,FUNCT_2:112;
end; then
Funcs([:E,D:],F) c= rng I by TARSKI:def 3; then
I is onto by FUNCT_2:def 3,XBOOLE_0:def 10;
hence thesis by A7,A13;
end;
theorem
for D,E be non-empty non empty FinSequence, F be non empty set holds
ex L being Function of Funcs(product D,Funcs(product E,F)),
Funcs(product(E^D),F)
st L is bijective
& for f be Function of product D,Funcs(product E,F),
e,d be FinSequence
st e in product E & d in product D holds (L.f).(e^d) = (f.d).e
proof
let D,E be non-empty non empty FinSequence, F be non empty set;
consider I be Function of Funcs(product D,Funcs(product E,F)),
Funcs([:product E,product D:],F) such that
A1: I is bijective
& for f be Function of product D,Funcs(product E,F), e,d be object
st e in product E & d in product D
holds (I.f).(e,d) = (f.d).e by Th2;
consider J be Function of [: product E,product D :],product(E^D)
such that
A2: J is one-to-one onto
& for x,y be FinSequence st x in product E & y in product D
holds J.(x,y) = x^y by PRVECT_3:6;
A3:
rng J = product(E^D) by A2,FUNCT_2:def 3; then
reconsider K = J" as Function of product(E^D),[: product E,product D :]
by FUNCT_2:25,A2;
deffunc F0(object)=(I.$1) * K;
A4:for x be object st x in Funcs(product D,Funcs(product E,F))
holds F0(x) in Funcs(product(E^D),F)
proof
let x be object;
assume x in Funcs(product D,Funcs(product E,F)); then
A5:I.x in Funcs([:product E,product D:],F) by FUNCT_2:5;
K in Funcs(product(E^D),[:product E,product D:]) by FUNCT_2:8;
hence thesis by A5,FUNCT_2:128;
end;
consider L being Function of Funcs(product D,Funcs(product E,F)),
Funcs(product(E^D),F) such that
A6: for e be object st e in Funcs(product D,Funcs(product E,F))
holds L.e = F0(e) from FUNCT_2:sch 2(A4);
A7:
K*J = id [:product E,product D:] by A2,A3,FUNCT_2:29;
A8:
J*K = id product(E^D) by A2,A3,FUNCT_2:29;
now let z1,z2 be object;
assume A9: z1 in Funcs(product D,Funcs(product E,F))
& z2 in Funcs(product D,Funcs(product E,F)) & L.z1=L.z2;
(I.z1) * K = L.z2 by A6,A9; then
A10:((I.z1) * K)*J =((I.z2) * K)*J by A6,A9;
(I.z1)*(K*J) =((I.z1) * K)*J by RELAT_1:36; then
A11:(I.z1)*(K*J) = (I.z2)*(K*J) by A10,RELAT_1:36;
I.z1 is Function of [:product E,product D:],F &
I.z2 is Function of [:product E,product D:],F by A9,FUNCT_2:5,66; then
(I.z1)*(K*J) = I.z1 & (I.z2)*(K*J) = I.z2 by A7,FUNCT_2:17;
hence z1=z2 by A1,FUNCT_2:19,A9,A11;
end; then
A12:L is one-to-one by FUNCT_2:19;
now let w be object;
assume w in Funcs(product(E^D),F); then
reconsider wf = w as Function of product(E^D),F by FUNCT_2:66;
wf*J in Funcs([: product E,product D :],F ) by FUNCT_2:8; then
wf*J in rng I by A1,FUNCT_2:def 3; then
consider zf be object such that
A13: zf in Funcs(product D,Funcs(product E,F)) & I.zf = wf*J by FUNCT_2:11;
L.zf = wf*J*K by A6,A13; then
L.zf = wf* id (product(E^D)) by A8,RELAT_1:36; then
L.zf =w by FUNCT_2:17;
hence w in rng L by A13,FUNCT_2:112;
end;
then Funcs(product(E^D),F) c= rng L by TARSKI:def 3; then
A14:L is onto by FUNCT_2:def 3,XBOOLE_0:def 10;
for f be Function of product D,Funcs(product E,F), e,d be FinSequence
st e in product E & d in product D
holds (L.f).(e^d) = (f.d).e
proof
let f be Function of product D,Funcs(product E,F), e,d be FinSequence;
assume A15: e in product E & d in product D; then
A16: (I.f).(e,d) = (f.d).e by A1;
A17: J.(e,d) = e^d by A2,A15;
A18: [e,d] in [: product E,product D :] by A15,ZFMISC_1:87;
A19: K.(J.(e,d)) = [e,d] by FUNCT_2:26,A2,A15,ZFMISC_1:87;
f in Funcs(product D,Funcs(product E,F)) by FUNCT_2:8; then
(L.f).(e^d) = ((I.f)*K).(J.(e,d)) by A17,A6;
hence (L.f).(e^d) = (f.d).e by A16,A19,A18,FUNCT_2:5,15;
end;
hence thesis by A12,A14;
end;
theorem Th4:
for X,Y be non empty set holds
ex I be Function of [:X,Y:],[:X,product <*Y*>:]
st I is bijective
& for x,y be object st x in X & y in Y holds I.(x,y) = [x,<*y*>]
proof
let X,Y be non empty set;
consider J be Function of Y,product <*Y*> such that
A1: J is one-to-one onto
& for y be object st y in Y holds J.y = <*y*> by PRVECT_3:4;
defpred P[object,object,object] means $3 = [ $1,<* $2 *> ];
A2:for x,y be object st x in X & y in Y
ex z be object st z in [:X,product <*Y*>:] & P[x,y,z]
proof
let x,y be object;
assume A3: x in X & y in Y; then
J.y = <*y*> by A1; then
<*y*> in product <*Y*> by A3,FUNCT_2:5;
hence thesis by A3,ZFMISC_1:87;
end;
consider I be Function of [: X, Y:],[:X,product <*Y*>:] such that
A4: for x,y be object st x in X & y in Y holds P[x,y,I.(x,y)]
from BINOP_1:sch 1(A2);
reconsider I as Function of [:X,Y:],[:X, product <*Y*>:];
take I;
now let z1,z2 be object;
assume A5: z1 in [:X,Y:] & z2 in [:X,Y:] & I.z1=I.z2; then
consider x1,y1 be object such that
A6: x1 in X & y1 in Y & z1=[x1,y1] by ZFMISC_1:def 2;
consider x2,y2 be object such that
A7: x2 in X & y2 in Y & z2=[x2,y2] by A5,ZFMISC_1:def 2;
[x1,<*y1*>] = I.(x1,y1) by A4,A6
.= I.(x2,y2) by A5,A6,A7
.= [x2,<*y2*>] by A4,A7; then
x1=x2 & <*y1*>=<*y2*> by XTUPLE_0:1;
hence z1=z2 by A6,A7,FINSEQ_1:76;
end;
then A8: I is one-to-one by FUNCT_2:19;
now let w be object;
assume w in [:X, product <*Y*>:]; then
consider x,y1 be object such that
A9: x in X & y1 in product <*Y*> & w=[x,y1] by ZFMISC_1:def 2;
y1 in rng J by A1,A9,FUNCT_2:def 3; then
consider y be object such that
A10: y in Y & y1=J.y by FUNCT_2:11;
J.y = <*y*> by A10,A1; then
A11:w = I.(x,y) by A4,A9,A10;
[x,y] in [:X,Y:] by A9,A10,ZFMISC_1:87;
hence w in rng I by A11,FUNCT_2:4;
end; then
[:X, product <*Y*>:] c= rng I by TARSKI:def 3;
then I is onto by FUNCT_2:def 3,XBOOLE_0:def 10;
hence thesis by A4,A8;
end;
theorem Th5:
for X be non-empty non empty FinSequence, Y be non empty set holds
ex K be Function of [:product X,Y:],product(X^<*Y*>)
st K is bijective
& for x be FinSequence, y be object
st x in product X & y in Y holds K.(x,y) = x^<*y*>
proof
let X be non-empty non empty FinSequence;
let Y be non empty set;
consider I be Function of [:product X,Y:],[: product X, product <*Y*>:]
such that
A1: I is bijective
& for x be object, y be object
st x in product X & y in Y holds I.(x,y) = [x,<*y*>] by Th4;
consider J be Function of [:product X,product <*Y*>:],product (X^<*Y*>)
such that
A2: J is one-to-one onto
& for x,y be FinSequence
st x in product X & y in product <*Y*> holds J.(x,y) = x^y by PRVECT_3:6;
set K=J*I;
reconsider K as Function of [:product X,Y:],product (X^<*Y*>);
take K;
A3:rng J = product (X^<*Y*>) by A2,FUNCT_2:def 3;
rng I = [:product X,product <*Y*>:] by A1,FUNCT_2:def 3; then
rng(J*I) = J.:([:product X,product <*Y*>:]) by RELAT_1:127
.= product (X^<*Y*>) by A3,RELSET_1:22;
then K is onto by FUNCT_2:def 3;
hence K is bijective by A1,A2;
thus for x be FinSequence, y be object st
x in product X & y in Y holds K.(x,y) = x^<*y*>
proof
let x be FinSequence, y be object;
assume A4:x in product X & y in Y; then
A5: I.(x,y) = [x,<*y*>] by A1;
[x,y] in [:product X,Y:] by A4,ZFMISC_1:87; then
I.([x,y]) in [:product X,product <*Y*>:] by FUNCT_2:5; then
<*y*> in product <*Y*> by A5,ZFMISC_1:87; then
J.(x,<*y*>) = x^<*y*> by A4,A2;
hence thesis by A5,A4,ZFMISC_1:87,FUNCT_2:15;
end;
end;
theorem
for D be non empty set,
E be non-empty non empty FinSequence,
F be non empty set holds
ex L being Function of Funcs(D,Funcs(product E,F)),
Funcs(product(E^<*D*>),F)
st L is bijective
& for f be Function of D,Funcs(product E,F),
e be FinSequence, d be object
st e in product E & d in D holds (L.f).(e^<*d*>) = (f.d).e
proof
let D be non empty set,
E be non-empty non empty FinSequence,
F be non empty set;
consider I be Function of Funcs(D,Funcs(product E,F)),
Funcs([:product E, D:],F) such that
A1: I is bijective
& for f be Function of D,Funcs(product E,F), e,d be object
st e in product E & d in D holds (I.f).(e,d) = (f.d).e by Th2;
consider J be Function of [: product E,D :],product(E^<*D*>) such that
A2: J is bijective
& for x be FinSequence, y be object st x in product E & y in D
holds J.(x,y) = x^<*y*> by Th5;
A3:rng J = product(E^<*D*>) by A2,FUNCT_2:def 3; then
reconsider K = J" as Function of product(E^<*D*>),[:product E,D:]
by FUNCT_2:25,A2;
deffunc F0(object)=(I.$1) * K;
A4:for x be object st x in Funcs(D,Funcs(product E,F))
holds F0(x) in Funcs(product(E^<*D*>),F)
proof
let x be object;
assume x in Funcs(D,Funcs(product E,F)); then
I.x in Funcs([:product E,D:],F) &
K in Funcs(product(E^<*D*>),[:product E,D:]) by FUNCT_2:5,8;
hence thesis by FUNCT_2:128;
end;
consider L being Function of Funcs(D,Funcs(product E,F)),
Funcs(product(E^<*D*>),F) such that
A5: for e be object st
e in Funcs(D,Funcs(product E,F)) holds L.e = F0(e) from FUNCT_2:sch 2(A4);
take L;
A6:
(K*J) = id [: product E,D :] by A2,A3,FUNCT_2:29;
A7:
(J*K) = id product(E^<*D*>) by A2,A3,FUNCT_2:29;
now let z1,z2 be object;
assume A8: z1 in Funcs(D,Funcs(product E,F))
& z2 in Funcs(D,Funcs(product E,F)) & L.z1=L.z2;
(I.z1) * K = L.z2 by A5,A8; then
A9:((I.z1) * K)*J =((I.z2) * K)*J by A5,A8;
(I.z1)*(K*J) = ((I.z1)* K)*J by RELAT_1:36; then
A10:(I.z1)*(K*J) = (I.z2)*(K*J) by A9,RELAT_1:36;
I.z1 is Function of [:product E,D:],F &
I.z2 is Function of [:product E,D:],F by A8,FUNCT_2:5,66; then
(I.z1)*(K*J) = I.z1 & (I.z2)*(K*J) = I.z2 by A6,FUNCT_2:17;
hence z1=z2 by A1,FUNCT_2:19,A8,A10;
end;
then A11: L is one-to-one by FUNCT_2:19;
now let w be object;
assume w in Funcs(product(E^<*D*>),F); then
reconsider wf = w as Function of product(E^<*D*>),F by FUNCT_2:66;
wf*J in Funcs([: product E, D :],F ) by FUNCT_2:8; then
wf*J in rng I by A1,FUNCT_2:def 3; then
consider zf be object such that
A12: zf in Funcs(D,Funcs(product E,F)) & I.zf = wf*J by FUNCT_2:11;
L.zf = wf*J*K by A5,A12; then
L.zf = wf* id (product(E^<*D*>)) by A7,RELAT_1:36; then
L.zf = w by FUNCT_2:17;
hence w in rng L by A12,FUNCT_2:112;
end;
then Funcs(product(E^<*D*>),F) c= rng L by TARSKI:def 3;
then L is onto by FUNCT_2:def 3,XBOOLE_0:def 10;
hence L is bijective by A11;
thus for f be Function of D,Funcs(product E,F),
e be FinSequence, d be object
st e in product E & d in D holds (L.f).(e^<*d*>) = (f.d).e
proof
let f be Function of D,Funcs(product E,F),
e be FinSequence, d be object;
assume A13: e in product E & d in D; then
A14: (I.f).(e,d) = (f.d).e by A1;
A15: J.(e,d) = e^<*d*> by A2,A13;
[e,d] in [:product E,D:] by A13,ZFMISC_1:def 2; then
A16: J.(e,d) in product(E^<*D*>) & K.(J.(e,d)) = [e,d] by A2,FUNCT_2:5,26;
f in Funcs(D,Funcs(product E,F)) by FUNCT_2:8; then
(L.f).(e^<*d*>) = ((I.f)*K).(J.(e,d)) by A15,A5;
hence (L.f).(e^<*d*>) = (f.d).e by A14,A16,FUNCT_2:15;
end;
end;
reserve S,T for RealNormSpace;
reserve f,f1,f2 for PartFunc of S,T;
reserve Z for Subset of S;
reserve i,n for Nat;
definition let S be set;
assume A1: S is RealNormSpace;
func modetrans(S) -> RealNormSpace equals :Def1:
S;
correctness by A1;
end;
definition let S,T be RealNormSpace;
func diff_SP(S,T) -> Function means :Def2:
dom it = NAT & it.0 = T &
for i be Nat holds
it.(i+1) = R_NormSpace_of_BoundedLinearOperators(S,modetrans(it.i));
existence
proof
defpred R[Nat,set,set] means
$3= R_NormSpace_of_BoundedLinearOperators(S,modetrans($2));
A1:for n being Nat for x be set ex y being set st R[n,x,y]
proof
let n be Nat;
let x be set;
take y = R_NormSpace_of_BoundedLinearOperators(S,modetrans(x));
thus thesis;
end;
thus ex g be Function st
dom g = NAT & g.0 = T &
for n being Nat holds R[n,g.n,g.(n+1)] from RECDEF_1:sch 1(A1);
end;
uniqueness
proof
let seq1,seq2 be Function;
assume that
A2: dom seq1 = NAT & seq1.0=T &
for n be Nat holds
seq1.(n+1) = R_NormSpace_of_BoundedLinearOperators(S,modetrans(seq1.n))
and
A3: dom seq2 = NAT & seq2.0=T &
for n be Nat holds
seq2.(n+1) = R_NormSpace_of_BoundedLinearOperators(S,modetrans(seq2.n));
defpred P[Nat] means seq1.$1 = seq2.$1;
A4:for k be Nat st P[k] holds P[k+1]
proof
let k be Nat;
assume P[k]; then
seq2.(k+1)
= R_NormSpace_of_BoundedLinearOperators(S,modetrans(seq1.k)) by A3;
hence seq1.(k+1) = seq2.(k+1) by A2;
end;
A5:P[0] by A2,A3;
for n be Nat holds P[n] from NAT_1:sch 2(A5,A4); then
for n be object st n in dom seq1 holds seq1.n = seq2.n by A2;
hence seq1 = seq2 by FUNCT_1:2,A2,A3;
end;
end;
theorem Th7:
(diff_SP(S,T)).0 = T &
(diff_SP(S,T)).1 = R_NormSpace_of_BoundedLinearOperators(S,T) &
(diff_SP(S,T)).2
= R_NormSpace_of_BoundedLinearOperators( S,
R_NormSpace_of_BoundedLinearOperators(S,T) )
proof
thus A1: (diff_SP(S,T)).0 = T by Def2;
(diff_SP(S,T)).1 = (diff_SP(S,T)).((0 qua Nat) + 1); then
(diff_SP(S,T)).1
= R_NormSpace_of_BoundedLinearOperators(S,modetrans(diff_SP(S,T).0))
by Def2;
hence A2: (diff_SP(S,T)).1
= R_NormSpace_of_BoundedLinearOperators(S,T) by A1,Def1;
(diff_SP(S,T)).2 = (diff_SP(S,T)).(1+1); then
(diff_SP(S,T)).2
= R_NormSpace_of_BoundedLinearOperators(S,modetrans(diff_SP(S,T).1))
by Def2;
hence (diff_SP(S,T)).2
= R_NormSpace_of_BoundedLinearOperators(S,
R_NormSpace_of_BoundedLinearOperators(S,T) ) by A2,Def1;
end;
theorem Th8:
for i be Nat holds (diff_SP(S,T)).i is RealNormSpace
proof
defpred P[Nat] means (diff_SP(S,T)).$1 is RealNormSpace;
A1:P[0] by Th7;
A2:now let i be Nat;
assume P[i]; then
reconsider H = diff_SP(S,T).i as RealNormSpace;
modetrans(diff_SP(S,T).i) = H by Def1; then
(diff_SP(S,T)).(i+1)
= R_NormSpace_of_BoundedLinearOperators(S,H) by Def2;
hence P[i+1];
end;
for n be Nat holds P[n] from NAT_1:sch 2(A1,A2);
hence thesis;
end;
theorem Th9:
for i be Nat holds
ex H be RealNormSpace st H = (diff_SP(S,T)).i
& (diff_SP(S,T)).(i+1) = R_NormSpace_of_BoundedLinearOperators(S,H)
proof
let i be Nat;
take H = modetrans(diff_SP(S,T).i);
thus H = diff_SP(S,T).i by Def1,Th8;
thus (diff_SP(S,T)).(i+1)
= R_NormSpace_of_BoundedLinearOperators(S,H) by Def2;
end;
definition
let S,T be RealNormSpace, i be Nat;
func diff_SP(i,S,T) -> RealNormSpace equals
diff_SP(S,T).i;
correctness
proof
ex H be RealNormSpace st H = diff_SP(S,T).i
& (diff_SP(S,T)).(i+1) = R_NormSpace_of_BoundedLinearOperators(S,H)
by Th9;
hence thesis;
end;
end;
theorem Th10:
for i be Nat holds
diff_SP(i+1,S,T) = R_NormSpace_of_BoundedLinearOperators(S,diff_SP(i,S,T))
proof
let i be Nat;
set H = diff_SP(i,S,T);
ex H1 be RealNormSpace st H1 = (diff_SP(S,T)).i
& (diff_SP(S,T)).(i+1) = R_NormSpace_of_BoundedLinearOperators(S,H1)
by Th9;
hence thesis;
end;
definition let S,T be RealNormSpace, f be set;
assume A1: f is PartFunc of S,T;
func modetrans(f,S,T) -> PartFunc of S,T equals :Def4:
f;
correctness by A1;
end;
definition let S,T be RealNormSpace, f be PartFunc of S,T,
Z be Subset of S;
func diff(f,Z) -> Function means :Def5:
dom it = NAT & it.0 = f|Z &
for i be Nat holds
it.(i+1) = modetrans(it.i,S,diff_SP(i,S,T)) `| Z;
existence
proof
defpred R[Nat,set,set] means
$3= modetrans($2,S,diff_SP($1,S,T)) `| Z;
A1:for n being Nat for x be set ex y being set st R[n,x,y];
ex g be Function st
dom g = NAT & g.0 = f|Z &
for n being Nat holds R[n,g.n,g.(n+1)] from RECDEF_1:sch 1(A1);
hence thesis;
end;
uniqueness
proof
let seq1,seq2 be Function;
assume that
A2: dom seq1 = NAT & seq1.0=f|Z &
for n be Nat holds
seq1.(n+1) = modetrans(seq1.n,S,diff_SP(n,S,T)) `| Z and
A3: dom seq2 = NAT & seq2.0=f|Z &
for n be Nat holds
seq2.(n+1) = modetrans(seq2.n,S,diff_SP(n,S,T)) `| Z;
defpred P[Nat] means seq1.$1 = seq2.$1;
A4:for k be Nat st P[k] holds P[k+1]
proof
let k be Nat;
assume P[k]; then
modetrans(seq1.k,S,diff_SP(k,S,T)) `| Z = seq2.(k+1) by A3;
hence seq1.(k+1) = seq2.(k+1) by A2;
end;
A5:P[0] by A2,A3;
for n be Nat holds P[n] from NAT_1:sch 2(A5,A4); then
for n be object st n in dom seq1 holds seq1.n = seq2.n by A2;
hence seq1 = seq2 by FUNCT_1:2,A2,A3;
end;
end;
theorem Th11:
diff(f,Z).0 = f|Z & diff(f,Z).1 = (f|Z)`| Z &
diff(f,Z).2 = ((f|Z)`| Z) `| Z
proof
thus A1: diff(f,Z).0 = f|Z by Def5;
A2:diff_SP(0,S,T) = T by Th7; then
A3:modetrans(diff(f,Z).0,S,diff_SP(0,S,T)) = f|Z by A1,Def4;
diff(f,Z).1 = diff(f,Z).( (0 qua Nat) + 1);
hence A4: diff(f,Z).1 = (f|Z)`| Z by A3,A2,Def5;
A5:diff_SP(1,S,T) = R_NormSpace_of_BoundedLinearOperators(S,T)
by Th7; then
A6:modetrans(diff(f,Z).1,S,diff_SP(1,S,T))
= (f|Z)`| Z by A4,Def4;
diff(f,Z).2 = diff(f,Z).( 1 + 1);
hence diff(f,Z).2 = ((f|Z)`| Z) `| Z by A5,A6,Def5;
end;
theorem Th12:
for i be Nat holds diff(f,Z).i is PartFunc of S,diff_SP(i,S,T)
proof
defpred P[Nat] means
diff(f,Z).$1 is PartFunc of S,diff_SP($1,S,T);
diff(f,Z).0 = f|Z by Def5; then
A1:P[0] by Th7;
A2:now let i be Nat;
assume P[i];
A3: diff(f,Z).(i+1) = (modetrans(diff(f,Z).i,S,diff_SP(i,S,T))) `| Z by Def5;
diff_SP(i+1,S,T)
= R_NormSpace_of_BoundedLinearOperators(S,modetrans(diff_SP(S,T).i))
by Def2
.= R_NormSpace_of_BoundedLinearOperators(S,diff_SP(i,S,T)) by Def1;
hence P[i+1] by A3;
end;
for n be Nat holds P[n] from NAT_1:sch 2(A1,A2);
hence thesis;
end;
definition
let S,T be RealNormSpace, f be PartFunc of S,T,
Z be Subset of S, i be Nat;
func diff(f,i,Z) -> PartFunc of S,diff_SP(i,S,T) equals
diff(f,Z).i;
correctness by Th12;
end;
theorem Th13:
diff(f,i+1,Z) = diff(f,i,Z) `|Z
proof
A1:diff(f,Z).i is PartFunc of S,diff_SP(i,S,T) by Th12;
A2:modetrans(diff_SP(S,T).i) = diff_SP(S,T).i by Def1,Th8; then
modetrans(diff(f,Z).i,S,modetrans(diff_SP(S,T).i))
= diff(f,Z).i by A1,Def4;
hence thesis by A2,Def5;
end;
definition
let S,T be RealNormSpace;
let f be PartFunc of S,T;
let Z be Subset of S;
let n be Nat;
pred f is_differentiable_on n,Z means
Z c= dom f
& for i be Nat st i <= n-1 holds
modetrans(diff(f,Z).i,S,diff_SP(i,S,T)) is_differentiable_on Z;
end;
theorem Th14:
f is_differentiable_on n,Z
iff
Z c= dom f & for i be Nat st i <= n-1 holds diff(f,i,Z) is_differentiable_on Z
proof
hereby assume A1: f is_differentiable_on n,Z;
hence Z c= dom f;
hereby let i be Nat;
assume i <= n-1; then
modetrans(diff(f,Z).i,S,diff_SP(i,S,T))
is_differentiable_on Z by A1;
hence diff(f,i,Z) is_differentiable_on Z by Def4;
end;
end;
assume A2: Z c= dom f
& for i be Nat st i<=n-1 holds diff(f,i,Z) is_differentiable_on Z;
now let i be Nat;
assume i <= n-1; then
diff(f,i,Z) is_differentiable_on Z by A2;
hence modetrans(diff(f,Z).i,S,diff_SP(i,S,T))
is_differentiable_on Z by Def4;
end;
hence f is_differentiable_on n,Z by A2;
end;
theorem Th15:
f is_differentiable_on 1,Z
iff
Z c= dom f & f|Z is_differentiable_on Z
proof
hereby assume A1: f is_differentiable_on 1,Z;
hence Z c= dom f;
A2: diff(f,0,Z) is_differentiable_on Z by A1,Th14;
diff(f,Z).0 = f|Z by Def5;
hence f|Z is_differentiable_on Z by A2,Th7;
end;
assume A3: Z c= dom f & f|Z is_differentiable_on Z;
for i be Nat st i <= 1-1 holds
diff(f,i,Z) is_differentiable_on Z
proof
let i be Nat;
assume i <= 1-1; then
A4: i = 0;
f|Z = diff(f,0,Z) by Def5;
hence diff(f,i,Z) is_differentiable_on Z by A4,A3,Th7;
end;
hence f is_differentiable_on 1,Z by A3,Th14;
end;
theorem
f is_differentiable_on 2,Z
iff
Z c= dom f & f|Z is_differentiable_on Z &
(f|Z)`|Z is_differentiable_on Z
proof
hereby assume A1:f is_differentiable_on 2,Z;
hence Z c= dom f;
A2: diff(f,0,Z) is_differentiable_on Z by A1,Th14;
diff(f,Z).0 = f|Z by Def5;
hence f|Z is_differentiable_on Z by A2,Th7;
A3: diff(f,1,Z) is_differentiable_on Z by A1,Th14;
diff(f,Z).1 = (f|Z)`|Z by Th11;
hence (f|Z)`|Z is_differentiable_on Z by A3,Th7;
end;
assume A4: Z c= dom f & f|Z is_differentiable_on Z
& (f|Z)`|Z is_differentiable_on Z;
for i be Nat st i <= 2-1 holds diff(f,i,Z) is_differentiable_on Z
proof
let i be Nat;
assume A5: i <= 2-1;
per cases;
suppose A6: i = 1;
(f|Z)`|Z = diff(f,1,Z) by Th11;
hence diff(f,i,Z) is_differentiable_on Z by A6,A4,Th7;
end;
suppose i <> 1; then
i < 1 by A5,XXREAL_0:1; then
A7: i = 0 by NAT_1:14;
f|Z = diff(f,0,Z) by Def5;
hence diff(f,i,Z) is_differentiable_on Z by A7,A4,Th7;
end;
end;
hence f is_differentiable_on 2,Z by Th14,A4;
end;
theorem Th17:
for S,T be RealNormSpace, f be PartFunc of S,T,
Z be Subset of S, n be Nat st
f is_differentiable_on n,Z for m be Nat st m <= n
holds f is_differentiable_on m, Z
proof
let S,T be RealNormSpace,
f be PartFunc of S,T, Z be Subset of S;
let n be Nat such that
A1: f is_differentiable_on n,Z;
let m be Nat;
assume m <=n; then
A2:m-1 <=n-1 by XREAL_1:13;
thus Z c= dom f by A1;
thus thesis by A1,A2,XXREAL_0:2;
end;
theorem Th18:
for n be Nat, f be PartFunc of S,T
st 1 <= n & f is_differentiable_on n,Z holds Z is open
proof
let n be Nat, f be PartFunc of S,T;
assume 1 <= n & f is_differentiable_on n,Z; then
f is_differentiable_on 1,Z by Th17; then
Z c= dom f & f|Z is_differentiable_on Z by Th15;
hence Z is open by NDIFF_1:32;
end;
theorem Th19:
for n being Nat, f being PartFunc of S,T st 1<=n & f is_differentiable_on n,Z
holds
for i being Nat st i <= n holds
diff_SP(S,T).i is RealNormSpace
& diff(f,Z).i is PartFunc of S,diff_SP(i,S,T) & dom diff(f,i,Z) = Z
proof
let n be Nat, f be PartFunc of S,T;
assume A1: 1<=n & f is_differentiable_on n,Z;
let i be Nat;
assume A2: i<=n;
diff_SP(i,S,T) is RealNormSpace;
hence diff_SP(S,T).i is RealNormSpace;
diff(f,i,Z) is PartFunc of S,diff_SP(i,S,T);
hence diff(f,Z).i is PartFunc of S,diff_SP(i,S,T);
per cases;
suppose i = 0; then
f|Z = diff(f,Z).i by Def5;
hence dom diff(f,i,Z) = Z by RELAT_1:62,A1;
end;
suppose i <> 0; then
reconsider i1=i-1 as Element of NAT by INT_1:3;
A3: diff(f,i1+1,Z) = diff(f,i1,Z)`|Z by Th13;
diff(f,i1,Z) is_differentiable_on Z by A1,XREAL_1:9,A2,Th14;
hence dom diff(f,i,Z) = Z by A3,NDIFF_1:def 9;
end;
end;
theorem Th20:
for n being Nat, f,g being PartFunc of S,T
st 1<=n & f is_differentiable_on n,Z & g is_differentiable_on n,Z
holds
for i being Nat st i<=n holds diff(f+g,i,Z) = diff(f,i,Z) + diff(g,i,Z)
proof
let n be Nat, f,g be PartFunc of S,T;
assume A1: 1<=n & f is_differentiable_on n,Z
& g is_differentiable_on n,Z; then
A2:
Z is open by Th18;
defpred P[Nat] means $1 <= n implies
diff(f+g,$1,Z) = diff(f,$1,Z) + diff(g,$1,Z);
A3:P[0]
proof
assume 0<=n;
diff_SP(0,S,T)=T & f|Z=diff(f,0,Z) & g|Z=diff(g,0,Z)
& diff(f+g,0,Z) = (f+g)|Z by Def2,Def5;
hence diff(f+g,0,Z) = diff(f,0,Z) + diff(g,0,Z) by VFUNCT_1:27;
end;
A4:for i be Nat st P[i] holds P[i+1]
proof
let i be Nat;
assume A5: P[i];
assume A6: i+1 <= n; then
i + 1 - 1 <= n-1 by XREAL_1:9; then
A7: diff(f,i,Z) is_differentiable_on Z
& diff(g,i,Z) is_differentiable_on Z by Th14,A1;
A8: i <= i +1 by NAT_1:11; then
A9: i <= n by A6,XXREAL_0:2;
set f0 = diff(f,i,Z);
set g0 = diff(g,i,Z);
A10: diff_SP(S,T).i is RealNormSpace
& diff(f,Z).i is PartFunc of S,diff_SP(i,S,T) & dom diff(f,i,Z) = Z
by Th19,A9,A1;
A11: diff_SP(S,T).i is RealNormSpace
& diff(g,Z).i is PartFunc of S,diff_SP(i,S,T) & dom diff(g,i,Z) = Z
by Th19,A9,A1;
Z = (dom f0) /\ Z by A10; then
A12: Z = dom (f0+g0) by A11,VFUNCT_1:def 1; then
f0+g0 is_differentiable_on Z by A2,A7,NDIFF_1:39; then
A13: dom ((f0+g0)`|Z) = Z by NDIFF_1:def 9;
A14: f0`|Z = diff(f,i+1,Z) & g0`|Z = diff(g,i+1,Z)
& diff(f+g,i+1,Z) = diff(f+g,i,Z)`|Z by Th13;
A15: dom(f0`|Z) = Z & dom(g0`|Z) = Z by A7,NDIFF_1:def 9; then
A16: dom(f0`|Z + g0`|Z) = Z /\ Z & dom(diff(f,i+1,Z)+diff(g,i+1,Z)) = Z /\ Z
by A14,VFUNCT_1:def 1;
now let x be Point of S;
assume A17: x in dom(diff(f,i+1,Z) + diff(g,i+1,Z)); then
(f0`|Z + g0`|Z).x = (f0`|Z + g0`|Z)/.x by A16,PARTFUN1:def 6; then
A18: (f0`|Z + g0`|Z).x = (f0`|Z)/.x + (g0`|Z)/.x by A17,A16,VFUNCT_1:def 1;
(f0`|Z)/.x = (diff(f,i+1,Z)).x & (g0`|Z)/.x = (diff(g,i+1,Z)).x
by A16,A17,A14,A15,PARTFUN1:def 6; then
(f0`|Z)/.x = (diff(f,i+1,Z))/.x & (g0`|Z)/.x = (diff(g,i+1,Z))/.x
by A16,A17,A14,A15,PARTFUN1:def 6; then
(f0`|Z + g0`|Z).x = (diff(f,i+1,Z))/.x + (diff(g,i+1,Z))/.x
by A18,Th10; then
(f0`|Z + g0`|Z).x = (diff(f,i+1,Z) + diff(g,i+1,Z))/.x
by A17,VFUNCT_1:def 1; then
A19: (diff(f,i+1,Z) + diff(g,i+1,Z)).x = (f0`|Z + g0`|Z).x
by A17,PARTFUN1:def 6;
((f0+g0)`|Z)/.x = diff(f0,x)+diff(g0,x)
by NDIFF_1:39,A7,A2,A12,A16,A17; then
A20: ((f0+g0)`|Z)/.x = (f0`|Z)/.x + diff(g0,x) by NDIFF_1:def 9,A7,A16,A17;
(diff(f+g,i+1,Z)).x = ((f0+g0)`|Z)/.x
by A14,A5,A8,A16,A13,A17,PARTFUN1:def 6,A6,XXREAL_0:2;
hence (diff(f+g,i+1,Z)).x = (diff(f,i+1,Z) + diff(g,i+1,Z)).x
by A18,A19,A20,NDIFF_1:def 9,A7,A16,A17;
end;
hence diff(f+g,i+1,Z) = diff(f,i+1,Z) + diff(g,i+1,Z)
by A16,A13,A14,A8,A5,A6,XXREAL_0:2,PARTFUN1:5;
end;
for n be Nat holds P[n] from NAT_1:sch 2(A3,A4);
hence thesis;
end;
theorem
for n be Nat, f,g be PartFunc of S,T
st 1 <= n & f is_differentiable_on n,Z & g is_differentiable_on n,Z
holds f+g is_differentiable_on n,Z
proof
let n be Nat, f,g be PartFunc of S,T;
assume A1: 1<= n & f is_differentiable_on n,Z
& g is_differentiable_on n,Z; then
A2: Z is open by Th18;
Z /\ Z c= (dom f) /\ (dom g) by A1,XBOOLE_1:19; then
A3:Z c= dom (f+g) by VFUNCT_1:def 1;
for i be Nat st i <= n-1 holds
diff(f+g,i,Z) is_differentiable_on Z
proof
let i be Nat;
assume A4: i <= n-1; then
A5: diff(f,i,Z) is_differentiable_on Z & diff(g,i,Z) is_differentiable_on Z
by Th14,A1;
n-1 <= n by XREAL_1:43; then
A6: i <= n by A4,XXREAL_0:2; then
dom diff(f,i,Z) = Z & dom diff(g,i,Z) = Z by Th19,A1; then
Z /\ Z c= dom diff(f,i,Z) /\ dom diff(g,i,Z); then
Z c= dom (diff(f,i,Z) + diff(g,i,Z)) by VFUNCT_1:def 1; then
diff(f,i,Z) + diff(g,i,Z) is_differentiable_on Z by A2,A5,NDIFF_1:39;
hence diff(f+g,i,Z) is_differentiable_on Z by A1,A6,Th20;
end;
hence thesis by Th14,A3;
end;
theorem Th22:
for n being Nat, f,g being PartFunc of S,T
st 1<=n & f is_differentiable_on n,Z & g is_differentiable_on n,Z
holds
for i being Nat st i<=n holds diff(f-g,i,Z) = diff(f,i,Z) - diff(g,i,Z)
proof
let n be Nat, f,g be PartFunc of S,T;
assume A1: 1<=n & f is_differentiable_on n,Z
& g is_differentiable_on n,Z; then
A2:
Z is open by Th18;
defpred P[Nat] means $1 <= n implies
diff(f-g,$1,Z) = diff(f,$1,Z) - diff(g,$1,Z);
A3:P[0]
proof
assume 0<=n;
diff_SP(0,S,T)=T & f|Z=diff(f,0,Z) & g|Z=diff(g,0,Z)
& diff(f-g,0,Z) = (f-g)|Z by Def2,Def5;
hence diff(f-g,0,Z) = diff(f,0,Z) - diff(g,0,Z) by VFUNCT_1:30;
end;
A4:for i be Nat st P[i] holds P[i+1]
proof
let i be Nat;
assume A5: P[i];
assume A6: i+1 <= n; then
i + 1 - 1 <= n-1 by XREAL_1:9; then
A7: diff(f,i,Z) is_differentiable_on Z
& diff(g,i,Z) is_differentiable_on Z by Th14,A1;
A8: i <= i +1 by NAT_1:11; then
A9: i <= n by A6,XXREAL_0:2;
set f0 = diff(f,i,Z);
set g0 = diff(g,i,Z);
A10: diff_SP(S,T).i is RealNormSpace
& diff(f,Z).i is PartFunc of S,diff_SP(i,S,T) & dom diff(f,i,Z) = Z
by Th19,A9,A1;
A11: diff_SP(S,T).i is RealNormSpace
& diff(g,Z).i is PartFunc of S,diff_SP(i,S,T) & dom diff(g,i,Z) = Z
by Th19,A9,A1;
Z = (dom f0) /\ Z by A10; then
A12: Z = dom (f0-g0) by A11,VFUNCT_1:def 2; then
f0-g0 is_differentiable_on Z by A2,A7,NDIFF_1:40; then
A13: dom ((f0-g0)`|Z) = Z by NDIFF_1:def 9;
A14: f0`|Z = diff(f,i+1,Z) & g0`|Z = diff(g,i+1,Z)
& diff(f-g,i+1,Z) = diff(f-g,i,Z)`|Z by Th13;
A15: dom(f0`|Z) = Z & dom(g0`|Z) = Z by A7,NDIFF_1:def 9; then
A16: dom(f0`|Z - g0`|Z) = Z /\ Z & dom(diff(f,i+1,Z)-diff(g,i+1,Z)) = Z /\ Z
by A14,VFUNCT_1:def 2;
now let x be Point of S;
assume A17: x in dom(diff(f,i+1,Z) - diff(g,i+1,Z)); then
(f0`|Z - g0`|Z).x = (f0`|Z - g0`|Z)/.x by A16,PARTFUN1:def 6; then
A18: (f0`|Z - g0`|Z).x = (f0`|Z)/.x - (g0`|Z)/.x by A17,A16,VFUNCT_1:def 2;
(f0`|Z)/.x = (diff(f,i+1,Z)).x & (g0`|Z)/.x = (diff(g,i+1,Z)).x
by A16,A17,A14,A15,PARTFUN1:def 6; then
(f0`|Z)/.x = (diff(f,i+1,Z))/.x & (g0`|Z)/.x = (diff(g,i+1,Z))/.x
by A16,A17,A14,A15,PARTFUN1:def 6; then
(f0`|Z - g0`|Z).x = (diff(f,i+1,Z))/.x - (diff(g,i+1,Z))/.x
by A18,Th10; then
(f0`|Z - g0`|Z).x = (diff(f,i+1,Z) - diff(g,i+1,Z))/.x
by A17,VFUNCT_1:def 2; then
A19: (diff(f,i+1,Z) - diff(g,i+1,Z)).x = (f0`|Z - g0`|Z).x
by A17,PARTFUN1:def 6;
((f0-g0)`|Z)/.x = diff(f0,x)-diff(g0,x)
by NDIFF_1:40,A7,A2,A12,A16,A17; then
A20: ((f0-g0)`|Z)/.x = (f0`|Z)/.x - diff(g0,x) by NDIFF_1:def 9,A7,A16,A17;
(diff(f-g,i+1,Z)).x = ((f0-g0)`|Z)/.x
by A14,A5,A8,A16,A13,A17,PARTFUN1:def 6,A6,XXREAL_0:2;
hence (diff(f-g,i+1,Z)).x = (diff(f,i+1,Z) - diff(g,i+1,Z)).x
by A18,A19,A20,NDIFF_1:def 9,A7,A16,A17;
end;
hence diff(f-g,i+1,Z) = diff(f,i+1,Z) - diff(g,i+1,Z)
by A16,A13,A14,A8,A5,A6,XXREAL_0:2,PARTFUN1:5;
end;
for n be Nat holds P[n] from NAT_1:sch 2(A3,A4);
hence thesis;
end;
theorem
for n be Nat, f,g be PartFunc of S,T
st 1 <= n & f is_differentiable_on n,Z & g is_differentiable_on n,Z
holds f-g is_differentiable_on n,Z
proof
let n be Nat, f,g be PartFunc of S,T;
assume A1: 1<= n & f is_differentiable_on n,Z
& g is_differentiable_on n,Z; then
A2: Z is open by Th18;
Z /\ Z c= (dom f) /\ (dom g) by A1,XBOOLE_1:19; then
A3:Z c= dom (f-g) by VFUNCT_1:def 2;
for i be Nat st i <= n-1 holds
diff(f-g,i,Z) is_differentiable_on Z
proof
let i be Nat;
assume A4: i <= n-1; then
A5: diff(f,i,Z) is_differentiable_on Z & diff(g,i,Z) is_differentiable_on Z
by Th14,A1;
n-1 <= n by XREAL_1:43; then
A6: i <= n by A4,XXREAL_0:2; then
dom diff(f,i,Z) = Z & dom diff(g,i,Z) = Z by Th19,A1; then
Z /\ Z c= dom diff(f,i,Z) /\ dom diff(g,i,Z); then
Z c= dom (diff(f,i,Z) - diff(g,i,Z)) by VFUNCT_1:def 2; then
diff(f,i,Z) - diff(g,i,Z) is_differentiable_on Z by A2,A5,NDIFF_1:40;
hence diff(f-g,i,Z) is_differentiable_on Z by A1,A6,Th22;
end;
hence thesis by Th14,A3;
end;
theorem Th24:
for n be Nat, r be Real, f be PartFunc of S,T
st 1<= n & f is_differentiable_on n,Z
holds
for i be Nat st i <= n holds diff(r(#)f,i,Z) = r(#)diff(f,i,Z)
proof
let n be Nat, r be Real, f be PartFunc of S,T;
assume A1: 1 <= n & f is_differentiable_on n,Z;
A2: Z is open by Th18,A1;
defpred P[Nat] means $1 <= n implies diff(r(#)f,$1,Z) = r(#)diff(f,$1,Z);
A3:P[0]
proof
assume 0 <= n;
set H = diff_SP(S,T).0;
diff_SP(S,T).0 = T & f|Z = diff(f,0,Z) by Def2,Def5; then
(r(#)f)|Z = r(#)diff(f,0,Z) by VFUNCT_1:31;
hence diff(r(#)f,0,Z) = r(#)diff(f,0,Z) by Def5;
end;
A4:for i be Nat st P[i] holds P[i+1]
proof
let i be Nat;
assume A5: P[i];
assume A6: i + 1 <= n;
A7: i <= i + 1 by NAT_1:11; then
A8: i <= n by A6,XXREAL_0:2;
i + 1 - 1 <= n-1 by A6,XREAL_1:9; then
A9: diff(f,i,Z) is_differentiable_on Z by Th14,A1; then
A10: Z = (dom (diff(f,i,Z)`|Z)) by NDIFF_1:def 9;
dom diff(f,i,Z) = Z by Th19,A8,A1; then
A11: Z = dom (r(#)diff(f,i,Z)) by VFUNCT_1:def 4; then
r(#)diff(f,i,Z) is_differentiable_on Z by A2,A9,NDIFF_1:41; then
A12: dom ((r(#)diff(f,i,Z))`|Z) = Z by NDIFF_1:def 9;
now let x be Point of S;
assume A13: x in dom ( (r(#)diff(f,i,Z))`|Z ); then
((r(#)diff(f,i,Z))`|Z)/.x = r*diff(diff(f,i,Z),x)
by NDIFF_1:41,A9,A2,A11,A12;
hence ((r(#)diff(f,i,Z))`|Z)/.x = r*(diff(f,i,Z)`|Z)/.x
by NDIFF_1:def 9,A9,A12,A13;
end; then
A14: (r(#)diff(f,i,Z))`|Z = r(#)(diff(f,i,Z)`|Z) by A12,A10,VFUNCT_1:def 4;
A15: (diff_SP(i+1,S,T))
= R_NormSpace_of_BoundedLinearOperators(S,diff_SP(i,S,T))
by Th10;
diff(r(#)f,i+1,Z) = diff(r(#)f,i,Z)`|Z by Th13;
hence diff(r(#)f,i+1,Z) = r(#)diff(f,i+1,Z)
by Th13,A15,A14,A5,A7,A6,XXREAL_0:2;
end;
for n be Nat holds P[n] from NAT_1:sch 2(A3,A4);
hence thesis;
end;
theorem Th25:
for n be Nat, r be Real, f be PartFunc of S,T
st 1 <= n & f is_differentiable_on n,Z
holds r(#)f is_differentiable_on n,Z
proof
let n be Nat, r be Real, f be PartFunc of S,T;
assume A1: 1 <= n & f is_differentiable_on n,Z; then
A2:Z c= dom (r(#)f) by VFUNCT_1:def 4;
A3: Z is open by Th18,A1;
for i be Nat st i <= n-1 holds diff(r(#)f,i,Z) is_differentiable_on Z
proof
let i be Nat;
assume A4: i <= n-1;
set H = diff_SP(i,S,T);
set f1 = diff(f,i,Z);
A5: diff(f,i,Z) is_differentiable_on Z by A1,A4,Th14;
n-1 - 0 <= n-1 + 1 by XREAL_1:7; then
A6: i <= n by A4,XXREAL_0:2; then
A7: diff(r(#)f,i,Z) = r(#)diff(f,i,Z) by A1,Th24;
dom diff(f,i,Z) = Z by Th19,A6,A1; then
Z c= dom (r(#)f1) by VFUNCT_1:def 4;
hence diff(r(#)f,i,Z) is_differentiable_on Z by A3,A5,A7,NDIFF_1:41;
end;
hence thesis by Th14,A2;
end;
theorem
for n be Nat, f be PartFunc of S,T st 1 <= n & f is_differentiable_on n,Z
holds
for i be Nat st i <= n holds diff(-f,i,Z) = -diff(f,i,Z)
proof
let n be Nat, f be PartFunc of S,T;
assume A1: 1 <= n & f is_differentiable_on n,Z;
let i be Nat;
assume i <= n; then
diff((-1)(#)f,i,Z) = (-1)(#)diff(f,i,Z) by Th24,A1; then
diff((-1)(#)f,Z).i = -diff(f,i,Z) by VFUNCT_1:23;
hence diff(-f,i,Z) = -diff(f,i,Z) by VFUNCT_1:23;
end;
theorem
for n be Nat, f be PartFunc of S,T st 1<= n & f is_differentiable_on n,Z
holds -f is_differentiable_on n,Z
proof
let n be Nat, f be PartFunc of S,T;
assume 1 <= n & f is_differentiable_on n, Z; then
(-1)(#)f is_differentiable_on n,Z by Th25;
hence thesis by VFUNCT_1:23;
end;