let S, T be RealNormSpace; for x0 being Point of S
for U being RealNormSpace
for f1 being PartFunc of S,T st f1 is_differentiable_in x0 holds
for f2 being PartFunc of T,U st f2 is_differentiable_in f1 /. x0 holds
( f2 * f1 is_differentiable_in x0 & diff ((f2 * f1),x0) = (diff (f2,(f1 /. x0))) * (diff (f1,x0)) )
let x0 be Point of S; for U being RealNormSpace
for f1 being PartFunc of S,T st f1 is_differentiable_in x0 holds
for f2 being PartFunc of T,U st f2 is_differentiable_in f1 /. x0 holds
( f2 * f1 is_differentiable_in x0 & diff ((f2 * f1),x0) = (diff (f2,(f1 /. x0))) * (diff (f1,x0)) )
let U be RealNormSpace; for f1 being PartFunc of S,T st f1 is_differentiable_in x0 holds
for f2 being PartFunc of T,U st f2 is_differentiable_in f1 /. x0 holds
( f2 * f1 is_differentiable_in x0 & diff ((f2 * f1),x0) = (diff (f2,(f1 /. x0))) * (diff (f1,x0)) )
let f1 be PartFunc of S,T; ( f1 is_differentiable_in x0 implies for f2 being PartFunc of T,U st f2 is_differentiable_in f1 /. x0 holds
( f2 * f1 is_differentiable_in x0 & diff ((f2 * f1),x0) = (diff (f2,(f1 /. x0))) * (diff (f1,x0)) ) )
assume A1:
f1 is_differentiable_in x0
; for f2 being PartFunc of T,U st f2 is_differentiable_in f1 /. x0 holds
( f2 * f1 is_differentiable_in x0 & diff ((f2 * f1),x0) = (diff (f2,(f1 /. x0))) * (diff (f1,x0)) )
consider N1 being Neighbourhood of x0 such that
A2:
N1 c= dom f1
and
A3:
ex R1 being RestFunc of S,T st
( R1 /. (0. S) = 0. T & R1 is_continuous_in 0. S & ( for x being Point of S st x in N1 holds
(f1 /. x) - (f1 /. x0) = ((diff (f1,x0)) . (x - x0)) + (R1 /. (x - x0)) ) )
by A1, NDIFF_1:47;
let f2 be PartFunc of T,U; ( f2 is_differentiable_in f1 /. x0 implies ( f2 * f1 is_differentiable_in x0 & diff ((f2 * f1),x0) = (diff (f2,(f1 /. x0))) * (diff (f1,x0)) ) )
assume
f2 is_differentiable_in f1 /. x0
; ( f2 * f1 is_differentiable_in x0 & diff ((f2 * f1),x0) = (diff (f2,(f1 /. x0))) * (diff (f1,x0)) )
then consider N2 being Neighbourhood of f1 /. x0 such that
A4:
N2 c= dom f2
and
A5:
ex R2 being RestFunc of T,U st
( R2 /. (0. T) = 0. U & R2 is_continuous_in 0. T & ( for y being Point of T st y in N2 holds
(f2 /. y) - (f2 /. (f1 /. x0)) = ((diff (f2,(f1 /. x0))) . (y - (f1 /. x0))) + (R2 /. (y - (f1 /. x0))) ) )
by NDIFF_1:47;
consider R2 being RestFunc of T,U such that
A6:
R2 /. (0. T) = 0. U
and
A7:
for y being Point of T st y in N2 holds
(f2 /. y) - (f2 /. (f1 /. x0)) = ((diff (f2,(f1 /. x0))) . (y - (f1 /. x0))) + (R2 /. (y - (f1 /. x0)))
by A5;
set L2 = modetrans ((diff (f2,(f1 /. x0))),T,U);
set L1 = modetrans ((diff (f1,x0)),S,T);
R_NormSpace_of_BoundedLinearOperators (S,T) = NORMSTR(# (BoundedLinearOperators (S,T)),(Zero_ ((BoundedLinearOperators (S,T)),(R_VectorSpace_of_LinearOperators (S,T)))),(Add_ ((BoundedLinearOperators (S,T)),(R_VectorSpace_of_LinearOperators (S,T)))),(Mult_ ((BoundedLinearOperators (S,T)),(R_VectorSpace_of_LinearOperators (S,T)))),(BoundedLinearOperatorsNorm (S,T)) #)
by LOPBAN_1:def 14;
then reconsider LB1 = diff (f1,x0) as Element of BoundedLinearOperators (S,T) ;
R_NormSpace_of_BoundedLinearOperators (T,U) = NORMSTR(# (BoundedLinearOperators (T,U)),(Zero_ ((BoundedLinearOperators (T,U)),(R_VectorSpace_of_LinearOperators (T,U)))),(Add_ ((BoundedLinearOperators (T,U)),(R_VectorSpace_of_LinearOperators (T,U)))),(Mult_ ((BoundedLinearOperators (T,U)),(R_VectorSpace_of_LinearOperators (T,U)))),(BoundedLinearOperatorsNorm (T,U)) #)
by LOPBAN_1:def 14;
then reconsider LB2 = diff (f2,(f1 /. x0)) as Element of BoundedLinearOperators (T,U) ;
consider R1 being RestFunc of S,T such that
A8:
R1 /. (0. S) = 0. T
and
A9:
for x being Point of S st x in N1 holds
(f1 /. x) - (f1 /. x0) = ((diff (f1,x0)) . (x - x0)) + (R1 /. (x - x0))
by A3;
f1 is_continuous_in x0
by A1, NDIFF_1:44;
then consider N3 being Neighbourhood of x0 such that
A10:
f1 .: N3 c= N2
by NFCONT_1:10;
reconsider R0 = ((modetrans ((diff (f2,(f1 /. x0))),T,U)) * R1) + (R2 * ((modetrans ((diff (f1,x0)),S,T)) + R1)) as RestFunc of S,U by A8, A6, Th12;
consider N being Neighbourhood of x0 such that
A11:
N c= N1
and
A12:
N c= N3
by NDIFF_1:1;
A13:
N c= dom (f2 * f1)
A16:
( LB1 = modetrans (LB1,S,T) & LB2 = modetrans (LB2,T,U) )
by LOPBAN_1:def 11;
A17:
now for x being Point of S st x in N holds
((f2 * f1) /. x) - ((f2 * f1) /. x0) = (((diff (f2,(f1 /. x0))) * (diff (f1,x0))) . (x - x0)) + (R0 /. (x - x0))let x be
Point of
S;
( x in N implies ((f2 * f1) /. x) - ((f2 * f1) /. x0) = (((diff (f2,(f1 /. x0))) * (diff (f1,x0))) . (x - x0)) + (R0 /. (x - x0)) )assume A18:
x in N
;
((f2 * f1) /. x) - ((f2 * f1) /. x0) = (((diff (f2,(f1 /. x0))) * (diff (f1,x0))) . (x - x0)) + (R0 /. (x - x0))A19:
(f1 /. x) - (f1 /. x0) = ((diff (f1,x0)) . (x - x0)) + (R1 /. (x - x0))
by A9, A11, A18;
x in N1
by A11, A18;
then
f1 . x in f1 .: N3
by A2, A12, A18, FUNCT_1:def 6;
then A20:
f1 . x in N2
by A10;
x in N1
by A11, A18;
then A21:
f1 /. x in N2
by A2, A20, PARTFUN1:def 6;
dom (modetrans ((diff (f1,x0)),S,T)) = the
carrier of
S
by FUNCT_2:def 1;
then A22:
(modetrans ((diff (f2,(f1 /. x0))),T,U)) . ((modetrans ((diff (f1,x0)),S,T)) . (x - x0)) = ((diff (f2,(f1 /. x0))) * (diff (f1,x0))) . (x - x0)
by FUNCT_1:13;
A23:
x0 in N
by NFCONT_1:4;
A24:
R1 is
total
by NDIFF_1:def 5;
then A25:
dom R1 = the
carrier of
S
by PARTFUN1:def 2;
dom (modetrans ((diff (f2,(f1 /. x0))),T,U)) = the
carrier of
T
by FUNCT_2:def 1;
then A26:
rng R1 c= dom (modetrans ((diff (f2,(f1 /. x0))),T,U))
;
then A27:
dom ((modetrans ((diff (f2,(f1 /. x0))),T,U)) * R1) =
dom R1
by RELAT_1:27
.=
the
carrier of
S
by A24, PARTFUN1:def 2
;
A28:
(modetrans ((diff (f1,x0)),S,T)) + R1 is
total
by A24, VFUNCT_1:32;
then A29:
dom ((modetrans ((diff (f1,x0)),S,T)) + R1) = the
carrier of
S
by PARTFUN1:def 2;
R2 is
total
by NDIFF_1:def 5;
then
dom R2 = the
carrier of
T
by PARTFUN1:def 2;
then A30:
rng ((modetrans ((diff (f1,x0)),S,T)) + R1) c= dom R2
;
then dom (R2 * ((modetrans ((diff (f1,x0)),S,T)) + R1)) =
dom ((modetrans ((diff (f1,x0)),S,T)) + R1)
by RELAT_1:27
.=
the
carrier of
S
by A28, PARTFUN1:def 2
;
then A31:
dom (((modetrans ((diff (f2,(f1 /. x0))),T,U)) * R1) + (R2 * ((modetrans ((diff (f1,x0)),S,T)) + R1))) =
the
carrier of
S /\ the
carrier of
S
by A27, VFUNCT_1:def 1
.=
the
carrier of
S
;
A32:
(modetrans ((diff (f2,(f1 /. x0))),T,U)) . (R1 /. (x - x0)) =
(modetrans ((diff (f2,(f1 /. x0))),T,U)) /. (R1 /. (x - x0))
.=
((modetrans ((diff (f2,(f1 /. x0))),T,U)) * R1) /. (x - x0)
by A25, A26, PARTFUN2:5
;
A33:
R2 /. (((modetrans ((diff (f1,x0)),S,T)) . (x - x0)) + (R1 /. (x - x0))) =
R2 /. (((modetrans ((diff (f1,x0)),S,T)) /. (x - x0)) + (R1 /. (x - x0)))
.=
R2 /. (((modetrans ((diff (f1,x0)),S,T)) + R1) /. (x - x0))
by A29, VFUNCT_1:def 1
.=
(R2 * ((modetrans ((diff (f1,x0)),S,T)) + R1)) /. (x - x0)
by A29, A30, PARTFUN2:5
;
thus ((f2 * f1) /. x) - ((f2 * f1) /. x0) =
(f2 /. (f1 /. x)) - ((f2 * f1) /. x0)
by A13, A18, PARTFUN2:3
.=
(f2 /. (f1 /. x)) - (f2 /. (f1 /. x0))
by A13, A23, PARTFUN2:3
.=
((diff (f2,(f1 /. x0))) . ((f1 /. x) - (f1 /. x0))) + (R2 /. ((f1 /. x) - (f1 /. x0)))
by A7, A21
.=
(((modetrans ((diff (f2,(f1 /. x0))),T,U)) . ((modetrans ((diff (f1,x0)),S,T)) . (x - x0))) + ((modetrans ((diff (f2,(f1 /. x0))),T,U)) . (R1 /. (x - x0)))) + ((R2 * ((modetrans ((diff (f1,x0)),S,T)) + R1)) /. (x - x0))
by A16, A19, A33, VECTSP_1:def 20
.=
((modetrans ((diff (f2,(f1 /. x0))),T,U)) . ((modetrans ((diff (f1,x0)),S,T)) . (x - x0))) + ((((modetrans ((diff (f2,(f1 /. x0))),T,U)) * R1) /. (x - x0)) + ((R2 * ((modetrans ((diff (f1,x0)),S,T)) + R1)) /. (x - x0)))
by A32, RLVECT_1:def 3
.=
(((diff (f2,(f1 /. x0))) * (diff (f1,x0))) . (x - x0)) + (R0 /. (x - x0))
by A31, A22, VFUNCT_1:def 1
;
verum end;
hence
f2 * f1 is_differentiable_in x0
by A13, NDIFF_1:def 6; diff ((f2 * f1),x0) = (diff (f2,(f1 /. x0))) * (diff (f1,x0))
hence
diff ((f2 * f1),x0) = (diff (f2,(f1 /. x0))) * (diff (f1,x0))
by A13, A17, NDIFF_1:def 7; verum