  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 Th17:
  for A be non boundary convex compact Subset of TOP-REAL n,
      B be non boundary convex compact Subset of TOP-REAL m,
      C be non boundary convex compact Subset of TOP-REAL (n+m)
  for f be Function of T1,(TOP-REAL n)| A,
      g be Function of T2,(TOP-REAL m)| B
    st f is being_homeomorphism & g is being_homeomorphism
  holds
    ex h be Function of [:T1,T2:],(TOP-REAL (n+m))| C
      st h is being_homeomorphism &
        for t1, t2 holds f.t1 in Int A & g.t2 in Int B
           iff
         h.(t1,t2) in Int C
proof
  set TRn = TOP-REAL n,TRm=TOP-REAL m,nm=n+m,TRnm=TOP-REAL nm;
  let A be non boundary convex compact Subset of TRn, B be non boundary convex
  compact Subset of TRm, C be non boundary convex compact Subset of TRnm;
  let f be Function of T1,TRn| A, g be Function of T2,TRm| B such that
A1: f is being_homeomorphism
  and
A2: g is being_homeomorphism;
  set Rn=ClosedHypercube(0.TRn,n|->1),Rm=ClosedHypercube(0.TRm,m|->1),Rnm=
  ClosedHypercube(0.TRnm,nm|->1);
  consider gm be Function of TRm |B,TRm |Rm such that
A3: gm is being_homeomorphism
  and
A4: gm.:Fr B = Fr Rm by BROUWER2:7;
A5: gm.:Int B misses gm.:Fr B by A3, TOPS_1:39,FUNCT_1:66;
A6: B is non empty;
  then reconsider gmg= gm*g as Function of T2,TRm |Rm;
A7: gmg is being_homeomorphism by A2,A3,A6,TOPS_2:57;
  then
