| Step | Hyp | Ref
| Expression |
| 1 | | eqid 2622 |
. . . . 5
         |
| 2 | | simpr 477 |
. . . . 5
 

  |
| 3 | | prodss.3 |
. . . . . 6
                    
      |
| 4 | 3 | adantr 481 |
. . . . 5
 

                   
      |
| 5 | | prodss.1 |
. . . . . . 7

  |
| 6 | | prodss.5 |
. . . . . . 7

      |
| 7 | 5, 6 | sstrd 3613 |
. . . . . 6

      |
| 8 | 7 | adantr 481 |
. . . . 5
 

      |
| 9 | | simpr 477 |
. . . . . . 7
        
      |
| 10 | | iftrue 4092 |
. . . . . . . . . . . 12
  
   ![]_ ]_](_urbrack.gif)     ![]_ ]_](_urbrack.gif)   |
| 11 | 10 | adantl 482 |
. . . . . . . . . . 11
 
  
   ![]_ ]_](_urbrack.gif)     ![]_ ]_](_urbrack.gif)   |
| 12 | | prodss.2 |
. . . . . . . . . . . . . . . 16
 
   |
| 13 | 12 | ex 450 |
. . . . . . . . . . . . . . 15
     |
| 14 | 13 | adantr 481 |
. . . . . . . . . . . . . 14
 
 
   |
| 15 | | eldif 3584 |
. . . . . . . . . . . . . . . 16
  

   |
| 16 | | prodss.4 |
. . . . . . . . . . . . . . . . 17
 

 
  |
| 17 | | ax-1cn 9994 |
. . . . . . . . . . . . . . . . 17
 |
| 18 | 16, 17 | syl6eqel 2709 |
. . . . . . . . . . . . . . . 16
 

 
  |
| 19 | 15, 18 | sylan2br 493 |
. . . . . . . . . . . . . . 15
 

 
  |
| 20 | 19 | expr 643 |
. . . . . . . . . . . . . 14
 
 
   |
| 21 | 14, 20 | pm2.61d 170 |
. . . . . . . . . . . . 13
 
   |
| 22 | 21 | ralrimiva 2966 |
. . . . . . . . . . . 12
 
  |
| 23 | | nfcsb1v 3549 |
. . . . . . . . . . . . . 14
  
 ![]_ ]_](_urbrack.gif)  |
| 24 | 23 | nfel1 2779 |
. . . . . . . . . . . . 13
    ![]_ ]_](_urbrack.gif)
 |
| 25 | | csbeq1a 3542 |
. . . . . . . . . . . . . 14
   ![]_ ]_](_urbrack.gif)   |
| 26 | 25 | eleq1d 2686 |
. . . . . . . . . . . . 13
 
  ![]_ ]_](_urbrack.gif)    |
| 27 | 24, 26 | rspc 3303 |
. . . . . . . . . . . 12
  
  ![]_ ]_](_urbrack.gif)
   |
| 28 | 22, 27 | mpan9 486 |
. . . . . . . . . . 11
 
   ![]_ ]_](_urbrack.gif)   |
| 29 | 11, 28 | eqeltrd 2701 |
. . . . . . . . . 10
 
  
   ![]_ ]_](_urbrack.gif)     |
| 30 | | iffalse 4095 |
. . . . . . . . . . . 12
      ![]_ ]_](_urbrack.gif)     |
| 31 | 30, 17 | syl6eqel 2709 |
. . . . . . . . . . 11
      ![]_ ]_](_urbrack.gif)     |
| 32 | 31 | adantl 482 |
. . . . . . . . . 10
 
  
   ![]_ ]_](_urbrack.gif)     |
| 33 | 29, 32 | pm2.61dan 832 |
. . . . . . . . 9
      ![]_ ]_](_urbrack.gif)     |
| 34 | 33 | adantr 481 |
. . . . . . . 8
 

   
 ![]_ ]_](_urbrack.gif)     |
| 35 | 34 | adantr 481 |
. . . . . . 7
        
   
 ![]_ ]_](_urbrack.gif)     |
| 36 | | nfcv 2764 |
. . . . . . . 8
   |
| 37 | | nfv 1843 |
. . . . . . . . 9
  |
| 38 | | nfcv 2764 |
. . . . . . . . 9
   |
| 39 | 37, 23, 38 | nfif 4115 |
. . . . . . . 8
       ![]_ ]_](_urbrack.gif)    |
| 40 | | eleq1 2689 |
. . . . . . . . 9
 
   |
| 41 | 40, 25 | ifbieq1d 4109 |
. . . . . . . 8
           ![]_ ]_](_urbrack.gif)     |
