let G be RealNormSpace-Sequence; :: thesis: for T being RealNormSpace
for i being set
for Z being Subset of (product G)
for f being PartFunc of (product G),T st Z is open holds
( f is_partial_differentiable_on Z,i iff ( Z c= dom f & ( for x being Point of (product G) st x in Z holds
f is_partial_differentiable_in x,i ) ) )

let T be RealNormSpace; :: thesis: for i being set
for Z being Subset of (product G)
for f being PartFunc of (product G),T st Z is open holds
( f is_partial_differentiable_on Z,i iff ( Z c= dom f & ( for x being Point of (product G) st x in Z holds
f is_partial_differentiable_in x,i ) ) )

let i0 be set ; :: thesis: for Z being Subset of (product G)
for f being PartFunc of (product G),T st Z is open holds
( f is_partial_differentiable_on Z,i0 iff ( Z c= dom f & ( for x being Point of (product G) st x in Z holds
f is_partial_differentiable_in x,i0 ) ) )

let Z be Subset of (product G); :: thesis: for f being PartFunc of (product G),T st Z is open holds
( f is_partial_differentiable_on Z,i0 iff ( Z c= dom f & ( for x being Point of (product G) st x in Z holds
f is_partial_differentiable_in x,i0 ) ) )

let f be PartFunc of (product G),T; :: thesis: ( Z is open implies ( f is_partial_differentiable_on Z,i0 iff ( Z c= dom f & ( for x being Point of (product G) st x in Z holds
f is_partial_differentiable_in x,i0 ) ) ) )

assume A1: Z is open ; :: thesis: ( f is_partial_differentiable_on Z,i0 iff ( Z c= dom f & ( for x being Point of (product G) st x in Z holds
f is_partial_differentiable_in x,i0 ) ) )

set i = In (i0,(dom G));
set S = G . (In (i0,(dom G)));
set RNS = R_NormSpace_of_BoundedLinearOperators ((G . (In (i0,(dom G)))),T);
hereby :: thesis: ( Z c= dom f & ( for x being Point of (product G) st x in Z holds
f is_partial_differentiable_in x,i0 ) implies f is_partial_differentiable_on Z,i0 )
assume A2: f is_partial_differentiable_on Z,i0 ; :: thesis: ( Z c= dom f & ( for nx0 being Point of (product G) st nx0 in Z holds
f is_partial_differentiable_in nx0,i0 ) )

hence Z c= dom f ; :: thesis: for nx0 being Point of (product G) st nx0 in Z holds
f is_partial_differentiable_in nx0,i0

