 reserve G, A for Group;
 reserve phi for Homomorphism of A,AutGroup(G);
 reserve G, A for Group;
 reserve phi for Homomorphism of A,AutGroup(G);

theorem Th38:
  semidirect_product (G, A, 1:(A, AutGroup G)) = product <*G, A*>
proof
  set S = semidirect_product (G, A, 1:(A, AutGroup G));
  A1: the carrier of S = the carrier of product <*G,A*> by Th9;
  set B1 = the multF of S;
  set B2 = the multF of product <*G, A*>;
  set U = product Carrier <*G,A*>;

  A2: B1 is BinOp of U & B2 is BinOp of U
  proof
    the carrier of S = product Carrier<*G,A*> &
    B1 is BinOp of the carrier of S by Def1;
    hence B1 is BinOp of U;

    the carrier of product <*G,A*> = product Carrier <*G,A*> &
    the multF of product <*G,A*> is BinOp of the carrier of product <*G,A*>
    by GROUP_7:def 2;
    hence B2 is BinOp of U;
  end;

  for x,y being Element of product Carrier <*G,A*>
  holds B1.(x,y) = B2.(x,y)
  proof
    let x,y be Element of product Carrier <*G,A*>;
    x is Element of S by Def1;
    then consider g1 being Element of G, a1 being Element of A such that
    A4: x = <*g1,a1*> by Th12;
    y is Element of S by Def1;
    then consider g2 being Element of G, a2 being Element of A such that
    A5: y = <*g2,a2*> by Th12;
    1:(A, AutGroup G) = A --> (1_(AutGroup G)) by GROUP_6:def 7;
    then (1:(A, AutGroup G)).a1 = id the carrier of G by AUTGROUP:9;
    then A6: (((1:(A, AutGroup G)) . a1) . g2) = g2;
    reconsider x0=x,y0=y as Element of S by Def1;
    A8: x0 * y0 = <* g1 * g2, a1 * a2 *> by A4, A5, A6, Th14;

    B2.(x,y) = <*g1,a1*> * <*g2, a2*> by A4,A5
            .= <* g1 * g2,a1 * a2 *> by GROUP_7:29;
    hence B1.(x,y) = B2.(x,y) by A8;
  end;
  hence thesis by A1, A2, BINOP_1:2;
end;
