reserve X,X1 for set,
  r,s for Real,
  z for Complex,
  RNS for RealNormSpace,
  CNS, CNS1,CNS2 for ComplexNormSpace;

theorem
  for f be PartFunc of CNS1,CNS2, Y be Subset of CNS1 st Y is compact &
  f is_continuous_on Y holds f is_uniformly_continuous_on Y
proof
  let f be PartFunc of CNS1,CNS2;
  let Y be Subset of CNS1;
  assume that
A1: Y is compact and
A2: f is_continuous_on Y;
A3: Y c= dom f by A2,NCFCONT1:def 11;
  assume not thesis;
  then consider r such that
A4: 0<r and
A5: for s st 0<s ex x1,x2 be Point of CNS1 st x1 in Y & x2 in Y & ||.x1
  -x2.|| < s & not ||.f/.x1 - f/.x2.||< r by A3;
  defpred P[Element of NAT,Point of CNS1] means $2 in Y & ex x2 be Point of
  CNS1 st x2 in Y & ||.$2-x2.||<1/($1+1) & not ||.f/.($2)-f/.x2.|| < r;
A6: now
    let n be Element of NAT;
    consider x1 be Point of CNS1 such that
A7: ex x2 be Point of CNS1 st x1 in Y & x2 in Y & ||.x1 -x2.|| < 1/(n
    +1) & not ||.f/.x1 - f/.x2.||< r by A5;
    take x1;
    thus P[n,x1] by A7;
  end;
  consider s1 be sequence of CNS1 such that
A8: for n be Element of NAT holds P[n,s1.n] from FUNCT_2:sch 3(A6);
  defpred P1[Nat, Point of CNS1] means $2 in Y & ||.s1.$1-$2.|| < 1
  /($1+1) & not ||.f/.(s1.$1)-f/.$2.|| < r;
A9: for n be Element of NAT ex x2 be Point of CNS1 st P1[n,x2] by A8;
  consider s2 be sequence of CNS1 such that
A10: for n be Element of NAT holds P1[n,s2.n] from FUNCT_2:sch 3(A9);
A11: for n be Nat holds P1[n,s2.n]
   proof let n be Nat;
     n in NAT by ORDINAL1:def 12;
    hence thesis by A10;
   end;
  now
    let x be Point of CNS1;
    assume x in rng s1;
    then consider n be Nat such that
A12:   x=s1.n by NCFCONT1:7;
       n in NAT by ORDINAL1:def 12;
    hence x in Y by A8,A12;
  end;
  then for x be object st x in rng s1 holds x in Y;
  then
A13: rng s1 c= Y by TARSKI:def 3;
  then consider q1 be sequence of CNS1 such that
A14: q1 is subsequence of s1 and
A15: q1 is convergent and
A16: (lim q1) in Y by A1,NCFCONT1:def 2;
  consider Ns1 be increasing sequence of NAT such that
A17: q1=s1*Ns1 by A14,VALUED_0:def 17;
  set q2 = q1 - (s1-s2)*Ns1;
A18: f|Y is_continuous_in (lim q1) by A2,A16,NCFCONT1:def 11;
  now
    let x be object;
    assume x in rng s2;
    then consider n be Nat such that
A19:   x=s2.n by NCFCONT1:7;
    thus x in Y by A11,A19;
  end;
  then
A20: rng s2 c= Y by TARSKI:def 3;
  now
    let n be Element of NAT;
    thus q2.n = (s1*Ns1).n - ((s1-s2)*Ns1).n by A17,NORMSP_1:def 3
      .= s1.(Ns1.n) - ((s1-s2)*Ns1).n by FUNCT_2:15
      .= s1.(Ns1.n) - (s1-s2).(Ns1.n) by FUNCT_2:15
      .= s1.(Ns1.n) - (s1.(Ns1.n)-s2.(Ns1.n)) by NORMSP_1:def 3
      .= (s1.(Ns1.n) - s1.(Ns1.n)) + s2.(Ns1.n) by RLVECT_1:29
      .= 0.CNS1 + s2.(Ns1.n) by RLVECT_1:15
      .= s2.(Ns1.n) by RLVECT_1:4
      .= (s2*Ns1).n by FUNCT_2:15;
  end;
  then
A21: q2 = s2*Ns1 by FUNCT_2:63;
  then rng q2 c= rng s2 by VALUED_0:21;
  then
A22: rng q2 c= Y by A20,XBOOLE_1:1;
  then rng q2 c= dom f by A3,XBOOLE_1:1;
  then rng q2 c= dom f /\ Y by A22,XBOOLE_1:19;
  then