let nx0 be Point of (product G); :: thesis: ( nx0 in Z implies f is_partial_differentiable_in nx0,i0 )
reconsider x0 = (proj (In (i0,(dom G)))) . nx0 as Point of (G . (In (i0,(dom G)))) ;
assume A4: nx0 in Z ; :: thesis: f is_partial_differentiable_in nx0,i0
then f | Z is_partial_differentiable_in nx0,i0 by A2;
then consider N0 being Neighbourhood of x0 such that
A5: N0 c= dom ((f | Z) * (reproj ((In (i0,(dom G))),nx0))) and
A6: ex L being Point of (R_NormSpace_of_BoundedLinearOperators ((G . (In (i0,(dom G)))),T)) ex R being RestFunc of (G . (In (i0,(dom G)))),T st
for x being Point of (G . (In (i0,(dom G)))) st x in N0 holds
(((f | Z) * (reproj ((In (i0,(dom G))),nx0))) /. x) - (((f | Z) * (reproj ((In (i0,(dom G))),nx0))) /. x0) = (L . (x - x0)) + (R /. (x - x0)) by NDIFF_1:def 6;
consider L being Point of (R_NormSpace_of_BoundedLinearOperators ((G . (In (i0,(dom G)))),T)), R being RestFunc of (G . (In (i0,(dom G)))),T such that
A7: for x being Point of (G . (In (i0,(dom G)))) st x in N0 holds
(((f | Z) * (reproj ((In (i0,(dom G))),nx0))) /. x) - (((f | Z) * (reproj ((In (i0,(dom G))),nx0))) /. x0) = (L . (x - x0)) + (R /. (x - x0)) by A6;
consider N1 being Neighbourhood of x0 such that
A8: for x being Point of (G . (In (i0,(dom G)))) st x in N1 holds
(reproj ((In (i0,(dom G))),nx0)) . x in Z by A1, A4, Th23;
A9: now :: thesis: for x being Point of (G . (In (i0,(dom G)))) st x in N1 holds
(reproj ((In (i0,(dom G))),nx0)) . x in dom (f | Z)
let x be Point of (G . (In (i0,(dom G)))); :: thesis: ( x in N1 implies (reproj ((In (i0,(dom G))),nx0)) . x in dom (f | Z) )
assume x in N1 ; :: thesis: (reproj ((In (i0,(dom G))),nx0)) . x in dom (f | Z)
then (reproj ((In (i0,(dom G))),nx0)) . x in Z by A8;
then (reproj ((In (i0,(dom G))),nx0)) . x in (dom f) /\ Z by A2, XBOOLE_0:def 4;
hence (reproj ((In (i0,(dom G))),nx0)) . x in dom (f | Z) by RELAT_1:61; :: thesis: verum
end;
reconsider N = N0 /\ N1 as Neighbourhood of x0 by Th8;
(f | Z) * (reproj ((In (i0,(dom G))),nx0)) c= f * (reproj ((In (i0,(dom G))),nx0)) by RELAT_1:29, RELAT_1:59;
then A10: dom ((f | Z) * (reproj ((In (i0,(dom G))),nx0))) c= dom (f * (reproj ((In (i0,(dom G))),nx0))) by RELAT_1:11;
N c= N0 by XBOOLE_1:17;
then A11: N c= dom (f * (reproj ((In (i0,(dom G))),nx0))) by A5, A10;
A12: dom (reproj ((In (i0,(dom G))),nx0)) = the carrier of (G . (In (i0,(dom G)))) by FUNCT_2:def 1;
now :: thesis: for x being Point of (G . (In (i0,(dom G)))) st x in N holds
((f * (reproj ((In (i0,(dom G))),nx0))) /. x) - ((f * (reproj ((In (i0,(dom G))),nx0))) /. x0) = (L . (x - x0)) + (R /. (x - x0))
let x be Point of (G . (In (i0,(dom G)))); :: thesis: ( x in N implies ((f * (reproj ((In (i0,(dom G))),nx0))) /. x) - ((f * (reproj ((In (i0,(dom G))),nx0))) /. x0) = (L . (x - x0)) + (R /. (x - x0)) )
assume x in N ; :: thesis: ((f * (reproj ((In (i0,(dom G))),nx0))) /. x) - ((f * (reproj ((In (i0,(dom G))),nx0))) /. x0) = (L . (x - x0)) + (R /. (x - x0))
then A13: ( x in N0 & x in N1 ) by XBOOLE_0:def 4;
then A14: (reproj ((In (i0,(dom G))),nx0)) . x in dom (f | Z) by A9;
then A15: ( (reproj ((In (i0,(dom G))),nx0)) . x in dom f & (reproj ((In (i0,(dom G))),nx0)) . x in Z ) by RELAT_1:57;
A16: (reproj ((In (i0,(dom G))),nx0)) . x0 in dom (f | Z) by A9, NFCONT_1:4;
then A17: ( (reproj ((In (i0,(dom G))),nx0)) . x0 in dom f & (reproj ((In (i0,(dom G))),nx0)) . x0 in Z ) by RELAT_1:57;
A18: ((f | Z) * (reproj ((In (i0,(dom G))),nx0))) /. x = (f | Z) /. ((reproj ((In (i0,(dom G))),nx0)) /. x) by A14, A12, PARTFUN2:4
.= f /. ((reproj ((In (i0,(dom G))),nx0)) /. x) by A15, PARTFUN2:17
.= (f * (reproj ((In (i0,(dom G))),nx0))) /. x by A12, A15, PARTFUN2:4 ;
((f | Z) * (reproj ((In (i0,(dom G))),nx0))) /. x0 = (f | Z) /. ((reproj ((In (i0,(dom G))),nx0)) /. x0) by A12, A16, PARTFUN2:4
.= f /. ((reproj ((In (i0,(dom G))),nx0)) /. x0) by A17, PARTFUN2:17
.= (f * (reproj ((In (i0,(dom G))),nx0))) /. x0 by A12, A17, PARTFUN2:4 ;
hence ((f * (reproj ((In (i0,(dom G))),nx0))) /. x) - ((f * (reproj ((In (i0,(dom G))),nx0))) /. x0) = (L . (x - x0)) + (R /. (x - x0)) by A7, A13, A18; :: thesis: verum
end;
hence f is_partial_differentiable_in nx0,i0 by A11, NDIFF_1:def 6; :: thesis: verum
end;
assume that
A19: Z c= dom f and
A20: for nx being Point of (product G) st nx in Z holds
f is_partial_differentiable_in nx,i0 ; :: thesis: f is_partial_differentiable_on Z,i0
now :: thesis: for nx0 being Point of (product G) st nx0 in Z holds
f | Z is_partial_differentiable_in nx0,i0
let nx0 be Point of (product G); :: thesis: ( nx0 in Z implies f | Z is_partial_differentiable_in nx0,i0 )
assume A21: nx0 in Z ; :: thesis: f | Z is_partial_differentiable_in nx0,i0
then A22: f is_partial_differentiable_in nx0,i0 by A20;
reconsider x0 = (proj (In (i0,(dom G)))) . nx0 as Point of (G . (In (i0,(dom G)))) ;
consider N0 being Neighbourhood of x0 such that
N0 c= dom (f * (reproj ((In (i0,(dom G))),nx0))) and
A23: ex L being Point of (R_NormSpace_of_BoundedLinearOperators ((G . (In (i0,(dom G)))),T)) ex R being RestFunc of (G . (In (i0,(dom G)))),T st
for x being Point of (G . (In (i0,(dom G)))) st x in N0 holds
((f * (reproj ((In (i0,(dom G))),nx0))) /. x) - ((f * (reproj ((In (i0,(dom G))),nx0))) /. x0) = (L . (x - x0)) + (R /. (x - x0)) by A22, NDIFF_1:def 6;
consider N1 being Neighbourhood of x0 such that
A24: for x being Point of (G . (In (i0,(dom G)))) st x in N1 holds
(reproj ((In (i0,(dom G))),nx0)) . x in Z by A1, A21, Th23;
A25: now :: thesis: for x being Point of (G . (In (i0,(dom G)))) st x in N1 holds
(reproj ((In (i0,(dom G))),nx0)) . x in dom (f | Z)
let x be Point of (G . (In (i0,(dom G)))); :: thesis: ( x in N1 implies (reproj ((In (i0,(dom G))),nx0)) . x in dom (f | Z) )
assume x in N1 ; :: thesis: (reproj ((In (i0,(dom G))),nx0)) . x in dom (f | Z)
then (reproj ((In (i0,(dom G))),nx0)) . x in Z by A24;
then (reproj ((In (i0,(dom G))),nx0)) . x in (dom f) /\ Z by A19, XBOOLE_0:def 4;
hence (reproj ((In (i0,(dom G))),nx0)) . x in dom (f | Z) by RELAT_1:61; :: thesis: verum
end;
A26: N1 c= dom ((f | Z) * (reproj ((In (i0,(dom G))),nx0)))
proof
let z be object ; :: according to TARSKI:def 3 :: thesis: ( not z in N1 or z in dom ((f | Z) * (reproj ((In (i0,(dom G))),nx0))) )
assume A27: z in N1 ; :: thesis: z in dom ((f | Z) * (reproj ((In (i0,(dom G))),nx0)))
then z in the carrier of (G . (In (i0,(dom G)))) ;
then A28: z in dom (reproj ((In (i0,(dom G))),nx0)) by FUNCT_2:def 1;
reconsider x = z as Point of (G . (In (i0,(dom G)))) by A27;
(reproj ((In (i0,(dom G))),nx0)) . x in dom (f | Z) by A27, A25;
hence z in dom ((f | Z) * (reproj ((In (i0,(dom G))),nx0))) by A28, FUNCT_1:11; :: thesis: verum
end;
reconsider N = N0 /\ N1 as Neighbourhood of x0 by Th8;
N c= N1 by XBOOLE_1:17;
then A29: N c= dom ((f | Z) * (reproj ((In (i0,(dom G))),nx0))) by A26;
consider L being Point of (R_NormSpace_of_BoundedLinearOperators ((G . (In (i0,(dom G)))),T)), R being RestFunc of (G . (In (i0,(dom G)))),T such that
A30: for x being Point of (G . (In (i0,(dom G)))) st x in N0 holds
((f * (reproj ((In (i0,(dom G))),nx0))) /. x) - ((f * (reproj ((In (i0,(dom G))),nx0))) /. x0) = (L . (x - x0)) + (R /. (x - x0)) by A23;
now :: thesis: for x being Point of (G . (In (i0,(dom G)))) st x in N holds
(((f | Z) * (reproj ((In (i0,(dom G))),nx0))) /. x) - (((f | Z) * (reproj ((In (i0,(dom G))),nx0))) /. x0) = (L . (x - x0)) + (R /. (x - x0))
let x be Point of (G . (In (i0,(dom G)))); :: thesis: ( x in N implies (((f | Z) * (reproj ((In (i0,(dom G))),nx0))) /. x) - (((f | Z) * (reproj ((In (i0,(dom G))),nx0))) /. x0) = (L . (x - x0)) + (R /. (x - x0)) )
assume A31: x in N ; :: thesis: (((f | Z) * (reproj ((In (i0,(dom G))),nx0))) /. x) - (((f | Z) * (reproj ((In (i0,(dom G))),nx0))) /. x0) = (L . (x - x0)) + (R /. (x - x0))
then A32: x in N0 by XBOOLE_0:def 4;
A33: dom (reproj ((In (i0,(dom G))),nx0)) = the carrier of (G . (In (i0,(dom G)))) by FUNCT_2:def 1;
x in N1 by A31, XBOOLE_0:def 4;
then A34: (reproj ((In (i0,(dom G))),nx0)) . x in dom (f | Z) by A25;
then A35: (reproj ((In (i0,(dom G))),nx0)) . x in (dom f) /\ Z by RELAT_1:61;
then A36: (reproj ((In (i0,(dom G))),nx0)) . x in dom f by XBOOLE_0:def 4;
A37: (reproj ((In (i0,(dom G))),nx0)) . x0 in dom (f | Z) by A25, NFCONT_1:4;
then A38: (reproj ((In (i0,(dom G))),nx0)) . x0 in (dom f) /\ Z by RELAT_1:61;
then A39: (reproj ((In (i0,(dom G))),nx0)) . x0 in dom f by XBOOLE_0:def 4;
A40: ((f | Z) * (reproj ((In (i0,(dom G))),nx0))) /. x = (f | Z) /. ((reproj ((In (i0,(dom G))),nx0)) /. x) by A34, A33, PARTFUN2:4
.= f /. ((reproj ((In (i0,(dom G))),nx0)) /. x) by A35, PARTFUN2:16
.= (f * (reproj ((In (i0,(dom G))),nx0))) /. x by A33, A36, PARTFUN2:4 ;
((f | Z) * (reproj ((In (i0,(dom G))),nx0))) /. x0 = (f | Z) /. ((reproj ((In (i0,(dom G))),nx0)) /. x0) by A33, A37, PARTFUN2:4
.= f /. ((reproj ((In (i0,(dom G))),nx0)) /. x0) by A38, PARTFUN2:16
.= (f * (reproj ((In (i0,(dom G))),nx0))) /. x0 by A33, A39, PARTFUN2:4 ;
hence (((f | Z) * (reproj ((In (i0,(dom G))),nx0))) /. x) - (((f | Z) * (reproj ((In (i0,(dom G))),nx0))) /. x0) = (L . (x - x0)) + (R /. (x - x0)) by A40, A32, A30; :: thesis: verum
end;
hence f | Z is_partial_differentiable_in nx0,i0 by A29, NDIFF_1:def 6; :: thesis: verum
end;
hence f is_partial_differentiable_on Z,i0 by A19; :: thesis: verum