reserve X,Y,Z,x,y,y1,y2 for set,
  D for non empty set,
  k,n,n1,n2,m2,m1 for Nat,

  L,K,M,N for Cardinal,
  f,g for Function;
reserve r for Real;
reserve p,q for FinSequence,
  k,m,n,n1,n2,n3 for Nat;
reserve f,f1,f2 for Function,
  X1,X2 for set;

theorem Th15:
  not M is finite implies M*`M = M
proof
  defpred P[object] means
ex f st f = $1 & f is one-to-one & dom f = [:rng f,rng
  f:];
  consider X such that
A1: for x being object holds x in X iff x in PFuncs([:M,M:],M) & P[x]
from XBOOLE_0:sch 1;
A2: x in X implies x is Function
  proof
    assume x in X;
    then ex f st f = x & f is one-to-one & dom f = [:rng f,rng f:] by A1;
    hence thesis;
  end;
A3: for Z st Z <> {} & Z c= X & Z is c=-linear holds union Z in X
  proof
    let Z;
    assume that
    Z <> {} and
A4: Z c= X and
A5: Z is c=-linear;
    union Z is Relation-like Function-like
    proof
      set F = union Z;
      thus for x being object st x in F ex y1,y2 being object st [y1,y2] = x
      proof
        let x be object;
        assume x in F;
        then consider Y such that
A6:     x in Y and
A7:     Y in Z by TARSKI:def 4;
        reconsider f = Y as Function by A2,A4,A7;
        for x being object st x in f
          ex y1,y2 being object st [y1,y2] = x by RELAT_1:def 1;
        hence thesis by A6;
      end;
      let x,y1,y2 be object;
      assume [x,y1] in F;
      then consider X1 such that
A8:   [x,y1] in X1 and
A9:   X1 in Z by TARSKI:def 4;
      assume [x,y2] in F;
      then consider X2 such that
A10:  [x,y2] in X2 and
A11:  X2 in Z by TARSKI:def 4;
      reconsider f1 = X1, f2 = X2 as Function by A2,A4,A9,A11;
      X1,X2 are_c=-comparable by A5,A9,A11,ORDINAL1:def 8;
      then X1 c= X2 or X2 c= X1;
      then
      [x,y2] in X1 &
       (for x,y1,y2 being object st [x,y1] in f1 & [x,y2] in f1 holds y1
= y2) or [x,y1] in X2 &
for x,y1,y2 being object st [x,y1] in f2 & [x,y2] in f2 holds y1 =
      y2 by A8,A10,FUNCT_1:def 1;
      hence thesis by A8,A10;
    end;
    then reconsider f = union Z as Function;
A12: f is one-to-one
    proof
      let x1,x2 be object;
      assume that
A13:  x1 in dom f and
A14:  x2 in dom f;
      [x1,f.x1] in f by A13,FUNCT_1:1;
      then consider X1 such that
A15:  [x1,f.x1] in X1 and
A16:  X1 in Z by TARSKI:def 4;
      [x2,f.x2] in f by A14,FUNCT_1:1;
      then consider X2 such that
A17:  [x2,f.x2] in X2 and
A18:  X2 in Z by TARSKI:def 4;
      consider f2 such that
A19:  f2 = X2 and
A20:  f2 is one-to-one and
      dom f2 = [:rng f2,rng f2:] by A1,A4,A18;
      consider f1 such that
A21:  f1 = X1 and
A22:  f1 is one-to-one and
      dom f1 = [:rng f1,rng f1:] by A1,A4,A16;
      X1, X2 are_c=-comparable by A5,A16,A18,ORDINAL1:def 8;
      then X1 c= X2 or X2 c= X1;
      then x1 in dom f1 & x2 in dom f1 & f.x1 = f1.x1 & f.x2 = f1.x2 or x1 in
      dom f2 & x2 in dom f2 & f.x1 = f2.x1 & f.x2 = f2.x2 by A15,A17,A21,A19,
FUNCT_1:1;
      hence thesis by A22,A20;
    end;
A23: dom f = [:rng f,rng f:]
    proof
      thus dom f c= [:rng f,rng f:]
      proof
        let x be object;
        assume x in dom f;
        then [x,f.x] in f by FUNCT_1:def 2;
        then consider Y such that
A24:    [x,f.x] in Y and
A25:    Y in Z by TARSKI:def 4;
        consider g being Function such that
A26:    g = Y and
        g is one-to-one and
A27:    dom g = [:rng g,rng g:] by A1,A4,A25;
        g c= f by A25,A26,ZFMISC_1:74;
        then rng g c= rng f by RELAT_1:11;
        then
A28:    dom g c= [:rng f,rng f:] by A27,ZFMISC_1:96;
        x in dom g by A24,A26,FUNCT_1:1;
        hence thesis by A28;
      end;
      let x1,x2 be object;
      assume
A29:  [x1,x2] in [:rng f,rng f:];
      [x1,x2]`1 in rng f by A29,MCART_1:10;
      then consider y1 being object such that
