| Step | Hyp | Ref
| Expression |
| 1 | | fprodefsum.2 |
. . . 4
   |
| 2 | | fprodefsum.1 |
. . . 4
     |
| 3 | 1, 2 | syl6eleq 2711 |
. . 3
       |
| 4 | | oveq2 6658 |
. . . . . . 7
           |
| 5 | 4 | prodeq1d 14651 |
. . . . . 6
                                   |
| 6 | 4 | sumeq1d 14431 |
. . . . . . 7
             
             |
| 7 | 6 | fveq2d 6195 |
. . . . . 6
                                   |
| 8 | 5, 7 | eqeq12d 2637 |
. . . . 5
                                 
                                   |
| 9 | 8 | imbi2d 330 |
. . . 4
  
                                                                      |
| 10 | | oveq2 6658 |
. . . . . . 7
           |
| 11 | 10 | prodeq1d 14651 |
. . . . . 6
                                   |
| 12 | 10 | sumeq1d 14431 |
. . . . . . 7
             
             |
| 13 | 12 | fveq2d 6195 |
. . . . . 6
                                   |
| 14 | 11, 13 | eqeq12d 2637 |
. . . . 5
                                 
                                   |
| 15 | 14 | imbi2d 330 |
. . . 4
  
                                                                      |
| 16 | | oveq2 6658 |
. . . . . . 7
               |
| 17 | 16 | prodeq1d 14651 |
. . . . . 6
                                       |
| 18 | 16 | sumeq1d 14431 |
. . . . . . 7
               
               |
| 19 | 18 | fveq2d 6195 |
. . . . . 6
                          
            |
| 20 | 17, 19 | eqeq12d 2637 |
. . . . 5
                                   
                                       |
| 21 | 20 | imbi2d 330 |
. . . 4
    
                                                                          |
| 22 | | oveq2 6658 |
. . . . . . 7
           |
| 23 | 22 | prodeq1d 14651 |
. . . . . 6
                                   |
| 24 | 22 | sumeq1d 14431 |
. . . . . . 7
             
             |
| 25 | 24 | fveq2d 6195 |
. . . . . 6
                                   |
| 26 | 23, 25 | eqeq12d 2637 |
. . . . 5
                                 
                                   |
| 27 | 26 | imbi2d 330 |
. . . 4
  
                                                                      |
| 28 | | fzsn 12383 |
. . . . . . . . 9
         |
| 29 | 28 | adantl 482 |
. . . . . . . 8
 

        |
| 30 | 29 | prodeq1d 14651 |
. . . . . . 7
 

                               |
| 31 | | simpr 477 |
. . . . . . . 8
 

  |
| 32 | | uzid 11702 |
. . . . . . . . . 10
       |
| 33 | 32, 2 | syl6eleqr 2712 |
. . . . . . . . 9
   |
| 34 | | fprodefsum.3 |
. . . . . . . . . . . 12
 
   |
| 35 | | efcl 14813 |
. . . . . . . . . . . 12
       |
| 36 | 34, 35 | syl 17 |
. . . . . . . . . . 11
 
       |
| 37 | | eqid 2622 |
. . . . . . . . . . 11
             |
| 38 | 36, 37 | fmptd 6385 |
. . . . . . . . . 10
             |
| 39 | 38 | ffvelrnda 6359 |
. . . . . . . . 9
 
             |
| 40 | 33, 39 | sylan2 491 |
. . . . . . . 8
 

            |
| 41 | | fveq2 6191 |
. . . . . . . . 9
                       |
| 42 | 41 | prodsn 14692 |
. . . . . . . 8
               
                      |
| 43 | 31, 40, 42 | syl2anc 693 |
. . . . . . 7
 

                         |
| 44 | 33 | adantl 482 |
. . . . . . . 8
 

  |
| 45 | | fvex 6201 |
. . . . . . . 8
     ![]_ ]_](_urbrack.gif)   |
| 46 | | nfcv 2764 |
. . . . . . . . 9
   |
