reserve i for Nat,
  j for Element of NAT,
  X,Y,x,y,z for set;

theorem Th15:
  for V being ManySortedSet of NAT st
  V.0 = the set of all [{}, i] where i is Element of NAT &
  for n being Nat holds
  V.(n+1) = {[varcl A, j] where A is Subset of V.n, j is Element of NAT:
  A is finite}
  for A being finite Subset of Vars
  ex i being Element of NAT st A c= V.i
proof
  let V be ManySortedSet of NAT such that
A1: V.0 = the set of all [{}, i] where i is Element of NAT and
A2: for n being Nat holds
  V.(n+1) = {[varcl A, j] where A is Subset of V.n, j is Element of NAT:
  A is finite};
  let A be finite Subset of Vars;
A3: Vars = Union V by A1,A2,Def2;
  defpred P[object,object] means $1 in V.$2;
A4: now
    let x be object;
    assume x in A;
    then consider Y such that
A5: x in Y and
A6: Y in rng V by A3,TARSKI:def 4;
    consider i being object such that
A7: i in dom V and
A8: Y = V.i by A6,FUNCT_1:def 3;
     reconsider i as object;
    take i;
    thus i in NAT & P[x,i] by A5,A7,A8;
  end;
  consider f being Function such that
A9: dom f = A & rng f c= NAT and
A10: for x being object st x in A holds P[x,f.x] from FUNCT_1:sch 6(A4);
  per cases;
  suppose A = {};
    then A c= V.0;
    hence thesis;
  end;
  suppose A <> {};
    then reconsider B = rng f as finite non empty Subset of NAT
    by A9,FINSET_1:8,RELAT_1:42;
    reconsider i = max B as Element of NAT by ORDINAL1:def 12;
    take i;
    let x be object;
    assume
A11: x in A;
    then
A12: f.x in B by A9,FUNCT_1:def 3;
    then reconsider j = f.x as Element of NAT;
    j <= i by A12,XXREAL_2:def 8;
    then
A13: V.j c= V.i by A1,A2,Th14;
    x in V.j by A10,A11;
    hence thesis by A13;
  end;
end;
