reserve i,j,k,n,m for Nat,
  x,y,z,y1,y2 for object, X,Y,D for set,
  p,q for XFinSequence;
reserve k1,k2 for Nat;
reserve D for non empty set,
  F,G for XFinSequence of D,
  b for BinOp of D,
  d,d1,d2 for Element of D;

theorem :: CARD_FIN:62
  for bFG be XFinSequence of D st b is commutative associative &
         (b is having_a_unity or len F >= 1) &
         len F=len G & len F=len bFG &
         (for n st n in dom bFG holds bFG.n=b.(F.n,G.n))
  holds b "**" F^G = b "**" bFG
proof
  let bFG be XFinSequence of D such that
A1: b is commutative associative and
A2: b is having_a_unity or len F >= 1 and
A3: len F=len G and
A4: len F=len bFG and
A5: for n st n in dom bFG holds bFG.n=b.(F.n,G.n);
  set xG=XFS2FS G;
  set xF=XFS2FS F;
A6: b "**" F=b "**" xF & b "**" G=b "**" xG by A2,A3,Th43;
  set xb=XFS2FS bFG;
A7: len xb=len bFG by AFINSQ_1:def 9;
A8: for k be Nat st k in dom xb holds xb.k = b.(xF.k,xG.k)
  proof
    let k be Nat such that
A9: k in dom xb;
    k in Seg len xb by A9,FINSEQ_1:def 3;
    then k>=1 by FINSEQ_1:1;
    then reconsider k1=k-1 as Element of NAT by NAT_1:21;
A10: k in Seg len xb by A9,FINSEQ_1:def 3;
    then
A11: 1<=k by FINSEQ_1:1;
    k in Seg len xb by A9,FINSEQ_1:def 3;
    then k1<k1+1 & k<=len xb by FINSEQ_1:1,NAT_1:13;
    then k1<len xb by XXREAL_0:2;
    then k1 in dom bFG by A7,AFINSQ_1:86;
    then
A13: bFG.k1=b.(F.k1,G.k1) by A5;
A14: k<= len bFG by A7,A10,FINSEQ_1:1;
    then bFG.(k-1)=xb.k & F.(k-1)=xF.k by A4,A11,AFINSQ_1:def 9;
    hence thesis by A3,A4,A11,A14,A13,AFINSQ_1:def 9;
  end;
  len xF=len F & len G=len xG by AFINSQ_1:def 9;
  then b "**" xb=b.(b "**" xF,b "**" xG) by A1,A2,A3,A4,A7,A8,FINSOP_1:9;
  then b "**" bFG = b.(b "**" F,b "**" G) by A2,A4,A6,Th43;
  hence thesis by A1,A2,A3,Th41;
end;
