| Step | Hyp | Ref
| Expression |
| 1 | | crngring 18558 |
. . 3

  |
| 2 | | simpll 790 |
. . . 4
    
    |
| 3 | | simplr 792 |
. . . 4
    
    |
| 4 | | monmat2matmon.a |
. . . . 5
 Mat   |
| 5 | | monmat2matmon.k |
. . . . 5
     |
| 6 | | monmat2matmon.t |
. . . . 5

matToPolyMat   |
| 7 | | monmat2matmon.p |
. . . . 5
Poly1   |
| 8 | | monmat2matmon.c |
. . . . 5
 Mat   |
| 9 | | monmat2matmon.b |
. . . . 5
     |
| 10 | | monmat2matmon.m2 |
. . . . 5
     |
| 11 | | monmat2matmon.e2 |
. . . . 5
.g mulGrp    |
| 12 | | monmat2matmon.y |
. . . . 5
var1   |
| 13 | 4, 5, 6, 7, 8, 9, 10, 11, 12 | mat2pmatscmxcl 20545 |
. . . 4
    
              |
| 14 | | monmat2matmon.m1 |
. . . . 5
     |
| 15 | | monmat2matmon.e1 |
. . . . 5
.g mulGrp    |
| 16 | | monmat2matmon.x |
. . . . 5
var1   |
| 17 | | monmat2matmon.q |
. . . . 5
Poly1   |
| 18 | | monmat2matmon.i |
. . . . 5

pMatToMatPoly   |
| 19 | 7, 8, 9, 14, 15, 16, 4, 17, 18 | pm2mpfval 20601 |
. . . 4
 
                          g              decompPMat         |
| 20 | 2, 3, 13, 19 | syl3anc 1326 |
. . 3
    
                 g              decompPMat         |
| 21 | 1, 20 | sylanl2 683 |
. 2
    
                 g              decompPMat         |
| 22 | | simpll 790 |
. . . . . . . 8
   


 
     |
| 23 | | simpr 477 |
. . . . . . . . . 10
    
  
   |
| 24 | 23 | anim1i 592 |
. . . . . . . . 9
   


 
       |
| 25 | | df-3an 1039 |
. . . . . . . . 9
 

 

   |
| 26 | 24, 25 | sylibr 224 |
. . . . . . . 8
   


 
 
   |
| 27 | | eqid 2622 |
. . . . . . . . 9
         |
| 28 | 7, 8, 4, 5, 27, 11, 12, 10, 6 | monmatcollpw 20584 |
. . . . . . . 8
    
 
           decompPMat             |
| 29 | 22, 26, 28 | syl2anc 693 |
. . . . . . 7
   


 
            decompPMat             |
| 30 | 29 | oveq1d 6665 |
. . . . . 6
   


 
             decompPMat         
          |
| 31 | 1 | a1i 11 |
. . . . . . . . . 10


   |
| 32 | 31 | anim2d 589 |
. . . . . . . . 9

 
      |
| 33 | 32 | anim1d 588 |
. . . . . . . 8

    
     
     |
| 34 | 33 | imdistanri 727 |
. . . . . . 7
   


 
     
     |
| 35 | | ovif 6737 |
. . . . . . . 8
                               |
| 36 | 4 | matring 20249 |
. . . . . . . . . . . . . 14
 

  |
| 37 | 17 | ply1sca 19623 |
. . . . . . . . . . . . . 14

Scalar    |
| 38 | 36, 37 | syl 17 |
. . . . . . . . . . . . 13
 

Scalar    |
| 39 | 38 | ad2antrr 762 |
. . . . . . . . . . . 12
   
   

Scalar    |
| 40 | 39 | fveq2d 6195 |
. . . . . . . . . . 11
   
   
        Scalar     |
| 41 | 40 | oveq1d 6665 |
. . . . . . . . . 10
   
   
      
      Scalar        |
| 42 | 17 | ply1lmod 19622 |
. . . . . . . . . . . . 13

  |
| 43 | 36, 42 | syl 17 |
. . . . . . . . . . . 12
 

  |
| 44 | 43 | ad2antrr 762 |
. . . . . . . . . . 11
   
   

  |
| 45 | 17 | ply1ring 19618 |
. . . . . . . . . . . . . . 15

  |
| 46 | 36, 45 | syl 17 |
. . . . . . . . . . . . . 14
 

  |
| 47 | | eqid 2622 |
. . . . . . . . . . . . . . 15
mulGrp  mulGrp   |
| 48 | 47 | ringmgp 18553 |
. . . . . . . . . . . . . 14

mulGrp    |
| 49 | 46, 48 | syl 17 |
. . . . . . . . . . . . 13
 
 mulGrp    |
| 50 | 49 | ad2antrr 762 |
. . . . . . . . . . . 12
   
   
 mulGrp    |
| 51 | | simpr 477 |
. . . . . . . . . . . 12
   
   
   |
| 52 | | eqid 2622 |
. . . . . . . . . . . . . . 15
         |
| 53 | 16, 17, 52 | vr1cl 19587 |
. . . . . . . . . . . . . 14

      |
