reserve A,B,C for Ordinal,
  X,X1,Y,Y1,Z for set,a,b,b1,b2,x,y,z for object,
  R for Relation,
  f,g,h for Function,
  k,m,n for Nat;
reserve M,N for Cardinal;
reserve S for Sequence;
reserve k,n,m for Nat;
reserve l for Element of omega;

theorem Th64:
  card X c= card Y iff ex f st X c= f.:Y
proof
  deffunc G(object) = $1;
  thus card X c= card Y implies ex f st X c= f.:Y
  proof
    assume card X c= card Y;
    then consider f such that
A1: dom f = Y & X c= rng f by Th11;
    take f;
    thus thesis by A1,RELAT_1:113;
  end;
  given f such that
A2: X c= f.:Y;
  defpred C[object] means $1 in dom f;
  deffunc F(object) = f.$1;
  consider g such that
A3: dom g = Y &
for x being object st x in Y holds (C[x] implies g.x = F(x)) & (not C
  [x] implies g.x = G(x)) from PARTFUN1:sch 1;
  X c= rng g
  proof
    let x be object;
    assume x in X;
    then consider y being object such that
A4: y in dom f and
A5: y in Y and
A6: x = f.y by A2,FUNCT_1:def 6;
    x = g.y by A3,A4,A5,A6;
    hence thesis by A3,A5,FUNCT_1:def 3;
  end;
  hence thesis by A3,Th11;
end;
