| Step | Hyp | Ref | Expression | 
						
							| 1 |  | ablfac1.b |  | 
						
							| 2 |  | ablfac1.o |  | 
						
							| 3 |  | ablfac1.s |  | 
						
							| 4 |  | ablfac1.g |  | 
						
							| 5 |  | ablfac1.f |  | 
						
							| 6 |  | ablfac1.1 |  | 
						
							| 7 |  | ablfac1c.d |  | 
						
							| 8 |  | ablfac1.2 |  | 
						
							| 9 |  | ablfac1eu.1 |  | 
						
							| 10 |  | ablfac1eu.2 |  | 
						
							| 11 |  | ablfac1eu.3 |  | 
						
							| 12 |  | ablfac1eu.4 |  | 
						
							| 13 | 9 | simpld |  | 
						
							| 14 | 13 10 | dprdf2 |  | 
						
							| 15 | 14 | ffnd |  | 
						
							| 16 | 1 2 3 4 5 6 | ablfac1b |  | 
						
							| 17 | 1 | fvexi |  | 
						
							| 18 | 17 | rabex |  | 
						
							| 19 | 18 3 | dmmpti |  | 
						
							| 20 | 19 | a1i |  | 
						
							| 21 | 16 20 | dprdf2 |  | 
						
							| 22 | 21 | ffnd |  | 
						
							| 23 | 5 | adantr |  | 
						
							| 24 | 21 | ffvelcdmda |  | 
						
							| 25 | 1 | subgss |  | 
						
							| 26 | 24 25 | syl |  | 
						
							| 27 | 23 26 | ssfid |  | 
						
							| 28 | 14 | ffvelcdmda |  | 
						
							| 29 | 1 | subgss |  | 
						
							| 30 | 28 29 | syl |  | 
						
							| 31 | 30 | sselda |  | 
						
							| 32 | 1 2 | odcl |  | 
						
							| 33 | 31 32 | syl |  | 
						
							| 34 | 33 | nn0zd |  | 
						
							| 35 | 23 30 | ssfid |  | 
						
							| 36 |  | hashcl |  | 
						
							| 37 | 35 36 | syl |  | 
						
							| 38 | 37 | nn0zd |  | 
						
							| 39 | 38 | adantr |  | 
						
							| 40 | 6 | sselda |  | 
						
							| 41 |  | prmnn |  | 
						
							| 42 | 40 41 | syl |  | 
						
							| 43 |  | ablgrp |  | 
						
							| 44 | 4 43 | syl |  | 
						
							| 45 | 1 | grpbn0 |  | 
						
							| 46 | 44 45 | syl |  | 
						
							| 47 |  | hashnncl |  | 
						
							| 48 | 5 47 | syl |  | 
						
							| 49 | 46 48 | mpbird |  | 
						
							| 50 | 49 | adantr |  | 
						
							| 51 | 40 50 | pccld |  | 
						
							| 52 | 42 51 | nnexpcld |  | 
						
							| 53 | 52 | nnzd |  | 
						
							| 54 | 53 | adantr |  | 
						
							| 55 | 28 | adantr |  | 
						
							| 56 | 35 | adantr |  | 
						
							| 57 |  | simpr |  | 
						
							| 58 | 2 | odsubdvds |  | 
						
							| 59 | 55 56 57 58 | syl3anc |  | 
						
							| 60 |  | prmz |  | 
						
							| 61 | 40 60 | syl |  | 
						
							| 62 | 11 | nn0zd |  | 
						
							| 63 | 51 | nn0zd |  | 
						
							| 64 | 1 | lagsubg |  | 
						
							| 65 | 28 23 64 | syl2anc |  | 
						
							| 66 | 12 65 | eqbrtrrd |  | 
						
							| 67 | 50 | nnzd |  | 
						
							| 68 |  | pcdvdsb |  | 
						
							| 69 | 40 67 11 68 | syl3anc |  | 
						
							| 70 | 66 69 | mpbird |  | 
						
							| 71 |  | eluz2 |  | 
						
							| 72 | 62 63 70 71 | syl3anbrc |  | 
						
							| 73 |  | dvdsexp |  | 
						
							| 74 | 61 11 72 73 | syl3anc |  | 
						
							| 75 | 12 74 | eqbrtrd |  | 
						
							| 76 | 75 | adantr |  | 
						
							| 77 | 34 39 54 59 76 | dvdstrd |  | 
						
							| 78 | 30 77 | ssrabdv |  | 
						
							| 79 |  | id |  | 
						
							| 80 |  | oveq1 |  | 
						
							| 81 | 79 80 | oveq12d |  | 
						
							| 82 | 81 | breq2d |  | 
						
							| 83 | 82 | rabbidv |  | 
						
							| 84 | 83 3 18 | fvmpt3i |  | 
						
							| 85 | 84 | adantl |  | 
						
							| 86 | 78 85 | sseqtrrd |  | 
						
							| 87 | 52 | nnnn0d |  | 
						
							| 88 |  | pcdvds |  | 
						
							| 89 | 40 50 88 | syl2anc |  | 
						
							| 90 | 13 | adantr |  | 
						
							| 91 | 10 | adantr |  | 
						
							| 92 | 8 | adantr |  | 
						
							| 93 | 90 91 92 | dprdres |  | 
						
							| 94 | 93 | simpld |  | 
						
							| 95 | 14 | adantr |  | 
						
							| 96 | 95 92 | fssresd |  | 
						
							| 97 | 96 | fdmd |  | 
						
							| 98 |  | difssd |  | 
						
							| 99 | 94 97 98 | dprdres |  | 
						
							| 100 | 99 | simpld |  | 
						
							| 101 |  | dprdsubg |  | 
						
							| 102 | 100 101 | syl |  | 
						
							| 103 | 1 | lagsubg |  | 
						
							| 104 | 102 23 103 | syl2anc |  | 
						
							| 105 |  | eqid |  | 
						
							| 106 | 105 | subg0cl |  | 
						
							| 107 | 102 106 | syl |  | 
						
							| 108 | 107 | ne0d |  | 
						
							| 109 | 1 | dprdssv |  | 
						
							| 110 |  | ssfi |  | 
						
							| 111 | 23 109 110 | sylancl |  | 
						
							| 112 |  | hashnncl |  | 
						
							| 113 | 111 112 | syl |  | 
						
							| 114 | 108 113 | mpbird |  | 
						
							| 115 | 114 | nnzd |  | 
						
							| 116 |  | id |  | 
						
							| 117 |  | sneq |  | 
						
							| 118 | 117 | difeq2d |  | 
						
							| 119 | 118 | reseq2d |  | 
						
							| 120 | 119 | oveq2d |  | 
						
							| 121 | 120 | fveq2d |  | 
						
							| 122 | 116 121 | breq12d |  | 
						
							| 123 | 122 | notbid |  | 
						
							| 124 |  | eqid |  | 
						
							| 125 | 4 | adantr |  | 
						
							| 126 | 5 | adantr |  | 
						
							| 127 | 7 | ssrab3 |  | 
						
							| 128 | 127 | a1i |  | 
						
							| 129 |  | ssidd |  | 
						
							| 130 | 13 10 8 | dprdres |  | 
						
							| 131 | 130 | simpld |  | 
						
							| 132 |  | dprdsubg |  | 
						
							| 133 | 131 132 | syl |  | 
						
							| 134 |  | difssd |  | 
						
							| 135 | 13 10 134 | dprdres |  | 
						
							| 136 | 135 | simpld |  | 
						
							| 137 |  | dprdsubg |  | 
						
							| 138 | 136 137 | syl |  | 
						
							| 139 |  | difss |  | 
						
							| 140 |  | fssres |  | 
						
							| 141 | 14 139 140 | sylancl |  | 
						
							| 142 | 141 | fdmd |  | 
						
							| 143 |  | fvres |  | 
						
							| 144 | 143 | adantl |  | 
						
							| 145 |  | eldif |  | 
						
							| 146 | 35 | adantrr |  | 
						
							| 147 | 105 | subg0cl |  | 
						
							| 148 | 28 147 | syl |  | 
						
							| 149 | 148 | snssd |  | 
						
							| 150 | 149 | adantrr |  | 
						
							| 151 |  | fvex |  | 
						
							| 152 |  | hashsng |  | 
						
							| 153 | 151 152 | ax-mp |  | 
						
							| 154 | 12 | adantrr |  | 
						
							| 155 | 40 | adantr |  | 
						
							| 156 |  | iddvdsexp |  | 
						
							| 157 | 61 156 | sylan |  | 
						
							| 158 | 66 | adantr |  | 
						
							| 159 | 12 38 | eqeltrrd |  | 
						
							| 160 |  | dvdstr |  | 
						
							| 161 | 61 159 67 160 | syl3anc |  | 
						
							| 162 | 161 | adantr |  | 
						
							| 163 | 157 158 162 | mp2and |  | 
						
							| 164 |  | breq1 |  | 
						
							| 165 | 164 7 | elrab2 |  | 
						
							| 166 | 155 163 165 | sylanbrc |  | 
						
							| 167 | 166 | ex |  | 
						
							| 168 | 167 | con3d |  | 
						
							| 169 | 168 | impr |  | 
						
							| 170 | 11 | adantrr |  | 
						
							| 171 |  | elnn0 |  | 
						
							| 172 | 170 171 | sylib |  | 
						
							| 173 | 172 | ord |  | 
						
							| 174 | 169 173 | mpd |  | 
						
							| 175 | 174 | oveq2d |  | 
						
							| 176 | 42 | adantrr |  | 
						
							| 177 | 176 | nncnd |  | 
						
							| 178 | 177 | exp0d |  | 
						
							| 179 | 154 175 178 | 3eqtrd |  | 
						
							| 180 | 153 179 | eqtr4id |  | 
						
							| 181 |  | snfi |  | 
						
							| 182 |  | hashen |  | 
						
							| 183 | 181 146 182 | sylancr |  | 
						
							| 184 | 180 183 | mpbid |  | 
						
							| 185 |  | fisseneq |  | 
						
							| 186 | 146 150 184 185 | syl3anc |  | 
						
							| 187 | 105 | subg0cl |  | 
						
							| 188 | 133 187 | syl |  | 
						
							| 189 | 188 | adantr |  | 
						
							| 190 | 189 | snssd |  | 
						
							| 191 | 186 190 | eqsstrrd |  | 
						
							| 192 | 145 191 | sylan2b |  | 
						
							| 193 | 144 192 | eqsstrd |  | 
						
							| 194 | 136 142 133 193 | dprdlub |  | 
						
							| 195 |  | eqid |  | 
						
							| 196 | 195 | lsmss2 |  | 
						
							| 197 | 133 138 194 196 | syl3anc |  | 
						
							| 198 |  | disjdif |  | 
						
							| 199 | 198 | a1i |  | 
						
							| 200 |  | undif2 |  | 
						
							| 201 |  | ssequn1 |  | 
						
							| 202 | 8 201 | sylib |  | 
						
							| 203 | 200 202 | eqtr2id |  | 
						
							| 204 | 14 199 203 195 13 | dprdsplit |  | 
						
							| 205 | 9 | simprd |  | 
						
							| 206 | 204 205 | eqtr3d |  | 
						
							| 207 | 197 206 | eqtr3d |  | 
						
							| 208 | 131 207 | jca |  | 
						
							| 209 | 208 | adantr |  | 
						
							| 210 | 14 8 | fssresd |  | 
						
							| 211 | 210 | fdmd |  | 
						
							| 212 | 211 | adantr |  | 
						
							| 213 | 8 | sselda |  | 
						
							| 214 | 213 11 | syldan |  | 
						
							| 215 | 214 | adantlr |  | 
						
							| 216 |  | fvres |  | 
						
							| 217 | 216 | adantl |  | 
						
							| 218 | 217 | fveq2d |  | 
						
							| 219 | 213 12 | syldan |  | 
						
							| 220 | 218 219 | eqtrd |  | 
						
							| 221 | 220 | adantlr |  | 
						
							| 222 |  | simpr |  | 
						
							| 223 |  | fzfid |  | 
						
							| 224 |  | prmnn |  | 
						
							| 225 | 224 | 3ad2ant2 |  | 
						
							| 226 |  | prmz |  | 
						
							| 227 |  | dvdsle |  | 
						
							| 228 | 226 49 227 | syl2anr |  | 
						
							| 229 | 228 | 3impia |  | 
						
							| 230 | 49 | nnzd |  | 
						
							| 231 | 230 | 3ad2ant1 |  | 
						
							| 232 |  | fznn |  | 
						
							| 233 | 231 232 | syl |  | 
						
							| 234 | 225 229 233 | mpbir2and |  | 
						
							| 235 | 234 | rabssdv |  | 
						
							| 236 | 7 235 | eqsstrid |  | 
						
							| 237 | 223 236 | ssfid |  | 
						
							| 238 | 237 | adantr |  | 
						
							| 239 | 1 2 124 125 126 128 7 129 209 212 215 221 222 238 | ablfac1eulem |  | 
						
							| 240 | 239 | ralrimiva |  | 
						
							| 241 | 240 | adantr |  | 
						
							| 242 | 123 241 40 | rspcdva |  | 
						
							| 243 |  | coprm |  | 
						
							| 244 | 40 115 243 | syl2anc |  | 
						
							| 245 | 242 244 | mpbid |  | 
						
							| 246 |  | rpexp1i |  | 
						
							| 247 | 61 115 51 246 | syl3anc |  | 
						
							| 248 | 245 247 | mpd |  | 
						
							| 249 |  | coprmdvds2 |  | 
						
							| 250 | 53 115 67 248 249 | syl31anc |  | 
						
							| 251 | 89 104 250 | mp2and |  | 
						
							| 252 |  | eqid |  | 
						
							| 253 |  | inss1 |  | 
						
							| 254 | 253 | a1i |  | 
						
							| 255 | 94 97 254 | dprdres |  | 
						
							| 256 | 255 | simpld |  | 
						
							| 257 |  | dprdsubg |  | 
						
							| 258 | 256 257 | syl |  | 
						
							| 259 |  | inass |  | 
						
							| 260 |  | disjdif |  | 
						
							| 261 | 260 | ineq2i |  | 
						
							| 262 |  | in0 |  | 
						
							| 263 | 259 261 262 | 3eqtri |  | 
						
							| 264 | 263 | a1i |  | 
						
							| 265 | 94 97 254 98 264 105 | dprddisj2 |  | 
						
							| 266 | 94 97 254 98 264 252 | dprdcntz2 |  | 
						
							| 267 | 1 | dprdssv |  | 
						
							| 268 |  | ssfi |  | 
						
							| 269 | 23 267 268 | sylancl |  | 
						
							| 270 | 195 105 252 258 102 265 266 269 111 | lsmhash |  | 
						
							| 271 |  | inundif |  | 
						
							| 272 | 271 | eqcomi |  | 
						
							| 273 | 272 | a1i |  | 
						
							| 274 | 96 264 273 195 94 | dprdsplit |  | 
						
							| 275 | 207 | adantr |  | 
						
							| 276 | 274 275 | eqtr3d |  | 
						
							| 277 | 276 | fveq2d |  | 
						
							| 278 |  | snssi |  | 
						
							| 279 | 278 | adantl |  | 
						
							| 280 |  | sseqin2 |  | 
						
							| 281 | 279 280 | sylib |  | 
						
							| 282 | 281 | reseq2d |  | 
						
							| 283 | 282 | oveq2d |  | 
						
							| 284 | 94 | adantr |  | 
						
							| 285 | 211 | ad2antrr |  | 
						
							| 286 |  | simpr |  | 
						
							| 287 | 284 285 286 | dpjlem |  | 
						
							| 288 | 216 | adantl |  | 
						
							| 289 | 283 287 288 | 3eqtrd |  | 
						
							| 290 |  | simprr |  | 
						
							| 291 |  | disjsn |  | 
						
							| 292 | 290 291 | sylibr |  | 
						
							| 293 | 292 | reseq2d |  | 
						
							| 294 |  | res0 |  | 
						
							| 295 | 293 294 | eqtrdi |  | 
						
							| 296 | 295 | oveq2d |  | 
						
							| 297 | 105 | dprd0 |  | 
						
							| 298 | 44 297 | syl |  | 
						
							| 299 | 298 | simprd |  | 
						
							| 300 | 299 | adantr |  | 
						
							| 301 | 296 300 186 | 3eqtrd |  | 
						
							| 302 | 301 | anassrs |  | 
						
							| 303 | 289 302 | pm2.61dan |  | 
						
							| 304 | 303 | fveq2d |  | 
						
							| 305 | 304 | oveq1d |  | 
						
							| 306 | 270 277 305 | 3eqtr3d |  | 
						
							| 307 | 251 306 | breqtrd |  | 
						
							| 308 | 114 | nnne0d |  | 
						
							| 309 |  | dvdsmulcr |  | 
						
							| 310 | 53 38 115 308 309 | syl112anc |  | 
						
							| 311 | 307 310 | mpbid |  | 
						
							| 312 |  | dvdseq |  | 
						
							| 313 | 37 87 75 311 312 | syl22anc |  | 
						
							| 314 | 1 2 3 4 5 6 | ablfac1a |  | 
						
							| 315 | 313 314 | eqtr4d |  | 
						
							| 316 |  | hashen |  | 
						
							| 317 | 35 27 316 | syl2anc |  | 
						
							| 318 | 315 317 | mpbid |  | 
						
							| 319 |  | fisseneq |  | 
						
							| 320 | 27 86 318 319 | syl3anc |  | 
						
							| 321 | 15 22 320 | eqfnfvd |  |