Step | Hyp | Ref
| Expression |
1 | | fprodabs.2 |
. . 3
   |
2 | | fprodabs.1 |
. . 3
     |
3 | 1, 2 | syl6eleq 2711 |
. 2
       |
4 | | oveq2 6658 |
. . . . . . 7
           |
5 | 4 | prodeq1d 14651 |
. . . . . 6
       
       |
6 | 5 | fveq2d 6195 |
. . . . 5
                       |
7 | 4 | prodeq1d 14651 |
. . . . 5
                       |
8 | 6, 7 | eqeq12d 2637 |
. . . 4
                                             |
9 | 8 | imbi2d 330 |
. . 3
  
                    
                         |
10 | | oveq2 6658 |
. . . . . . 7
           |
11 | 10 | prodeq1d 14651 |
. . . . . 6
       
       |
12 | 11 | fveq2d 6195 |
. . . . 5
                       |
13 | 10 | prodeq1d 14651 |
. . . . 5
                       |
14 | 12, 13 | eqeq12d 2637 |
. . . 4
                                             |
15 | 14 | imbi2d 330 |
. . 3
  
                    
                         |
16 | | oveq2 6658 |
. . . . . . 7
               |
17 | 16 | prodeq1d 14651 |
. . . . . 6
         
         |
18 | 17 | fveq2d 6195 |
. . . . 5
                           |
19 | 16 | prodeq1d 14651 |
. . . . 5
                 
         |
20 | 18, 19 | eqeq12d 2637 |
. . . 4
                               
                   |
21 | 20 | imbi2d 330 |
. . 3
    
                    
        
                    |
22 | | oveq2 6658 |
. . . . . . 7
           |
23 | 22 | prodeq1d 14651 |
. . . . . 6
       
       |
24 | 23 | fveq2d 6195 |
. . . . 5
                       |
25 | 22 | prodeq1d 14651 |
. . . . 5
                       |
26 | 24, 25 | eqeq12d 2637 |
. . . 4
                                             |
27 | 26 | imbi2d 330 |
. . 3
  
                    
                         |
28 | | csbfv2g 6232 |
. . . . . 6
   ![]_ ]_](_urbrack.gif)          ![]_ ]_](_urbrack.gif)    |
29 | 28 | adantl 482 |
. . . . 5
 

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

        |
32 | 31 | prodeq1d 14651 |
. . . . . 6
 

                   |
33 | | simpr 477 |
. . . . . . 7
 

  |
34 | | uzid 11702 |
. . . . . . . . . . . 12
       |
35 | 34, 2 | syl6eleqr 2712 |
. . . . . . . . . . 11
   |
36 | | fprodabs.3 |
. . . . . . . . . . . . 13
 
   |
37 | 36 | ralrimiva 2966 |
. . . . . . . . . . . 12
 
  |
38 | | nfcsb1v 3549 |
. . . . . . . . . . . . . 14
  
 ![]_ ]_](_urbrack.gif)  |
39 | 38 | nfel1 2779 |
. . . . . . . . . . . . 13
    ![]_ ]_](_urbrack.gif)
 |
40 | | csbeq1a 3542 |
. . . . . . . . . . . . . 14
   ![]_ ]_](_urbrack.gif)   |
41 | 40 | eleq1d 2686 |
. . . . . . . . . . . . 13
 
  ![]_ ]_](_urbrack.gif)    |
42 | 39, 41 | rspc 3303 |
. . . . . . . . . . . 12
  
  ![]_ ]_](_urbrack.gif)
   |
43 | 37, 42 | mpan9 486 |
. . . . . . . . . . 11
 
   ![]_ ]_](_urbrack.gif)   |
44 | 35, 43 | sylan2 491 |
. . . . . . . . . 10
 

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

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

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

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

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

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

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

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

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

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

                      |
58 | 57 | expcom 451 |
. . 3
                         |
59 | | simp3 1063 |
. . . . . . . 8
 
                                               |
60 | | ovex 6678 |
. . . . . . . . . . 11
   |
61 | | csbfv2g 6232 |
. . . . . . . . . . 11
       ![]_ ]_](_urbrack.gif)            ![]_ ]_](_urbrack.gif)    |
62 | 60, 61 | ax-mp 5 |
. . . . . . . . . 10
    ![]_ ]_](_urbrack.gif)            ![]_ ]_](_urbrack.gif)   |
