
theorem
  for R being finite Skew-Field holds R is commutative
proof
  let R be finite Skew-Field such that
A1: not R is commutative;
  set Z = center R;
  set cZ = the carrier of Z;
  set q = card cZ;
  set vR = VectSp_over_center R;
  set n = dim vR;
  set Rs = MultGroup R;
  set cR = the carrier of R;
  set cRs = the carrier of Rs;
  set cZs = the carrier of center Rs;
A2: card R = q |^ n by Th31;
  then
A3: card Rs = (q |^ n) - 1 by UNIROOTS:18;
A4: 1 < q by Th20;
A5: 1+-1 < q + -1 by Th20,XREAL_1:8;
  then reconsider natq1 = q - 1 as Element of NAT by INT_1:3;
  0+1 < n + 1 by Th32,XREAL_1:8;
  then
A6: 1 <= n by NAT_1:13;
  n <> 1 by A2,A1,Th21;
  then
A8: 1 < n by A6,XXREAL_0:1;
  set A = {X where X is Subset of cRs :
  X in conjugate_Classes Rs & card X = 1};
  set B = conjugate_Classes Rs \ A;
  for x being object st x in A holds x in conjugate_Classes Rs
  proof
    let x be object;
    assume x in A;
    then ex y being Subset of cRs
    st x=y & y in conjugate_Classes Rs & card y = 1;
    hence thesis;
  end;
  then
A9: A c= conjugate_Classes Rs;
  then
A10: conjugate_Classes Rs = A \/ B by XBOOLE_1:45;
  consider f being Function such that
A11: dom f = cZs and
A12: for x being object st x in cZs holds f.x = {x} from FUNCT_1:sch 3;
A13: f is one-to-one
  proof
    let x1,x2 be object;
    assume that
A14: x1 in dom f and
A15: x2 in dom f and
A16: f.x1 = f.x2;
A17: f.x1 = {x1} by A11,A12,A14;
    f.x2 = {x2} by A11,A12,A15;
    hence thesis by A16,A17,ZFMISC_1:3;
  end;
  now
    let x be object;
    hereby
      assume x in rng f;
      then consider xx being object such that
A18:  xx in dom f and
A19:  x = f.xx by FUNCT_1:def 3;
A20:  x = {xx} by A11,A12,A18,A19;
A21:  cZs c= cRs by GROUP_2:def 5;
      then reconsider X = x as Subset of cRs by A11,A18,A20,ZFMISC_1:31;
      reconsider xx as Element of Rs by A11,A18,A21;
      xx in center Rs by A11,A18;
      then con_class xx = {xx} by GROUP_5:81;
      then
A22:  X in conjugate_Classes Rs by A20;
      card X = 1 by A20,CARD_1:30;
      hence x in A by A22;
    end;
    assume x in A;
    then consider X being Subset of cRs such that
A23: x = X and
A24: X in conjugate_Classes Rs and
A25: card X = 1;
    consider a being Element of cRs such that
A26: con_class a = X by A24;
A27: a in con_class a by GROUP_3:83;
    consider xx being object such that
A28: X = {xx} by A25,CARD_2:42;
A29: a = xx by A26,A27,A28,TARSKI:def 1;
    then a in center Rs by A26,A28,GROUP_5:81;
    then
A30: a in cZs;
    then f.a = {a} by A12;
    hence x in rng f by A11,A23,A28,A29,A30,FUNCT_1:3;
  end;
  then rng f = A by TARSKI:2;
  then
A31: A, cZs are_equipotent by A11,A13,WELLORD2:def 4;
  card cZs = natq1 by Th37;
  then
A32: card A = natq1 by A31,CARD_1:5;
  consider f1 being FinSequence such that
A33: rng f1 = A and
A34: f1 is one-to-one by A9,FINSEQ_4:58;
  consider f2 being FinSequence such that
A35: rng f2 = B and
A36: f2 is one-to-one by FINSEQ_4:58;
  set f = f1^f2;
A37: rng f = conjugate_Classes Rs by A10,A33,A35,FINSEQ_1:31;
  now
    given x being object such that
A38: x in A /\ B;
A39: x in A by A38,XBOOLE_0:def 4;
    x in B by A38,XBOOLE_0:def 4;
    hence contradiction by A39,XBOOLE_0:def 5;
  end;
  then A /\ B = {} by XBOOLE_0:def 1;
  then rng f1 misses rng f2 by A33,A35,XBOOLE_0:def 7;
  then
