The Mizar article:

Commutator and Center of a Group

by
Wojciech A. Trybulec

Received May 15, 1991

Copyright (c) 1991 Association of Mizar Users

MML identifier: GROUP_5
[ MML identifier index ]


environ

 vocabulary INT_1, REALSET1, GROUP_2, GROUP_3, FINSEQ_1, GROUP_1, RELAT_1,
      LATTICES, BINOP_1, FUNCT_1, BOOLE, QC_LANG1, RCOMP_1, ARYTM_1, GROUP_4,
      RLSUB_1, VECTSP_1, SUBSET_1, FINSET_1, CARD_1, TARSKI, GROUP_5, CARD_3,
      FINSEQ_4;
 notation TARSKI, XBOOLE_0, SUBSET_1, NAT_1, STRUCT_0, XCMPLX_0, FUNCT_1,
      CARD_1, FINSEQ_1, FINSET_1, FINSEQ_4, INT_1, RLVECT_1, VECTSP_1, GROUP_1,
      GROUP_2, GROUP_3, GROUP_4, DOMAIN_1;
 constructors REAL_1, GROUP_4, DOMAIN_1, NAT_1, FINSEQ_4, MEMBERED, XBOOLE_0;
 clusters CARD_1, INT_1, GROUP_1, GROUP_2, GROUP_3, RELSET_1, STRUCT_0,
      MEMBERED, ZFMISC_1, XBOOLE_0;
 requirements NUMERALS, BOOLE, SUBSET;
 definitions TARSKI, VECTSP_1, XBOOLE_0;
 theorems FINSEQ_1, FINSEQ_2, FINSEQ_3, FINSEQ_4, FUNCT_1, GROUP_1, GROUP_2,
      GROUP_3, GROUP_4, TARSKI, ZFMISC_1, RLVECT_1, VECTSP_1, XBOOLE_0,
      XBOOLE_1;
 schemes COMPLSP1, FINSEQ_2, DOMAIN_1;

begin :: Preliminaries.

scheme SubsetFD3{C,D,E() -> non empty set,
    F(set,set,set) -> Element of D(), P[set,set,set]}:
 {F(c,d,e) where c is Element of C(),d is Element of D(),
                 e is Element of E() : P[c,d,e]} is Subset of D()
 proof
    set A = {F(a,b,c) where a is Element of C(), b is Element of D(),
                            c is Element of E() : P[a,b,c]};
       A c= D()
      proof let x be set;
        assume x in A;
         then ex a being Element of C(), b being Element of D(),
                 c being Element of E() st x = F(a,b,c) & P[a,b,c];
       hence thesis;
      end;
  hence thesis;
 end;

 reserve x,y for set,
         k,n for Nat,
         i for Integer,
         G for Group,
         a,b,c,d,e for Element of G,
         A,B,C,D for Subset of G,
         H,H1,H2,H3,H4 for Subgroup of G,
         N1,N2 for normal Subgroup of G,
         F,F1,F2 for FinSequence of the carrier of G,
         I,I1,I2 for FinSequence of INT;

theorem Th1:
 x in (1).G iff x = 1.G
  proof
   thus x in (1).G implies x = 1.G
    proof assume x in (1).G;
      then x in the carrier of (1).G by RLVECT_1:def 1;
      then x in {1.G} by GROUP_2:def 7;
     hence thesis by TARSKI:def 1;
    end;
   thus thesis by GROUP_2:55;
  end;

theorem
   a in H & b in H implies a |^ b in H
  proof assume a in H & b in H;
    then b" in H & a * b in H by GROUP_2:59,60;
    then b " * (a * b) in H by GROUP_2:59;
   hence thesis by GROUP_3:20;
  end;

theorem Th3:
 for N being strict normal Subgroup of G
 holds a in N implies a |^ b in N
  proof let N be strict normal Subgroup of G;
   assume a in N;
    then a |^ b in N |^ b by GROUP_3:70;
   hence thesis by GROUP_3:def 13;
  end;

theorem Th4:
 x in H1 * H2 iff ex a,b st x = a * b & a in H1 & b in H2
  proof
   thus x in H1 * H2 implies ex a,b st x = a * b & a in H1 & b in H2
    proof assume x in H1 * H2;
     then x in carr H1 * H2 by GROUP_4:57;
     then consider a,b such that A1: x = a * b & a in carr H1 & b in H2
                                                              by GROUP_2:114;
       a in H1 by A1,GROUP_2:88;
     hence thesis by A1;
    end;
    given a,b such that A2: x = a * b & a in H1 & b in H2;
       b in carr H2 by A2,GROUP_2:88;
     then x in H1 * carr H2 by A2,GROUP_2:115;
   hence thesis by GROUP_4:57;
  end;

theorem Th5:
 H1 * H2 = H2 * H1 implies
  (x in H1 "\/" H2 iff ex a,b st x = a * b & a in H1 & b in H2)
   proof assume A1: H1 * H2 = H2 * H1;
    thus x in H1 "\/" H2 implies ex a,b st x = a * b & a in H1 & b in H2
     proof assume x in H1 "\/" H2;
       then x in the carrier of H1 "\/" H2 by RLVECT_1:def 1;
       then x in H1 * H2 by A1,GROUP_4:69;
      hence thesis by Th4;
     end;
     given a,b such that A2: x = a * b & a in H1 & b in H2;
        x in H1 * H2 by A2,Th4;
      then x in the carrier of H1 "\/" H2 by A1,GROUP_4:69;
    hence thesis by RLVECT_1:def 1;
   end;

theorem
   G is commutative Group implies
  (x in H1 "\/" H2 iff ex a,b st x = a * b & a in H1 & b in H2)
   proof assume G is commutative Group;
     then H1 * H2 = H2 * H1 by GROUP_4:65;
    hence thesis by Th5;
   end;

theorem Th7:
 for N1,N2 being strict normal Subgroup of G
 holds x in N1 "\/" N2 iff ex a,b st x = a * b & a in N1 & b in N2
  proof let N1,N2 be strict normal Subgroup of G;
      N1 * N2 = N2 * N1 by GROUP_4:64;
   hence thesis by Th5;
  end;

theorem
   for N being normal Subgroup of G holds
 H * N = N * H
  proof let N be normal Subgroup of G;
   thus H * N = carr H * N by GROUP_4:57
             .= N * carr H by GROUP_3:143
             .= N * H by GROUP_4:57;
  end;

Lm1: for E being non empty set, p,q being FinSequence of E st
 k in dom p holds (p ^ q)/.k = p/.k
  proof let E be non empty set, p,q be FinSequence of E;
    assume A1:k in dom p;
     then k in dom(p ^ q) by FINSEQ_3:24;
   hence (p ^ q)/.k = (p ^ q).k by FINSEQ_4:def 4
                   .= p.k by A1,FINSEQ_1:def 7
                   .= p/.k by A1,FINSEQ_4:def 4;
  end;

Lm2: for E being non empty set, p,q being FinSequence of E st
 k in dom q holds (p ^ q)/.(len p + k) = q/.k
  proof let E be non empty set, p,q be FinSequence of E;
    assume A1: k in dom q;
     then len p + k in dom(p ^ q) by FINSEQ_1:41;
   hence (p ^ q)/.(len p + k) = (p ^ q).(len p + k) by FINSEQ_4:def 4
                           .= q.k by A1,FINSEQ_1:def 7
                           .= q/.k by A1,FINSEQ_4:def 4;
  end;

definition let G,F,a;
 func F |^ a -> FinSequence of the carrier of G means
  :Def1: len it = len F &
        for k st k in dom F holds it.k = (F/.k) |^ a;
 existence
  proof
A1: Seg len F = dom F by FINSEQ_1:def 3;
    deffunc F(Nat) = (F/.$1) |^ a;
      ex F1 st len F1 = len F &
     for k st k in Seg len F holds F1.k = F(k) from SeqLambdaD;
   hence thesis by A1;
  end;
 correctness
  proof let F1,F2;
    assume that A2: len F1 = len F and
                A3: for k st k in dom F holds F1.k = (F/.k) |^ a and
                A4: len F2 = len F and
                A5: for k st k in dom F holds F2.k = (F/.k) |^ a;
       now let k;
       assume k in Seg len F;
       then A6: k in dom F by FINSEQ_1:def 3;
      hence F1.k = (F/.k) |^ a by A3
                .= F2.k by A5,A6;
     end;
   hence thesis by A2,A4,FINSEQ_2:10;
  end;
end;

canceled 3;

theorem Th12:
 (F1 |^ a) ^ (F2 |^ a) = (F1 ^ F2) |^ a
  proof A1:  len(F1 |^ a) + len(F2 |^ a) = len F1 + len(F2 |^ a) by Def1
                                      .= len F1 + len F2 by Def1
                                      .= len(F1 ^ F2) by FINSEQ_1:35
                                      .= len((F1 ^ F2) |^ a) by Def1;
    A2: now let k;
      assume k in dom(F1 |^ a);
       then k in Seg len(F1 |^ a) by FINSEQ_1:def 3;
       then k in Seg len F1 by Def1;
       then A3: k in dom F1 by FINSEQ_1:def 3;
       then A4: F1/.k = (F1 ^ F2)/.k & k in dom(F1 ^ F2) by Lm1,FINSEQ_3:24;
     thus (F1 |^ a).k = (F1/.k) |^ a by A3,Def1
                     .= ((F1 ^ F2) |^ a).k by A4,Def1;
    end;
      now let k;
      assume A5: k in dom(F2 |^ a);
         len F2 = len(F2 |^ a) by Def1;
       then A6: k in dom F2 by A5,FINSEQ_3:31;
       then len F1 + k in dom(F1 ^ F2) & k in dom F2 by FINSEQ_1:41;
       then len(F1 |^ a) + k in dom(F1 ^ F2) by Def1;
     hence ((F1 ^ F2) |^ a).(len(F1 |^ a) + k) =
           ((F1 ^ F2)/.(len(F1 |^ a) + k)) |^ a by Def1
        .= ((F1 ^ F2)/.(len F1 + k)) |^ a by Def1
        .= (F2/.k) |^ a by A6,Lm2
        .= (F2 |^ a).k by A6,Def1;
    end;
   hence thesis by A1,A2,FINSEQ_3:43;
  end;

theorem Th13:
 (<*> the carrier of G) |^ a = {}
  proof len((<*> the carrier of G) |^ a) = len <*> the carrier of G by Def1
                                        .= 0 by FINSEQ_1:32;
   hence thesis by FINSEQ_1:25;
  end;

theorem Th14:
 <* a *> |^ b = <* a |^ b *>
  proof A1: len<* a |^ b *> = 1 by FINSEQ_1:57
                         .= len<* a *> by FINSEQ_1:56;
      now let k;
      assume k in dom<* a *>;
       then k in {1} by FINSEQ_1:4,55;
       then A2: k = 1 by TARSKI:def 1;
     hence <* a |^ b *>.k = a |^ b by FINSEQ_1:57
                        .= (<* a *>/.k) |^ b by A2,FINSEQ_4:25;
    end;
   hence thesis by A1,Def1;
  end;

theorem Th15:
 <* a,b *> |^ c = <* a |^ c,b |^ c *>
  proof
   thus <* a,b *> |^ c = (<* a *> ^ <* b *>) |^ c by FINSEQ_1:def 9
                     .= (<* a *> |^ c) ^ (<* b *> |^ c) by Th12
                     .= <* a |^ c *> ^ (<* b *> |^ c) by Th14
                     .= <* a |^ c *> ^ <* b |^ c *> by Th14
                     .= <* a |^ c, b |^ c *> by FINSEQ_1:def 9;
  end;

theorem
   <* a,b,c *> |^ d = <* a |^ d,b |^ d,c |^ d *>
  proof
   thus <* a,b,c *> |^ d = (<* a *> ^ <* b,c *>) |^ d by FINSEQ_1:60
                       .= (<* a *> |^ d) ^ (<* b,c *> |^ d) by Th12
                       .= <* a *> |^ d ^ <* b |^ d,c |^ d *> by Th15
                       .= <* a |^ d *> ^ <* b |^ d,c |^ d *> by Th14
                       .= <* a |^ d,b |^ d,c |^ d *> by FINSEQ_1:60;
  end;

