| Step | Hyp | Ref
 | Expression | 
| 1 |   | eulerth.1 | 
. . . . . 6
                          
           | 
| 2 |   | eulerth.2 | 
. . . . . 6
             ..^                  | 
| 3 |   | eulerth.4 | 
. . . . . 6
                      | 
| 4 | 1, 2, 3 | eulerthlema 12398 | 
. . . . 5
                       
                                                                | 
| 5 | 1 | simp1d 1011 | 
. . . . . 6
              | 
| 6 | 1 | simp2d 1012 | 
. . . . . . . 8
              | 
| 7 | 5 | phicld 12386 | 
. . . . . . . . 9
                  | 
| 8 | 7 | nnnn0d 9302 | 
. . . . . . . 8
                  | 
| 9 |   | zexpcl 10646 | 
. . . . . . . 8
                                        | 
| 10 | 6, 8, 9 | syl2anc 411 | 
. . . . . . 7
                      | 
| 11 |   | 1zzd 9353 | 
. . . . . . . . 9
              | 
| 12 | 7 | nnzd 9447 | 
. . . . . . . . 9
                  | 
| 13 | 11, 12 | fzfigd 10523 | 
. . . . . . . 8
                      | 
| 14 |   | ssrab2 3268 | 
. . . . . . . . . . 11
         ..^                      ..^   | 
| 15 | 2, 14 | eqsstri 3215 | 
. . . . . . . . . 10
        ..^   | 
| 16 |   | fzo0ssnn0 10291 | 
. . . . . . . . . . 11
    ..^       | 
| 17 |   | nn0ssz 9344 | 
. . . . . . . . . . 11
        | 
| 18 | 16, 17 | sstri 3192 | 
. . . . . . . . . 10
    ..^       | 
| 19 | 15, 18 | sstri 3192 | 
. . . . . . . . 9
        | 
| 20 |   | f1of 5504 | 
. . . . . . . . . . 11
                  
               | 
| 21 | 3, 20 | syl 14 | 
. . . . . . . . . 10
                      | 
| 22 | 21 | ffvelcdmda 5697 | 
. . . . . . . . 9
       
                
           | 
| 23 | 19, 22 | sselid 3181 | 
. . . . . . . 8
       
                
           | 
| 24 | 13, 23 | fprodzcl 11774 | 
. . . . . . 7
                                | 
| 25 | 10, 24 | zmulcld 9454 | 
. . . . . 6
                                              | 
| 26 |   | fveq2 5558 | 
. . . . . . . . 9
                               
                                    | 
| 27 |   | eqid 2196 | 
. . . . . . . . . 10
                                                                                          | 
| 28 | 1, 2, 3, 27 | eulerthlemh 12399 | 
. . . . . . . . 9
                                            
                          | 
| 29 |   | eqid 2196 | 
. . . . . . . . . . . . 13
                        | 
| 30 |   | fveq2 5558 | 
. . . . . . . . . . . . . . . 16
                          | 
| 31 | 30 | oveq2d 5938 | 
. . . . . . . . . . . . . . 15
               
                      | 
| 32 | 31 | oveq1d 5937 | 
. . . . . . . . . . . . . 14
                         
                        | 
| 33 | 32 | cbvmptv 4129 | 
. . . . . . . . . . . . 13
                                                                            | 
| 34 | 1, 2, 29, 3, 33 | eulerthlem1 12395 | 
. . . . . . . . . . . 12
                                      
                 | 
| 35 |   | fveq2 5558 | 
. . . . . . . . . . . . . . . 16
                          | 
| 36 | 35 | oveq2d 5938 | 
. . . . . . . . . . . . . . 15
               
                      | 
| 37 | 36 | oveq1d 5937 | 
. . . . . . . . . . . . . 14
                         
                        | 
| 38 | 37 | cbvmptv 4129 | 
. . . . . . . . . . . . 13
                                                                            | 
| 39 | 38 | feq1i 5400 | 
. . . . . . . . . . . 12
                                  
                                                 
                 | 
| 40 | 34, 39 | sylib 122 | 
. . . . . . . . . . 11
                                      
                 | 
| 41 |   | fvco3 5632 | 
. . . . . . . . . . 11
                                   
                                                                                                                                  | 
