reserve 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 FIXPOINT:
  for X be RealBanachSpace,
      S be non empty Subset of X,
      f be PartFunc of X,X
  st S is closed & dom f = S & rng f c= S
   & ex k be Real
     st 0 < k < 1
      & for x,y be Point of X st x in S & y in S
        holds ||. f/.x - f/.y .|| <= k * ||.x-y.||
  holds
    (ex x0 be Point of X st x0 in S & f.x0 = x0)
   &(for x0,y0 be Point of X st x0 in S & y0 in S & f.x0 = x0 & f.y0 = y0
     holds x0 = y0)
  proof
    let X be RealBanachSpace,
        S be non empty Subset of X,
        f be PartFunc of X,X;
    assume that
    A1: S is closed and
    A2: dom f = S & rng f c= S and
    A3: ex k be Real
         st 0 < k < 1
          & for x,y be Point of X st x in S & y in S
            holds ||. f/.x - f/.y .|| <= k * ||.x-y.||;
    consider x0 be object such that
    A4: x0 in S by XBOOLE_0:def 1;
    reconsider x0 as Element of X by A4;
    consider K be Real such that
    A5: 0 < K and
    A6: K < 1 and
    A7: for x,y be Point of X st x in S & y in S
        holds ||.f/.x - f/.y.|| <= K * ||.x - y.|| by A3;
    deffunc G(set,set)=f.$2;
    consider g be Function such that
    A8: dom g = NAT & g.0 = x0 & for n being Nat holds g.(n+1) = G(n,g.n)
        from NAT_1:sch 11;
    defpred P[Nat] means g.$1 in S & g.$1 is Element of X;
    A9: for k be Nat st P[k] holds P[k+1]
    proof
      let k be Nat such that
      A10: P[k];
      A11: g.(k+1)=f.(g.k) by A8;
      f.(g.k) in rng f by A2,A10,FUNCT_1:3;
      hence thesis by A2,A11;
    end;
    A12: P[0] by A4,A8;
    A13: for n be Nat holds P[n] from NAT_1:sch 2(A12,A9);
    for n be object st n in NAT holds g.n in the carrier of X
    proof
      let n be object such that
      A14: n in NAT;
      reconsider k = n as Nat by A14;
      g.k is Element of X by A13;
      hence thesis;
    end; then
    reconsider g as sequence of X by A8,FUNCT_2:3;
    for x being Element of NAT holds g.x in S by A13; then
    A15: rng g c= S by FUNCT_2:114;
    A16: for n be Nat
        holds ||.g.(n+1) - g.n .|| <= ||. g.1-g.0 .|| * (K to_power n)
    proof
      defpred P[Nat] means
      ||.g.($1+1) - g.($1) .|| <= ||. g.1-g.0 .|| * (K to_power $1);
      A17: for k be Nat st P[k] holds P[k+1]
      proof
        let k be Nat;
        A18: g.(k+1) in S & g.k in S by A13;
        A19: f/.(g.(k+1)) = f.(g.(k+1)) & f/. (g.k) = f. (g.k)
              by A2,A13,PARTFUN1:def 6;
        assume P[k]; then
        A20: K * ||. g.(k+1) - g.k .||
            <= K * (||. g.1-g.0 .|| * (K to_power k)) by A5,XREAL_1:64;
        ||.f/.(g.(k+1)) - f/.(g.k) .||
          <= K * ||. g.(k+1) - g.k .|| by A7,A18; then
        ||.f/.(g.(k+1)) - f/.(g.k).||
          <= ||. g.1-g.0 .|| * (K * (K to_power k)) by A20,XXREAL_0:2; then
        A21: ||.f/.(g.(k+1)) - f/.(g.k) .||
          <= ||. g.1-g.0 .|| * ((K to_power 1) * (K to_power k)) by POWER:25;
        g.(k+1) =f.(g.k) by A8; then
        ||.g.((k+1)+1) - g.(k+1).||
          = ||.f/.(g.(k+1)) - f/.(g.k) .|| by A8,A19;
        hence thesis by A5,A21,POWER:27;
      end;
      ||. g.(0+1) - g.(0) .|| = ||. g.1-g.0 .|| * 1
        .= ||. g.1-g.0 .|| * (K to_power 0 ) by POWER:24; then
      A22: P[0];
      for n be Nat holds P[n] from NAT_1:sch 2(A22,A17);
      hence thesis;
    end;
    A23: for k,n be Nat holds
         ||.g.(n+k) - g.n.|| <= ||. g.1-g.0 .||
          * ((K to_power n - K to_power (n+k)) / (1-K))
    proof
      defpred P[Nat] means
      for n be Nat holds ||. g.(n+$1) - g.n .|| <= ||. g.1-g.0 .||
        * ((K to_power n-K to_power (n+$1)) /(1-K));
      A24: now
        let k be Nat such that
        A25: P[k];
        now
          let n be Nat;
          1-K <> 0 by A6; then
          A26: ||. g.1-g.0 .|| * ((K to_power n - K to_power (n+k)) /(1-K))
               + ||. g.1-g.0 .|| * (K to_power (n+k))
             = ||. g.1-g.0 .|| * ((K to_power n - K to_power (n+k))/(1-K))
               + ||. g.1-g.0 .|| * (K to_power (n+k)) * (1-K)/(1-K)
                  by XCMPLX_1:89
            .= ||. g.1-g.0 .|| * ((K to_power n - K to_power (n+k))/(1-K))
               + ||. g.1-g.0 .|| * ((K to_power (n+k))*(1-K))/(1-K)
            .= ||. g.1-g.0 .|| * ((K to_power n - K to_power (n+k))/(1-K))
               + ||. g.1-g.0 .|| * ((K to_power (n+k)*(1-K))/(1-K))
                  by XCMPLX_1:74
            .= ||. g.1-g.0 .|| * (((K to_power n - K to_power (n+k))/(1-K))
               + ((K to_power (n+k)*(1-K))/(1-K)))
            .= ||. g.1-g.0 .|| * (((K to_power n - K to_power (n+k))
               + (K to_power (n+k)*(1-K)))/(1-K)) by XCMPLX_1:62
            .= ||. g.1-g.0 .|| * ((K to_power n - K*K to_power (n+k))/(1-K))
            .= ||. g.1-g.0 .|| * ((K to_power n - (K to_power 1) *
                  K to_power (n+k)) /(1-K)) by POWER:25
            .= ||. g.1-g.0 .|| * ((K to_power n - K to_power (n+k+1))/(1-K))
                by A5,POWER:27;
          ||.g.(n+k) - g.n .||
            <= ||. g.1-g.0 .|| * ((K to_power n - K to_power (n+k)) / (1-K))
          & ||.g.((n+k)+1) - g.(n+k) .||
            <= ||. g.1-g.0 .||* (K to_power (n+k)) by A16,A25; then
          ||.g.(n+(k+1)) - g.n .||
            <= ||.g.(n+(k+1)) - g.(n+k) .|| + ||.g.(n+k) - g.n .||
          & ||.g.(n+(k+1)) - g.(n+k) .|| + ||.g.(n+k) - g.n .||
            <= ||. g.1-g.0 .|| * (K to_power (n+k))
             + ||. g.1-g.0 .|| * ((K to_power n - K to_power (n+k)) /(1-K))
              by NORMSP_1:10,XREAL_1:7;
          hence ||.g.(n+(k+1)) - g.n .||
             <= ||. g.1-g.0 .||*((K to_power n - K to_power (n+(k+1)))/(1-K))
              by A26,XXREAL_0:2;
        end;
        hence P[k+1];
      end;
      now
        let n be Nat;
        ||.g.(n+0) - g.n .|| = ||.0.X.|| by RLVECT_1:15
                            .= 0;
        hence ||.g.(n+0) - g.n .||
           <= ||. g.1-g.0 .||* ((K to_power n - K to_power (n+0))/(1-K));
      end; then
      A27: P[0];
      for k be Nat holds P[k] from NAT_1:sch 2(A27,A24);
      hence thesis;
    end;
    A28: for k,n be Nat holds
         ||.g.(n+k) - g.n .|| <= ||. g.1-g.0 .|| * (K to_power n /(1-K))
    proof
      let k be Nat;
      now
        let n be Nat;
        K to_power (n+k) > 0 by A5,POWER:34; then
        A29: K to_power n - K to_power (n+k) <= K to_power n - 0 by XREAL_1:13;
        1-K > 1-1 by A6,XREAL_1:15; then
        (K to_power n - K to_power (n+k)) / (1-K)
          <= (( K to_power n ) /(1-K)) by A29,XREAL_1:72; then
        A30: ||. g.1-g.0 .|| * ((K to_power n - K to_power (n+k))/(1-K))
          <= ||. g.1-g.0 .|| * (( K to_power n ) /(1-K)) by XREAL_1:64;
        ||. g.(n+k) - g.n .||
        <= ||. g.1-g.0 .|| * ((K to_power n - K to_power (n+k))/(1-K)) by A23;
        hence ||.g.(n+k) - g.n .||
          <= ||. g.1-g.0 .|| * ((K to_power n)/(1-K)) by A30,XXREAL_0:2;
      end;
      hence thesis;
    end;
    now
      let e be Real such that
      A31: e > 0;
      e/2 > 0 by A31,XREAL_1:215; then
      consider n be Nat such that
      A32: |. ||. g.1-g.0 .|| / (1-K) * (K to_power n) .| < e/2
        by A5,A6,NFCONT_2:16;
      reconsider nn=n+1 as Nat;
      take nn;
      ||. g.1-g.0 .|| / (1-K)* (K to_power n)
      <= |. ||. g.1-g.0 .|| / (1-K)* (K to_power n) .| by ABSVALUE:4; then
      ||. g.1-g.0 .|| / (1-K)* (K to_power n) < e/2 by A32,XXREAL_0:2; then
      A33: ||. g.1-g.0 .|| *( (K to_power n)/(1-K)) < e/2 by XCMPLX_1:75;
      now
        let m,l be Nat such that
        A34: nn <= m and
        A35: nn <= l;
        n < m by A34,NAT_1:13; then
        consider k1 being Nat such that
        A36: n+k1 = m by NAT_1:10;
        n < l by A35,NAT_1:13; then
        consider k2 being Nat such that
        A37: n+k2 =l by NAT_1:10;
        reconsider k2 as Nat;
        ||. g.(n+k2) - g.n .||
          <= ||. g.1-g.0 .|| * ((K to_power n) /(1-K)) by A28; then
        A38: ||.g.l - g.n .|| < e/2 by A33,A37,XXREAL_0:2;
        reconsider k1 as Nat;
        ||.g.(n+k1) - g.n .|| <= ||. g.1-g.0 .|| * ((K to_power n)/(1-K))
          by A28; then
        ||.g.m - g.n.|| < e/2 by A33,A36,XXREAL_0:2;
        hence ||.g.l - g.m.|| < e by A31,A38,NDIFF_2:4;
      end;
      hence for n, m be Nat st n >= nn & m >= nn holds ||.g.n - g.m.|| < e;
    end; then
    A39: g is convergent by LOPBAN_1:def 15,RSSPACE3:8; then
    A40: K(#)||. g - lim g .|| is convergent by NORMSP_1:24,SEQ_2:7;
    A41: lim g in S by A1,A15,A39,NFCONT_1:def 3;
    A42: now
      let n be Nat;
      A43: g.n in S by A13;
      A44: f/.(g.n) = f.(g.n) & f/.(lim g) = f.(lim g)
            by A1,A2,A13,A15,A39,NFCONT_1:def 3,PARTFUN1:def 6;
      ||. (g^\1).n - f/. (lim g) .||
        = ||. g.(n+1) - f/. (lim g) .|| by NAT_1:def 3
       .= ||. f/.(g.n)- f/. (lim g) .|| by A8,A44;
      hence ||. (g^\1).n - f/.(lim g) .||
            <= K * ||. g.n - lim g .|| by A7,A41,A43;
    end;
    A45: lim (K(#)(||.g - lim g.||))
        = K * lim ||.(g - lim g).|| by A39,NORMSP_1:24,SEQ_2:8
       .= K*0 by A39,NORMSP_1:24
       .= 0;
    A46: for e be Real st e >0
         ex n be Nat st for m be Nat
         st n<=m holds ||. (g^\1).m - f/.(lim g) .|| < e
    proof
      let e be Real;
      assume e > 0; then
      consider n be Nat such that
      A47: for m be Nat st n <= m
           holds |. (K(#)||. g - lim g .||).m - 0 .| < e
            by A40,A45,SEQ_2:def 7;
      take n;
      now
        let m be Nat;
        assume n <= m; then
        |. (K(#)||. g - lim g .||).m-0 .| < e by A47; then
        |. K*||. g - lim g .||.m.| < e by SEQ_1:9; then
        |. K*||. (g - lim g).m .||.| < e by NORMSP_0:def 4; then
        A48: |. K*||. g.m - lim g .||.| < e by NORMSP_1:def 4;
        K * ||. g.m - lim g .|| <= |. K*||. g.m - lim g .||.| by ABSVALUE:4;
        then
        A49:  K*||. g.m - lim g .|| < e by A48,XXREAL_0:2;
        ||. (g^\1).m - f/.(lim g) .|| <= K* ||. g.m - lim g .|| by A42;
        hence ||. (g^\1).m - f/. (lim g) .|| < e by A49,XXREAL_0:2;
      end;
      hence thesis;
    end;
    set xp = lim g;
    A50: g^\1 is convergent & lim (g^\1) = lim g by A39,LOPBAN_3:9; then
    A51: lim g = f/.(lim g) by A46,NORMSP_1:def 7;
    A52:
    now
      let x be Point of X such that
      A53: x in S & f.x = x;
      A54: f/.x = x by A2,A53,PARTFUN1:def 6;
      A55: for k be Nat holds ||.x-xp.|| <= ||.x-xp.|| * (K to_power k)
      proof
        defpred P[Nat] means
        ||.x-xp .|| <= ||.x-xp.||*(K to_power $1);
        A56: for k be Nat st P[k] holds P[k+1]
        proof
          let k be Nat;
          assume P[k]; then
          A57: K * ||. x-xp .|| <= K * (||.x-xp.||*(K to_power k))
                by A5,XREAL_1:64;
          ||. f/.x - f/.xp .|| <= K * ||. x-xp .|| by A7,A41,A53; then
          ||. f/.x - f/.xp .|| <= ||. x-xp .|| * (K * (K to_power k))
            by A57,XXREAL_0:2; then
          ||. f/.x - f/.xp .||
            <= ||. x-xp .|| * ((K to_power 1) * (K to_power k)) by POWER:25;
          hence thesis by A5,A51,A54,POWER:27;
        end;
        ||.x-xp .|| = ||. x-xp .|| * 1
                   .= ||. x-xp .|| * (K to_power 0) by POWER:24; then
        A58: P[0];
        for n be Nat holds P[n] from NAT_1:sch 2(A58,A56);
        hence thesis;
      end;
      for e be Real st 0 < e holds ||.x-xp.|| < e
      proof
        let e be Real;
        assume 0 < e; then
        consider n be Nat such that
        A59: |.||.x-xp.|| * (K to_power n) .| < e by A5,A6,NFCONT_2:16;
        ||.x-xp.|| * (K to_power n) <= |.||.x-xp.||*(K to_power n).|
          by ABSVALUE:4; then
        A60: ||.x-xp.|| * (K to_power n) < e by A59,XXREAL_0:2;
        ||.x-xp.|| <= ||.x-xp.||*(K to_power n) by A55;
        hence thesis by A60,XXREAL_0:2;
      end;
      hence x=xp by NDIFF_2:4;
    end;
    xp = f/.xp by A46,A50,NORMSP_1:def 7; then
    xp = f.xp by A1,A2,A15,A39,NFCONT_1:def 3,PARTFUN1:def 6;
    hence ex x0 be Point of X st x0 in S & f.x0 = x0
        by A1,A15,A39,NFCONT_1:def 3;
    for x0,y0 be Point of X
    st x0 in S & y0 in S & f.x0 = x0 & f.y0 = y0
    holds x0=y0
    proof
      let x0,y0 be Point of X such that
      A61: x0 in S and
      A62: y0 in S and
      A63: f.x0 = x0 and
      A64: f.y0 = y0;
      x0 = xp by A52,A61,A63;
      hence thesis by A52,A62,A64;
    end;
    hence thesis;
  end;