theorem Th17:
 Product(F |^ a) = Product(F) |^ a
  proof
   defpred  P[FinSequence of the carrier of G]
     means Product($1 |^ a) = Product($1) |^ a;
    A1: P[<*> the carrier of G]
     proof set p = <*> the carrier of G;
      thus Product(p |^ a) = Product p by Th13
                     .= 1.G by GROUP_4:11
                     .= (1.G) |^ a by GROUP_3:22
                     .= Product p |^ a by GROUP_4:11;
     end;
    A2: now let F,b;
      assume A3: P[F];
      thus  P[F^<*b*>]
      proof
       thus Product((F ^ <* b *>) |^ a) = Product((F |^ a) ^ (<* b *> |^ a))
        by Th12
                 .= Product(F) |^ a * Product(<* b *> |^ a) by A3,GROUP_4:8
                 .= Product(F) |^ a * Product<* b |^ a *> by Th14
                               .= Product(F) |^ a * (b |^ a) by GROUP_4:12
                               .= (Product(F) * b) |^ a by GROUP_3:28
                               .= Product(F ^ <* b *>) |^ a by GROUP_4:9;
      end;
    end;
      for F holds P[F] from IndSeqD(A1,A2);
   hence thesis;
  end;

theorem Th18:
 (F |^ a) |^ I = (F |^ I) |^ a
  proof
    A1: len(F |^ a) = len F by Def1;
    then A2: dom(F |^ a) = dom F by FINSEQ_3:31;
    A3: len((F |^ a) |^ I) = len(F |^ a) by GROUP_4:def 4;
    A4: len(F |^ I |^ a) = len(F |^ I) by Def1
                        .= len F by GROUP_4:def 4;
       len(F |^ I) = len F by GROUP_4:def 4;
    then A5:  dom(F |^ I) = dom F by FINSEQ_3:31;
      now let k;
      assume k in Seg len F;
    then A6: k in dom F by FINSEQ_1:def 3;
    then A7:  (F |^ a)/.k = (F |^ a).k & (F |^ I)/.k = (F |^ I).k
                                                 by A2,A5,FINSEQ_4:def 4;
   thus ((F |^ a) |^ I).k = ((F |^ a)/.k) |^ @(I/.k) by A2,A6,GROUP_4:def 4
                           .= ((F/.k) |^ a) |^ @(I/.k) by A6,A7,Def1
                           .= ((F/.k) |^ @(I/.k)) |^ a by GROUP_3:34
                           .= ((F |^ I)/.k) |^ a by A6,A7,GROUP_4:def 4
                           .= ((F |^ I) |^ a).k by A5,A6,Def1;
    end;
   hence thesis by A1,A3,A4,FINSEQ_2:10;
  end;

begin :: Commutators.

definition let G,a,b;
 func [.a,b.] -> Element of G equals
  :Def2:  a" * b" * a * b;
 correctness;
end;

theorem Th19:
 [.a,b.] = a" * b" * a * b & [.a,b.] = a" * (b" * a) * b &
 [.a,b.] = a" * (b" * a * b) & [.a,b.] = a" * (b" * (a * b)) &
 [.a,b.] = (a" * b") * (a * b)
  proof
   thus [.a,b.] = a" * b" * a * b by Def2;
   thus [.a,b.] = a" * b" * a * b by Def2
               .= a" * (b" * a) * b by VECTSP_1:def 16;
   hence [.a,b.] = a" * (b" * a * b) by VECTSP_1:def 16;
   hence [.a,b.] = a" * (b" * (a * b)) by VECTSP_1:def 16;
   thus [.a,b.] = a" * b" * a * b by Def2
               .= (a" * b") * (a * b) by VECTSP_1:def 16;
  end;

theorem Th20:
 [.a,b.] = (b * a)" * (a * b)
  proof
   thus [.a,b.] = (a" * b") * (a * b) by Th19
               .= (b * a)" * (a * b) by GROUP_1:25;
  end;

theorem Th21:
 [.a,b.] = (b" |^ a) * b & [.a,b.] = a" * (a |^ b)
  proof
   thus [.a,b.] = a" * b" * a * b by Th19
               .= (b" |^ a) * b by GROUP_3:20;
   thus [.a,b.] = a" * (b" * a * b) by Th19
               .= a" * (a |^ b) by GROUP_3:20;
  end;

theorem Th22:
 [.1.G,a.] = 1.G & [.a,1.G.] = 1.G
  proof
   thus [.1.G,a.] = ((1.G)" * a") * ((1.G) * a) by Th19
                 .= ((1.G)" * a") * a by GROUP_1:def 4
                 .= (1.G * a") * a by GROUP_1:16
                 .= a" * a by GROUP_1:def 4
                 .= 1.G by GROUP_1:def 5;
   thus [.a,1.G.] = (a" * (1.G)") * (a * 1.G) by Th19
                 .= (a" * (1.G)") * a by GROUP_1:def 4
                 .= (a" * 1.G) * a by GROUP_1:16
                 .= a" * a by GROUP_1:def 4
                 .= 1.G by GROUP_1:def 5;
  end;

theorem Th23:
 [.a,a.] = 1.G
  proof
   thus [.a,a.] = (a * a)" * (a * a) by Th20
               .= 1.G by GROUP_1:def 5;
  end;

theorem
   [.a,a".] = 1.G & [.a",a.] = 1.G
  proof
   thus [.a,a".] = (a" * a"") * (a * a") by Th19
                .= 1.G * (a * a") by GROUP_1:def 5
                .= a * a" by GROUP_1:def 4
                .= 1.G by GROUP_1:def 5;
   thus [.a",a.] = (a"" * a") * (a" * a) by Th19
                .= (a"" * a") * 1.G by GROUP_1:def 5
                .= a"" * a" by GROUP_1:def 4
                .= 1.G by GROUP_1:def 5;
  end;

theorem Th25:
 [.a,b.]" = [.b,a.]
  proof
   thus [.a,b.]" = ((a" * b") * (a * b))" by Th19
                .= (a * b)" * (a" * b")" by GROUP_1:25
                .= (b" * a") * (a" * b")" by GROUP_1:25
                .= (b" * a") * (b"" * a"") by GROUP_1:25
                .= (b" * a") * (b"" * a) by GROUP_1:19
                .= (b" * a") * (b * a) by GROUP_1:19
                .= [.b,a.] by Th19;
  end;

theorem Th26:
 [.a,b.] |^ c = [.a |^ c,b |^ c.]
  proof
   thus [.a,b.] |^ c = c" * [.a,b.] * c by GROUP_3:20
        .= c" * (a" * b" * a * b) * c by Th19
        .= c" * (a" * 1.G * b" * a * b) * c by GROUP_1:def 4
        .= c" * (a" * (c * c") * b" * a * b) * c by GROUP_1:def 5
        .= c" * (a" * (c * c") * b" * (a * b)) * c by VECTSP_1:def 16
        .= c" * (a" * (c * c") * (b" * (a * b))) * c by VECTSP_1:def 16
        .= c" * (a" * ((c * c") * (b" * (a * b)))) * c by VECTSP_1:def 16
        .= c" * a" * ((c * c") * (b" * (a * b))) * c by VECTSP_1:def 16
        .= c" * a" * (c * (c" * (b" * (a * b)))) * c by VECTSP_1:def 16
        .= c" * a" * c * (c" * (b" * (a * b))) * c by VECTSP_1:def 16
        .= (a" |^ c) * (c" * (b" * (a * b))) * c by GROUP_3:20
        .= (a |^ c)" * (c" * (b" * (a * b))) * c by GROUP_3:32
        .= (a |^ c)" * (c" * (b" * 1.G * (a * b))) * c by GROUP_1:def 4
        .= (a |^ c)" * (c" * (b" * (c * c") * (a * b))) * c by GROUP_1:def 5
        .= (a |^ c)" * (c" * (b" * ((c * c") * (a * b)))) * c by VECTSP_1:def
16
        .= (a |^ c)" * (c" * b" * ((c * c") * (a * b))) * c by VECTSP_1:def 16
        .= (a |^ c)" * (c" * b" * (c * (c" * (a * b)))) * c by VECTSP_1:def 16
        .= (a |^ c)" * (c" * b" * c * (c" * (a * b))) * c by VECTSP_1:def 16
        .= (a |^ c)" * ((b" |^ c) * (c" * (a * b))) * c by GROUP_3:20
        .= (a |^ c)" * ((b |^ c)" * (c" * (a * b))) * c by GROUP_3:32
        .= (a |^ c)" * ((b |^ c)" * (c" * (a * 1.G * b))) * c by GROUP_1:def 4
        .= (a |^ c)" * ((b |^ c)" * (c" * (a * (c * c") * b))) * c
           by GROUP_1:def 5
        .= (a |^ c)" * ((b |^ c)" * (c" * (a * ((c * c") * b)))) * c
            by VECTSP_1:def 16
        .= (a |^ c)" * ((b |^ c)" * (c" * a * ((c * c") * b))) * c by VECTSP_1:
def 16
        .= (a |^ c)" * ((b |^ c)" * (c" * a * (c * (c" * b)))) * c by VECTSP_1:
def 16
        .= (a |^ c)" * ((b |^ c)" * (c" * a * c * (c" * b))) * c by VECTSP_1:
