  reserve n,m,i for Nat,
          p,q for Point of TOP-REAL n,
          r,s for Real,
          R for real-valued FinSequence;
reserve T1,T2,S1,S2 for non empty TopSpace,
        t1 for Point of T1, t2 for Point of T2,
        pn,qn for Point of TOP-REAL n,
        pm,qm for Point of TOP-REAL m;

theorem Th15:
  for r,s st r>0 & s>0
  ex h be Function of
    [: (TOP-REAL n)|ClosedHypercube(pn,n|->r),
       (TOP-REAL m)|ClosedHypercube(pm,m|->s):],
    (TOP-REAL (n+m))|ClosedHypercube(0.TOP-REAL (n+m),(n+m)|->1) st
  h is being_homeomorphism &
  h.:[: OpenHypercube(pn,r),OpenHypercube(pm,s):]
    = OpenHypercube(0.TOP-REAL (n+m),1)
proof
  let r,s such that
A1: r>0
  and
A2: s>0;
  set TRn=TOP-REAL n,TRm=TOP-REAL m,nm=n+m,TRnm=TOP-REAL nm;
  set RN = ClosedHypercube(0.TRn,n|->1),RR = ClosedHypercube(pn,n|->r),
    RS = ClosedHypercube(pm,m|->s),
    RM = ClosedHypercube(0.TRm, m|->1),RNM = ClosedHypercube(0.TRnm,nm|->1);
  reconsider Rs=RS,Rm=RM as non empty Subset of TRm by A2;
  consider hm be Function of TRm|Rs,TRm|Rm such that
A3:   hm is being_homeomorphism
    and
