Step | Hyp | Ref
| Expression |
1 | | df-prod 14636 |
. 2

         
                          
               
         ![]_ ]_](_urbrack.gif)          |
2 | | fvex 6201 |
. . 3
       |
3 | | nfcv 2764 |
. . . . . . . . 9
        |
4 | | nfv 1843 |
. . . . . . . . . 10
  |
5 | | nfcsb1v 3549 |
. . . . . . . . . 10
  
 ![]_ ]_](_urbrack.gif)  |
6 | | nfcv 2764 |
. . . . . . . . . 10
   |
7 | 4, 5, 6 | nfif 4115 |
. . . . . . . . 9
       ![]_ ]_](_urbrack.gif)    |
8 | | eleq1 2689 |
. . . . . . . . . 10
 
   |
9 | | csbeq1a 3542 |
. . . . . . . . . 10
   ![]_ ]_](_urbrack.gif)   |
10 | 8, 9 | ifbieq1d 4109 |
. . . . . . . . 9
           ![]_ ]_](_urbrack.gif)     |
11 | 3, 7, 10 | cbvmpt 4749 |
. . . . . . . 8
    
      
 ![]_ ]_](_urbrack.gif)     |
12 | | fprod.4 |
. . . . . . . . . 10
 
   |
13 | 12 | ralrimiva 2966 |
. . . . . . . . 9
 
  |
14 | 5 | nfel1 2779 |
. . . . . . . . . 10
    ![]_ ]_](_urbrack.gif)
 |
15 | 9 | eleq1d 2686 |
. . . . . . . . . 10
 
  ![]_ ]_](_urbrack.gif)    |
16 | 14, 15 | rspc 3303 |
. . . . . . . . 9
  
  ![]_ ]_](_urbrack.gif)
   |
17 | 13, 16 | mpan9 486 |
. . . . . . . 8
 
   ![]_ ]_](_urbrack.gif)   |
18 | | fveq2 6191 |
. . . . . . . . . . 11
           |
19 | 18 | csbeq1d 3540 |
. . . . . . . . . 10
       ![]_ ]_](_urbrack.gif)       ![]_ ]_](_urbrack.gif)   |
20 | | csbco 3543 |
. . . . . . . . . 10
      ![]_ ]_](_urbrack.gif)   ![]_ ]_](_urbrack.gif)       ![]_ ]_](_urbrack.gif)  |
21 | 19, 20 | syl6eqr 2674 |
. . . . . . . . 9
       ![]_ ]_](_urbrack.gif)       ![]_ ]_](_urbrack.gif)   ![]_ ]_](_urbrack.gif)   |
22 | 21 | cbvmptv 4750 |
. . . . . . . 8
       ![]_ ]_](_urbrack.gif)         ![]_ ]_](_urbrack.gif)   ![]_ ]_](_urbrack.gif)   |
23 | 11, 17, 22 | prodmo 14666 |
. . . . . . 7
         
                          
               
         ![]_ ]_](_urbrack.gif)          |
24 | | fprod.2 |
. . . . . . . . 9
   |
25 | | fprod.3 |
. . . . . . . . . . . 12
           |
26 | | f1of 6137 |
. . . . . . . . . . . 12
        
          |
27 | 25, 26 | syl 17 |
. . . . . . . . . . 11
           |
28 | | ovex 6678 |
. . . . . . . . . . 11
     |
29 | | fex 6490 |
. . . . . . . . . . 11
                 |
30 | 27, 28, 29 | sylancl 694 |
. . . . . . . . . 10
   |
31 | | nnuz 11723 |
. . . . . . . . . . . . 13
     |
32 | 24, 31 | syl6eleq 2711 |
. . . . . . . . . . . 12
       |
33 | | fprod.5 |
. . . . . . . . . . . . . . 15
 
           |
34 | | elfznn 12370 |
. . . . . . . . . . . . . . . . 17
       |
35 | 34 | adantl 482 |
. . . . . . . . . . . . . . . 16
 
       |
36 | | fvex 6201 |
. . . . . . . . . . . . . . . . 17
     |