| 42 | 40, 41 | sylan 283 | 
. . . . . . . . . 10
       
                
    
                                 
                                              
         | 
| 43 |   | eqid 2196 | 
. . . . . . . . . . . 12
                                                                            | 
| 44 |   | fveq2 5558 | 
. . . . . . . . . . . . . 14
                          | 
| 45 | 44 | oveq2d 5938 | 
. . . . . . . . . . . . 13
               
                      | 
| 46 | 45 | oveq1d 5937 | 
. . . . . . . . . . . 12
                         
                        | 
| 47 |   | simpr 110 | 
. . . . . . . . . . . 12
       
                
               | 
| 48 | 6 | adantr 276 | 
. . . . . . . . . . . . . 14
       
                
       | 
| 49 | 48, 23 | zmulcld 9454 | 
. . . . . . . . . . . . 13
       
                
                 | 
| 50 | 5 | adantr 276 | 
. . . . . . . . . . . . 13
       
                
       | 
| 51 |   | zmodfzo 10439 | 
. . . . . . . . . . . . 13
                         
                           ..^    | 
| 52 | 49, 50, 51 | syl2anc 411 | 
. . . . . . . . . . . 12
       
                
     
                ..^    | 
| 53 | 43, 46, 47, 52 | fvmptd3 5655 | 
. . . . . . . . . . 11
       
                
                                
                            | 
| 54 | 53 | fveq2d 5562 | 
. . . . . . . . . 10
       
                
                                    
                                  | 
| 55 | 42, 54 | eqtrd 2229 | 
. . . . . . . . 9
       
                
    
                                 
                                  | 
| 56 | 21 | ffvelcdmda 5697 | 
. . . . . . . . . . 11
       
                
           | 
| 57 | 19, 56 | sselid 3181 | 
. . . . . . . . . 10
       
                
           | 
| 58 | 57 | zcnd 9449 | 
. . . . . . . . 9
       
                
           | 
| 59 | 26, 13, 28, 55, 58 | fprodf1o 11753 | 
. . . . . . . 8
                                                                       | 
| 60 | 3 | adantr 276 | 
. . . . . . . . . 10
       
                
               | 
| 61 |   | modgcd 12158 | 
. . . . . . . . . . . . 13
                         
                                                  | 
| 62 | 49, 50, 61 | syl2anc 411 | 
. . . . . . . . . . . 12
       
                
               
                        
    | 
| 63 | 50 | nnzd 9447 | 
. . . . . . . . . . . . 13
       
                
       | 
| 64 | 63, 49 | gcdcomd 12141 | 
. . . . . . . . . . . 12
       
                
                                  
    | 
| 65 | 5 | nnzd 9447 | 
. . . . . . . . . . . . . . . 16
              | 
| 66 | 6, 65 | gcdcomd 12141 | 
. . . . . . . . . . . . . . 15
                          | 
| 67 | 1 | simp3d 1013 | 
. . . . . . . . . . . . . . 15
                    | 
| 68 | 66, 67 | eqtr3d 2231 | 
. . . . . . . . . . . . . 14
                    | 
| 69 | 68 | adantr 276 | 
. . . . . . . . . . . . 13
       
                
             | 
| 70 | 23, 63 | gcdcomd 12141 | 
. . . . . . . . . . . . . 14
       
                
                           | 
| 71 |   | oveq1 5929 | 
. . . . . . . . . . . . . . . . . 18
                   
                  | 
| 72 | 71 | eqeq1d 2205 | 
. . . . . . . . . . . . . . . . 17
                                      
         | 
| 73 | 72, 2 | elrab2 2923 | 
. . . . . . . . . . . . . . . 16
              
           ..^                       | 
| 74 | 22, 73 | sylib 122 | 
. . . . . . . . . . . . . . 15
       
                
           ..^                       | 
| 75 | 74 | simprd 114 | 
. . . . . . . . . . . . . 14
       
                
                 | 
| 76 | 70, 75 | eqtr3d 2231 | 
. . . . . . . . . . . . 13
       
                
                 | 
| 77 |   | rpmul 12266 | 
. . . . . . . . . . . . . 14
               
                                                           
                | 
| 78 | 63, 48, 23, 77 | syl3anc 1249 | 
. . . . . . . . . . . . 13
       
                
                                          
                | 
