Step | Hyp | Ref
| Expression |
1 | | eulerth.1 |
. . . . . 6
  
    |
2 | 1 | simp1d 1009 |
. . . . 5
   |
3 | 2 | phicld 12218 |
. . . 4
       |
4 | | elnnuz 9564 |
. . . 4
    
          |
5 | 3, 4 | sylib 122 |
. . 3
           |
6 | | eluzfz2 10032 |
. . 3
        
              |
7 | 5, 6 | syl 14 |
. 2
               |
8 | | oveq2 5883 |
. . . . . . 7
           |
9 | | oveq2 5883 |
. . . . . . . 8
           |
10 | 9 | prodeq1d 11572 |
. . . . . . 7
           
           |
11 | 8, 10 | oveq12d 5893 |
. . . . . 6
                                   |
12 | 11 | oveq1d 5890 |
. . . . 5
                         
             |
13 | 9 | prodeq1d 11572 |
. . . . . 6
               
           
   |
14 | 13 | oveq1d 5890 |
. . . . 5
              
   
           
    |
15 | 12, 14 | eqeq12d 2192 |
. . . 4
        
                                                          
     |
16 | 15 | imbi2d 230 |
. . 3
  
                   
           
  
       
                               |
17 | | oveq2 5883 |
. . . . . . 7
           |
18 | | oveq2 5883 |
. . . . . . . 8
           |
19 | 18 | prodeq1d 11572 |
. . . . . . 7
           
           |
20 | 17, 19 | oveq12d 5893 |
. . . . . 6
                                   |
21 | 20 | oveq1d 5890 |
. . . . 5
                         
             |
22 | 18 | prodeq1d 11572 |
. . . . . 6
               
           
   |
23 | 22 | oveq1d 5890 |
. . . . 5
              
   
           
    |
24 | 21, 23 | eqeq12d 2192 |
. . . 4
        
                                                          
     |
25 | 24 | imbi2d 230 |
. . 3
  
                   
           
  
       
                               |
26 | | oveq2 5883 |
. . . . . . 7
               |
27 | | oveq2 5883 |
. . . . . . . 8
               |
28 | 27 | prodeq1d 11572 |
. . . . . . 7
             
             |
29 | 26, 28 | oveq12d 5893 |
. . . . . 6
                                         |
30 | 29 | oveq1d 5890 |
. . . . 5
                             
               |
31 | 27 | prodeq1d 11572 |
. . . . . 6
                 
             
   |
32 | 31 | oveq1d 5890 |
. . . . 5
                
   
             
    |
33 | 30, 32 | eqeq12d 2192 |
. . . 4
          
                                                                
     |
34 | 33 | imbi2d 230 |
. . 3
    
                   
           
  
         
                                   |
35 | | oveq2 5883 |
. . . . . . 7
                   |
36 | | oveq2 5883 |
. . . . . . . 8
                   |
37 | 36 | prodeq1d 11572 |
. . . . . . 7
               
               |
38 | 35, 37 | oveq12d 5893 |
. . . . . 6
                                               |
39 | 38 | oveq1d 5890 |
. . . . 5
                                 
                 |
40 | 36 | prodeq1d 11572 |
. . . . . 6
                   
               
   |
41 | 40 | oveq1d 5890 |
. . . . 5
                  
   
               
    |
42 | 39, 41 | eqeq12d 2192 |
. . . 4
            
                                     
                                      |
43 | 42 | imbi2d 230 |
. . 3
      
                   
           
  
           
                                       |
44 | 1 | simp2d 1010 |
. . . . . . . 8
   |
45 | | eulerth.2 |
. . . . . . . . . . . 12
  ..^     |
46 | | ssrab2 3241 |
. . . . . . . . . . . 12
  ..^     ..^  |
47 | 45, 46 | eqsstri 3188 |
. . . . . . . . . . 11
 ..^  |
48 | | fzo0ssnn0 10215 |
. . . . . . . . . . 11
 ..^  |
49 | 47, 48 | sstri 3165 |
. . . . . . . . . 10
 |
50 | | nn0ssz 9271 |
. . . . . . . . . 10
 |
51 | 49, 50 | sstri 3165 |
. . . . . . . . 9
 |
