| Step | Hyp | Ref
| Expression |
| 1 | | ssid 3624 |
. 2
 |
| 2 | | ablfac1eulem.2 |
. . 3
   |
| 3 | | sseq1 3626 |
. . . . . 6


   |
| 4 | | difeq1 3721 |
. . . . . . . . . . . . 13

          |
| 5 | | 0dif 3977 |
. . . . . . . . . . . . 13
     |
| 6 | 4, 5 | syl6eq 2672 |
. . . . . . . . . . . 12

      |
| 7 | 6 | reseq2d 5396 |
. . . . . . . . . . 11

          |
| 8 | | res0 5400 |
. . . . . . . . . . 11
   |
| 9 | 7, 8 | syl6eq 2672 |
. . . . . . . . . 10

        |
| 10 | 9 | oveq2d 6666 |
. . . . . . . . 9

 DProd  
      DProd    |
| 11 | 10 | fveq2d 6195 |
. . . . . . . 8

    DProd             DProd     |
| 12 | 11 | breq2d 4665 |
. . . . . . 7

     DProd  
     
    DProd      |
| 13 | 12 | notbid 308 |
. . . . . 6

     DProd        
    DProd      |
| 14 | 3, 13 | imbi12d 334 |
. . . . 5

 
    DProd         
     DProd       |
| 15 | 14 | imbi2d 330 |
. . . 4

  
    DProd           

    DProd        |
| 16 | | sseq1 3626 |
. . . . . 6
 
   |
| 17 | | difeq1 3721 |
. . . . . . . . . . 11
 
         |
| 18 | 17 | reseq2d 5396 |
. . . . . . . . . 10
               |
| 19 | 18 | oveq2d 6666 |
. . . . . . . . 9
  DProd  
      DProd          |
| 20 | 19 | fveq2d 6195 |
. . . . . . . 8
     DProd             DProd 
         |
| 21 | 20 | breq2d 4665 |
. . . . . . 7
      DProd  
     
    DProd            |
| 22 | 21 | notbid 308 |
. . . . . 6
 
    DProd        
    DProd            |
| 23 | 16, 22 | imbi12d 334 |
. . . . 5
       DProd         

    DProd  
          |
| 24 | 23 | imbi2d 330 |
. . . 4
  
     DProd  
       
      DProd              |
| 25 | | sseq1 3626 |
. . . . . 6
             |
| 26 | | difeq1 3721 |
. . . . . . . . . . 11
                   |
| 27 | 26 | reseq2d 5396 |
. . . . . . . . . 10
                       |
| 28 | 27 | oveq2d 6666 |
. . . . . . . . 9
      DProd         DProd              |
| 29 | 28 | fveq2d 6195 |
. . . . . . . 8
         DProd  
          DProd               |
| 30 | 29 | breq2d 4665 |
. . . . . . 7
          DProd  
     
    DProd                |
| 31 | 30 | notbid 308 |
. . . . . 6
          DProd  
     
    DProd                |
| 32 | 25, 31 | imbi12d 334 |
. . . . 5
           DProd  
      
         DProd                 |
| 33 | 32 | imbi2d 330 |
. . . 4
            DProd           
         DProd                  |
| 34 | | sseq1 3626 |
. . . . . 6
 
   |
| 35 | | difeq1 3721 |
. . . . . . . . . . 11
 
         |
| 36 | 35 | reseq2d 5396 |
. . . . . . . . . 10
        
      |
| 37 | 36 | oveq2d 6666 |
. . . . . . . . 9
  DProd  
      DProd          |
| 38 | 37 | fveq2d 6195 |
. . . . . . . 8
     DProd             DProd 
         |
| 39 | 38 | breq2d 4665 |
. . . . . . 7
      DProd  
     
    DProd            |
| 40 | 39 | notbid 308 |
. . . . . 6
 
    DProd        
    DProd            |
| 41 | 34, 40 | imbi12d 334 |
. . . . 5
       DProd         

    DProd             |
| 42 | 41 | imbi2d 330 |
. . . 4
  
     DProd  
       
      DProd              |
| 43 | | ablfac1eulem.1 |
. . . . . . 7
   |
| 44 | | nprmdvds1 15418 |
. . . . . . 7

  |
| 45 | 43, 44 | syl 17 |
. . . . . 6
   |
| 46 | | ablfac1.g |
. . . . . . . . . . 11
   |
| 47 | | ablgrp 18198 |
. . . . . . . . . . 11

  |
| 48 | | eqid 2622 |
. . . . . . . . . . . 12
         |
| 49 | 48 | dprd0 18430 |
. . . . . . . . . . 11
   DProd  DProd           |
