| Step | Hyp | Ref
 | Expression | 
| 1 |   | fprodcl2lem.5 | 
. . 3
              | 
| 2 | 1 | neneqd 2388 | 
. 2
                | 
| 3 |   | eqeq1 2203 | 
. . . . 5
        
        
          | 
| 4 |   | prodeq1 11718 | 
. . . . . 6
        
        
              | 
| 5 | 4 | eleq1d 2265 | 
. . . . 5
        
                 
               | 
| 6 | 3, 5 | orbi12d 794 | 
. . . 4
        
                           
           
             | 
| 7 |   | eqeq1 2203 | 
. . . . 5
                   
        | 
| 8 |   | prodeq1 11718 | 
. . . . . 6
                        
       | 
| 9 | 8 | eleq1d 2265 | 
. . . . 5
                          
               | 
| 10 | 7, 9 | orbi12d 794 | 
. . . 4
                       
       
                              | 
| 11 |   | eqeq1 2203 | 
. . . . 5
                                            | 
| 12 |   | prodeq1 11718 | 
. . . . . 6
                             
                 | 
| 13 | 12 | eleq1d 2265 | 
. . . . 5
                          
          
                   | 
| 14 | 11, 13 | orbi12d 794 | 
. . . 4
                          
                 
                   
                    | 
| 15 |   | eqeq1 2203 | 
. . . . 5
                   
        | 
| 16 |   | prodeq1 11718 | 
. . . . . 6
                        
       | 
| 17 | 16 | eleq1d 2265 | 
. . . . 5
                          
               | 
| 18 | 15, 17 | orbi12d 794 | 
. . . 4
                       
       
                              | 
| 19 |   | eqidd 2197 | 
. . . . 5
              | 
| 20 | 19 | orcd 734 | 
. . . 4
         
                     | 
| 21 |   | nfcsb1v 3117 | 
. . . . . . . . . 10
      
   ![]_  ]_](_urbrack.gif)   | 
| 22 |   | simplr 528 | 
. . . . . . . . . 10
                      
       
                   | 
| 23 |   | simprr 531 | 
. . . . . . . . . 10
                      
       
                         | 
| 24 | 23 | eldifbd 3169 | 
. . . . . . . . . 10
                      
       
             
       | 
| 25 |   | fprodcllem.1 | 
. . . . . . . . . . . 12
          
   | 
| 26 | 25 | ad3antrrr 492 | 
. . . . . . . . . . 11
             
               
                              | 
| 27 |   | simplll 533 | 
. . . . . . . . . . . 12
             
               
                          | 
| 28 |   | simplrl 535 | 
. . . . . . . . . . . . 13
             
               
                              | 
| 29 |   | simpr 110 | 
. . . . . . . . . . . . 13
             
               
                              | 
| 30 | 28, 29 | sseldd 3184 | 
. . . . . . . . . . . 12
             
               
                              | 
| 31 |   | fprodcllem.4 | 
. . . . . . . . . . . 12
       
                | 
| 32 | 27, 30, 31 | syl2anc 411 | 
. . . . . . . . . . 11
             
               
                              | 
| 33 | 26, 32 | sseldd 3184 | 
. . . . . . . . . 10
             
               
                              | 
| 34 | 25 | ad2antrr 488 | 
. . . . . . . . . . 11
                      
       
                   | 
| 35 |   | simpll 527 | 
. . . . . . . . . . . 12
                      
       
               | 
| 36 | 23 | eldifad 3168 | 
. . . . . . . . . . . 12
                      
       
                   | 
| 37 | 31 | ralrimiva 2570 | 
. . . . . . . . . . . . . 14
                 
   | 
| 38 |   | nfv 1542 | 
. . . . . . . . . . . . . . 15
           | 
| 39 | 21 | nfel1 2350 | 
. . . . . . . . . . . . . . 15
          ![]_  ]_](_urbrack.gif)  
    | 
| 40 |   | csbeq1a 3093 | 
. . . . . . . . . . . . . . . 16
                     ![]_  ]_](_urbrack.gif)    | 
| 41 | 40 | eleq1d 2265 | 
. . . . . . . . . . . . . . 15
               
   
      ![]_  ]_](_urbrack.gif)         | 
| 42 | 38, 39, 41 | cbvral 2725 | 
. . . . . . . . . . . . . 14
       
       
               ![]_  ]_](_urbrack.gif)    
   | 
| 43 | 37, 42 | sylib 122 | 
. . . . . . . . . . . . 13
                    ![]_  ]_](_urbrack.gif)    
   | 
| 44 | 43 | r19.21bi 2585 | 
. . . . . . . . . . . 12
       
               ![]_  ]_](_urbrack.gif)        | 
| 45 | 35, 36, 44 | syl2anc 411 | 
. . . . . . . . . . 11
                      
       
                  ![]_  ]_](_urbrack.gif)  
     | 
| 46 | 34, 45 | sseldd 3184 | 
. . . . . . . . . 10
                      
       
                  ![]_  ]_](_urbrack.gif)  
     | 
| 47 | 21, 22, 23, 24, 33, 46, 40 | fprodunsn 11769 | 
. . . . . . . . 9
                      
       
                                                ![]_  ]_](_urbrack.gif)     | 