52 | | eulerth.4 |
. . . . . . . . . . 11
               |
53 | | f1of 5462 |
. . . . . . . . . . 11
            
              |
54 | 52, 53 | syl 14 |
. . . . . . . . . 10
               |
55 | | 1nn 8930 |
. . . . . . . . . . . 12
 |
56 | 55 | a1i 9 |
. . . . . . . . . . 11
   |
57 | 3 | nnge1d 8962 |
. . . . . . . . . . 11

      |
58 | | elfz1b 10090 |
. . . . . . . . . . 11
        
            |
59 | 56, 3, 57, 58 | syl3anbrc 1181 |
. . . . . . . . . 10
           |
60 | 54, 59 | ffvelcdmd 5653 |
. . . . . . . . 9
       |
61 | 51, 60 | sselid 3154 |
. . . . . . . 8
       |
62 | 44, 61 | zmulcld 9381 |
. . . . . . 7
         |
63 | | zq 9626 |
. . . . . . 7
       
       |
64 | 62, 63 | syl 14 |
. . . . . 6
         |
65 | | nnq 9633 |
. . . . . . 7
   |
66 | 2, 65 | syl 14 |
. . . . . 6
   |
67 | 2 | nngt0d 8963 |
. . . . . 6
   |
68 | | modqabs2 10358 |
. . . . . 6
       
                     |
69 | 64, 66, 67, 68 | syl3anc 1238 |
. . . . 5
                     |
70 | | 1z 9279 |
. . . . . . 7
 |
71 | 62, 2 | zmodcld 10345 |
. . . . . . . 8
           |
72 | 71 | nn0cnd 9231 |
. . . . . . 7
           |
73 | | fveq2 5516 |
. . . . . . . . . 10
           |
74 | 73 | oveq2d 5891 |
. . . . . . . . 9
 
             |
75 | 74 | oveq1d 5890 |
. . . . . . . 8
       
           |
76 | 75 | fprod1 11602 |
. . . . . . 7
                       
           |
77 | 70, 72, 76 | sylancr 414 |
. . . . . 6
                         |
78 | 77 | oveq1d 5890 |
. . . . 5
                             |
79 | 44 | zcnd 9376 |
. . . . . . . 8
   |
80 | 79 | exp1d 10649 |
. . . . . . 7
       |
81 | | nn0sscn 9181 |
. . . . . . . . . 10
 |
82 | 49, 81 | sstri 3165 |
. . . . . . . . 9
 |
83 | 82, 60 | sselid 3154 |
. . . . . . . 8
       |
84 | 73 | fprod1 11602 |
. . . . . . . 8
                       |
85 | 70, 83, 84 | sylancr 414 |
. . . . . . 7
                 |
86 | 80, 85 | oveq12d 5893 |
. . . . . 6
                         |
87 | 86 | oveq1d 5890 |
. . . . 5
       
                     |
88 | 69, 78, 87 | 3eqtr4rd 2221 |
. . . 4
       
                             |
89 | 88 | a1i 9 |
. . 3
        
       
                              |
90 | 44 | adantr 276 |
. . . . . . . . . . . 12
 
 ..^        |
91 | | elfzo1 10190 |
. . . . . . . . . . . . . . 15
  ..^                 |
92 | 91 | simp1bi 1012 |
. . . . . . . . . . . . . 14
  ..^    
  |
93 | 92 | adantl 277 |
. . . . . . . . . . . . 13
 
 ..^        |
94 | 93 | nnnn0d 9229 |
. . . . . . . . . . . 12
 
 ..^        |
95 | | zexpcl 10535 |
. . . . . . . . . . . 12
 
       |
96 | 90, 94, 95 | syl2anc 411 |
. . . . . . . . . . 11
 
 ..^            |
97 | 70 | a1i 9 |
. . . . . . . . . . . . 13
 
 ..^        |
98 | 93 | nnzd 9374 |
. . . . . . . . . . . . 13
 
 ..^        |
99 | 97, 98 | fzfigd 10431 |
. . . . . . . . . . . 12
 
 ..^            |
100 | 54 | ad2antrr 488 |
. . . . . . . . . . . . . 14
    ..^          
              |
