| Step | Hyp | Ref
| Expression |
| 1 | | prodmo.1 |
. . 3
        |
| 2 | | prodmo.2 |
. . 3
 
   |
| 3 | | prodmolem2.7 |
. . . 4

      |
| 4 | | prodmolem2.9 |
. . . . . . 7

             |
| 5 | | prodmolem2.8 |
. . . . . . . . . . . 12
           |
| 6 | | ovex 6678 |
. . . . . . . . . . . . 13
     |
| 7 | 6 | f1oen 7976 |
. . . . . . . . . . . 12
        
      |
| 8 | 5, 7 | syl 17 |
. . . . . . . . . . 11
    
  |
| 9 | | fzfid 12772 |
. . . . . . . . . . . 12
       |
| 10 | 8 | ensymd 8007 |
. . . . . . . . . . . . 13
       |
| 11 | | enfii 8177 |
. . . . . . . . . . . . 13
          
  |
| 12 | 9, 10, 11 | syl2anc 693 |
. . . . . . . . . . . 12
   |
| 13 | | hashen 13135 |
. . . . . . . . . . . 12
     
                     |
| 14 | 9, 12, 13 | syl2anc 693 |
. . . . . . . . . . 11
                     |
| 15 | 8, 14 | mpbird 247 |
. . . . . . . . . 10
               |
| 16 | | prodmolem2.5 |
. . . . . . . . . . . 12
   |
| 17 | 16 | nnnn0d 11351 |
. . . . . . . . . . 11
   |
| 18 | | hashfz1 13134 |
. . . . . . . . . . 11

          |
| 19 | 17, 18 | syl 17 |
. . . . . . . . . 10
           |
| 20 | 15, 19 | eqtr3d 2658 |
. . . . . . . . 9
       |
| 21 | 20 | oveq2d 6666 |
. . . . . . . 8
               |
| 22 | | isoeq4 6570 |
. . . . . . . 8
            
           
          |
| 23 | 21, 22 | syl 17 |
. . . . . . 7
            
          |
| 24 | 4, 23 | mpbid 222 |
. . . . . 6

         |
| 25 | | isof1o 6573 |
. . . . . 6
                  |
| 26 | | f1of 6137 |
. . . . . 6
        
          |
| 27 | 24, 25, 26 | 3syl 18 |
. . . . 5
           |
| 28 | | nnuz 11723 |
. . . . . . 7
     |
| 29 | 16, 28 | syl6eleq 2711 |
. . . . . 6
       |
| 30 | | eluzfz2 12349 |
. . . . . 6
    
      |
| 31 | 29, 30 | syl 17 |
. . . . 5
       |
| 32 | 27, 31 | ffvelrnd 6360 |
. . . 4
       |
| 33 | 3, 32 | sseldd 3604 |
. . 3
           |
| 34 | 3 | sselda 3603 |
. . . . . 6
 
       |
| 35 | 24, 25 | syl 17 |
. . . . . . . . 9
           |
| 36 | | f1ocnvfv2 6533 |
. . . . . . . . 9
         
            |
| 37 | 35, 36 | sylan 488 |
. . . . . . . 8
 
            |
| 38 | | f1ocnv 6149 |
. . . . . . . . . . . 12
        
           |
| 39 | | f1of 6137 |
. . . . . . . . . . . 12
                     |
| 40 | 35, 38, 39 | 3syl 18 |
. . . . . . . . . . 11
            |
| 41 | 40 | ffvelrnda 6359 |
. . . . . . . . . 10
 
            |
| 42 | | elfzle2 12345 |
. . . . . . . . . 10
                 |
| 43 | 41, 42 | syl 17 |
. . . . . . . . 9
 
        |
| 44 | 24 | adantr 481 |
. . . . . . . . . 10
 
          |
| 45 | | fzssuz 12382 |
. . . . . . . . . . . . 13
         |
| 46 | | uzssz 11707 |
. . . . . . . . . . . . . 14
     |
| 47 | | zssre 11384 |
. . . . . . . . . . . . . 14
 |
| 48 | 46, 47 | sstri 3612 |
. . . . . . . . . . . . 13
     |
| 49 | 45, 48 | sstri 3612 |
. . . . . . . . . . . 12
     |
| 50 | | ressxr 10083 |
. . . . . . . . . . . 12
 |
| 51 | 49, 50 | sstri 3612 |
. . . . . . . . . . 11
     |
| 52 | 51 | a1i 11 |
. . . . . . . . . 10
 
       |
| 53 | | uzssz 11707 |
. . . . . . . . . . . . . 14
     |
| 54 | 53, 47 | sstri 3612 |
. . . . . . . . . . . . 13
     |
| 55 | 54, 50 | sstri 3612 |
. . . . . . . . . . . 12
     |
| 56 | 3, 55 | syl6ss 3615 |
. . . . . . . . . . 11

  |
| 57 | 56 | adantr 481 |
. . . . . . . . . 10
 
   |
| 58 | 31 | adantr 481 |
. . . . . . . . . 10
 
       |
| 59 | | leisorel 13244 |
. . . . . . . . . 10
 
                                           
       |