| 42 | | eqid 2622 |
. . . . . . . 8
                       |
| 43 | 36, 39, 41, 42 | fvmptf 6301 |
. . . . . . 7
       
   ![]_ ]_](_urbrack.gif)                        ![]_ ]_](_urbrack.gif)     |
| 44 | 9, 35, 43 | syl2anc 693 |
. . . . . 6
        
         
          ![]_ ]_](_urbrack.gif)     |
| 45 | | iftrue 4092 |
. . . . . . . . . . . . . 14
  
                 |
| 46 | 45 | adantl 482 |
. . . . . . . . . . . . 13
      
                 |
| 47 | | simpr 477 |
. . . . . . . . . . . . . 14
       |
| 48 | 5 | adantr 481 |
. . . . . . . . . . . . . . . 16
 

  |
| 49 | 48 | sselda 3603 |
. . . . . . . . . . . . . . 15
       |
| 50 | 28 | adantlr 751 |
. . . . . . . . . . . . . . 15
       ![]_ ]_](_urbrack.gif)   |
| 51 | 49, 50 | syldan 487 |
. . . . . . . . . . . . . 14
       ![]_ ]_](_urbrack.gif)   |
| 52 | | eqid 2622 |
. . . . . . . . . . . . . . 15
     |
| 53 | 52 | fvmpts 6285 |
. . . . . . . . . . . . . 14
    ![]_ ]_](_urbrack.gif)
         ![]_ ]_](_urbrack.gif)   |
| 54 | 47, 51, 53 | syl2anc 693 |
. . . . . . . . . . . . 13
             ![]_ ]_](_urbrack.gif)   |
| 55 | 46, 54 | eqtrd 2656 |
. . . . . . . . . . . 12
      
           ![]_ ]_](_urbrack.gif)   |
| 56 | 55 | ex 450 |
. . . . . . . . . . 11
 

  
           ![]_ ]_](_urbrack.gif)    |
| 57 | 56 | adantr 481 |
. . . . . . . . . 10
                   ![]_ ]_](_urbrack.gif)    |
| 58 | | iffalse 4095 |
. . . . . . . . . . . . . 14
              |
| 59 | 58 | adantl 482 |
. . . . . . . . . . . . 13
 

             |
| 60 | 59 | adantl 482 |
. . . . . . . . . . . 12
    
   
           |
| 61 | | eldif 3584 |
. . . . . . . . . . . . 13
  

   |
| 62 | 16 | ralrimiva 2966 |
. . . . . . . . . . . . . . 15
       |
| 63 | 62 | adantr 481 |
. . . . . . . . . . . . . 14
 

      |
| 64 | 23 | nfeq1 2778 |
. . . . . . . . . . . . . . 15
    ![]_ ]_](_urbrack.gif)
 |
| 65 | 25 | eqeq1d 2624 |
. . . . . . . . . . . . . . 15
 
  ![]_ ]_](_urbrack.gif)    |
| 66 | 64, 65 | rspc 3303 |
. . . . . . . . . . . . . 14
    
     ![]_ ]_](_urbrack.gif)    |
| 67 | 63, 66 | mpan9 486 |
. . . . . . . . . . . . 13
         ![]_ ]_](_urbrack.gif)   |
| 68 | 61, 67 | sylan2br 493 |
. . . . . . . . . . . 12
    
    ![]_ ]_](_urbrack.gif)   |
| 69 | 60, 68 | eqtr4d 2659 |
. . . . . . . . . . 11
    
   
           ![]_ ]_](_urbrack.gif)   |
| 70 | 69 | expr 643 |
. . . . . . . . . 10
     
             ![]_ ]_](_urbrack.gif)    |
| 71 | 57, 70 | pm2.61d 170 |
. . . . . . . . 9
      
           ![]_ ]_](_urbrack.gif)   |
| 72 | 10 | adantl 482 |
. . . . . . . . 9
      
   ![]_ ]_](_urbrack.gif)     ![]_ ]_](_urbrack.gif)   |
| 73 | 71, 72 | eqtr4d 2659 |
. . . . . . . 8
      
              ![]_ ]_](_urbrack.gif)     |
| 74 | 48 | ssneld 3605 |
. . . . . . . . . . 11
 


   |
| 75 | 74 | imp 445 |
. . . . . . . . . 10
   
   |
| 76 | 75, 58 | syl 17 |
. . . . . . . . 9
   
              |
| 77 | 30 | adantl 482 |
. . . . . . . . 9
   
      ![]_ ]_](_urbrack.gif)     |
