 reserve Omega for non empty set;
 reserve r for Real;
 reserve Sigma for SigmaField of Omega;
 reserve P for Probability of Sigma;

theorem Th11:
  for DX1,DX2 be non empty set, F1 be Function of DX1,REAL,
  F2 be Function of DX2,REAL,
  G be Function of [:DX1,DX2:], REAL,
  Y1 be non empty finite Subset of DX1 holds
  for p1 being FinSequence of DX1 st
  p1 is one-to-one & rng p1 = Y1 holds
  for p2 being FinSequence of DX2,
  p3 being FinSequence of [:DX1,DX2:],
  Y2 be non empty finite Subset of DX2,
  Y3 be finite Subset of [:DX1,DX2:] st
  p2 is one-to-one & rng p2 = Y2 &
  p3 is one-to-one & rng p3 = Y3 & Y3= [:Y1,Y2:] &
  for x,y be set st x in Y1 & y in Y2
  holds G.(x,y)= (F1.x)*(F2.y) holds
  Sum(Func_Seq(G,p3))= Sum(Func_Seq(F1,p1))*Sum(Func_Seq(F2,p2))
  proof
    let DX1,DX2 be non empty set,
    F1 be Function of DX1,REAL,
    F2 be Function of DX2,REAL,
    G be Function of [:DX1,DX2:],REAL,
    Y1 be non empty finite Subset of DX1;
    let p1 be FinSequence of DX1;
    assume
    A1: p1 is one-to-one & rng p1 = Y1;
    defpred F[Nat] means for p2 being FinSequence of DX2,
    p3 being FinSequence of [:DX1,DX2:],
    Y2 be non empty finite Subset of DX2,
    Y3 be finite Subset of [:DX1,DX2:] st
    len p2=$1 & p2 is one-to-one & rng p2 = Y2 &
    p3 is one-to-one & rng p3 = Y3 & Y3= [:Y1,Y2:] &
    for x,y be set st x in Y1 & y in Y2 holds G.(x,y)= (F1.x)*(F2.y)
    holds
    Sum(Func_Seq(G,p3))= Sum(Func_Seq(F1,p1))*Sum(Func_Seq(F2,p2));
    consider erp1 be object such that
    A2: erp1 in (rng p1) by A1,XBOOLE_0:def 1;
    A3:ex x be object st x in dom p1 & erp1 = p1.x by A2,FUNCT_1:def 3;
    A4: F[0]
    proof
      let p2 be FinSequence of DX2,
      p3 be FinSequence of [:DX1,DX2:],
      Y2 be non empty finite Subset of DX2,
      Y3 be finite Subset of [:DX1,DX2:];
      assume
      A5: len p2=0 & p2 is one-to-one & rng p2 = Y2 &
      p3 is one-to-one & rng p3 = Y3 &
      Y3= [:Y1,Y2:] & for x,y be set st x in Y1 & y in Y2
      holds G.(x,y)= (F1.x)*(F2.y);
      then p2 = {};
      hence Sum(Func_Seq(G,p3))
      = Sum(Func_Seq(F1,p1))*Sum(Func_Seq(F2,p2)) by A5;
    end;
    A6: F[1]
    proof
      let p2 be FinSequence of DX2,
      p3 be FinSequence of [:DX1,DX2:],
      Y2 be non empty finite Subset of DX2,
      Y3 be finite Subset of [:DX1,DX2:];
      assume
      A7: len p2=1 & p2 is one-to-one & rng p2 = Y2 &
      p3 is one-to-one & rng p3 = Y3 &
      Y3= [:Y1,Y2:] &
      for x,y be set st x in Y1 & y in Y2
      holds G.(x,y)= (F1.x)*(F2.y);
      then A8:p2=<*(p2.1)*> by FINSEQ_1:40;
      then A9:Y2={p2.1} by A7,FINSEQ_1:38;
      set w = p2.1;
      set z = (F2*p2).1;
      dom F2 = DX2 by FUNCT_2:def 1;
      then rng p2 c= dom F2;
      then dom (F2*p2) =dom p2 by RELAT_1:27;
      then A10:dom (F2*p2) =Seg 1 by A8,FINSEQ_1:38;
      then Func_Seq(F2,p2)=<*z*> by Lm6; then
      A11: Sum(Func_Seq(F2,p2)) = z by RVSUM_1:73;
      A12: Y3= [:Y1,{w}:] by A7,A8,FINSEQ_1:38;
      A13:len p1 =card(Y1) by A1,FINSEQ_4:62;
      A14: len p3 = card (rng p3) by A7,FINSEQ_4:62
      .=card(Y1) by A12,A7,CARD_1:69;
      A15: dom p1=Seg (card(Y1)) by A13,FINSEQ_1:def 3
      .= dom p3 by A14,FINSEQ_1:def 3;
      deffunc Q33F(Nat) = [p1.$1,w ];
      consider q3 be FinSequence such that
      A16: len q3 = len p3 and
      A17: for k be Nat st k in dom q3 holds q3.k=Q33F(k) from FINSEQ_1:sch 2;
      A18: dom q3 = Seg(len p3) by A16,FINSEQ_1:def 3;
      A19: dom p3 = Seg(len p3) by FINSEQ_1:def 3;
      now
        let k be Nat;
        assume
        A20: k in dom q3; then
        A21: p1.k in Y1 by A1,A18,A19,A15,FUNCT_1:3;
        p2.1 in Y2 by A9,TARSKI:def 1;
        then [ p1.k,w ] in [:Y1,Y2:] by A21,ZFMISC_1:87;
        hence q3.k in [:Y1,Y2:] by A20,A17;
      end;
      then
      q3 is FinSequence of [:Y1,Y2:] by FINSEQ_2:12; then
      A22: rng q3 c= [:Y1,Y2:] by FINSEQ_1:def 4;
      [:Y1,Y2:] c= [:DX1,DX2:] by ZFMISC_1:96;
      then
      rng q3 c= [:DX1,DX2:] by A22;
      then
      reconsider q3 as FinSequence of [:DX1,DX2:] by FINSEQ_1:def 4;
      now let x1,x2 be object;
        assume A23:x1 in dom q3 & x2 in dom q3 & q3.x1=q3.x2;
        then
        A24: x1 in dom p1 & x2 in dom p1 by A16,A19,A15,FINSEQ_1:def 3;
        reconsider n1=x1,n2=x2 as Element of NAT by A23;
        [p1.n1,w] = q3.n1 by A17,A23
        .=[p1.n2,w] by A17,A23; then
        p1.n1=p1.n2 by XTUPLE_0:1;
        hence x1=x2 by A1,A24,FUNCT_1:def 4;
      end;
      then
      A25:q3 is one-to-one by FUNCT_1:def 4;
      A26: rng q3 = [:Y1,Y2:]
      proof
        now let z be object;
          assume z in [:Y1,Y2:];
          then consider y1,y2 be object such that
          A27: y1 in Y1 & y2 in Y2 & z=[y1,y2] by ZFMISC_1:def 2;
          consider n1 be object such that
          A28: n1 in dom p1 & y1=p1.n1 by A1,A27,FUNCT_1:def 3;
          reconsider n1 as Element of NAT by A28;
          A29:n1 in dom q3 by A28,A16,A19,A15,FINSEQ_1:def 3;
          y2=w by A9,A27,TARSKI:def 1;
          then q3.n1=z by A27,A28,A17,A29;
          hence z in rng q3 by A29,FUNCT_1:3;
        end; then
        [:Y1,Y2:] c= rng q3;
        hence thesis by A22,XBOOLE_0:def 10;
      end;
      then consider P being Permutation of dom p3 such that
      A30:
      q3 = p3*P & dom P = dom p3 & rng P = dom p3 by A25,A7,BHSP_5:1;
      A31: Func_Seq(G,q3) = Func_Seq(G,p3)*P by A30,RELAT_1:36;
      dom G = [:DX1,DX2:] by FUNCT_2:def 1;then
      rng p3 c= dom G; then
      dom Func_Seq(G,p3) = dom p3 by RELAT_1:27;
      then