A30:  y1 in dom f & [x1,x2]`1 = f.y1 by FUNCT_1:def 3;
      [x1,x2] `2 in rng f by A29,MCART_1:10;
      then consider y2 being object such that
A31:  y2 in dom f & [x1,x2]`2 = f.y2 by FUNCT_1:def 3;
      [y2,[x1,x2]`2] in f by A31,FUNCT_1:1;
      then consider X2 such that
A32:  [y2,[x1,x2]`2] in X2 and
A33:  X2 in Z by TARSKI:def 4;
      consider f2 such that
A34:  f2 = X2 and
      f2 is one-to-one and
A35:  dom f2 = [:rng f2,rng f2:] by A1,A4,A33;
      f2 c= f by A33,A34,ZFMISC_1:74;
      then
A36:  dom f2 c= dom f by RELAT_1:11;
      [y1,[x1,x2]`1] in f by A30,FUNCT_1:1;
      then consider X1 such that
A37:  [y1,[x1,x2]`1] in X1 and
A38:  X1 in Z by TARSKI:def 4;
      consider f1 such that
A39:  f1 = X1 and
      f1 is one-to-one and
A40:  dom f1 = [:rng f1,rng f1:] by A1,A4,A38;
      X1, X2 are_c=-comparable by A5,A38,A33,ORDINAL1:def 8;
      then X1 c= X2 or X2 c= X1;
      then y1 in dom f1 & y2 in dom f1 & f1.y1 = [x1,x2]`1 & f1.y2 = [x1,x2]
`2 or y1 in dom f2 & y2 in dom f2 & f2.y1 = [x1,x2]`1 & f2.y2 = [x1,x2]`2 by
A37,A32,A39,A34,FUNCT_1:1;
      then [x1,x2]`1 in rng f1 & [x1,x2]`2 in rng f1 or [x1,x2]`1 in rng f2 &
      [x1,x2]`2 in rng f2 by FUNCT_1:def 3;
      then
A41:  [x1,x2] in dom f1 or [x1,x2] in dom f2 by A40,A35,ZFMISC_1:87;
      f1 c= f by A38,A39,ZFMISC_1:74;
      then dom f1 c= dom f by RELAT_1:11;
      hence thesis by A41,A36;
    end;
A42: rng f c= M
    proof
      let y be object;
      assume y in rng f;
      then consider x being object such that
A43:  x in dom f & y = f.x by FUNCT_1:def 3;
      [x,y] in union Z by A43,FUNCT_1:def 2;
      then consider Y such that
A44:  [x,y] in Y and
A45:  Y in Z by TARSKI:def 4;
      Y in PFuncs([:M,M:],M) by A1,A4,A45;
      then consider g being Function such that
A46:  Y = g and
      dom g c= [:M,M:] and
A47:  rng g c= M by PARTFUN1:def 3;
      x in dom g & g.x = y by A44,A46,FUNCT_1:1;
      then y in rng g by FUNCT_1:def 3;
      hence thesis by A47;
    end;
    dom f c= [:M,M:]
    proof
      let x be object;
      assume x in dom f;
      then [x,f.x] in union Z by FUNCT_1:def 2;
      then consider Y such that
A48:  [x,f.x] in Y and
A49:  Y in Z by TARSKI:def 4;
      Y in PFuncs([:M,M:],M) by A1,A4,A49;
      then consider g being Function such that
A50:  Y = g and
A51:  dom g c= [:M,M:] and
      rng g c= M by PARTFUN1:def 3;
      x in dom g by A48,A50,FUNCT_1:1;
      hence thesis by A51;
    end;
    then f in PFuncs([:M,M:],M) by A42,PARTFUN1:def 3;
    hence thesis by A1,A12,A23;
  end;
  consider f such that
A52: f is one-to-one and
A53: dom f = [:omega,omega:] & rng f = omega by Th5;
  assume
A54: not M is finite;
  then not M in omega;
  then
A55: omega c= M by CARD_1:4;
  then [:omega,omega:] c= [:M,M:] by ZFMISC_1:96;
  then f in PFuncs([:M,M:],M) by A53,A55,PARTFUN1:def 3;
  then X <> {} by A1,A52,A53;
  then consider Y such that
A56: Y in X and
A57: for Z st Z in X & Z <> Y holds not Y c= Z by A3,ORDERS_1:67;
  consider f such that
A58: f = Y and
A59: f is one-to-one and
A60: dom f = [:rng f,rng f:] by A1,A56;
  set A = rng f;
A61: [:A,A:],A are_equipotent by A59,A60;
  Y in PFuncs([:M,M:],M) by A1,A56;
  then
A62: ex f st Y = f & dom f c= [:M,M:] & rng f c= M by PARTFUN1:def 3;
  set N = card A;
A63: card M = M;
  then
A64: N c= M by A58,A62,CARD_1:11;
A65: now
    (omega \ A) misses A by XBOOLE_1:79;
    then
A66: (omega \ A) /\ A = {};
    then [:(omega \ A) /\ A,A /\ (omega \ A):] = {} by ZFMISC_1:90;
    then
A67: [:omega \ A,A:] /\ [:A,omega \ A:] = {} by ZFMISC_1:100;
    [:(omega \ A) /\ (omega \ A),(omega \ A) /\ A:] = {} by A66,ZFMISC_1:90;
    then [:omega \ A,omega \ A:] /\ [:omega \ A,A:] = {} by ZFMISC_1:100;
    then
A68: [:omega \ A,omega \ A:] misses [:omega \ A,A:];
    [:A /\ A,(omega \ A) /\ A:] = {} by A66,ZFMISC_1:90;
    then
A69: [:A,omega \ A:] /\ [:A,A:] = {} by ZFMISC_1:100;
    [:(omega \ A) /\ A,A /\ A:] = {} by A66,ZFMISC_1:90;
    then
A70: {} \/ {} = {} & [:omega \ A,A:] /\ [:A,A:] = {} by ZFMISC_1:100;
    [:(omega \ A) /\ A,(omega \ A) /\ A:] = {} by A66,ZFMISC_1:90;
    then [:omega \ A,omega \ A:] /\ [:A,A:] = {} by ZFMISC_1:100;
    then
A71: ([:omega \ A,omega \ A:] \/ [:omega \ A,A:]) /\ [:A,A:] = {} by A70,
XBOOLE_1:23;
A72: omega c= omega +` N & omega +` omega = omega by CARD_2:75,94;
    assume
A73: A is finite;
    then N in omega by CARD_3:42;
    then omega +` N c= omega +` omega by CARD_2:83;
    then
A74: omega = omega +` N by A72;
    N = card card A;
    then (omega)*`N c= omega by A73,CARD_2:89;
    then
A75: omega +` (omega)*`N = omega by CARD_2:76;
A76: omega = card (omega \ A) by A73,A74,CARD_2:98,CARD_3:42;
    [:(omega \ A) /\ A,(omega \ A) /\ (omega \ A):] = {} by A66,ZFMISC_1:90;
    then [:omega \ A,omega \ A:] /\ [:A,omega \ A:] = {} by ZFMISC_1:100;
    then ([:omega \ A,omega \ A:] \/ [:omega \ A,A:]) /\ [:A,omega \ A:] = {}
    \/ {} by A67,XBOOLE_1:23
      .= {};
    then ([:omega \ A,omega \ A:] \/ [:omega \ A,A:]) misses [:A,omega \ A:];
    then card ([:omega \ A,omega \ A:] \/ [:omega \ A,A:] \/ [:A,omega \ A:])
= card ([:omega \ A,omega \ A:] \/ [:omega \ A,A:]) +` card [:A,omega \ A:] by
CARD_2:35
      .= card [:omega \ A,omega \ A:] +` card [:omega \ A,A:] +` card [:A,
    omega \ A:] by A68,CARD_2:35
      .= card [:omega \ A,omega \ A:] +` card [:omega,N:] +` card [:A,omega
    \ A:] by A76,CARD_2:7
      .= card [:omega,omega:] +` card [:omega,N:] +` card [:A,omega \ A:] by
A76,CARD_2:7
      .= omega +` card [:omega,N:] +` card [:N,omega:] by A76,Th5,CARD_2:7
      .= omega +` (omega)*`N +` card [:N,omega:] by CARD_2:def 2
      .= omega +` (omega)*`N +` N*`(omega) by CARD_2:def 2;
    then [:omega \ A,omega \ A:] \/ [:omega \ A,A:] \/ [:A,omega \ A:],omega
    \ A are_equipotent by A76,A75,CARD_1:5;
    then consider g being Function such that
A77: g is one-to-one and
A78: dom g = [:omega \ A,omega \ A:] \/ [:omega \ A,A:] \/ [:A,omega \ A:] and
A79: rng g = omega \ A;
A80: dom (g+*f) = dom g \/ dom f by FUNCT_4:def 1;
    then
A81: dom (g+*f) = [:omega \ A,(omega \ A) \/ A:] \/ [:A,omega \ A:] \/ [:
    A,A:] by A60,A78,ZFMISC_1:97
      .= [:omega \ A,(omega \ A) \/ A:] \/ ([:A,omega \ A:] \/ [:A,A:]) by
XBOOLE_1:4
      .= [:omega \ A,(omega \ A) \/ A:] \/ [:A,(omega \ A) \/ A:] by
ZFMISC_1:97
      .= [:(omega \ A) \/ A,(omega \ A) \/ A:] by ZFMISC_1:97
      .= [:omega \/ A,(omega \ A) \/ A:] by XBOOLE_1:39
      .= [:omega \/ A,omega \/ A:] by XBOOLE_1:39;
    {} \/ {} = {};
    then dom g /\ dom f = {} by A60,A78,A71,A69,XBOOLE_1:23;
    then
A82: dom g misses dom f;
    then g c= g+*f by FUNCT_4:32;
    then rng f c= rng (g+*f) & rng g c= rng (g+*f) by FUNCT_4:18,RELAT_1:11;
    then rng (g+*f) c= rng g \/ rng f & rng g \/ rng f c= rng (g+*f) by
FUNCT_4:17,XBOOLE_1:8;
    then
A83: rng (g+*f) = rng g \/ rng f
      .= omega \/ A by A79,XBOOLE_1:39;
A84: g+*f is one-to-one
    proof
      rng f misses rng g by A79,XBOOLE_1:79;
      then
A85:  rng f /\ rng g = {};
      let x,y be object;
      assume that
A86:  x in dom (g+*f) and
A87:  y in dom (g+*f);
A88:  y in dom g or y in dom f by A80,A87,XBOOLE_0:def 3;
      x in dom f or x in dom g by A80,A86,XBOOLE_0:def 3;
      then (g+*f).x = f.x & (g+*f).y = f.y & (f.x = f.y implies x = y) or (g
+*f).x = g.x & (g+*f).y = g.y & (g.x = g.y implies x = y) or (g+*f).x = f.x & (
g+*f).y = g.y & f.x in rng f & g.y in rng g or (g+*f).x = g.x & (g+*f).y = f.y
      & g.x in rng g & f.y in rng f by A59,A77,A82,A88,FUNCT_1:def 3,FUNCT_4:13
,16;
      hence thesis by A85,XBOOLE_0:def 4;
    end;
    set x = the Element of omega \ A;
    omega \ A <> {} by A73,A74,CARD_1:68,CARD_3:42;
    then
A89: x in omega & not x in A by XBOOLE_0:def 5;
A90: omega \/ A c= M by A55,A58,A62,XBOOLE_1:8;
    then [:omega \/ A,omega \/ A:] c= [:M,M:] by ZFMISC_1:96;
    then g+*f in PFuncs([:M,M:],M) by A83,A81,A90,PARTFUN1:def 3;
    then g+*f in X by A1,A83,A81,A84;
    then g+*f = f by A57,A58,FUNCT_4:25;
    hence contradiction by A83,A89,XBOOLE_0:def 3;
  end;
A91: now
    N*`N = card [:N,N:] by CARD_2:def 2;
    then
A92: N*`N = card [:A,A:] by CARD_2:7;
    [:A,A:],A are_equipotent by A59,A60;
    then
A93: N*`N = N by A92,CARD_1:5;
    assume N <> M;
    then
A94: N in M by A64,CARD_1:3;
    M+`N = M by A54,A64,CARD_2:76;
    then card (M \ A) = M by A63,A94,CARD_2:98;
    then consider h being Function such that
A95: h is one-to-one & dom h = A and
A96: rng h c= M \ A by A64,CARD_1:10;
    set B = rng h;
    A,B are_equipotent by A95;
    then
A97: N = card B by CARD_1:5;
    A misses (M \ A) & A /\ B c= A /\ (M \ A) by A96,XBOOLE_1:26,79;
    then A /\ B c= {};
    then A /\ B = {};
    then
A98: A misses B;
    (A \/ B) \ A = B \ A by XBOOLE_1:40
      .= B by A98,XBOOLE_1:83;
    then
A99: [:B,B:] c= [:(A \/ B) \ A,A \/ B:] by ZFMISC_1:96;
    [:(A \/ B) \ A,A \/ B:] c= [:(A \/ B) \ A,A \/ B:] \/ [:A \/ B,(A \/
B ) \ A :] & [:A \/ B,A \/ B:] \ [:A,A:] = [:(A \/ B) \ A,A \/ B:] \/ [:A \/ B,
    (A \/ B ) \ A:] by XBOOLE_1:7,ZFMISC_1:103;
    then
A100: [:B,B:] c= [:A \/ B,A \/ B:] \ [:A,A:] by A99;
    N+`N = N by A65,CARD_2:75;
    then card (A \/ B) = N by A97,A98,CARD_2:35;
    then card [:A \/ B,A \/ B:] = card [:N,N:] by CARD_2:7
      .= N by A93,CARD_2:def 2;
    then
A101: card ([:A \/ B,A \/ B:] \ [:A,A:]) c= N by CARD_1:11;
    N = card [:N,N:] by A93,CARD_2:def 2;
    then N = card [:B,B:] by A97,CARD_2:7;
    then N c= card ([:A \/ B,A \/ B:] \ [:A,A:]) by A100,CARD_1:11;
    then card ([:A \/ B,A \/ B:] \ [:A,A:]) = N by A101;
    then [:A \/ B,A \/ B:] \ [:A,A:],B are_equipotent by A97,CARD_1:5;
    then consider g such that
A102: g is one-to-one and
A103: dom g = [:A \/ B,A \/ B:] \ [:A,A:] and
A104: rng g = B;
A105: dom (g+*f) = dom g \/ dom f by FUNCT_4:def 1;
    then A c= A \/ B & dom (g+*f) = [:A \/ B,A \/ B:] \/ [:A,A:] by A60,A103,
XBOOLE_1:7,39;
    then
A106: dom (g+*f) = [:A \/ B,A \/ B:] by XBOOLE_1:12,ZFMISC_1:96;
A107: ([:A \/ B,A \/ B:] \ [:A,A:]) misses [:rng f,rng f:] by XBOOLE_1:79;
A108: g+*f is one-to-one
    proof
      let x,y be object;
      assume that
A109: x in dom (g+*f) and
A110: y in dom (g+*f);
A111: y in dom g or y in dom f by A105,A110,XBOOLE_0:def 3;
      x in dom f or x in dom g by A105,A109,XBOOLE_0:def 3;
      then
A112: (g+*f).x = f.x & (g+*f).y = f.y & (f.x = f.y implies x = y) or (g
+*f).x = g.x & (g+*f).y = g.y & (g.x = g.y implies x = y) or (g+*f).x = f.x & (
g+*f).y = g.y & f.x in rng f & g.y in rng g or (g+*f).x = g.x & (g+*f).y = f.y
      & g.x in rng g & f.y in rng f by A59,A60,A102,A103,A107,A111,
FUNCT_1:def 3,FUNCT_4:13,16;
      A misses (M \ A) & A /\ B c= A /\ (M \ A) by A96,XBOOLE_1:26,79;
      then
A113: rng f /\ rng g c= {} by A104;
      assume (g+*f).x = (g+*f).y;
      hence thesis by A113,A112,XBOOLE_0:def 4;
    end;
    set x = the Element of B;
A114: B <> {} by A65,A97;
    then x in M \ A by A96;
    then
A115: not x in rng f by XBOOLE_0:def 5;
    g c= g+*f by A60,A103,FUNCT_4:32,XBOOLE_1:79;
    then rng f c= rng (g+*f) & rng g c= rng (g+*f) by FUNCT_4:18,RELAT_1:11;
    then
A116: rng g \/ rng f c= rng(g+*f) by XBOOLE_1:8;
    rng(g+*f) c= rng g \/ rng f by FUNCT_4:17;
    then
A117: rng (g+*f) = rng g \/ rng f by A116;
    B c= M by A96,XBOOLE_1:1;
    then
A118: A \/ B c= M by A58,A62,XBOOLE_1:8;
    then [:A \/ B,A \/ B:] c= [:M,M:] by ZFMISC_1:96;
    then g+*f in PFuncs([:M,M:],M) by A104,A117,A106,A118,PARTFUN1:def 3;
    then
A119: g+*f in X by A1,A104,A117,A106,A108;
    x in rng (g+*f) by A104,A117,A114,XBOOLE_0:def 3;
    hence contradiction by A57,A58,A119,A115,FUNCT_4:25;
  end;
  then M*`M = card [:N,N:] by CARD_2:def 2
    .= card [:A,A:] by CARD_2:7;
  hence thesis by A91,A61,CARD_1:5;
end;