A40: f is one-to-one FinSequence of conjugate_Classes Rs
  by A34,A36,A37,FINSEQ_1:def 4,FINSEQ_3:91;
  deffunc F(set) = card(f1.$1);
  consider p1 being FinSequence such that
A41: len p1 = len f1 & for i being Nat st i in dom p1 holds p1.i = F(i)
  from FINSEQ_1:sch 2;
  for x being object st x in rng p1 holds x in NAT
  proof
    let x be object;
    assume x in rng p1;
    then consider i being Nat such that
A42: i in dom p1 and
A43: p1.i = x by FINSEQ_2:10;
A44: x = card(f1.i) by A41,A42,A43;
    i in dom f1 by A41,A42,FINSEQ_3:29;
    then f1.i in A by A33,FUNCT_1:3;
    then ex X being Subset of cRs st ( f1.i = X)&( X in
    conjugate_Classes Rs)&( card X = 1);
    hence thesis by A44;
  end;
  then rng p1 c= NAT;
  then reconsider c1=p1 as FinSequence of NAT by FINSEQ_1:def 4;
A45: len c1 = natq1 by A32,A33,A34,A41,FINSEQ_4:62;
A46: for i being Element of NAT st i in dom c1 holds c1.i = 1
  proof
    let i be Element of NAT such that
A47: i in dom c1;
    i in dom f1 by A41,A47,FINSEQ_3:29;
    then f1.i in A by A33,FUNCT_1:3;
    then ex X being Subset of cRs
    st f1.i = X & X in conjugate_Classes Rs & card X = 1;
    hence thesis by A41,A47;
  end;
  for x being object st x in rng c1 holds x in {1}
  proof
    let x be object;
    assume x in rng c1;
    then ex i being Nat st ( i in dom c1)&( x = c1.i) by FINSEQ_2:10;
    then x = 1 by A46;
    hence thesis by TARSKI:def 1;
  end;
  then
A48: rng c1 c= {1};
  for x being object st x in {1} holds x in rng c1
  proof
    let x be object such that
A49: x in {1};
A50: Seg len c1 = dom c1 by FINSEQ_1:def 3;
    then c1.(len c1) = 1 by A5,A45,A46,FINSEQ_1:3;
    then c1.(len c1) = x by A49,TARSKI:def 1;
    hence thesis by A5,A45,A50,FINSEQ_1:3,FUNCT_1:3;
  end;
  then {1}c= rng c1;
  then rng c1={1} by A48,XBOOLE_0:def 10;
  then c1 = (dom c1) --> 1 by FUNCOP_1:9;
  then c1 = Seg (len c1) --> 1 by FINSEQ_1:def 3;
  then c1 = (len c1) |-> 1 by FINSEQ_2:def 2;
  then Sum c1 = (len c1)*1 by RVSUM_1:80;
  then
A51: Sum c1 = natq1 by A32,A33,A34,A41,FINSEQ_4:62;
  deffunc P2(set) = card(f2.$1);
  consider p2 being FinSequence such that
A52: len p2 = len f2 & for i being Nat st i in dom p2 holds p2.i = P2(i)
  from FINSEQ_1:sch 2;
  for x being object st x in rng p2 holds x in NAT
  proof
    let x be object;
    assume x in rng p2;
    then consider i being Nat such that
A53: i in dom p2 and
A54: p2.i = x by FINSEQ_2:10;
A55: x = card(f2.i) by A52,A53,A54;
    i in dom f2 by A52,A53,FINSEQ_3:29;
    then f2.i in conjugate_Classes Rs \ A by A35,FUNCT_1:3;
    then f2.i in conjugate_Classes Rs by XBOOLE_0:def 5;
    then consider a being Element of cRs such that
A56: con_class a = f2.i;
    card con_class a is Element of NAT;
    hence thesis by A55,A56;
  end;
  then rng p2 c= NAT;
  then reconsider c2=p2 as FinSequence of NAT by FINSEQ_1:def 4;
  set c = c1^c2;
  reconsider c as FinSequence of NAT;
  len c = len f1 + len f2 by A41,A52,FINSEQ_1:22;
  then
A57: len c = len f by FINSEQ_1:22;
  for i being Element of NAT st i in dom c holds c.i = card (f.i)
  proof
    let i be Element of NAT such that
A58: i in dom c;
    now per cases by A58,FINSEQ_1:25;
      suppose
A59:    i in dom c1;
        then
