| Step | Hyp | Ref
| Expression |
| 1 | | 1t1e1 9143 |
. . . . 5
   |
| 2 | | prod0 11750 |
. . . . . 6
  |
| 3 | | prod0 11750 |
. . . . . 6
  |
| 4 | 2, 3 | oveq12i 5934 |
. . . . 5
       |
| 5 | | prod0 11750 |
. . . . 5
    |
| 6 | 1, 4, 5 | 3eqtr4ri 2228 |
. . . 4
    
   |
| 7 | | prodeq1 11718 |
. . . 4


       |
| 8 | | prodeq1 11718 |
. . . . 5


   |
| 9 | | prodeq1 11718 |
. . . . 5


   |
| 10 | 8, 9 | oveq12d 5940 |
. . . 4

     
    |
| 11 | 6, 7, 10 | 3eqtr4a 2255 |
. . 3


   
    |
| 12 | 11 | a1i 9 |
. 2
   
        |
| 13 | | simprl 529 |
. . . . . . . . 9
 
 ♯       ♯       ♯    |
| 14 | | nnuz 9637 |
. . . . . . . . 9
     |
| 15 | 13, 14 | eleqtrdi 2289 |
. . . . . . . 8
 
 ♯       ♯       ♯        |
| 16 | | elnnuz 9638 |
. . . . . . . . . . . 12

      |
| 17 | 16 | biimpri 133 |
. . . . . . . . . . 11
    
  |
| 18 | 17 | adantl 277 |
. . . . . . . . . 10
    ♯       ♯           
  |
| 19 | | fprodmul.2 |
. . . . . . . . . . . . . . . 16
 
   |
| 20 | 19 | fmpttd 5717 |
. . . . . . . . . . . . . . 15
         |
| 21 | 20 | adantr 276 |
. . . . . . . . . . . . . 14
 
 ♯       ♯               |
| 22 | | f1of 5504 |
. . . . . . . . . . . . . . 15
      ♯          ♯       |
| 23 | 22 | ad2antll 491 |
. . . . . . . . . . . . . 14
 
 ♯       ♯            ♯       |
| 24 | | fco 5423 |
. . . . . . . . . . . . . 14
             ♯               ♯       |
| 25 | 21, 23, 24 | syl2anc 411 |
. . . . . . . . . . . . 13
 
 ♯       ♯                ♯       |
| 26 | 25 | ad2antrr 488 |
. . . . . . . . . . . 12
     ♯       ♯           
♯            ♯       |
| 27 | | simpr 110 |
. . . . . . . . . . . . 13
     ♯       ♯           
♯   ♯    |
| 28 | | simplr 528 |
. . . . . . . . . . . . . 14
     ♯       ♯           
♯  
      |
| 29 | 13 | ad2antrr 488 |
. . . . . . . . . . . . . . 15
     ♯       ♯           
♯   ♯    |
| 30 | 29 | nnzd 9447 |
. . . . . . . . . . . . . 14
     ♯       ♯           
♯   ♯    |
| 31 | | elfz5 10092 |
. . . . . . . . . . . . . 14
      ♯       ♯  
♯     |
| 32 | 28, 30, 31 | syl2anc 411 |
. . . . . . . . . . . . 13
     ♯       ♯           
♯       ♯  
♯     |
| 33 | 27, 32 | mpbird 167 |
. . . . . . . . . . . 12
     ♯       ♯           
♯  
   ♯     |
| 34 | 26, 33 | ffvelcdmd 5698 |
. . . . . . . . . . 11
     ♯       ♯           
♯             |
| 35 | | 1cnd 8042 |
. . . . . . . . . . 11
     ♯       ♯           
♯  
  |
| 36 | 18 | nnzd 9447 |
. . . . . . . . . . . 12
    ♯       ♯           
  |
| 37 | 13 | adantr 276 |
. . . . . . . . . . . . 13
    ♯       ♯           
♯    |
| 38 | 37 | nnzd 9447 |
. . . . . . . . . . . 12
    ♯       ♯           
♯    |
| 39 | | zdcle 9402 |
. . . . . . . . . . . 12
  ♯  
DECID
♯    |
| 40 | 36, 38, 39 | syl2anc 411 |
. . . . . . . . . . 11
    ♯       ♯           
DECID
♯    |
| 41 | 34, 35, 40 | ifcldadc 3590 |
. . . . . . . . . 10
    ♯       ♯           
 