| 50 | 46, 47, 49 | 3syl 18 |
. . . . . . . . . 10
   DProd  DProd           |
| 51 | 50 | simprd 479 |
. . . . . . . . 9
  DProd          |
| 52 | 51 | fveq2d 6195 |
. . . . . . . 8
     DProd               |
| 53 | | fvex 6201 |
. . . . . . . . 9
     |
| 54 | | hashsng 13159 |
. . . . . . . . 9
                 |
| 55 | 53, 54 | ax-mp 5 |
. . . . . . . 8
           |
| 56 | 52, 55 | syl6eq 2672 |
. . . . . . 7
     DProd     |
| 57 | 56 | breq2d 4665 |
. . . . . 6
      DProd  
   |
| 58 | 45, 57 | mtbird 315 |
. . . . 5
     DProd     |
| 59 | 58 | a1d 25 |
. . . 4
 
    DProd      |
| 60 | | ssun1 3776 |
. . . . . . . . . 10
     |
| 61 | | sstr 3611 |
. . . . . . . . . 10
 
        
  |
| 62 | 60, 61 | mpan 706 |
. . . . . . . . 9
    
  |
| 63 | 62 | imim1i 63 |
. . . . . . . 8
 
    DProd              
    DProd            |
| 64 | | ablfac1eu.1 |
. . . . . . . . . . . . . . . . . . . . 21
   DProd 
DProd     |
| 65 | 64 | simpld 475 |
. . . . . . . . . . . . . . . . . . . 20
  DProd
  |
| 66 | | ablfac1eu.2 |
. . . . . . . . . . . . . . . . . . . 20
   |
| 67 | 65, 66 | dprdf2 18406 |
. . . . . . . . . . . . . . . . . . 19
     SubGrp    |
| 68 | 67 | adantr 481 |
. . . . . . . . . . . . . . . . . 18
 

          SubGrp    |
| 69 | | simprr 796 |
. . . . . . . . . . . . . . . . . . 19
 

            |
| 70 | 69 | ssdifssd 3748 |
. . . . . . . . . . . . . . . . . 18
 

             
  |
| 71 | 68, 70 | fssresd 6071 |
. . . . . . . . . . . . . . . . 17
 

                            SubGrp    |
| 72 | | simprl 794 |
. . . . . . . . . . . . . . . . . . . 20
 

     
  |
| 73 | | disjsn 4246 |
. . . . . . . . . . . . . . . . . . . 20
    
  |
| 74 | 72, 73 | sylibr 224 |
. . . . . . . . . . . . . . . . . . 19
 

            |
| 75 | 74 | difeq1d 3727 |
. . . . . . . . . . . . . . . . . 18
 

                    |
| 76 | | difindir 3882 |
. . . . . . . . . . . . . . . . . 18
                     |
| 77 | 75, 76, 5 | 3eqtr3g 2679 |
. . . . . . . . . . . . . . . . 17
 

                    |
| 78 | | difundir 3880 |
. . . . . . . . . . . . . . . . . 18
                     |
| 79 | 78 | a1i 11 |
. . . . . . . . . . . . . . . . 17
 

                            |
| 80 | | eqid 2622 |
. . . . . . . . . . . . . . . . 17
         |
| 81 | 65 | adantr 481 |
. . . . . . . . . . . . . . . . . . 19
 

       DProd   |
| 82 | 66 | adantr 481 |
. . . . . . . . . . . . . . . . . . 19
 

        |
| 83 | 81, 82, 70 | dprdres 18427 |
. . . . . . . . . . . . . . . . . 18
 

        DProd            DProd           
 DProd     |
| 84 | 83 | simpld 475 |
. . . . . . . . . . . . . . . . 17
 

       DProd             |
| 85 | 71, 77, 79, 80, 84 | dprdsplit 18447 |
. . . . . . . . . . . . . . . 16
 

       DProd
             DProd                         DProd
                      |
| 86 | 85 | fveq2d 6195 |
. . . . . . . . . . . . . . 15
 

          DProd                  DProd            
            DProd
                       |
| 87 | | eqid 2622 |
. . . . . . . . . . . . . . . 16
Cntz  Cntz   |
| 88 | | fdm 6051 |
. . . . . . . . . . . . . . . . . . . 20
 
                     SubGrp                      |
| 89 | 71, 88 | syl 17 |
. . . . . . . . . . . . . . . . . . 19
 

                          |
| 90 | | ssdif 3745 |
. . . . . . . . . . . . . . . . . . . 20
                   |
| 91 | 60, 90 | mp1i 13 |
. . . . . . . . . . . . . . . . . . 19
 

                    |
