let n, i, j be Nat; ( Fib n, Fib (n + i) are_congruent_mod j & Fib (n + 1), Fib ((n + i) + 1) are_congruent_mod j implies for x, y being Nat st x,y are_congruent_mod i holds
Fib x, Fib y are_congruent_mod j )
assume A1:
( Fib n, Fib (n + i) are_congruent_mod j & Fib (n + 1), Fib ((n + i) + 1) are_congruent_mod j )
; for x, y being Nat st x,y are_congruent_mod i holds
Fib x, Fib y are_congruent_mod j
defpred S1[ Nat] means ( Fib $1, Fib ($1 + i) are_congruent_mod j & Fib ($1 + 1), Fib (($1 + i) + 1) are_congruent_mod j );
defpred S2[ Nat] means S1[n + $1];
A2:
S2[ 0 ]
by A1;
A3:
for k being Nat st S2[k] holds
S2[k + 1]
A5:
for k being Nat holds S2[k]
from NAT_1:sch 2(A2, A3);
defpred S3[ Nat] means ( $1 <= n implies for i being Nat st i = n - $1 holds
S1[i] );
A6:
S3[ 0 ]
by A1;
A7:
for k being Nat st S3[k] holds
S3[k + 1]
A11:
for k being Nat holds S3[k]
from NAT_1:sch 2(A6, A7);
A12:
for k being Nat holds Fib k, Fib (k + i) are_congruent_mod j
A14:
now for x, y being Nat st x < y & x,y are_congruent_mod i holds
Fib x, Fib y are_congruent_mod jlet x,
y be
Nat;
( x < y & x,y are_congruent_mod i implies Fib x, Fib y are_congruent_mod j )assume A15:
(
x < y &
x,
y are_congruent_mod i )
;
Fib x, Fib y are_congruent_mod jconsider k being
Integer such that A16:
y = (k * i) + x
by NAT_6:9, A15, INT_1:14;
y >= x + 0
by A15;
then
k >= 0
by A15, A16, XREAL_1:7;
then reconsider k =
k as
Element of
NAT by INT_1:3;
defpred S4[
Nat]
means Fib x,
Fib (x + (i * $1)) are_congruent_mod j;
A17:
S4[
0 ]
by INT_1:11;
A18:
for
k being
Nat st
S4[
k] holds
S4[
k + 1]
for
k being
Nat holds
S4[
k]
from NAT_1:sch 2(A17, A18);
then
S4[
k]
;
hence
Fib x,
Fib y are_congruent_mod j
by A16;
verum end;
let x, y be Nat; ( x,y are_congruent_mod i implies Fib x, Fib y are_congruent_mod j )
assume A20:
x,y are_congruent_mod i
; Fib x, Fib y are_congruent_mod j
A21:
y,x are_congruent_mod i
by A20, INT_1:14;