reserve x,y for set;
reserve C,C9,D,D9,E for non empty set;
reserve c for Element of C;
reserve c9 for Element of C9;
reserve d,d1,d2,d3,d4,e for Element of D;
reserve d9 for Element of D9;
reserve i,j for natural Number;
reserve F for Function of [:D,D9:],E;
reserve p,q for FinSequence of D,
  p9,q9 for FinSequence of D9;
reserve f,f9 for Function of C,D,
  h for Function of D,E;

theorem Th8:
  h*(p^<*d*>) = (h*p)^<*h.d*>
proof
  set q = h*(p^<*d*>);
  set r = (h*p)^<*h.d*>;
  set i = len p + 1;
A1: len q = len(p^<*d*>) by FINSEQ_2:33;
A2: len(h*p) = len p by FINSEQ_2:33;
  len(p^<*d*>) = i by FINSEQ_2:16;
  then
A3: dom q = Seg i by A1,FINSEQ_1:def 3;
A4: now
    let j be Nat;
A5: Seg len p = dom p by FINSEQ_1:def 3;
A6: Seg len(h*p) = dom(h*p) by FINSEQ_1:def 3;
    assume
A7: j in dom q;
    now
      per cases by A3,A7,A5,FINSEQ_2:7;
      suppose
A8:     j in dom p;
        hence h.((p^<*d*>).j) = h.(p.j) by FINSEQ_1:def 7
          .= (h*p).j by A2,A5,A6,A8,FUNCT_1:12
          .= r.j by A2,A5,A6,A8,FINSEQ_1:def 7;
      end;
      suppose
A9:     j = i;
        hence h.((p^<*d*>).j) = h.d by FINSEQ_1:42
          .= r.j by A2,A9,FINSEQ_1:42;
      end;
    end;
    hence q.j = r.j by A7,FUNCT_1:12;
  end;
  len r = len(h*p)+1 by FINSEQ_2:16;
  hence thesis by A1,A2,A4,FINSEQ_2:9,16;
end;
