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 A+Bx0By0Bx<yAxmod1Aymod1<1B

Proof

Step Hyp Ref Expression
1 irrapxlem1 A+Bx0By0Bx<yBAxmod1=BAymod1
2 nnre BB
3 2 ad3antlr A+Bx0By0BB
4 rpre A+A
5 4 ad3antrrr A+Bx0By0BA
6 elfzelz x0Bx
7 6 zred x0Bx
8 7 ad2antlr A+Bx0By0Bx
9 5 8 remulcld A+Bx0By0BAx
10 1rp 1+
11 10 a1i A+Bx0By0B1+
12 9 11 modcld A+Bx0By0BAxmod1
13 3 12 remulcld A+Bx0By0BBAxmod1
14 intfrac BAxmod1BAxmod1=BAxmod1+BAxmod1mod1
15 13 14 syl A+Bx0By0BBAxmod1=BAxmod1+BAxmod1mod1
16 elfzelz y0By
17 16 zred y0By
18 17 adantl A+Bx0By0By
19 5 18 remulcld A+Bx0By0BAy
20 19 11 modcld A+Bx0By0BAymod1
21 3 20 remulcld A+Bx0By0BBAymod1
22 intfrac BAymod1BAymod1=BAymod1+BAymod1mod1
23 21 22 syl A+Bx0By0BBAymod1=BAymod1+BAymod1mod1
24 15 23 oveq12d A+Bx0By0BBAxmod1BAymod1=BAxmod1+BAxmod1mod1-BAymod1+BAymod1mod1
25 24 fveq2d A+Bx0By0BBAxmod1BAymod1=BAxmod1+BAxmod1mod1-BAymod1+BAymod1mod1
26 25 adantr A+Bx0By0BBAxmod1=BAymod1BAxmod1BAymod1=BAxmod1+BAxmod1mod1-BAymod1+BAymod1mod1
27 simpr A+Bx0By0BBAxmod1=BAymod1BAxmod1=BAymod1
28 27 oveq1d A+Bx0By0BBAxmod1=BAymod1BAxmod1+BAxmod1mod1=BAymod1+BAxmod1mod1
29 28 oveq1d A+Bx0By0BBAxmod1=BAymod1BAxmod1+BAxmod1mod1-BAymod1+BAymod1mod1=BAymod1+BAxmod1mod1-BAymod1+BAymod1mod1
30 29 fveq2d A+Bx0By0BBAxmod1=BAymod1BAxmod1+BAxmod1mod1-BAymod1+BAymod1mod1=BAymod1+BAxmod1mod1-BAymod1+BAymod1mod1
31 21 flcld A+Bx0By0BBAymod1
32 31 zcnd A+Bx0By0BBAymod1
33 13 11 modcld A+Bx0By0BBAxmod1mod1
34 33 recnd A+Bx0By0BBAxmod1mod1
35 21 11 modcld A+Bx0By0BBAymod1mod1
36 35 recnd A+Bx0By0BBAymod1mod1
37 32 34 36 pnpcand A+Bx0By0BBAymod1+BAxmod1mod1-BAymod1+BAymod1mod1=BAxmod1mod1BAymod1mod1
38 37 fveq2d A+Bx0By0BBAymod1+BAxmod1mod1-BAymod1+BAymod1mod1=BAxmod1mod1BAymod1mod1
39 0red A+Bx0By0B0
40 1red A+Bx0By0B1
41 modelico BAxmod11+BAxmod1mod101
42 13 10 41 sylancl A+Bx0By0BBAxmod1mod101
43 modelico BAymod11+BAymod1mod101
44 21 10 43 sylancl A+Bx0By0BBAymod1mod101
45 icodiamlt 01BAxmod1mod101BAymod1mod101BAxmod1mod1BAymod1mod1<10
46 39 40 42 44 45 syl22anc A+Bx0By0BBAxmod1mod1BAymod1mod1<10
47 1m0e1 10=1
48 46 47 breqtrdi A+Bx0By0BBAxmod1mod1BAymod1mod1<1
49 38 48 eqbrtrd A+Bx0By0BBAymod1+BAxmod1mod1-BAymod1+BAymod1mod1<1
50 49 adantr A+Bx0By0BBAxmod1=BAymod1BAymod1+BAxmod1mod1-BAymod1+BAymod1mod1<1
51 30 50 eqbrtrd A+Bx0By0BBAxmod1=BAymod1BAxmod1+BAxmod1mod1-BAymod1+BAymod1mod1<1
52 26 51 eqbrtrd A+Bx0By0BBAxmod1=BAymod1BAxmod1BAymod1<1
53 52 ex A+Bx0By0BBAxmod1=BAymod1BAxmod1BAymod1<1
54 12 20 resubcld A+Bx0By0BAxmod1Aymod1
55 54 recnd A+Bx0By0BAxmod1Aymod1
56 55 abscld A+Bx0By0BAxmod1Aymod1
57 nngt0 B0<B
58 57 ad3antlr A+Bx0By0B0<B
59 58 gt0ne0d A+Bx0By0BB0
60 3 59 rereccld A+Bx0By0B1B
61 ltmul2 Axmod1Aymod11BB0<BAxmod1Aymod1<1BBAxmod1Aymod1<B1B
62 56 60 3 58 61 syl112anc A+Bx0By0BAxmod1Aymod1<1BBAxmod1Aymod1<B1B
63 nnnn0 BB0
64 63 nn0ge0d B0B
65 64 ad3antlr A+Bx0By0B0B
66 3 65 absidd A+Bx0By0BB=B
67 66 eqcomd A+Bx0By0BB=B
68 67 oveq1d A+Bx0By0BBAxmod1Aymod1=BAxmod1Aymod1
69 3 recnd A+Bx0By0BB
70 69 55 absmuld A+Bx0By0BBAxmod1Aymod1=BAxmod1Aymod1
71 12 recnd A+Bx0By0BAxmod1
72 20 recnd A+Bx0By0BAymod1
73 69 71 72 subdid A+Bx0By0BBAxmod1Aymod1=BAxmod1BAymod1
74 73 fveq2d A+Bx0By0BBAxmod1Aymod1=BAxmod1BAymod1
75 68 70 74 3eqtr2d A+Bx0By0BBAxmod1Aymod1=BAxmod1BAymod1
76 69 59 recidd A+Bx0By0BB1B=1
77 75 76 breq12d A+Bx0By0BBAxmod1Aymod1<B1BBAxmod1BAymod1<1
78 62 77 bitrd A+Bx0By0BAxmod1Aymod1<1BBAxmod1BAymod1<1
79 53 78 sylibrd A+Bx0By0BBAxmod1=BAymod1Axmod1Aymod1<1B
80 79 anim2d A+Bx0By0Bx<yBAxmod1=BAymod1x<yAxmod1Aymod1<1B
81 80 reximdva A+Bx0By0Bx<yBAxmod1=BAymod1y0Bx<yAxmod1Aymod1<1B
82 81 reximdva A+Bx0By0Bx<yBAxmod1=BAymod1x0By0Bx<yAxmod1Aymod1<1B
83 1 82 mpd A+Bx0By0Bx<yAxmod1Aymod1<1B