A23: rng q2 c= dom (f|Y) by RELAT_1:61;
A24: now
    let p be Real such that
A25: 0<p;
    consider k be Nat such that
A26: p" < k by SEQ_4:3;
    take k;
    let m be Nat;
    assume k <= m;
    then k+1 <= m+1 by XREAL_1:6;
    then 1/(m+1) <= 1/(k+1) by XREAL_1:118;
    then
A27: ||.s1.m - s2.m.|| < 1/(k+1) by A11,XXREAL_0:2;
    k < k+1 by NAT_1:13;
    then p" < k+1 by A26,XXREAL_0:2;
    then 1/(k+1) < 1/p" by A25,XREAL_1:76;
    then
A28: 1/(k+1) < p by XCMPLX_1:216;
    ||.(s1-s2).m - 0.CNS1.|| = ||.s1.m - s2.m - 0.CNS1.|| by NORMSP_1:def 3
      .= ||.s1.m - s2.m .|| by RLVECT_1:13;
    hence ||.(s1-s2).m - 0.CNS1.|| < p by A28,A27,XXREAL_0:2;
  end;
  then
A29: s1-s2 is convergent by CLVECT_1:def 15;
  then
A30: (s1-s2)*Ns1 is convergent by CLOPBAN3:7;
  then
A31: q2 is convergent by A15,CLVECT_1:114;
  rng q1 c= rng s1 by A14,VALUED_0:21;
  then
A32: rng q1 c= Y by A13,XBOOLE_1:1;
  then rng q1 c= dom f by A3,XBOOLE_1:1;
  then rng q1 c= dom f /\ Y by A32,XBOOLE_1:19;
  then
A33: rng q1 c= dom (f|Y) by RELAT_1:61;
  then
A34: (f|Y)/.(lim q1)=lim((f|Y)/*q1) by A15,A18,NCFCONT1:def 5;
A35: (f|Y)/*q1 is convergent by A15,A18,A33,NCFCONT1:def 5;
  lim (s1-s2) = 0.CNS1 by A24,A29,CLVECT_1:def 16;
  then lim ((s1-s2)*Ns1) = 0.CNS1 by A29,CLOPBAN3:8;
  then
A36: lim q2 = lim q1 - 0.CNS1 by A15,A30,CLVECT_1:120
    .= lim q1 by RLVECT_1:13;
  then
A37: (f|Y)/*q2 is convergent by A18,A31,A23,NCFCONT1:def 5;
  then
A38: (f|Y)/*q1 - (f|Y)/*q2 is convergent by A35,CLVECT_1:114;
  (f|Y)/.(lim q1) = lim ((f|Y)/*q2) by A18,A31,A36,A23,NCFCONT1:def 5;
  then
A39: lim ((f|Y)/*q1 - (f|Y)/*q2) = (f|Y)/.(lim q1) - (f|Y)/.(lim q1) by A35,A34
,A37,CLVECT_1:120
    .= 0.CNS2 by RLVECT_1:15;
  now
    let n be Element of NAT;
    consider k be Nat such that
A40: for m be Nat st k<=m holds ||.((f|Y)/*q1 - (f|Y)/*q2).
    m-0.CNS2 .||<r by A4,A38,A39,CLVECT_1:def 16;
A41: k in NAT by ORDINAL1:def 12;
A42: q1.k in rng q1 by NCFCONT1:7;
A43: q2.k in rng q2 by NCFCONT1:7;
    ||.((f|Y)/*q1 - (f|Y)/*q2).k - 0.CNS2 .|| = ||.((f|Y)/*q1 - (f|Y)/*q2
    ).k .|| by RLVECT_1:13
      .= ||.((f|Y)/*q1).k - ((f|Y)/*q2).k.|| by NORMSP_1:def 3
      .= ||.(f|Y)/.(q1.k) - ((f|Y)/*q2).k.|| by A33,FUNCT_2:109,A41
      .= ||.(f|Y)/.(q1.k) - (f|Y)/.(q2.k) .|| by A23,FUNCT_2:109,A41
      .= ||.f/.(q1.k) - (f|Y)/.(q2.k).|| by A33,A42,PARTFUN2:15
      .= ||.f/.(q1.k) - f/.(q2.k).|| by A23,A43,PARTFUN2:15
      .= ||.f/.(s1.(Ns1.k)) - f/.((s2*Ns1).k).|| by A17,A21,FUNCT_2:15,A41
      .= ||.f/.(s1.(Ns1.k)) - f/.(s2.(Ns1.k)).|| by FUNCT_2:15,A41;
    hence contradiction by A11,A40;
  end;
  hence contradiction;
end;