A4:   hm.:Fr Rs = Fr Rm by A2, BROUWER2:7;
A5: dom hm = [#](TRm|Rs) by A3,TOPS_2: def 5;
  0.TRm = 0*m by EUCLID:70;
  then
A6: 0.TRm = m|->0 by EUCLID:def 4;
  0.TRn = 0*n by EUCLID:70;
  then
A7: 0.TRn = n|->0 by EUCLID:def 4;
  reconsider Rr=RR,Rn=RN as non empty Subset of TRn by A1;
  consider hn be Function of TRn|Rr,TRn|Rn such that
A8:   hn is being_homeomorphism
    and
A9:   hn.:Fr Rr = Fr Rn by A1, BROUWER2:7;
A10:  dom hn = [#](TRn|Rr) by A8,TOPS_2: def 5;
  set Or = OpenHypercube(pn,r),Os=OpenHypercube(pm,s),
      OO=OpenHypercube(0.TRnm,1);
A11: [#](TRnm | RNM) = RNM by PRE_TOPC:def 5;
A12: Int Rs = Os by A2,Th11;
  then
A13: hm.:Os misses hm.: Fr Rs by TOPS_1:39,FUNCT_1:66, A3;
A14: [#](TRm|Rm) = Rm by PRE_TOPC:def 5;
  0.TRnm = 0*nm by EUCLID:70;
  then
A15: 0.TRnm = nm|->0 by EUCLID:def 4;
  set ON = OpenHypercube(0.TRn,1),Om=OpenHypercube(0.TRm,1);
  reconsider Rnm=RNM as non empty Subset of TRnm;
A16: n in NAT by ORDINAL1:def 12;
  m in NAT by ORDINAL1:def 12;
  then consider f be Function of [:TRn,TRm:],TRnm such that
A17: f is being_homeomorphism
    and
A18: for fi be Element of TRn,fj be Element of TRm holds
    f.(fi,fj) = fi^fj by A16,SIMPLEX2:19;
A19: [#](TRm|Rs) = Rs by PRE_TOPC:def 5;
A20: the carrier of [:TRn,TRm:] = [:the carrier of TRn,the carrier of TRm:]
    by BORSUK_1:def 2;
A21: f.: [:Rn,Rm:] c= Rnm
  proof
    let y be object;
    assume
A22:  y in f.: [:Rn,Rm:];
    then consider x be object such that
A23:  x in dom f
    and
A24:  x in [:Rn,Rm:]
    and
A25:  f.x = y by FUNCT_1:def 6;
    consider p,q be object such that
A26:  p in the carrier of TRn
    and
A27:  q in the carrier of TRm
    and
A28:  x=[p,q] by A20,A23, ZFMISC_1:def 2;
    reconsider q as Point of TRm by A27;
A29:  q in Rm by A24,A28,ZFMISC_1:87;
    reconsider p as Point of TRn by A26;
A30: f.x = f.(p,q) by A28
        .= p^q by A18;
    then reconsider pq=p^q as Point of TRnm by A25,A22;
A31:  p in Rn by A24,A28,ZFMISC_1:87;
    for i st i in Seg nm holds pq.i in
      [. (0.TRnm).i - (nm|->1).i,(0.TRnm).i+(nm|->1).i .]
    proof
      len q = m by CARD_1:def 7;
      then
A32:    dom q=Seg m by FINSEQ_1:def 3;
      len p = n by CARD_1:def 7;
      then
A33:    dom p = Seg n by FINSEQ_1:def 3;
      len pq= nm by CARD_1:def 7;
      then
A34:    dom pq=Seg nm by FINSEQ_1:def 3;
      let i such that
A35:  i in Seg nm;
A36:  (nm|->1).i =1 by A35,FINSEQ_2:57;
A37:  (0.TRnm).i =0 by A15;
      per cases by A34,A35,FINSEQ_1:25;
        suppose
A38:      i in dom p;
          then
A39:        pq.i=p.i by FINSEQ_1:def 7;
A40:      (0.TRn).i =0 by A7;
          (n|->1).i =1 by A38,A33,FINSEQ_2:57;
          hence thesis by A40,A39, A38,Def2,A33, A31,A37,A36;
        end;
        suppose
          ex k be Nat st k in dom q & i=len p+k;
          then consider k be Nat such that
A41:        k in dom q
          and
A42:        i=len p+k;
A43:      (m|->1).k =1 by A41,A32,FINSEQ_2:57;
A44:      (0.TRm).k =0 by A6;
          pq.i=q.k by FINSEQ_1:def 7,A41, A42;
          hence thesis by A44,A43, Def2,A32, A29,A41,A37,A36;
        end;
    end;
    hence thesis by Def2,A30,A25;
  end;
A45:dom f = [#][:TRn,TRm:] by A17,TOPS_2:def 5;
  Rnm c= f.: [:Rn,Rm:]
  proof
    let x be object;
    assume
A46:  x in Rnm;
    then reconsider pq=x as Point of TRnm;
    rng pq c= REAL;
    then reconsider pq as FinSequence of REAL by FINSEQ_1:def 4;
    len pq= nm by CARD_1:def 7;
    then consider p,q be FinSequence of REAL such that
A47:  len p = n
    and
A48:  len q = m
    and
A49:  pq = p^q by FINSEQ_2:23;
    reconsider p as Point of TRn by TOPREAL7:17,A47;
    reconsider q as Point of TRm by TOPREAL7:17,A48;
 A50: f.([p,q]) = f.(p,q)
               .= p^q by A18;
 A51: dom p = Seg n by A47,FINSEQ_1:def 3;
    now
      let i such that
A52:    i in Seg n;
A53:  (0.TRnm).i = 0 by A15;
A54:  Seg n c= Seg nm by NAT_1:11,FINSEQ_1:5;
      then (nm|->1).i = 1 by A52,FINSEQ_2:57;
      then
A55:    pq.i in [. 0-1,0+1 .] by A53, A54,A52,A46,Def2;
A56:    (0.TRn).i = 0 by A7;
      (n|->1).i = 1 by A52,FINSEQ_2:57;
      hence p.i in [. (0.TRn).i - (n|->1).i,(0.TRn).i+(n|->1).i .] by A49,
      FINSEQ_1:def 7,A51,A52,A56,A55;
    end;
    then
A57:  p in Rn by Def2;
A58:  dom q= Seg m by A48,FINSEQ_1:def 3;
    now
      let i such that
A59:    i in Seg m;
A60:  (m|->1).i = 1 by A59,FINSEQ_2:57;
A61:  (nm|->1).(i+n) = 1 by A59,FINSEQ_1:60,FINSEQ_2:57;
A62:  (0.TRm).i = 0 by A6;
A63:  (0.TRnm).(i+n) = 0 by A15;
      i+n in Seg nm by A59,FINSEQ_1:60;
      then pq.(i+n) in [. 0-1,0+1 .] by A61,A63,A46,Def2;
      hence q.i in [. (0.TRm).i - (m|->1).i,(0.TRm).i+(m|->1).i .]
        by A47,A49,FINSEQ_1:def 7,A58,A59, A60,A62;
    end;
    then q in Rm by Def2;
    then [p,q] in [:Rn,Rm:] by A57,ZFMISC_1:87;
    hence thesis by A50,A49, A45,FUNCT_1:def 6;
  end;
  then
A64: Rnm = f.: [:Rn,Rm:] by A21;
A65: [#](TRn|Rr) = Rr by PRE_TOPC:def 5;
  then
A66: the carrier of [:TRn|Rr,TRm|Rs:] = [:Rr,Rs:] by BORSUK_1:def 2,A19;
  set hnm=[:hn,hm:];
A67: hnm is being_homeomorphism by A8,A3,Th14;
  then
A68:dom hnm = [#][:TRn|Rr,TRm|Rs:] by TOPS_2:def 5;
A69: Int Rn = ON by Th11;
  then
A70: ON c= Rn by TOPS_1:16;
A71: [:TRn,TRm:] | [:Rn,Rm:] = [:TRn|Rn,TRm|Rm:] by BORSUK_3:22;
  then
  reconsider f1=f| [:Rn,Rm:] as Function of [:TRn|Rn,TRm|Rm:], TRnm | Rnm by
  A64, JORDAN24:12;
  reconsider h=f1* hnm as Function of [:TRn|RR,TRm|RS:],TRnm | RNM;
  take h;
A72: f1 is being_homeomorphism by A17,A71,METRIZTS:2,A64;
  hence h is being_homeomorphism by A67, TOPS_2:57;
A73: [#](TRn|Rn) = Rn by PRE_TOPC:def 5;
  dom f1 = [#] [:TRn|Rn,TRm|Rm:] by A72,TOPS_2:def 5;
  then
A74: dom f1 = [:Rn,Rm:] by BORSUK_1:def 2,A73, A14;
A75: Int Rm = Om by Th11;
  then
A76: Om c= Rm by TOPS_1:16;
A77: Int Rr = Or by A1,Th11;
  then
A78: hn.:Or misses hn.: Fr Rr by TOPS_1:39,FUNCT_1:66, A8;
  thus h.: [:Or,Os:] c= OO
  proof
     let y be object;
     assume
A79:   y in h.:[:Or,Os:];
     then consider x be object such that
A80:    x in dom h
      and
A81:    x in [:Or,Os:]
      and
A82:    h.x=y by FUNCT_1:def 6;
     consider p,q be object such that
A83:    p in Rr
      and
A84:    q in Rs
      and
A85:    [p,q] =x by A80,A66,ZFMISC_1:def 2;
     reconsider p as Point of TRn by A83;
A86:  hn.p in rng hn by A83, A10,A65,FUNCT_1:def 3;
     reconsider q as Point of TRm by A84;
A87:  hm.q in rng hm by A84,A5,A19,FUNCT_1:def 3;
      p in Or by A81,A85,ZFMISC_1:87;
     then hn.p in hn.:Or by A83, A10,A65,FUNCT_1:def 6;
     then not hn.p in Fr Rn by XBOOLE_0:3,A78,A9;
     then
A88:   hn.p in Rn\Fr Rn by A86,A73,XBOOLE_0:def 5;
     then reconsider hnp=hn.p as Point of TRn;
A89:  h.x = f1.(hnm.x) by A80,FUNCT_1:12;
     q in Os by A81,A85,ZFMISC_1:87;
     then hm.q in hm.:Os by A84,A5,A19,FUNCT_1:def 6;
     then not hm.q in Fr Rm by XBOOLE_0:3,A13,A4;
     then
A90:  hm.q in Rm\Fr Rm by A87,A14,XBOOLE_0:def 5;
     then reconsider hmq=hm.q as Point of TRm;
A91:hm.q in Om by A90,TOPS_1:40,A75;
     hnm.x =hnm.(p,q) by A85;
     then
A92:   y = f1. [hnp,hmq] by A82,A89,A83,A84,A10,A65,A5,A19,FUNCT_3:def 8;
A93:   f1. [hnp,hmq] = f.(hnp,hmq) by A86,A87,A73,A14,ZFMISC_1:87,FUNCT_1:49
                    .= hnp^hmq by A18;
     then hnp^hmq in [#](TRnm | RNM) by A92,A79;
     then reconsider hpq=hnp^hmq as Point of TRnm by A11;
A94:  hn. p in ON by A88,TOPS_1:40,A69;
     for i st i in Seg nm holds hpq.i in ]. (0.TRnm).i - 1,(0.TRnm).i+1.[
     proof
       len hmq = m by CARD_1:def 7;
       then
A95:     dom hmq=Seg m by FINSEQ_1:def 3;
       len hnp = n by CARD_1:def 7;
       then
A96:     dom hnp = Seg n by FINSEQ_1:def 3;
       len hpq= nm by CARD_1:def 7;
       then
A97:     dom hpq=Seg nm by FINSEQ_1:def 3;
       let i such that
A98:   i in Seg nm;
A99:   (0.TRnm).i =0 by A15;
       per cases by A97,A98,FINSEQ_1:25;
       suppose
A100:    i in dom hnp;
A101:    (0.TRn).i =0 by A7;
         hnp.i in ]. (0.TRn).i - 1,(0.TRn).i+1 .[ by A100,A94,A96,Th3;
         hence thesis by A101, A100,FINSEQ_1:def 7,A99;
       end;
       suppose
         ex k be Nat st k in dom hmq & i=len hnp+k;
         then consider k be Nat such that
A102:      k in dom hmq
         and
A103:      i=len hnp+k;
A104:    (0.TRm).k =0 by A6;
         hmq.k in ]. (0.TRm).k - 1,(0.TRm).k+1.[ by A95,A102,Th3,A91;
         hence thesis by A104, FINSEQ_1:def 7,A102,A103,A99;
       end;
     end;
     hence thesis by Th3,A93,A92;
   end;
   let y be object;
   assume
A105:y in OO;
   then reconsider pq=y as Point of TRnm;
   rng pq c= REAL;
   then reconsider pq as FinSequence of REAL by FINSEQ_1:def 4;
   len pq= nm by CARD_1:def 7;
   then consider p,q be FinSequence of REAL such that
A106: len p = n
   and
A107: len q = m
   and
A108: pq = p^q by FINSEQ_2:23;
   reconsider q as Point of TRm by TOPREAL7:17,A107;
A109: dom q= Seg m by A107,FINSEQ_1:def 3;
A110:   now
     let i such that
A111: i in Seg m;
A112: (0.TRnm).(i+n) = 0 by A15;
A113: (0.TRm).i = 0 by A6;
     i+n in Seg nm by A111,FINSEQ_1:60;
     then pq.(i+n) in ]. 0-1,0+1 .[ by A112,A105,Th3;
     hence q.i in ]. (0.TRm).i - 1,(0.TRm).i+1 .[
       by A106,A108,FINSEQ_1:def 7,A109,A111,A113;
   end;
   then
A114: q in Om by Th3;
    q in Rm by A76,Th3,A110;
   then q in rng hm by A3,TOPS_2: def 5,A14;
   then consider xq be object such that
A115: xq in dom hm
     and
A116: hm.xq=q by FUNCT_1:def 3;
   reconsider p as Point of TRn by TOPREAL7:17,A106;
A117: dom p = Seg n by A106,FINSEQ_1:def 3;
 A118:  now
A119:  Seg n c= Seg nm by NAT_1:11,FINSEQ_1:5;
     let i such that
A120:  i in Seg n;
A121: (0.TRn).i = 0 by A7;
     (0.TRnm).i = 0 by A15;
     then pq.i in ]. 0-1,0+1 .[ by A119,A120,A105,Th3;
     hence p.i in ]. (0.TRn).i - 1,(0.TRn).i +1 .[
       by A108,FINSEQ_1:def 7,A117,A120,A121;
   end;
   then
A122: p in ON by Th3;
    p in Rn by Th3,A118,A70;
   then p in rng hn by A8,TOPS_2: def 5,A73;
   then consider xp be object such that
A123: xp in dom hn
   and
A124: hn.xp=p by FUNCT_1:def 3;
   reconsider xq as Point of TRm by A115,A5,A19;
   reconsider xp as Point of TRn by A123, A10,A65;
A125: [xp,xq] in [:Rr,Rs:] by A65, A123, A115,A19,ZFMISC_1:87;
A126: [p, q] = hnm. (xp,xq) by FUNCT_3:def 8,A115,A116, A123, A124
            .=hnm. [xp,xq];
   [p,q] in [:Rn,Rm:] by A70,A122, A76,A114,ZFMISC_1:87;
   then
A127: [xp,xq] in dom h by A125,A68,A66,A126,A74,FUNCT_1:11;
   not q in Fr Rm by A114, A75, TOPS_1:39,XBOOLE_0:3;
   then not xq in Fr Rs by A4,A115,A116,FUNCT_1:def 6;
   then xq in Rs\Fr Rs by A115,A19,XBOOLE_0:def 5;
   then
A128: xq in Os by A12,TOPS_1:40;
   not p in Fr Rn by A122, A69, TOPS_1:39,XBOOLE_0:3;
   then not xp in Fr Rr by A9,A123,A124,FUNCT_1:def 6;
   then xp in Rr\Fr Rr by A123,A65,XBOOLE_0:def 5;
   then xp in Or by A77,TOPS_1:40;
   then
A129: [xp,xq] in [:Or,Os:] by A128,ZFMISC_1:87;
   f1. [p,q] = f.(p,q) by A70,A122, A76,A114,ZFMISC_1:87,FUNCT_1:49
            .= p^q by A18;
   then h. [xp,xq] = y by A127,A126,FUNCT_1:12,A108;
   hence y in h.: [:Or,Os:] by A129,A127,FUNCT_1:def 6;
end;
