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
  for H being Subgroup of G holds Left_Cosets H is finite & index H = 2
  implies H is normal Subgroup of G
proof
  let H be Subgroup of G;
  assume that
A1: Left_Cosets H is finite and
A2: index H = 2;
  ex B being finite set st B = Left_Cosets H & index H = card B by A1,
Th146;
  then consider x,y being object such that
A3: x <> y and
A4: Left_Cosets H = {x,y} by A2,CARD_2:60;
  carr H in Left_Cosets H by Th135;
  then {x,y} = {x,carr H} or {x,y} = {carr H,y} by A4,TARSKI:def 2;
  then consider z3 being object such that
A5: {x,y} = {carr H,z3};
  reconsider z3 as set by TARSKI:1;
A6: carr H misses z3
  proof
    z3 in Left_Cosets H by A4,A5,TARSKI:def 2;
    then
A7: ex a st z3 = a + H by Def15;
A8: carr H = 0_G + H by ThB109;
    assume not thesis;
    then carr H = z3 by A7,A8,Th115;
    then
A9: {x,y} = {carr H} by A5,ENUMSET1:29;
    then x = carr H by ZFMISC_1:4;
    hence thesis by A3,A9,ZFMISC_1:4;
  end;
  union Left_Cosets H = the carrier of G & union Left_Cosets H = carr H
  \/ z3 by A4,A5,Th137,ZFMISC_1:75;
  then
A10: union Right_Cosets H = the carrier of G & z3 = (the carrier of G) \
  carr H by A6,Th137,XBOOLE_1:88;
  ex C being finite set st C = Right_Cosets H & index H = card C by A1,
Th146;
  then consider z1,z2 being object such that
A11: z1 <> z2 and
A12: Right_Cosets H = {z1,z2} by A2,CARD_2:60;
  carr H in Right_Cosets H by Th135;
  then {z1,z2} = {z1,carr H} or {z1,z2} = {carr H,z2} by A12,TARSKI:def 2;
  then consider z4 being object such that
A13: {z1,z2} = {carr H,z4};
  reconsider z4 as set by TARSKI:1;
A14: carr H misses z4
  proof
    z4 in Right_Cosets H by A12,A13,TARSKI:def 2;
    then
A15: ex a st z4 = H + a by Def16;
A16: carr H = H + 0_G by ThB109;
    assume not thesis;
    then carr H = z4 by A15,A16,Th121;
    then
A17: {z1,z2} = {carr H} by A13,ENUMSET1:29;
    then z1 = carr H by ZFMISC_1:4;
    hence thesis by A11,A17,ZFMISC_1:4;
  end;
A18: union Right_Cosets H = carr H \/ z4 by A12,A13,ZFMISC_1:75;
  now
    let c;
    now
      per cases;
      suppose c + H = carr H;
        hence c + H = H + c by Th113,Th119;
      end;
      suppose
A20:    c + H <> carr H;
        then
A21:    H + c <> carr H by Th113,Th119;
        c + H in Left_Cosets H by Def15;
        then
A22:    c + H = z3 by A4,A5,A20,TARSKI:def 2;
        H + c in Right_Cosets H by Def16;
        then H + c = z4 by A12,A13,A21,TARSKI:def 2;
        hence c + H = H + c by A10,A18,A14,A22,XBOOLE_1:88;
      end;
    end;
    hence c + H = H + c;
  end;
  hence thesis by Th117;
end;
