
theorem ThMappingFrobProd:
  for G1, G2 being Group
  for phi being Homomorphism of G1, G2
  for F1 being FinSequence of the carrier of G1
  ex F2 being FinSequence of the carrier of G2
  st len F1 = len F2
   & F2 = phi * F1
   & Product F2 = phi.(Product F1)
proof
  let G1, G2 be Group;
  let phi be Homomorphism of G1, G2;
  let F1 be FinSequence of the carrier of G1;
  set n1 = len F1;
  defpred P[object, object] means ex k being Nat st k = $1 &
  $2 = phi.(F1.k);
  A1: for k being Nat st k in Seg n1 holds ex x being object st P[k, x]
  proof
    let k be Nat;
    assume k in Seg n1;
    consider x being object such that
    B1: x = phi.(F1.k);
    take x;
    thus P[k, x] by B1;
  end;

  consider p being FinSequence such that
  A2: dom p = Seg n1 and
  A3: for k being Nat st k in Seg n1 holds P[k, p.k]
  from FINSEQ_1:sch 1(A1);
  A4: len F1 = len p by A2, FINSEQ_1:def 3;
  A5: p = phi * F1
  proof
    B1: len p = len (phi * F1) by A4, FINSEQ_2:33;
    for k being Nat st 1 <= k & k <= len p holds p.k = (phi * F1).k
    proof
      let k be Nat;
      assume B2: 1 <= k;
      assume B3: k <= len p;
      then k in Seg n1 by A4, B2;
      then B4: k in dom F1 by FINSEQ_1:def 3;
      P[k, p.k] by A3, A4, B2, B3, FINSEQ_1:1;
      hence p.k = (phi * F1).k by B4, FUNCT_1:13;
    end;
    hence thesis by B1, FINSEQ_1:def 18;
  end;
  then reconsider p as FinSequence of the carrier of G2;
  take F2 = p;
  thus len F1 = len F2 by A4;
  thus F2 = phi * F1 by A5;
  thus thesis by A5,ThMappingFrobProdProperty;
end;
