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;

theorem Th31:
  x in X & y in X implies X \ { x },X \ { y } are_equipotent
proof
  assume that
A1: x in X and
A2: y in X;
  defpred P[object,object] means $1 = y & $2 = x or $1 <> y & $1 = $2;
A3: for a being object st a in X \ { x } ex b being object st P[a,b]
  proof
    let a be object such that
    a in X \ { x };
    a = y implies thesis;
    hence thesis;
  end;
A4: for a,b1,b2 being object st a in X \ { x } & P[a,b1] & P[a,b2]
holds b1 = b2;
  consider f such that
A5: dom f = X \ { x } &
for a being object st a in X \ { x } holds P[a,f.a] from
  FUNCT_1:sch 2(A4, A3);
  take f;
  thus f is one-to-one
  proof
    let b1,b2 be object;
    assume that
A6: b1 in dom f & b2 in dom f and
A7: f.b1 = f.b2 & b1 <> b2;
A8: ( not b1 in { x })& not b2 in { x } by A5,A6,XBOOLE_0:def 5;
    ( P[b1,f.b1])& P[b2,f.b2] by A5,A6;
    hence thesis by A7,A8,TARSKI:def 1;
  end;
  thus dom f = X \ { x } by A5;
  thus rng f c= X \ { y }
  proof
    let z be object;
    assume z in rng f;
    then consider a being object such that
A9: a in dom f and
A10: z = f.a by FUNCT_1:def 3;
A11: now
      assume
A12:  a = y;
      then ( not y in { x })& z = x by A5,A9,A10,XBOOLE_0:def 5;
      then y <> z by TARSKI:def 1;
      then
A13:  not z in { y } by TARSKI:def 1;
      z in X by A1,A5,A9,A10,A12;
      hence thesis by A13,XBOOLE_0:def 5;
    end;
    now
      assume a <> y;
      then ( not a in { y })& a = z by A5,A9,A10,TARSKI:def 1;
      hence thesis by A5,A9,XBOOLE_0:def 5;
    end;
    hence thesis by A11;
  end;
  let z be object;
  assume
A14: z in X \ { y };
  then not z in { y } by XBOOLE_0:def 5;
  then
A15: z <> y by TARSKI:def 1;
A16: now
    assume z <> x;
    then not z in { x } by TARSKI:def 1;
    then
A17: z in X \ { x } by A14,XBOOLE_0:def 5;
    then z = f.z by A5,A15;
    hence thesis by A5,A17,FUNCT_1:def 3;
  end;
  now
    assume
A18: z = x;
    then not y in { x } by A15,TARSKI:def 1;
    then
A19: y in dom f by A2,A5,XBOOLE_0:def 5;
    then z = f.y by A5,A18;
    hence thesis by A19,FUNCT_1:def 3;
  end;
  hence thesis by A16;
end;