37 | 33, 36 | syl6eqelr 2710 |
. . . . . . . . . . . . . . . 16
 
       |
38 | | eqid 2622 |
. . . . . . . . . . . . . . . . 17
     |
39 | 38 | fvmpt2 6291 |
. . . . . . . . . . . . . . . 16
 
         |
40 | 35, 37, 39 | syl2anc 693 |
. . . . . . . . . . . . . . 15
 
             |
41 | 33, 40 | eqtr4d 2659 |
. . . . . . . . . . . . . 14
 
                 |
42 | 41 | ralrimiva 2966 |
. . . . . . . . . . . . 13
                   |
43 | | nffvmpt1 6199 |
. . . . . . . . . . . . . . 15
         |
44 | 43 | nfeq2 2780 |
. . . . . . . . . . . . . 14
             |
45 | | fveq2 6191 |
. . . . . . . . . . . . . . 15
           |
46 | | fveq2 6191 |
. . . . . . . . . . . . . . 15
               |
47 | 45, 46 | eqeq12d 2637 |
. . . . . . . . . . . . . 14
                         |
48 | 44, 47 | rspc 3303 |
. . . . . . . . . . . . 13
      
                            |
49 | 42, 48 | mpan9 486 |
. . . . . . . . . . . 12
 
                 |
50 | 32, 49 | seqfveq 12825 |
. . . . . . . . . . 11
                 |
51 | 25, 50 | jca 554 |
. . . . . . . . . 10
               
           |
52 | | f1oeq1 6127 |
. . . . . . . . . . . 12
         
           |
53 | | fveq1 6190 |
. . . . . . . . . . . . . . . . . 18
           |
54 | 53 | csbeq1d 3540 |
. . . . . . . . . . . . . . . . 17
       ![]_ ]_](_urbrack.gif)       ![]_ ]_](_urbrack.gif)   |
55 | | fvex 6201 |
. . . . . . . . . . . . . . . . . 18
     |
56 | | fprod.1 |
. . . . . . . . . . . . . . . . . 18
       |
57 | 55, 56 | csbie 3559 |
. . . . . . . . . . . . . . . . 17
      ![]_ ]_](_urbrack.gif)  |
58 | 54, 57 | syl6eq 2672 |
. . . . . . . . . . . . . . . 16
       ![]_ ]_](_urbrack.gif)   |
59 | 58 | mpteq2dv 4745 |
. . . . . . . . . . . . . . 15
        ![]_ ]_](_urbrack.gif)      |
60 | 59 | seqeq3d 12809 |
. . . . . . . . . . . . . 14
          ![]_ ]_](_urbrack.gif)          |
61 | 60 | fveq1d 6193 |
. . . . . . . . . . . . 13
          ![]_ ]_](_urbrack.gif)                |
62 | 61 | eqeq2d 2632 |
. . . . . . . . . . . 12
                 ![]_ ]_](_urbrack.gif)     
                 |
63 | 52, 62 | anbi12d 747 |
. . . . . . . . . . 11
                
         ![]_ ]_](_urbrack.gif)      
                           |
64 | 63 | spcegv 3294 |
. . . . . . . . . 10
                
                         
         ![]_ ]_](_urbrack.gif)          |
65 | 30, 51, 64 | sylc 65 |
. . . . . . . . 9
                           ![]_ ]_](_urbrack.gif)         |
66 | | oveq2 6658 |
. . . . . . . . . . . . 13
           |
67 | | f1oeq2 6128 |
. . . . . . . . . . . . 13
                 
           |
68 | 66, 67 | syl 17 |
. . . . . . . . . . . 12
         
           |
69 | | fveq2 6191 |
. . . . . . . . . . . . 13
          ![]_ ]_](_urbrack.gif)               ![]_ ]_](_urbrack.gif)        |
70 | 69 | eqeq2d 2632 |
. . . . . . . . . . . 12
                 ![]_ ]_](_urbrack.gif)     
               ![]_ ]_](_urbrack.gif)         |
71 | 68, 70 | anbi12d 747 |
. . . . . . . . . . 11
                
         ![]_ ]_](_urbrack.gif)      
                        ![]_ ]_](_urbrack.gif)          |
