let m be non zero Element of NAT ; for X being Subset of (REAL m) st X is open holds
for i being Element of NAT
for f, g being PartFunc of (REAL m),REAL st f is_partial_differentiable_up_to_order i,X & g is_partial_differentiable_up_to_order i,X holds
f (#) g is_partial_differentiable_up_to_order i,X
let Z be Subset of (REAL m); ( Z is open implies for i being Element of NAT
for f, g being PartFunc of (REAL m),REAL st f is_partial_differentiable_up_to_order i,Z & g is_partial_differentiable_up_to_order i,Z holds
f (#) g is_partial_differentiable_up_to_order i,Z )
assume A1:
Z is open
; for i being Element of NAT
for f, g being PartFunc of (REAL m),REAL st f is_partial_differentiable_up_to_order i,Z & g is_partial_differentiable_up_to_order i,Z holds
f (#) g is_partial_differentiable_up_to_order i,Z
defpred S1[ Nat] means for f, g being PartFunc of (REAL m),REAL st f is_partial_differentiable_up_to_order $1,Z & g is_partial_differentiable_up_to_order $1,Z holds
f (#) g is_partial_differentiable_up_to_order $1,Z;
A2:
S1[ 0 ]
A3:
for k being Nat st S1[k] holds
S1[k + 1]
proof
let k be
Nat;
( S1[k] implies S1[k + 1] )
assume A4:
S1[
k]
;
S1[k + 1]
let f,
g be
PartFunc of
(REAL m),
REAL;
( f is_partial_differentiable_up_to_order k + 1,Z & g is_partial_differentiable_up_to_order k + 1,Z implies f (#) g is_partial_differentiable_up_to_order k + 1,Z )
assume A5:
(
f is_partial_differentiable_up_to_order k + 1,
Z &
g is_partial_differentiable_up_to_order k + 1,
Z )
;
f (#) g is_partial_differentiable_up_to_order k + 1,Z
then A6:
(
f is_partial_differentiable_up_to_order k,
Z &
g is_partial_differentiable_up_to_order k,
Z )
by Th84, NAT_1:11;
now for I being non empty FinSequence of NAT st len I <= k + 1 & rng I c= Seg m holds
f (#) g is_partial_differentiable_on Z,Ilet I be non
empty FinSequence of
NAT ;
( len I <= k + 1 & rng I c= Seg m implies f (#) g is_partial_differentiable_on Z,b1 )assume A7:
(
len I <= k + 1 &
rng I c= Seg m )
;
f (#) g is_partial_differentiable_on Z,b1then A8:
(
f is_partial_differentiable_on Z,
I &
g is_partial_differentiable_on Z,
I )
by A5;
A9:
1
<= len I
by FINSEQ_1:20;
then A10:
1
in dom I
by FINSEQ_3:25;
then A11:
I /. 1
= I . 1
by PARTFUN1:def 6;
A12:
I . 1
in rng I
by A10, FUNCT_1:3;
then
I . 1
in Seg m
by A7;
then reconsider i =
I . 1 as
Element of
NAT ;
A13:
( 1
<= i &
i <= m )
by A12, A7, FINSEQ_1:1;
per cases
( 1 = len I or 1 <> len I )
;
suppose
1
<> len I
;
f (#) g is_partial_differentiable_on Z,b1then
1
< len I
by A9, XXREAL_0:1;
then
1
+ 1
<= len I
by NAT_1:13;
then
1
<= (len I) - 1
by XREAL_1:19;
then
1
<= len (I /^ 1)
by A9, RFINSEQ:def 1;
then reconsider J =
I /^ 1 as non
empty FinSequence of
NAT ;
set I1 =
<*i*>;
(len I) - 1
<= k
by A7, XREAL_1:20;
then A15:
len J <= k
by A9, RFINSEQ:def 1;
A16:
I = <*(I /. 1)*> ^ (I /^ 1)
by FINSEQ_5:29;
then A17:
(
rng <*i*> c= rng I &
rng J c= rng I )
by A11, FINSEQ_1:29, FINSEQ_1:30;
then A18:
rng J c= Seg m
by A7;
I = <*i*> ^ J
by A11, FINSEQ_5:29;
then A19:
(
f is_partial_differentiable_on Z,
i &
g is_partial_differentiable_on Z,
i )
by A8, Th80;
then A20:
f (#) g is_partial_differentiable_on Z,
i
by A13, Th68, A1;
then A21:
f (#) g is_partial_differentiable_on Z,
<*i*>
;
A22:
(f (#) g) `partial| (
Z,
<*i*>) =
(f (#) g) `partial| (
Z,
i)
by A1, A13, Th82, A20
.=
((f `partial| (Z,i)) (#) g) + (f (#) (g `partial| (Z,i)))
by A19, A13, Th68, A1
.=
((f `partial| (Z,<*i*>)) (#) g) + (f (#) (g `partial| (Z,i)))
by A1, A13, Th82, A19
.=
((f `partial| (Z,<*i*>)) (#) g) + (f (#) (g `partial| (Z,<*i*>)))
by A1, A13, Th82, A19
;
(
len <*i*> = 1 &
rng <*i*> c= Seg m )
by A17, A7, FINSEQ_1:39;
then
(
f `partial| (
Z,
<*i*>)
is_partial_differentiable_up_to_order k,
Z &
g `partial| (
Z,
<*i*>)
is_partial_differentiable_up_to_order k,
Z )
by Th83, A5;
then
(
(f `partial| (Z,<*i*>)) (#) g is_partial_differentiable_up_to_order k,
Z &
f (#) (g `partial| (Z,<*i*>)) is_partial_differentiable_up_to_order k,
Z )
by A4, A6;
then
(
(f `partial| (Z,<*i*>)) (#) g is_partial_differentiable_on Z,
J &
f (#) (g `partial| (Z,<*i*>)) is_partial_differentiable_on Z,
J )
by A15, A18;
then
((f `partial| (Z,<*i*>)) (#) g) + (f (#) (g `partial| (Z,<*i*>))) is_partial_differentiable_on Z,
J
by A1, A18, Th75;
hence
f (#) g is_partial_differentiable_on Z,
I
by A21, A16, A11, A22, Th80;
verum end; end; end;
hence
f (#) g is_partial_differentiable_up_to_order k + 1,
Z
;
verum
end;
for n being Nat holds S1[n]
from NAT_1:sch 2(A2, A3);
hence
for i being Element of NAT
for f, g being PartFunc of (REAL m),REAL st f is_partial_differentiable_up_to_order i,Z & g is_partial_differentiable_up_to_order i,Z holds
f (#) g is_partial_differentiable_up_to_order i,Z
; verum