| 92 | 84, 89, 91 | dprdres 18427 |
. . . . . . . . . . . . . . . . . 18
 

        DProd  
              
DProd                   DProd               |
| 93 | 92 | simpld 475 |
. . . . . . . . . . . . . . . . 17
 

       DProd            
      |
| 94 | | dprdsubg 18423 |
. . . . . . . . . . . . . . . . 17
  DProd            
     DProd
                 SubGrp    |
| 95 | 93, 94 | syl 17 |
. . . . . . . . . . . . . . . 16
 

       DProd
                 SubGrp    |
| 96 | | ssun2 3777 |
. . . . . . . . . . . . . . . . . . . 20
 
     |
| 97 | | ssdif 3745 |
. . . . . . . . . . . . . . . . . . . 20
                       |
| 98 | 96, 97 | mp1i 13 |
. . . . . . . . . . . . . . . . . . 19
 

           
          |
| 99 | 84, 89, 98 | dprdres 18427 |
. . . . . . . . . . . . . . . . . 18
 

        DProd  
                 DProd                    
DProd               |
| 100 | 99 | simpld 475 |
. . . . . . . . . . . . . . . . 17
 

       DProd                     |
| 101 | | dprdsubg 18423 |
. . . . . . . . . . . . . . . . 17
  DProd                    DProd                    SubGrp    |
| 102 | 100, 101 | syl 17 |
. . . . . . . . . . . . . . . 16
 

       DProd
                   SubGrp    |
| 103 | 84, 89, 91, 98, 77, 48 | dprddisj2 18438 |
. . . . . . . . . . . . . . . 16
 

        DProd                   DProd                             |
| 104 | 84, 89, 91, 98, 77, 87 | dprdcntz2 18437 |
. . . . . . . . . . . . . . . 16
 

       DProd
                  Cntz     DProd                       |
| 105 | | ablfac1.f |
. . . . . . . . . . . . . . . . . 18
   |
| 106 | 105 | adantr 481 |
. . . . . . . . . . . . . . . . 17
 

     
  |
| 107 | | ablfac1.b |
. . . . . . . . . . . . . . . . . 18
     |
| 108 | 107 | dprdssv 18415 |
. . . . . . . . . . . . . . . . 17
 DProd            
      |
| 109 | | ssfi 8180 |
. . . . . . . . . . . . . . . . 17
  
DProd                    DProd
                   |
| 110 | 106, 108,
109 | sylancl 694 |
. . . . . . . . . . . . . . . 16
 

       DProd
                   |
| 111 | 107 | dprdssv 18415 |
. . . . . . . . . . . . . . . . 17
 DProd                   
 |
| 112 | | ssfi 8180 |
. . . . . . . . . . . . . . . . 17
  
DProd                   
  DProd  
                   |
| 113 | 106, 111,
112 | sylancl 694 |
. . . . . . . . . . . . . . . 16
 

       DProd
                     |
| 114 | 80, 48, 87, 95, 102, 103, 104, 110, 113 | lsmhash 18118 |
. . . . . . . . . . . . . . 15
 

           DProd            
            DProd
                          DProd            
          DProd  
                     |
| 115 | 91 | resabs1d 5428 |
. . . . . . . . . . . . . . . . . 18
 

                 
     
      |
| 116 | 115 | oveq2d 6666 |
. . . . . . . . . . . . . . . . 17
 

       DProd
                  DProd          |
| 117 | 116 | fveq2d 6195 |
. . . . . . . . . . . . . . . 16
 

          DProd            
          DProd           |
| 118 | 98 | resabs1d 5428 |
. . . . . . . . . . . . . . . . . 18
 

                                  |
| 119 | 118 | oveq2d 6666 |
. . . . . . . . . . . . . . . . 17
 

       DProd
                    DProd            |
| 120 | 119 | fveq2d 6195 |
. . . . . . . . . . . . . . . 16
 

          DProd                         DProd 
           |
| 121 | 117, 120 | oveq12d 6668 |
. . . . . . . . . . . . . . 15
 

           DProd            
          DProd  
                        DProd  
          DProd              |
| 122 | 86, 114, 121 | 3eqtrd 2660 |
. . . . . . . . . . . . . 14
 

          DProd                  DProd  
          DProd              |
| 123 | 122 | breq2d 4665 |
. . . . . . . . . . . . 13
 

           DProd            
     DProd 
           DProd               |
| 124 | 43 | adantr 481 |
. . . . . . . . . . . . . 14
 

     
  |
| 125 | 107 | dprdssv 18415 |
. . . . . . . . . . . . . . . . 17
 DProd  
      |
