let b, m be FinSequence of INT ; ( len b = len m & ( for i being Nat st i in Seg (len b) holds
b . i <> 0 ) & m . 1 = 1 implies for k being Element of NAT st 1 <= k & k <= (len b) - 1 & ( for i being Nat st 1 <= i & i <= k holds
m . (i + 1) = (m . i) * (b . i) ) holds
m . (k + 1) <> 0 )
assume
len b = len m
; ( ex i being Nat st
( i in Seg (len b) & not b . i <> 0 ) or not m . 1 = 1 or for k being Element of NAT st 1 <= k & k <= (len b) - 1 & ( for i being Nat st 1 <= i & i <= k holds
m . (i + 1) = (m . i) * (b . i) ) holds
m . (k + 1) <> 0 )
assume A1:
( ( for i being Nat st i in Seg (len b) holds
b . i <> 0 ) & m . 1 = 1 )
; for k being Element of NAT st 1 <= k & k <= (len b) - 1 & ( for i being Nat st 1 <= i & i <= k holds
m . (i + 1) = (m . i) * (b . i) ) holds
m . (k + 1) <> 0
defpred S1[ Nat] means ( 1 <= $1 & $1 <= (len b) - 1 & ( for i being Nat st 1 <= i & i <= $1 holds
m . (i + 1) = (m . i) * (b . i) ) implies m . ($1 + 1) <> 0 );
reconsider I0 = 0 as Element of NAT ;
A2:
S1[ 0 ]
;
A3:
for k being Nat st S1[k] holds
S1[k + 1]
proof
let k be
Nat;
( S1[k] implies S1[k + 1] )
assume A4:
S1[
k]
;
S1[k + 1]
assume A5:
( 1
<= k + 1 &
k + 1
<= (len b) - 1 & ( for
i being
Nat st 1
<= i &
i <= k + 1 holds
m . (i + 1) = (m . i) * (b . i) ) )
;
m . ((k + 1) + 1) <> 0
A6:
k <= k + 1
by NAT_1:12;
per cases
( k = 0 or k <> 0 )
;
suppose A9:
k <> 0
;
m . ((k + 1) + 1) <> 0 A10:
now for i being Nat st 1 <= i & i <= k holds
m . (i + 1) = (m . i) * (b . i)let i be
Nat;
( 1 <= i & i <= k implies m . (i + 1) = (m . i) * (b . i) )assume
( 1
<= i &
i <= k )
;
m . (i + 1) = (m . i) * (b . i)then
( 1
<= i &
i <= k + 1 )
by NAT_1:12;
hence
m . (i + 1) = (m . i) * (b . i)
by A5;
verum end; thus
m . ((k + 1) + 1) <> 0
verumproof
A11:
(k + 1) + 1
<= ((len b) - 1) + 1
by A5, XREAL_1:6;
A12:
k + 1
<= (k + 1) + 1
by NAT_1:12;
A13:
1
<= k + 1
by NAT_1:12;
k + 1
<= len b
by A12, A11, XXREAL_0:2;
then
k + 1
in Seg (len b)
by A13;
then A14:
b . (k + 1) <> 0
by A1;
m . ((k + 1) + 1) = (m . (k + 1)) * (b . (k + 1))
by A5;
hence
m . ((k + 1) + 1) <> 0
by A14, A10, A4, A5, A6, A9, NAT_1:14, XCMPLX_1:6, XXREAL_0:2;
verum
end; end; end;
end;
for k being Nat holds S1[k]
from NAT_1:sch 2(A2, A3);
hence
for k being Element of NAT st 1 <= k & k <= (len b) - 1 & ( for i being Nat st 1 <= i & i <= k holds
m . (i + 1) = (m . i) * (b . i) ) holds
m . (k + 1) <> 0
; verum