Step | Hyp | Ref
| Expression |
1 | | fprodabs.2 |
. . 3
   |
2 | | fprodabs.1 |
. . 3
     |
3 | 1, 2 | eleqtrdi 2270 |
. 2
       |
4 | | oveq2 5885 |
. . . . . . 7
           |
5 | 4 | prodeq1d 11574 |
. . . . . 6
       
       |
6 | 5 | fveq2d 5521 |
. . . . 5
                       |
7 | 4 | prodeq1d 11574 |
. . . . 5
                       |
8 | 6, 7 | eqeq12d 2192 |
. . . 4
                                             |
9 | 8 | imbi2d 230 |
. . 3
  
                    
                         |
10 | | oveq2 5885 |
. . . . . . 7
           |
11 | 10 | prodeq1d 11574 |
. . . . . 6
       
       |
12 | 11 | fveq2d 5521 |
. . . . 5
                       |
13 | 10 | prodeq1d 11574 |
. . . . 5
                       |
14 | 12, 13 | eqeq12d 2192 |
. . . 4
                                             |
15 | 14 | imbi2d 230 |
. . 3
  
                    
                         |
16 | | oveq2 5885 |
. . . . . . 7
               |
17 | 16 | prodeq1d 11574 |
. . . . . 6
         
         |
18 | 17 | fveq2d 5521 |
. . . . 5
                           |
19 | 16 | prodeq1d 11574 |
. . . . 5
                 
         |
20 | 18, 19 | eqeq12d 2192 |
. . . 4
                               
                   |
21 | 20 | imbi2d 230 |
. . 3
    
                    
        
                    |
22 | | oveq2 5885 |
. . . . . . 7
           |
23 | 22 | prodeq1d 11574 |
. . . . . 6
       
       |
24 | 23 | fveq2d 5521 |
. . . . 5
                       |
25 | 22 | prodeq1d 11574 |
. . . . 5
                       |
26 | 24, 25 | eqeq12d 2192 |
. . . 4
                                             |
27 | 26 | imbi2d 230 |
. . 3
  
                    
                         |
28 | | csbfv2g 5554 |
. . . . . 6
   ![]_ ]_](_urbrack.gif)          ![]_ ]_](_urbrack.gif)    |
29 | 28 | adantl 277 |
. . . . 5
 

  ![]_ ]_](_urbrack.gif)          ![]_ ]_](_urbrack.gif)    |
30 | | fzsn 10068 |
. . . . . . . 8
         |
31 | 30 | adantl 277 |
. . . . . . 7
 

        |
32 | 31 | prodeq1d 11574 |
. . . . . 6
 

                   |
33 | | simpr 110 |
. . . . . . 7
 

  |
34 | | uzid 9544 |
. . . . . . . . . . . 12
       |
35 | 34, 2 | eleqtrrdi 2271 |
. . . . . . . . . . 11
   |
36 | | fprodabs.3 |
. . . . . . . . . . . . 13
 
   |
37 | 36 | ralrimiva 2550 |
. . . . . . . . . . . 12
 
  |
38 | | nfcsb1v 3092 |
. . . . . . . . . . . . . 14
  
 ![]_ ]_](_urbrack.gif)  |
39 | 38 | nfel1 2330 |
. . . . . . . . . . . . 13
    ![]_ ]_](_urbrack.gif)
 |
40 | | csbeq1a 3068 |
. . . . . . . . . . . . . 14
   ![]_ ]_](_urbrack.gif)   |
41 | 40 | eleq1d 2246 |
. . . . . . . . . . . . 13
 
  ![]_ ]_](_urbrack.gif)    |
42 | 39, 41 | rspc 2837 |
. . . . . . . . . . . 12
  
  ![]_ ]_](_urbrack.gif)
   |
43 | 37, 42 | mpan9 281 |
. . . . . . . . . . 11
 
   ![]_ ]_](_urbrack.gif)   |
44 | 35, 43 | sylan2 286 |
. . . . . . . . . 10
 

  ![]_ ]_](_urbrack.gif)   |
45 | 44 | abscld 11192 |
. . . . . . . . 9
 

     ![]_ ]_](_urbrack.gif)    |
46 | 45 | recnd 7988 |
. . . . . . . 8
 

     ![]_ ]_](_urbrack.gif)    |
47 | 29, 46 | eqeltrd 2254 |
. . . . . . 7
 

  ![]_ ]_](_urbrack.gif)       |
48 | | prodsns 11613 |
. . . . . . 7
    ![]_ ]_](_urbrack.gif)               ![]_ ]_](_urbrack.gif)       |
49 | 33, 47, 48 | syl2anc 411 |
. . . . . 6
 

         ![]_ ]_](_urbrack.gif)       |
50 | 32, 49 | eqtrd 2210 |
. . . . 5
 

            ![]_ ]_](_urbrack.gif)       |
51 | 30 | prodeq1d 11574 |
. . . . . . . 8
       
     |
52 | 51 | adantl 277 |
. . . . . . 7
 

            |
53 | | prodsns 11613 |
. . . . . . . 8
    ![]_ ]_](_urbrack.gif)
       ![]_ ]_](_urbrack.gif)   |
54 | 33, 44, 53 | syl2anc 411 |
. . . . . . 7
 

      ![]_ ]_](_urbrack.gif)   |
55 | 52, 54 | eqtrd 2210 |
. . . . . 6
 

        ![]_ ]_](_urbrack.gif)   |
56 | 55 | fveq2d 5521 |
. . . . 5
 

               ![]_ ]_](_urbrack.gif)    |