| 47 | | nfcv 2764 |
. . . . . . . . . 10
   |
| 48 | | nfcsb1v 3549 |
. . . . . . . . . 10
  
 ![]_ ]_](_urbrack.gif)  |
| 49 | 47, 48 | nffv 6198 |
. . . . . . . . 9
       ![]_ ]_](_urbrack.gif)   |
| 50 | | csbeq1a 3542 |
. . . . . . . . . 10
   ![]_ ]_](_urbrack.gif)   |
| 51 | 50 | fveq2d 6195 |
. . . . . . . . 9
          ![]_ ]_](_urbrack.gif)    |
| 52 | 46, 49, 51, 37 | fvmptf 6301 |
. . . . . . . 8
       ![]_ ]_](_urbrack.gif)                  ![]_ ]_](_urbrack.gif)    |
| 53 | 44, 45, 52 | sylancl 694 |
. . . . . . 7
 

               ![]_ ]_](_urbrack.gif)    |
| 54 | 30, 43, 53 | 3eqtrd 2660 |
. . . . . 6
 

                     ![]_ ]_](_urbrack.gif)    |
| 55 | 29 | sumeq1d 14431 |
. . . . . . . 8
 

            
          |
| 56 | | eqid 2622 |
. . . . . . . . . . . 12
     |
| 57 | 34, 56 | fmptd 6385 |
. . . . . . . . . . 11
         |
| 58 | 57 | ffvelrnda 6359 |
. . . . . . . . . 10
 
         |
| 59 | 33, 58 | sylan2 491 |
. . . . . . . . 9
 

        |
| 60 | | fveq2 6191 |
. . . . . . . . . 10
               |
| 61 | 60 | sumsn 14475 |
. . . . . . . . 9
           
              |
| 62 | 31, 59, 61 | syl2anc 693 |
. . . . . . . 8
 

                 |
| 63 | 34 | ralrimiva 2966 |
. . . . . . . . . 10
 
  |
| 64 | 48 | nfel1 2779 |
. . . . . . . . . . . 12
    ![]_ ]_](_urbrack.gif)
 |
| 65 | 50 | eleq1d 2686 |
. . . . . . . . . . . 12
 
  ![]_ ]_](_urbrack.gif)    |
| 66 | 64, 65 | rspc 3303 |
. . . . . . . . . . 11
  
  ![]_ ]_](_urbrack.gif)
   |
| 67 | 66 | impcom 446 |
. . . . . . . . . 10
  
   ![]_ ]_](_urbrack.gif)   |
| 68 | 63, 33, 67 | syl2an 494 |
. . . . . . . . 9
 

  ![]_ ]_](_urbrack.gif)   |
| 69 | 56 | fvmpts 6285 |
. . . . . . . . 9
    ![]_ ]_](_urbrack.gif)
         ![]_ ]_](_urbrack.gif)   |
| 70 | 44, 68, 69 | syl2anc 693 |
. . . . . . . 8
 

        ![]_ ]_](_urbrack.gif)   |
| 71 | 55, 62, 70 | 3eqtrd 2660 |
. . . . . . 7
 

              ![]_ ]_](_urbrack.gif)   |
| 72 | 71 | fveq2d 6195 |
. . . . . 6
 

                     ![]_ ]_](_urbrack.gif)    |
| 73 | 54, 72 | eqtr4d 2659 |
. . . . 5
 

                                  |
| 74 | 73 | expcom 451 |
. . . 4
                                     |
| 75 | | simp3 1063 |
. . . . . . . . . 10
 
                                                                   |
| 76 | 2 | peano2uzs 11742 |
. . . . . . . . . . . 12
     |
| 77 | | simpr 477 |
. . . . . . . . . . . . . 14
 
       |
| 78 | | nfcsb1v 3549 |
. . . . . . . . . . . . . . . . . 18
      ![]_ ]_](_urbrack.gif)  |
| 79 | 78 | nfel1 2779 |
. . . . . . . . . . . . . . . . 17
      ![]_ ]_](_urbrack.gif)
 |
