Metamath Proof Explorer


Theorem m1modmmod

Description: An integer decreased by 1 modulo a positive integer minus the integer modulo the same modulus is either -1 or the modulus minus 1. (Contributed by AV, 7-Jun-2020)

Ref Expression
Assertion m1modmmod ANA1modNAmodN=ifAmodN=0N11

Proof

Step Hyp Ref Expression
1 oveq2 AmodN=0A1modNAmodN=A1modN0
2 1 adantl ANAmodN=0A1modNAmodN=A1modN0
3 peano2zm AA1
4 3 zred AA1
5 4 adantr ANA1
6 nnrp NN+
7 6 adantl ANN+
8 5 7 modcld ANA1modN
9 8 recnd ANA1modN
10 9 subid1d ANA1modN0=A1modN
11 10 adantr ANAmodN=0A1modN0=A1modN
12 mod0mul ANAmodN=0xA=x N
13 12 imp ANAmodN=0xA=x N
14 oveq1 A=x NA1=x N1
15 14 oveq1d A=x NA1modN=x N1modN
16 zcn xx
17 nncn NN
18 17 adantl ANN
19 mulcl xNx N
20 16 18 19 syl2anr ANxx N
21 18 adantr ANxN
22 20 21 npcand ANxx N-N+N=x N
23 22 eqcomd ANxx N=x N-N+N
24 16 adantl ANxx
25 24 21 mulsubfacd ANxx NN=x1 N
26 25 oveq1d ANxx N-N+N=x1 N+N
27 23 26 eqtrd ANxx N=x1 N+N
28 27 oveq1d ANxx N1=x1 N+N-1
29 peano2zm xx1
30 29 zcnd xx1
31 mulcl x1Nx1 N
32 30 18 31 syl2anr ANxx1 N
33 1cnd ANx1
34 32 21 33 addsubassd ANxx1 N+N-1=x1 N+N-1
35 28 34 eqtrd ANxx N1=x1 N+N-1
36 35 oveq1d ANxx N1modN=x1 N+N-1modN
37 nnre NN
38 peano2rem NN1
39 37 38 syl NN1
40 39 recnd NN1
41 40 adantl ANN1
42 41 adantr ANxN1
43 32 42 addcomd ANxx1 N+N-1=N-1+x1 N
44 43 oveq1d ANxx1 N+N-1modN=N-1+x1 NmodN
45 39 adantl ANN1
46 45 adantr ANxN1
47 7 adantr ANxN+
48 29 adantl ANxx1
49 modcyc N1N+x1N-1+x1 NmodN=N1modN
50 46 47 48 49 syl3anc ANxN-1+x1 NmodN=N1modN
51 39 6 jca NN1N+
52 51 adantl ANN1N+
53 52 adantr ANxN1N+
54 nnm1ge0 N0N1
55 54 adantl AN0N1
56 55 adantr ANx0N1
57 37 ltm1d NN1<N
58 57 adantl ANN1<N
59 58 adantr ANxN1<N
60 modid N1N+0N1N1<NN1modN=N1
61 53 56 59 60 syl12anc ANxN1modN=N1
62 50 61 eqtrd ANxN-1+x1 NmodN=N1
63 36 44 62 3eqtrd ANxx N1modN=N1
64 15 63 sylan9eqr ANxA=x NA1modN=N1
65 64 rexlimdva2 ANxA=x NA1modN=N1
66 65 adantr ANAmodN=0xA=x NA1modN=N1
67 13 66 mpd ANAmodN=0A1modN=N1
68 2 11 67 3eqtrrd ANAmodN=0N1=A1modNAmodN
69 df-ne AmodN0¬AmodN=0
70 modn0mul ANAmodN0xy1..^NA=x N+y
71 oveq1 A=x N+yA1=x N+y-1
72 71 oveq1d A=x N+yA1modN=x N+y-1modN
73 oveq1 A=x N+yAmodN=x N+ymodN
74 72 73 oveq12d A=x N+yA1modNAmodN=x N+y-1modNx N+ymodN
75 16 adantr xy1..^Nx
76 75 18 19 syl2anr ANxy1..^Nx N
77 elfzoelz y1..^Ny
78 77 zcnd y1..^Ny
79 78 adantl xy1..^Ny
80 79 adantl ANxy1..^Ny
81 1cnd ANxy1..^N1
82 76 80 81 addsubassd ANxy1..^Nx N+y-1=x N+y-1
83 peano2zm yy1
84 77 83 syl y1..^Ny1
85 84 zcnd y1..^Ny1
86 85 adantl xy1..^Ny1
87 86 adantl ANxy1..^Ny1
88 76 87 addcomd ANxy1..^Nx N+y-1=y-1+x N
89 82 88 eqtrd ANxy1..^Nx N+y-1=y-1+x N
90 89 oveq1d ANxy1..^Nx N+y-1modN=y-1+x NmodN
91 84 zred y1..^Ny1
92 91 adantl xy1..^Ny1
93 92 adantl ANxy1..^Ny1
94 7 adantr ANxy1..^NN+
95 simprl ANxy1..^Nx
96 modcyc y1N+xy-1+x NmodN=y1modN
97 93 94 95 96 syl3anc ANxy1..^Ny-1+x NmodN=y1modN
98 90 97 eqtrd ANxy1..^Nx N+y-1modN=y1modN
99 76 80 addcomd ANxy1..^Nx N+y=y+x N
100 99 oveq1d ANxy1..^Nx N+ymodN=y+x NmodN
101 77 zred y1..^Ny
102 101 adantl xy1..^Ny
103 102 adantl ANxy1..^Ny
104 modcyc yN+xy+x NmodN=ymodN
105 103 94 95 104 syl3anc ANxy1..^Ny+x NmodN=ymodN
106 7 102 anim12ci ANxy1..^NyN+
107 elfzole1 y1..^N1y
108 0lt1 0<1
109 0red y1..^N0
110 1red y1..^N1
111 ltleletr 01y0<11y0y
112 109 110 101 111 syl3anc y1..^N0<11y0y
113 108 112 mpani y1..^N1y0y
114 107 113 mpd y1..^N0y
115 elfzolt2 y1..^Ny<N
116 114 115 jca y1..^N0yy<N
117 116 adantl xy1..^N0yy<N
118 117 adantl ANxy1..^N0yy<N
119 106 118 jca ANxy1..^NyN+0yy<N
120 modid yN+0yy<NymodN=y
121 119 120 syl ANxy1..^NymodN=y
122 100 105 121 3eqtrd ANxy1..^Nx N+ymodN=y
123 98 122 oveq12d ANxy1..^Nx N+y-1modNx N+ymodN=y1modNy
124 74 123 sylan9eqr ANxy1..^NA=x N+yA1modNAmodN=y1modNy
125 7 92 anim12ci ANxy1..^Ny1N+
126 elfzo2 y1..^Ny1Ny<N
127 eluz2 y11y1y
128 zre yy
129 zre 11
130 subge0 y10y11y
131 128 129 130 syl2anr 1y0y11y
132 131 biimp3ar 1y1y0y1
133 127 132 sylbi y10y1
134 133 3ad2ant1 y1Ny<N0y1
135 126 134 sylbi y1..^N0y1
136 135 adantl xy1..^N0y1
137 136 adantl ANxy1..^N0y1
138 eluzelz y1y
139 138 zred y1y
140 zre NN
141 ltle yNy<NyN
142 139 140 141 syl2an y1Ny<NyN
143 142 3impia y1Ny<NyN
144 138 anim1i y1NyN
145 144 3adant3 y1Ny<NyN
146 zlem1lt yNyNy1<N
147 145 146 syl y1Ny<NyNy1<N
148 143 147 mpbid y1Ny<Ny1<N
149 148 a1d y1Ny<NANy1<N
150 126 149 sylbi y1..^NANy1<N
151 150 adantl xy1..^NANy1<N
152 151 impcom ANxy1..^Ny1<N
153 modid y1N+0y1y1<Ny1modN=y1
154 125 137 152 153 syl12anc ANxy1..^Ny1modN=y1
155 154 oveq1d ANxy1..^Ny1modNy=y-1-y
156 1cnd y1..^N1
157 78 156 78 sub32d y1..^Ny-1-y=y-y-1
158 78 subidd y1..^Nyy=0
159 158 oveq1d y1..^Ny-y-1=01
160 157 159 eqtrd y1..^Ny-1-y=01
161 160 adantl xy1..^Ny-1-y=01
162 161 adantl ANxy1..^Ny-1-y=01
163 df-neg 1=01
164 162 163 eqtr4di ANxy1..^Ny-1-y=1
165 155 164 eqtrd ANxy1..^Ny1modNy=1
166 165 adantr ANxy1..^NA=x N+yy1modNy=1
167 124 166 eqtrd ANxy1..^NA=x N+yA1modNAmodN=1
168 167 eqcomd ANxy1..^NA=x N+y1=A1modNAmodN
169 168 ex ANxy1..^NA=x N+y1=A1modNAmodN
170 169 rexlimdvva ANxy1..^NA=x N+y1=A1modNAmodN
171 70 170 syld ANAmodN01=A1modNAmodN
172 69 171 biimtrrid AN¬AmodN=01=A1modNAmodN
173 172 imp AN¬AmodN=01=A1modNAmodN
174 68 173 ifeqda ANifAmodN=0N11=A1modNAmodN
175 174 eqcomd ANA1modNAmodN=ifAmodN=0N11