reserve m,n for Nat;
reserve i,j for Integer;
reserve S for non empty addMagma;
reserve r,r1,r2,s,s1,s2,t,t1,t2 for Element of S;
reserve G for addGroup-like non empty addMagma;
reserve e,h for Element of G;
reserve G for addGroup;
reserve f,g,h for Element of G;
reserve u for UnOp of G;
reserve A for Abelian addGroup;
reserve a,b for Element of A;
reserve x for object;
reserve y,y1,y2,Y,Z for set;
reserve k for Nat;
reserve G for addGroup;
reserve a,g,h for Element of G;
reserve A for Subset of G;
reserve G for non empty addMagma,
  A,B,C for Subset of G;
reserve a,b,g,g1,g2,h,h1,h2 for Element of G;
reserve G for addGroup-like non empty addMagma;
reserve h,g,g1,g2 for Element of G;
reserve A for Subset of G;
reserve H for Subgroup of G;
reserve h,h1,h2 for Element of H;
reserve G,G1,G2,G3 for addGroup;
reserve a,a1,a2,b,b1,b2,g,g1,g2 for Element of G;
reserve A,B for Subset of G;
reserve H,H1,H2,H3 for Subgroup of G;
reserve h,h1,h2 for Element of H;
reserve x,y,y1,y2 for set;
reserve G for addGroup;
reserve a,b,c,d,g,h for Element of G;
reserve A,B,C,D for Subset of G;
reserve H,H1,H2,H3 for Subgroup of G;
reserve n for Nat;
reserve i for Integer;
reserve L for Subset of Subgroups G;
reserve N2 for normal Subgroup of G;

theorem Th130:
  card con_class A = Index Normalizer A
proof
  defpred P[object,object] means
ex a st $1 = A * a & $2 = Normalizer A + a;
A1: for x being object st x in con_class A ex y being object st P[x,y]
  proof
    let x be object;
    assume x in con_class A;
    then consider B such that
A2: x = B and
A3: A,B are_conjugated;
    consider g such that
A4: B = A * g by A3,Th88;
    reconsider y = Normalizer A + g as set;
    take y;
    take g;
    thus thesis by A2,A4;
  end;
  consider f being Function such that
A5: dom f = con_class A and
A6: for x being object st x in con_class A holds P[x,f.x]
from CLASSES1:sch 1(A1);
A7: for x,y1,y2 st x in con_class A & P[x,y1] & P[x,y2] holds y1 = y2
  proof
    let x,y1,y2;
    assume x in con_class A;
    given a such that
A8: x = A * a and
A9: y1 = Normalizer A + a;
    given b such that
A10: x = A * b and
A11: y2 = Normalizer A + b;
    A = A * b * (-a) by A8,A10,Th54
      .= A * (b + (-a)) by Th47;
    hence thesis by A9,A11,Th129,Th120;
  end;
A12: rng f = Right_Cosets Normalizer A
  proof
    thus rng f c= Right_Cosets Normalizer A
    proof
      let x be object;
      assume x in rng f;
      then consider y being object such that
A13:  y in dom f & f.y = x by FUNCT_1:def 3;
      ex a st y = A * a & x = Normalizer A + a by A5,A6,A13;
      hence thesis by Def16;
    end;
    let x be object;
    assume x in Right_Cosets Normalizer A;
    then consider a such that
A14: x = Normalizer A + a by Def16;
    set y = A * a;
    A,A * a are_conjugated by Th88;
    then
A15: y in con_class A;
    then ex b st y = A * b & f.y = Normalizer A + b by A6;
    then x = f.y by A7,A14,A15;
    hence thesis by A5,A15,FUNCT_1:def 3;
  end;
  f is one-to-one
  proof
    let x,y be object;
    assume that
A16: x in dom f and
A17: y in dom f and
A18: f.x = f.y;
    consider b such that
A19: y = A * b and
A20: f.y = Normalizer A + b by A5,A6,A17;
    consider a such that
A21: x = A * a and
A22: f.x = Normalizer A + a by A5,A6,A16;
    ex h st b + (-a) = h & A * h = A by A18,A20,A22,Th129,Th120;
    then A = A * b * (-a) by Th47;
    hence thesis by A21,A19,Th54;
  end;
  hence card con_class A = card Right_Cosets Normalizer A
  by A5,A12,WELLORD2:def 4,CARD_1:5
    .= Index Normalizer A by Th145;
end;
