let a be Nat; :: thesis: for k being Integer st a <> 0 & a gcd k = 1 holds
ex b, e being Nat st
( 0 <> b & 0 <> e & b <= sqrt a & e <= sqrt a & ( a divides (k * b) + e or a divides (k * b) - e ) )
let k be Integer; :: thesis: ( a <> 0 & a gcd k = 1 implies ex b, e being Nat st
( 0 <> b & 0 <> e & b <= sqrt a & e <= sqrt a & ( a divides (k * b) + e or a divides (k * b) - e ) ) )
assume A1:
( a <> 0 & a gcd k = 1 )
; :: thesis: ex b, e being Nat st
( 0 <> b & 0 <> e & b <= sqrt a & e <= sqrt a & ( a divides (k * b) + e or a divides (k * b) - e ) )
then A2:
a >= 1
by NAT_1:14;
per cases
( a = 1 or a > 1 )
by A2, XXREAL_0:1;
suppose A5:
a > 1
;
:: thesis: ex b, e being Nat st
( 0 <> b & 0 <> e & b <= sqrt a & e <= sqrt a & ( a divides (k * b) + e or a divides (k * b) - e ) )then A6:
sqrt a < a
by Lm24;
set d =
[\(sqrt a)/];
set d1 =
[\(sqrt a)/] + 1;
A7:
sqrt a > 0
by A1, SQUARE_1:93;
A8:
(
[\(sqrt a)/] <= sqrt a &
[\(sqrt a)/] > (sqrt a) - 1 )
by INT_1:def 4;
then A9:
[\(sqrt a)/] < a
by A6, XXREAL_0:2;
sqrt a > 1
by A5, SQUARE_1:83, SQUARE_1:95;
then A10:
(sqrt a) - 1
> 0
by XREAL_1:52;
then reconsider d =
[\(sqrt a)/] as
Element of
NAT by A8, INT_1:16;
A11:
(
d + 1
>= 1 & 1
> 0 )
by Lm1;
reconsider d1 =
[\(sqrt a)/] + 1 as
Element of
NAT by A11;
set e1 =
d1 ^2 ;
d1 ^2 = d1 * d1
;
then reconsider e1 =
d1 ^2 as
Element of
NAT ;
sqrt a < d1
by A8, XREAL_1:21;
then
(sqrt a) ^2 < e1
by A7, SQUARE_1:78;
then A13:
a < e1
by SQUARE_1:def 4;
deffunc H1(
Nat)
-> Element of
REAL = 1
+ (((k * (($1 - 1) div d1)) + (($1 - 1) mod d1)) mod a);
consider fs being
FinSequence such that A14:
(
len fs = e1 & ( for
b being
Nat st
b in dom fs holds
fs . b = H1(
b) ) )
from FINSEQ_1:sch 2();
A16:
Seg e1 = dom fs
by A14, FINSEQ_1:def 3;
A17:
rng fs c= Seg a
A21:
Seg a c= Seg e1
by A13, FINSEQ_1:7;
rng fs <> dom fs
by A13, A16, A17, FINSEQ_1:7;
then
not
fs is
one-to-one
by A16, A17, A21, FINSEQ_4:74, XBOOLE_1:1;
then consider v1,
v2 being
set such that A22:
(
v1 in dom fs &
v2 in dom fs &
fs . v1 = fs . v2 &
v1 <> v2 )
by FUNCT_1:def 8;
reconsider v1 =
v1,
v2 =
v2 as
Element of
NAT by A22;
A23:
( 1
<= v1 &
v1 <= e1 & 1
<= v2 &
v2 <= e1 )
by A14, A22, FINSEQ_3:27;
set x1 =
(v1 - 1) div d1;
set x2 =
(v2 - 1) div d1;
set x =
((v1 - 1) div d1) - ((v2 - 1) div d1);
set y1 =
(v1 - 1) mod d1;
set y2 =
(v2 - 1) mod d1;
set y =
((v1 - 1) mod d1) - ((v2 - 1) mod d1);
A24:
(
((v1 - 1) div d1) - ((v2 - 1) div d1) <> 0 or
((v1 - 1) mod d1) - ((v2 - 1) mod d1) <> 0 )
A25:
(
(v1 - 1) mod d1 < d1 &
(v2 - 1) mod d1 < d1 )
by A8, A10, NEWTON:79;
A26:
(
(v1 - 1) mod d1 >= 0 &
(v2 - 1) mod d1 >= 0 )
by NEWTON:78;
A27:
abs (((v1 - 1) mod d1) - ((v2 - 1) mod d1)) <= d
then A29:
abs (((v1 - 1) mod d1) - ((v2 - 1) mod d1)) < a
by A9, XXREAL_0:2;
A30:
abs (((v1 - 1) div d1) - ((v2 - 1) div d1)) <= d
proof
A31:
(
(v1 - 1) div d1 = [\((v1 - 1) / d1)/] &
(v2 - 1) div d1 = [\((v2 - 1) / d1)/] )
by INT_1:def 7;
then A32:
(
(v1 - 1) div d1 <= (v1 - 1) / d1 &
(v2 - 1) div d1 <= (v2 - 1) / d1 )
by INT_1:def 4;
(
v1 - 1
<= e1 - 1 &
v2 - 1
<= e1 - 1 )
by A23, XREAL_1:11;
then A33:
(
(v1 - 1) / d1 <= (e1 - 1) / d1 &
(v2 - 1) / d1 <= (e1 - 1) / d1 )
by XREAL_1:74;
A34:
(e1 - 1) / d1 = d1 - (1 / d1)
by A11, XCMPLX_1:128;
1
/ d1 > 0
by A8, A10, XREAL_1:141;
then
(e1 - 1) / d1 < d1
by A34, Lm1;
then
(
(v1 - 1) / d1 < d1 &
(v2 - 1) / d1 < d1 )
by A33, XXREAL_0:2;
then
(
(v1 - 1) div d1 < d1 &
(v2 - 1) div d1 < d1 )
by A32, XXREAL_0:2;
then A35:
(
(v1 - 1) div d1 <= d &
(v2 - 1) div d1 <= d )
by Lm9;
A36:
[\0 /] = 0
by INT_1:47;
(
v1 - 1
>= 0 &
v2 - 1
>= 0 )
by A23, XREAL_1:50;
then
(
(v1 - 1) div d1 >= 0 &
(v2 - 1) div d1 >= 0 )
by A31, A36, PRE_FF:11;
then A37:
(
((v1 - 1) div d1) - ((v2 - 1) div d1) <= d &
((v2 - 1) div d1) - ((v1 - 1) div d1) <= d )
by A35, Lm2;
then
- (((v2 - 1) div d1) - ((v1 - 1) div d1)) >= - d
by XREAL_1:26;
hence
abs (((v1 - 1) div d1) - ((v2 - 1) div d1)) <= d
by A37, ABSVALUE:12;
:: thesis: verum
end; then A38:
abs (((v1 - 1) div d1) - ((v2 - 1) div d1)) < a
by A9, XXREAL_0:2;
(
fs . v1 = 1
+ (((k * ((v1 - 1) div d1)) + ((v1 - 1) mod d1)) mod a) &
fs . v2 = 1
+ (((k * ((v2 - 1) div d1)) + ((v2 - 1) mod d1)) mod a) )
by A14, A22;
then A39:
(((k * ((v1 - 1) div d1)) + ((v1 - 1) mod d1)) - ((k * ((v2 - 1) div d1)) + ((v2 - 1) mod d1))) mod a = 0
by A22, Lm22, XCMPLX_1:2;
then A40:
a divides ((k * ((v1 - 1) div d1)) + ((v1 - 1) mod d1)) - ((k * ((v2 - 1) div d1)) + ((v2 - 1) mod d1))
by A1, Lm23;
A41:
((k * ((v1 - 1) div d1)) + ((v1 - 1) mod d1)) - ((k * ((v2 - 1) div d1)) + ((v2 - 1) mod d1)) = (k * (((v1 - 1) div d1) - ((v2 - 1) div d1))) + (((v1 - 1) mod d1) - ((v2 - 1) mod d1))
;
set d2 =
(k * (((v1 - 1) div d1) - ((v2 - 1) div d1))) + (((v1 - 1) mod d1) - ((v2 - 1) mod d1));
A42:
- ((k * (((v1 - 1) div d1) - ((v2 - 1) div d1))) + (((v1 - 1) mod d1) - ((v2 - 1) mod d1))) = (k * (- (((v1 - 1) div d1) - ((v2 - 1) div d1)))) + (- (((v1 - 1) mod d1) - ((v2 - 1) mod d1)))
;
take b =
abs (((v1 - 1) div d1) - ((v2 - 1) div d1));
:: thesis: ex e being Nat st
( 0 <> b & 0 <> e & b <= sqrt a & e <= sqrt a & ( a divides (k * b) + e or a divides (k * b) - e ) )take e =
abs (((v1 - 1) mod d1) - ((v2 - 1) mod d1));
:: thesis: ( 0 <> b & 0 <> e & b <= sqrt a & e <= sqrt a & ( a divides (k * b) + e or a divides (k * b) - e ) )thus
(
b <> 0 &
e <> 0 )
by A43, A45, ABSVALUE:7;
:: thesis: ( b <= sqrt a & e <= sqrt a & ( a divides (k * b) + e or a divides (k * b) - e ) )thus
b <= sqrt a
by A8, A30, XXREAL_0:2;
:: thesis: ( e <= sqrt a & ( a divides (k * b) + e or a divides (k * b) - e ) )thus
e <= sqrt a
by A8, A27, XXREAL_0:2;
:: thesis: ( a divides (k * b) + e or a divides (k * b) - e )
( (
b = ((v1 - 1) div d1) - ((v2 - 1) div d1) or
b = - (((v1 - 1) div d1) - ((v2 - 1) div d1)) ) & (
e = ((v1 - 1) mod d1) - ((v2 - 1) mod d1) or
e = - (((v1 - 1) mod d1) - ((v2 - 1) mod d1)) ) )
by ABSVALUE:1;
hence
(
a divides (k * b) + e or
a divides (k * b) - e )
by A40, A42, INT_2:14;
:: thesis: verum end; end;