reserve m,n for non zero Element of NAT;
reserve i,j,k for Element of NAT;
reserve Z for set;

theorem Th80:
for f be PartFunc of REAL m,REAL,
    I,G be non empty FinSequence of NAT
 holds f is_partial_differentiable_on Z,G^I
   iff f is_partial_differentiable_on Z,G
     & f`partial|(Z,G) is_partial_differentiable_on Z,I
proof
   let f be PartFunc of REAL m,REAL,
       I,G be non empty FinSequence of NAT;
   set g = f`partial|(Z,G);
A1:dom G c= dom (G^I) by FINSEQ_1:26;
A2: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
A3: i+1 in dom G by FINSEQ_3:25; then
    (G^I)/.(i+1) = (G^I).(i+1) by A1,PARTFUN1:def 6; then
    (G^I)/.(i+1) = G.(i+1) by A3,FINSEQ_1:def 7;
    hence (G^I)/.(i+1) = G/.(i+1) by A3,PARTFUN1:def 6;
   end;
A4:len (G^I) = len G + len I by FINSEQ_1:22;
A5: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
A6: i+1 <= len I by XREAL_1:19; then
A7: i+1 in dom I by NAT_1:11,FINSEQ_3:25;
    1 <= len G + (i+1) by NAT_1:11,XREAL_1:38; then
    len G + (i+1) in dom (G^I) by A4,A6,FINSEQ_3:25,XREAL_1:7;
    hence (G^I)/.(len G + (i+1)) =(G^I).(len G + (i+1)) by PARTFUN1:def 6
            .= I.(i+1) by A7,FINSEQ_1:def 7
            .= I/.(i+1) by A7,PARTFUN1:def 6;
   end;
   defpred P0[Nat] means
    $1 <= len G - 1 implies
     (PartDiffSeq(f,Z,G^I)).$1 =(PartDiffSeq(f,Z,G)).$1;
A8:P0[0]
   proof
    assume 0 <= len G - 1;
    (PartDiffSeq(f,Z,G^I)).0 = f |Z  by Def7;
    hence (PartDiffSeq(f,Z,G^I)).0 = (PartDiffSeq(f,Z,G)).0 by Def7;
   end;
A9:for k be Nat st P0[k] holds P0[k+1]
   proof
    let k be Nat;
    assume A10: P0[k];
    assume A11: k+1 <= len G - 1;
A12: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 Def7
       .= ((PartDiffSeq(f,Z,G)).k)`partial|(Z,G/.(k+1))
             by A12,A2,A10,A11,XXREAL_0:2
       .= (PartDiffSeq(f,Z,G)).(k+1) by Def7;
   end;
A13:for n be Nat holds P0[n] from NAT_1:sch 2(A8,A9);
   hereby assume A14: f is_partial_differentiable_on Z,G^I;
    now let i be Element of NAT;
     assume A15: i <= (len G)-1; then
     i + 0 <= (len G) -1 + (len I) by XREAL_1:7; then
A16: (PartDiffSeq(f,Z,(G^I))).i
       is_partial_differentiable_on Z,(G^I)/.(i+1) by A4,A14;
     (G^I)/.(i+1) = G/.(i+1) by A15,A2;
     hence (PartDiffSeq(f,Z,G)).i is_partial_differentiable_on Z,G/.(i+1)
       by A16,A15,A13;
    end;
    hence A17: f is_partial_differentiable_on Z,G;
    now let i be Element of NAT;
     assume A18: i <= (len I)-1; then
     len G + i <= len G + ((len I)-1) by XREAL_1:6; then
A19: (PartDiffSeq(f,Z,(G^I))).(len G + i)
       is_partial_differentiable_on Z,(G^I)/.((len G + i)+1) by A4,A14;
     (len I)-1 <= (len I)-0 by XREAL_1:13; then
A20: i <= len I by A18,XXREAL_0:2;
     (G^I)/.((len G + i)+1) = (G^I)/.(len G + (i+1)); then
     (G^I)/.((len G + i)+1) = I/.(i+1) by A18,A5;
     hence (PartDiffSeq(g,Z,I)).i
              is_partial_differentiable_on Z,I/.(i+1) by A19,A20,Th73,A17;
    end;
    hence g is_partial_differentiable_on Z,I;
   end;
   now assume A20: f is_partial_differentiable_on Z,G
                & g is_partial_differentiable_on Z,I;
    now let i be Element of NAT;
     assume A21: i <= (len (G^I))-1;
     per cases;
     suppose A22: i <= (len G) -1; then
A23:  (PartDiffSeq(f,Z,G)).i is_partial_differentiable_on Z,G/.(i+1) by A20;
      G/.(i+1) =(G^I)/.(i+1) by A22,A2;
      hence (PartDiffSeq(f,Z,G^I)).i
         is_partial_differentiable_on Z,(G^I)/.(i+1) by A22,A13,A23;
     end;
     suppose not (i <= (len G) -1); then
      len G < i+1 by XREAL_1:19; then
      len G <= i by NAT_1:13; then
      reconsider k = i - len G as Element of NAT by INT_1:5;
A24:  i - len G <=(len G)+(len I)-1 - len G by A21,A4,XREAL_1:9; then
A25:  k <= (len I) -1 & i = k+len G;
A26:  (PartDiffSeq(g,Z,I)).k
          is_partial_differentiable_on Z,I/.(k+1) by A20,A24;
    (len I)-1 <= (len I)-0 by XREAL_1:13; then
     A27:   k <= (len I) by A24,XXREAL_0:2;
      i+1 = (k+1) + len G; then
      I/.(k+1) = (G^I)/.(i+1) by A24,A5;
      hence (PartDiffSeq(f,Z,(G^I))).i
        is_partial_differentiable_on Z,(G^I)/.(i+1) by A20,A26,A25,A27,Th73;
     end;
    end;
    hence f is_partial_differentiable_on Z,(G^I);
   end;
   hence thesis;
end;