♯               |
| 42 | | breq1 4036 |
. . . . . . . . . . . 12
 
♯ 
♯     |
| 43 | | fveq2 5558 |
. . . . . . . . . . . 12
                   |
| 44 | 42, 43 | ifbieq1d 3583 |
. . . . . . . . . . 11
  
♯               ♯               |
| 45 | | eqid 2196 |
. . . . . . . . . . 11
  
♯                 ♯               |
| 46 | 44, 45 | fvmptg 5637 |
. . . . . . . . . 10
    ♯                  ♯                   ♯               |
| 47 | 18, 41, 46 | syl2anc 411 |
. . . . . . . . 9
    ♯       ♯           
    ♯                   ♯               |
| 48 | 47, 41 | eqeltrd 2273 |
. . . . . . . 8
    ♯       ♯           
    ♯                   |
| 49 | | fprodmul.3 |
. . . . . . . . . . . . . . . 16
 
   |
| 50 | 49 | fmpttd 5717 |
. . . . . . . . . . . . . . 15
         |
| 51 | 50 | adantr 276 |
. . . . . . . . . . . . . 14
 
 ♯       ♯               |
| 52 | | fco 5423 |
. . . . . . . . . . . . . 14
             ♯               ♯       |
| 53 | 51, 23, 52 | syl2anc 411 |
. . . . . . . . . . . . 13
 
 ♯       ♯                ♯       |
| 54 | 53 | ad2antrr 488 |
. . . . . . . . . . . 12
     ♯       ♯           
♯            ♯       |
| 55 | 54, 33 | ffvelcdmd 5698 |
. . . . . . . . . . 11
     ♯       ♯           
♯             |
| 56 | 55, 35, 40 | ifcldadc 3590 |
. . . . . . . . . 10
    ♯       ♯           
 
♯               |
| 57 | | fveq2 5558 |
. . . . . . . . . . . 12
                   |
| 58 | 42, 57 | ifbieq1d 3583 |
. . . . . . . . . . 11
  
♯               ♯               |
| 59 | | eqid 2196 |
. . . . . . . . . . 11
  
♯                 ♯               |
| 60 | 58, 59 | fvmptg 5637 |
. . . . . . . . . 10
    ♯                  ♯                   ♯               |
| 61 | 18, 56, 60 | syl2anc 411 |
. . . . . . . . 9
    ♯       ♯           
    ♯                   ♯               |
| 62 | 61, 56 | eqeltrd 2273 |
. . . . . . . 8
    ♯       ♯           
    ♯                   |
| 63 | 23 | ad2antrr 488 |
. . . . . . . . . . . . . . 15
     ♯       ♯           
♯        ♯       |
| 64 | 63, 33 | ffvelcdmd 5698 |
. . . . . . . . . . . . . 14
     ♯       ♯           
♯         |
| 65 | | csbov12g 5961 |
. . . . . . . . . . . . . 14
           ![]_ ]_](_urbrack.gif) 
        ![]_ ]_](_urbrack.gif)       ![]_ ]_](_urbrack.gif)    |
| 66 | 64, 65 | syl 14 |
. . . . . . . . . . . . 13
     ♯       ♯           
♯         ![]_ ]_](_urbrack.gif) 
        ![]_ ]_](_urbrack.gif)
      ![]_ ]_](_urbrack.gif)    |
| 67 | 19, 49 | mulcld 8047 |
. . . . . . . . . . . . . . . . 17
 
 
   |
| 68 | 67 | ralrimiva 2570 |
. . . . . . . . . . . . . . . 16
  
   |
| 69 | 68 | ad3antrrr 492 |
. . . . . . . . . . . . . . 15
     ♯       ♯           
♯   

   |
| 70 | | nfcsb1v 3117 |
. . . . . . . . . . . . . . . . 17
        ![]_ ]_](_urbrack.gif) 
  |
| 71 | 70 | nfel1 2350 |
. . . . . . . . . . . . . . . 16
        ![]_ ]_](_urbrack.gif)    |
| 72 | | csbeq1a 3093 |
. . . . . . . . . . . . . . . . 17
     
       ![]_ ]_](_urbrack.gif)     |
| 73 | 72 | eleq1d 2265 |
. . . . . . . . . . . . . . . 16
       
      ![]_ ]_](_urbrack.gif)      |