| 126 | | ssfi 8180 |
. . . . . . . . . . . . . . . . 17
  
DProd          DProd
         |
| 127 | 106, 125,
126 | sylancl 694 |
. . . . . . . . . . . . . . . 16
 

       DProd
         |
| 128 | | hashcl 13147 |
. . . . . . . . . . . . . . . 16
  DProd            DProd           |
| 129 | 127, 128 | syl 17 |
. . . . . . . . . . . . . . 15
 

          DProd  
        |
| 130 | 129 | nn0zd 11480 |
. . . . . . . . . . . . . 14
 

          DProd  
        |
| 131 | 107 | dprdssv 18415 |
. . . . . . . . . . . . . . . . 17
 DProd         
 |
| 132 | | ssfi 8180 |
. . . . . . . . . . . . . . . . 17
  
DProd            DProd            |
| 133 | 106, 131,
132 | sylancl 694 |
. . . . . . . . . . . . . . . 16
 

       DProd
           |
| 134 | | hashcl 13147 |
. . . . . . . . . . . . . . . 16
  DProd              DProd 
           |
| 135 | 133, 134 | syl 17 |
. . . . . . . . . . . . . . 15
 

          DProd             |
| 136 | 135 | nn0zd 11480 |
. . . . . . . . . . . . . 14
 

          DProd             |
| 137 | | euclemma 15425 |
. . . . . . . . . . . . . 14
      DProd             DProd                  DProd  
          DProd                 DProd  
          DProd               |
| 138 | 124, 130,
136, 137 | syl3anc 1326 |
. . . . . . . . . . . . 13
 

            DProd  
          DProd                 DProd  
          DProd               |
| 139 | 123, 138 | bitrd 268 |
. . . . . . . . . . . 12
 

           DProd                  DProd  
          DProd               |
| 140 | 45 | ad2antrr 762 |
. . . . . . . . . . . . . . 15
   
     
   |
| 141 | | simpr 477 |
. . . . . . . . . . . . . . . . . . . . . . . . 25
   
     
   |
| 142 | 141 | sneqd 4189 |
. . . . . . . . . . . . . . . . . . . . . . . 24
   
     
       |
| 143 | 142 | difeq1d 3727 |
. . . . . . . . . . . . . . . . . . . . . . 23
   
     
               |
| 144 | | difid 3948 |
. . . . . . . . . . . . . . . . . . . . . . 23
       |
| 145 | 143, 144 | syl6eq 2672 |
. . . . . . . . . . . . . . . . . . . . . 22
   
     
         |
| 146 | 145 | reseq2d 5396 |
. . . . . . . . . . . . . . . . . . . . 21
   
     
             |
| 147 | 146, 8 | syl6eq 2672 |
. . . . . . . . . . . . . . . . . . . 20
   
     
           |
| 148 | 147 | oveq2d 6666 |
. . . . . . . . . . . . . . . . . . 19
   
     
  DProd           DProd    |
| 149 | 51 | ad2antrr 762 |
. . . . . . . . . . . . . . . . . . 19
   
     
  DProd          |
| 150 | 148, 149 | eqtrd 2656 |
. . . . . . . . . . . . . . . . . 18
   
     
  DProd                  |
| 151 | 150 | fveq2d 6195 |
. . . . . . . . . . . . . . . . 17
   
     
     DProd                       |
| 152 | 151, 55 | syl6eq 2672 |
. . . . . . . . . . . . . . . 16
   
     
     DProd             |
| 153 | 152 | breq2d 4665 |
. . . . . . . . . . . . . . 15
   
     
      DProd          
   |
| 154 | 140, 153 | mtbird 315 |
. . . . . . . . . . . . . 14
   
     
     DProd             |
| 155 | | ablfac1.1 |
. . . . . . . . . . . . . . . . . . . . 21

  |
| 156 | 155 | adantr 481 |
. . . . . . . . . . . . . . . . . . . 20
 

        |
| 157 | 69 | unssbd 3791 |
. . . . . . . . . . . . . . . . . . . . 21
 

          |
| 158 | | vex 3203 |
. . . . . . . . . . . . . . . . . . . . . 22
 |
| 159 | 158 | snss 4316 |
. . . . . . . . . . . . . . . . . . . . 21

    |
| 160 | 157, 159 | sylibr 224 |
. . . . . . . . . . . . . . . . . . . 20
 

        |
| 161 | 156, 160 | sseldd 3604 |
. . . . . . . . . . . . . . . . . . 19
 

        |
| 162 | | ablfac1eu.3 |
. . . . . . . . . . . . . . . . . . . 20
 
   |
