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 Th42: :: CARD_FIN:42
  n in dom F & (b is having_a_unity or n <> 0 ) implies
   b.(b "**" F|n, F.n) = b "**" F|(n+1)
proof
assume that
A1: n in dom F and
A2: b is having_a_unity or n <> 0;
  len F>n by A1,AFINSQ_1:86;
  then
A3: len (F|n)=n by AFINSQ_1:54;
  defpred P[Nat] means $1 in dom F & (b is having_a_unity or len (F
  |$1) >= 1) implies b.(b "**" F|$1, F.$1) = b "**" F|($1+1);
A4: for k st P[k] holds P[k+1]
  proof
    let k such that P[k];
    set k1=k+1;
    set Fk1=F|k1;
    set Fk2=F|(k1+1);
    assume that
A5: k1 in dom F and
A6: b is having_a_unity or len Fk1 >= 1;
    0 < len F by A5;
    then
A7: 0 in dom F by AFINSQ_1:86;
    0 in Segm k1 by NAT_1:44;
    then 0 in dom F/\k1 by A7,XBOOLE_0:def 4;
    then 0 in dom Fk1 by RELAT_1:61;
    then
A8: Fk1.0=F.0 by FUNCT_1:47;
A9: k<k1 by NAT_1:13;
    k1<k1+1 by NAT_1:13;
    then k1 in Segm(k1+1) by NAT_1:44;
    then
A10: k1 in dom F/\(k1+1) by A5,XBOOLE_0:def 4;
A12: k1 < len F by A5,AFINSQ_1:86;
    then
A13: len Fk1=k1 by AFINSQ_1:54;
    then consider f1 be sequence of D such that
A14: f1.0 = Fk1.0 and
A15: for n st n+1 < len Fk1 holds f1.(n+1) = b.(f1.n,Fk1.(n + 1)) and
A16: b "**" Fk1= f1.(k1-1) by A6,Def8;
    k1+1 <=dom F by A12,NAT_1:13;
    then
A17: len Fk2=k1+1 by AFINSQ_1:54;
    then b is having_a_unity or len Fk2 >= 1 by A6,A13,NAT_1:13;
    then consider f2 be sequence of D such that
A18: f2.0 = Fk2.0 and
A19: for n st n+1 < len Fk2 holds f2.(n+1) = b.(f2.n,Fk2.(n+1)) and
A20: b "**" Fk2= f2.((k1+1)-1) by A17,Def8;
    defpred R[Nat] means $1 < k1 implies f1.$1=f2.$1;
A21: for m  st R[m] holds R[m+1]
    proof
      let m such that
A22:  R[m];
      set m1=m+1;
      assume
A23:  m1 < k1;
      k1< len F by A5,AFINSQ_1:86;
      then m1 < len F by A23,XXREAL_0:2;
      then
A24:  m1 in dom F by AFINSQ_1:86;
      m1 <k1+1 by A23,NAT_1:13;
      then m1 in Segm(k1+1) by NAT_1:44;
      then m1 in dom F/\Segm(k1+1) by A24,XBOOLE_0:def 4;
      then m1 in dom Fk2 by RELAT_1:61;
      then
A25:  Fk2.m1 = F.m1 by FUNCT_1:47;
      m1 in Segm k1 by A23,NAT_1:44;
      then m1 in dom F/\Segm k1 by A24,XBOOLE_0:def 4;
      then m1 in dom Fk1 by RELAT_1:61;
      then
A26:  Fk1.m1 = F.m1 by FUNCT_1:47;
      m1 < len Fk2 by A17,A23,NAT_1:13;
      then f2.m1 = b.(f1.m,Fk1.m1) by A19,A22,A23,A26,A25,NAT_1:13;
      hence thesis by A13,A15,A23;
    end;
    0 in Segm(k1+1) by NAT_1:44;
    then 0 in dom F/\(k1+1) by A7,XBOOLE_0:def 4;
    then 0 in dom Fk2 by RELAT_1:61;
    then
A27: R[0] by A14,A18,A8,FUNCT_1:47;
    for m holds R[m] from NAT_1:sch 2(A27,A21);
    then
A28: dom F/\(k1+1)=dom Fk2 & f1.k=f2.k by A9,RELAT_1:61;
    k1<k1+1 by NAT_1:13;
    then f2.k1 = b.(f2.k,Fk2.k1) by A17,A19;
    hence thesis by A16,A20,A10,A28,FUNCT_1:47;
  end;
A29: P[0]
  proof
    assume that
A30: 0 in dom F and
A31: b is having_a_unity or len (F|(0 qua Ordinal)) >= 1;
A32: F.0 in rng F by A30,FUNCT_1:def 3;
    len F>0 by A30;
    then
A33: len (F|1)=1 by AFINSQ_1:54,NAT_1:14;
    then
A34: (F|1)=<%(F|1).0%> by AFINSQ_1:34;
    0 in Segm 1 by NAT_1:44;
    then
A35: F.0=(F|1).0 by A33,FUNCT_1:47;
    len (F|(0 qua Ordinal))=0;
    then b "**" F|(0 qua Ordinal)=the_unity_wrt b by A31,Def8;
    then b.(b "**" F|(0 qua Ordinal), F.0)=F.0 by A31,A32,SETWISEO:15;
    hence thesis by A32,A34,A35,Th37;
  end;
  for k holds P[k] from NAT_1:sch 2(A29,A4);
  hence thesis by A1,A2,A3,NAT_1:14;
end;
