
theorem Th7:
  for m be non zero Element of NAT,Z be non empty Subset of REAL m,
      f be PartFunc of REAL m,REAL,I,G be non empty FinSequence of NAT
st f is_partial_differentiable_on Z,G
    holds
f `partial|(Z,G^I) = f`partial|(Z,G) `partial|(Z,I)
proof
  let m be non zero Element of NAT, Z be non empty Subset of REAL m,
      f be PartFunc of REAL m,REAL, I,G be non empty FinSequence of NAT;
  set g = f`partial|(Z,G);
  reconsider Z0 = 0 as Element of NAT;
assume A1: f is_partial_differentiable_on Z,G;
A2:dom G c= dom (G^I) by FINSEQ_1:26;
A3:for i be Nat st i <= len G - 1 holds (G^I)/.(i+1) = G/.(i+1)
  proof
    let i be Nat;
    assume i <= len G - 1;
    then
      1 <= i+1 & i+1 <= len G by NAT_1:11,XREAL_1:19;
    then
A4:   i+1 in dom G by FINSEQ_3:25;
    then
      (G^I)/.(i+1) = (G^I).(i+1) by A2,PARTFUN1:def 6;
    then
      (G^I)/.(i+1) = G.(i+1) by A4,FINSEQ_1:def 7;
    hence (G^I)/.(i+1) = G/.(i+1) by A4,PARTFUN1:def 6;
  end;
A5:len (G^I) = len G + len I by FINSEQ_1:22;
A6:for i be Nat st i <= (len I)-1
     holds (G^I)/.(len G + (i+1)) = I/.(i+1)
  proof
    let i be Nat;
    assume i <= len I - 1;
    then
A7:   i+1 <= len I by XREAL_1:19;
    then
A8: i+1 in dom I by FINSEQ_3:25,NAT_1:11;
    1 <= len G + (i+1) by NAT_1:11,XREAL_1:38;
    then
    len G + (i+1) in dom (G^I) by FINSEQ_3:25,A5,A7,XREAL_1:7;
    hence (G^I)/.(len G + (i+1)) =(G^I).(len G + (i+1)) by PARTFUN1:def 6
                                .= I.(i+1) by A8,FINSEQ_1:def 7
                                .= I/.(i+1) by A8,PARTFUN1:def 6;
  end;

  defpred P0[Nat] means
    $1 <= len G - 1 implies (PartDiffSeq(f,Z,G^I)).$1 =(PartDiffSeq(f,Z,G)).$1;
A9:P0[0]
  proof
    assume 0 <= len G - 1;
    (PartDiffSeq(f,Z,G^I)).0 = f|Z by PDIFF_9:def 7;
    hence (PartDiffSeq(f,Z,G^I)).0 = (PartDiffSeq(f,Z,G)).0 by PDIFF_9:def 7;
  end;

A10:for k be Nat st P0[k] holds P0[k+1]
  proof
    let k be Nat;
    assume
A11:  P0[k];
    assume
A12:  k+1 <= len G - 1;
A13:k <= k+1 by NAT_1:11;
    thus (PartDiffSeq(f,Z,G^I)).(k+1)
        = ((PartDiffSeq(f,Z,G^I)).k)`partial|(Z,(G^I)/.(k+1)) by PDIFF_9:def 7
       .= ((PartDiffSeq(f,Z,G)).k)`partial|(Z,G/.(k+1))
                                              by A13,A3,A11,A12,XXREAL_0:2
       .= (PartDiffSeq(f,Z,G)).(k+1) by PDIFF_9:def 7;
  end;

A14:for n be Nat holds P0[n] from NAT_1:sch 2(A9,A10);

  reconsider j= (len G)-1 as Element of NAT by INT_1:5,FINSEQ_1:20;

A15:(PartDiffSeq(f,Z,G^I)).(len G)
     = ((PartDiffSeq(f,Z,G^I)).j)`partial|(Z,(G^I)/.(j+1))
         by PDIFF_9:def 7
    .= ((PartDiffSeq(f,Z,G)).j)`partial|(Z,(G^I)/.(j+1)) by A14
    .= ((PartDiffSeq(f,Z,G)).j)`partial|(Z,G/.(j+1)) by A3
    .= (PartDiffSeq(f,Z,G)).(len G) by PDIFF_9:def 7;

  defpred P[Nat] means
    $1 <= (len I) -1 implies
      (PartDiffSeq(g,Z,I)).$1 =(PartDiffSeq(f,Z,(G^I))).(len G + $1);
A16:P[0]

proof
 assume 0 <=  (len I) -1  ;
  (PartDiffSeq(f,Z,(G^I))).(len G + 0)
    =  (PartDiffSeq(f,Z,G)).(len G)  by A15
    .= g
    .= g|Z by PDIFF_9:72,A1
    .= (PartDiffSeq(g,Z,I)).0 by PDIFF_9:def 7;
  hence thesis;
end;
A17:for k be Nat st P[k] holds P[k+1]
  proof
    let k be Nat;
    assume
A18:  P[k];
    set i = (len G) + k;
    assume
A19:  k+1 <= (len I) -1;
A20: k <= k+1 by NAT_1:11;
    (G^I)/.(i+1) = (G^I)/.(len G + (k+1));
    then
A21:   (G^I)/.(i+1) = I/.(k+1) by A6,A20,A19,XXREAL_0:2;
    (PartDiffSeq(f,Z,(G^I))).(len G + (k+1))
      = ((PartDiffSeq(f,Z,(G^I))).i)`partial|(Z,(G^I)/.(i+1)) by PDIFF_9:def 7;
    hence thesis by A20,A19,A18,A21,PDIFF_9:def 7,XXREAL_0:2;
  end;

A22:for n be Nat holds P[ n ] from NAT_1:sch 2(A16,A17);

  reconsider j0= (len I)-1 as Element of NAT by INT_1:5,FINSEQ_1:20;
  reconsider j1= (len (G^I))-1 as Element of NAT by INT_1:5,FINSEQ_1:20;
A23:j1= len G + j0 by A5;
  f `partial|(Z,G^I)
    = ((PartDiffSeq(f,Z,G^I)).j1)`partial|(Z,(G^I)/.(j1+1)) by PDIFF_9:def 7
   .= ((PartDiffSeq(g,Z,I)).j0)`partial|(Z,(G^I)/.(len G + (j0+1)))
                                                             by A22,A23
   .= ((PartDiffSeq(g,Z,I)).j0)`partial|(Z,I/.(j0+1)) by A6
   .= g `partial|(Z,I) by PDIFF_9:def 7;
  hence thesis;
end;