| 163 | 160, 162 | syldan 487 |
. . . . . . . . . . . . . . . . . . 19
 

     
  |
| 164 | | prmdvdsexpr 15429 |
. . . . . . . . . . . . . . . . . . 19
 

    
   |
| 165 | 124, 161,
163, 164 | syl3anc 1326 |
. . . . . . . . . . . . . . . . . 18
 

              |
| 166 | | eqcom 2629 |
. . . . . . . . . . . . . . . . . 18

  |
| 167 | 165, 166 | syl6ib 241 |
. . . . . . . . . . . . . . . . 17
 

              |
| 168 | 167 | necon3ad 2807 |
. . . . . . . . . . . . . . . 16
 

              |
| 169 | 168 | imp 445 |
. . . . . . . . . . . . . . 15
   
      
      |
| 170 | | disjsn2 4247 |
. . . . . . . . . . . . . . . . . . . . . . 23
         |
| 171 | 170 | adantl 482 |
. . . . . . . . . . . . . . . . . . . . . 22
   
               |
| 172 | | disj3 4021 |
. . . . . . . . . . . . . . . . . . . . . 22
                 |
| 173 | 171, 172 | sylib 208 |
. . . . . . . . . . . . . . . . . . . . 21
   
                 |
| 174 | 173 | reseq2d 5396 |
. . . . . . . . . . . . . . . . . . . 20
   
           
         |
| 175 | 174 | oveq2d 6666 |
. . . . . . . . . . . . . . . . . . 19
   
        DProd
      DProd            |
| 176 | 65 | ad2antrr 762 |
. . . . . . . . . . . . . . . . . . . 20
   
        DProd   |
| 177 | 66 | ad2antrr 762 |
. . . . . . . . . . . . . . . . . . . 20
   
         |
| 178 | 160 | adantr 481 |
. . . . . . . . . . . . . . . . . . . 20
   
         |
| 179 | 176, 177,
178 | dpjlem 18450 |
. . . . . . . . . . . . . . . . . . 19
   
        DProd
           |
| 180 | 175, 179 | eqtr3d 2658 |
. . . . . . . . . . . . . . . . . 18
   
        DProd
               |
| 181 | 180 | fveq2d 6195 |
. . . . . . . . . . . . . . . . 17
   
           DProd                     |
| 182 | | ablfac1eu.4 |
. . . . . . . . . . . . . . . . . . 19
 
               |
| 183 | 160, 182 | syldan 487 |
. . . . . . . . . . . . . . . . . 18
 

                    |
| 184 | 183 | adantr 481 |
. . . . . . . . . . . . . . . . 17
   
                     |
| 185 | 181, 184 | eqtrd 2656 |
. . . . . . . . . . . . . . . 16
   
           DProd                 |
| 186 | 185 | breq2d 4665 |
. . . . . . . . . . . . . . 15
   
            DProd          
       |
| 187 | 169, 186 | mtbird 315 |
. . . . . . . . . . . . . 14
   
      
    DProd             |
| 188 | 154, 187 | pm2.61dane 2881 |
. . . . . . . . . . . . 13
 

     
    DProd             |
| 189 | | orel2 398 |
. . . . . . . . . . . . 13
     DProd                 DProd  
          DProd                DProd  
         |
| 190 | 188, 189 | syl 17 |
. . . . . . . . . . . 12
 

            DProd  
          DProd                DProd  
         |
| 191 | 139, 190 | sylbid 230 |
. . . . . . . . . . 11
 

           DProd            
    DProd            |
| 192 | 191 | con3d 148 |
. . . . . . . . . 10
 

           DProd  
     
    DProd                |
| 193 | 192 | expr 643 |
. . . . . . . . 9
 
           DProd  
     
    DProd                 |
| 194 | 193 | a2d 29 |
. . . . . . . 8
 
           DProd  
           
    DProd                 |
| 195 | 63, 194 | syl5 34 |
. . . . . . 7
 
       DProd                   DProd                 |
| 196 | 195 | expcom 451 |
. . . . . 6
 
 
    DProd              
    DProd                  |
| 197 | 196 | adantl 482 |
. . . . 5
 

  
    DProd                   DProd                  |
| 198 | 197 | a2d 29 |
. . . 4
 

  
    DProd                
    DProd                  |
| 199 | 15, 24, 33, 42, 59, 198 | findcard2s 8201 |
. . 3
  
    DProd             |
| 200 | 2, 199 | mpcom 38 |
. 2
      DProd            |
| 201 | 1, 200 | mpi 20 |
1
     DProd           |