| 80 | | csbeq1a 3542 |
. . . . . . . . . . . . . . . . . 18
       ![]_ ]_](_urbrack.gif)   |
| 81 | 80 | eleq1d 2686 |
. . . . . . . . . . . . . . . . 17
   
    ![]_ ]_](_urbrack.gif)    |
| 82 | 79, 81 | rspc 3303 |
. . . . . . . . . . . . . . . 16
    
    ![]_ ]_](_urbrack.gif)
   |
| 83 | 63, 82 | mpan9 486 |
. . . . . . . . . . . . . . 15
 
       ![]_ ]_](_urbrack.gif)   |
| 84 | | efcl 14813 |
. . . . . . . . . . . . . . 15
  
  ![]_ ]_](_urbrack.gif)
       ![]_ ]_](_urbrack.gif)    |
| 85 | 83, 84 | syl 17 |
. . . . . . . . . . . . . 14
 
          ![]_ ]_](_urbrack.gif)    |
| 86 | | nfcv 2764 |
. . . . . . . . . . . . . . 15
     |
| 87 | 47, 78 | nffv 6198 |
. . . . . . . . . . . . . . 15
         ![]_ ]_](_urbrack.gif)   |
| 88 | 80 | fveq2d 6195 |
. . . . . . . . . . . . . . 15
              ![]_ ]_](_urbrack.gif)    |
| 89 | 86, 87, 88, 37 | fvmptf 6301 |
. . . . . . . . . . . . . 14
           ![]_ ]_](_urbrack.gif)            
         ![]_ ]_](_urbrack.gif)    |
| 90 | 77, 85, 89 | syl2anc 693 |
. . . . . . . . . . . . 13
 
                      ![]_ ]_](_urbrack.gif)    |
| 91 | 56 | fvmpts 6285 |
. . . . . . . . . . . . . . 15
        ![]_ ]_](_urbrack.gif)
      
   
  ![]_ ]_](_urbrack.gif)   |
| 92 | 77, 83, 91 | syl2anc 693 |
. . . . . . . . . . . . . 14
 
               ![]_ ]_](_urbrack.gif)   |
| 93 | 92 | fveq2d 6195 |
. . . . . . . . . . . . 13
 
                      ![]_ ]_](_urbrack.gif)    |
| 94 | 90, 93 | eqtr4d 2659 |
. . . . . . . . . . . 12
 
                       
     |
| 95 | 76, 94 | sylan2 491 |
. . . . . . . . . . 11
 
                     
     |
| 96 | 95 | 3adant3 1081 |
. . . . . . . . . 10
 
                                          
                |
| 97 | 75, 96 | oveq12d 6668 |
. . . . . . . . 9
 
                                                                                        
      |
| 98 | | simpr 477 |
. . . . . . . . . . . 12
 
   |
| 99 | 98, 2 | syl6eleq 2711 |
. . . . . . . . . . 11
 
       |
| 100 | | elfzuz 12338 |
. . . . . . . . . . . . . 14
    
        |
| 101 | 100, 2 | syl6eleqr 2712 |
. . . . . . . . . . . . 13
    
    |
| 102 | 38 | ffvelrnda 6359 |
. . . . . . . . . . . . 13
 
             |
| 103 | 101, 102 | sylan2 491 |
. . . . . . . . . . . 12
 
      
            |
| 104 | 103 | adantlr 751 |
. . . . . . . . . . 11
                       |
| 105 | | fveq2 6191 |
. . . . . . . . . . 11
                           |
| 106 | 99, 104, 105 | fprodp1 14699 |
. . . . . . . . . 10
 
     
                                             |
| 107 | 106 | 3adant3 1081 |
. . . . . . . . 9
 
                                                                                   |
| 108 | 57 | ffvelrnda 6359 |
. . . . . . . . . . . . . . 15
 
         |
| 109 | 101, 108 | sylan2 491 |
. . . . . . . . . . . . . 14
 
      
        |