| 54 | 36, 53 | syl 17 |
. . . . . . . . . . . . 13
 

      |
| 55 | 54 | ad2antrr 762 |
. . . . . . . . . . . 12
   
   

      |
| 56 | 47, 52 | mgpbas 18495 |
. . . . . . . . . . . . 13
       mulGrp    |
| 57 | 56, 15 | mulgnn0cl 17558 |
. . . . . . . . . . . 12
  mulGrp 
    
        |
| 58 | 50, 51, 55, 57 | syl3anc 1326 |
. . . . . . . . . . 11
   
   
         |
| 59 | | eqid 2622 |
. . . . . . . . . . . 12
Scalar  Scalar   |
| 60 | | eqid 2622 |
. . . . . . . . . . . 12
   Scalar      Scalar    |
| 61 | | eqid 2622 |
. . . . . . . . . . . 12
         |
| 62 | 52, 59, 14, 60, 61 | lmod0vs 18896 |
. . . . . . . . . . 11
  
          Scalar            |
| 63 | 44, 58, 62 | syl2anc 693 |
. . . . . . . . . 10
   
   
     Scalar            |
| 64 | 41, 63 | eqtrd 2656 |
. . . . . . . . 9
   
   
      
        |
| 65 | 64 | ifeq2d 4105 |
. . . . . . . 8
   
   
                      
          |
| 66 | 35, 65 | syl5eq 2668 |
. . . . . . 7
   
   
                             |
| 67 | 34, 66 | syl 17 |
. . . . . 6
   


 
                             |
| 68 | 30, 67 | eqtrd 2656 |
. . . . 5
   


 
             decompPMat                    |
| 69 | 68 | mpteq2dva 4744 |
. . . 4
    
               decompPMat  
        
           |
| 70 | 69 | oveq2d 6666 |
. . 3
    
   g              decompPMat        g                   |
| 71 | | ringmnd 18556 |
. . . . . . 7

  |
| 72 | 46, 71 | syl 17 |
. . . . . 6
 

  |
| 73 | 72 | adantr 481 |
. . . . 5
    
    |
| 74 | | nn0ex 11298 |
. . . . . 6
 |
| 75 | 74 | a1i 11 |
. . . . 5
    
    |
| 76 | | simprr 796 |
. . . . 5
    
    |
| 77 | | eqid 2622 |
. . . . 5

    
         
    
          |
| 78 | 38 | fveq2d 6195 |
. . . . . . . . . . . . 13
 
        Scalar     |
| 79 | 5, 78 | syl5eq 2668 |
. . . . . . . . . . . 12
 

   Scalar     |
| 80 | 79 | eleq2d 2687 |
. . . . . . . . . . 11
 
     Scalar      |
| 81 | 80 | biimpcd 239 |
. . . . . . . . . 10
       Scalar      |
| 82 | 81 | adantr 481 |
. . . . . . . . 9
 
  

   Scalar      |
| 83 | 82 | impcom 446 |
. . . . . . . 8
    
     Scalar     |
| 84 | 83 | adantr 481 |
. . . . . . 7
   
   

   Scalar     |
| 85 | | eqid 2622 |
. . . . . . . 8
   Scalar      Scalar    |
| 86 | 52, 59, 14, 85 | lmodvscl 18880 |
. . . . . . 7
     Scalar           
        |
| 87 | 44, 84, 58, 86 | syl3anc 1326 |
. . . . . 6
   
   
  
        |
| 88 | 87 | ralrimiva 2966 |
. . . . 5
    
             |
| 89 | 61, 73, 75, 76, 77, 88 | gsummpt1n0 18364 |
. . . 4
    
   g                   ![]_ ]_](_urbrack.gif)  
    |
| 90 | 1, 89 | sylanl2 683 |
. . 3
    
   g                   ![]_ ]_](_urbrack.gif)  
    |
| 91 | 70, 90 | eqtrd 2656 |
. 2
    
   g              decompPMat         ![]_ ]_](_urbrack.gif)       |
| 92 | | csbov2g 6691 |
. . . 4

  ![]_ ]_](_urbrack.gif)        ![]_ ]_](_urbrack.gif) 
    |
| 93 | | csbov1g 6690 |
. . . . . 6

  ![]_ ]_](_urbrack.gif) 
    ![]_ ]_](_urbrack.gif)    |
| 94 | | csbvarg 4003 |
. . . . . . 7

  ![]_ ]_](_urbrack.gif)   |
| 95 | 94 | oveq1d 6665 |
. . . . . 6

   ![]_ ]_](_urbrack.gif)  
   |
| 96 | 93, 95 | eqtrd 2656 |
. . . . 5

  ![]_ ]_](_urbrack.gif) 
     |
| 97 | 96 | oveq2d 6666 |
. . . 4

   ![]_ ]_](_urbrack.gif)          |
| 98 | 92, 97 | eqtrd 2656 |
. . 3

  ![]_ ]_](_urbrack.gif)           |
| 99 | 98 | ad2antll 765 |
. 2
    
    ![]_ ]_](_urbrack.gif)           |
| 100 | 21, 91, 99 | 3eqtrd 2660 |
1
    
                      |