| 60 | 44, 52, 57, 41, 58, 59 | syl122anc 1335 |
. . . . . . . . 9
 
               
       |
| 61 | 43, 60 | mpbid 222 |
. . . . . . . 8
 
         
      |
| 62 | 37, 61 | eqbrtrrd 4677 |
. . . . . . 7
 
       |
| 63 | 3, 53 | syl6ss 3615 |
. . . . . . . . 9

  |
| 64 | 63 | sselda 3603 |
. . . . . . . 8
 
   |
| 65 | | eluzelz 11697 |
. . . . . . . . . 10
        
      |
| 66 | 33, 65 | syl 17 |
. . . . . . . . 9
       |
| 67 | 66 | adantr 481 |
. . . . . . . 8
 
       |
| 68 | | eluz 11701 |
. . . . . . . 8
               
       |
| 69 | 64, 67, 68 | syl2anc 693 |
. . . . . . 7
 
         
       |
| 70 | 62, 69 | mpbird 247 |
. . . . . 6
 
           |
| 71 | | elfzuzb 12336 |
. . . . . 6
                         |
| 72 | 34, 70, 71 | sylanbrc 698 |
. . . . 5
 
           |
| 73 | 72 | ex 450 |
. . . 4
             |
| 74 | 73 | ssrdv 3609 |
. . 3

          |
| 75 | 1, 2, 33, 74 | fprodcvg 14660 |
. 2
                |
| 76 | | mulid2 10038 |
. . . . 5
     |
| 77 | 76 | adantl 482 |
. . . 4
 

    |
| 78 | | mulid1 10037 |
. . . . 5
     |
| 79 | 78 | adantl 482 |
. . . 4
 

    |
| 80 | | mulcl 10020 |
. . . . 5
 
     |
| 81 | 80 | adantl 482 |
. . . 4
 
       |
| 82 | | 1cnd 10056 |
. . . 4
   |
| 83 | 31, 21 | eleqtrrd 2704 |
. . . 4
           |
| 84 | | iftrue 4092 |
. . . . . . . . . . 11
        |
| 85 | 84 | adantl 482 |
. . . . . . . . . 10
 
        |
| 86 | 85, 2 | eqeltrd 2701 |
. . . . . . . . 9
 
        |
| 87 | 86 | ex 450 |
. . . . . . . 8
          |
| 88 | | iffalse 4095 |
. . . . . . . . 9
        |
| 89 | | ax-1cn 9994 |
. . . . . . . . 9
 |
| 90 | 88, 89 | syl6eqel 2709 |
. . . . . . . 8
        |
| 91 | 87, 90 | pm2.61d1 171 |
. . . . . . 7
        |
| 92 | 91 | adantr 481 |
. . . . . 6
 

   
   |
| 93 | 92, 1 | fmptd 6385 |
. . . . 5
       |
| 94 | | elfzelz 12342 |
. . . . 5
               |
| 95 | | ffvelrn 6357 |
. . . . 5
     
       |
| 96 | 93, 94, 95 | syl2an 494 |
. . . 4
 
                   |
| 97 | | fveq2 6191 |
. . . . . . 7
           |
| 98 | 97 | eqeq1d 2624 |
. . . . . 6
             |
| 99 | | fzssuz 12382 |
. . . . . . . . . 10
                 |
| 100 | 99, 53 | sstri 3612 |
. . . . . . . . 9
             |
| 101 | | eldifi 3732 |
. . . . . . . . 9
              
              |
| 102 | 100, 101 | sseldi 3601 |
. . . . . . . 8
              
  |
| 103 | | eldifn 3733 |
. . . . . . . . . 10
              
  |
| 104 | 103, 88 | syl 17 |
. . . . . . . . 9
              
   
   |
| 105 | 104, 89 | syl6eqel 2709 |
. . . . . . . 8
              
   
   |
| 106 | 1 | fvmpt2 6291 |
. . . . . . . 8
               
   |
| 107 | 102, 105,
106 | syl2anc 693 |
. . . . . . 7
              
           |
| 108 | 107, 104 | eqtrd 2656 |
. . . . . 6
              
      |
| 109 | 98, 108 | vtoclga 3272 |
. . . . 5
              
      |
| 110 | 109 | adantl 482 |
. . . 4
 
                     |
| 111 | | isof1o 6573 |
. . . . . . . 8
                          |
| 112 | | f1of 6137 |
. . . . . . . 8
            
              |
| 113 | 4, 111, 112 | 3syl 18 |
. . . . . . 7
               |
| 114 | 113 | ffvelrnda 6359 |
. . . . . 6
 
        
      |
| 115 | 114 | iftrued 4094 |
. . . . 5
 
        
             ![]_ ]_](_urbrack.gif) 
       ![]_ ]_](_urbrack.gif)   |
| 116 | 63 | adantr 481 |
. . . . . . 7
 
        
  |
| 117 | 116, 114 | sseldd 3604 |
. . . . . 6
 
        
      |
| 118 | | nfv 1843 |
. . . . . . . . 9
   |
| 119 | | nfv 1843 |
. . . . . . . . . . 11
       |
