reserve a,b,c for set;
reserve r for Real,
  X for set,
  n for Element of NAT;

theorem Th28:
  X is countable implies Fin X is countable
proof
  defpred P[object,object] means
   ex p being FinSequence st $2 = p & $1 = rng p;
A1: X = {} & {{}} is countable or X <> {};
A2: for a being object st a in Fin X
     ex b being object st b in X* & P[a,b]
  proof let a be object;
     reconsider aa=a as set by TARSKI:1;
    assume
A3: a in Fin X;
    then aa is finite by FINSUB_1:def 5;
    then consider p being FinSequence such that
A4: a = rng p by FINSEQ_1:52;
    aa c= X by A3,FINSUB_1:def 5;
    then p is FinSequence of X by A4,FINSEQ_1:def 4;
    then p in X* by FINSEQ_1:def 11;
    hence thesis by A4;
  end;
  consider f being Function such that
A5: dom f = Fin X & rng f c= X* and
A6: for a being object st a in Fin X holds P[a,f.a] from FUNCT_1:sch 6(A2);
  f is one-to-one
  proof
    let a,b be object;
    assume that
A7: a in dom f and
A8: b in dom f;
A9: P[b,f.b] by A8,A5,A6;
    P[a,f.a] by A7,A5,A6;
    hence thesis by A9;
  end;
  then
A10: card Fin X c= card (X*) by A5,CARD_1:10;
  assume X is countable;
  then X* is countable by A1,CARD_4:13,FUNCT_7:17;
  then card (X*) c= omega;
  hence card Fin X c= omega by A10;
end;