| 78 | 76, 77 | eqtr4d 2659 |
. . . . . . . 8
   
                 ![]_ ]_](_urbrack.gif)     |
| 79 | 73, 78 | pm2.61dan 832 |
. . . . . . 7
 

              
 ![]_ ]_](_urbrack.gif)     |
| 80 | 79 | adantr 481 |
. . . . . 6
        
              
 ![]_ ]_](_urbrack.gif)     |
| 81 | 44, 80 | eqtr4d 2659 |
. . . . 5
        
         
                  |
| 82 | 12, 52 | fmptd 6385 |
. . . . . . 7
         |
| 83 | 82 | adantr 481 |
. . . . . 6
 

        |
| 84 | 83 | ffvelrnda 6359 |
. . . . 5
             |
| 85 | 1, 2, 4, 8, 81, 84 | zprod 14667 |
. . . 4
 


                       |
| 86 | 6 | adantr 481 |
. . . . 5
 

      |
| 87 | 43 | ancoms 469 |
. . . . . . 7
       ![]_ ]_](_urbrack.gif)       
         
          ![]_ ]_](_urbrack.gif)     |
| 88 | 34, 87 | sylan 488 |
. . . . . 6
        
         
          ![]_ ]_](_urbrack.gif)     |
| 89 | | simpr 477 |
. . . . . . . . . 10
       |
| 90 | | eqid 2622 |
. . . . . . . . . . 11
     |
| 91 | 90 | fvmpts 6285 |
. . . . . . . . . 10
    ![]_ ]_](_urbrack.gif)
         ![]_ ]_](_urbrack.gif)   |
| 92 | 89, 50, 91 | syl2anc 693 |
. . . . . . . . 9
             ![]_ ]_](_urbrack.gif)   |
| 93 | 92 | ifeq1d 4104 |
. . . . . . . 8
      
              ![]_ ]_](_urbrack.gif)     |
| 94 | 93 | adantlr 751 |
. . . . . . 7
   

     
              
 ![]_ ]_](_urbrack.gif)     |
| 95 | | iffalse 4095 |
. . . . . . . . 9
              |
| 96 | 95, 30 | eqtr4d 2659 |
. . . . . . . 8
                 ![]_ ]_](_urbrack.gif)     |
| 97 | 96 | adantl 482 |
. . . . . . 7
   

       
              ![]_ ]_](_urbrack.gif)     |
| 98 | 94, 97 | pm2.61dan 832 |
. . . . . 6
        
              
 ![]_ ]_](_urbrack.gif)     |
| 99 | 88, 98 | eqtr4d 2659 |
. . . . 5
        
         
                  |
| 100 | 21, 90 | fmptd 6385 |
. . . . . . 7
         |
| 101 | 100 | adantr 481 |
. . . . . 6
 

        |
| 102 | 101 | ffvelrnda 6359 |
. . . . 5
             |
| 103 | 1, 2, 4, 86, 99, 102 | zprod 14667 |
. . . 4
 


                       |
| 104 | 85, 103 | eqtr4d 2659 |
. . 3
 


               |
| 105 | | prodfc 14675 |
. . 3

        |
| 106 | | prodfc 14675 |
. . 3

        |
| 107 | 104, 105,
106 | 3eqtr3g 2679 |
. 2
 


   |
| 108 | 5 | adantr 481 |
. . . . . 6
 
   |
| 109 | 6 | adantr 481 |
. . . . . . 7
 
       |
| 110 | | uzf 11690 |
. . . . . . . . . . 11
      |
| 111 | 110 | fdmi 6052 |
. . . . . . . . . 10
 |
| 112 | 111 | eleq2i 2693 |
. . . . . . . . 9

  |
| 113 | | ndmfv 6218 |
. . . . . . . . 9
       |
| 114 | 112, 113 | sylnbir 321 |
. . . . . . . 8
       |
| 115 | 114 | adantl 482 |
. . . . . . 7
 
       |
| 116 | 109, 115 | sseqtrd 3641 |
. . . . . 6
 
   |
| 117 | 108, 116 | sstrd 3613 |
. . . . 5
 
   |
| 118 | | ss0 3974 |
. . . . 5

  |
| 119 | 117, 118 | syl 17 |
. . . 4
 
   |
| 120 | | ss0 3974 |
. . . . 5

  |
| 121 | 116, 120 | syl 17 |
. . . 4
 
   |
| 122 | 119, 121 | eqtr4d 2659 |
. . 3
 
   |
| 123 | 122 | prodeq1d 14651 |
. 2
 
  
  |
| 124 | 107, 123 | pm2.61dan 832 |
1
 
   |