101 | | elfzelz 10025 |
. . . . . . . . . . . . . . . . . 18
       |
102 | 101 | zred 9375 |
. . . . . . . . . . . . . . . . 17
       |
103 | 102 | adantl 277 |
. . . . . . . . . . . . . . . 16
    ..^          
  |
104 | 3 | nnzd 9374 |
. . . . . . . . . . . . . . . . . 18
       |
105 | 104 | ad2antrr 488 |
. . . . . . . . . . . . . . . . 17
    ..^          
      |
106 | 105 | zred 9375 |
. . . . . . . . . . . . . . . 16
    ..^          
      |
107 | 93 | nnred 8932 |
. . . . . . . . . . . . . . . . . 18
 
 ..^        |
108 | 107 | adantr 276 |
. . . . . . . . . . . . . . . . 17
    ..^          
  |
109 | | elfzle2 10028 |
. . . . . . . . . . . . . . . . . 18
       |
110 | 109 | adantl 277 |
. . . . . . . . . . . . . . . . 17
    ..^          
  |
111 | | elfzolt2 10156 |
. . . . . . . . . . . . . . . . . 18
  ..^    
      |
112 | 111 | ad2antlr 489 |
. . . . . . . . . . . . . . . . 17
    ..^          
      |
113 | 103, 108,
106, 110, 112 | lelttrd 8082 |
. . . . . . . . . . . . . . . 16
    ..^          
      |
114 | 103, 106,
113 | ltled 8076 |
. . . . . . . . . . . . . . 15
    ..^          
      |
115 | | elfzuz 10021 |
. . . . . . . . . . . . . . . 16
           |
116 | | elfz5 10017 |
. . . . . . . . . . . . . . . 16
                   
       |
117 | 115, 105,
116 | syl2an2 594 |
. . . . . . . . . . . . . . 15
    ..^          
        
       |
118 | 114, 117 | mpbird 167 |
. . . . . . . . . . . . . 14
    ..^          
          |
119 | 100, 118 | ffvelcdmd 5653 |
. . . . . . . . . . . . 13
    ..^          
      |
120 | 51, 119 | sselid 3154 |
. . . . . . . . . . . 12
    ..^          
      |
121 | 99, 120 | fprodzcl 11617 |
. . . . . . . . . . 11
 
 ..^                  |
122 | 96, 121 | zmulcld 9381 |
. . . . . . . . . 10
 
 ..^           
            |
123 | | zq 9626 |
. . . . . . . . . 10
                
     
            |
124 | 122, 123 | syl 14 |
. . . . . . . . 9
 
 ..^           
            |
125 | 124 | adantr 276 |
. . . . . . . 8
    ..^                                     
                     |
126 | 90 | adantr 276 |
. . . . . . . . . . . . . 14
    ..^          
  |
127 | 126, 120 | zmulcld 9381 |
. . . . . . . . . . . . 13
    ..^          
        |
128 | 2 | ad2antrr 488 |
. . . . . . . . . . . . 13
    ..^          
  |
129 | 127, 128 | zmodcld 10345 |
. . . . . . . . . . . 12
    ..^          
 
        |
130 | 129 | nn0zd 9373 |
. . . . . . . . . . 11
    ..^          
 
        |
131 | 99, 130 | fprodzcl 11617 |
. . . . . . . . . 10
 
 ..^                      |
132 | | zq 9626 |
. . . . . . . . . 10
             

                |
133 | 131, 132 | syl 14 |
. . . . . . . . 9
 
 ..^                      |
134 | 133 | adantr 276 |
. . . . . . . 8
    ..^                                     
               
   |
135 | 44 | ad2antrr 488 |
. . . . . . . . 9
    ..^                                     
  
  |
136 | 54 | ad2antrr 488 |
. . . . . . . . . . 11
    ..^                                     
                 |
137 | | fzofzp1 10227 |
. . . . . . . . . . . 12
  ..^    
            |
138 | 137 | ad2antlr 489 |
. . . . . . . . . . 11
    ..^                                     
               |
139 | 136, 138 | ffvelcdmd 5653 |
. . . . . . . . . 10
    ..^                                     
           |
140 | 51, 139 | sselid 3154 |
. . . . . . . . 9
    ..^                                     
           |
