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;
reserve T,T1,T2,T3 for Tuple of i,D;
reserve T9 for Tuple of i, D9;
reserve S for Tuple of j, D;
reserve S9 for Tuple of j, D9;

theorem Th14:
  F[:](p^<*d*>,d9) = (F[:](p,d9))^<*F.(d,d9)*>
proof
  set pd = p^<*d*>, q = F[:](p,d9);
  set r = F[:](pd,d9), s = q^<*F.(d,d9)*>;
  set i = len p;
A1: len q = i by FINSEQ_2:84;
  len pd = i + 1 by FINSEQ_2:16;
  then
A2: len r = i + 1 by FINSEQ_2:84;
  then
A3: dom r = Seg(i+1) by FINSEQ_1:def 3;
A4: now
    let j be Nat;
    assume
A5: j in dom r;
    now
      per cases by A3,A5,FINSEQ_2:7;
      suppose
A6:     j in Seg i;
        then
A7:     j in dom q by A1,FINSEQ_1:def 3;
        Seg len p = dom p by FINSEQ_1:def 3;
        hence F.(pd.j,d9) = F.(p.j,d9) by A6,FINSEQ_1:def 7
          .= q.j by A7,FUNCOP_1:27
          .= s.j by A7,FINSEQ_1:def 7;
      end;
      suppose
A8:     j = i+1;
        hence F.(pd.j,d9) = F.(d,d9) by FINSEQ_1:42
          .= s.j by A1,A8,FINSEQ_1:42;
      end;
    end;
    hence r.j = s.j by A5,FUNCOP_1:27;
  end;
  len s = len q + 1 by FINSEQ_2:16;
  hence thesis by A1,A2,A4,FINSEQ_2:9;
end;
