let V be RealLinearSpace; :: thesis: for A being Subset of V
for x being set
for g1, h1 being FinSequence of V
for a1 being integer-valued FinSequence st x = Sum h1 & rng g1 c= Z_Lin A & len g1 = len h1 & len g1 = len a1 & ( for i being Nat st i in Seg (len g1) holds
h1 /. i = (a1 . i) * (g1 /. i) ) holds
x in Z_Lin A

let A be Subset of V; :: thesis: for x being set
for g1, h1 being FinSequence of V
for a1 being integer-valued FinSequence st x = Sum h1 & rng g1 c= Z_Lin A & len g1 = len h1 & len g1 = len a1 & ( for i being Nat st i in Seg (len g1) holds
h1 /. i = (a1 . i) * (g1 /. i) ) holds
x in Z_Lin A

reconsider z0 = 0 as Element of INT by NUMBERS:17, TARSKI:def 3;
reconsider z1 = 1 as Element of INT by NUMBERS:17, TARSKI:def 3;
defpred S1[ Nat] means for x being set
for g1, h1 being FinSequence of V
for a1 being integer-valued FinSequence st x = Sum h1 & rng g1 c= Z_Lin A & len g1 = $1 & len g1 = len h1 & len g1 = len a1 & ( for i being Nat st i in Seg (len g1) holds
h1 /. i = (a1 . i) * (g1 /. i) ) holds
x in Z_Lin A;
P0: S1[ 0 ]
proof
let x be set ; :: thesis: for g1, h1 being FinSequence of V
for a1 being integer-valued FinSequence st x = Sum h1 & rng g1 c= Z_Lin A & len g1 = 0 & len g1 = len h1 & len g1 = len a1 & ( for i being Nat st i in Seg (len g1) holds
h1 /. i = (a1 . i) * (g1 /. i) ) holds
x in Z_Lin A

let g1, h1 be FinSequence of V; :: thesis: for a1 being integer-valued FinSequence st x = Sum h1 & rng g1 c= Z_Lin A & len g1 = 0 & len g1 = len h1 & len g1 = len a1 & ( for i being Nat st i in Seg (len g1) holds
h1 /. i = (a1 . i) * (g1 /. i) ) holds
x in Z_Lin A

let a1 be integer-valued FinSequence; :: thesis: ( x = Sum h1 & rng g1 c= Z_Lin A & len g1 = 0 & len g1 = len h1 & len g1 = len a1 & ( for i being Nat st i in Seg (len g1) holds
h1 /. i = (a1 . i) * (g1 /. i) ) implies x in Z_Lin A )

assume AS1: ( x = Sum h1 & rng g1 c= Z_Lin A & len g1 = 0 & len g1 = len h1 & len g1 = len a1 & ( for i being Nat st i in Seg (len g1) holds
h1 /. i = (a1 . i) * (g1 /. i) ) ) ; :: thesis: x in Z_Lin A
Sum h1 = Sum (<*> the carrier of V) by AS1, FINSEQ_1:28
.= 0. V by RLVECT_1:60 ;
hence x in Z_Lin A by AS1, LM030; :: thesis: verum
end;
P1: now
let n be Nat; :: thesis: ( S1[n] implies S1[n + 1] )
assume P2: S1[n] ; :: thesis: S1[n + 1]
now
let x be set ; :: thesis: for g1, h1 being FinSequence of V
for a1 being integer-valued FinSequence st x = Sum h1 & rng g1 c= Z_Lin A & len g1 = n + 1 & len g1 = len h1 & len g1 = len a1 & ( for i being Nat st i in Seg (len g1) holds
h1 /. i = (a1 . i) * (g1 /. i) ) holds
Sum h1 in Z_Lin A

let g1, h1 be FinSequence of V; :: thesis: for a1 being integer-valued FinSequence st x = Sum h1 & rng g1 c= Z_Lin A & len g1 = n + 1 & len g1 = len h1 & len g1 = len a1 & ( for i being Nat st i in Seg (len g1) holds
h1 /. i = (a1 . i) * (g1 /. i) ) holds
Sum h1 in Z_Lin A

let a1 be integer-valued FinSequence; :: thesis: ( x = Sum h1 & rng g1 c= Z_Lin A & len g1 = n + 1 & len g1 = len h1 & len g1 = len a1 & ( for i being Nat st i in Seg (len g1) holds
h1 /. i = (a1 . i) * (g1 /. i) ) implies Sum h1 in Z_Lin A )