| 74 | 71, 73 | rspc 2862 |
. . . . . . . . . . . . . . 15
      

       ![]_ ]_](_urbrack.gif) 
    |
| 75 | 64, 69, 74 | sylc 62 |
. . . . . . . . . . . . . 14
     ♯       ♯           
♯         ![]_ ]_](_urbrack.gif) 
   |
| 76 | | eqid 2196 |
. . . . . . . . . . . . . . 15
         |
| 77 | 76 | fvmpts 5639 |
. . . . . . . . . . . . . 14
            ![]_ ]_](_urbrack.gif) 
                    ![]_ ]_](_urbrack.gif)     |
| 78 | 64, 75, 77 | syl2anc 411 |
. . . . . . . . . . . . 13
     ♯       ♯           
♯                     ![]_ ]_](_urbrack.gif) 
   |
| 79 | 19 | ralrimiva 2570 |
. . . . . . . . . . . . . . . . 17
 
  |
| 80 | 79 | ad3antrrr 492 |
. . . . . . . . . . . . . . . 16
     ♯       ♯           
♯   
  |
| 81 | | nfcsb1v 3117 |
. . . . . . . . . . . . . . . . . 18
        ![]_ ]_](_urbrack.gif)  |
| 82 | 81 | nfel1 2350 |
. . . . . . . . . . . . . . . . 17
        ![]_ ]_](_urbrack.gif)
 |
| 83 | | csbeq1a 3093 |
. . . . . . . . . . . . . . . . . 18
           ![]_ ]_](_urbrack.gif)   |
| 84 | 83 | eleq1d 2265 |
. . . . . . . . . . . . . . . . 17
     
      ![]_ ]_](_urbrack.gif)    |
| 85 | 82, 84 | rspc 2862 |
. . . . . . . . . . . . . . . 16
      
      ![]_ ]_](_urbrack.gif)
   |
| 86 | 64, 80, 85 | sylc 62 |
. . . . . . . . . . . . . . 15
     ♯       ♯           
♯         ![]_ ]_](_urbrack.gif)
  |
| 87 | | eqid 2196 |
. . . . . . . . . . . . . . . 16
     |
| 88 | 87 | fvmpts 5639 |
. . . . . . . . . . . . . . 15
            ![]_ ]_](_urbrack.gif)
                 ![]_ ]_](_urbrack.gif)   |
| 89 | 64, 86, 88 | syl2anc 411 |
. . . . . . . . . . . . . 14
     ♯       ♯           
♯                   ![]_ ]_](_urbrack.gif)   |
| 90 | 49 | ralrimiva 2570 |
. . . . . . . . . . . . . . . . 17
 
  |
| 91 | 90 | ad3antrrr 492 |
. . . . . . . . . . . . . . . 16
     ♯       ♯           
♯   
  |
| 92 | | nfcsb1v 3117 |
. . . . . . . . . . . . . . . . . 18
        ![]_ ]_](_urbrack.gif)  |
| 93 | 92 | nfel1 2350 |
. . . . . . . . . . . . . . . . 17
        ![]_ ]_](_urbrack.gif)
 |
| 94 | | csbeq1a 3093 |
. . . . . . . . . . . . . . . . . 18
           ![]_ ]_](_urbrack.gif)   |
| 95 | 94 | eleq1d 2265 |
. . . . . . . . . . . . . . . . 17
     
      ![]_ ]_](_urbrack.gif)    |
| 96 | 93, 95 | rspc 2862 |
. . . . . . . . . . . . . . . 16
      
      ![]_ ]_](_urbrack.gif)
   |
| 97 | 64, 91, 96 | sylc 62 |
. . . . . . . . . . . . . . 15
     ♯       ♯           
♯         ![]_ ]_](_urbrack.gif)
  |
| 98 | | eqid 2196 |
. . . . . . . . . . . . . . . 16
     |
| 99 | 98 | fvmpts 5639 |
. . . . . . . . . . . . . . 15
            ![]_ ]_](_urbrack.gif)
                 ![]_ ]_](_urbrack.gif)   |
| 100 | 64, 97, 99 | syl2anc 411 |
. . . . . . . . . . . . . 14
     ♯       ♯           
♯                   ![]_ ]_](_urbrack.gif)   |
| 101 | 89, 100 | oveq12d 5940 |
. . . . . . . . . . . . 13
     ♯       ♯           
