Metamath Proof Explorer


Theorem difmodm1lt

Description: The difference between an integer modulo a positive integer and the integer decreased by 1 modulo the same modulus is less than the modulus decreased by 1 (if the modulus is greater than 2). This theorem would not be valid for an odd A and N = 2 , since ( ( A mod N ) - ( ( A - 1 ) mod N ) ) would be ( 1 - 0 ) = 1 which is not less than ( N - 1 ) = 1 . (Contributed by AV, 6-Jun-2012)

Ref Expression
Assertion difmodm1lt AN2<NAmodNA1modN<N1

Proof

Step Hyp Ref Expression
1 simpl AmodN=1AN2<NAmodN=1
2 zre AA
3 2 3ad2ant1 AN2<NA
4 nnre NN
5 4 3ad2ant2 AN2<NN
6 1lt2 1<2
7 1red N1
8 2re 2
9 8 a1i N2
10 7 9 4 3jca N12N
11 lttr 12N1<22<N1<N
12 10 11 syl N1<22<N1<N
13 6 12 mpani N2<N1<N
14 13 a1i AN2<N1<N
15 14 3imp AN2<N1<N
16 3 5 15 3jca AN2<NAN1<N
17 16 adantl AmodN=1AN2<NAN1<N
18 m1mod0mod1 AN1<NA1modN=0AmodN=1
19 17 18 syl AmodN=1AN2<NA1modN=0AmodN=1
20 1 19 mpbird AmodN=1AN2<NA1modN=0
21 1 20 oveq12d AmodN=1AN2<NAmodNA1modN=10
22 df-2 2=1+1
23 22 breq1i 2<N1+1<N
24 23 biimpi 2<N1+1<N
25 24 adantl N2<N1+1<N
26 1red N2<N1
27 4 adantr N2<NN
28 26 26 27 ltaddsub2d N2<N1+1<N1<N1
29 25 28 mpbid N2<N1<N1
30 1m0e1 10=1
31 30 breq1i 10<N11<N1
32 29 31 sylibr N2<N10<N1
33 32 3adant1 AN2<N10<N1
34 33 adantl AmodN=1AN2<N10<N1
35 21 34 eqbrtrd AmodN=1AN2<NAmodNA1modN<N1
36 zmodfz ANAmodN0N1
37 36 3adant3 AN2<NAmodN0N1
38 elfzle2 AmodN0N1AmodNN1
39 37 38 syl AN2<NAmodNN1
40 39 adantl ¬AmodN=1AN2<NAmodNN1
41 nnrp NN+
42 41 3ad2ant2 AN2<NN+
43 3 42 modcld AN2<NAmodN
44 peano2rem NN1
45 4 44 syl NN1
46 45 3ad2ant2 AN2<NN1
47 peano2zm AA1
48 47 zred AA1
49 48 3ad2ant1 AN2<NA1
50 49 42 modcld AN2<NA1modN
51 43 46 50 3jca AN2<NAmodNN1A1modN
52 51 adantl ¬AmodN=1AN2<NAmodNN1A1modN
53 lesub1 AmodNN1A1modNAmodNN1AmodNA1modNN-1-A1modN
54 52 53 syl ¬AmodN=1AN2<NAmodNN1AmodNA1modNN-1-A1modN
55 40 54 mpbid ¬AmodN=1AN2<NAmodNA1modNN-1-A1modN
56 49 42 jca AN2<NA1N+
57 56 adantl ¬AmodN=1AN2<NA1N+
58 modge0 A1N+0A1modN
59 57 58 syl ¬AmodN=1AN2<N0A1modN
60 16 18 syl AN2<NA1modN=0AmodN=1
61 60 bicomd AN2<NAmodN=1A1modN=0
62 61 notbid AN2<N¬AmodN=1¬A1modN=0
63 62 biimpac ¬AmodN=1AN2<N¬A1modN=0
64 63 neqned ¬AmodN=1AN2<NA1modN0
65 59 64 jca ¬AmodN=1AN2<N0A1modNA1modN0
66 0red AN2<N0
67 66 50 jca AN2<N0A1modN
68 67 adantl ¬AmodN=1AN2<N0A1modN
69 ltlen 0A1modN0<A1modN0A1modNA1modN0
70 68 69 syl ¬AmodN=1AN2<N0<A1modN0A1modNA1modN0
71 65 70 mpbird ¬AmodN=1AN2<N0<A1modN
72 50 46 jca AN2<NA1modNN1
73 72 adantl ¬AmodN=1AN2<NA1modNN1
74 ltsubpos A1modNN10<A1modNN-1-A1modN<N1
75 73 74 syl ¬AmodN=1AN2<N0<A1modNN-1-A1modN<N1
76 71 75 mpbid ¬AmodN=1AN2<NN-1-A1modN<N1
77 43 50 resubcld AN2<NAmodNA1modN
78 46 50 resubcld AN2<NN-1-A1modN
79 77 78 46 3jca AN2<NAmodNA1modNN-1-A1modNN1
80 79 adantl ¬AmodN=1AN2<NAmodNA1modNN-1-A1modNN1
81 lelttr AmodNA1modNN-1-A1modNN1AmodNA1modNN-1-A1modNN-1-A1modN<N1AmodNA1modN<N1
82 80 81 syl ¬AmodN=1AN2<NAmodNA1modNN-1-A1modNN-1-A1modN<N1AmodNA1modN<N1
83 55 76 82 mp2and ¬AmodN=1AN2<NAmodNA1modN<N1
84 35 83 pm2.61ian AN2<NAmodNA1modN<N1