reserve E, F, G,S,T,W,Y for RealNormSpace;
reserve f,f1,f2 for PartFunc of S,T;
reserve Z for Subset of S;
reserve i,n for Nat;

theorem
  for B be Lipschitzian BilinearOperator of E,F,G
  holds
    for i be Nat
    holds
      diff(B,i,[#][:E,F:]) is_differentiable_on [#][:E,F:]
    & diff(B,i,[#][:E,F:]) `| [#][:E,F:] is_continuous_on [#][:E,F:]
  proof
    let B be Lipschitzian BilinearOperator of E,F,G;
    reconsider L = B `| ([#][:E,F:]) as
      Lipschitzian LinearOperator of [:E,F:],
      R_NormSpace_of_BoundedLinearOperators([:E,F:],G) by Th15;

    set G1 = R_NormSpace_of_BoundedLinearOperators([:E,F:],G);
    defpred P[Nat] means
      diff(B,$1+1,[#][:E,F:]) = diff(L,$1,[#][:E,F:])
    & diff_SP($1+1,[:E,F:],G) = diff_SP($1,[:E,F:],G1);

    A1: P[0]
    proof
      thus diff(B,0+1,[#][:E,F:])
       = (B | [#][:E,F:]) `| [#][:E,F:] by NDIFF_6:11
      .= L | [#][:E,F:]
      .= diff(L,0,[#][:E,F:]) by NDIFF_6:11;

      thus diff_SP((0+1),[:E,F:],G)
       = G1 by NDIFF_6:7
      .= diff_SP(0,[:E,F:],G1) by NDIFF_6:7;
    end;

    A2: for n be Nat st P[n] holds P[n+1]
    proof
      let n be Nat;
      assume
      A3: P[n];
      A4: diff_SP((n + 1)+1,[:E,F:],G)
       = R_NormSpace_of_BoundedLinearOperators([:E,F:],
             diff_SP(n+1,[:E,F:],G)) by NDIFF_6:10
      .= diff_SP(n + 1,[:E,F:],G1) by A3,NDIFF_6:10;

      diff(B,(n+1)+1,[#][:E,F:])
       = diff(B,(n+1),[#][:E,F:]) `| [#][:E,F:] by NDIFF_6:13
      .= diff(L,n+1,[#][:E,F:]) by A3,NDIFF_6:13;
      hence thesis by A4;
    end;

    A5: for n be Nat holds P[n] from NAT_1:sch 2(A1,A2);

    let i be Nat;
    per cases;
    suppose
      A6: i = 0; then
      A7: diff_SP (i,[:E,F:],G) = G by NDIFF_6:def 2;
      B | [#][:E,F:] is_differentiable_on [#][:E,F:] by Th14;

      hence diff(B,i,[#][:E,F:]) is_differentiable_on [#][:E,F:]
          by A6,A7,NDIFF_6:def 5;
      B|[#][:E,F:] `| [#][:E,F:] is_continuous_on [#][:E,F:]
          by Th14;
      hence
      diff(B,i,[#][:E,F:]) `| [#][:E,F:] is_continuous_on [#][:E,F:]
          by A6,A7,NDIFF_6:def 5;
    end;
    suppose
      i <> 0;
      then consider j be Nat such that
      A8: i = j+1 by NAT_1:6;

      A9: diff(L,j,[#][:E,F:])
        = diff(B,i,[#][:E,F:]) by A5,A8;
      A10: diff_SP(j,[:E,F:],G1)
         = diff_SP(i,[:E,F:],G) by A5,A8;

      thus diff(B,i,[#][:E,F:]) is_differentiable_on [#][:E,F:]
         & diff(B,i,[#][:E,F:])`| [#][:E,F:] is_continuous_on [#][:E,F:]
        by A9,A10,Th20;
    end;
  end;