141 | 135, 140 | zmulcld 9381 |
. . . . . . . 8
    ..^                                     
             |
142 | 66 | ad2antrr 488 |
. . . . . . . 8
    ..^                                     
  
  |
143 | 67 | ad2antrr 488 |
. . . . . . . 8
    ..^                                     
  
  |
144 | | simpr 110 |
. . . . . . . 8
    ..^                                     
         
                             |
145 | 125, 134,
141, 142, 143, 144 | modqmul1 10377 |
. . . . . . 7
    ..^                                     
                     
                         
           |
146 | 145 | ex 115 |
. . . . . 6
 
 ..^                          
           
         
                                    
            |
147 | 96 | zcnd 9376 |
. . . . . . . . . 10
 
 ..^            |
148 | 121 | zcnd 9376 |
. . . . . . . . . 10
 
 ..^                  |
149 | 79 | adantr 276 |
. . . . . . . . . 10
 
 ..^        |
150 | 54 | adantr 276 |
. . . . . . . . . . . 12
 
 ..^                    |
151 | 137 | adantl 277 |
. . . . . . . . . . . 12
 
 ..^                  |
152 | 150, 151 | ffvelcdmd 5653 |
. . . . . . . . . . 11
 
 ..^              |
153 | 82, 152 | sselid 3154 |
. . . . . . . . . 10
 
 ..^              |
154 | 147, 148,
149, 153 | mul4d 8112 |
. . . . . . . . 9
 
 ..^                       
                                    |
155 | 149, 94 | expp1d 10655 |
. . . . . . . . . 10
 
 ..^                    |
156 | | elfzouz 10151 |
. . . . . . . . . . . 12
  ..^    
      |
157 | 156 | adantl 277 |
. . . . . . . . . . 11
 
 ..^            |
158 | 150 | adantr 276 |
. . . . . . . . . . . . 13
    ..^            
              |
159 | | elfzelz 10025 |
. . . . . . . . . . . . . . . . 17
         |
160 | 159 | zred 9375 |
. . . . . . . . . . . . . . . 16
         |
161 | 160 | adantl 277 |
. . . . . . . . . . . . . . 15
    ..^            
  |
162 | | peano2re 8093 |
. . . . . . . . . . . . . . . . 17
     |
163 | 107, 162 | syl 14 |
. . . . . . . . . . . . . . . 16
 
 ..^          |
164 | 163 | adantr 276 |
. . . . . . . . . . . . . . 15
    ..^            
    |
165 | 104 | ad2antrr 488 |
. . . . . . . . . . . . . . . 16
    ..^            
      |
166 | 165 | zred 9375 |
. . . . . . . . . . . . . . 15
    ..^            
      |
167 | | elfzle2 10028 |
. . . . . . . . . . . . . . . 16
           |
168 | 167 | adantl 277 |
. . . . . . . . . . . . . . 15
    ..^            
    |
169 | 137 | ad2antlr 489 |
. . . . . . . . . . . . . . . 16
    ..^            
            |
170 | | elfzle2 10028 |
. . . . . . . . . . . . . . . 16
                   |
171 | 169, 170 | syl 14 |
. . . . . . . . . . . . . . 15
    ..^            
        |
172 | 161, 164,
166, 168, 171 | letrd 8081 |
. . . . . . . . . . . . . 14
    ..^            
      |
173 | | elfzuz 10021 |
. . . . . . . . . . . . . . 15
             |
174 | 173, 165,
116 | syl2an2 594 |
. . . . . . . . . . . . . 14
    ..^            
        
       |
175 | 172, 174 | mpbird 167 |
. . . . . . . . . . . . 13
    ..^            
          |
176 | 158, 175 | ffvelcdmd 5653 |
. . . . . . . . . . . 12
    ..^            
      |
177 | 82, 176 | sselid 3154 |
. . . . . . . . . . 11
    ..^            
      |
178 | | fveq2 5516 |
. . . . . . . . . . 11
               |
179 | 157, 177,
178 | fprodp1 11608 |
. . . . . . . . . 10
 
 ..^                                      |
180 | 155, 179 | oveq12d 5893 |
. . . . . . . . 9
 
 ..^             
                                        |
