let a, b be non empty XFinSequence of REAL ; :: thesis: for m being Nat st b . 0 is Nat & len a = m & len b = m & a . 0 = b . 0 & b . 0 < m holds
( ex c being XFinSequence of REAL st m vector_add_prg c,a,b & ( for c being non empty XFinSequence of REAL st m vector_add_prg c,a,b holds
XFS2FS* c = () + () ) )

let m be Nat; :: thesis: ( b . 0 is Nat & len a = m & len b = m & a . 0 = b . 0 & b . 0 < m implies ( ex c being XFinSequence of REAL st m vector_add_prg c,a,b & ( for c being non empty XFinSequence of REAL st m vector_add_prg c,a,b holds
XFS2FS* c = () + () ) ) )

assume that
A1: b . 0 is Nat and
A2: len a = m and
A3: len b = m and
A4: a . 0 = b . 0 and
A5: b . 0 < m ; :: thesis: ( ex c being XFinSequence of REAL st m vector_add_prg c,a,b & ( for c being non empty XFinSequence of REAL st m vector_add_prg c,a,b holds
XFS2FS* c = () + () ) )

reconsider k = b . 0 as Nat by A1;
reconsider Fb = XFS2FS* b as FinSequence of REAL ;
reconsider Fa = XFS2FS* a as FinSequence of REAL ;
reconsider c2 = Fa + Fb as FinSequence of REAL ;
A6: b . 0 in Segm m by ;
then A7: len () = b . 0 by ;
A8: len () = b . 0 by ;
then A9: len c2 = len () by ;
then dom c2 = Seg (len ()) by ;
then dom (() + ()) = dom () by FINSEQ_1:def 3;
then Seg (len c2) = dom () by FINSEQ_1:def 3;
then A10: len c2 = k by ;
then consider p being XFinSequence of REAL such that
A11: len p = m and
A12: p is_an_xrep_of c2 by ;
reconsider b0 = b . 0 as Element of REAL by XREAL_0:def 1;
reconsider p2 = Replace (p,0,b0) as XFinSequence of REAL ;
A13: now :: thesis: ( k <> 0 implies for i being Nat st 1 <= i & i <= k holds
p2 . i = (a . i) + (b . i) )
assume k <> 0 ; :: thesis: for i being Nat st 1 <= i & i <= k holds
p2 . i = (a . i) + (b . i)

thus for i being Nat st 1 <= i & i <= k holds
p2 . i = (a . i) + (b . i) :: thesis: verum
proof
let i be Nat; :: thesis: ( 1 <= i & i <= k implies p2 . i = (a . i) + (b . i) )
assume that
A14: 1 <= i and
A15: i <= k ; :: thesis: p2 . i = (a . i) + (b . i)
i in Seg (len c2) by ;
then A16: i in dom c2 by FINSEQ_1:def 3;
( (XFS2FS* a) . i = a . i & () . i = b . i ) by ;
then A17: ((XFS2FS* a) + ()) . i = (a . i) + (b . i) by ;
( i in NAT & p . i = c2 . i ) by ;
hence p2 . i = (a . i) + (b . i) by ; :: thesis: verum
end;
end;
( len p = len p2 & p2 . 0 = b . 0 ) by ;
then m vector_add_prg p2,a,b by A2, A3, A11, A13;
hence ex c being XFinSequence of REAL st m vector_add_prg c,a,b ; :: thesis: for c being non empty XFinSequence of REAL st m vector_add_prg c,a,b holds
XFS2FS* c = () + ()

A18: 0 < len b ;
thus for c being non empty XFinSequence of REAL st m vector_add_prg c,a,b holds
XFS2FS* c = () + () :: thesis: verum
proof
let c be non empty XFinSequence of REAL ; :: thesis: ( m vector_add_prg c,a,b implies XFS2FS* c = () + () )
assume A19: m vector_add_prg c,a,b ; :: thesis: XFS2FS* c = () + ()
then consider n being Integer such that
A20: c . 0 = b . 0 and
A21: n = b . 0 and
A22: ( n <> 0 implies for i being Nat st 1 <= i & i <= n holds
c . i = (a . i) + (b . i) ) ;
A23: ( len c = m & ex n being Integer st
( c . 0 = b . 0 & n = b . 0 & ( n <> 0 implies for i being Nat st 1 <= i & i <= n holds
c . i = (a . i) + (b . i) ) ) ) by A19;
then A24: len () = c . 0 by ;
now :: thesis: ( ( n = 0 & XFS2FS* c = () + () ) or ( n <> 0 & XFS2FS* c = () + () ) )
per cases ( n = 0 or n <> 0 ) ;
case n <> 0 ; :: thesis: XFS2FS* c = () + ()
set p3 = XFS2FS* c;
for k3 being Nat st 1 <= k3 & k3 <= len () holds
() . k3 = c2 . k3
proof
let k3 be Nat; :: thesis: ( 1 <= k3 & k3 <= len () implies () . k3 = c2 . k3 )
assume that
A25: 1 <= k3 and
A26: k3 <= len () ; :: thesis: () . k3 = c2 . k3
A27: c . 0 in len c by ;
then A28: k3 <= n by ;
then A29: ( a . k3 = () . k3 & b . k3 = () . k3 ) by ;
k3 in Seg (len c2) by ;
then A30: k3 in dom c2 by FINSEQ_1:def 3;
len () = n by ;
then () . k3 = c . k3 by
.= (a . k3) + (b . k3) by ;
hence (XFS2FS* c) . k3 = c2 . k3 by ; :: thesis: verum
end;
hence XFS2FS* c = () + () by ; :: thesis: verum
end;
end;
end;
hence XFS2FS* c = () + () ; :: thesis: verum
end;