A60:    i in dom f1 by A41,FINSEQ_3:29;
        c.i = c1.i by A59,FINSEQ_1:def 7
          .= card(f1.i) by A41,A59
          .= card(f.i) by A60,FINSEQ_1:def 7;
        hence thesis;
      end;
      suppose ex j being Nat st j in dom c2 & i = len c1 + j;
        then consider j being Nat such that
A61:    j in dom c2 and
A62:    i = len c1 + j;
A63:    j in dom f2 by A52,A61,FINSEQ_3:29;
        c.i = c2.j by A61,A62,FINSEQ_1:def 7
          .= card(f2.j) by A52,A61
          .= card(f.i) by A41,A62,A63,FINSEQ_1:def 7;
        hence thesis;
      end;
    end;
    hence thesis;
  end;
  then card Rs = Sum c by A37,A40,A57,Th6;
  then
A64: (q |^ n) - 1 = Sum c2 + (q - 1) by A3,A51,RVSUM_1:75;
  reconsider q as non zero Element of NAT;
  reconsider n as non zero Element of NAT by Th32,ORDINAL1:def 12;
  q in COMPLEX by XCMPLX_0:def 2;
  then reconsider qc=q as Element of F_Complex by COMPLFLD:def 1;
  set pnq = eval(cyclotomic_poly n,qc);
  reconsider pnq as Integer by UNIROOTS:52;
  reconsider abspnq = |.pnq.| as Element of NAT;
  (q |^ n) <> 0 by PREPOWER:5;
  then (q |^ n)+1 > 0+1 by XREAL_1:8;
  then (q |^ n) >= 1 by NAT_1:13;
  then (q |^ n) +- 1 >= 1 +- 1 by XREAL_1:7;
  then reconsider qn1=((q |^ n) - 1) as Element of NAT by INT_1:3;
  pnq divides (q |^ n) - 1 by UNIROOTS:58;
  then abspnq divides |.(q |^ n) - 1 .| by INT_2:16;
  then
A65: abspnq divides qn1 by ABSVALUE:def 1;
  for i being Element of NAT st i in dom c2 holds abspnq divides c2/.i
  proof
    let i be Element of NAT such that
A66: i in dom c2;
    c2.i = card (f2.i) by A52,A66;
    then
A67: c2/.i = card (f2.i) by A66,PARTFUN1:def 6;
A68: i in dom f2 by A52,A66,FINSEQ_3:29;
    then f2.i in conjugate_Classes Rs \ A by A35,FUNCT_1:3;
    then f2.i in conjugate_Classes Rs by XBOOLE_0:def 5;
    then consider a being Element of cRs such that
A69: con_class a = f2.i;
    reconsider a as Element of Rs;
    reconsider s=a as Element of R by UNIROOTS:19;
    set ns = dim VectSp_over_center s;
    set ca = card con_class a;
    set oa = card Centralizer a;
A70: card Rs = ca * oa + 0 by Th13;
    then
A71: (card Rs) div oa = ca by NAT_D:def 1;
A72: qn1 div oa = ca by A3,A70,NAT_D:def 1;
    (q |^ ns) <> 0 by PREPOWER:5;
    then (q |^ ns)+1 > 0+1 by XREAL_1:8;
    then (q |^ ns) >= 1 by NAT_1:13;
    then (q |^ ns) +- 1 >= 1 +- 1 by XREAL_1:7;
    then reconsider qns1=(q |^ ns - 1) as Element of NAT by INT_1:3;
A73: oa = (card the carrier of (centralizer s)) - 1 by Th30
      .= qns1 by Th33;
    reconsider ns as non zero Element of NAT by Th34,ORDINAL1:def 12;
A74: ns <= n by Th36,NAT_D:7;
    now
      assume ns = n;
      then
A75:  card (f2.i) = 1 by A3,A69,A71,A73,NAT_2:3;
A76:  f2.i in B by A35,A68,FUNCT_1:3;
      then
A77:  f2.i in conjugate_Classes Rs by XBOOLE_0:def 5;
      not f2.i in A by A76,XBOOLE_0:def 5;
      hence contradiction by A75,A77;
    end;
    then ns < n by A74,XXREAL_0:1;
    then pnq divides ((qn1 qua Integer) div qns1) by Th36,UNIROOTS:59;
    then abspnq divides |.qn1 div qns1.| by INT_2:16;
    hence thesis by A67,A69,A72,A73,ABSVALUE:def 1;
  end;
  then abspnq divides natq1 by A64,A65,Th5,NAT_D:10;
  hence contradiction by A4,A5,A8,NAT_D:7,UNIROOTS:60;
end;
