| Step | Hyp | Ref | Expression | 
						
							| 1 |  | 2nn |  | 
						
							| 2 |  | nnmulcl |  | 
						
							| 3 | 1 2 | mpan |  | 
						
							| 4 | 3 | nnred |  | 
						
							| 5 |  | peano2rem |  | 
						
							| 6 | 4 5 | syl |  | 
						
							| 7 |  | chtcl |  | 
						
							| 8 | 6 7 | syl |  | 
						
							| 9 |  | nnre |  | 
						
							| 10 |  | chtcl |  | 
						
							| 11 | 9 10 | syl |  | 
						
							| 12 |  | nnnn0 |  | 
						
							| 13 |  | 2m1e1 |  | 
						
							| 14 | 13 | oveq2i |  | 
						
							| 15 | 3 | nncnd |  | 
						
							| 16 |  | 2cn |  | 
						
							| 17 |  | ax-1cn |  | 
						
							| 18 |  | subsub |  | 
						
							| 19 | 16 17 18 | mp3an23 |  | 
						
							| 20 | 15 19 | syl |  | 
						
							| 21 |  | nncn |  | 
						
							| 22 |  | subdi |  | 
						
							| 23 | 16 17 22 | mp3an13 |  | 
						
							| 24 | 21 23 | syl |  | 
						
							| 25 |  | 2t1e2 |  | 
						
							| 26 | 25 | oveq2i |  | 
						
							| 27 | 24 26 | eqtrdi |  | 
						
							| 28 | 27 | oveq1d |  | 
						
							| 29 | 20 28 | eqtr4d |  | 
						
							| 30 | 14 29 | eqtr3id |  | 
						
							| 31 |  | 2nn0 |  | 
						
							| 32 |  | nnm1nn0 |  | 
						
							| 33 |  | nn0mulcl |  | 
						
							| 34 | 31 32 33 | sylancr |  | 
						
							| 35 |  | nn0p1nn |  | 
						
							| 36 | 34 35 | syl |  | 
						
							| 37 | 30 36 | eqeltrd |  | 
						
							| 38 |  | nnnn0 |  | 
						
							| 39 | 37 38 | syl |  | 
						
							| 40 |  | 1re |  | 
						
							| 41 | 40 | a1i |  | 
						
							| 42 |  | nnge1 |  | 
						
							| 43 | 41 9 9 42 | leadd2dd |  | 
						
							| 44 | 21 | 2timesd |  | 
						
							| 45 | 43 44 | breqtrrd |  | 
						
							| 46 |  | leaddsub |  | 
						
							| 47 | 9 41 4 46 | syl3anc |  | 
						
							| 48 | 45 47 | mpbid |  | 
						
							| 49 |  | elfz2nn0 |  | 
						
							| 50 | 12 39 48 49 | syl3anbrc |  | 
						
							| 51 |  | bccl2 |  | 
						
							| 52 | 50 51 | syl |  | 
						
							| 53 | 52 | nnrpd |  | 
						
							| 54 | 53 | relogcld |  | 
						
							| 55 | 11 54 | readdcld |  | 
						
							| 56 |  | 4re |  | 
						
							| 57 |  | 4pos |  | 
						
							| 58 | 56 57 | elrpii |  | 
						
							| 59 |  | relogcl |  | 
						
							| 60 | 58 59 | ax-mp |  | 
						
							| 61 | 32 | nn0red |  | 
						
							| 62 |  | remulcl |  | 
						
							| 63 | 60 61 62 | sylancr |  | 
						
							| 64 | 11 63 | readdcld |  | 
						
							| 65 |  | iftrue |  | 
						
							| 66 | 65 | adantl |  | 
						
							| 67 |  | simpr |  | 
						
							| 68 | 52 | adantr |  | 
						
							| 69 | 67 68 | pccld |  | 
						
							| 70 |  | nn0addge1 |  | 
						
							| 71 | 40 69 70 | sylancr |  | 
						
							| 72 |  | iftrue |  | 
						
							| 73 | 72 | oveq1d |  | 
						
							| 74 | 73 | breq2d |  | 
						
							| 75 | 71 74 | syl5ibrcom |  | 
						
							| 76 | 75 | adantr |  | 
						
							| 77 |  | prmnn |  | 
						
							| 78 | 77 | ad2antlr |  | 
						
							| 79 |  | simprl |  | 
						
							| 80 |  | prmz |  | 
						
							| 81 | 37 | nnzd |  | 
						
							| 82 |  | eluz |  | 
						
							| 83 | 80 81 82 | syl2anr |  | 
						
							| 84 | 83 | adantr |  | 
						
							| 85 | 79 84 | mpbird |  | 
						
							| 86 |  | dvdsfac |  | 
						
							| 87 | 78 85 86 | syl2anc |  | 
						
							| 88 |  | id |  | 
						
							| 89 | 39 | faccld |  | 
						
							| 90 |  | pcelnn |  | 
						
							| 91 | 88 89 90 | syl2anr |  | 
						
							| 92 | 91 | adantr |  | 
						
							| 93 | 87 92 | mpbird |  | 
						
							| 94 | 93 | nnge1d |  | 
						
							| 95 |  | iffalse |  | 
						
							| 96 | 95 | oveq1d |  | 
						
							| 97 | 96 | ad2antll |  | 
						
							| 98 | 69 | nn0cnd |  | 
						
							| 99 | 98 | addlidd |  | 
						
							| 100 | 99 | adantr |  | 
						
							| 101 |  | bcval2 |  | 
						
							| 102 | 50 101 | syl |  | 
						
							| 103 | 32 | nn0cnd |  | 
						
							| 104 | 17 | a1i |  | 
						
							| 105 | 44 | oveq1d |  | 
						
							| 106 | 21 21 104 105 | assraddsubd |  | 
						
							| 107 | 21 103 106 | mvrladdd |  | 
						
							| 108 | 107 | fveq2d |  | 
						
							| 109 | 108 | oveq1d |  | 
						
							| 110 | 109 | oveq2d |  | 
						
							| 111 | 102 110 | eqtrd |  | 
						
							| 112 | 111 | adantr |  | 
						
							| 113 | 112 | oveq2d |  | 
						
							| 114 |  | nnz |  | 
						
							| 115 |  | nnne0 |  | 
						
							| 116 | 114 115 | jca |  | 
						
							| 117 | 89 116 | syl |  | 
						
							| 118 | 117 | adantr |  | 
						
							| 119 | 32 | faccld |  | 
						
							| 120 | 12 | faccld |  | 
						
							| 121 | 119 120 | nnmulcld |  | 
						
							| 122 | 121 | adantr |  | 
						
							| 123 |  | pcdiv |  | 
						
							| 124 | 67 118 122 123 | syl3anc |  | 
						
							| 125 |  | nnz |  | 
						
							| 126 |  | nnne0 |  | 
						
							| 127 | 125 126 | jca |  | 
						
							| 128 | 119 127 | syl |  | 
						
							| 129 | 128 | adantr |  | 
						
							| 130 |  | nnz |  | 
						
							| 131 |  | nnne0 |  | 
						
							| 132 | 130 131 | jca |  | 
						
							| 133 | 120 132 | syl |  | 
						
							| 134 | 133 | adantr |  | 
						
							| 135 |  | pcmul |  | 
						
							| 136 | 67 129 134 135 | syl3anc |  | 
						
							| 137 | 136 | oveq2d |  | 
						
							| 138 | 113 124 137 | 3eqtrd |  | 
						
							| 139 | 138 | adantr |  | 
						
							| 140 |  | simprr |  | 
						
							| 141 |  | prmfac1 |  | 
						
							| 142 | 141 | 3expia |  | 
						
							| 143 | 12 142 | sylan |  | 
						
							| 144 | 143 | adantr |  | 
						
							| 145 | 140 144 | mtod |  | 
						
							| 146 | 80 | adantl |  | 
						
							| 147 | 129 | simpld |  | 
						
							| 148 |  | nnz |  | 
						
							| 149 | 148 | adantr |  | 
						
							| 150 |  | dvdsmultr1 |  | 
						
							| 151 | 146 147 149 150 | syl3anc |  | 
						
							| 152 |  | facnn2 |  | 
						
							| 153 | 152 | adantr |  | 
						
							| 154 | 153 | breq2d |  | 
						
							| 155 | 151 154 | sylibrd |  | 
						
							| 156 | 155 | adantr |  | 
						
							| 157 | 145 156 | mtod |  | 
						
							| 158 |  | pceq0 |  | 
						
							| 159 | 88 119 158 | syl2anr |  | 
						
							| 160 | 159 | adantr |  | 
						
							| 161 | 157 160 | mpbird |  | 
						
							| 162 |  | pceq0 |  | 
						
							| 163 | 88 120 162 | syl2anr |  | 
						
							| 164 | 163 | adantr |  | 
						
							| 165 | 145 164 | mpbird |  | 
						
							| 166 | 161 165 | oveq12d |  | 
						
							| 167 |  | 00id |  | 
						
							| 168 | 166 167 | eqtrdi |  | 
						
							| 169 | 168 | oveq2d |  | 
						
							| 170 |  | pccl |  | 
						
							| 171 | 88 89 170 | syl2anr |  | 
						
							| 172 | 171 | nn0cnd |  | 
						
							| 173 | 172 | subid1d |  | 
						
							| 174 | 173 | adantr |  | 
						
							| 175 | 139 169 174 | 3eqtrd |  | 
						
							| 176 | 97 100 175 | 3eqtrd |  | 
						
							| 177 | 94 176 | breqtrrd |  | 
						
							| 178 | 177 | expr |  | 
						
							| 179 | 76 178 | pm2.61d |  | 
						
							| 180 | 66 179 | eqbrtrd |  | 
						
							| 181 | 180 | ex |  | 
						
							| 182 |  | 1nn0 |  | 
						
							| 183 |  | 0nn0 |  | 
						
							| 184 | 182 183 | ifcli |  | 
						
							| 185 |  | nn0addcl |  | 
						
							| 186 | 184 69 185 | sylancr |  | 
						
							| 187 | 186 | nn0ge0d |  | 
						
							| 188 |  | iffalse |  | 
						
							| 189 | 188 | breq1d |  | 
						
							| 190 | 187 189 | syl5ibrcom |  | 
						
							| 191 | 181 190 | pm2.61d |  | 
						
							| 192 |  | eqid |  | 
						
							| 193 | 192 | prmorcht |  | 
						
							| 194 | 37 193 | syl |  | 
						
							| 195 | 194 | oveq2d |  | 
						
							| 196 | 195 | adantr |  | 
						
							| 197 |  | nncn |  | 
						
							| 198 | 197 | exp1d |  | 
						
							| 199 | 198 | ifeq1d |  | 
						
							| 200 | 199 | mpteq2ia |  | 
						
							| 201 | 200 | eqcomi |  | 
						
							| 202 | 182 | a1i |  | 
						
							| 203 | 202 | ralrimiva |  | 
						
							| 204 | 37 | adantr |  | 
						
							| 205 |  | eqidd |  | 
						
							| 206 | 201 203 204 67 205 | pcmpt |  | 
						
							| 207 | 196 206 | eqtrd |  | 
						
							| 208 |  | efchtcl |  | 
						
							| 209 | 9 208 | syl |  | 
						
							| 210 | 209 | adantr |  | 
						
							| 211 |  | nnz |  | 
						
							| 212 |  | nnne0 |  | 
						
							| 213 | 211 212 | jca |  | 
						
							| 214 | 210 213 | syl |  | 
						
							| 215 |  | nnz |  | 
						
							| 216 |  | nnne0 |  | 
						
							| 217 | 215 216 | jca |  | 
						
							| 218 | 68 217 | syl |  | 
						
							| 219 |  | pcmul |  | 
						
							| 220 | 67 214 218 219 | syl3anc |  | 
						
							| 221 | 192 | prmorcht |  | 
						
							| 222 | 221 | oveq2d |  | 
						
							| 223 | 222 | adantr |  | 
						
							| 224 |  | simpl |  | 
						
							| 225 | 201 203 224 67 205 | pcmpt |  | 
						
							| 226 | 223 225 | eqtrd |  | 
						
							| 227 | 226 | oveq1d |  | 
						
							| 228 | 220 227 | eqtrd |  | 
						
							| 229 | 191 207 228 | 3brtr4d |  | 
						
							| 230 | 229 | ralrimiva |  | 
						
							| 231 |  | efchtcl |  | 
						
							| 232 | 6 231 | syl |  | 
						
							| 233 | 232 | nnzd |  | 
						
							| 234 | 209 52 | nnmulcld |  | 
						
							| 235 | 234 | nnzd |  | 
						
							| 236 |  | pc2dvds |  | 
						
							| 237 | 233 235 236 | syl2anc |  | 
						
							| 238 | 230 237 | mpbird |  | 
						
							| 239 |  | dvdsle |  | 
						
							| 240 | 233 234 239 | syl2anc |  | 
						
							| 241 | 238 240 | mpd |  | 
						
							| 242 | 11 | recnd |  | 
						
							| 243 | 54 | recnd |  | 
						
							| 244 |  | efadd |  | 
						
							| 245 | 242 243 244 | syl2anc |  | 
						
							| 246 | 53 | reeflogd |  | 
						
							| 247 | 246 | oveq2d |  | 
						
							| 248 | 245 247 | eqtrd |  | 
						
							| 249 | 241 248 | breqtrrd |  | 
						
							| 250 |  | efle |  | 
						
							| 251 | 8 55 250 | syl2anc |  | 
						
							| 252 | 249 251 | mpbird |  | 
						
							| 253 |  | fzfid |  | 
						
							| 254 |  | elfzelz |  | 
						
							| 255 |  | bccl |  | 
						
							| 256 | 39 254 255 | syl2an |  | 
						
							| 257 | 256 | nn0red |  | 
						
							| 258 | 256 | nn0ge0d |  | 
						
							| 259 |  | nn0uz |  | 
						
							| 260 | 32 259 | eleqtrdi |  | 
						
							| 261 |  | fzss1 |  | 
						
							| 262 | 260 261 | syl |  | 
						
							| 263 |  | eluz |  | 
						
							| 264 | 148 81 263 | syl2anc |  | 
						
							| 265 | 48 264 | mpbird |  | 
						
							| 266 |  | fzss2 |  | 
						
							| 267 | 265 266 | syl |  | 
						
							| 268 | 262 267 | sstrd |  | 
						
							| 269 | 253 257 258 268 | fsumless |  | 
						
							| 270 | 32 | nn0zd |  | 
						
							| 271 |  | bccmpl |  | 
						
							| 272 | 39 148 271 | syl2anc |  | 
						
							| 273 | 107 | oveq2d |  | 
						
							| 274 | 272 273 | eqtrd |  | 
						
							| 275 | 52 | nncnd |  | 
						
							| 276 | 274 275 | eqeltrrd |  | 
						
							| 277 |  | oveq2 |  | 
						
							| 278 | 277 | fsum1 |  | 
						
							| 279 | 270 276 278 | syl2anc |  | 
						
							| 280 | 279 274 | eqtr4d |  | 
						
							| 281 | 280 | oveq1d |  | 
						
							| 282 | 21 104 | npcand |  | 
						
							| 283 |  | uzid |  | 
						
							| 284 | 270 283 | syl |  | 
						
							| 285 |  | peano2uz |  | 
						
							| 286 | 284 285 | syl |  | 
						
							| 287 | 282 286 | eqeltrrd |  | 
						
							| 288 | 268 | sselda |  | 
						
							| 289 | 256 | nn0cnd |  | 
						
							| 290 | 288 289 | syldan |  | 
						
							| 291 |  | oveq2 |  | 
						
							| 292 | 287 290 291 | fsumm1 |  | 
						
							| 293 | 275 | 2timesd |  | 
						
							| 294 | 281 292 293 | 3eqtr4rd |  | 
						
							| 295 |  | binom11 |  | 
						
							| 296 | 39 295 | syl |  | 
						
							| 297 | 269 294 296 | 3brtr4d |  | 
						
							| 298 |  | mulcom |  | 
						
							| 299 | 16 275 298 | sylancr |  | 
						
							| 300 | 30 | oveq2d |  | 
						
							| 301 |  | expp1 |  | 
						
							| 302 | 16 34 301 | sylancr |  | 
						
							| 303 | 16 | a1i |  | 
						
							| 304 | 31 | a1i |  | 
						
							| 305 | 303 32 304 | expmuld |  | 
						
							| 306 |  | sq2 |  | 
						
							| 307 | 306 | oveq1i |  | 
						
							| 308 | 305 307 | eqtrdi |  | 
						
							| 309 | 308 | oveq1d |  | 
						
							| 310 | 300 302 309 | 3eqtrd |  | 
						
							| 311 | 297 299 310 | 3brtr3d |  | 
						
							| 312 | 52 | nnred |  | 
						
							| 313 |  | reexpcl |  | 
						
							| 314 | 56 32 313 | sylancr |  | 
						
							| 315 |  | 2re |  | 
						
							| 316 |  | 2pos |  | 
						
							| 317 | 315 316 | pm3.2i |  | 
						
							| 318 | 317 | a1i |  | 
						
							| 319 |  | lemul1 |  | 
						
							| 320 | 312 314 318 319 | syl3anc |  | 
						
							| 321 | 311 320 | mpbird |  | 
						
							| 322 | 60 | recni |  | 
						
							| 323 |  | mulcom |  | 
						
							| 324 | 322 103 323 | sylancr |  | 
						
							| 325 | 324 | fveq2d |  | 
						
							| 326 |  | reexplog |  | 
						
							| 327 | 58 270 326 | sylancr |  | 
						
							| 328 | 325 327 | eqtr4d |  | 
						
							| 329 | 321 246 328 | 3brtr4d |  | 
						
							| 330 |  | efle |  | 
						
							| 331 | 54 63 330 | syl2anc |  | 
						
							| 332 | 329 331 | mpbird |  | 
						
							| 333 | 54 63 11 332 | leadd2dd |  | 
						
							| 334 | 8 55 64 252 333 | letrd |  |