
theorem LM2:
  for X be Subset of NAT st X is infinite
  ex N be increasing sequence of NAT st rng N c= X
  proof
    let X be Subset of NAT;
    assume
    A1: X is infinite;
    reconsider BX = bool X as non empty set by ZFMISC_1:def 1;
    reconsider N0 = min*(X) as Element of NAT;
    reconsider Y0 = X as Element of BX by ZFMISC_1:def 1;
    defpred P[object,object,set,object,set] means
      $5= $3 \ {$2} & $4= min*($5);
    A2: for n be Nat, x be Element of NAT, y be Element of BX
        ex x1 be Element of NAT, y1 be Element of BX st P[n,x,y,x1,y1]
    proof
      let n be Nat, x be Element of NAT,
          y be Element of BX;
      reconsider y1 = y \ {x} as Element of BX by XBOOLE_1:1;
      set x1 = min*(y1);
      take x1,y1;
      thus thesis;
    end;
    consider N be sequence of NAT, Y be sequence of BX such that
    A3: N.0 = N0 & Y.0 = Y0
      & for n be Nat holds P[n,N.n,Y.n,N.(n+1),Y.(n+1)]
          from RECDEF_2:sch 3(A2);
    defpred Q[Nat] means
      N.$1= min*(Y.$1) & N.$1 in Y.$1 & Y.$1 is infinite & Y.$1 c= NAT;
    A4: Q[0] by A1,A3,NAT_1:def 1;
    A5: for i be Nat st Q[i] holds Q[i+1]
    proof
      let i be Nat;
      assume
      A6: Q[i];
      A7: Y.(i+1) = (Y.i) \ {N.i} & N.(i+1) = min*(Y.(i+1)) by A3;
      A8: Y.(i+1) is infinite
      proof
        assume Y.(i+1) is finite; then
        Y.(i+1) \/ {N.i} is finite;
        hence contradiction by A6,A7,XBOOLE_1:45,ZFMISC_1:31;
      end;
      Y.(i+1) c= NAT by XBOOLE_1:1;
      hence thesis by A7,A8,NAT_1:def 1;
    end;
    A9: for i be Nat holds Q[i] from NAT_1:sch 2(A4,A5);
A11:rng N c= X
    proof
      let y be object;
      assume y in rng N; then
      consider i be object such that
      A10: i in NAT & N.i = y by FUNCT_2:11;
      reconsider i as Nat by A10;
      N.i = min*(Y.i) & N.i in Y.i & Y.i is infinite & Y.i c= NAT by A9;
      hence y in X by A10;
    end;
    for i be Nat holds N.i < N.(i+1)
    proof
      let i be Nat;
 A12: N.i= min*(Y.i) & N.i in Y.i & Y.i is infinite & Y.i c= NAT by A9;
      Y.(i+1) = (Y.i) \ {N.i} & N.(i+1) = min*(Y.(i+1)) by A3; then
      A13: N.(i+1) in (Y.i) \ {N.i} by A9; then
      N.(i+1) in (Y.i) & not N.(i+1) in {N.i} by XBOOLE_0:def 5; then
      A14: N.(i+1) <> N.i by TARSKI:def 1;
      N.i <= N.(i+1) by A12,A13,NAT_1:def 1;
      hence N.i < N.(i+1) by A14,XXREAL_0:1;
    end; then
    N is increasing;
    hence thesis by A11;
  end;