| 79 | 69, 76, 78 | mp2and 433 | 
. . . . . . . . . . . 12
       
                
                       | 
| 80 | 62, 64, 79 | 3eqtr2d 2235 | 
. . . . . . . . . . 11
       
                
               
             | 
| 81 |   | oveq1 5929 | 
. . . . . . . . . . . . 13
                               
                              | 
| 82 | 81 | eqeq1d 2205 | 
. . . . . . . . . . . 12
                                                                        | 
| 83 | 82, 2 | elrab2 2923 | 
. . . . . . . . . . 11
                 
      
                         ..^                                   | 
| 84 | 52, 80, 83 | sylanbrc 417 | 
. . . . . . . . . 10
       
                
     
                 | 
| 85 |   | f1ocnvfv2 5825 | 
. . . . . . . . . 10
                                                                                             | 
| 86 | 60, 84, 85 | syl2anc 411 | 
. . . . . . . . 9
       
                
                                           
    | 
| 87 | 86 | prodeq2dv 11731 | 
. . . . . . . 8
                                                                                   | 
| 88 | 59, 87 | eqtr2d 2230 | 
. . . . . . 7
                                   
                          | 
| 89 |   | fveq2 5558 | 
. . . . . . . . 9
                          | 
| 90 | 89 | cbvprodv 11724 | 
. . . . . . . 8
                                            | 
| 91 | 90, 24 | eqeltrid 2283 | 
. . . . . . 7
                                | 
| 92 | 88, 91 | eqeltrd 2273 | 
. . . . . 6
                                   
        | 
| 93 |   | moddvds 11964 | 
. . . . . 6
                                                                                                            
                                                                
                                                                     
      | 
| 94 | 5, 25, 92, 93 | syl3anc 1249 | 
. . . . 5
                        
                                                                
                                                                     
      | 
| 95 | 4, 94 | mpbid 147 | 
. . . 4
                                                                                  | 
| 96 | 24 | zcnd 9449 | 
. . . . . . . 8
                                | 
| 97 | 96 | mulid2d 8045 | 
. . . . . . 7
                                                        | 
| 98 | 90, 88, 97 | 3eqtr4a 2255 | 
. . . . . 6
                                   
            
                   | 
| 99 | 98 | oveq2d 5938 | 
. . . . 5
                       
                                                                                                                        | 
| 100 | 10 | zcnd 9449 | 
. . . . . 6
                      | 
| 101 |   | ax-1cn 7972 | 
. . . . . . 7
        | 
| 102 |   | subdir 8412 | 
. . . . . . 7
                                                                                                                 
                                                | 
| 103 | 101, 102 | mp3an2 1336 | 
. . . . . 6
                                                                                                                                     
                    | 
| 104 | 100, 96, 103 | syl2anc 411 | 
. . . . 5
                                                                 
                                                | 
| 105 | 10, 11 | zsubcld 9453 | 
. . . . . . 7
                            | 
| 106 | 105 | zcnd 9449 | 
. . . . . 6
                            | 
| 107 | 106, 96 | mulcomd 8048 | 
. . . . 5
                                                                                          | 
| 108 | 99, 104, 107 | 3eqtr2d 2235 | 
. . . 4
                       
                                                                                                | 
| 109 | 95, 108 | breqtrd 4059 | 
. . 3
                                                    | 
| 110 | 1, 2, 3 | eulerthlemrprm 12397 | 
. . 3
                                      | 
| 111 |   | coprmdvds 12260 | 
. . . 4
                                                                                                               
                             
                      | 
| 112 | 65, 24, 105, 111 | syl3anc 1249 | 
. . 3
                                                         
                             
                      | 
| 113 | 109, 110,
112 | mp2and 433 | 
. 2
                            | 
| 114 |   | 1z 9352 | 
. . . 4
        | 
| 115 |   | moddvds 11964 | 
. . . 4
                                                                 
                      | 
| 116 | 114, 115 | mp3an3 1337 | 
. . 3
                                                         
                      | 
| 117 | 5, 10, 116 | syl2anc 411 | 
. 2
                                       
                  | 
| 118 | 113, 117 | mpbird 167 | 
1
                                  |