reserve n for non zero Element of NAT;
reserve a,b,r,t for Real;

theorem Th7:
  for X being RealBanachSpace, f being Function of X,X st
      ex n0 being Nat st iter(f,n0) is contraction holds
  f is with_unique_fixpoint
  proof
    let X be RealBanachSpace;
    let f be Function of X, X;
    given n0 be Nat such that
A1: iter(f,n0) is contraction;
    consider xp be Point of X such that
A2: (iter(f,n0)).xp = xp and
A3: for x be Point of X st iter(f,n0).x = x holds xp = x by A1,NFCONT_2:14;
    take xp;
    thus A4: xp is_a_fixpoint_of f
    proof
A5:   (iter(f,n0)).(f.xp) = (iter(f,n0)*f).xp by FUNCT_2:15
      .=(iter(f,n0+1)).xp by FUNCT_7:69
      .=(f*iter(f,n0)).xp by FUNCT_7:71
      .=f.xp by A2,FUNCT_2:15;
      thus f.xp = xp by A5,A3;
    end;
A6: now
    let x be Point of X such that
A7: f.x = x;
    for n be Nat holds (iter(f,n)).x = x
    proof
      defpred P[Nat] means (iter(f,$1)).x = x;
      (iter(f,0)).x=(id the carrier of X).x by FUNCT_7:84
      .=x;
      then
A8:   P[ 0 ];
A9:   now let n be Nat such that
A10:     P[n];
        reconsider m = n as Element of NAT by ORDINAL1:def 12;
        (iter(f,n+1)).x = (f*iter(f,m)).x by FUNCT_7:71
        .= x by A7,A10,FUNCT_2:15;
        hence P[n+1];
      end;
      for n be Nat holds P[n] from NAT_1:sch 2(A8,A9);
      hence thesis;
    end;
    then (iter(f,n0)).x = x;
    hence xp = x by A3;
  end;
  let y be set;
A11: dom f = the carrier of X by FUNCT_2:def 1;
    assume
A12: y is_a_fixpoint_of f;
    then reconsider x1 = xp, y1 = y as Point of X by A11;
A13: f.x1 = x1 & f.y1 = y1 by A12,A4;
    thus xp = y by A6,A13;
  end;