| 48 | 47 | adantr 276 | 
. . . . . . . 8
             
               
                    
                           
          ![]_  ]_](_urbrack.gif)     | 
| 49 |   | simpr 110 | 
. . . . . . . . . . . . 13
             
               
                    
         | 
| 50 | 49 | prodeq1d 11729 | 
. . . . . . . . . . . 12
             
               
                    
        
              | 
| 51 |   | prod0 11750 | 
. . . . . . . . . . . 12
               | 
| 52 | 50, 51 | eqtrdi 2245 | 
. . . . . . . . . . 11
             
               
                    
        
       | 
| 53 | 52 | oveq1d 5937 | 
. . . . . . . . . 10
             
               
                    
                    ![]_  ]_](_urbrack.gif)                 ![]_  ]_](_urbrack.gif)     | 
| 54 | 46 | adantr 276 | 
. . . . . . . . . . 11
             
               
                    
        ![]_  ]_](_urbrack.gif)        | 
| 55 | 54 | mulid2d 8045 | 
. . . . . . . . . 10
             
               
                    
             ![]_  ]_](_urbrack.gif)            ![]_  ]_](_urbrack.gif)    | 
| 56 | 53, 55 | eqtrd 2229 | 
. . . . . . . . 9
             
               
                    
                    ![]_  ]_](_urbrack.gif)            ![]_  ]_](_urbrack.gif)    | 
| 57 | 45 | adantr 276 | 
. . . . . . . . 9
             
               
                    
        ![]_  ]_](_urbrack.gif)        | 
| 58 | 56, 57 | eqeltrd 2273 | 
. . . . . . . 8
             
               
                    
                    ![]_  ]_](_urbrack.gif)         | 
| 59 | 48, 58 | eqeltrd 2273 | 
. . . . . . 7
             
               
                    
                       | 
| 60 | 59 | olcd 735 | 
. . . . . 6
             
               
                    
                     
                   | 
| 61 | 60 | ex 115 | 
. . . . 5
                      
       
                                                             | 
| 62 | 47 | adantr 276 | 
. . . . . . . 8
             
               
                    
                                             ![]_  ]_](_urbrack.gif)     | 
| 63 |   | fprodcllem.2 | 
. . . . . . . . . . . 12
       
      
                         | 
| 64 | 63 | ralrimivva 2579 | 
. . . . . . . . . . 11
                
      
          | 
| 65 |   | oveq1 5929 | 
. . . . . . . . . . . . 13
                              | 
| 66 | 65 | eleq1d 2265 | 
. . . . . . . . . . . 12
                         
              | 
| 67 |   | oveq2 5930 | 
. . . . . . . . . . . . 13
                              | 
| 68 | 67 | eleq1d 2265 | 
. . . . . . . . . . . 12
                         
              | 
| 69 | 66, 68 | cbvral2v 2742 | 
. . . . . . . . . . 11
       
      
               
      
      
             | 
| 70 | 64, 69 | sylib 122 | 
. . . . . . . . . 10
                
      
          | 
| 71 | 70 | ad3antrrr 492 | 
. . . . . . . . 9
             
               
                    
               
      
             | 
| 72 |   | simpr 110 | 
. . . . . . . . . 10
             
               
                    
                       | 
| 73 | 45 | adantr 276 | 
. . . . . . . . . 10
             
               
                    
               ![]_  ]_](_urbrack.gif)        | 
| 74 |   | oveq1 5929 | 
. . . . . . . . . . . 12
                 
             
       
    | 
| 75 | 74 | eleq1d 2265 | 
. . . . . . . . . . 11
                 
              
                     | 
| 76 |   | oveq2 5930 | 
. . . . . . . . . . . 12
             ![]_  ]_](_urbrack.gif)                                        ![]_  ]_](_urbrack.gif)     | 
| 77 | 76 | eleq1d 2265 | 
. . . . . . . . . . 11
             ![]_  ]_](_urbrack.gif)                          
                  ![]_  ]_](_urbrack.gif)          | 
| 78 | 75, 77 | rspc2v 2881 | 
. . . . . . . . . 10
      
       
          ![]_  ]_](_urbrack.gif)    
                                                    ![]_  ]_](_urbrack.gif)          | 
| 79 | 72, 73, 78 | syl2anc 411 | 
. . . . . . . . 9
             
               
                    
            
      
      
                             ![]_  ]_](_urbrack.gif)          | 
| 80 | 71, 79 | mpd 13 | 
. . . . . . . 8
             
               
                    
                           ![]_  ]_](_urbrack.gif)         | 
| 81 | 62, 80 | eqeltrd 2273 | 
. . . . . . 7
             
               
                    
                              | 
| 82 | 81 | olcd 735 | 
. . . . . 6
             
               
                    
                                                | 
| 83 | 82 | ex 115 | 
. . . . 5
                      
       
                   
                                                | 
| 84 | 61, 83 | jaod 718 | 
. . . 4
                      
       
                   
                                                          | 
| 85 |   | fprodcllem.3 | 
. . . 4
              | 
| 86 | 6, 10, 14, 18, 20, 84, 85 | findcard2sd 6953 | 
. . 3
                  
       
    | 
| 87 | 86 | orcomd 730 | 
. 2
                  
       
    | 
| 88 | 2, 87 | ecased 1360 | 
1
                 
   |