| 120 | | nfcsb1v 3549 |
. . . . . . . . . . 11
        ![]_ ]_](_urbrack.gif)  |
| 121 | | nfcv 2764 |
. . . . . . . . . . 11
   |
| 122 | 119, 120,
121 | nfif 4115 |
. . . . . . . . . 10
               ![]_ ]_](_urbrack.gif)    |
| 123 | 122 | nfel1 2779 |
. . . . . . . . 9
               ![]_ ]_](_urbrack.gif)    |
| 124 | 118, 123 | nfim 1825 |
. . . . . . . 8
                ![]_ ]_](_urbrack.gif)     |
| 125 | | fvex 6201 |
. . . . . . . 8
     |
| 126 | | eleq1 2689 |
. . . . . . . . . . 11
     
       |
| 127 | | csbeq1a 3542 |
. . . . . . . . . . 11
           ![]_ ]_](_urbrack.gif)   |
| 128 | 126, 127 | ifbieq1d 4109 |
. . . . . . . . . 10
                       ![]_ ]_](_urbrack.gif)     |
| 129 | 128 | eleq1d 2686 |
. . . . . . . . 9
          
             ![]_ ]_](_urbrack.gif) 
    |
| 130 | 129 | imbi2d 330 |
. . . . . . . 8
      
   
 
              ![]_ ]_](_urbrack.gif)       |
| 131 | 124, 125,
130, 91 | vtoclf 3258 |
. . . . . . 7
              ![]_ ]_](_urbrack.gif)     |
| 132 | 131 | adantr 481 |
. . . . . 6
 
        
             ![]_ ]_](_urbrack.gif) 
   |
| 133 | | eleq1 2689 |
. . . . . . . 8
     
       |
| 134 | | csbeq1 3536 |
. . . . . . . 8
       ![]_ ]_](_urbrack.gif)       ![]_ ]_](_urbrack.gif)   |
| 135 | 133, 134 | ifbieq1d 4109 |
. . . . . . 7
      
   ![]_ ]_](_urbrack.gif)                ![]_ ]_](_urbrack.gif)     |
| 136 | | nfcv 2764 |
. . . . . . . . 9
        |
| 137 | | nfv 1843 |
. . . . . . . . . 10
  |
| 138 | | nfcsb1v 3549 |
. . . . . . . . . 10
  
 ![]_ ]_](_urbrack.gif)  |
| 139 | 137, 138,
121 | nfif 4115 |
. . . . . . . . 9
       ![]_ ]_](_urbrack.gif)    |
| 140 | | eleq1 2689 |
. . . . . . . . . 10
 
   |
| 141 | | csbeq1a 3542 |
. . . . . . . . . 10
   ![]_ ]_](_urbrack.gif)   |
| 142 | 140, 141 | ifbieq1d 4109 |
. . . . . . . . 9
           ![]_ ]_](_urbrack.gif)     |
| 143 | 136, 139,
142 | cbvmpt 4749 |
. . . . . . . 8
    
      
 ![]_ ]_](_urbrack.gif)     |
| 144 | 1, 143 | eqtri 2644 |
. . . . . . 7
      ![]_ ]_](_urbrack.gif)     |
| 145 | 135, 144 | fvmptg 6280 |
. . . . . 6
                   ![]_ ]_](_urbrack.gif)                         ![]_ ]_](_urbrack.gif) 
   |
| 146 | 117, 132,
145 | syl2anc 693 |
. . . . 5
 
        
                     ![]_ ]_](_urbrack.gif)     |
| 147 | | elfznn 12370 |
. . . . . . 7
           |
| 148 | 147 | adantl 482 |
. . . . . 6
 
        
  |
| 149 | 115, 132 | eqeltrrd 2702 |
. . . . . 6
 
        
      ![]_ ]_](_urbrack.gif)   |
| 150 | | fveq2 6191 |
. . . . . . . 8
           |
| 151 | 150 | csbeq1d 3540 |
. . . . . . 7
       ![]_ ]_](_urbrack.gif)       ![]_ ]_](_urbrack.gif)   |
| 152 | | prodmolem2.4 |
. . . . . . 7
       ![]_ ]_](_urbrack.gif)   |
| 153 | 151, 152 | fvmptg 6280 |
. . . . . 6
        ![]_ ]_](_urbrack.gif)
           ![]_ ]_](_urbrack.gif)   |
| 154 | 148, 149,
153 | syl2anc 693 |
. . . . 5
 
        
          ![]_ ]_](_urbrack.gif)   |
| 155 | 115, 146,
154 | 3eqtr4rd 2667 |
. . . 4
 
        
              |
| 156 | 77, 79, 81, 82, 4, 83, 3, 96, 110, 155 | seqcoll 13248 |
. . 3
                   |
| 157 | | prodmo.3 |
. . . 4
       ![]_ ]_](_urbrack.gif)   |
| 158 | 16, 16 | jca 554 |
. . . 4
     |
| 159 | 1, 2, 157, 152, 158, 5, 35 | prodmolem3 14663 |
. . 3
               |
| 160 | 156, 159 | eqtr4d 2659 |
. 2
                   |
| 161 | 75, 160 | breqtrd 4679 |
1
            |