reserve v,x,x1,x2,y,z for object,
  X,X1,X2,X3 for set;

theorem Th15:
  for X,Y,Z be RealNormSpace
  holds ex I be Function of [:X,Y,Z:],product <*X,Y,Z*>
  st I is one-to-one & I is onto
  & ( for x be Point of X, y be Point of Y, z be Point of Z
      holds I.(x,y,z) = <*x,y,z*> )
  & ( for v,w be Point of [:X,Y,Z:] holds I.(v+w) = I.v + I.w )
  & ( for v be Point of [:X,Y,Z:], r be Real holds I.(r*v)=r*(I.v) )
  & 0. product <*X,Y,Z*> = I.(0.[:X,Y,Z:])
  & ( for v be Point of [:X,Y,Z:] holds ||. I.v .|| = ||.v.|| )
  proof
    let X,Y,Z be RealNormSpace;
   A1: the carrier of [:X,Y,Z:]
       = [:the carrier of X,the carrier of Y, the carrier of Z:];
    reconsider X0=X, Y0=Y, Z0=Z as RealLinearSpace;
    consider I0 be Function of [:X0,Y0,Z0:], product <*X0,Y0,Z0*> such that
    A2: I0 is one-to-one & I0 is onto
    & ( for x be Point of X, y be Point of Y,
      z be Point of Z  holds I0.(x,y,z) = <*x,y,z*> )
    & ( for v,w be Point of [:X0,Y0,Z0:] holds I0.(v+w) = I0.v + I0.w )
    & ( for v be Point of [:X0,Y0,Z0:], r be Real
    holds I0.(r*v)=r*(I0.v) )
    & 0. product <*X0,Y0,Z0*> = I0.(0.[:X0,Y0,Z0:]) by Th11;
    A3:product <*X,Y,Z*> = NORMSTR(# product carr <*X,Y,Z*>,
     zeros <*X,Y,Z*>, [:addop <*X,Y,Z*>:], [:multop <*X,Y,Z*>:],
    productnorm <*X,Y,Z*> #) by PRVECT_2:6; then
    reconsider I = I0 as Function of [:X,Y,Z:],product <*X,Y,Z*>;
    take I;
A4a: for g1, g2 being Point of [:X0,Y0:]
for f1, f2 being Point of Z0 holds
prod_ADD([:X,Y:],Z). ([g1,f1],[g2,f2]) = [(g1 + g2),(f1 + f2)]
proof
let g1, g2 be Point of [:X0,Y0:];
let f1, f2 be Point of Z0;
reconsider gg1=g1,gg2=g2 as Point of [:X,Y:];
reconsider ff1=f1,ff2=f2 as Point of Z;
thus prod_ADD([:X,Y:],Z). ([g1,f1],[g2,f2])
 = [(gg1 + gg2),(ff1 + ff2)] by PRVECT_3:def 1
.= [(g1 + g2),(f1 + f2)];
end;

A5a:
for r being Real
for g being Point of [:X0,Y0:]
for f being Point of Z0
  holds prod_MLT ([:X,Y:],Z) . (r,[g,f]) = [(r * g),(r * f)]
proof
let r be Real;
let g be Point of [:X0,Y0:];
let f be Point of Z0;
reconsider gg=g as Point of [:X,Y:];
reconsider ff=f as Point of Z;
thus prod_MLT([:X,Y:],Z). (r,[g,f]) = [r*gg,r*ff] by PRVECT_3:def 2
.= [r*g,r*f];
end;
    thus I is one-to-one & I is onto
    & ( for x be Point of X,y be Point of Y,z be Point of Z
    holds I.(x,y,z) = <*x,y,z*> ) by A2,A3;
    hereby
      let v,w be Point of [:X,Y,Z:];
      reconsider v0=v, w0=w as Point of [:X0,Y0,Z0:];
      thus I.(v+w) = I0.(v0+w0) by A4a,PRVECT_3:def 1
      .= I0.v0 + I0.w0 by A2
      .= I.v + I.w by A3;
    end;
    hereby
      let v be Point of [:X,Y,Z:], r be Real;
      reconsider v0=v as Point of [:X0,Y0,Z0:];
      thus I.(r*v) = I0.(r*v0) by A5a,PRVECT_3:def 2
      .= r*(I0.v0) by A2
      .= r*(I.v) by A3;
    end;
    thus 0. product <*X,Y,Z*> = I.(0.[:X,Y,Z:]) by A2,A3;
    for v be Point of [:X,Y,Z:] holds ||. I.v .|| = ||.v.||
    proof
      let v be Point of [:X,Y,Z:];
      consider x1 be Point of X, y1 be Point of Y,
       z1 be Point of Z such that
      A6: v = [x1,y1,z1] by Lm1,A1;
      consider v10 be Element of REAL 2 such that
      A7: v10=<* ||.[x1,y1].||,||.z1.|| *>
           & prod_NORM([:X,Y:],Z).([x1,y1],z1) = |.v10.| by PRVECT_3:def 6;
      consider v20 be Element of REAL 2 such that
      A8: v20=<* ||.x1.||,||.y1.|| *>
           & prod_NORM(X,Y).(x1,y1) = |.v20.| by PRVECT_3:def 6;
      reconsider v1=<* ||.x1.||,||.y1.||,||.z1.|| *>
      as Element of REAL 3 by FINSEQ_2:104;
A10: 0 <= Sum (sqr v20) by RVSUM_1:86;
A11: ||.[x1,y1].||^2 = Sum (sqr v20) by A10,SQUARE_1:def 2,A8
             .= Sum (<*||.x1.||^2,||.y1.||^2 *> ) by A8,TOPREAL6:11
             .= ||.x1.||^2 + ||.y1.||^2 by RVSUM_1:77;
A12: Sum (sqr v10) = Sum ( <*||.[x1,y1].||^2,||.z1.||^2 *> ) by TOPREAL6:11,A7
        .= ||.x1.||^2 + ||.y1.||^2 + ||.z1.||^2 by A11,RVSUM_1:77
        .= Sum (sqr v1) by BORSUK_7:17;
A13: |.v10.| =|.v1.| by A12;
      A14:I.v = I.(x1,y1,z1) by A6
      .= <*x1,y1,z1*> by A2;
      reconsider Iv=I.v as Element of product carr <*X,Y,Z*> by A3;
      dom <*X,Y,Z*> = Seg len <*X,Y,Z*> by FINSEQ_1:def 3
       .= {1,2,3} by FINSEQ_1:45,FINSEQ_3:1; then
      reconsider j1=1,j2=2,j3=3 as Element of dom <*X,Y,Z*> by ENUMSET1:def 1;
      A17: normsequence(<*X,Y,Z*>,Iv).j1
      = (the normF of <*X,Y,Z*>.j1).(Iv.j1) by PRVECT_2:def 11
      .= ||.x1.|| by A14;
      A18: normsequence(<*X,Y,Z *>,Iv).j2
      = (the normF of <*X,Y,Z*>.j2).(Iv.j2) by PRVECT_2:def 11
      .= ||.y1.|| by A14;
      A19: normsequence(<*X,Y,Z *>,Iv).j3
      = (the normF of <*X,Y,Z*>.j3).(Iv.j3) by PRVECT_2:def 11
      .= ||.z1.|| by A14;
      len normsequence(<*X,Y,Z*>,Iv) = len <*X,Y,Z*> by PRVECT_2:def 11
      .= 3 by FINSEQ_1:45; then
      normsequence(<*X,Y,Z*>,Iv) = v1 by A17,A18,A19,FINSEQ_1:45;
      hence thesis by A13,A7,A6,A3,PRVECT_2:def 12;
    end;
    hence thesis;
  end;
