
theorem Th46:
  for G be Group,
      h be Element of G
  holds
  for F be FinSequence of G
  st for k be Nat st k in dom F
     holds h * F/.k = (F/.k) * h
  holds h * Product(F) = Product(F) * h
  proof
    let G be Group, h be Element of G;
    defpred P[Nat] means
    for F be FinSequence of G
    st len F = $1
     & for i be Nat st i in dom F holds h * F/.i = (F/.i) * h
    holds h * Product(F) = Product(F) * h;
    A1: P[0]
    proof
      let F be FinSequence of G;
      assume len F = 0
           & for i be Nat st i in dom F holds h * F/.i = (F/.i) * h; then
      F = <*>([#]G); then
      A2: Product F = 1_G by GROUP_4:8;
      hence h * Product(F) = h by GROUP_1:def 4
                          .= Product(F) * h by A2,GROUP_1:def 4;
    end;
    A3: for k be Nat st P[k] holds P[k+1]
    proof
      let k be Nat;
      assume
      A4: P[k];
      let F be FinSequence of G;
      assume
      A5: len F = k+1
         & for i be Nat st i in dom F holds h * F/.i = (F/.i) * h;
      reconsider g = F/.(k+1) as Element of G;
      reconsider F0 = F|k as FinSequence of G;
      k+1 in Seg(k+1) by FINSEQ_1:4; then
      A6: k+1 in dom F by A5,FINSEQ_1:def 3; then
      A7: F/.(k+1) = F.(k+1) by PARTFUN1:def 6;
      A8: k <= len F by A5,XREAL_1:31; then
      A9: len F0 = k by FINSEQ_1:17;
      A11: Seg k c= Seg(k+1) by XREAL_1:31,FINSEQ_1:5;
      A12: dom F0 = Seg k by A8,FINSEQ_1:17;
      A13: dom F = Seg(k+1) by A5,FINSEQ_1:def 3;
      A14: for i be Nat st i in dom F0 holds h * F0/.i = F0/.i * h
      proof
        let i be Nat;
        assume
        A15: i in dom F0; then
        F0/.i = F/.i by PARTFUN1:80;
        hence thesis by A5,A11,A12,A13,A15;
      end;
      A19: Product F = Product(F0^<*g*>) by A5,A7,FINSEQ_3:55
                    .= (Product F0) * g by GROUP_4:6;
      hence h * Product F = (h * (Product F0)) * g by GROUP_1:def 3
                        .= ((Product F0) * h) * g by A4,A9,A14
                        .= (Product F0) * (h * g) by GROUP_1:def 3
                        .= (Product F0) * (g * h) by A5,A6
                        .= (Product F) * h by A19,GROUP_1:def 3;
    end;
    A20: for i be Nat holds P[i] from NAT_1:sch 2(A1,A3);
    let F be FinSequence of G;
    assume
    A21: for k be Nat st k in dom F holds h * F/.k = (F/.k) * h;
    len F is Nat;
    hence thesis by A20,A21;
  end;