A8: dom gmg =[#]T2 by TOPS_2:def 5;
  reconsider Rn as non empty Subset of TRn;
  consider fn be Function of TRn |A,TRn |Rn such that
A9: fn is being_homeomorphism
  and
A10: fn.:Fr A = Fr Rn by BROUWER2:7;
A11:fn.:Int A misses fn.:Fr A by A9, TOPS_1:39,FUNCT_1:66;
A12: A is non empty;
  then reconsider fnf= fn*f as Function of T1,TRn |Rn;
A13: fnf is being_homeomorphism by A1,A9,A12,TOPS_2:57;
  then
A14: dom fnf =[#]T1 by TOPS_2:def 5;
A15: [#](TRm|Rm)=Rm by PRE_TOPC:def 5;
A16: Int C = C\Fr C by TOPS_1:40;
A17: [#](TRnm|C)=C by PRE_TOPC:def 5;
A18: Int Rm = Rm\Fr Rm by TOPS_1:40;
  set OHn=OpenHypercube(0.TRn,1),OHm=OpenHypercube(0.TRm,1),
      OHnm=OpenHypercube(0. TRnm,1);
  consider H be Function of TRnm |Rnm,TRnm |C such that
A19: H is being_homeomorphism
  and
A20: H.:Fr Rnm = Fr C by BROUWER2:7;
A21:H.:Int Rnm misses H.:Fr Rnm by A19, TOPS_1:39,FUNCT_1:66;
A22: Int Rm = OHm by Th11;
  consider P be Function of [:T1,T2:],TRnm| Rnm such that
A23: P is being_homeomorphism
  and
A24: for t1, t2 holds fnf.t1 in OHn & gmg.t2 in OHm
      iff P. (t1,t2) in OHnm by A7,A13,Th16;
  reconsider HP= H*P as Function of [:T1,T2:],TRnm |C;
  take HP;
  C is non empty;
  hence  HP is being_homeomorphism by A23,A19,TOPS_2:57;
  then
A25: dom HP=[#][:T1,T2:] by TOPS_2:def 5;
A26: [#](TRn|Rn)=Rn by PRE_TOPC:def 5;
A27: Int Rn = Rn\Fr Rn by TOPS_1:40;
  let t1,t2;
A28: P. [t1,t2] in dom H by A25,FUNCT_1:11;
A29:Int Rnm = OHnm by Th11;
A30: HP. [t1,t2] in rng HP by A25,FUNCT_1:def 3;
  thus f.t1 in Int A & g.t2 in Int B implies HP. (t1,t2) in Int C
  proof
A31: f.t1 in dom fn by A14,FUNCT_1:11;
    assume that
A32:  f.t1 in Int A
    and
A33:  g.t2 in Int B;
    fnf.t1 = fn.(f.t1) by A14,FUNCT_1:12;
    then fnf.t1 in fn.:Int A by A31,A32,FUNCT_1:def 6;
    then not fnf.t1 in Fr Rn by A10,A11,XBOOLE_0:3;
    then fnf.t1 in Rn \Fr Rn by A26,XBOOLE_0:def 5;
    then
A34: fnf.t1 in OHn by Th11,A27;
A35: g.t2 in dom gm by A8,FUNCT_1:11;
A36: P. [t1,t2] in dom H by A25,FUNCT_1:11;
A37: HP. [t1,t2] = H.(P. [t1,t2]) by A25,FUNCT_1:12;
    gmg.t2 = gm.(g.t2) by A8,FUNCT_1:12;
    then gmg.t2 in gm.:Int B by A35,A33,FUNCT_1:def 6;
    then not gmg.t2 in Fr Rm by A4,A5,XBOOLE_0:3;
    then gmg.t2 in Rm \Fr Rm by A15,XBOOLE_0:def 5;
    then P.(t1,t2) in OHnm by A24,A34,A22,A18;
    then HP. [t1,t2] in H.:Int Rnm by A37,A36,FUNCT_1:def 6, A29;
    then not HP. [t1,t2] in Fr C by XBOOLE_0:3,A21,A20;
    hence thesis by A16, A30,A17,XBOOLE_0:def 5;
  end;
  assume HP. (t1,t2) in Int C;
  then
A38: not HP. [t1,t2] in H.:Fr Rnm by XBOOLE_0:def 5,A16,A20;
A39: [#](TRn|A) = A by PRE_TOPC:def 5;
A40: [#](TRnm|Rnm)=Rnm by PRE_TOPC:def 5;
A41: gmg.t2 = gm.(g.t2) by A8,FUNCT_1:12;
A42: Int Rnm = Rnm\Fr Rnm by TOPS_1:40;
A43: f.t1 in dom fn by A14,FUNCT_1:11;
A44: HP. [t1,t2] = H.(P. [t1,t2]) by A25,FUNCT_1:12;
  P. [t1,t2] in Int Rnm
  proof
    assume not P. [t1,t2] in Int Rnm;
    then P. [t1,t2] in Fr Rnm by A40,A42,XBOOLE_0:def 5;
    hence thesis by A44,A28,FUNCT_1:def 6,A38;
  end;
  then
A45: P.(t1,t2) in OHnm by Th11;
  then gmg.t2 in Rm\Fr Rm by A24,A22,A18;
  then
A46: not gmg.t2 in Fr Rm by XBOOLE_0:def 5;
  Int Rn = OHn by Th11;
  then fnf.t1 in Rn\Fr Rn by A45,A24,A27;
  then
A47: not fnf.t1 in Fr Rn by XBOOLE_0:def 5;
A48: fnf.t1 = fn.(f.t1) by A14,FUNCT_1:12;
  thus f.t1 in Int A
  proof
    assume not f. t1 in Int A;
    then not f.t1 in A\Fr A by TOPS_1:40;
    then f.t1 in Fr A by A39,A43,XBOOLE_0:def 5;
    hence thesis by A48,A43,FUNCT_1:def 6,A47,A10;
  end;
  assume not g. t2 in Int B;
  then
A49: not g.t2 in B\Fr B by TOPS_1:40;
A50: g.t2 in dom gm by A8,FUNCT_1:11;
  [#](TRm|B) = B by PRE_TOPC:def 5;
  then g.t2 in Fr B by A49,A50,XBOOLE_0:def 5;
  hence thesis by A41,A50,FUNCT_1:def 6,A46,A4;
end;
