theorem Th64:
  len G = len p & len G1 <=len p1 implies mlt(p^p1,G^G1) = mlt(p,G )^mlt(p1,G1)
proof
  assume that
A1: len G=len p and
A2: len G1<=len p1;
A3: dom G=dom p by A1,FINSEQ_3:29;
  dom G1=Seg len G1 by FINSEQ_1:def 3;
  then dom G1 c= Seg len p1 by A2,FINSEQ_1:5;
  then
A4: dom G1 c= dom p1 by FINSEQ_1:def 3;
  set M1=mlt(p1,G1);
  set M=mlt(p,G);
  set GG1=G^G1;
  set pp1=p^p1;
  set MM=mlt(pp1,GG1);
A5: dom GG1=Seg len GG1 by FINSEQ_1:def 3;
A6: dom MM=dom GG1 by Def9;
A7: dom M1=dom G1 by Def9;
  then
A8: len M1=len G1 by FINSEQ_3:29;
A9: dom M=dom G by Def9;
  then
A10: len M=len G by FINSEQ_3:29;
  len GG1=len G+len G1 by FINSEQ_1:22;
  then len GG1<=len p+len p1 by A1,A2,XREAL_1:7;
  then dom GG1 c= Seg (len p+len p1) by A5,FINSEQ_1:5;
  then
A11: dom GG1 c= dom pp1 by FINSEQ_1:def 7;
A12: now
    let i such that
A13: 1<=i and
A14: i<=len GG1;
A15: i in dom GG1 by A13,A14,FINSEQ_3:25;
    then
A16: pp1/.i =pp1.i by A11,PARTFUN1:def 6;
A17: MM.i=pp1/.i*GG1.i by A6,A15,Def9;
    now
      per cases by A15,FINSEQ_1:25;
      suppose
A18:    i in dom G;
        then
A19:    GG1.i=G.i by FINSEQ_1:def 7;
A20:    p.i=p/.i by A3,A18,PARTFUN1:def 6;
        pp1.i=p.i by A3,A18,FINSEQ_1:def 7;
        hence MM.i = M.i by A9,A17,A16,A18,A19,A20,Def9
          .= (M^M1).i by A9,A18,FINSEQ_1:def 7;
      end;
      suppose
        ex n st n in dom G1 & i=len G+n;
        then consider n such that
A21:    n in dom G1 and
A22:    i=len G+n;
A23:    GG1.i=G1.n by A21,A22,FINSEQ_1:def 7;
A24:    p1/.n=p1.n by A4,A21,PARTFUN1:def 6;
        pp1.i=p1.n by A1,A4,A21,A22,FINSEQ_1:def 7;
        hence MM.i = M1.n by A7,A17,A16,A21,A23,A24,Def9
          .= (M^M1).i by A7,A10,A21,A22,FINSEQ_1:def 7;
      end;
    end;
    hence MM.i=(M^M1).i;
  end;
A25: len (M^M1)=len M+len M1 by FINSEQ_1:22;
  len MM=len GG1 by A6,FINSEQ_3:29;
  hence thesis by A10,A8,A25,A12,FINSEQ_1:22;
end;
