| Step | Hyp | Ref | Expression | 
						
							| 1 |  | cpmadugsum.a |  | 
						
							| 2 |  | cpmadugsum.b |  | 
						
							| 3 |  | cpmadugsum.p |  | 
						
							| 4 |  | cpmadugsum.y |  | 
						
							| 5 |  | cpmadugsum.t |  | 
						
							| 6 |  | cpmadugsum.x |  | 
						
							| 7 |  | cpmadugsum.e |  | 
						
							| 8 |  | cpmadugsum.m |  | 
						
							| 9 |  | cpmadugsum.r |  | 
						
							| 10 |  | cpmadugsum.1 |  | 
						
							| 11 |  | cpmadugsum.g |  | 
						
							| 12 |  | cpmadugsum.s |  | 
						
							| 13 |  | nnnn0 |  | 
						
							| 14 | 1 2 3 4 5 6 7 8 9 10 | cpmadugsumlemB |  | 
						
							| 15 | 13 14 | sylanr1 |  | 
						
							| 16 | 1 2 3 4 5 6 7 8 9 10 | cpmadugsumlemC |  | 
						
							| 17 | 13 16 | sylanr1 |  | 
						
							| 18 | 15 17 | oveq12d |  | 
						
							| 19 |  | nncn |  | 
						
							| 20 |  | npcan1 |  | 
						
							| 21 | 20 | eqcomd |  | 
						
							| 22 | 19 21 | syl |  | 
						
							| 23 | 22 | oveq2d |  | 
						
							| 24 | 23 | mpteq1d |  | 
						
							| 25 | 24 | oveq2d |  | 
						
							| 26 | 25 | ad2antrl |  | 
						
							| 27 |  | eqid |  | 
						
							| 28 |  | crngring |  | 
						
							| 29 | 28 | anim2i |  | 
						
							| 30 | 29 | 3adant3 |  | 
						
							| 31 | 3 4 | pmatring |  | 
						
							| 32 | 30 31 | syl |  | 
						
							| 33 |  | ringcmn |  | 
						
							| 34 | 32 33 | syl |  | 
						
							| 35 | 34 | adantr |  | 
						
							| 36 |  | nnm1nn0 |  | 
						
							| 37 | 36 | ad2antrl |  | 
						
							| 38 |  | simpll1 |  | 
						
							| 39 | 28 | 3ad2ant2 |  | 
						
							| 40 | 39 | adantr |  | 
						
							| 41 | 40 | adantr |  | 
						
							| 42 |  | elmapi |  | 
						
							| 43 | 23 | feq2d |  | 
						
							| 44 | 42 43 | syl5ibcom |  | 
						
							| 45 | 44 | impcom |  | 
						
							| 46 | 45 | adantl |  | 
						
							| 47 | 46 | ffvelcdmda |  | 
						
							| 48 |  | elfznn0 |  | 
						
							| 49 | 48 | adantl |  | 
						
							| 50 |  | 1nn0 |  | 
						
							| 51 | 50 | a1i |  | 
						
							| 52 | 49 51 | nn0addcld |  | 
						
							| 53 | 1 2 5 3 4 27 8 7 6 | mat2pmatscmxcl |  | 
						
							| 54 | 38 41 47 52 53 | syl22anc |  | 
						
							| 55 | 27 11 35 37 54 | gsummptfzsplit |  | 
						
							| 56 |  | ringmnd |  | 
						
							| 57 | 32 56 | syl |  | 
						
							| 58 | 57 | adantr |  | 
						
							| 59 |  | ovexd |  | 
						
							| 60 |  | simpl1 |  | 
						
							| 61 |  | nn0fz0 |  | 
						
							| 62 | 13 61 | sylib |  | 
						
							| 63 |  | ffvelcdm |  | 
						
							| 64 | 42 62 63 | syl2anr |  | 
						
							| 65 | 13 | adantr |  | 
						
							| 66 | 50 | a1i |  | 
						
							| 67 | 65 66 | nn0addcld |  | 
						
							| 68 | 64 67 | jca |  | 
						
							| 69 | 68 | adantl |  | 
						
							| 70 | 1 2 5 3 4 27 8 7 6 | mat2pmatscmxcl |  | 
						
							| 71 | 60 40 69 70 | syl21anc |  | 
						
							| 72 |  | oveq1 |  | 
						
							| 73 | 72 | oveq1d |  | 
						
							| 74 |  | 2fveq3 |  | 
						
							| 75 | 73 74 | oveq12d |  | 
						
							| 76 | 19 20 | syl |  | 
						
							| 77 | 76 | oveq1d |  | 
						
							| 78 | 77 | oveq1d |  | 
						
							| 79 | 76 | fveq2d |  | 
						
							| 80 | 79 | fveq2d |  | 
						
							| 81 | 78 80 | oveq12d |  | 
						
							| 82 | 81 | ad2antrl |  | 
						
							| 83 | 75 82 | sylan9eqr |  | 
						
							| 84 | 27 58 59 71 83 | gsumsnd |  | 
						
							| 85 | 84 | oveq2d |  | 
						
							| 86 | 26 55 85 | 3eqtrd |  | 
						
							| 87 | 13 | ad2antrl |  | 
						
							| 88 | 3 4 | pmatlmod |  | 
						
							| 89 | 29 88 | syl |  | 
						
							| 90 | 89 | 3adant3 |  | 
						
							| 91 | 90 | adantr |  | 
						
							| 92 | 91 | adantr |  | 
						
							| 93 |  | eqid |  | 
						
							| 94 |  | eqid |  | 
						
							| 95 | 93 94 | mgpbas |  | 
						
							| 96 | 3 | ply1ring |  | 
						
							| 97 | 28 96 | syl |  | 
						
							| 98 | 97 | 3ad2ant2 |  | 
						
							| 99 | 93 | ringmgp |  | 
						
							| 100 | 98 99 | syl |  | 
						
							| 101 | 100 | adantr |  | 
						
							| 102 | 101 | adantr |  | 
						
							| 103 |  | elfznn0 |  | 
						
							| 104 | 103 | adantl |  | 
						
							| 105 | 6 3 94 | vr1cl |  | 
						
							| 106 | 28 105 | syl |  | 
						
							| 107 | 106 | 3ad2ant2 |  | 
						
							| 108 | 107 | adantr |  | 
						
							| 109 | 108 | adantr |  | 
						
							| 110 | 95 7 102 104 109 | mulgnn0cld |  | 
						
							| 111 | 3 | ply1crng |  | 
						
							| 112 | 111 | anim2i |  | 
						
							| 113 | 112 | 3adant3 |  | 
						
							| 114 | 4 | matsca2 |  | 
						
							| 115 | 113 114 | syl |  | 
						
							| 116 | 115 | eqcomd |  | 
						
							| 117 | 116 | fveq2d |  | 
						
							| 118 | 117 | eleq2d |  | 
						
							| 119 | 118 | adantr |  | 
						
							| 120 | 119 | adantr |  | 
						
							| 121 | 110 120 | mpbird |  | 
						
							| 122 | 32 | adantr |  | 
						
							| 123 | 122 | adantr |  | 
						
							| 124 |  | simpll1 |  | 
						
							| 125 | 40 | adantr |  | 
						
							| 126 |  | simpll3 |  | 
						
							| 127 | 5 1 2 3 4 | mat2pmatbas |  | 
						
							| 128 | 124 125 126 127 | syl3anc |  | 
						
							| 129 | 87 | adantr |  | 
						
							| 130 |  | simprr |  | 
						
							| 131 | 130 | anim1i |  | 
						
							| 132 | 1 2 3 4 5 | m2pmfzmap |  | 
						
							| 133 | 124 125 129 131 132 | syl31anc |  | 
						
							| 134 | 27 9 | ringcl |  | 
						
							| 135 | 123 128 133 134 | syl3anc |  | 
						
							| 136 |  | eqid |  | 
						
							| 137 |  | eqid |  | 
						
							| 138 | 27 136 8 137 | lmodvscl |  | 
						
							| 139 | 92 121 135 138 | syl3anc |  | 
						
							| 140 | 27 11 35 87 139 | gsummptfzsplitl |  | 
						
							| 141 |  | 0nn0 |  | 
						
							| 142 | 141 | a1i |  | 
						
							| 143 |  | eqid |  | 
						
							| 144 | 95 143 7 | mulg0 |  | 
						
							| 145 | 107 144 | syl |  | 
						
							| 146 | 145 | adantr |  | 
						
							| 147 | 146 | oveq1d |  | 
						
							| 148 |  | eqid |  | 
						
							| 149 | 93 148 | ringidval |  | 
						
							| 150 | 149 | a1i |  | 
						
							| 151 | 150 | eqcomd |  | 
						
							| 152 | 151 | oveq1d |  | 
						
							| 153 | 115 | adantr |  | 
						
							| 154 | 153 | fveq2d |  | 
						
							| 155 | 154 | oveq1d |  | 
						
							| 156 | 28 127 | syl3an2 |  | 
						
							| 157 | 156 | adantr |  | 
						
							| 158 |  | simpl |  | 
						
							| 159 |  | elnn0uz |  | 
						
							| 160 | 13 159 | sylib |  | 
						
							| 161 |  | eluzfz1 |  | 
						
							| 162 | 160 161 | syl |  | 
						
							| 163 | 162 | adantl |  | 
						
							| 164 | 158 163 | ffvelcdmd |  | 
						
							| 165 | 164 | ex |  | 
						
							| 166 | 42 165 | syl |  | 
						
							| 167 | 166 | impcom |  | 
						
							| 168 | 167 | adantl |  | 
						
							| 169 | 5 1 2 3 4 | mat2pmatbas |  | 
						
							| 170 | 60 40 168 169 | syl3anc |  | 
						
							| 171 | 27 9 | ringcl |  | 
						
							| 172 | 122 157 170 171 | syl3anc |  | 
						
							| 173 |  | eqid |  | 
						
							| 174 | 27 136 8 173 | lmodvs1 |  | 
						
							| 175 | 91 172 174 | syl2anc |  | 
						
							| 176 | 155 175 | eqtrd |  | 
						
							| 177 | 147 152 176 | 3eqtrd |  | 
						
							| 178 | 177 172 | eqeltrd |  | 
						
							| 179 |  | oveq1 |  | 
						
							| 180 |  | 2fveq3 |  | 
						
							| 181 | 180 | oveq2d |  | 
						
							| 182 | 179 181 | oveq12d |  | 
						
							| 183 | 182 | adantl |  | 
						
							| 184 | 27 58 142 178 183 | gsumsnd |  | 
						
							| 185 | 95 149 7 | mulg0 |  | 
						
							| 186 | 107 185 | syl |  | 
						
							| 187 | 186 | adantr |  | 
						
							| 188 | 187 | oveq1d |  | 
						
							| 189 | 184 188 176 | 3eqtrd |  | 
						
							| 190 | 189 | oveq2d |  | 
						
							| 191 | 140 190 | eqtrd |  | 
						
							| 192 | 86 191 | oveq12d |  | 
						
							| 193 |  | fzfid |  | 
						
							| 194 |  | simpll1 |  | 
						
							| 195 | 40 | adantr |  | 
						
							| 196 | 42 | adantl |  | 
						
							| 197 | 196 | adantr |  | 
						
							| 198 |  | nnz |  | 
						
							| 199 |  | fzoval |  | 
						
							| 200 | 198 199 | syl |  | 
						
							| 201 | 200 | eqcomd |  | 
						
							| 202 | 201 | eleq2d |  | 
						
							| 203 |  | elfzofz |  | 
						
							| 204 | 202 203 | biimtrdi |  | 
						
							| 205 | 204 | adantr |  | 
						
							| 206 | 205 | imp |  | 
						
							| 207 | 197 206 | ffvelcdmd |  | 
						
							| 208 | 207 | adantll |  | 
						
							| 209 |  | elfznn0 |  | 
						
							| 210 | 209 | adantl |  | 
						
							| 211 | 50 | a1i |  | 
						
							| 212 | 210 211 | nn0addcld |  | 
						
							| 213 | 194 195 208 212 53 | syl22anc |  | 
						
							| 214 | 213 | ralrimiva |  | 
						
							| 215 | 27 35 193 214 | gsummptcl |  | 
						
							| 216 | 27 11 | cmncom |  | 
						
							| 217 | 35 215 71 216 | syl3anc |  | 
						
							| 218 | 217 | oveq1d |  | 
						
							| 219 |  | ringgrp |  | 
						
							| 220 | 32 219 | syl |  | 
						
							| 221 | 220 | adantr |  | 
						
							| 222 |  | fzfid |  | 
						
							| 223 | 91 | adantr |  | 
						
							| 224 | 101 | adantr |  | 
						
							| 225 |  | elfznn |  | 
						
							| 226 | 225 | nnnn0d |  | 
						
							| 227 | 226 | adantl |  | 
						
							| 228 | 108 | adantr |  | 
						
							| 229 | 95 7 224 227 228 | mulgnn0cld |  | 
						
							| 230 | 115 | fveq2d |  | 
						
							| 231 | 230 | adantr |  | 
						
							| 232 | 231 | adantr |  | 
						
							| 233 | 229 232 | eleqtrd |  | 
						
							| 234 | 122 | adantr |  | 
						
							| 235 | 157 | adantr |  | 
						
							| 236 |  | simpll1 |  | 
						
							| 237 | 40 | adantr |  | 
						
							| 238 | 196 | adantl |  | 
						
							| 239 | 238 | adantr |  | 
						
							| 240 |  | 1eluzge0 |  | 
						
							| 241 |  | fzss1 |  | 
						
							| 242 | 240 241 | mp1i |  | 
						
							| 243 | 242 | sseld |  | 
						
							| 244 | 243 | ad2antrl |  | 
						
							| 245 | 244 | imp |  | 
						
							| 246 | 239 245 | ffvelcdmd |  | 
						
							| 247 | 5 1 2 3 4 | mat2pmatbas |  | 
						
							| 248 | 236 237 246 247 | syl3anc |  | 
						
							| 249 | 234 235 248 134 | syl3anc |  | 
						
							| 250 | 223 233 249 138 | syl3anc |  | 
						
							| 251 | 250 | ralrimiva |  | 
						
							| 252 | 27 35 222 251 | gsummptcl |  | 
						
							| 253 | 27 11 12 | grpaddsubass |  | 
						
							| 254 | 221 71 215 252 253 | syl13anc |  | 
						
							| 255 |  | oveq1 |  | 
						
							| 256 | 255 | oveq1d |  | 
						
							| 257 | 256 | oveq1d |  | 
						
							| 258 | 255 | fveq2d |  | 
						
							| 259 | 258 | fveq2d |  | 
						
							| 260 | 257 259 | oveq12d |  | 
						
							| 261 | 260 | cbvmptv |  | 
						
							| 262 | 225 | nncnd |  | 
						
							| 263 | 262 | adantl |  | 
						
							| 264 |  | npcan1 |  | 
						
							| 265 | 263 264 | syl |  | 
						
							| 266 | 265 | oveq1d |  | 
						
							| 267 | 266 | oveq1d |  | 
						
							| 268 | 267 | mpteq2dva |  | 
						
							| 269 | 261 268 | eqtrid |  | 
						
							| 270 | 269 | oveq2d |  | 
						
							| 271 | 270 | ad2antrl |  | 
						
							| 272 | 271 | oveq1d |  | 
						
							| 273 |  | eqid |  | 
						
							| 274 |  | 1zzd |  | 
						
							| 275 |  | 0zd |  | 
						
							| 276 | 37 | nn0zd |  | 
						
							| 277 |  | oveq1 |  | 
						
							| 278 | 277 | oveq1d |  | 
						
							| 279 |  | 2fveq3 |  | 
						
							| 280 | 278 279 | oveq12d |  | 
						
							| 281 | 27 273 35 274 275 276 213 280 | gsummptshft |  | 
						
							| 282 |  | 0p1e1 |  | 
						
							| 283 | 282 | a1i |  | 
						
							| 284 | 76 | ad2antrl |  | 
						
							| 285 | 283 284 | oveq12d |  | 
						
							| 286 | 285 | mpteq1d |  | 
						
							| 287 | 286 | oveq2d |  | 
						
							| 288 | 281 287 | eqtrd |  | 
						
							| 289 | 288 | oveq1d |  | 
						
							| 290 |  | ringabl |  | 
						
							| 291 | 32 290 | syl |  | 
						
							| 292 | 291 | adantr |  | 
						
							| 293 | 225 | adantl |  | 
						
							| 294 |  | nnz |  | 
						
							| 295 |  | elfzm1b |  | 
						
							| 296 | 294 198 295 | syl2an |  | 
						
							| 297 | 200 | adantl |  | 
						
							| 298 | 297 | eqcomd |  | 
						
							| 299 | 298 | eleq2d |  | 
						
							| 300 |  | elfzofz |  | 
						
							| 301 | 299 300 | biimtrdi |  | 
						
							| 302 | 296 301 | sylbid |  | 
						
							| 303 | 302 | expimpd |  | 
						
							| 304 | 293 303 | mpcom |  | 
						
							| 305 | 304 | ex |  | 
						
							| 306 | 305 | ad2antrl |  | 
						
							| 307 | 306 | imp |  | 
						
							| 308 | 239 307 | ffvelcdmd |  | 
						
							| 309 | 1 2 5 3 4 27 8 7 6 | mat2pmatscmxcl |  | 
						
							| 310 | 236 237 308 227 309 | syl22anc |  | 
						
							| 311 |  | eqid |  | 
						
							| 312 |  | eqid |  | 
						
							| 313 | 27 12 292 222 310 250 311 312 | gsummptfidmsub |  | 
						
							| 314 | 272 289 313 | 3eqtr4d |  | 
						
							| 315 | 314 | oveq2d |  | 
						
							| 316 | 221 | adantr |  | 
						
							| 317 | 27 12 | grpsubcl |  | 
						
							| 318 | 316 310 250 317 | syl3anc |  | 
						
							| 319 | 318 | ralrimiva |  | 
						
							| 320 | 27 35 222 319 | gsummptcl |  | 
						
							| 321 | 27 11 | cmncom |  | 
						
							| 322 | 35 71 320 321 | syl3anc |  | 
						
							| 323 | 254 315 322 | 3eqtrd |  | 
						
							| 324 | 323 | oveq1d |  | 
						
							| 325 | 27 11 | mndcl |  | 
						
							| 326 | 58 71 215 325 | syl3anc |  | 
						
							| 327 | 27 11 12 292 326 252 172 | ablsubsub4 |  | 
						
							| 328 | 27 11 12 | grpaddsubass |  | 
						
							| 329 | 221 320 71 172 328 | syl13anc |  | 
						
							| 330 | 324 327 329 | 3eqtr3d |  | 
						
							| 331 | 5 1 2 3 4 | mat2pmatbas |  | 
						
							| 332 | 236 237 308 331 | syl3anc |  | 
						
							| 333 | 27 8 136 137 12 223 233 332 249 | lmodsubdi |  | 
						
							| 334 | 333 | eqcomd |  | 
						
							| 335 | 334 | mpteq2dva |  | 
						
							| 336 | 335 | oveq2d |  | 
						
							| 337 | 336 | oveq1d |  | 
						
							| 338 | 218 330 337 | 3eqtrd |  | 
						
							| 339 | 18 192 338 | 3eqtrd |  |