| 110 | 109 | adantlr 751 |
. . . . . . . . . . . . 13
                   |
| 111 | | fveq2 6191 |
. . . . . . . . . . . . 13
                   |
| 112 | 99, 110, 111 | fsump1 14487 |
. . . . . . . . . . . 12
 
                                       |
| 113 | 112 | fveq2d 6195 |
. . . . . . . . . . 11
 
                                               |
| 114 | | fzfid 12772 |
. . . . . . . . . . . . 13
 
       |
| 115 | | elfzuz 12338 |
. . . . . . . . . . . . . . . 16
           |
| 116 | 115, 2 | syl6eleqr 2712 |
. . . . . . . . . . . . . . 15
       |
| 117 | 116, 108 | sylan2 491 |
. . . . . . . . . . . . . 14
 
    
        |
| 118 | 117 | adantlr 751 |
. . . . . . . . . . . . 13
                 |
| 119 | 114, 118 | fsumcl 14464 |
. . . . . . . . . . . 12
 
               |
| 120 | 57 | ffvelrnda 6359 |
. . . . . . . . . . . . 13
 
             |
| 121 | 76, 120 | sylan2 491 |
. . . . . . . . . . . 12
 
           |
| 122 | | efadd 14824 |
. . . . . . . . . . . 12
  
                
                                                      
      |
| 123 | 119, 121,
122 | syl2anc 693 |
. . . . . . . . . . 11
 
                      
                                    |
| 124 | 113, 123 | eqtrd 2656 |
. . . . . . . . . 10
 
                                            
      |
| 125 | 124 | 3adant3 1081 |
. . . . . . . . 9
 
                                        
                                          |
| 126 | 97, 107, 125 | 3eqtr4d 2666 |
. . . . . . . 8
 
                                                                       |
| 127 | 126 | 3exp 1264 |
. . . . . . 7
                                                                           |
| 128 | 127 | com12 32 |
. . . . . 6
                                                                           |
| 129 | 128 | a2d 29 |
. . . . 5
  
                                
                                         |
| 130 | 2 | eqcomi 2631 |
. . . . 5
     |
| 131 | 129, 130 | eleq2s 2719 |
. . . 4
    
                                                                            |
| 132 | 9, 15, 21, 27, 74, 131 | uzind4 11746 |
. . 3
    
                                    |
| 133 | 3, 132 | mpcom 38 |
. 2
                                   |
| 134 | | fzssuz 12382 |
. . . . . . . 8
         |
| 135 | 134, 2 | sseqtr4i 3638 |
. . . . . . 7
     |
| 136 | | resmpt 5449 |
. . . . . . 7
                             |
| 137 | 135, 136 | ax-mp 5 |
. . . . . 6
      
                |
| 138 | 137 | fveq1i 6192 |
. . . . 5
                               |
| 139 | | fvres 6207 |
. . . . 5
                                 |
| 140 | 138, 139 | syl5reqr 2671 |
. . . 4
                               |
| 141 | 140 | prodeq2i 14649 |
. . 3
                                     |
| 142 | | prodfc 14675 |
. . 3
                               |
| 143 | 141, 142 | eqtri 2644 |
. 2
                           |
| 144 | | resmpt 5449 |
. . . . . . . 8
                     |
| 145 | 135, 144 | ax-mp 5 |
. . . . . . 7
  
            |
| 146 | 145 | fveq1i 6192 |
. . . . . 6
                       |
| 147 | | fvres 6207 |
. . . . . 6
                         |
| 148 | 146, 147 | syl5reqr 2671 |
. . . . 5
                       |
| 149 | 148 | sumeq2i 14429 |
. . . 4
            
                |
| 150 | | sumfc 14440 |
. . . 4
                       |
| 151 | 149, 150 | eqtri 2644 |
. . 3
                   |
| 152 | 151 | fveq2i 6194 |
. 2
                   
       |
| 153 | 133, 143,
152 | 3eqtr3g 2679 |
1
                       |