reserve x,y for set,
  G for Group,
  A,B,H,H1,H2 for Subgroup of G,
  a,b,c for Element of G,
  F,F1 for FinSequence of the carrier of G,
  I,I1 for FinSequence of INT,
  i,j for Element of NAT;

theorem Th21:
  for G being Group holds G is nilpotent iff
  ex F being FinSequence of the_normal_subgroups_of G st len F > 0 &
  F.1 = (Omega).G & F.(len F) = (1).G &
  for i st i in dom F & i+1 in dom F for G1,G2 being
  strict normal Subgroup of G st G1 = F.i & G2 = F.(i+1) holds
  G2 is Subgroup of G1 & [.G1, (Omega).G.] is Subgroup of G2
proof
  let G be Group;
A1: now assume G is nilpotent;
    then consider R being FinSequence of the_normal_subgroups_of G such that
A2: len R > 0 & R.1 = (Omega).G & R.(len R) = (1).G & for i st i in dom R
    & i+1 in dom R for H1,H2 being strict normal Subgroup of G st H1 = R.i
    & H2 = R.(i+1) holds H2 is Subgroup of H1 &
    H1./.(H1,H2)`*` is Subgroup of center (G./.H2);
    reconsider F = R as FinSequence of the_normal_subgroups_of G;
A3: for i st i in dom F & i+1 in dom F for G1,G2 being
    strict normal Subgroup of G st G1 = F.i & G2 = F.(i+1) holds G2 is strict
    Subgroup of G1 & [.G1, (Omega).G.] is strict Subgroup of G2
    proof
      let i;
      assume
A4:   i in dom F & i+1 in dom F;
      let G1,G2 be strict normal Subgroup of G;
      assume
A5:   G1 = F.i & G2 = F.(i+1);
      then
A6:   G2 is strict Subgroup of G1 & for N being strict normal
      Subgroup of G st N = G2 & N is strict Subgroup of G1 holds
      G1./.(G1,N)`*` is Subgroup of center (G./.N) by A2,A4;
      [.G1, (Omega).G.] is strict Subgroup of G2
      proof
        now
          let N be strict normal Subgroup of G;
          assume
A7:       N = G2 & N is strict Subgroup of G1;
          then G1./.(G1,N)`*` is Subgroup of center (G./.N) by A2,A4,A5;
          hence [.G1, (Omega).G.] is strict Subgroup of G2 by A7,Th19;
        end;
        hence thesis by A6;
      end;
      hence thesis by A2,A4,A5;
    end;
    take F;
    thus len F > 0 & F.1 = (Omega).G & F.(len F) = (1).G &
    for i st i in dom F & i+1 in dom F for G1,G2 being
    strict normal Subgroup of G st G1 = F.i & G2 = F.(i+1) holds G2 is
    Subgroup of G1 & [.G1, (Omega).G.] is Subgroup of G2 by A2,A3;
  end;
  now
    given F being FinSequence of the_normal_subgroups_of G such that
A8: len F > 0 & F.1 = (Omega).G & F.(len F) = (1).G &
    for i st i in dom F & i+1 in dom F for G1,G2 being
    strict normal Subgroup of G st G1 = F.i & G2 = F.(i+1) holds G2 is
    Subgroup of G1 & [.G1, (Omega).G.] is Subgroup of G2;
A9: for i st i in dom F & i+1 in dom F for G1,G2 being strict normal Subgroup
    of G st G1 = F.i & G2 = F.(i+1) holds
    G2 is strict Subgroup of G1 &
    G1./.(G1,G2)`*` is Subgroup of center (G./.G2)
    proof
      let i;
      assume
A10:   i in dom F & i+1 in dom F;
      let G1,G2 be strict normal Subgroup of G;
      assume
A11:   G1 = F.i & G2 = F.(i+1);
then A12:   G2 is strict Subgroup of G1 by A8,A10;
      [.G1, (Omega).G.] is strict Subgroup of G2 by A8,A10,A11;
      hence thesis by A12,Th20;
    end;
    take F;
    len F > 0 &
    F.1 = (Omega).G & F.(len F) = (1).G & for i st i in dom F & i+1 in dom F
    for G1,G2 being strict normal Subgroup of G st
    G1 = F.i & G2 = F.(i+1) holds
    G2 is Subgroup of G1 &
    G1./.(G1,G2)`*` is Subgroup of center (G./.G2) by A8,A9;
    hence G is nilpotent;
  end;
  hence thesis by A1;
end;