def 16
        .= (a |^ c)" * ((b |^ c)" * ((a |^ c) * (c" * b))) * c by GROUP_3:20
   .= (a |^ c)" * (((b |^ c)" * ((a |^ c) * (c" * b))) * c) by VECTSP_1:def 16
        .= (a |^ c)" * (((b |^ c)" * ((a |^ c) * (c" * b) * c))) by VECTSP_1:
def 16
        .= (a |^ c)" * (((b |^ c)" * ((a |^ c) * ((c" * b) * c)))) by VECTSP_1:
def 16
        .= (a |^ c)" * (((b |^ c)" * ((a |^ c) * (b |^ c)))) by GROUP_3:20
        .= [.a |^ c,b |^ c.] by Th19;
  end;

theorem
   [.a,b.] = (a" |^ 2) * ((a * b") |^ 2)* (b |^ 2)
  proof
   thus [.a,b.] = (a" * b") * (a * b) by Th19
               .= (a" * 1.G * b") * (a * b) by GROUP_1:def 4
               .= (a" * 1.G * b") * (a * 1.G * b) by GROUP_1:def 4
               .= (a" * (a" * a) * b") * (a * 1.G * b) by GROUP_1:def 5
               .= (a" * (a" * a) * b") * (a * (b" * b) * b) by GROUP_1:def 5
               .= (a" * a" * a * b") * (a * (b" * b) * b) by VECTSP_1:def 16
               .= (a" |^ 2 * a * b") * (a * (b" * b) * b) by GROUP_1:45
               .= (a" |^ 2 * a * b") * (a * ((b" * b) * b)) by VECTSP_1:def 16
               .= (a" |^ 2 * a * b") * (a * (b" * (b * b))) by VECTSP_1:def 16
               .= (a" |^ 2 * a * b") * (a * (b" * (b |^ 2))) by GROUP_1:45
   .= (a" |^ 2 * (a * b")) * (a * (b" * (b |^ 2))) by VECTSP_1:def 16
   .= (a" |^ 2) * ((a * b") * (a * (b" * (b |^ 2)))) by VECTSP_1:def 16
   .= (a" |^ 2) * ((a * b") * (a * b" * (b |^ 2))) by VECTSP_1:def 16
   .= (a" |^ 2) * ((a * b") * (a * b") * (b |^ 2)) by VECTSP_1:def 16
   .= (a" |^ 2) * ((a * b") * (a * b")) * (b |^ 2) by VECTSP_1:def 16
   .= (a" |^ 2) * ((a * b") |^ 2) * (b |^ 2) by GROUP_1:45;
  end;

theorem Th28:
 [.a * b,c.] = [.a,c.] |^ b * [.b,c.]
  proof
   thus [.a * b,c.] =
        ((a * b)" * c") * (a * b * c) by Th19
     .= (b" * a" * c") * (a * b * c) by GROUP_1:25
     .= (b" * a" * c") * (a * 1.G * b * c) by GROUP_1:def 4
     .= (b" * a" * c") * (a * (c * c") * b * c) by GROUP_1:def 5
     .= (b" * a" * c") * (a * (c * 1.G * c") * b * c) by GROUP_1:def 4
     .= (b" * a" * c") * (a * (c * (b * b") * c") * b * c) by GROUP_1:def 5
     .= b" * (a" * c") * (a * (c * (b * b") * c") * b * c) by VECTSP_1:def 16
     .= b" * (a" * c") * (a * (c * (b * b") * c") * (b * c)) by VECTSP_1:def 16
     .= b" * (a" * c") * (a * (c * b * b" * c") * (b * c)) by VECTSP_1:def 16
     .= b" * (a" * c") * (a * (c * b * (b" * c")) * (b * c)) by VECTSP_1:def 16
     .= b" * (a" * c") * (a * (c * (b * (b" * c"))) * (b * c)) by VECTSP_1:def
16
     .= b" * (a" * c") * (a * c * (b * (b" * c")) * (b * c)) by VECTSP_1:def 16
     .= b" * (a" * c") * (a * c * ((b * (b" * c")) * (b * c))) by VECTSP_1:def
16
     .= b" * (a" * c") * (a * c) * ((b * (b" * c")) * (b * c)) by VECTSP_1:def
16
     .= b" * ((a" * c") * (a * c)) * ((b * (b" * c")) * (b * c)) by VECTSP_1:
def 16
     .= b" * ((a" * c") * (a * c)) * (b * ((b" * c") * (b * c))) by VECTSP_1:
def 16
     .= b" * ((a" * c") * (a * c)) * b * ((b" * c") * (b * c)) by VECTSP_1:def
16
     .= b" * [.a,c.] * b * ((b" * c") * (b * c)) by Th19
     .= [.a,c.] |^ b * ((b" * c") * (b * c)) by GROUP_3:20
     .= [.a,c.] |^ b * [.b,c.] by Th19;
  end;

theorem
   [.a,b * c.] = [.a,c.] * ([.a,b.] |^ c)
  proof
   thus [.a,b * c.] = (a" * (b * c)") * (a * (b * c)) by Th19
     .= (a" * (c" * b")) * (a * (b * c)) by GROUP_1:25
     .= (a" * (c" * 1.G * b")) * (a * (b * c)) by GROUP_1:def 4
     .= (a" * (c" * (a * a") * b")) * (a * (b * c)) by GROUP_1:def 5
     .= (a" * (c" * (a * 1.G * a") * b")) * (a * (b * c)) by GROUP_1:def 4
     .= (a" * (c" * (a * (c * c") * a") * b")) * (a * (b * c)) by GROUP_1:def 5
     .= (a" * (c" * (a * c * c" * a") * b")) * (a * (b * c)) by VECTSP_1:def 16
     .= (a" * (c" * ((a * c) * (c" * a")) * b")) * (a * (b * c)) by VECTSP_1:
def 16
     .= (a" * (c" * (((a * c) * (c" * a")) * b"))) * (a * (b * c)) by VECTSP_1:
def 16
     .= ((a" * c") * (a * c * (c" * a") * b")) * (a * (b * c)) by VECTSP_1:def
16
     .= ((a" * c") * ((a * c) * (c" * a")) * b") * (a * (b * c)) by VECTSP_1:
def 16
     .= ((a" * c") * (a * c)) * (c" * a") * b" * (a * (b * c)) by VECTSP_1:def
16
     .= ((a" * c") * (a * c)) * ((c" * a") * b") * (a * (b * c)) by VECTSP_1:
def 16
     .= ((a" * c") * (a * c)) * (((c" * a") * b") * (a * (b * c))) by VECTSP_1:
def 16
     .= ((a" * c") * (a * c)) * (((c" * a") * b") * ((a * b) * c)) by VECTSP_1:
def 16
     .= ((a" * c") * (a * c)) * ((c" * (a" * b")) * ((a * b) * c)) by VECTSP_1:
def 16
     .= ((a" * c") * (a * c)) * (c" * ((a" * b") * ((a * b) * c))) by VECTSP_1:
def 16
     .= ((a" * c") * (a * c)) * (c" * ((a" * b") * (a * b) * c)) by VECTSP_1:
def 16
     .= ((a" * c") * (a * c)) * (c" * ((a" * b") * (a * b)) * c) by VECTSP_1:
def 16
     .= [.a,c.] * (c" * ((a" * b") * (a * b)) * c) by Th19
     .= [.a,c.] * (c" * [.a,b.] * c) by Th19
     .= [.a,c.] * ([.a,b.] |^ c) by GROUP_3:20;
  end;

theorem Th30:
 [.a",b.] = [.b,a.] |^ a"
  proof
   thus [.a",b.] = a"" * (b" * (a" * b)) by Th19
                .= a"" * (b" * (a" * b)) * 1.G by GROUP_1:def 4
                .= a"" * (b" * (a" * b)) * (a * a") by GROUP_1:def 5
                .= a"" * (b" * (a" * b)) * a * a" by VECTSP_1:def 16
                .= a"" * ((b" * (a" * b)) * a) * a" by VECTSP_1:def 16
                .= a"" * [.b,a.] * a" by Th19
                .= [.b,a.] |^ a" by GROUP_3:20;
  end;

theorem Th31:
 [.a,b".] = [.b,a.] |^ b"
  proof
   thus [.a,b".] = a" * b"" * a * b" by Def2
                .= a" * b * a * b" by GROUP_1:19
                .= 1.G * (a" * b * a * b") by GROUP_1:def 4
                .= (b"" * b") * (a" * b * a * b") by GROUP_1:def 5
                .= (b"" * b") * (a" * b * a) * b" by VECTSP_1:def 16
                .= b"" * (b" * (a" * b * a)) * b" by VECTSP_1:def 16
                .= b"" * [.b,a.] * b" by Th19
                .= [.b,a.] |^ b" by GROUP_3:20;
  end;

theorem
   [.a",b".] = [.a,b.] |^ (a * b)" & [.a",b".] = [.a,b.] |^ (b * a)"
  proof
   thus [.a",b".] = [.b",a.] |^ a" by Th30
                 .= ([.a,b.] |^ b") |^ a" by Th30
                 .= [.a,b.] |^ (b" * a") by GROUP_3:29
                 .= [.a,b.] |^ (a * b)" by GROUP_1:25;
   thus [.a",b".] = [.b,a".] |^ b" by Th31
                 .= [.a,b.] |^ a" |^ b" by Th31
                 .= [.a,b.] |^ (a" * b") by GROUP_3:29
                 .= [.a,b.] |^ (b * a)" by GROUP_1:25;
  end;

theorem
   [.a,b |^ a".] = [.b,a".]
  proof
   thus [.a,b |^ a".] = a" * (b |^ a")" * a * (b |^ a") by Th19
                   .= a" * (b" |^ a") * a * (b |^ a") by GROUP_3:32
                   .= a" * (a"" * (b" * a")) * a * (b |^ a") by GROUP_3:20
                   .= (b" * a") * a * (b |^ a") by GROUP_3:1
                   .= b" * (b |^ a") by GROUP_3:1
                   .= b" * (a"" * b * a") by GROUP_3:20
                   .= [.b,a".] by Th19;
  end;

theorem
   [.a |^ b",b.] = [.b",a.]
  proof
   thus [.a |^ b",b.] = (a |^ b")" * b" * (a |^ b") * b by Th19
                    .= (a" |^ b") * b" * (a |^ b") * b by GROUP_3:32
                    .= (a" |^ b") * b" * (b"" * a * b") * b by GROUP_3:20
            .= (a" |^ b") * (b" * (b"" * a * b")) * b by VECTSP_1:def 16
            .= (a" |^ b") * (b" * (b"" * (a * b"))) * b by VECTSP_1:def 16
                    .= (a" |^ b") * (a * b") * b by GROUP_3:1
                    .= (a" |^ b") * ((a * b") * b) by VECTSP_1:def 16
                    .= (a" |^ b") * a by GROUP_3:1
                    .= [.b",a.] by Th21;
  end;

theorem
   [.a |^ n,b.] = a |^ (- n) * ((a |^ b) |^ n)
  proof
   thus [.a |^ n,b.] = (a |^ n)" * (b" * (a |^ n) * b) by Th19
                   .= a |^ (- n) * (b" * (a |^ n) * b) by GROUP_1:71
                   .= a |^ (- n) * ((a |^ n) |^ b) by GROUP_3:20
                   .= a |^ (- n) * ((a |^ b) |^ n) by GROUP_3:33;
  end;

theorem
   [.a,b |^ n.] = (b |^ a) |^ (- n) * (b |^ n)
  proof
   thus [.a,b |^ n.] = a" * (b |^ n)" * a * (b |^ n) by Th19
                   .= a" * (b |^ (- n)) * a * (b |^ n) by GROUP_1:71
                   .= (b |^ (- n)) |^ a * (b |^ n) by GROUP_3:20
                   .= (b |^ a) |^ (- n) * (b |^ n) by GROUP_3:34;
  end;

theorem
   [.a |^ i,b.] = a |^ (- i) * ((a |^ b) |^ i)
  proof
   thus [.a |^ i,b.] = (a |^ i)" * (b" * (a |^ i) * b) by Th19
                   .= a |^ (- i) * (b" * (a |^ i) * b) by GROUP_1:70
                   .= a |^ (- i) * ((a |^ i) |^ b) by GROUP_3:20
                   .= a |^ (- i) * ((a |^ b) |^ i) by GROUP_3:34;
  end;

theorem
   [.a,b |^ i.] = (b |^ a) |^ (- i) * (b |^ i)
  proof
   thus [.a,b |^ i.] = a" * (b |^ i)" * a * (b |^ i) by Th19
                   .= a" * (b |^ (- i)) * a * (b |^ i) by GROUP_1:70
                   .= (b |^ (- i)) |^ a * (b |^ i) by GROUP_3:20
                   .= (b |^ a) |^ (- i) * (b |^ i) by GROUP_3:34;
  end;

theorem Th39:
 [.a,b.] = 1.G iff a * b = b * a
  proof
   thus [.a,b.] = 1.G implies a * b = b * a
    proof assume [.a,b.] = 1.G;
      then (b * a)" * (a * b) = 1.G by Th20;
      then a * b = (b * a)"" by GROUP_1:20;
     hence thesis by GROUP_1:19;
    end;
    assume a * b = b * a;
     then (b * a)" = b" * a" & [.a,b.] = (b * a)" * (a * b) by Th20,GROUP_1:26
;
   hence [.a,b.] = (b" * a") * a * b by VECTSP_1:def 16
                .= b" * b by GROUP_3:1
                .= 1.G by GROUP_1:def 5;
  end;

Lm3:
for G being commutative Group
 for a,b being Element of G holds a * b = b * a;

theorem
   G is commutative Group iff for a,b holds [.a,b.] = 1.G
  proof
   thus G is commutative Group implies for a,b holds [.a,b.] = 1.G
    proof assume A1: G is commutative Group;
     let a,b;
         a * b = b * a by A1,Lm3;
     hence thesis by Th39;
    end;
    assume A2: for a,b holds [.a,b.] = 1.G;
     G is commutative
    proof
     let a,b;
        [.a,b.] = 1.G by A2;
     hence a * b = b * a by Th39;
    end;
   hence thesis;
  end;

theorem Th41:
 a in H & b in H implies [.a,b.] in H
  proof assume a in H & b in H;
    then a" in H & b" in H & a * b in H by GROUP_2:59,60;
    then a" * b" in H & a * b in H by GROUP_2:59;
    then (a" * b") * (a * b) in H by GROUP_2:59;
   hence thesis by Th19;
  end;

definition let G,a,b,c;
 func [.a,b,c.] -> Element of G equals
  :Def3:  [.[.a,b.],c.];
 correctness;
end;

canceled;

theorem
   [.a,b,1.G.] = 1.G & [.a,1.G,b.] = 1.G & [.1.G,a,b.] = 1.G
  proof
   thus [.a,b,1.G.] = [.[.a,b.],1.G.] by Def3
                   .= 1.G by Th22;
   thus [.a,1.G,b.] = [.[.a,1.G.],b.] by Def3
                   .= [.1.G,b.] by Th22
                   .= 1.G by Th22;
   thus [.1.G,a,b.] = [.[.1.G,a.],b.] by Def3
                   .= [.1.G,b.] by Th22
                   .= 1.G by Th22;
  end;

theorem
   [.a,a,b.] = 1.G
  proof
   thus [.a,a,b.] = [.[.a,a.],b.] by Def3
                 .= [.1.G,b.] by Th23
                 .= 1.G by Th22;
  end;

theorem
   [.a,b,a.] = [.a |^ b,a.]
  proof
   thus [.a,b,a.] = [.[.a,b.],a.] by Def3
                 .= [.a,b.]" * a" * [.a,b.] * a by Th19
                 .= [.b,a.] * a" * [.a,b.] * a by Th25
                 .= ((b" * a") * b * a) * a" * [.a,b.] * a by Th19
                 .= (b" * a" * b) * [.a,b.] * a by GROUP_3:1
                 .= (b" * a" * b) * (a" * b" * a * b) * a by Th19
                 .= (a" |^ b) * (a" * b" * a * b) * a by GROUP_3:20
                 .= (a |^ b)" * (a" * b" * a * b) * a by GROUP_3:32
                 .= (a |^ b)" * (a" * b" * (a * b)) * a by VECTSP_1:def 16
                 .= (a |^ b)" * (a" * (b" * (a * b))) * a by VECTSP_1:def 16
                 .= (a |^ b)" * (a" * (a |^ b)) * a by GROUP_3:20
                 .= [.a |^ b,a.] by Th19;
  end;

theorem
   [.b,a,a.] = ([.b,a".] * [.b,a.]) |^ a
  proof
   thus [.b,a,a.] = [.[.b,a.],a.] by Def3
                 .= [.b,a.]" * a" * [.b,a.] * a by Th19
                 .= [.a,b.] * a" * [.b,a.] * a by Th25
                 .= (a" * (b" * (a * b))) * a" * [.b,a.] * a by Th19
                 .= (a" * ((b" * (a"" * b))) * a") * [.b,a.] * a by GROUP_1:19
         .= (a" * (((b" * (a"" * b))) * a")) * [.b,a.] * a by VECTSP_1:def 16
                 .= a" * [.b,a".] * [.b,a.] * a by Th19
                 .= a" * ([.b,a".] * [.b,a.]) * a by VECTSP_1:def 16
                 .= ([.b,a".] * [.b,a.]) |^ a by GROUP_3:20;
  end;

theorem
   [.a,b,b |^ a.] = [.b,[.b,a.].]
  proof
   thus [.a,b,b |^ a.] = [.[.a,b.],b |^ a.] by Def3
     .= [.a,b.]" * (b |^ a)" * [.a,b.] * (b |^ a) by Th19
     .= [.b,a.] * (b |^ a)" * [.a,b.] * (b |^ a) by Th25
     .= [.b,a.] * (b" |^ a) * [.a,b.] * (b |^ a) by GROUP_3:32
     .= (b" * a" * b * a) * (b" |^ a) * [.a,b.] * (b |^ a) by Th19
     .= (b" * a" * b * a) * (a" * (b" * a)) * [.a,b.] * (b |^ a) by GROUP_3:20
     .= (b" * a" * b * a) * a" * (b" * a) * [.a,b.] * (b |^ a) by VECTSP_1:def
16
     .= (b" * a" * b) * (b" * a) * [.a,b.] * (b |^ a) by GROUP_3:1
     .= b" * a" * (b * (b" * a)) * [.a,b.] * (b |^ a) by VECTSP_1:def 16
     .= b" * a" * a * [.a,b.] * (b |^ a) by GROUP_3:1
     .= b" * [.a,b.] * (b |^ a) by GROUP_3:1
     .= b" * (a"* b"* a * b) * (b |^ a) by Th19
     .= b" * (a"* b"* a * b) * (a" * b * a) by GROUP_3:20
     .= b" * (a"* b"* a * b) * 1.G * (a" * b * a) by GROUP_1:def 4
     .= b" * (a"* b"* a * b) * (b * b") * (a" * b * a) by GROUP_1:def 5
     .= b" * [.a,b.] * (b * b") * (a" * b * a) by Th19
     .= b" * [.a,b.] * ((b * b") * (a" * b * a)) by VECTSP_1:def 16
     .= b" * [.a,b.] * (b * (b" * (a" * b * a))) by VECTSP_1:def 16
     .= b" * [.a,b.] * (b * [.b,a.]) by Th19
     .= b" * [.b,a.]" * (b * [.b,a.]) by Th25
     .= [.b,[.b,a.].] by Th19;
  end;

theorem
   [.a * b,c.] = [.a,c.] * [.a,c,b.] * [.b,c.]
  proof [.a,c.] * [.a,c,b.] * [.b,c.] =
       a" * c" * a * c * [.a,c,b.] * [.b,c.] by Th19
    .= a" * c" * a * c * [.[.a,c.],b.] * [.b,c.] by Def3
    .= a" * c" * a * c * ([.a,c.]" * b" * [.a,c.] * b) * [.b,c.] by Th19
    .= a" * c" * a * c * ([.c,a.] * b" * [.a,c.] * b) * [.b,c.] by Th25
    .= a" * c" * a * c * ((c" * a") * (c * a) * b" * [.a,c.] * b) * [.b,c.]
                                                                        by Th19
    .= a" * c" * a * c * ((a * c)" * (c * a) * b" * [.a,c.] * b) * [.b,c.]
                                                                 by GROUP_1:25
    .= a" * c" * (a * c) * ((a * c)" * (c * a) * b" * [.a,c.] * b) * [.b,c.]
                                                       by VECTSP_1:def 16
    .= a" * c" * ((a * c) * ((a * c)" * (c * a) * b" * [.a,c.] * b)) * [.b,c.]
                                                       by VECTSP_1:def 16
    .= a" * c" * ((a * c) * ((a * c)" * (c * a) *
       b" * ([.a,c.] * b))) * [.b,c.] by VECTSP_1:def 16
    .= a" * c" * ((a * c) * ((a * c)" * (c * a) *
       (b" * ([.a,c.] * b)))) * [.b,c.] by VECTSP_1:def 16
    .= a" * c" * ((a * c) * ((a * c)" * ((c * a) *
       (b" * ([.a,c.] * b))))) * [.b,c.] by VECTSP_1:def 16
    .= a" * c" * ((a * c) * (a * c)" * ((c * a) *
       (b" * ([.a,c.] * b)))) * [.b,c.] by VECTSP_1:def 16
    .= a" * c" * (1.G * ((c * a) * (b" * ([.a,c.] * b)))) * [.b,c.]
                                                              by GROUP_1:def 5
    .= a" * c" * ((c * a) * (b" * ([.a,c.] * b))) * [.b,c.] by GROUP_1:def 4
    .= a" * c" * (c * a) * (b" * ([.a,c.] * b)) * [.b,c.] by VECTSP_1:def 16
    .= (c * a)" * (c * a) * (b" * ([.a,c.] * b)) * [.b,c.] by GROUP_1:25
    .= 1.G * (b" * ([.a,c.] * b)) * [.b,c.] by GROUP_1:def 5
    .= b" * ([.a,c.] * b) * [.b,c.] by GROUP_1:def 4
    .= b" * ([.a,c.] * b) * ((b" * c") * (b * c)) by Th19
    .= b" * ((a" * c" * a * c) * b) * ((b" * c") * (b * c)) by Th19
    .= b" * ((a" * c" * a) * c) * b * ((b" * c") * (b * c)) by VECTSP_1:def 16
    .= b" * (a" * c" * (a * c)) * b * ((b" * c") * (b * c)) by VECTSP_1:def 16
    .= b" * (a" * (c" * (a * c))) * b * ((b" * c") * (b * c)) by VECTSP_1:def
16
    .= b" * a" * (c" * (a * c)) * b * ((b" * c") * (b * c)) by VECTSP_1:def 16
    .= b" * a" * c" * (a * c) * b * ((b" * c") * (b * c)) by VECTSP_1:def 16
    .= b" * a" * c" * a * c * b * ((b" * c") * (b * c)) by VECTSP_1:def 16
    .= b" * a" * c" * a * (c * b) * ((b" * c") * (b * c)) by VECTSP_1:def 16
    .= b" * a" * c" * a * (c * b) * (b" * c") * (b * c) by VECTSP_1:def 16
    .= b" * a" * c" * a * (c * b) * (c * b)" * (b * c) by GROUP_1:25
    .= b" * a" * c" * a * ((c * b) * (c * b)") * (b * c) by VECTSP_1:def 16
    .= b" * a" * c" * a * 1.G * (b * c) by GROUP_1:def 5
    .= b" * a" * c" * a * (b * c) by GROUP_1:def 4
    .= (a * b)" * c" * a * (b * c) by GROUP_1:25
    .= (a * b)" * c" * (a * (b * c)) by VECTSP_1:def 16
    .= (a * b)" * c" * (a * b * c) by VECTSP_1:def 16;
   hence thesis by Th19;
  end;

theorem
   [.a,b * c.] = [.a,c.] * [.a,b.] * [.a,b,c.]
  proof [.a,c.] * [.a,b.] * [.a,b,c.] =
       [.a,c.] * ([.a,b.] * [.a,b,c.]) by VECTSP_1:def 16
    .= [.a,c.] * ([.a,b.] * [.[.a,b.],c.]) by Def3
    .= [.a,c.] * ((a" * b") * (a * b) * [.[.a,b.],c.]) by Th19
    .= [.a,c.] * ((a" * b") * (a * b) * ([.a,b.]" * c" * [.a,b.] * c)) by Th19
    .= [.a,c.] * ((a" * b") * (a * b) * ([.b,a.] * c" * [.a,b.] * c)) by Th25
    .= [.a,c.] * ((a" * b") * (a * b) *
       ((b" * a" * (b * a)) * c" * [.a,b.] * c)) by Th19
    .= [.a,c.] * ((a" * b") * ((a * b) *
       (((b" * a") * (b * a)) * c" * [.a,b.] * c))) by VECTSP_1:def 16
    .= [.a,c.] * ((a" * b") * ((a * b) *
       (((b" * a") * (b * a)) * c" * ([.a,b.] * c)))) by VECTSP_1:def 16
    .= [.a,c.] * ((a" * b") * ((a * b) *
       (((b" * a") * (b * a)) * (c" * ([.a,b.] * c))))) by VECTSP_1:def 16
    .= [.a,c.] * ((a" * b") * ((a * b) *
       ((b" * a") * (b * a)) * (c" * ([.a,b.] * c)))) by VECTSP_1:def 16
    .= [.a,c.] * ((a" * b") * ((a * b) *
       (b" * a") * (b * a) * (c" * ([.a,b.] * c)))) by VECTSP_1:def 16
    .= [.a,c.] * ((a" * b") * ((a * b) *
       (a * b)" * (b * a) * (c" * ([.a,b.] * c)))) by GROUP_1:25
    .= [.a,c.] * ((a" * b") * (1.G *
       (b * a) * (c" * ([.a,b.] * c)))) by GROUP_1:def 5
    .= [.a,c.] * ((a" * b") * ((b * a) * (c" * ([.a,b.] * c)))) by GROUP_1:def
4
    .= [.a,c.] * ((a" * b") * (b * a) * (c" * ([.a,b.] * c))) by VECTSP_1:def
16
    .= [.a,c.] * ((b * a)" * (b * a) * (c" * ([.a,b.] * c))) by GROUP_1:25
    .= [.a,c.] * (1.G * (c" * ([.a,b.] * c))) by GROUP_1:def 5
    .= [.a,c.] * (c" * ([.a,b.] * c)) by GROUP_1:def 4
    .= (a" * c") * (a * c) * (c" * ([.a,b.] * c)) by Th19
    .= (a" * c") * (a * c) * (c" * ((a" * (b" * a * b)) * c)) by Th19
    .= (a" * c") * (a * c) * (c" * (a" * (b" * a * b)) * c) by VECTSP_1:def 16
    .= (a" * c") * (a * c) * ((c" * a") * (b" * a * b) * c) by VECTSP_1:def 16
    .= (a" * c") * (a * c) * ((c" * a") * ((b" * a * b) * c)) by VECTSP_1:def
16
    .= (a" * c") * (a * c) * (c" * a") * ((b" * a * b) * c) by VECTSP_1:def 16
    .= (a" * c") * ((a * c) * (c" * a")) * ((b" * a * b) * c) by VECTSP_1:def
16
    .= (a" * c") * ((a * c) * (a * c)") * ((b" * a * b) * c) by GROUP_1:25
    .= (a" * c") * 1.G * ((b" * a * b) * c) by GROUP_1:def 5
    .= (a" * c") * ((b" * a * b) * c) by GROUP_1:def 4
    .= (a" * c") * (b" * a * b) * c by VECTSP_1:def 16
    .= (a" * c") * (b" * (a * b)) * c by VECTSP_1:def 16
    .= a" * c" * b" * (a * b) * c by VECTSP_1:def 16
    .= a" * (c" * b") * (a * b) * c by VECTSP_1:def 16
    .= a" * (c" * b") * ((a * b) * c) by VECTSP_1:def 16
    .= a" * (c" * b") * (a * (b * c)) by VECTSP_1:def 16
    .= a" * (b * c)" * (a * (b * c)) by GROUP_1:25;
   hence thesis by Th19;
  end;

::
::  P. Hall Identity.
::

theorem
   ([.a,b",c.] |^ b) * ([.b,c",a.] |^ c) * ([.c,a",b.] |^ a) = 1.G
  proof set d = a" * [.b,c".] * a; set e = c" * [.a,b".] * c;
        set f = b" * [.c,a".] * b;
        set x = [.a,b",c.] |^ b; set y = [.b,c",a.] |^ c;
        set z = [.c,a",b.] |^ a;
    A1: [.b,c",a.] = [.[.b,c".],a.] by Def3
                 .= [.b,c".]" * (a" * [.b,c".] * a) by Th19
                 .= [.c",b.] * (a" * [.b,c".] * a) by Th25;
    A2: [.c",b.] = c"" * (b" * c" * b) by Th19;
    A3: [.b,c",a.] |^ c = c" * [.b,c",a.] * c by GROUP_3:20
                     .= c" * (c"" * ((b" * c" * b) * d)) * c by A1,A2,VECTSP_1:
def 16
                     .= (b" * c" * b) * d * c by GROUP_3:1
                     .= (b" * c" * b) * (d * c) by VECTSP_1:def 16
                     .= b" * (c" * b) * (d * c) by VECTSP_1:def 16
                     .= b" * ((c" * b) * (d * c)) by VECTSP_1:def 16;
    A4: [.c,a",b.] = [.[.c,a".],b.] by Def3
                 .= [.c,a".]" * f by Th19
                 .= [.a",c.] * f by Th25;
    A5: [.a",c.] = a"" * (c" * a" * c) by Th19;
    A6: [.a,b",c.] = [.[.a,b".],c.] by Def3
                 .= [.a,b".]" * e by Th19
                 .= [.b",a.] * e by Th25;
    A7: [.b",a.] = b"" * (a" * b" * a) by Th19;
    A8: z = a" * [.c,a",b.] * a by GROUP_3:20
        .= a" * (a"" * ((c" * a" * c) * f)) * a by A4,A5,VECTSP_1:def 16
        .= (c" * a" * c) * f * a by GROUP_3:1;
      [.a,b",c.] |^ b = b" * [.a,b",c.] * b by GROUP_3:20
                  .= b" * (b"" * ((a" * b" * a) * e)) * b by A6,A7,VECTSP_1:def
16
                  .= (a" * b" * a) * e * b by GROUP_3:1;
    then x * y = (a" * b" * a) * e * (b * (b" * ((c" * b) * (d * c))))
                                                    by A3,VECTSP_1:def 16
      .= (a" * b" * a) * e * ((c" * b) * (d * c)) by GROUP_3:1
      .= (a" * b" * a) * (c" * ([.a,b".] * c)) * ((c" * b) * (d * c))
                                                      by VECTSP_1:def 16
      .= (a" * b" * a) * c" * ([.a,b".] * c) * ((c" * b) * (d * c))
                                                      by VECTSP_1:def 16
      .= (a" * b" * a) * c" * (([.a,b".] * c) * ((c" * b) * (d * c)))
                                                      by VECTSP_1:def 16
      .= (a" * b" * a) * c" * (([.a,b".] * c) * (c" * b) * (d * c))
                                                      by VECTSP_1:def 16
      .= (a" * b" * a) * c" * (([.a,b".] * c) * c" * b * (d * c)) by VECTSP_1:
def 16
      .= (a" * b" * a) * c" * ([.a,b".] * b * (d * c)) by GROUP_3:1
      .= (a" * b" * a) * c" * ((a" * b"" * a) * b" * b * (d * c)) by Th19
      .= (a" * b" * a) * c" * ((a" * b"" * a) * (d * c)) by GROUP_3:1
      .= (a" * b" * a) * c" * ((a" * b"" * a) * (a" * [.b,c".] * (a * c)))
                                                      by VECTSP_1:def 16
      .= (a" * b" * a) * c" * ((a" * b"" * a) * (a" * ([.b,c".] * (a * c))))
                                                       by VECTSP_1:def 16
      .= (a" * b" * a) * c" * ((a" * b"" * a) * a" * ([.b,c".] * (a * c)))
                                                       by VECTSP_1:def 16
      .= (a" * b" * a) * c" * ((a" * b"") * ([.b,c".] * (a * c))) by GROUP_3:1
      .= (a" * b" * a) * c" * ((a" * b"") * [.b,c".] * (a * c)) by VECTSP_1:def
16
      .= (a" * b" * a) * c" * ((a" * b"") * (b" * (c"" * b * c")) * (a * c))
                                                                       by Th19
      .= (a" * b" * a) * c" * ((a" * b"") * ((b" * (c"" * b * c")) * (a * c)))
                                                                by VECTSP_1:def
16
      .= (a" * b" * a) * c" * ((a" * b"") * (b" * ((c"" * b * c") * (a * c))))
                                                                  by VECTSP_1:
def 16
      .= (a" * b" * a) * c" * ((a" * b"") * b" * ((c"" * b * c") * (a * c)))
                                                                  by VECTSP_1:
def 16
      .= (a" * b" * a) * c" * (a" * ((c"" * b * c") * (a * c))) by GROUP_3:1;
    then x * y * z =
        ((a" * b" * a) * c" * (a" * (c"" * b * c") * (a * c))) *
        ((c" * a" * c) * f * a) by A8,VECTSP_1:def 16
     .= ((a" * b" * a) * (c" * (a" * (c"" * b * c") * (a * c)))) *
        ((c" * a" * c) * f * a) by VECTSP_1:def 16
     .= ((a" * b" * a) * (c" * (a" * ((c"" * b * c") * (a * c))))) *
        ((c" * a" * c) * f * a) by VECTSP_1:def 16
     .= ((a" * b" * a) * c" * (a" * ((c"" * b * c") * (a * c)))) *
        ((c" * a" * c) * f * a) by VECTSP_1:def 16
     .= ((a" * b" * a) * c" * (a" * (c"" * (b * c") * (a * c)))) *
        ((c" * a" * c) * f * a) by VECTSP_1:def 16
     .= ((a" * b" * a) * c" * (a" * (c"" * (b * c" * (a * c))))) *
        ((c" * a" * c) * f * a) by VECTSP_1:def 16
     .= ((a" * b" * a) * c" * a" * (c"" * (b * c" * (a * c)))) *
        ((c" * a" * c) * f * a) by VECTSP_1:def 16
     .= ((a" * b" * a) * c" * a" * c"" * (b * c" * (a * c))) *
        (c" * a" * c * f * a) by VECTSP_1:def 16
     .= ((a" * b" * a) * c" * a" * c"" * (b * (c" * (a * c)))) *
        (c" * a" * c * f * a) by VECTSP_1:def 16
     .= ((a" * b" * a) * c" * a" * c"" * b * (c" * (a * c))) *
        (c" * a" * c * f * a) by VECTSP_1:def 16
     .= (((a" * b" * a) * c" * a" * c"") * b * c" * (a * c)) *
        (c" * a" * c * f * a) by VECTSP_1:def 16
     .= (((a" * b") * a * c") * a" * c"" * b * c") * ((a * c) *
        (c" * a" * c * f * a)) by VECTSP_1:def 16
     .= (((a" * b") * a * c") * a" * c"" * b * c") * ((a * c) *
        (c" * a" * c * (f * a))) by VECTSP_1:def 16
     .= (((a" * b") * a * c") * a" * c"" * b * c") * ((a * c) *
        (c" * a" * (c * (f * a)))) by VECTSP_1:def 16
     .= (((a" * b") * a * c") * a" * c"" * b * c") * ((a * c) *
        (c" * a") * (c * (f * a))) by VECTSP_1:def 16
     .= (((a" * b") * a * c") * a" * c"" * b * c") * ((a * c) *
        (a * c)" * (c * (f * a))) by GROUP_1:25
     .= (((a" * b") * a * c") * a" * c"" * b * c") * (1.G *
        (c * (f * a))) by GROUP_1:def 5
     .= (((a" * b") * a * c") * a" * c"" * b * c") * ((c * (f * a)))
                                                               by GROUP_1:def 4
     .= (((a" * b") * a * c") * a" * c"" * b * c") * c * (f * a) by VECTSP_1:
def 16
     .= (((a" * b") * a * c") * a" * c"" * b) * (f * a) by GROUP_3:1
     .= (((a" * b") * a * c") * a" * c"" * b) * (b" * [.c,a".] * (b * a))
                                                                  by VECTSP_1:
def 16
     .= (((a" * b") * a * c") * a" * c"" * b) * (b" * ([.c,a".] * (b * a)))
                                                                  by VECTSP_1:
def 16
     .= (((a" * b") * a * c") * a" * c"" * b) * b" * ([.c,a".] * (b * a))
                                                                  by VECTSP_1:
def 16
     .= (((a" * b") * a * c") * a" * c"") * ([.c,a".] * (b * a)) by GROUP_3:1
     .= (((a" * b") * a * c") * a" * c"") * (c" * (a"" * c * a") * (b * a))
                                                                         by
Th19
     .= (((a" * b") * a * c") * a" * c"") * (c" * ((a"" * c * a") * (b * a)))
                                                                   by VECTSP_1:
def 16
     .= (((a" * b") * a * c") * a" * c"") * c" * ((a"" * c * a") * (b * a))
                                                                   by VECTSP_1:
def 16
     .= (((a" * b") * a * c") * a") * ((a"" * c * a") * (b * a)) by GROUP_3:1
     .= (((a" * b") * a * c") * a") * (a"" * (c * a") * (b * a)) by VECTSP_1:
def 16
     .= (((a" * b") * a * c") * a") * (a"" * ((c * a") * (b * a))) by VECTSP_1:
def 16
     .= (((a" * b") * a * c") * a") * a"" * ((c * a") * (b * a)) by VECTSP_1:
def 16
     .= ((a" * b") * a * c") * ((c * a") * (b * a)) by GROUP_3:1
     .= ((a" * b") * a * c") * (c * a") * (b * a) by VECTSP_1:def 16
     .= (a" * b") * (a * c") * (c * a") * (b * a) by VECTSP_1:def 16
     .= (a" * b") * (a * c") * (c"" * a") * (b * a) by GROUP_1:19
     .= (a" * b") * (a * c") * (a * c")" * (b * a) by GROUP_1:25
     .= (a" * b") * ((a * c") * (a * c")") * (b * a) by VECTSP_1:def 16
     .= (a" * b") * 1.G * (b * a) by GROUP_1:def 5
     .= (a" * b") * (b * a) by GROUP_1:def 4
     .= (b * a)" * (b * a) by GROUP_1:25;
   hence thesis by GROUP_1:def 5;
  end;

definition let G,A,B;
 func commutators(A,B) -> Subset of G equals
  :Def4:  {[.a,b.] : a in A & b in B};
 coherence
  proof
    deffunc F(Element of G,Element of G) =
      [.$1,$2.];
    defpred P[Element of G,Element of G] means
      $1 in A & $2 in B;
    {F(a,b) : P[a,b]} is Subset of G from SubsetFD2;
   hence thesis;
  end;
end;

canceled;

theorem Th52:
 x in commutators(A,B) iff ex a,b st x = [.a,b.] & a in A & b in B
  proof
   thus x in commutators(A,B) implies ex a,b st x = [.a,b.] & a in A & b in B
    proof assume x in commutators(A,B);
       then x in {[.a,b.] : a in A & b in B} by Def4;
     hence thesis;
    end;
    given a,b such that A1: x = [.a,b.] & a in A & b in B;
       x in {[.c,d.] : c in A & d in B} by A1;
   hence thesis by Def4;
  end;

theorem
   commutators({} the carrier of G,A) = {} & commutators(A,{}
 the carrier of G) = {}
  proof
   thus commutators({} the carrier of G,A) = {}
    proof
     thus commutators({} the carrier of G,A) c= {}
      proof let x;
        assume x in commutators({} the carrier of G,A);
         then consider a,b such that x = [.a,b.] and
          A1: a in {} the carrier of G and b in A by Th52;
       thus thesis by A1;
      end;
     thus {} c= commutators({} the carrier of G,A) by XBOOLE_1:2;
    end;
     thus commutators(A,{} the carrier of G) c= {}
      proof let x;
        assume x in commutators(A,{} the carrier of G);
         then consider a,b such that x = [.a,b.] & a in A and
          A2: b in {} the carrier of G by Th52;
       thus thesis by A2;
      end;
     thus {} c= commutators(A,{} the carrier of G) by XBOOLE_1:2;
  end;

theorem
   commutators({a},{b}) = {[.a,b.]}
  proof
   thus commutators({a},{b}) c= {[.a,b.]}
    proof let x;
      assume x in commutators({a},{b});
       then consider c,d such that A1: x = [.c,d.] and A2: c in {a} & d in {b}
                                                                     by Th52;
          c = a & b = d by A2,TARSKI:def 1;
     hence thesis by A1,TARSKI:def 1;
    end;
   let x;
    assume x in {[.a,b.]};
     then x = [.a,b.] & a in {a} & b in {b} by TARSKI:def 1;
   hence thesis by Th52;
  end;

theorem Th55:
 A c= B & C c= D implies commutators(A,C) c= commutators(B,D)
  proof assume A1: A c= B & C c= D;
   let x;
    assume x in commutators(A,C);
     then consider a,c such that A2: x = [.a,c.] and A3: a in A & c in
 C by Th52;
      thus thesis by A1,A2,A3,Th52;
  end;

theorem Th56:
 G is commutative Group iff
  for A,B st A <> {} & B <> {} holds commutators(A,B) = {1.G}
   proof
    thus G is commutative Group implies for A,B st A <> {} & B <> {} holds
     commutators(A,B) = {1.G}
      proof assume A1: G is commutative Group;
       let A,B;
        assume A2: A <> {} & B <> {};
       thus commutators(A,B) c= {1.G}
        proof let x;
          assume x in commutators(A,B);
           then consider a,b such that A3: x = [.a,b.] and a in A & b in B
                                                                   by Th52;
              x = a" * (b" * a) * b by A3,Th19
             .= a" * (a * b") * b by A1,Lm3
             .= b" * b by GROUP_3:1
             .= 1.G by GROUP_1:def 5;
         hence thesis by TARSKI:def 1;
        end;
       let x;
        assume x in {1.G};
          then A4: x = 1.G by TARSKI:def 1;
         consider a being Element of A;
         consider b being Element of B;
         reconsider a,b as Element of G by A2,TARSKI:def 3;
            [.a,b.] = a" * (b" * a) * b by Th19
                 .= a" * (a * b") * b by A1,Lm3
                 .= b" * b by GROUP_3:1
                 .= x by A4,GROUP_1:def 5;
       hence thesis by A2,Th52;
      end;
    assume A5: for A,B st A <> {} & B <> {} holds commutators(A,B) = {1.G};
      G is commutative
     proof
      let a,b;
         a in {a} & b in {b} & {a} <> {} & {b} <> {} by TARSKI:def 1;
       then [.a,b.] in commutators({a},{b}) & commutators({a},{b}) ={1.G}
                                                               by A5,Th52;
       then [.a,b.] = 1.G by TARSKI:def 1;
       then (a" * b") * (a * b) = 1.G by Th19;
       then (b * a)" * (a * b) = 1.G by GROUP_1:25;
       then a * b = (b * a)"" by GROUP_1:20;
      hence thesis by GROUP_1:19;
     end;
    hence thesis;
   end;

definition let G,H1,H2;
 func commutators(H1,H2) -> Subset of G equals
  :Def5:  commutators(carr H1,carr H2);
 correctness;
end;

canceled;

theorem Th58:
 x in commutators(H1,H2) iff ex a,b st x = [.a,b.] & a in H1 & b in H2
  proof
   thus x in commutators(H1,H2) implies ex a,b st x = [.a,b.] & a in H1 & b in
 H2
    proof assume x in commutators(H1,H2);
       then x in commutators(carr H1,carr H2) by Def5;
      then consider a,b such that A1: x = [.a,b.] and
                                  A2: a in carr H1 & b in carr H2 by Th52;
         a in H1 & b in H2 by A2,GROUP_2:88;
     hence thesis by A1;
    end;
    given a,b such that A3: x = [.a,b.] and A4: a in H1 & b in H2;
       a in carr H1 & b in carr H2 by A4,GROUP_2:88;
     then x in commutators(carr H1,carr H2) by A3,Th52;
   hence thesis by Def5;
  end;

theorem Th59:
 1.G in commutators(H1,H2)
  proof [.1.G,1.G.] = 1.G & 1.G in H1 & 1.G in H2 by Th22,GROUP_2:55;
   hence thesis by Th58;
  end;

theorem
   commutators((1).G,H) = {1.G} & commutators(H,(1).G) = {1.G}
  proof
   thus commutators((1).G,H) = {1.G}
    proof
     thus commutators((1).G,H) c= {1.G}
      proof let x;
        assume x in commutators((1).G,H);
         then consider a,b such that A1: x = [.a,b.] & a in (1).G & b in H
                                                                 by Th58;
            a = 1.G by A1,Th1;
          then x = 1.G by A1,Th22;
       hence thesis by TARSKI:def 1;
      end;
        1.G in commutators((1).G,H) by Th59;
     hence thesis by ZFMISC_1:37;
    end;
   thus commutators(H,(1).G) c= {1.G}
    proof let x;
      assume x in commutators(H,(1).G);
       then consider a,b such that A2: x = [.a,b.] & a in H & b in (1).G
                                                               by Th58;
          b = 1.G by A2,Th1;
        then x = 1.G by A2,Th22;
     hence thesis by TARSKI:def 1;
    end;
      1.G in commutators(H,(1).G) by Th59;
   hence thesis by ZFMISC_1:37;
  end;

theorem Th61:
 for N being strict normal Subgroup of G
 holds commutators(H,N) c= carr N & commutators(N,H) c= carr N
  proof let N be strict normal Subgroup of G;
   thus commutators(H,N) c= carr N
    proof let x;
      assume x in commutators(H,N);
       then consider a,b such that A1: x = [.a,b.] and a in H and A2: b in N
                                                                   by Th58;
          b" in N by A2,GROUP_2:60;
        then b" |^ a in N |^ a by GROUP_3:70;
        then x = (b" |^ a) * b & b" |^ a in N by A1,Th21,GROUP_3:def 13;
        then x in N by A2,GROUP_2:59;
     hence thesis by GROUP_2:88;
    end;
   let x;
    assume x in commutators(N,H);
     then consider a,b such that A3: x = [.a,b.] and A4: a in N and b in H
                                                                   by Th58;
        a |^ b in N |^ b by A4,GROUP_3:70;
      then x = a" * (a |^ b) & a |^ b in N & a" in N
                                      by A3,A4,Th21,GROUP_2:60,GROUP_3:def 13;
      then x in N by GROUP_2:59;
   hence thesis by GROUP_2:88;
  end;

theorem Th62:
 H1 is Subgroup of H2 & H3 is Subgroup of H4 implies
  commutators(H1,H3) c= commutators(H2,H4)
 proof assume H1 is Subgroup of H2 & H3 is Subgroup of H4;
   then the carrier of H1 c= the carrier of H2 &
        the carrier of H3 c= the carrier of H4 &
        the carrier of H1 = carr H1 &
        the carrier of H2 = carr H2 &
        the carrier of H3 = carr H3 &
        the carrier of H4 = carr H4 &
        commutators(H1,H3) = commutators(carr H1,carr H3) &
        commutators(H2,H4) = commutators(carr H2,carr H4)
         by Def5,GROUP_2:def 5,def 9;
  hence thesis by Th55;
 end;

theorem Th63:
 G is commutative Group iff for H1,H2 holds commutators(H1,H2) = {1.G}
  proof
   thus G is commutative Group
     implies for H1,H2 holds commutators(H1,H2) = {1.G}
    proof assume A1: G is commutative Group;
     let H1,H2;
        carr H1 <> {} & carr H2 <> {} by GROUP_2:87;
      then commutators(carr H1,carr H2) = {1.G} by A1,Th56;
     hence thesis by Def5;
    end;
    assume A2: for H1,H2 holds commutators(H1,H2) = {1.G};
     G is commutative
    proof
     let a,b;
        a in {a} & b in {b} by TARSKI:def 1;
      then a in gr{a} & b in gr{b} by GROUP_4:38;
      then [.a,b.] in commutators(gr{a},gr{b}) by Th58;
      then [.a,b.] in {1.G} by A2;
      then [.a,b.] = 1.G by TARSKI:def 1;
     hence thesis by Th39;
    end;
   hence thesis;
  end;

definition let G;
 func commutators G -> Subset of G equals
  :Def6:  commutators((Omega).G,(Omega).G);
 correctness;
end;

canceled;

theorem Th65:
 x in commutators G iff ex a,b st x = [.a,b.]
  proof
   thus x in commutators G implies ex a,b st x = [.a,b.]
    proof assume x in commutators G;
       then x in commutators((Omega).G,(Omega).G) by Def6;
      then ex a,b st x = [.a,b.] & a in (Omega).G & b in (Omega).G by Th58;
     hence thesis;
    end;
    given a,b such that A1: x = [.a,b.];
       a in the HGrStr of G & b in the HGrStr of G by RLVECT_1:def 1;
     then a in (Omega).G & b in (Omega).G by GROUP_2:def 8;
     then x in commutators((Omega).G,(Omega).G) by A1,Th58;
   hence thesis by Def6;
  end;

theorem
   G is commutative Group iff commutators G = {1.G}
  proof
   thus G is commutative Group implies commutators G = {1.G}
    proof assume G is commutative Group;
      then commutators((Omega).G,(Omega).G) = {1.G} by Th63;
     hence thesis by Def6;
    end;
    assume A1: commutators G = {1.G};
     G is commutative
    proof
     let a,b;
         [.a,b.] in {1.G} by A1,Th65;
       then [.a,b.] = 1.G by TARSKI:def 1;
     hence thesis by Th39;
    end;
   hence thesis;
  end;

definition let G,A,B;
 func [.A,B.] -> strict Subgroup of G equals
  :Def7:  gr commutators(A,B);
 correctness;
end;

canceled;

theorem Th68:
 a in A & b in B implies [.a,b.] in [.A,B.]
  proof assume a in A & b in B;
    then [.a,b.] in commutators(A,B) by Th52;
    then [.a,b.] in gr commutators(A,B) by GROUP_4:38;
   hence thesis by Def7;
  end;

theorem Th69:
 x in [.A,B.] iff
  ex F,I st len F = len I & rng F c= commutators(A,B) & x = Product(F |^ I)
 proof
  thus x in [.A,B.] implies
    ex F,I st len F = len I & rng F c= commutators(A,B) & x = Product(F |^ I)
   proof assume A1: x in [.A,B.];
      then x in G by GROUP_2:49;
     then reconsider a = x as Element of G by RLVECT_1:def 1;
        a in gr commutators(A,B) by A1,Def7;
    hence thesis by GROUP_4:37;
   end;
     gr commutators(A,B) = [.A,B.] by Def7;
  hence thesis by GROUP_4:37;
 end;

theorem
   A c= C & B c= D implies [.A,B.] is Subgroup of [.C,D.]
  proof assume A c= C & B c= D;
    then commutators(A,B) c= commutators(C,D) by Th55;
    then gr commutators(A,B) is Subgroup of gr commutators(C,D) by GROUP_4:41;
    then [.A,B.] is Subgroup of gr commutators(C,D) by Def7;
   hence thesis by Def7;
  end;

definition let G,H1,H2;
 func [.H1,H2.] -> strict Subgroup of G equals
  :Def8:  [.carr H1,carr H2.];
 correctness;
end;

canceled;

theorem Th72:
 [.H1,H2.] = gr commutators(H1,H2)
  proof
   thus [.H1,H2.] = [.carr H1,carr H2.] by Def8
                 .= gr commutators(carr H1,carr H2) by Def7
                 .= gr commutators(H1,H2) by Def5;
  end;

theorem Th73:
 x in [.H1,H2.] iff
  ex F,I st len F = len I & rng F c= commutators(H1,H2) & x = Product(F |^ I)
 proof
  thus x in [.H1,H2.] implies
 ex F,I st len F = len I & rng F c= commutators(H1,H2) & x = Product(F |^ I)
   proof assume x in [.H1,H2.];
      then x in [.carr H1,carr H2.] by Def8;
     then consider F,I such that
      A1: len F = len I & rng F c= commutators(carr H1,carr H2) &
         x = Product(F |^ I) by Th69;
        rng F c= commutators(H1,H2) by A1,Def5;
     hence thesis by A1;
    end;
    given F,I such that
     A2: len F = len I & rng F c= commutators(H1,H2) & x = Product(F |^ I);
       commutators(H1,H2) = commutators(carr H1,carr H2) by Def5;
     then x in [.carr H1,carr H2.] by A2,Th69;
   hence thesis by Def8;
  end;

theorem Th74:
 a in H1 & b in H2 implies [.a,b.] in [.H1,H2.]
  proof assume a in H1 & b in H2;
    then a in carr H1 & b in carr H2 by GROUP_2:88;
    then [.a,b.] in [.carr H1,carr H2.] by Th68;
   hence thesis by Def8;
  end;

theorem
   H1 is Subgroup of H2 & H3 is Subgroup of H4 implies
  [.H1,H3.] is Subgroup of [.H2,H4.]
 proof assume H1 is Subgroup of H2 & H3 is Subgroup of H4;
   then commutators(H1,H3) c= commutators(H2,H4) by Th62;
   then gr commutators(H1,H3) is Subgroup of gr commutators(H2,H4)
                                                           by GROUP_4:41;
   then [.H1,H3.] is Subgroup of gr commutators(H2,H4) by Th72;
  hence thesis by Th72;
 end;

theorem
   for N being strict normal Subgroup of G holds
 [.N,H.] is Subgroup of N & [.H,N.] is Subgroup of N
  proof let N be strict normal Subgroup of G;
      now let a;
      assume a in [.N,H.];
       then consider F,I such that A1: len F = len I and
        A2: rng F c= commutators(N,H) and A3: a = Product(F |^ I) by Th73;
          commutators(N,H) c= carr N by Th61;
        then rng F c= carr N by A2,XBOOLE_1:1;
        then a in gr carr N by A1,A3,GROUP_4:37;
     hence a in N by GROUP_4:40;
    end;
   hence [.N,H.] is Subgroup of N by GROUP_2:67;
      now let a;
      assume a in [.H,N.];
       then consider F,I such that A4: len F = len I and
        A5: rng F c= commutators(H,N) and A6: a = Product(F |^ I) by Th73;
          commutators(H,N) c= carr N by Th61;
        then rng F c= carr N by A5,XBOOLE_1:1;
        then a in gr carr N by A4,A6,GROUP_4:37;
     hence a in N by GROUP_4:40;
    end;
   hence thesis by GROUP_2:67;
  end;

theorem Th77:
 for N1,N2 being strict normal Subgroup of G
 holds [.N1,N2.] is normal Subgroup of G
  proof let N1,N2 be strict normal Subgroup of G;
      now let a;
        now let b;
        assume b in [.N1,N2.] |^ a;
         then consider c such that A1: b = c |^ a and A2: c in [.N1,N2.]
                                                             by GROUP_3:70;
            c in [.carr N1,carr N2.] by A2,Def8;
          then c in gr commutators(carr N1,carr N2) by Def7;
         then consider F,I such that A3: len F = len I and
          A4: rng F c= commutators(carr N1,carr N2) and
          A5: c = Product(F |^ I) by GROUP_4:37;
          A6: b = Product(F |^ I |^ a) by A1,A5,Th17
              .= Product((F |^ a) |^ I) by Th18;
          A7: len(F |^ a) = len F by Def1;
            rng(F |^ a) c= commutators(carr N1,carr N2)
           proof let x;
             assume x in rng(F |^ a);
              then consider y such that A8: y in dom(F |^ a) and
                                        A9: (F |^ a).y = x by FUNCT_1:def 5;
              reconsider y as Nat by A8;
                  y in dom F by A7,A8,FINSEQ_3:31;
               then F.y in rng F by FUNCT_1:def 5;
               then consider d,e such that A10: F.y = [.d,e.] and
               A11: d in carr N1 & e in carr N2 by A4,Th52;
                 y in dom F by A7,A8,FINSEQ_3:31;
               then x = (F/.y) |^ a & F.y = (F/.y) by A9,Def1,FINSEQ_4:def 4;
               then A12: x = [.d |^ a,e |^ a.] by A10,Th26;
                 d in N1 & e in N2 by A11,GROUP_2:88;
               then d |^ a in N1 |^ a & e |^ a in N2 |^ a by GROUP_3:70;
               then d |^ a in N1 & e |^ a in N2 by GROUP_3:def 13;
               then d |^ a in carr N1 & e |^ a in carr N2 by GROUP_2:88;
            hence thesis by A12,Th52;
           end;
          then b in gr commutators(carr N1,carr N2) by A3,A6,A7,GROUP_4:37;
          then b in [.carr N1,carr N2.] by Def7;
       hence b in [.N1,N2.] by Def8;
      end;
     hence [.N1,N2.] |^ a is Subgroup of [.N1,N2.] by GROUP_2:67;
    end;
   hence thesis by GROUP_3:145;
  end;

Lm4: [.N1,N2.] is Subgroup of [.N2,N1.]
 proof
     now let a;
     assume a in [.N1,N2.];
      then consider F,I such that len F = len I and
       A1: rng F c= commutators(N1,N2) and A2: a = Product(F |^ I) by Th73;
      deffunc F(Nat) = (F/.$1)";
      consider F1 such that A3: len F1 = len F and
       A4: for k st k in Seg len F holds F1.k = F(k) from SeqLambdaD;
      deffunc F(Nat) = @(- @(I/.$1));
      consider I1 such that A5: len I1 = len F and
       A6: for k st k in Seg len F holds I1.k = F(k) from SeqLambdaD;
A7:   dom F = Seg len F by FINSEQ_1:def 3;
A8:   dom F1 = dom F by A3,FINSEQ_3:31;
A9:   dom I1 = dom F by A5,FINSEQ_3:31;
      set J = F1 |^ I1;
       A10: len J = len F & len(F |^ I) = len F by A3,GROUP_4:def 4;
         now let k;
         assume A11: k in Seg len F;
       then A12: k in dom F by FINSEQ_1:def 3;
            J.k = (F1/.k) |^ @(I1/.k) & F1/.k = F1.k & F1.k = (F/.k)" &
          I1.k = (I1/.k) & @(I1/.k) = I1/.k &
          I1.k = @(- @(I/.k)) & @(- @(I/.k)) = - @(I/.k)
            by A4,A6,A7,A8,A9,A11,FINSEQ_4:def 4,GROUP_4:def 2,def 4;
          then J.k = ((F/.k)" |^ @(I/.k))" by GROUP_1:70
                  .= ((F/.k) |^ @(I/.k))"" by GROUP_1:72
                  .= (F/.k) |^ @(I/.k) by GROUP_1:19;
        hence (F |^ I).k = J.k by A12,GROUP_4:def 4;
       end;
       then A13: J = F |^ I by A10,FINSEQ_2:10;
         rng F1 c= commutators(N2,N1)
        proof let x;
          assume x in rng F1;
           then consider y such that A14: y in dom F1 and A15: F1.y = x
                                                             by FUNCT_1:def 5;
           reconsider y as Nat by A14;
              y in dom F by A3,A14,FINSEQ_3:31;
            then F.y in rng F by FUNCT_1:def 5;
            then consider b,c such that A16: F.y = [.b,c.] and
            A17: b in N1 & c in N2 by A1,Th58;
              y in dom F by A3,A14,FINSEQ_3:31;
            then x = (F/.y)" & F/.y = F.y by A4,A7,A15,FINSEQ_4:def 4;
            then x = [.c,b.] by A16,Th25;
         hence thesis by A17,Th58;
        end;
    hence a in [.N2,N1.] by A2,A3,A5,A13,Th73;
   end;
  hence thesis by GROUP_2:67;
 end;

theorem Th78:
 [.N1,N2.] = [.N2,N1.]
  proof [.N1,N2.] is Subgroup of [.N2,N1.] &
        [.N2,N1.] is Subgroup of [.N1,N2.] by Lm4;
   hence thesis by GROUP_2:64;
  end;

theorem Th79:
 for N1,N2,N3 being strict normal Subgroup of G
 holds [.N1 "\/" N2,N3.] = [.N1,N3.] "\/" [.N2,N3.]
  proof let N1,N2,N3 be strict normal Subgroup of G;
   A1: [.N1,N3.] is normal Subgroup of G &
           [.N2,N3.] is normal Subgroup of G by Th77;
      commutators(N1 "\/" N2,N3) c= [.N1,N3.] * [.N2,N3.]
     proof let x;
       assume x in commutators(N1 "\/" N2,N3);
        then consider a,b such that A2: x = [.a,b.] and A3: a in N1 "\/" N2 and
                                    A4: b in N3 by Th58;
        consider c,d such that A5: a = c * d and A6: c in N1 and A7: d in N2
                                                                 by A3,Th7;
         A8: x = [.c,b.] |^ d * [.d,b.] by A2,A5,Th28;
           [.c,b.] in [.N1,N3.] by A4,A6,Th74;
         then [.c,b.] |^ d in [.N1,N3.] |^ d by GROUP_3:70;
         then [.c,b.] |^ d in [.N1,N3.] & [.d,b.] in [.N2,N3.]
                                               by A1,A4,A7,Th74,GROUP_3:def 13;
      hence thesis by A8,Th4;
     end;
    then gr commutators(N1 "\/"
 N2,N3) is Subgroup of gr ([.N1,N3.] * [.N2,N3.]) by GROUP_4:41;
    then [.N1 "\/" N2,N3.] is Subgroup of gr([.N1,N3.] * [.N2,N3.]) by Th72;
    then A9: [.N1 "\/" N2,N3.] is Subgroup of [.N1,N3.] "\/" [.N2,N3.]
                                                              by GROUP_4:68;
      now let a;
      assume a in [.N1,N3.] "\/" [.N2,N3.];
       then consider b,c such that A10: a = b * c and A11: b in [.N1,N3.] and
                                   A12: c in [.N2,N3.] by A1,Th7;
       consider F1,I1 such that A13: len F1 = len I1 and
        A14: rng F1 c= commutators(N1,N3) and A15: b = Product
(F1 |^ I1) by A11,Th73;
       consider F2,I2 such that A16: len F2 = len I2 and
        A17: rng F2 c= commutators(N2,N3) and A18: c = Product
(F2 |^ I2) by A12,Th73;
        A19: Product((F1 ^ F2) |^ (I1 ^ I2)) =
                Product((F1 |^ I1) ^ (F2 |^ I2)) by A13,A16,GROUP_4:25
             .= a by A10,A15,A18,GROUP_4:8;
          rng(F1 ^ F2) = rng F1 \/ rng F2 by FINSEQ_1:44;
        then A20: rng(F1 ^ F2) c= commutators(N1,N3) \/ commutators(N2,N3)
                                                          by A14,A17,XBOOLE_1:
13;
          N1 is Subgroup of N1 "\/" N2 & N2 is Subgroup of N1 "\/" N2 &
        N3 is Subgroup of N3 by GROUP_2:63,GROUP_4:78;
        then commutators(N1,N3) c= commutators(N1 "\/" N2,N3) &
             commutators(N2,N3) c= commutators(N1 "\/" N2,N3) by Th62;
        then commutators(N1,N3) \/ commutators(N2,N3) c=
             commutators(N1 "\/" N2,N3) by XBOOLE_1:8;
        then A21: rng(F1 ^ F2) c= commutators(N1 "\/" N2,N3) by A20,XBOOLE_1:1;
          len(F1 ^ F2) = len I1 + len I2 by A13,A16,FINSEQ_1:35
                    .= len(I1 ^ I2) by FINSEQ_1:35;
     hence a in [.N1 "\/" N2,N3.] by A19,A21,Th73;
    end;
    then [.N1,N3.] "\/" [.N2,N3.] is Subgroup of [.N1 "\/"
 N2,N3.] by GROUP_2:67;
   hence thesis by A9,GROUP_2:64;
  end;

theorem
   for N1,N2,N3 being strict normal Subgroup of G holds
 [.N1,N2 "\/" N3.] = [.N1,N2.] "\/" [.N1,N3.]
  proof let N1,N2,N3 be strict normal Subgroup of G;
      N2 "\/" N3 is normal Subgroup of G by GROUP_4:72;
   hence [.N1,N2 "\/" N3.] = [.N2 "\/" N3,N1.] by Th78
                       .= [.N2,N1.] "\/" [.N3,N1.] by Th79
                       .= [.N1,N2.] "\/" [.N3,N1.] by Th78
                       .= [.N1,N2.] "\/" [.N1,N3.] by Th78;
  end;

definition let G be Group;
 func G` -> strict normal Subgroup of G equals
  :Def9:  [.(Omega).G,(Omega).G.];
 coherence
  proof (Omega).G is normal Subgroup of G by GROUP_3:137;
   hence thesis by Th77;
  end;
end;

canceled;

theorem Th82:
 for G being Group holds
 G` = gr commutators G
  proof let G be Group;
   thus G` = [.(Omega).G,(Omega).G.] by Def9
          .= gr commutators((Omega).G,(Omega).G) by Th72
          .= gr commutators G by Def6;
  end;

theorem Th83:
 for G being Group holds
 x in G` iff
  ex F being FinSequence of the carrier of G,I
    st len F = len I & rng F c= commutators G & x = Product(F |^ I)
 proof let G be Group;
  thus x in G` implies
        ex F being FinSequence of the carrier of G,I
        st len F = len I & rng F c= commutators G & x = Product(F |^ I)
   proof assume A1: x in G`;
      then A2: x in gr commutators G by Th82;
        x in G by A1,GROUP_2:49;
     then reconsider a = x as Element of G by RLVECT_1:def 1;
        ex F being FinSequence of the carrier of G,I st
 len F = len I & rng F c= commutators G & a = Product(F |^ I)
                                                      by A2,GROUP_4:37;
    hence thesis;
   end;
  given F being FinSequence of the carrier of G,I such that
   A3: len F = len I & rng F c= commutators G & x = Product(F |^ I);
     Product(F |^ I) in gr commutators G by A3,GROUP_4:37;
  hence thesis by A3,Th82;
 end;

theorem Th84:
 for G being strict Group, a,b be Element of G
    holds [.a,b.] in G`
  proof let G be strict Group, a,b be Element of G;
     a in G & b in G by RLVECT_1:def 1;
    then a in (Omega).G & b in (Omega).G by GROUP_2:def 8;
    then [.a,b.] in [.(Omega).G,(Omega).G.] by Th74;
   hence thesis by Def9;
  end;

theorem
   for G being strict Group holds G is commutative Group iff G` = (1).G
  proof let G be strict Group;
   thus G is commutative Group implies G` = (1).G
    proof assume A1: G is commutative Group;
        now let a be Element of G;
        assume a in G`;
         then a in [.(Omega).G,(Omega).G.] by Def9;
         then a in [.carr(Omega).G,carr(Omega).G.] by Def8;
         then a in gr commutators(carr(Omega).G,carr(Omega).G) &
              carr(Omega).G <> {} by Def7,GROUP_2:87;
         then a in gr {1.G} by A1,Th56;
         then a in gr({1.G} \ {1.G}) & {} = {} the carrier of G
                                           by GROUP_4:44;
         then a in gr {} the carrier of G by XBOOLE_1:37;
       hence a in (1).G by GROUP_4:39;
      end;
      then G` is Subgroup of (1).G & (1).G is Subgroup of G`
                                              by GROUP_2:67,77;
     hence thesis by GROUP_2:64;
    end;
    assume A2: G` = (1).G;
     G is commutative
    proof
     let a,b be Element of G;
        [.a,b.] in G` by Th84;
      then [.a,b.] = 1.G by A2,Th1;
     hence thesis by Th39;
    end;
   hence thesis;
  end;

theorem
   for G being Group, H being strict Subgroup of G holds
 Left_Cosets H is finite & index H = 2 implies G` is Subgroup of H
  proof let G be Group, H be strict Subgroup of G;
   assume that A1: Left_Cosets H is finite and A2: index H = 2;
     A3: H is normal Subgroup of G by A1,A2,GROUP_3:151;
      now let a be Element of G;
      assume a in G`;
       then consider F being FinSequence of the carrier of G,I such that
       A4: len F = len I and
        A5: rng F c= commutators G and A6: a = Product(F |^ I) by Th83;
          rng F c= carr H
         proof let X be set;
           assume X in rng F;
             then consider a,b being Element of G such that
            A7: X = [.a,b.] by A5,Th65;
               ex B being finite set st
               B = Left_Cosets H & index H = card B by A1,GROUP_2:176;
            then consider x,y such that x <> y and A8: Left_Cosets H = {x,y}
                                                           by A2,GROUP_3:166;
               x in Left_Cosets H by A8,TARSKI:def 2;
            then consider d being Element of G such that
            A9: x = d * H by GROUP_2:def 15;
               y in Left_Cosets H by A8,TARSKI:def 2;
            then consider e being Element of G such that
            A10: y = e * H by GROUP_2:def 15;
               carr H in Left_Cosets H by GROUP_2:165;
             then Left_Cosets H = {carr H,e * H} or
                  Left_Cosets H = {d * H,carr H} by A8,A9,A10,TARSKI:def 2;
            then consider c being Element of G such that
            A11: Left_Cosets H = {carr H,c * H};
               a in the carrier of G & b in the carrier of G;
             then a in union Left_Cosets H & b in union Left_Cosets H
                                                            by GROUP_2:167;
             then A12: a in carr H \/ c * H & b in carr H \/ c * H
                                                         by A11,ZFMISC_1:93;
               now per cases by A12,XBOOLE_0:def 2;
              suppose a in carr H & b in carr H;
                then a in H & b in H by GROUP_2:88;
                then X in H by A7,Th41;
               hence thesis by GROUP_2:88;
              suppose a in carr H & b in c * H;
                then a in H by GROUP_2:88;
                then a |^ b in H & a" in H by A3,Th3,GROUP_2:60;
                then a" * (a |^ b) in H by GROUP_2:59;
                then X in H by A7,Th21;
               hence thesis by GROUP_2:88;
              suppose a in c * H & b in carr H;
                then A13: b in H by GROUP_2:88;
                then b" in H by GROUP_2:60;
                then b" |^ a in H by A3,Th3;
                then b" |^ a * b in H by A13,GROUP_2:59;
                then X in H by A7,Th21;
               hence thesis by GROUP_2:88;
              suppose A14: a in c * H & b in c * H;
                then consider d being Element of G such that
                A15: a = c * d & d in H by GROUP_2:125;
                consider e being Element of G such that
                A16: b = c * e & e in H
                                                             by A14,GROUP_2:125
;
                 A17: [.a,b.] = (a" * b") * (a * b) by Th19
                  .= (d" * c" * b") * (c * d * (c * e)) by A15,A16,GROUP_1:25
                  .= (d" * c" * (e" * c")) * (c * d * (c * e)) by A16,GROUP_1:
25
                  .= (d" * c" * e" * c") * (c * d * (c * e)) by VECTSP_1:def 16
                  .= (d" * c" * e" * c") * (c * (d * (c * e))) by VECTSP_1:def
16
                  .= ((d" * c" * e") * c") * c * (d * (c * e)) by VECTSP_1:def
16
                  .= (d" * c" * e") * (c" * c) * (d * (c * e)) by VECTSP_1:def
16
                  .= (d" * c" * e") * (1.G) * (d * (c * e)) by GROUP_1:def 5
                  .= (d" * c" * e") * (c * c") * (d * (c * e)) by GROUP_1:def 5
                  .= (d" * c" * e") * c * c" * (d * (c * e)) by VECTSP_1:def 16
                  .= (d" * (c" * e")) * c * c" * (d * (c * e)) by VECTSP_1:def
16
                  .= d" * ((c" * e") * c) * c" * (d * (c * e)) by VECTSP_1:def
16
                  .= d" * (e" |^ c) * c" * (d * (c * e)) by GROUP_3:20
                  .= d" * (e" |^ c) * c" * (d * c * e) by VECTSP_1:def 16
                  .= d" * (e" |^ c) * (c" * (d * c * e)) by VECTSP_1:def 16
                  .= d" * (e" |^ c) * (c" * (d * (c * e))) by VECTSP_1:def 16
                  .= d" * (e" |^ c) * (c" * d * (c * e)) by VECTSP_1:def 16
                  .= d" * (e" |^ c) * (c" * d * c * e) by VECTSP_1:def 16
                  .= d" * (e" |^ c) * (d |^ c * e) by GROUP_3:20;
                   e" in H by A16,GROUP_2:60;
                 then d" in H & e" |^ c in H & d |^ c in H
                    by A3,A15,Th3,GROUP_2:60;
                 then d" * (e" |^ c) in H & d |^ c * e in H by A16,GROUP_2:59;
                 then X in H by A7,A17,GROUP_2:59;
              hence thesis by GROUP_2:88;
             end;
          hence thesis;
         end;
       then a in gr carr H by A4,A6,GROUP_4:37;
     hence a in H by GROUP_4:40;
    end;
   hence thesis by GROUP_2:67;
  end;

begin :: Center of a Group.

definition let G;
 func center G -> strict Subgroup of G means
  :Def10: the carrier of it = {a : for b holds a * b = b * a};
 existence
  proof
    defpred P[Element of G] means for b holds $1 * b = b * $1;
    reconsider A = {a : P[a]} as Subset of G from SubsetD;
       now let b;
         1.G * b = b & b * 1.G = b by GROUP_1:def 4;
      hence 1.G * b = b * 1.G;
     end;
     then A1: 1.G in A;
     A2: now let a,b;
       assume that A3: a in A and A4: b in A;
        consider c such that A5: c = a & for b holds c * b = b * c by A3;
        consider d such that A6: d = b & for a holds d * a = a * d by A4;
           now let e;
          thus a * b * e = a * (b * e) by VECTSP_1:def 16
                        .= a * (e * d) by A6
                        .= a * e * b by A6,VECTSP_1:def 16
                        .= e * c * b by A5
                        .= e * (a * b) by A5,VECTSP_1:def 16;
         end;
      hence a * b in A;
     end;
       now let a;
       assume a in A;
        then consider b such that A7: b = a & for c holds b * c = c * b;
           now let c;
          thus a" * c = (a" * c)"" by GROUP_1:19
                     .= (c" * a"")" by GROUP_1:25
                     .= (c" * b)" by A7,GROUP_1:19
                     .= (b * c")" by A7
                     .= (a"" * c")" by A7,GROUP_1:19
                     .= (c * a")"" by GROUP_1:25
                     .= c * a" by GROUP_1:19;
         end;
      hence a" in A;
     end;
   hence thesis by A1,A2,GROUP_2:61;
  end;
 uniqueness by GROUP_2:68;
end;

canceled 2;

theorem Th89:
 a in center G iff for b holds a * b = b * a
  proof
   thus a in center G implies for b holds a * b = b * a
    proof assume a in center G;
       then a in the carrier of center G by RLVECT_1:def 1;
       then a in {b : for c holds b * c = c * b} by Def10;
      then ex b st a = b & for c holds b * c = c * b;
     hence thesis;
    end;
    assume for b holds a * b = b * a;
     then a in {c : for b holds c * b = b * c};
     then a in the carrier of center G by Def10;
   hence thesis by RLVECT_1:def 1;
  end;

theorem
   center G is normal Subgroup of G
  proof
      now let a;
     thus a * center G c= center G * a
      proof let x;
        assume x in a * center G;
         then consider b such that A1: x = a * b and A2: b in center G
                                                             by GROUP_2:125;
           x = b * a by A1,A2,Th89;
       hence thesis by A2,GROUP_2:126;
      end;
    end;
   hence thesis by GROUP_3:141;
  end;

theorem
   for H being Subgroup of G holds
 H is Subgroup of center G implies H is normal Subgroup of G
  proof let H be Subgroup of G;
   assume A1: H is Subgroup of center G;
      now let a;
     thus H * a c= a * H
      proof let x;
        assume x in H * a;
         then consider b such that A2: x = b * a and A3: b in H by GROUP_2:126;
            b in center G by A1,A3,GROUP_2:49;
          then x = a * b by A2,Th89;
       hence thesis by A3,GROUP_2:125;
      end;
    end;
   hence thesis by GROUP_3:142;
  end;

theorem
   center G is commutative
  proof let a,b be Element of center G;
    reconsider x = a, y = b as Element of G by GROUP_2:51;
     A1: a in center G by RLVECT_1:def 1;
   thus a * b = x * y by GROUP_2:52
             .= y * x by A1,Th89
             .= b * a by GROUP_2:52;
  end;

theorem
   a in center G iff con_class a = {a}
  proof
   thus a in center G implies con_class a = {a}
    proof assume A1: a in center G;
     thus con_class a c= {a}
      proof let x;
        assume x in con_class a;
         then consider b such that A2: b = x and A3: a,b are_conjugated
                                                             by GROUP_3:95;
         consider c such that A4: a = b |^ c by A3,GROUP_3:def 7;
            a = c" * (b * c) by A4,GROUP_3:20;
          then c * a = b * c by GROUP_1:21;
          then a * c = b * c by A1,Th89;
          then a = b by GROUP_1:14;
       hence thesis by A2,TARSKI:def 1;
      end;
        a in con_class a by GROUP_3:98;
     hence {a} c= con_class a by ZFMISC_1:37;
    end;
    assume A5: con_class a = {a};
       now let b;
         a |^ b in con_class a by GROUP_3:97;
       then a |^ b = a by A5,TARSKI:def 1;
       then b" * (a * b) = a by GROUP_3:20;
      hence a * b = b * a by GROUP_1:21;
     end;
   hence thesis by Th89;
  end;

theorem
   for G being strict Group holds
 G is commutative Group iff center G = G
 proof let G be strict Group;
  thus G is commutative Group implies center G = G
   proof assume A1: G is commutative Group;
       now let a be Element of G;
         for b being Element of G holds a * b = b * a by A1,Lm3;
      hence a in center G by Th89;
     end;
    hence thesis by GROUP_2:71;
   end;
   assume A2: center G = G;
    G is commutative
   proof
    let a,b be Element of G;
       a in G by RLVECT_1:def 1;
    hence a * b = b * a by A2,Th89;
   end;
  hence thesis;
 end;

begin :: Auxiliary theorems.

reserve E for non empty set,
        p, q for FinSequence of E;

theorem
   k in dom p implies (p ^ q)/.k = p/.k by Lm1;

theorem
   k in dom q implies (p ^ q)/.(len p + k) = q/.k by Lm2;

Back to top