reserve X for set;

theorem Th19:
  for N,F being Function st (F.0 = N.0 & for n being Nat
  holds F.(n+1) = N.(n+1) \ N.n & N.n c= N.(n+1))
   for n,m being Nat st n < m holds F.n misses F.m
proof
  let N,F be Function;
  assume that
A1: F.0 = N.0 and
A2: for n being Nat holds F.(n+1) = N.(n+1) \ N.n & N.n c= N. (n+1);
  let n,m be Nat;
  assume
A3: n < m;
  then 0 <> m by NAT_1:2;
  then consider k being Nat such that
A4: m = k + 1 by NAT_1:6;
A5: for n being Nat holds F.n c= N.n
  proof
    defpred P[Nat] means F.$1 c= N.$1;
A6: for n being Nat st P[n] holds P[n+1]
    proof
      let n be Nat;
      assume F.n c= N.n;
      F.(n+1) = N.(n+1) \ N.n by A2;
      hence thesis;
    end;
A7: P[0] by A1;
    thus for n being Nat holds P[n] from NAT_1:sch 2(A7, A6);
  end;
A8: for n,m being Nat st n <= m holds F.n c= N.m
  proof
    let n,m be Nat;
A9: n < m implies F.n c= N.m
    proof
      assume n < m;
      then
A10:  N.n c= N.m by A2,Th18;
      F.n c= N.n by A5;
      hence thesis by A10;
    end;
    assume n <= m;
    then n = m or n < m by XXREAL_0:1;
    hence thesis by A5,A9;
  end;
  reconsider k as Element of NAT by ORDINAL1:def 12;
  F.(k+1) = N.(k+1) \ N.k by A2;
  then
A11: N.k misses F.(k+1) by XBOOLE_1:79;
  n <= k by A3,A4,NAT_1:13;
  then F.n /\ F.(k+1) = (F.n /\ N.k) /\ F.(k+1) by A8,XBOOLE_1:28
    .= F.n /\ (N.k /\ F.(k+1)) by XBOOLE_1:16
    .= F.n /\ {} by A11
    .= {};
  hence thesis by A4;
end;