♯                                ![]_ ]_](_urbrack.gif)       ![]_ ]_](_urbrack.gif)    |
| 102 | 66, 78, 101 | 3eqtr4d 2239 |
. . . . . . . . . . . 12
     ♯       ♯           
♯                                       |
| 103 | | fvco3 5632 |
. . . . . . . . . . . . 13
       ♯    
   ♯                            |
| 104 | 63, 33, 103 | syl2anc 411 |
. . . . . . . . . . . 12
     ♯       ♯           
♯                           |
| 105 | | fvco3 5632 |
. . . . . . . . . . . . . 14
       ♯    
   ♯                        |
| 106 | 63, 33, 105 | syl2anc 411 |
. . . . . . . . . . . . 13
     ♯       ♯           
♯                       |
| 107 | | fvco3 5632 |
. . . . . . . . . . . . . 14
       ♯    
   ♯                        |
| 108 | 63, 33, 107 | syl2anc 411 |
. . . . . . . . . . . . 13
     ♯       ♯           
♯                       |
| 109 | 106, 108 | oveq12d 5940 |
. . . . . . . . . . . 12
     ♯       ♯           
♯                                             |
| 110 | 102, 104,
109 | 3eqtr4d 2239 |
. . . . . . . . . . 11
     ♯       ♯           
♯                                 |
| 111 | 27 | iftrued 3568 |
. . . . . . . . . . 11
     ♯       ♯           
♯     ♯                           |
| 112 | 27 | iftrued 3568 |
. . . . . . . . . . . 12
     ♯       ♯           
♯     ♯                       |
| 113 | 27 | iftrued 3568 |
. . . . . . . . . . . 12
     ♯       ♯           
♯     ♯                       |
| 114 | 112, 113 | oveq12d 5940 |
. . . . . . . . . . 11
     ♯       ♯           
♯      ♯              
♯                                  |
| 115 | 110, 111,
114 | 3eqtr4d 2239 |
. . . . . . . . . 10
     ♯       ♯           
♯     ♯                 
♯               ♯                |
| 116 | 1 | eqcomi 2200 |
. . . . . . . . . . 11
   |
| 117 | | simpr 110 |
. . . . . . . . . . . 12
     ♯       ♯           
♯  
♯    |
| 118 | 117 | iffalsed 3571 |
. . . . . . . . . . 11
     ♯       ♯           
♯  
 
♯                 |
| 119 | 117 | iffalsed 3571 |
. . . . . . . . . . . 12
     ♯       ♯           
♯  
 
♯               |
| 120 | 117 | iffalsed 3571 |
. . . . . . . . . . . 12
     ♯       ♯           
♯  
 
♯               |
| 121 | 119, 120 | oveq12d 5940 |
. . . . . . . . . . 11
     ♯       ♯           
♯  
  
♯               ♯                  |
| 122 | 116, 118,
121 | 3eqtr4a 2255 |
. . . . . . . . . 10
     ♯       ♯           
♯  
 
♯                  ♯              
♯                |
| 123 | | exmiddc 837 |
. . . . . . . . . . 11
DECID ♯   ♯  ♯     |
| 124 | 40, 123 | syl 14 |
. . . . . . . . . 10
    ♯       ♯           
 ♯  ♯     |
| 125 | 115, 122,
124 | mpjaodan 799 |
. . . . . . . . 9
    ♯       ♯           
 
♯                  ♯              
♯                |
| 126 | 78, 75 | eqeltrd 2273 |
. . . . . . . . . . . 12
     ♯       ♯           
♯                 |
| 127 | 104, 126 | eqeltrd 2273 |
. . . . . . . . . . 11
     ♯       ♯           
♯               |
| 128 | 127, 35, 40 | ifcldadc 3590 |
. . . . . . . . . 10
    ♯       ♯           
 
♯                 |
| 129 | | fveq2 5558 |
. . . . . . . . . . . 12
                       |
| 130 | 42, 129 | ifbieq1d 3583 |
. . . . . . . . . . 11
  
♯                 ♯                 |
| 131 | | eqid 2196 |
. . . . . . . . . . 11
  
♯                   ♯                 |
| 132 | 130, 131 | fvmptg 5637 |
. . . . . . . . . 10
    ♯                    ♯                     ♯                 |
| 133 | 18, 128, 132 | syl2anc 411 |
. . . . . . . . 9
    ♯       ♯           
    ♯                     ♯                 |
