Metamath Proof Explorer


Theorem irrapxlem2

Description: Lemma for irrapx1 . Two multiples in the same bucket means they are very close mod 1. (Contributed by Stefan O'Rear, 12-Sep-2014)

Ref Expression
Assertion irrapxlem2 ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) → ∃ 𝑥 ∈ ( 0 ... 𝐵 ) ∃ 𝑦 ∈ ( 0 ... 𝐵 ) ( 𝑥 < 𝑦 ∧ ( abs ‘ ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) < ( 1 / 𝐵 ) ) )

Proof

Step Hyp Ref Expression
1 irrapxlem1 ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) → ∃ 𝑥 ∈ ( 0 ... 𝐵 ) ∃ 𝑦 ∈ ( 0 ... 𝐵 ) ( 𝑥 < 𝑦 ∧ ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) = ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) )
2 nnre ( 𝐵 ∈ ℕ → 𝐵 ∈ ℝ )
3 2 ad3antlr ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → 𝐵 ∈ ℝ )
4 rpre ( 𝐴 ∈ ℝ+𝐴 ∈ ℝ )
5 4 ad3antrrr ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → 𝐴 ∈ ℝ )
6 elfzelz ( 𝑥 ∈ ( 0 ... 𝐵 ) → 𝑥 ∈ ℤ )
7 6 zred ( 𝑥 ∈ ( 0 ... 𝐵 ) → 𝑥 ∈ ℝ )
8 7 ad2antlr ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → 𝑥 ∈ ℝ )
9 5 8 remulcld ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( 𝐴 · 𝑥 ) ∈ ℝ )
10 1rp 1 ∈ ℝ+
11 10 a1i ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → 1 ∈ ℝ+ )
12 9 11 modcld ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( 𝐴 · 𝑥 ) mod 1 ) ∈ ℝ )
13 3 12 remulcld ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ∈ ℝ )
14 intfrac ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ∈ ℝ → ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) = ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ) )
15 13 14 syl ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) = ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ) )
16 elfzelz ( 𝑦 ∈ ( 0 ... 𝐵 ) → 𝑦 ∈ ℤ )
17 16 zred ( 𝑦 ∈ ( 0 ... 𝐵 ) → 𝑦 ∈ ℝ )
18 17 adantl ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → 𝑦 ∈ ℝ )
19 5 18 remulcld ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( 𝐴 · 𝑦 ) ∈ ℝ )
20 19 11 modcld ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( 𝐴 · 𝑦 ) mod 1 ) ∈ ℝ )
21 3 20 remulcld ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ∈ ℝ )
22 intfrac ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ∈ ℝ → ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) = ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) )
23 21 22 syl ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) = ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) )
24 15 23 oveq12d ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) − ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) = ( ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ) − ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) ) )
25 24 fveq2d ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( abs ‘ ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) − ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) = ( abs ‘ ( ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ) − ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) ) ) )
26 25 adantr ( ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) ∧ ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) = ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) → ( abs ‘ ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) − ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) = ( abs ‘ ( ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ) − ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) ) ) )
27 simpr ( ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) ∧ ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) = ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) → ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) = ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) )
28 27 oveq1d ( ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) ∧ ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) = ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) → ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ) = ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ) )
29 28 oveq1d ( ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) ∧ ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) = ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) → ( ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ) − ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) ) = ( ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ) − ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) ) )
30 29 fveq2d ( ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) ∧ ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) = ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) → ( abs ‘ ( ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ) − ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) ) ) = ( abs ‘ ( ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ) − ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) ) ) )
31 21 flcld ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ∈ ℤ )
32 31 zcnd ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ∈ ℂ )
33 13 11 modcld ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ∈ ℝ )
34 33 recnd ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ∈ ℂ )
35 21 11 modcld ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ∈ ℝ )
36 35 recnd ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ∈ ℂ )
37 32 34 36 pnpcand ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ) − ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) ) = ( ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) − ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) )
38 37 fveq2d ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( abs ‘ ( ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ) − ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) ) ) = ( abs ‘ ( ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) − ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) ) )
39 0red ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → 0 ∈ ℝ )
40 1red ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → 1 ∈ ℝ )
41 modelico ( ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ∈ ℝ ∧ 1 ∈ ℝ+ ) → ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ∈ ( 0 [,) 1 ) )
42 13 10 41 sylancl ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ∈ ( 0 [,) 1 ) )
43 modelico ( ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ∈ ℝ ∧ 1 ∈ ℝ+ ) → ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ∈ ( 0 [,) 1 ) )
44 21 10 43 sylancl ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ∈ ( 0 [,) 1 ) )
45 icodiamlt ( ( ( 0 ∈ ℝ ∧ 1 ∈ ℝ ) ∧ ( ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ∈ ( 0 [,) 1 ) ∧ ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ∈ ( 0 [,) 1 ) ) ) → ( abs ‘ ( ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) − ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) ) < ( 1 − 0 ) )
46 39 40 42 44 45 syl22anc ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( abs ‘ ( ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) − ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) ) < ( 1 − 0 ) )
47 1m0e1 ( 1 − 0 ) = 1
48 46 47 breqtrdi ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( abs ‘ ( ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) − ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) ) < 1 )
49 38 48 eqbrtrd ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( abs ‘ ( ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ) − ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) ) ) < 1 )
50 49 adantr ( ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) ∧ ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) = ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) → ( abs ‘ ( ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ) − ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) ) ) < 1 )
51 30 50 eqbrtrd ( ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) ∧ ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) = ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) → ( abs ‘ ( ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) mod 1 ) ) − ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) + ( ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) mod 1 ) ) ) ) < 1 )
52 26 51 eqbrtrd ( ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) ∧ ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) = ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) → ( abs ‘ ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) − ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) < 1 )
53 52 ex ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) = ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) → ( abs ‘ ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) − ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) < 1 ) )
54 12 20 resubcld ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ∈ ℝ )
55 54 recnd ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ∈ ℂ )
56 55 abscld ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( abs ‘ ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ∈ ℝ )
57 nngt0 ( 𝐵 ∈ ℕ → 0 < 𝐵 )
58 57 ad3antlr ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → 0 < 𝐵 )
59 58 gt0ne0d ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → 𝐵 ≠ 0 )
60 3 59 rereccld ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( 1 / 𝐵 ) ∈ ℝ )
61 ltmul2 ( ( ( abs ‘ ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ∈ ℝ ∧ ( 1 / 𝐵 ) ∈ ℝ ∧ ( 𝐵 ∈ ℝ ∧ 0 < 𝐵 ) ) → ( ( abs ‘ ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) < ( 1 / 𝐵 ) ↔ ( 𝐵 · ( abs ‘ ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) < ( 𝐵 · ( 1 / 𝐵 ) ) ) )
62 56 60 3 58 61 syl112anc ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( abs ‘ ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) < ( 1 / 𝐵 ) ↔ ( 𝐵 · ( abs ‘ ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) < ( 𝐵 · ( 1 / 𝐵 ) ) ) )
63 nnnn0 ( 𝐵 ∈ ℕ → 𝐵 ∈ ℕ0 )
64 63 nn0ge0d ( 𝐵 ∈ ℕ → 0 ≤ 𝐵 )
65 64 ad3antlr ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → 0 ≤ 𝐵 )
66 3 65 absidd ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( abs ‘ 𝐵 ) = 𝐵 )
67 66 eqcomd ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → 𝐵 = ( abs ‘ 𝐵 ) )
68 67 oveq1d ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( 𝐵 · ( abs ‘ ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) = ( ( abs ‘ 𝐵 ) · ( abs ‘ ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) )
69 3 recnd ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → 𝐵 ∈ ℂ )
70 69 55 absmuld ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( abs ‘ ( 𝐵 · ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) = ( ( abs ‘ 𝐵 ) · ( abs ‘ ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) )
71 12 recnd ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( 𝐴 · 𝑥 ) mod 1 ) ∈ ℂ )
72 20 recnd ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( 𝐴 · 𝑦 ) mod 1 ) ∈ ℂ )
73 69 71 72 subdid ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( 𝐵 · ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) = ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) − ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) )
74 73 fveq2d ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( abs ‘ ( 𝐵 · ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) = ( abs ‘ ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) − ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) )
75 68 70 74 3eqtr2d ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( 𝐵 · ( abs ‘ ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) = ( abs ‘ ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) − ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) )
76 69 59 recidd ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( 𝐵 · ( 1 / 𝐵 ) ) = 1 )
77 75 76 breq12d ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( 𝐵 · ( abs ‘ ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) < ( 𝐵 · ( 1 / 𝐵 ) ) ↔ ( abs ‘ ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) − ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) < 1 ) )
78 62 77 bitrd ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( abs ‘ ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) < ( 1 / 𝐵 ) ↔ ( abs ‘ ( ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) − ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) < 1 ) )
79 53 78 sylibrd ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) = ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) → ( abs ‘ ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) < ( 1 / 𝐵 ) ) )
80 79 anim2d ( ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) ∧ 𝑦 ∈ ( 0 ... 𝐵 ) ) → ( ( 𝑥 < 𝑦 ∧ ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) = ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) → ( 𝑥 < 𝑦 ∧ ( abs ‘ ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) < ( 1 / 𝐵 ) ) ) )
81 80 reximdva ( ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) ∧ 𝑥 ∈ ( 0 ... 𝐵 ) ) → ( ∃ 𝑦 ∈ ( 0 ... 𝐵 ) ( 𝑥 < 𝑦 ∧ ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) = ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) → ∃ 𝑦 ∈ ( 0 ... 𝐵 ) ( 𝑥 < 𝑦 ∧ ( abs ‘ ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) < ( 1 / 𝐵 ) ) ) )
82 81 reximdva ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) → ( ∃ 𝑥 ∈ ( 0 ... 𝐵 ) ∃ 𝑦 ∈ ( 0 ... 𝐵 ) ( 𝑥 < 𝑦 ∧ ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑥 ) mod 1 ) ) ) = ( ⌊ ‘ ( 𝐵 · ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) ) → ∃ 𝑥 ∈ ( 0 ... 𝐵 ) ∃ 𝑦 ∈ ( 0 ... 𝐵 ) ( 𝑥 < 𝑦 ∧ ( abs ‘ ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) < ( 1 / 𝐵 ) ) ) )
83 1 82 mpd ( ( 𝐴 ∈ ℝ+𝐵 ∈ ℕ ) → ∃ 𝑥 ∈ ( 0 ... 𝐵 ) ∃ 𝑦 ∈ ( 0 ... 𝐵 ) ( 𝑥 < 𝑦 ∧ ( abs ‘ ( ( ( 𝐴 · 𝑥 ) mod 1 ) − ( ( 𝐴 · 𝑦 ) mod 1 ) ) ) < ( 1 / 𝐵 ) ) )