let D', E, D be non empty set ; :: thesis: for d being Element of D
for d' being Element of D'
for F being Function of [:D,D':],E
for p being FinSequence of D holds F [:] (p ^ <*d*>),d' = (F [:] p,d') ^ <*(F . d,d')*>

let d be Element of D; :: thesis: for d' being Element of D'
for F being Function of [:D,D':],E
for p being FinSequence of D holds F [:] (p ^ <*d*>),d' = (F [:] p,d') ^ <*(F . d,d')*>

let d' be Element of D'; :: thesis: for F being Function of [:D,D':],E
for p being FinSequence of D holds F [:] (p ^ <*d*>),d' = (F [:] p,d') ^ <*(F . d,d')*>

let F be Function of [:D,D':],E; :: thesis: for p being FinSequence of D holds F [:] (p ^ <*d*>),d' = (F [:] p,d') ^ <*(F . d,d')*>
let p be FinSequence of D; :: thesis: F [:] (p ^ <*d*>),d' = (F [:] p,d') ^ <*(F . d,d')*>
set pd = p ^ <*d*>;
set q = F [:] p,d';
set r = F [:] (p ^ <*d*>),d';
set s = (F [:] p,d') ^ <*(F . d,d')*>;
set i = len p;
A1: len (p ^ <*d*>) = (len p) + 1 by FINSEQ_2:19;
A2: len (F [:] p,d') = len p by FINSEQ_2:98;
A3: len (F [:] (p ^ <*d*>),d') = (len p) + 1 by A1, FINSEQ_2:98;
A4: len ((F [:] p,d') ^ <*(F . d,d')*>) = (len (F [:] p,d')) + 1 by FINSEQ_2:19;
X: dom (F [:] (p ^ <*d*>),d') = Seg ((len p) + 1) by A3, FINSEQ_1:def 3;
now
let j be Nat; :: thesis: ( j in dom (F [:] (p ^ <*d*>),d') implies (F [:] (p ^ <*d*>),d') . j = ((F [:] p,d') ^ <*(F . d,d')*>) . j )
assume A5: j in dom (F [:] (p ^ <*d*>),d') ; :: thesis: (F [:] (p ^ <*d*>),d') . j = ((F [:] p,d') ^ <*(F . d,d')*>) . j
then A6: j in dom (F [:] (p ^ <*d*>),d') ;
now
per cases ( j in Seg (len p) or j = (len p) + 1 ) by A5, FINSEQ_2:8, X;
suppose A7: j in Seg (len p) ; :: thesis: F . ((p ^ <*d*>) . j),d' = ((F [:] p,d') ^ <*(F . d,d')*>) . j
then A8: j in dom (F [:] p,d') by A2, FINSEQ_1:def 3;
Seg (len p) = dom p by FINSEQ_1:def 3;
hence F . ((p ^ <*d*>) . j),d' = F . (p . j),d' by A7, FINSEQ_1:def 7
.= (F [:] p,d') . j by A8, FUNCOP_1:35
.= ((F [:] p,d') ^ <*(F . d,d')*>) . j by A8, FINSEQ_1:def 7 ;
:: thesis: verum
end;
suppose A9: j = (len p) + 1 ; :: thesis: F . ((p ^ <*d*>) . j),d' = ((F [:] p,d') ^ <*(F . d,d')*>) . j
hence F . ((p ^ <*d*>) . j),d' = F . d,d' by FINSEQ_1:59
.= ((F [:] p,d') ^ <*(F . d,d')*>) . j by A2, A9, FINSEQ_1:59 ;
:: thesis: verum
end;
end;
end;
hence (F [:] (p ^ <*d*>),d') . j = ((F [:] p,d') ^ <*(F . d,d')*>) . j by A6, FUNCOP_1:35; :: thesis: verum
end;
hence F [:] (p ^ <*d*>),d' = (F [:] p,d') ^ <*(F . d,d')*> by A2, A3, A4, FINSEQ_2:10; :: thesis: verum