assume AS1: ( x = Sum h1 & rng g1 c= Z_Lin A & len g1 = n + 1 & len g1 = len h1 & len g1 = len a1 & ( for i being Nat st i in Seg (len g1) holds
h1 /. i = (a1 . i) * (g1 /. i) ) ) ; :: thesis: Sum h1 in Z_Lin A
reconsider gn = g1 | n as FinSequence of V ;
reconsider hn = h1 | n as FinSequence of V ;
reconsider an = a1 | n as integer-valued FinSequence ;
Q0: ( rng gn c= Z_Lin A & len gn = n & len gn = len an & len gn = len hn & ( for i being Nat st i in Seg (len gn) holds
hn /. i = (an . i) * (gn /. i) ) )
proof
B0: rng gn c= rng g1 by RELAT_1:99;
B1: n <= len g1 by AS1, NAT_1:11;
B3: n <= len h1 by AS1, NAT_1:11;
B4: len hn = n by AS1, NAT_1:11, FINSEQ_1:80;
B5: len an = n by AS1, NAT_1:11, FINSEQ_1:80;
for i being Nat st i in Seg (len gn) holds
hn /. i = (an . i) * (gn /. i)
proof
per cases ( n = 0 or n <> 0 ) ;
suppose n = 0 ; :: thesis: for i being Nat st i in Seg (len gn) holds
hn /. i = (an . i) * (gn /. i)

hence for i being Nat st i in Seg (len gn) holds
hn /. i = (an . i) * (gn /. i) ; :: thesis: verum
end;
suppose n <> 0 ; :: thesis: for i being Nat st i in Seg (len gn) holds
hn /. i = (an . i) * (gn /. i)

then C1: n >= 1 by NAT_1:14;
let i be Nat; :: thesis: ( i in Seg (len gn) implies hn /. i = (an . i) * (gn /. i) )
assume i in Seg (len gn) ; :: thesis: hn /. i = (an . i) * (gn /. i)
then C2: i in Seg n by AS1, NAT_1:11, FINSEQ_1:80;
n in Seg (len g1) by B1, C1, FINSEQ_1:3;
then n in dom g1 by FINSEQ_1:def 3;
then C4: gn /. i = g1 /. i by C2, FINSEQ_4:86;
n in Seg (len h1) by B3, C1, FINSEQ_1:3;
then n in dom h1 by FINSEQ_1:def 3;
then C5: hn /. i = h1 /. i by C2, FINSEQ_4:86;
i <= n by C2, FINSEQ_1:3;
then an . i = a1 . i by FINSEQ_3:121;
hence hn /. i = (an . i) * (gn /. i) by AS1, C2, C4, C5, FINSEQ_2:9; :: thesis: verum
end;
end;
end;
hence ( rng gn c= Z_Lin A & len gn = n & len gn = len an & len gn = len hn & ( for i being Nat st i in Seg (len gn) holds
hn /. i = (an . i) * (gn /. i) ) ) by AS1, B0, B1, B4, B5, FINSEQ_1:80, XBOOLE_1:1; :: thesis: verum
end;
Q2: n + 1 in Seg (len g1) by AS1, FINSEQ_1:6;
Q3: h1 /. (n + 1) = (a1 . (n + 1)) * (g1 /. (n + 1)) by AS1, FINSEQ_1:6;
Q4: h1 = hn ^ <*((a1 . (n + 1)) * (g1 /. (n + 1)))*> by AS1, Q3, FINSEQ_5:24;
Q5: n + 1 in dom g1 by Q2, FINSEQ_1:def 3;
then g1 /. (n + 1) = g1 . (n + 1) by PARTFUN1:def 8;
then g1 /. (n + 1) in rng g1 by Q5, FUNCT_1:12;
then ( (z1 * (a1 . (n + 1))) * (g1 /. (n + 1)) in Z_Lin A & z0 * (g1 /. (n + 1)) in Z_Lin A ) by AS1, LM020;
then ((z1 * (a1 . (n + 1))) * (g1 /. (n + 1))) + (z0 * (g1 /. (n + 1))) in Z_Lin A by LM010;
then ((z1 * (a1 . (n + 1))) * (g1 /. (n + 1))) + (0. V) in Z_Lin A by RLVECT_1:23;
then Q7: (z1 * (a1 . (n + 1))) * (g1 /. (n + 1)) in Z_Lin A by RLVECT_1:10;
z1 * (Sum hn) in Z_Lin A by P2, Q0, LM020;
then Q8: (z1 * (Sum hn)) + ((z1 * (a1 . (n + 1))) * (g1 /. (n + 1))) in Z_Lin A by Q7, LM010;
Sum h1 = (Sum hn) + (Sum <*((a1 . (n + 1)) * (g1 /. (n + 1)))*>) by Q4, RLVECT_1:58
.= (Sum hn) + ((a1 . (n + 1)) * (g1 /. (n + 1))) by RLVECT_1:61 ;
hence Sum h1 in Z_Lin A by Q8, RLVECT_1:def 11; :: thesis: verum
end;
hence S1[n + 1] ; :: thesis: verum
end;
for n being Nat holds S1[n] from NAT_1:sch 2(P0, P1);
hence for x being set
for g1, h1 being FinSequence of V
for a1 being integer-valued FinSequence st x = Sum h1 & rng g1 c= Z_Lin A & len g1 = len h1 & len g1 = len a1 & ( for i being Nat st i in Seg (len g1) holds
h1 /. i = (a1 . i) * (g1 /. i) ) holds
x in Z_Lin A ; :: thesis: verum