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 Th38:
  for E,F,G be RealNormSpace
  ex B be Lipschitzian BilinearOperator of
            R_NormSpace_of_BoundedLinearOperators(E,F),
            R_NormSpace_of_BoundedLinearOperators(F,G),
            R_NormSpace_of_BoundedLinearOperators(E,G)
  st for u be Point of R_NormSpace_of_BoundedLinearOperators(E,F),
         v be Point of R_NormSpace_of_BoundedLinearOperators(F,G)
     holds B.(u,v) = v*u
proof
  let E,F,G be RealNormSpace;
  set EF = the carrier of R_NormSpace_of_BoundedLinearOperators(E,F);
  set FG = the carrier of R_NormSpace_of_BoundedLinearOperators(F,G);
  set EG = the carrier of R_NormSpace_of_BoundedLinearOperators(E,G);

  defpred P1[Element of EF, Element of FG,object]means
  $3 = $2 * $1;

  A1: for x be Element of EF
      for y be Element of FG
      ex z be Element of EG st P1[x,y,z];

  consider L be Function of [:EF,FG:],EG such that
  A2: for x be Element of EF
      for y be Element of FG
      holds P1[x,y,L.(x,y)] from BINOP_1:sch 3(A1);

  set LEF = R_NormSpace_of_BoundedLinearOperators(E,F);
  set LFG = R_NormSpace_of_BoundedLinearOperators(F,G);
  set LEG = R_NormSpace_of_BoundedLinearOperators(E,G);

  A3: for x1, x2 be Point of LEF
      for y be Point of LFG
      holds L.(x1 + x2, y) = L.(x1, y) + L.(x2, y)
  proof
    let x1, x2 be Point of LEF;
    let y be Point of LFG;
    thus L . (x1 + x2,y)
     = y * (x1 + x2) by A2
    .= y * x1 + y * x2 by LOPBAN13:19
    .= L.(x1,y) + y * x2 by A2
    .= L.(x1,y) + L.(x2,y) by A2;
  end;

  A4: for x be Point of LEF
      for y be Point of LFG
      for a be Real
      holds L.(a * x, y) = a * L.(x,y)
  proof
    let x be Point of LEF;
    let y be Point of LFG;
    let a be Real;
    thus L.(a*x,y)
     = y * (a*x) by A2
    .= (a*y) * x by LOPBAN13:28
    .= a * (y*x) by LOPBAN13:28
    .= a * L.(x,y) by A2;
  end;

  A5: for x be Point of LEF
      for y1, y2 be Point of LFG
      holds L.(x,y1 + y2) = L.(x,y1) + L.(x,y2)
  proof
    let x be Point of LEF;
    let y1, y2 be Point of LFG;
    thus L.(x,y1 + y2)
     = (y1 + y2) * x by A2
    .= y1*x + y2*x by LOPBAN13:20
    .= L.(x,y1) + y2*x by A2
    .= L.(x,y1) + L.(x,y2) by A2;
  end;

  A6: for x be Point of LEF
      for y be Point of LFG
      for a be Real holds L.(x, a*y) = a * L.(x,y)
  proof
    let x be Point of LEF;
    let y be Point of LFG;
    let a be Real;
    thus L.(x, a*y)
     = (a*y) * x by A2
    .= a * (y*x) by LOPBAN13:28
    .= a * L.(x,y) by A2;
  end;

  reconsider L as BilinearOperator of
    R_NormSpace_of_BoundedLinearOperators(E,F),
    R_NormSpace_of_BoundedLinearOperators(F,G),
    R_NormSpace_of_BoundedLinearOperators(E,G)
    by A3,A4,A5,A6,LOPBAN_8:12;

  set K = 1;

  for x be VECTOR of LEF
  for y be VECTOR of LFG
  holds ||.L.(x,y).|| <= (K * ||.x.||) * ||.y.||
  proof
    let x be VECTOR of LEF;
    let y be VECTOR of LFG;

    reconsider x1 = x as Lipschitzian LinearOperator of E,F
      by LOPBAN_1:def 9;
    reconsider y1 = y as Lipschitzian LinearOperator of F,G
      by LOPBAN_1:def 9;

    A7: modetrans(x,E,F) = x1 by LOPBAN_1:def 11;

    BoundedLinearOperatorsNorm(E,G).(y1 * x1)
    <= (BoundedLinearOperatorsNorm(F,G).y1)
      * (BoundedLinearOperatorsNorm(E,F).x1) by LOPBAN_2:2;
    then ||.y * x.|| <= ||.y.|| * ||.x.|| by A7,LOPBAN_1:def 11;
    hence thesis by A2;
  end;
  then reconsider L
  as Lipschitzian BilinearOperator of
        R_NormSpace_of_BoundedLinearOperators(E,F),
        R_NormSpace_of_BoundedLinearOperators(F,G),
        R_NormSpace_of_BoundedLinearOperators(E,G)
      by LOPBAN_9:def 3;
  take L;
  thus thesis by A2;
end;
