Metamath Proof Explorer


Theorem lgsne0

Description: The Legendre symbol is nonzero (and hence equal to 1 or -u 1 ) precisely when the arguments are coprime. (Contributed by Mario Carneiro, 5-Feb-2015)

Ref Expression
Assertion lgsne0 ANA/LN0AgcdN=1

Proof

Step Hyp Ref Expression
1 iffalse ¬A2=1ifA2=110=0
2 1 necon1ai ifA2=1100A2=1
3 iftrue A2=1ifA2=110=1
4 ax-1ne0 10
5 4 a1i A2=110
6 3 5 eqnetrd A2=1ifA2=1100
7 2 6 impbii ifA2=1100A2=1
8 zre AA
9 8 ad2antrr ANN=0A
10 absresq AA2=A2
11 9 10 syl ANN=0A2=A2
12 sq1 12=1
13 12 a1i ANN=012=1
14 11 13 eqeq12d ANN=0A2=12A2=1
15 9 recnd ANN=0A
16 15 abscld ANN=0A
17 15 absge0d ANN=00A
18 1re 1
19 0le1 01
20 sq11 A0A101A2=12A=1
21 18 19 20 mpanr12 A0AA2=12A=1
22 16 17 21 syl2anc ANN=0A2=12A=1
23 14 22 bitr3d ANN=0A2=1A=1
24 7 23 bitrid ANN=0ifA2=1100A=1
25 oveq2 N=0A/LN=A/L0
26 lgs0 AA/L0=ifA2=110
27 26 adantr ANA/L0=ifA2=110
28 25 27 sylan9eqr ANN=0A/LN=ifA2=110
29 28 neeq1d ANN=0A/LN0ifA2=1100
30 oveq2 N=0AgcdN=Agcd0
31 gcdid0 AAgcd0=A
32 31 adantr ANAgcd0=A
33 30 32 sylan9eqr ANN=0AgcdN=A
34 33 eqeq1d ANN=0AgcdN=1A=1
35 24 29 34 3bitr4d ANN=0A/LN0AgcdN=1
36 eqid nifnA/LnnpCntN1=nifnA/LnnpCntN1
37 36 lgsval4 ANN0A/LN=ifN<0A<011seq1×nifnA/LnnpCntN1N
38 37 neeq1d ANN0A/LN0ifN<0A<011seq1×nifnA/LnnpCntN1N0
39 neeq1 1=ifN<0A<01110ifN<0A<0110
40 neeq1 1=ifN<0A<01110ifN<0A<0110
41 neg1ne0 10
42 39 40 41 4 keephyp ifN<0A<0110
43 42 biantrur seq1×nifnA/LnnpCntN1N0ifN<0A<0110seq1×nifnA/LnnpCntN1N0
44 neg1cn 1
45 ax-1cn 1
46 44 45 ifcli ifN<0A<011
47 46 a1i ANN0ifN<0A<011
48 nnabscl NN0N
49 48 3adant1 ANN0N
50 nnuz =1
51 49 50 eleqtrdi ANN0N1
52 36 lgsfcl3 ANN0nifnA/LnnpCntN1:
53 elfznn k1Nk
54 ffvelcdm nifnA/LnnpCntN1:knifnA/LnnpCntN1k
55 52 53 54 syl2an ANN0k1NnifnA/LnnpCntN1k
56 55 zcnd ANN0k1NnifnA/LnnpCntN1k
57 mulcl kxkx
58 57 adantl ANN0kxkx
59 51 56 58 seqcl ANN0seq1×nifnA/LnnpCntN1N
60 47 59 mulne0bd ANN0ifN<0A<0110seq1×nifnA/LnnpCntN1N0ifN<0A<011seq1×nifnA/LnnpCntN1N0
61 43 60 bitr2id ANN0ifN<0A<011seq1×nifnA/LnnpCntN1N0seq1×nifnA/LnnpCntN1N0
62 gcd2n0cl ANN0AgcdN
63 eluz2b3 AgcdN2AgcdNAgcdN1
64 exprmfct AgcdN2ppAgcdN
65 63 64 sylbir AgcdNAgcdN1ppAgcdN
66 57 adantl ANN0ppAgcdNkxkx
67 56 adantlr ANN0ppAgcdNk1NnifnA/LnnpCntN1k
68 mul02 k0k=0
69 68 adantl ANN0ppAgcdNk0k=0
70 mul01 kk0=0
71 70 adantl ANN0ppAgcdNkk0=0
72 simprr ANN0ppAgcdNpAgcdN
73 prmz pp
74 73 ad2antrl ANN0ppAgcdNp
75 simpl1 ANN0ppAgcdNA
76 simpl2 ANN0ppAgcdNN
77 dvdsgcdb pANpApNpAgcdN
78 74 75 76 77 syl3anc ANN0ppAgcdNpApNpAgcdN
79 72 78 mpbird ANN0ppAgcdNpApN
80 79 simprd ANN0ppAgcdNpN
81 dvdsabsb pNpNpN
82 74 76 81 syl2anc ANN0ppAgcdNpNpN
83 80 82 mpbid ANN0ppAgcdNpN
84 49 adantr ANN0ppAgcdNN
85 dvdsle pNpNpN
86 74 84 85 syl2anc ANN0ppAgcdNpNpN
87 83 86 mpd ANN0ppAgcdNpN
88 prmnn pp
89 88 ad2antrl ANN0ppAgcdNp
90 89 50 eleqtrdi ANN0ppAgcdNp1
91 84 nnzd ANN0ppAgcdNN
92 elfz5 p1Np1NpN
93 90 91 92 syl2anc ANN0ppAgcdNp1NpN
94 87 93 mpbird ANN0ppAgcdNp1N
95 eleq1w n=pnp
96 oveq2 n=pA/Ln=A/Lp
97 oveq1 n=pnpCntN=ppCntN
98 96 97 oveq12d n=pA/LnnpCntN=A/LpppCntN
99 95 98 ifbieq1d n=pifnA/LnnpCntN1=ifpA/LpppCntN1
100 ovex A/LpppCntNV
101 1ex 1V
102 100 101 ifex ifpA/LpppCntN1V
103 99 36 102 fvmpt pnifnA/LnnpCntN1p=ifpA/LpppCntN1
104 89 103 syl ANN0ppAgcdNnifnA/LnnpCntN1p=ifpA/LpppCntN1
105 iftrue pifpA/LpppCntN1=A/LpppCntN
106 105 ad2antrl ANN0ppAgcdNifpA/LpppCntN1=A/LpppCntN
107 oveq2 p=2A/Lp=A/L2
108 lgs2 AA/L2=if2A0ifAmod81711
109 75 108 syl ANN0ppAgcdNA/L2=if2A0ifAmod81711
110 107 109 sylan9eqr ANN0ppAgcdNp=2A/Lp=if2A0ifAmod81711
111 simpr ANN0ppAgcdNp=2p=2
112 79 simpld ANN0ppAgcdNpA
113 112 adantr ANN0ppAgcdNp=2pA
114 111 113 eqbrtrrd ANN0ppAgcdNp=22A
115 114 iftrued ANN0ppAgcdNp=2if2A0ifAmod81711=0
116 110 115 eqtrd ANN0ppAgcdNp=2A/Lp=0
117 simpll1 ANN0ppAgcdNp2A
118 simprl ANN0ppAgcdNp
119 118 adantr ANN0ppAgcdNp2p
120 simpr ANN0ppAgcdNp2p2
121 eldifsn p2pp2
122 119 120 121 sylanbrc ANN0ppAgcdNp2p2
123 lgsval3 Ap2A/Lp=Ap12+1modp1
124 117 122 123 syl2anc ANN0ppAgcdNp2A/Lp=Ap12+1modp1
125 oddprm p2p12
126 122 125 syl ANN0ppAgcdNp2p12
127 126 nnnn0d ANN0ppAgcdNp2p120
128 zexpcl Ap120Ap12
129 117 127 128 syl2anc ANN0ppAgcdNp2Ap12
130 129 zred ANN0ppAgcdNp2Ap12
131 0red ANN0ppAgcdNp20
132 18 a1i ANN0ppAgcdNp21
133 119 88 syl ANN0ppAgcdNp2p
134 133 nnrpd ANN0ppAgcdNp2p+
135 0zd ANN0ppAgcdNp20
136 112 adantr ANN0ppAgcdNp2pA
137 dvdsval3 pApAAmodp=0
138 133 117 137 syl2anc ANN0ppAgcdNp2pAAmodp=0
139 136 138 mpbid ANN0ppAgcdNp2Amodp=0
140 0mod p+0modp=0
141 134 140 syl ANN0ppAgcdNp20modp=0
142 139 141 eqtr4d ANN0ppAgcdNp2Amodp=0modp
143 modexp A0p120p+Amodp=0modpAp12modp=0p12modp
144 117 135 127 134 142 143 syl221anc ANN0ppAgcdNp2Ap12modp=0p12modp
145 126 0expd ANN0ppAgcdNp20p12=0
146 145 oveq1d ANN0ppAgcdNp20p12modp=0modp
147 144 146 eqtrd ANN0ppAgcdNp2Ap12modp=0modp
148 modadd1 Ap1201p+Ap12modp=0modpAp12+1modp=0+1modp
149 130 131 132 134 147 148 syl221anc ANN0ppAgcdNp2Ap12+1modp=0+1modp
150 0p1e1 0+1=1
151 150 oveq1i 0+1modp=1modp
152 149 151 eqtrdi ANN0ppAgcdNp2Ap12+1modp=1modp
153 133 nnred ANN0ppAgcdNp2p
154 prmuz2 pp2
155 119 154 syl ANN0ppAgcdNp2p2
156 eluz2b2 p2p1<p
157 155 156 sylib ANN0ppAgcdNp2p1<p
158 157 simprd ANN0ppAgcdNp21<p
159 1mod p1<p1modp=1
160 153 158 159 syl2anc ANN0ppAgcdNp21modp=1
161 152 160 eqtrd ANN0ppAgcdNp2Ap12+1modp=1
162 161 oveq1d ANN0ppAgcdNp2Ap12+1modp1=11
163 1m1e0 11=0
164 162 163 eqtrdi ANN0ppAgcdNp2Ap12+1modp1=0
165 124 164 eqtrd ANN0ppAgcdNp2A/Lp=0
166 116 165 pm2.61dane ANN0ppAgcdNA/Lp=0
167 166 oveq1d ANN0ppAgcdNA/LpppCntN=0ppCntN
168 zq NN
169 76 168 syl ANN0ppAgcdNN
170 pcabs pNppCntN=ppCntN
171 118 169 170 syl2anc ANN0ppAgcdNppCntN=ppCntN
172 pcelnn pNppCntNpN
173 118 84 172 syl2anc ANN0ppAgcdNppCntNpN
174 83 173 mpbird ANN0ppAgcdNppCntN
175 171 174 eqeltrrd ANN0ppAgcdNppCntN
176 175 0expd ANN0ppAgcdN0ppCntN=0
177 167 176 eqtrd ANN0ppAgcdNA/LpppCntN=0
178 104 106 177 3eqtrd ANN0ppAgcdNnifnA/LnnpCntN1p=0
179 66 67 69 71 94 84 178 seqz ANN0ppAgcdNseq1×nifnA/LnnpCntN1N=0
180 179 rexlimdvaa ANN0ppAgcdNseq1×nifnA/LnnpCntN1N=0
181 65 180 syl5 ANN0AgcdNAgcdN1seq1×nifnA/LnnpCntN1N=0
182 62 181 mpand ANN0AgcdN1seq1×nifnA/LnnpCntN1N=0
183 182 necon1d ANN0seq1×nifnA/LnnpCntN1N0AgcdN=1
184 51 adantr ANN0AgcdN=1N1
185 53 adantl ANN0AgcdN=1k1Nk
186 eleq1w n=knk
187 oveq2 n=kA/Ln=A/Lk
188 oveq1 n=knpCntN=kpCntN
189 187 188 oveq12d n=kA/LnnpCntN=A/LkkpCntN
190 186 189 ifbieq1d n=kifnA/LnnpCntN1=ifkA/LkkpCntN1
191 ovex A/LkkpCntNV
192 191 101 ifex ifkA/LkkpCntN1V
193 190 36 192 fvmpt knifnA/LnnpCntN1k=ifkA/LkkpCntN1
194 185 193 syl ANN0AgcdN=1k1NnifnA/LnnpCntN1k=ifkA/LkkpCntN1
195 simpll1 ANN0AgcdN=1kA
196 prmz kk
197 196 adantl ANN0AgcdN=1kk
198 lgscl AkA/Lk
199 195 197 198 syl2anc ANN0AgcdN=1kA/Lk
200 199 zcnd ANN0AgcdN=1kA/Lk
201 200 adantr ANN0AgcdN=1kkNA/Lk
202 oveq2 k=2A/Lk=A/L2
203 195 adantr ANN0AgcdN=1kkNA
204 203 108 syl ANN0AgcdN=1kkNA/L2=if2A0ifAmod81711
205 202 204 sylan9eqr ANN0AgcdN=1kkNk=2A/Lk=if2A0ifAmod81711
206 nprmdvds1 k¬k1
207 206 adantl ANN0AgcdN=1k¬k1
208 simpll2 ANN0AgcdN=1kN
209 dvdsgcdb kANkAkNkAgcdN
210 197 195 208 209 syl3anc ANN0AgcdN=1kkAkNkAgcdN
211 simplr ANN0AgcdN=1kAgcdN=1
212 211 breq2d ANN0AgcdN=1kkAgcdNk1
213 210 212 bitrd ANN0AgcdN=1kkAkNk1
214 207 213 mtbird ANN0AgcdN=1k¬kAkN
215 imnan kA¬kN¬kAkN
216 214 215 sylibr ANN0AgcdN=1kkA¬kN
217 216 con2d ANN0AgcdN=1kkN¬kA
218 217 imp ANN0AgcdN=1kkN¬kA
219 breq1 k=2kA2A
220 219 notbid k=2¬kA¬2A
221 218 220 syl5ibcom ANN0AgcdN=1kkNk=2¬2A
222 221 imp ANN0AgcdN=1kkNk=2¬2A
223 222 iffalsed ANN0AgcdN=1kkNk=2if2A0ifAmod81711=ifAmod81711
224 205 223 eqtrd ANN0AgcdN=1kkNk=2A/Lk=ifAmod81711
225 neeq1 1=ifAmod8171110ifAmod817110
226 neeq1 1=ifAmod8171110ifAmod817110
227 225 226 4 41 keephyp ifAmod817110
228 227 a1i ANN0AgcdN=1kkNk=2ifAmod817110
229 224 228 eqnetrd ANN0AgcdN=1kkNk=2A/Lk0
230 simpr ANN0AgcdN=1kk
231 230 ad2antrr ANN0AgcdN=1kkNk2k
232 231 206 syl ANN0AgcdN=1kkNk2¬k1
233 simplr ANN0AgcdN=1kkNk2kN
234 231 196 syl ANN0AgcdN=1kkNk2k
235 203 adantr ANN0AgcdN=1kkNk2A
236 simpr ANN0AgcdN=1kkNk2k2
237 eldifsn k2kk2
238 231 236 237 sylanbrc ANN0AgcdN=1kkNk2k2
239 oddprm k2k12
240 238 239 syl ANN0AgcdN=1kkNk2k12
241 240 nnnn0d ANN0AgcdN=1kkNk2k120
242 zexpcl Ak120Ak12
243 235 241 242 syl2anc ANN0AgcdN=1kkNk2Ak12
244 208 ad2antrr ANN0AgcdN=1kkNk2N
245 dvdsgcd kAk12NkAk12kNkAk12gcdN
246 234 243 244 245 syl3anc ANN0AgcdN=1kkNk2kAk12kNkAk12gcdN
247 233 246 mpan2d ANN0AgcdN=1kkNk2kAk12kAk12gcdN
248 235 zcnd ANN0AgcdN=1kkNk2A
249 248 241 absexpd ANN0AgcdN=1kkNk2Ak12=Ak12
250 249 oveq1d ANN0AgcdN=1kkNk2Ak12gcdN=Ak12gcdN
251 gcdabs Ak12NAk12gcdN=Ak12gcdN
252 243 244 251 syl2anc ANN0AgcdN=1kkNk2Ak12gcdN=Ak12gcdN
253 gcdabs ANAgcdN=AgcdN
254 235 244 253 syl2anc ANN0AgcdN=1kkNk2AgcdN=AgcdN
255 211 ad2antrr ANN0AgcdN=1kkNk2AgcdN=1
256 254 255 eqtrd ANN0AgcdN=1kkNk2AgcdN=1
257 218 adantr ANN0AgcdN=1kkNk2¬kA
258 dvds0 kk0
259 234 258 syl ANN0AgcdN=1kkNk2k0
260 breq2 A=0kAk0
261 259 260 syl5ibrcom ANN0AgcdN=1kkNk2A=0kA
262 261 necon3bd ANN0AgcdN=1kkNk2¬kAA0
263 257 262 mpd ANN0AgcdN=1kkNk2A0
264 nnabscl AA0A
265 235 263 264 syl2anc ANN0AgcdN=1kkNk2A
266 simpll3 ANN0AgcdN=1kN0
267 208 266 48 syl2anc ANN0AgcdN=1kN
268 267 ad2antrr ANN0AgcdN=1kkNk2N
269 rplpwr ANk12AgcdN=1Ak12gcdN=1
270 265 268 240 269 syl3anc ANN0AgcdN=1kkNk2AgcdN=1Ak12gcdN=1
271 256 270 mpd ANN0AgcdN=1kkNk2Ak12gcdN=1
272 250 252 271 3eqtr3d ANN0AgcdN=1kkNk2Ak12gcdN=1
273 272 breq2d ANN0AgcdN=1kkNk2kAk12gcdNk1
274 247 273 sylibd ANN0AgcdN=1kkNk2kAk12k1
275 232 274 mtod ANN0AgcdN=1kkNk2¬kAk12
276 prmnn kk
277 276 adantl ANN0AgcdN=1kk
278 277 ad2antrr ANN0AgcdN=1kkNk2k
279 dvdsval3 kAk12kAk12Ak12modk=0
280 278 243 279 syl2anc ANN0AgcdN=1kkNk2kAk12Ak12modk=0
281 280 necon3bbid ANN0AgcdN=1kkNk2¬kAk12Ak12modk0
282 275 281 mpbid ANN0AgcdN=1kkNk2Ak12modk0
283 lgsvalmod Ak2A/Lkmodk=Ak12modk
284 235 238 283 syl2anc ANN0AgcdN=1kkNk2A/Lkmodk=Ak12modk
285 278 nnrpd ANN0AgcdN=1kkNk2k+
286 0mod k+0modk=0
287 285 286 syl ANN0AgcdN=1kkNk20modk=0
288 282 284 287 3netr4d ANN0AgcdN=1kkNk2A/Lkmodk0modk
289 oveq1 A/Lk=0A/Lkmodk=0modk
290 289 necon3i A/Lkmodk0modkA/Lk0
291 288 290 syl ANN0AgcdN=1kkNk2A/Lk0
292 229 291 pm2.61dane ANN0AgcdN=1kkNA/Lk0
293 pczcl kNN0kpCntN0
294 230 208 266 293 syl12anc ANN0AgcdN=1kkpCntN0
295 294 nn0zd ANN0AgcdN=1kkpCntN
296 295 adantr ANN0AgcdN=1kkNkpCntN
297 neeq1 x=A/LkkpCntNx0A/LkkpCntN0
298 expclz A/LkA/Lk0kpCntNA/LkkpCntN
299 expne0i A/LkA/Lk0kpCntNA/LkkpCntN0
300 297 298 299 elrabd A/LkA/Lk0kpCntNA/LkkpCntNx|x0
301 201 292 296 300 syl3anc ANN0AgcdN=1kkNA/LkkpCntNx|x0
302 dvdsabsb kNkNkN
303 197 208 302 syl2anc ANN0AgcdN=1kkNkN
304 303 notbid ANN0AgcdN=1k¬kN¬kN
305 pceq0 kNkpCntN=0¬kN
306 230 267 305 syl2anc ANN0AgcdN=1kkpCntN=0¬kN
307 208 168 syl ANN0AgcdN=1kN
308 pcabs kNkpCntN=kpCntN
309 230 307 308 syl2anc ANN0AgcdN=1kkpCntN=kpCntN
310 309 eqeq1d ANN0AgcdN=1kkpCntN=0kpCntN=0
311 304 306 310 3bitr2rd ANN0AgcdN=1kkpCntN=0¬kN
312 311 biimpar ANN0AgcdN=1k¬kNkpCntN=0
313 312 oveq2d ANN0AgcdN=1k¬kNA/LkkpCntN=A/Lk0
314 200 adantr ANN0AgcdN=1k¬kNA/Lk
315 314 exp0d ANN0AgcdN=1k¬kNA/Lk0=1
316 313 315 eqtrd ANN0AgcdN=1k¬kNA/LkkpCntN=1
317 neeq1 x=1x010
318 317 elrab 1x|x0110
319 45 4 318 mpbir2an 1x|x0
320 316 319 eqeltrdi ANN0AgcdN=1k¬kNA/LkkpCntNx|x0
321 301 320 pm2.61dan ANN0AgcdN=1kA/LkkpCntNx|x0
322 319 a1i ANN0AgcdN=1¬k1x|x0
323 321 322 ifclda ANN0AgcdN=1ifkA/LkkpCntN1x|x0
324 323 adantr ANN0AgcdN=1k1NifkA/LkkpCntN1x|x0
325 194 324 eqeltrd ANN0AgcdN=1k1NnifnA/LnnpCntN1kx|x0
326 neeq1 x=kx0k0
327 326 elrab kx|x0kk0
328 neeq1 x=yx0y0
329 328 elrab yx|x0yy0
330 mulcl kyky
331 330 ad2ant2r kk0yy0ky
332 mulne0 kk0yy0ky0
333 331 332 jca kk0yy0kyky0
334 327 329 333 syl2anb kx|x0yx|x0kyky0
335 neeq1 x=kyx0ky0
336 335 elrab kyx|x0kyky0
337 334 336 sylibr kx|x0yx|x0kyx|x0
338 337 adantl ANN0AgcdN=1kx|x0yx|x0kyx|x0
339 184 325 338 seqcl ANN0AgcdN=1seq1×nifnA/LnnpCntN1Nx|x0
340 neeq1 x=seq1×nifnA/LnnpCntN1Nx0seq1×nifnA/LnnpCntN1N0
341 340 elrab seq1×nifnA/LnnpCntN1Nx|x0seq1×nifnA/LnnpCntN1Nseq1×nifnA/LnnpCntN1N0
342 341 simprbi seq1×nifnA/LnnpCntN1Nx|x0seq1×nifnA/LnnpCntN1N0
343 339 342 syl ANN0AgcdN=1seq1×nifnA/LnnpCntN1N0
344 343 ex ANN0AgcdN=1seq1×nifnA/LnnpCntN1N0
345 183 344 impbid ANN0seq1×nifnA/LnnpCntN1N0AgcdN=1
346 38 61 345 3bitrd ANN0A/LN0AgcdN=1
347 346 3expa ANN0A/LN0AgcdN=1
348 35 347 pm2.61dane ANA/LN0AgcdN=1