A32: Sum(Func_Seq(G,q3)) = Sum(Func_Seq(G,p3)) by A31,FINSOP_1:7;
      A33: dom G =[:DX1,DX2:] by FUNCT_2:def 1;
      dom F1=DX1 by FUNCT_2:def 1;
      then
      A34: dom(F1*p1) = dom p1 by A1,RELAT_1:27
      .=Seg (len p1) by FINSEQ_1:def 3;
      A35: dom (G*q3) = dom q3 by A33,A26,RELAT_1:27
      .=Seg (len p1) by A13,A14,A16,FINSEQ_1:def 3;
      then
      A36: dom (G*q3) = dom (z (#)(F1*p1) ) by A34,VALUED_1:def 5;
      now let x be object;
        assume A37: x in dom (G*q3);
        then reconsider nx=x as Element of NAT;
        dom (G*q3) = dom q3 by A33,A26,RELAT_1:27
        .=Seg (len q3) by FINSEQ_1:def 3; then
        A38: nx in dom q3 by A37,FINSEQ_1:def 3;
        1 <= nx & nx <= len p1 by A37,A35,FINSEQ_1:1; then
        A39:p1/.nx=p1.nx by FINSEQ_4:15;
        A40:
        q3.nx = [ p1.nx, w ] by A17,A38;
        A41:nx in dom p1 by A37,A35,FINSEQ_1:def 3; then
        A42: q3.nx = [ p1/.nx, w ] by A40,PARTFUN1:def 6;
        p1.nx in Y1 by A41,A1,FUNCT_1:3; then
        A43:
        p1/.nx in Y1 & w in Y2 by A41,A9,PARTFUN1:def 6,TARSKI:def 1;
        1 in dom(F2*p2) by A10; then
        A44: z =F2.w by FUNCT_1:12;
        thus (G*q3).x =G.(p1/.nx,w) by A42,A37,FUNCT_1:12
        .=F1.(p1/.nx) * z by A44,A7,A43
        .= ((F1*p1).nx) *z by A39,A35,A34,A37,FUNCT_1:12
        .= (z (#)(F1*p1)).x by VALUED_1:6;
      end; then
      Func_Seq(G,q3) = z * (Func_Seq(F1,p1)) by A36,FUNCT_1:2;
      hence thesis by A11,A32,RVSUM_1:87;
    end;
    A45: for n be Nat st F[n] holds F[n+1]
    proof
      let n be Nat;
      assume A46: F[n];
      now per cases;
        case n=0;
          hence F[n+1] by A6;
        end;
        case A47:n>0;
          now let p2 be FinSequence of DX2,
            p3 be FinSequence of [:DX1,DX2:],
            Y2 be non empty finite Subset of DX2,
            Y3 be finite Subset of [:DX1,DX2:];
            assume
            A48: len p2=n+1 & p2 is one-to-one & rng p2 = Y2 &
            p3 is one-to-one & rng p3 = Y3 &
            Y3= [:Y1,Y2:] &
            for x,y be set st x in Y1 & y in Y2
            holds G.(x,y)= (F1.x)*(F2.y);
            set lb = len p1;
            set la = len p2;
            deffunc FG1(Nat)
            = [ p1.(($1-'1) mod lb + 1), p2.(($1-'1) div lb + 1) ];
            consider FG be FinSequence such that
            A49: len FG = la*lb and
            A50: for k be Nat st k in dom FG holds FG.k=FG1(k)
            from FINSEQ_1:sch 2;
            A51: dom FG = Seg(la*lb) by A49,FINSEQ_1:def 3;
            A52: dom p1= Seg lb by FINSEQ_1:def 3;
            A53: now
            reconsider lap=la,lbp=lb as Nat;
            let k be Nat;
            set i=(k-'1) div lb + 1;
            set j=(k-'1) mod lb + 1;
            assume k in dom FG; then
            A54: k in Seg (la*lb) by A49,FINSEQ_1:def 3; then
            A55: k <= la*lb by FINSEQ_1:1;
            then (k -' 1) <= (la*lb -' 1) by NAT_D:42;
            then
            A56: (k -' 1) div lb <= (la*lb -' 1) div lb by NAT_2:24;
            1 <= k by A54,FINSEQ_1:1;
            then
            A57: lbp divides (lap*lbp) & 1 <= la*lb by A55,NAT_D:def 3
,XXREAL_0:2;
            A58: lb <> 0 by A54;
            then lb >= (0 qua Nat)+1 by NAT_1:13;
            then ((lap*lbp) -' 1) div lbp = ((lap*lbp) div lbp) - 1 by A57,
NAT_2:15;
            then
            A59: (k -' 1) div lb + 1 <= la*lb div lb by A56,XREAL_1:19;
            reconsider la,lb as Nat;
            i >= (0 qua Nat)+1 & i <= la by A58,A59,NAT_D:18,XREAL_1:6;
            then i in Seg la;
            hence i in dom p2 by FINSEQ_1:def 3;
            (k -' 1) mod lb < lb by A58,NAT_D:1;
            then j >= (0 qua Nat)+1 & j <= lb by NAT_1:13;
            then j in Seg lb;
            hence j in dom p1 by FINSEQ_1:def 3;
          end;
          now
            let k be Nat;
            set i=(k-'1) div lb + 1;
            set j=(k-'1) mod lb + 1;
            assume
            A60: k in dom FG;
            then
            A61: p2.i in rng p2 by A53,FUNCT_1:3;
             p1.j in rng p1 by A53,A60,FUNCT_1:3;
            then [ p1.j,p2.i ] in [:DX1,DX2:] by A61,ZFMISC_1:87;
            hence FG.k in [:DX1,DX2:] by A50,A60;
          end;
          then reconsider q3=FG as FinSequence of [:DX1,DX2:] by FINSEQ_2:12;
          A62:len p1 =card(Y1) by A1,FINSEQ_4:62;
          now let x1,x2 be object;
            assume A63:x1 in dom q3 & x2 in dom q3 & q3.x1=q3.x2;
            then
            A64:x1 in Seg (len q3) & x2 in Seg (len q3) by FINSEQ_1:def 3;
            reconsider n1=x1,n2=x2 as Element of NAT by A63;
            A65: q3.n1=[ p1.((n1-'1) mod lb + 1), p2.((n1-'1) div lb + 1) ]
            by A50,A63;
            A66: q3.n2=[ p1.((n2-'1) mod lb + 1), p2.((n2-'1) div lb + 1) ]
            by A50,A63;
            then A67:p1.((n1-'1) mod lb + 1) = p1.((n2-'1) mod lb + 1)
            by A63,A65,XTUPLE_0:1;
            (n1-'1) mod lb + 1 in dom p1 &
            (n2-'1) mod lb + 1 in dom p1 by A63,A53; then
            A68: (n1-'1) mod lb + 1 = (n2-'1) mod lb + 1
            by A1,A67,FUNCT_1:def 4;
            A69:p2.((n1-'1) div lb + 1) = p2.((n2-'1) div lb + 1)
            by A63,A65,A66,XTUPLE_0:1;
            (n1-'1) div lb + 1 in dom p2 &
            (n2-'1) div lb + 1 in dom p2 by A63,A53; then
            A70: (n1-'1) div lb + 1 = (n2-'1) div lb + 1
            by A48,A69,FUNCT_1:def 4;
            n1=n2
            proof
              A71: 1<=n1 & n1 <=len q3 by A64,FINSEQ_1:1;
              A72: 1<=n2 & n2 <=len q3 by A64,FINSEQ_1:1;
              0 < lb by A52,A3;
              then A73:
              (n1-'1) = lb*((n1-'1) div lb) + ((n1-'1) mod lb)&
              (n2-'1) = lb*((n1-'1) div lb) + ((n1-'1) mod lb)
              by A68,A70,NAT_D:2;
              A74: n1-'1 +1= n1 +1 -'1 by A71,NAT_D:38
              .= n1 by NAT_D:34;
              n2-'1 +1= n2 +1 -'1 by A72,NAT_D:38
              .= n2 by NAT_D:34;
              hence thesis by A73,A74;
            end;
            hence x1=x2;
          end;
          then
          A75:q3 is one-to-one by FUNCT_1:def 4;
          A76: rng q3 = [:Y1,Y2:]
          proof
            now let z be object;
              assume z in [:Y1,Y2:]; then
              consider y1,y2 be object such that
              A77: y1 in Y1 & y2 in Y2 & z=[y1,y2] by ZFMISC_1:def 2;
              consider n1 be object such that
              A78: n1 in dom p1 & y1=p1.n1 by A1,A77,FUNCT_1:def 3;
              A79: n1 in Seg (len p1) by A78,FINSEQ_1:def 3;
              reconsider n1 as Element of NAT by A78;
              consider n2 be object such that
              A80: n2 in dom p2 & y2=p2.n2 by A48,A77,FUNCT_1:def 3;
              A81: n2 in Seg (len p2) by A80,FINSEQ_1:def 3;
              reconsider n2 as Element of NAT by A80;
              A82: 1<=n1 & n1 <=len p1 by A79,FINSEQ_1:1;
              A83: 1<=n2 & n2 <=len p2 by A81,FINSEQ_1:1;
              reconsider n11 = n1-1 as Element of NAT by A82,INT_1:5;
              reconsider n21 = n2-1 as Element of NAT by A83,INT_1:5;
              set k1=n11 + lb*n21;
              A84: n11 <= len p1 -1 by A82,XREAL_1:9;
              len p1 -1 < len p1 by XREAL_1:44;
              then
              A85: n11 < len p1 by A84,XXREAL_0:2;
              A86: k1 div lb = n11 div lb + n21 by A62,NAT_D:61
              .= (0 qua Nat) + n21 by A85,NAT_D:27
              .=n21;
              A87: k1 mod lb = n11 mod lb by NAT_D:61
              .=n11 by A85,NAT_D:24;
              set k=k1+1;
              A88:1 <=k by NAT_1:14;
              A89:k-'1 =k-1 by NAT_1:14,XREAL_1:233
              .=k1;
              then A90: n1=(k-'1) mod lb + 1 by A87;
              A91: n2=(k-'1) div lb + 1 by A89,A86;
              A92: n11+1 + lb*n21 <= len p1 + lb*n21 by A82,XREAL_1:6;
               n21 <= len p2 -1 by A83,XREAL_1:9;
              then lb*n21 <= lb*(len p2 -1) by XREAL_1:64;
              then
              len p1 + lb*n21 <= len p1 +lb*(len p2 -1) by XREAL_1:6;
              then
               k<= lb*la by A92,XXREAL_0:2;
              then k in Seg (len FG) by A49,A88; then
              A93:k in dom FG by FINSEQ_1:def 3;
              then q3.k =z by A77,A78,A80,A50,A90,A91;
              hence z in rng q3 by A93,FUNCT_1:3;
            end;
            then
            A94: [:Y1,Y2:] c= rng q3;
            now let z be object;
              assume z in rng q3;
              then consider n1 be object such that
              A95: n1 in dom q3 & z=q3.n1 by FUNCT_1:def 3;
              reconsider n1 as Element of NAT by A95;
              A96:z= [ p1.((n1-'1) mod lb + 1), p2.((n1-'1) div lb + 1) ]
              by A95,A50;
              A97: p1.((n1-'1) mod lb + 1) in Y1 by A1,A95,A53,FUNCT_1:3;
              (n1-'1) div lb + 1 in dom p2 by A95,A53;
              then
              p2.((n1-'1) div lb + 1) in Y2 by A48,FUNCT_1:3;
              hence z in [:Y1,Y2:] by A96,A97,ZFMISC_1:def 2;
            end; then
            rng q3 c= [:Y1,Y2:];
            hence thesis by A94,XBOOLE_0:def 10;
          end;
          set q30=q3|(lb*n);
           lb*n <=lb*la by A48,NAT_1:11,XREAL_1:64;
          then A98: len q30=lb*n by A49,FINSEQ_1:17;
          set q31=q3 /^ (lb*n);
          reconsider q30 as FinSequence of [:DX1,DX2:];
          reconsider q31 as FinSequence of [:DX1,DX2:];
          A99: q3=q30^q31 by RFINSEQ:8;
          set p20=p2|n;
          reconsider p20 as FinSequence of DX2;
          A100:len p20=n by A48,FINSEQ_3:53;
          then
          A101:dom p20 is non empty by A47,FINSEQ_1:def 3;
          A102: p20 is one-to-one by A48,FUNCT_1:52;
          reconsider Y20 = rng p20
          as non empty finite Subset of DX2 by A101,RELAT_1:42;
          A103: q30 is one-to-one by A75,FUNCT_1:52;
          A104: rng q30 = [:Y1,Y20:]
          proof
            now let z be object;
              assume z in [:Y1,Y20:];
              then
              consider y1,y2 be object such that
              A105: y1 in Y1 & y2 in Y20 & z=[y1,y2] by ZFMISC_1:def 2;
              consider n1 be object such that
              A106: n1 in dom p1 & y1=p1.n1 by A1,A105,FUNCT_1:def 3;
              A107:n1 in Seg (len p1) by A106,FINSEQ_1:def 3;
              reconsider n1 as Element of NAT by A106;
              consider n2 be object such that
              A108: n2 in dom p20 & y2=p20.n2 by A105,FUNCT_1:def 3;
              A109:n2 in Seg (len p20) by A108,FINSEQ_1:def 3;
              reconsider n2 as Element of NAT by A108;
              A110: y2=p2.n2 by A108,FUNCT_1:47;
              A111: 1<=n1 & n1 <=len p1 by A107,FINSEQ_1:1;
              A112: 1<=n2 & n2 <=len p20 by A109,FINSEQ_1:1;
              reconsider n11 = n1-1 as Element of NAT by A111,INT_1:5;
              reconsider n21 = n2-1 as Element of NAT by A112,INT_1:5;
              set k1=n11 + lb*n21;
              A113: n11 <= len p1 -1 by A111,XREAL_1:9;
              len p1 -1 < len p1 by XREAL_1:44;
              then
              A114: n11 < len p1 by A113,XXREAL_0:2;
              A115: k1 div lb = n11 div lb + n21 by A62,NAT_D:61
              .= (0 qua Nat) + n21 by A114,NAT_D:27
              .=n21;
              A116: k1 mod lb = n11 mod lb by NAT_D:61
              .=n11 by A114,NAT_D:24;
              set k=k1+1;
              A117:1 <=k by NAT_1:14;
              A118:k-'1 =k-1 by NAT_1:14,XREAL_1:233
              .=k1;
              then A119: n1=(k-'1) mod lb + 1 by A116;
              A120: n2=(k-'1) div lb + 1 by A118,A115;
              A121:
              n11+1 + lb*n21 <= len p1 + lb*n21 by A111,XREAL_1:6;
               n21 <= len p20 -1 by A112,XREAL_1:9;
              then lb*n21 <= lb*(len p20 -1) by XREAL_1:64;
              then
              len p1 + lb*n21 <= len p1 +lb*(len p20 -1) by XREAL_1:6;
              then
               k<= lb*n by A121,A100,XXREAL_0:2;
              then k in Seg (len q30) by A117,A98;
              then
              A122:k in dom q30 by FINSEQ_1:def 3;
              then
              A123: k in dom q3 by RELAT_1:57;
              q30.k =q3.k by A122,FUNCT_1:47
              .=z by A105,A106,A110,A50,A123,A119,A120;
              hence z in rng q30 by A122,FUNCT_1:3;
            end;
            then
            A124: [:Y1,Y20:] c= rng q30;
            now let z be object;
              assume z in rng q30; then
              consider n1 be object such that
              A125: n1 in dom q30 & z=q30.n1 by FUNCT_1:def 3;
              A126:n1 in Seg (len q30) by A125,FINSEQ_1:def 3;
              reconsider n1 as Element of NAT by A125;
              A127: n1 in dom q3 by A125,RELAT_1:57;
              z=q3.n1 by A125,FUNCT_1:47; then
              A128:z= [ p1.((n1-'1) mod lb + 1), p2.((n1-'1) div lb + 1) ]
              by A50,A127;
              A129: p1.((n1-'1) mod lb + 1) in Y1 by A1,A127,A53,FUNCT_1:3;
              A130: 1<=n1 & n1 <=lb*n by A126,A98,FINSEQ_1:1;
              A131: lb divides lb*n by INT_1:def 3;
              A132: 1 <=lb by A62,NAT_1:14;
              1 <=lb*n by A62,A47,NAT_1:14; then
              A133: ( (lb*n)-' 1) div lb =(lb*n) div lb -1
              by A131,A132,NAT_2:15
              .=n-1 by A62,NAT_D:18;
              n1-'1 <= (lb*n)-' 1 by A130,NAT_D:42; then
              (n1-'1) div lb <= ( (lb*n)-' 1 ) div lb by NAT_2:24; then
              A134: (n1-'1) div lb + 1 <= ( n-1) + 1 by A133,XREAL_1:6;
              (n1-'1) div lb + 1 in dom p2 by A127,A53; then
              (n1-'1) div lb + 1 in Seg len p2 by FINSEQ_1:def 3; then
              1<=(n1-'1) div lb + 1 & (n1-'1) div lb + 1 <=n
              by A134,FINSEQ_1:1; then
              A135:(n1-'1) div lb + 1 in Seg n;
              (n1-'1) div lb + 1 in dom p2 by A127,A53; then
              A136:(n1-'1) div lb + 1 in dom p20 by A135,RELAT_1:57; then
              p20.((n1-'1) div lb + 1) in Y20 by FUNCT_1:3; then
              p2.((n1-'1) div lb + 1) in Y20 by A136,FUNCT_1:47;
              hence z in [:Y1,Y20:] by A128,A129,ZFMISC_1:def 2;
            end; then
            rng q30 c= [:Y1,Y20:];
            hence thesis by A124,XBOOLE_0:def 10;
          end;
          now let x,y be set;
          assume A137:x in Y1 & y in Y20;
          Y20 c= rng p2 by RELAT_1:70;
          hence G.(x,y)= (F1.x)*(F2.y) by A48,A137;
        end;
        then A138: Sum(Func_Seq(G,q30))
        = Sum(Func_Seq(F1,p1))*Sum(Func_Seq(F2,p20)) by A46,A102,A103,A104,A100
;
        dom F1=DX1 by FUNCT_2:def 1; then
        A139: dom(F1*p1) = dom p1 by A1,RELAT_1:27
        .=Seg (len p1) by FINSEQ_1:def 3;
        A140: dom G = [:DX1,DX2:] by FUNCT_2:def 1;
        len q3 = n*lb + lb by A48,A49; then
        A141: n*lb <= len q3 by NAT_1:11; then
        A142: len q31 = (len q3) - (lb*n) by RFINSEQ:def 1
        .= lb by A48,A49;
        A143: [:Y1,Y2:] c= [:DX1,DX2:] & rng q31 c= rng q3
        by A48,FINSEQ_5:33; then
        A144: dom (G*q31) = dom q31 by A140,RELAT_1:27
        .=Seg (len p1) by A142,FINSEQ_1:def 3; then
        A145: dom (G*q31) = dom (((Func_Seq(F2,p2))/.(n+1)) (#)(F1*p1))
        by A139,VALUED_1:def 5;
        now let x be object;
          assume A146: x in dom (G*q31);
          then reconsider nx=x as Element of NAT;
          A147:dom (G*q31) = dom q31 by A140,A143,RELAT_1:27
          .=Seg (len q31) by FINSEQ_1:def 3;
          A148: 1 <= nx & nx <= len p1 by A146,A144,FINSEQ_1:1; then
          A149:p1/.nx=p1.nx by FINSEQ_4:15;
          A150:1 <= n+1 & n+1 <= len p2 by A48,XREAL_1:31;
          then A151:n+1 in Seg (len p2);
          then A152:n+1 in dom p2 by FINSEQ_1:def 3;
          A153:p2/.(n+1)= p2.(n+1) by A150,FINSEQ_4:15;
          dom F2 = DX2 by FUNCT_2:def 1;
          then rng p2 c= dom F2;
          then
          A154: n+1 in dom (F2*p2) by A152,RELAT_1:27;
          A155:F2.(p2/.(n + 1))= (F2*p2).(n+1) by A152,A153,FUNCT_1:13
          .= ((Func_Seq(F2,p2))/.(n+1)) by A154,PARTFUN1:def 6;
          A156: 1 <= nx & nx <= lb by A147,A146,A142,FINSEQ_1:1;
          then
          A157:nx+lb*n <= lb + lb*n by XREAL_1:6;
          A158:nx <= nx+lb*n by NAT_1:11;
          then 1<= nx+lb*n & nx+lb*n <= lb*la
          by A157,A48,A156,XXREAL_0:2; then
          nx+lb*n in dom FG by A51; then
          A159:q3.(nx+lb*n) = [ p1.(((nx+lb*n)-'1) mod lb + 1),
          p2.(((nx+lb*n)-'1) div lb + 1) ] by A50;
          A160:nx in dom q31 by A147,A146,FINSEQ_1:def 3;
          A161:(nx+lb*n)-'1 =(nx+lb*n)-1
          by A158,A156,XREAL_1:233,XXREAL_0:2
          .=(nx-1) +lb*n
          .=(nx-'1) +lb*n by A148,XREAL_1:233;
          nx-1 < nx by XREAL_1:44;
          then
          nx-1 < lb by A156,XXREAL_0:2;
          then
          A162: (nx-'1) < lb by A148,XREAL_1:233;
          A163:((nx-'1) +lb*n) div lb +1
          = (nx-'1) div lb + n +1 by A62,NAT_D:61
          .= (0 qua Nat) + n+1 by A162,NAT_D:27;
          A164:((nx-'1) +lb*n) mod lb +1 = (nx-'1) mod lb +1 by NAT_D:61
          .=(nx-'1) +1 by A162,NAT_D:24
          .=nx-1 +1 by A148,XREAL_1:233;
          A165:nx in dom p1 & (n + 1) in dom p2 by A146,A144,A151,
FINSEQ_1:def 3;
          then
          p1/.nx = p1.nx & p2.(n + 1)= p2/.(n + 1) by PARTFUN1:def 6;
          then
          A166: q31.nx = [ p1/.nx, p2/.(n + 1) ]
          by A160,A159,A141,A161,A163,A164,RFINSEQ:def 1;
          p1.nx in Y1 & p2.(n + 1) in Y2 by A165,A48,A1,FUNCT_1:3; then
          A167: p1/.nx in Y1 & p2/.(n + 1) in Y2 by A165,PARTFUN1:def 6;
          thus (G*q31).x =G.(p1/.nx, p2/.(n + 1)) by A166,A146,FUNCT_1:12
          .=F1.(p1/.nx ) * F2.(p2/.(n + 1)) by A48,A167
          .= ((F1*p1).nx) *((Func_Seq(F2,p2))/.(n+1))
          by A155,A149,A139,A146,A144,FUNCT_1:12
          .= (((Func_Seq(F2,p2))/.(n+1)) (#)(F1*p1) ).x by VALUED_1:6;
        end;
        then Func_Seq(G,q31) =
        ((Func_Seq(F2,p2))/.(n+1)) * (Func_Seq(F1,p1)) by A145,FUNCT_1:2;
        then
        A168: Sum(Func_Seq(G,q31)) = Sum(Func_Seq(F1,p1))
        *((Func_Seq(F2,p2))/.(n+1)) by RVSUM_1:87;
        A169: Func_Seq(G,q3) = Func_Seq(G,q30) ^ Func_Seq(G,q31) by A99,Lm5;
        dom F2 = DX2 by FUNCT_2:def 1;
        then rng p2 c= dom F2;
        then dom (F2*p2) =dom p2 by RELAT_1:27;
        then dom (Func_Seq(F2,p2)) = Seg(len p2) by FINSEQ_1:def 3;
        then
        A170: len (Func_Seq(F2,p2)) = n+1 by A48,FINSEQ_1:def 3;
         (Func_Seq(F2,p2)) | n = Func_Seq(F2,p20) by RELAT_1:83;
        then A171: Func_Seq(F2,p2) = (Func_Seq(F2,p20))
        ^ <* (Func_Seq(F2,p2))/.(n+1) *> by A170,FINSEQ_5:21;
        A172: Sum(Func_Seq(G,q3))
        =Sum(Func_Seq(G,q30)) + Sum(Func_Seq(G,q31)) by A169,RVSUM_1:75
        .= Sum(Func_Seq(F1,p1))*(Sum(Func_Seq(F2,p20))
        + (Func_Seq(F2,p2))/.(n+1) ) by A138,A168
        .= Sum(Func_Seq(F1,p1))* Sum(Func_Seq(F2,p2)) by A171,RVSUM_1:74;
        consider P being Permutation of dom p3 such that
        A173:
        q3 = p3*P & dom P = dom p3 & rng P = dom p3 by A75,A76,A48,BHSP_5:1;
        A174: Func_Seq(G,q3) = Func_Seq(G,p3)*P by A173,RELAT_1:36;
        dom G = [:DX1,DX2:] by FUNCT_2:def 1;then
        rng p3 c= dom G;then
        dom Func_Seq(G,p3) = dom p3 by RELAT_1:27;
        hence
Sum(Func_Seq(G,p3)) = Sum(Func_Seq(F1,p1))* Sum(Func_Seq(F2,p2))
        by A172,A174,FINSOP_1:7;
      end;
      hence F[n+1];
    end;
  end;
  hence F[n+1];
end;
A175: for n be Nat holds F[n] from NAT_1:sch 2(A4,A45);
now let p2 be FinSequence of DX2,
  p3 be FinSequence of [:DX1,DX2:],
  Y2 be non empty finite Subset of DX2,
  Y3 be finite Subset of [:DX1,DX2:];
  assume A176:
  p2 is one-to-one & rng p2 = Y2 & p3 is one-to-one & rng p3 = Y3 &
  Y3= [:Y1,Y2:] &
  for x,y be set st x in Y1 & y in Y2 holds G.(x,y)= (F1.x)*(F2.y);
  len p2 is Element of NAT;
  hence Sum(Func_Seq(G,p3))= Sum(Func_Seq(F1,p1))*Sum(Func_Seq(F2,p2))
  by A175,A176;
end;
hence thesis;
end;