181 | 154, 180 | eqtr4d 2213 |
. . . . . . . 8
 
 ..^                       
               
              |
182 | 181 | oveq1d 5890 |
. . . . . . 7
 
 ..^                                                          |
183 | 51, 152 | sselid 3154 |
. . . . . . . . . . . . 13
 
 ..^              |
184 | 90, 183 | zmulcld 9381 |
. . . . . . . . . . . 12
 
 ..^                |
185 | 2 | adantr 276 |
. . . . . . . . . . . 12
 
 ..^        |
186 | 184, 185 | zmodcld 10345 |
. . . . . . . . . . 11
 
 ..^                  |
187 | 186 | nn0zd 9373 |
. . . . . . . . . 10
 
 ..^                  |
188 | | zq 9626 |
. . . . . . . . . 10
                       |
189 | 187, 188 | syl 14 |
. . . . . . . . 9
 
 ..^                  |
190 | | zq 9626 |
. . . . . . . . . 10
         
         |
191 | 184, 190 | syl 14 |
. . . . . . . . 9
 
 ..^                |
192 | 66 | adantr 276 |
. . . . . . . . 9
 
 ..^        |
193 | 67 | adantr 276 |
. . . . . . . . 9
 
 ..^        |
194 | | modqabs2 10358 |
. . . . . . . . . 10
         
                         |
195 | 191, 192,
193, 194 | syl3anc 1238 |
. . . . . . . . 9
 
 ..^                              |
196 | 189, 191,
131, 192, 193, 195 | modqmul1 10377 |
. . . . . . . 8
 
 ..^                                                              |
197 | 90 | adantr 276 |
. . . . . . . . . . . . . 14
    ..^            
  |
198 | 51, 176 | sselid 3154 |
. . . . . . . . . . . . . 14
    ..^            
      |
199 | 197, 198 | zmulcld 9381 |
. . . . . . . . . . . . 13
    ..^            
        |
200 | 185 | adantr 276 |
. . . . . . . . . . . . 13
    ..^            
  |
201 | 199, 200 | zmodcld 10345 |
. . . . . . . . . . . 12
    ..^            
 
        |
202 | 201 | nn0cnd 9231 |
. . . . . . . . . . 11
    ..^            
 
        |
203 | 178 | oveq2d 5891 |
. . . . . . . . . . . 12
   
               |
204 | 203 | oveq1d 5890 |
. . . . . . . . . . 11
         
             |
205 | 157, 202,
204 | fprodp1 11608 |
. . . . . . . . . 10
 
 ..^                                                  |
206 | 186 | nn0cnd 9231 |
. . . . . . . . . . 11
 
 ..^                  |
207 | 131 | zcnd 9376 |
. . . . . . . . . . 11
 
 ..^                      |
208 | 206, 207 | mulcomd 7979 |
. . . . . . . . . 10
 
 ..^                 
           
               
              |
209 | 205, 208 | eqtr4d 2213 |
. . . . . . . . 9
 
 ..^                                 
           
    |
210 | 209 | oveq1d 5890 |
. . . . . . . 8
 
 ..^                                                      |
211 | 149, 153 | mulcld 7978 |
. . . . . . . . . 10
 
 ..^                |
212 | 207, 211 | mulcomd 7979 |
. . . . . . . . 9
 
 ..^                     
                 
           
    |
213 | 212 | oveq1d 5890 |
. . . . . . . 8
 
 ..^                    
                                       |
214 | 196, 210,
213 | 3eqtr4rd 2221 |
. . . . . . 7
 
 ..^                    
                          
    |
215 | 182, 214 | eqeq12d 2192 |
. . . . . 6
 
 ..^                                     
           
                                                
     |
216 | 146, 215 | sylibd 149 |
. . . . 5
 
 ..^                          
           
                                             |
217 | 216 | expcom 116 |
. . . 4
  ..^    
                                 
                                              |
218 | 217 | a2d 26 |
. . 3
  ..^    
                                 
   
                       
             
      |
219 | 16, 25, 34, 43, 89, 218 | fzind2 10239 |
. 2
                        
                                      |
220 | 7, 219 | mpcom 36 |
1
           
                                     |