72 | 71 | exbidv 1850 |
. . . . . . . . . 10
                  
         ![]_ ]_](_urbrack.gif)      
                
         ![]_ ]_](_urbrack.gif)          |
73 | 72 | rspcev 3309 |
. . . . . . . . 9
                  
         ![]_ ]_](_urbrack.gif)                         
         ![]_ ]_](_urbrack.gif)         |
74 | 24, 65, 73 | syl2anc 693 |
. . . . . . . 8
                  
         ![]_ ]_](_urbrack.gif)         |
75 | 74 | olcd 408 |
. . . . . . 7
                                  
          
                
         ![]_ ]_](_urbrack.gif)          |
76 | | breq2 4657 |
. . . . . . . . . . . . . 14
             
  
                   |
77 | 76 | 3anbi3d 1405 |
. . . . . . . . . . . . 13
                                       
                                                 |
78 | 77 | rexbidv 3052 |
. . . . . . . . . . . 12
                                        
    

    
                                       |
79 | | eqeq1 2626 |
. . . . . . . . . . . . . . 15
                 ![]_ ]_](_urbrack.gif)     
               ![]_ ]_](_urbrack.gif)         |
80 | 79 | anbi2d 740 |
. . . . . . . . . . . . . 14
                          ![]_ ]_](_urbrack.gif)      
                        ![]_ ]_](_urbrack.gif)          |
81 | 80 | exbidv 1850 |
. . . . . . . . . . . . 13
                  
         ![]_ ]_](_urbrack.gif)      
                
         ![]_ ]_](_urbrack.gif)          |
82 | 81 | rexbidv 3052 |
. . . . . . . . . . . 12
                   
         ![]_ ]_](_urbrack.gif)      
                           ![]_ ]_](_urbrack.gif)          |
83 | 78, 82 | orbi12d 746 |
. . . . . . . . . . 11
                                         
               
         ![]_ ]_](_urbrack.gif)                                         
          
                
         ![]_ ]_](_urbrack.gif)           |
84 | 83 | moi2 3387 |
. . . . . . . . . 10
                                            
               
         ![]_ ]_](_urbrack.gif)            
    
                                         
         ![]_ ]_](_urbrack.gif)                                         
          
                
         ![]_ ]_](_urbrack.gif)         
        |
85 | 2, 84 | mpanl1 716 |
. . . . . . . . 9
          
                          
               
         ![]_ ]_](_urbrack.gif)               
                          
               
         ![]_ ]_](_urbrack.gif)                                         
          
                
         ![]_ ]_](_urbrack.gif)         
        |
86 | 85 | ancom2s 844 |
. . . . . . . 8
          
                          
               
         ![]_ ]_](_urbrack.gif)               
                          
          
                
         ![]_ ]_](_urbrack.gif)                                         
               
         ![]_ ]_](_urbrack.gif)         
        |
87 | 86 | expr 643 |
. . . . . . 7
          
                          
               
         ![]_ ]_](_urbrack.gif)                                         
          
                
         ![]_ ]_](_urbrack.gif)        
  

    
                                         
         ![]_ ]_](_urbrack.gif)                 |
88 | 23, 75, 87 | syl2anc 693 |
. . . . . 6
                                   
               
         ![]_ ]_](_urbrack.gif)                 |
89 | 75, 83 | syl5ibrcom 237 |
. . . . . 6
         

    
                                         
         ![]_ ]_](_urbrack.gif)           |
90 | 88, 89 | impbid 202 |
. . . . 5
                                   
               
         ![]_ ]_](_urbrack.gif)                 |
91 | 90 | adantr 481 |
. . . 4
 
                                         
               
         ![]_ ]_](_urbrack.gif)                 |
92 | 91 | iota5 5871 |
. . 3
 
            
    
                                         
         ![]_ ]_](_urbrack.gif)                 |
93 | 2, 92 | mpan2 707 |
. 2
      
    
                                         
         ![]_ ]_](_urbrack.gif)                 |
94 | 1, 93 | syl5eq 2668 |
1
 
        |