63 | 62 | eqcomi 2631 |
. . . . . . . . 9
       ![]_ ]_](_urbrack.gif)   
  ![]_ ]_](_urbrack.gif)      |
64 | 63 | a1i 11 |
. . . . . . . 8
 
                                ![]_ ]_](_urbrack.gif)      ![]_ ]_](_urbrack.gif)       |
65 | 59, 64 | oveq12d 6668 |
. . . . . . 7
 
                                           ![]_ ]_](_urbrack.gif)    
             ![]_ ]_](_urbrack.gif)        |
66 | | simpr 477 |
. . . . . . . . . . 11
 
    
      |
67 | | elfzuz 12338 |
. . . . . . . . . . . . . 14
    
        |
68 | 67, 2 | syl6eleqr 2712 |
. . . . . . . . . . . . 13
    
    |
69 | 68, 36 | sylan2 491 |
. . . . . . . . . . . 12
 
      
  |
70 | 69 | adantlr 751 |
. . . . . . . . . . 11
       
      
  |
71 | 66, 70 | fprodp1s 14701 |
. . . . . . . . . 10
 
    
         
         ![]_ ]_](_urbrack.gif)    |
72 | 71 | fveq2d 6195 |
. . . . . . . . 9
 
    
   
                      ![]_ ]_](_urbrack.gif)     |
73 | | fzfid 12772 |
. . . . . . . . . . 11
 
    
      |
74 | | elfzuz 12338 |
. . . . . . . . . . . . . 14
           |
75 | 74, 2 | syl6eleqr 2712 |
. . . . . . . . . . . . 13
       |
76 | 75, 36 | sylan2 491 |
. . . . . . . . . . . 12
 
    
  |
77 | 76 | adantlr 751 |
. . . . . . . . . . 11
       
    
  |
78 | 73, 77 | fprodcl 14682 |
. . . . . . . . . 10
 
    
        |
79 | | peano2uz 11741 |
. . . . . . . . . . . 12
    
        |
80 | 79, 2 | syl6eleqr 2712 |
. . . . . . . . . . 11
    
    |
81 | | nfcsb1v 3549 |
. . . . . . . . . . . . . 14
      ![]_ ]_](_urbrack.gif)  |
82 | 81 | nfel1 2779 |
. . . . . . . . . . . . 13
      ![]_ ]_](_urbrack.gif)
 |
83 | | csbeq1a 3542 |
. . . . . . . . . . . . . 14
       ![]_ ]_](_urbrack.gif)   |
84 | 83 | eleq1d 2686 |
. . . . . . . . . . . . 13
   
    ![]_ ]_](_urbrack.gif)    |
85 | 82, 84 | rspc 3303 |
. . . . . . . . . . . 12
    
    ![]_ ]_](_urbrack.gif)
   |
86 | 37, 85 | mpan9 486 |
. . . . . . . . . . 11
 
       ![]_ ]_](_urbrack.gif)   |
87 | 80, 86 | sylan2 491 |
. . . . . . . . . 10
 
    
    ![]_ ]_](_urbrack.gif)   |
88 | 78, 87 | absmuld 14193 |
. . . . . . . . 9
 
    
              ![]_ ]_](_urbrack.gif)                     ![]_ ]_](_urbrack.gif)     |
89 | 72, 88 | eqtrd 2656 |
. . . . . . . 8
 
    
   
                          ![]_ ]_](_urbrack.gif)     |
90 | 89 | 3adant3 1081 |
. . . . . . 7
 
                                                       ![]_ ]_](_urbrack.gif)     |
91 | 70 | abscld 14175 |
. . . . . . . . . 10
       
      
      |
92 | 91 | recnd 10068 |
. . . . . . . . 9
       
      
      |
93 | 66, 92 | fprodp1s 14701 |
. . . . . . . 8
 
    
                           ![]_ ]_](_urbrack.gif)        |
94 | 93 | 3adant3 1081 |
. . . . . . 7
 
                             
        
             ![]_ ]_](_urbrack.gif)        |
95 | 65, 90, 94 | 3eqtr4d 2666 |
. . . . . 6
 
                                         
         |
96 | 95 | 3exp 1264 |
. . . . 5
                          
   
                        |
97 | 96 | com12 32 |
. . . 4
    
                     
   
                        |
98 | 97 | a2d 29 |
. . 3
    
                               
                    |
99 | 9, 15, 21, 27, 58, 98 | uzind4 11746 |
. 2
    
                        |
100 | 3, 99 | mpcom 38 |
1
                       |