| 134 | 47, 61 | oveq12d 5940 |
. . . . . . . . 9
    ♯       ♯           
     ♯                    
♯                    
♯               ♯                |
| 135 | 125, 133,
134 | 3eqtr4d 2239 |
. . . . . . . 8
    ♯       ♯           
    ♯                        ♯                    
♯                    |
| 136 | 15, 48, 62, 135 | prod3fmul 11706 |
. . . . . . 7
 
 ♯       ♯            ♯                   ♯        
♯                 ♯        ♯                 ♯      |
| 137 | | fveq2 5558 |
. . . . . . . 8
                           |
| 138 | | simprr 531 |
. . . . . . . 8
 
 ♯       ♯            ♯       |
| 139 | 67 | fmpttd 5717 |
. . . . . . . . . 10
           |
| 140 | 139 | adantr 276 |
. . . . . . . . 9
 
 ♯       ♯                 |
| 141 | 140 | ffvelcdmda 5697 |
. . . . . . . 8
    ♯       ♯                  |
| 142 | | fvco3 5632 |
. . . . . . . . 9
       ♯    
   ♯                            |
| 143 | 23, 142 | sylan 283 |
. . . . . . . 8
    ♯       ♯          ♯                            |
| 144 | 137, 13, 138, 141, 143 | fprodseq 11748 |
. . . . . . 7
 
 ♯       ♯                     ♯                   ♯     |
| 145 | | fveq2 5558 |
. . . . . . . . 9
                       |
| 146 | 21 | ffvelcdmda 5697 |
. . . . . . . . 9
    ♯       ♯                |
| 147 | | fvco3 5632 |
. . . . . . . . . 10
       ♯    
   ♯                        |
| 148 | 23, 147 | sylan 283 |
. . . . . . . . 9
    ♯       ♯          ♯                        |
| 149 | 145, 13, 138, 146, 148 | fprodseq 11748 |
. . . . . . . 8
 
 ♯       ♯                   ♯                 ♯     |
| 150 | | fveq2 5558 |
. . . . . . . . 9
                       |
| 151 | 51 | ffvelcdmda 5697 |
. . . . . . . . 9
    ♯       ♯                |
| 152 | | fvco3 5632 |
. . . . . . . . . 10
       ♯    
   ♯                        |
| 153 | 23, 152 | sylan 283 |
. . . . . . . . 9
    ♯       ♯          ♯                        |
| 154 | 150, 13, 138, 151, 153 | fprodseq 11748 |
. . . . . . . 8
 
 ♯       ♯                   ♯                 ♯     |
| 155 | 149, 154 | oveq12d 5940 |
. . . . . . 7
 
 ♯       ♯                             ♯                 ♯        ♯                 ♯      |
| 156 | 136, 144,
155 | 3eqtr4d 2239 |
. . . . . 6
 
 ♯       ♯                        
         |
| 157 | | prodfct 11752 |
. . . . . . . 8
 


         

   |
| 158 | 68, 157 | syl 14 |
. . . . . . 7
               |
| 159 | 158 | adantr 276 |
. . . . . 6
 
 ♯       ♯                
    |
| 160 | | prodfct 11752 |
. . . . . . . . 9
 
       
  |
| 161 | 79, 160 | syl 14 |
. . . . . . . 8
           |
| 162 | | prodfct 11752 |
. . . . . . . . 9
 
       
  |
| 163 | 90, 162 | syl 14 |
. . . . . . . 8
           |
| 164 | 161, 163 | oveq12d 5940 |
. . . . . . 7
                       |
| 165 | 164 | adantr 276 |
. . . . . 6
 
 ♯       ♯                             |
| 166 | 156, 159,
165 | 3eqtr3d 2237 |
. . . . 5
 
 ♯       ♯           
    |
| 167 | 166 | expr 375 |
. . . 4
 
♯         ♯         
     |
| 168 | 167 | exlimdv 1833 |
. . 3
 
♯          ♯    
    
     |
| 169 | 168 | expimpd 363 |
. 2
   ♯        ♯          
     |
| 170 | | fprodmul.1 |
. . 3
   |
| 171 | | fz1f1o 11540 |
. . 3
 
 ♯        ♯         |
| 172 | 170, 171 | syl 14 |
. 2
   ♯        ♯         |
| 173 | 12, 169, 172 | mpjaod 719 |
1
  
       |