57 | 29, 50, 56 | 3eqtr4rd 2221 |
. . . 4
 

                      |
58 | 57 | expcom 116 |
. . 3
                         |
59 | | simp3 999 |
. . . . . . . 8
 
                                               |
60 | | peano2uz 9585 |
. . . . . . . . . . 11
    
        |
61 | | csbfv2g 5554 |
. . . . . . . . . . 11
      
    ![]_ ]_](_urbrack.gif)            ![]_ ]_](_urbrack.gif)    |
62 | 60, 61 | syl 14 |
. . . . . . . . . 10
    
    ![]_ ]_](_urbrack.gif)            ![]_ ]_](_urbrack.gif)    |
63 | 62 | eqcomd 2183 |
. . . . . . . . 9
    
       ![]_ ]_](_urbrack.gif)   
  ![]_ ]_](_urbrack.gif)       |
64 | 63 | 3ad2ant2 1019 |
. . . . . . . 8
 
                                ![]_ ]_](_urbrack.gif)      ![]_ ]_](_urbrack.gif)       |
65 | 59, 64 | oveq12d 5895 |
. . . . . . 7
 
                                           ![]_ ]_](_urbrack.gif)    
             ![]_ ]_](_urbrack.gif)        |
66 | | simpr 110 |
. . . . . . . . . . 11
 
    
      |
67 | | elfzuz 10023 |
. . . . . . . . . . . . . 14
    
        |
68 | 67, 2 | eleqtrrdi 2271 |
. . . . . . . . . . . . 13
    
    |
69 | 68, 36 | sylan2 286 |
. . . . . . . . . . . 12
 
      
  |
70 | 69 | adantlr 477 |
. . . . . . . . . . 11
       
      
  |
71 | 66, 70 | fprodp1s 11612 |
. . . . . . . . . 10
 
    
         
         ![]_ ]_](_urbrack.gif)    |
72 | 71 | fveq2d 5521 |
. . . . . . . . 9
 
    
   
                      ![]_ ]_](_urbrack.gif)     |
73 | | eluzel2 9535 |
. . . . . . . . . . . . 13
    
  |
74 | 73 | adantl 277 |
. . . . . . . . . . . 12
 
    
  |
75 | | eluzelz 9539 |
. . . . . . . . . . . . 13
    
  |
76 | 75 | adantl 277 |
. . . . . . . . . . . 12
 
    
  |
77 | 74, 76 | fzfigd 10433 |
. . . . . . . . . . 11
 
    
      |
78 | | elfzuz 10023 |
. . . . . . . . . . . . . 14
           |
79 | 78, 2 | eleqtrrdi 2271 |
. . . . . . . . . . . . 13
       |
80 | 79, 36 | sylan2 286 |
. . . . . . . . . . . 12
 
    
  |
81 | 80 | adantlr 477 |
. . . . . . . . . . 11
       
    
  |
82 | 77, 81 | fprodcl 11617 |
. . . . . . . . . 10
 
    
        |
83 | 60, 2 | eleqtrrdi 2271 |
. . . . . . . . . . 11
    
    |
84 | | nfcsb1v 3092 |
. . . . . . . . . . . . . 14
      ![]_ ]_](_urbrack.gif)  |
85 | 84 | nfel1 2330 |
. . . . . . . . . . . . 13
      ![]_ ]_](_urbrack.gif)
 |
86 | | csbeq1a 3068 |
. . . . . . . . . . . . . 14
       ![]_ ]_](_urbrack.gif)   |
87 | 86 | eleq1d 2246 |
. . . . . . . . . . . . 13
   
    ![]_ ]_](_urbrack.gif)    |
88 | 85, 87 | rspc 2837 |
. . . . . . . . . . . 12
    
    ![]_ ]_](_urbrack.gif)
   |
89 | 37, 88 | mpan9 281 |
. . . . . . . . . . 11
 
       ![]_ ]_](_urbrack.gif)   |
90 | 83, 89 | sylan2 286 |
. . . . . . . . . 10
 
    
    ![]_ ]_](_urbrack.gif)   |
91 | 82, 90 | absmuld 11205 |
. . . . . . . . 9
 
    
              ![]_ ]_](_urbrack.gif)                     ![]_ ]_](_urbrack.gif)     |
92 | 72, 91 | eqtrd 2210 |
. . . . . . . 8
 
    
   
                          ![]_ ]_](_urbrack.gif)     |
93 | 92 | 3adant3 1017 |
. . . . . . 7
 
                                                       ![]_ ]_](_urbrack.gif)     |
94 | 70 | abscld 11192 |
. . . . . . . . . 10
       
      
      |
95 | 94 | recnd 7988 |
. . . . . . . . 9
       
      
      |
96 | 66, 95 | fprodp1s 11612 |
. . . . . . . 8
 
    
                           ![]_ ]_](_urbrack.gif)        |
97 | 96 | 3adant3 1017 |
. . . . . . 7
 
                             
        
             ![]_ ]_](_urbrack.gif)        |
98 | 65, 93, 97 | 3eqtr4d 2220 |
. . . . . 6
 
                                         
         |
99 | 98 | 3exp 1202 |
. . . . 5
                          
   
                        |
100 | 99 | com12 30 |
. . . 4
    
                     
   
                        |
101 | 100 | a2d 26 |
. . 3
    
                               
                    |
102 | 9, 15, 21, 27, 58, 101 | uzind4 9590 |
. 2
    
                        |
103 | 3, 102 | mpcom 36 |
1
                       |