let b, m be FinSequence of INT ; ( 2 <= len b & ( for i, j being Nat st i in Seg (len b) & j in Seg (len b) & i <> j holds
b . i,b . j are_relative_prime ) & 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
for j being Nat st k + 1 <= j & j <= len b holds
m . (k + 1),b . j are_relative_prime )
assume
2 <= len b
; ( ex i, j being Nat st
( i in Seg (len b) & j in Seg (len b) & i <> j & not b . i,b . j are_relative_prime ) 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
for j being Nat st k + 1 <= j & j <= len b holds
m . (k + 1),b . j are_relative_prime )
assume A2:
( ( for i, j being Nat st i in Seg (len b) & j in Seg (len b) & i <> j holds
b . i,b . j are_relative_prime ) & 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
for j being Nat st k + 1 <= j & j <= len b holds
m . (k + 1),b . j are_relative_prime
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 for j being Nat st $1 + 1 <= j & j <= len b holds
m . ($1 + 1),b . j are_relative_prime );
reconsider I0 = 0 as Element of NAT ;
P0:
S1[ 0 ]
;
P1:
for k being Element of NAT st S1[k] holds
S1[k + 1]
proof
let k be
Element of
NAT ;
( S1[k] implies S1[k + 1] )
assume P11:
S1[
k]
;
S1[k + 1]
assume P12:
( 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) ) )
;
for j being Nat st (k + 1) + 1 <= j & j <= len b holds
m . ((k + 1) + 1),b . j are_relative_prime
P14:
k <= k + 1
by NAT_1:12;
per cases
( k = 0 or k <> 0 )
;
suppose P19:
k <> 0
;
for j being Nat st (k + 1) + 1 <= j & j <= len b holds
m . ((k + 1) + 1),b . j are_relative_prime P20:
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 P12;
verum end; thus
for
j being
Nat st
(k + 1) + 1
<= j &
j <= len b holds
m . ((k + 1) + 1),
b . j are_relative_prime
verumproof
let j be
Nat;
( (k + 1) + 1 <= j & j <= len b implies m . ((k + 1) + 1),b . j are_relative_prime )
assume XX6:
(
(k + 1) + 1
<= j &
j <= len b )
;
m . ((k + 1) + 1),b . j are_relative_prime
k + 1
<= (k + 1) + 1
by NAT_1:12;
then XX1:
(
k + 1
<= j &
j <= len b )
by XX6, XXREAL_0:2;
then P21:
m . (k + 1),
b . j are_relative_prime
by P20, P11, P12, P14, XXREAL_0:2, NAT_1:14, P19;
XX2:
1
<= k + 1
by NAT_1:12;
k + 1
<= len b
by XX1, XXREAL_0:2;
then XX3:
k + 1
in Seg (len b)
by XX2;
( 1
<= j &
j <= len b )
by XX1, XX2, XXREAL_0:2;
then XX4:
j in Seg (len b)
by FINSEQ_1:1;
k + 1
< j
by XX6, XXREAL_0:2, NAT_1:16;
then P23:
b . (k + 1),
b . j are_relative_prime
by A2, XX3, XX4;
m . ((k + 1) + 1) = (m . (k + 1)) * (b . (k + 1))
by P12;
hence
m . ((k + 1) + 1),
b . j are_relative_prime
by P23, P21, INT_2:26;
verum
end; end; end;
end;
for k being Element of NAT holds S1[k]
from NAT_1:sch 1(P0, P1);
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
for j being Nat st k + 1 <= j & j <= len b holds
m . (k + 1),b . j are_relative_prime
; verum