| Step | Hyp | Ref
| Expression |
| 1 | | birthday.t |
. . . . . 6
               |
| 2 | 1 | fveq2i 5696 |
. . . . 5
♯  ♯                 |
| 3 | | 1zzd 9654 |
. . . . . . 7
 
       |
| 4 | | elfzelz 10411 |
. . . . . . . 8
       |
| 5 | 4 | adantl 277 |
. . . . . . 7
 
       |
| 6 | 3, 5 | fzfigd 10851 |
. . . . . 6
 
           |
| 7 | | nnz 9646 |
. . . . . . . 8
   |
| 8 | 7 | adantr 276 |
. . . . . . 7
 
       |
| 9 | 3, 8 | fzfigd 10851 |
. . . . . 6
 
           |
| 10 | | hashf1 11270 |
. . . . . 6
           ♯                    ♯        ♯      ♯          |
| 11 | 6, 9, 10 | syl2anc 415 |
. . . . 5
 
     ♯                    ♯        ♯      ♯          |
| 12 | 2, 11 | eqtrid 2283 |
. . . 4
 
     ♯      ♯        ♯      ♯          |
| 13 | | elfznn0 10504 |
. . . . . . . 8
       |
| 14 | 13 | adantl 277 |
. . . . . . 7
 
       |
| 15 | | hashfz1 11205 |
. . . . . . 7

♯        |
| 16 | 14, 15 | syl 14 |
. . . . . 6
 
     ♯        |
| 17 | 16 | fveq2d 5697 |
. . . . 5
 
        ♯             |
| 18 | | nnnn0 9553 |
. . . . . . . 8
   |
| 19 | | hashfz1 11205 |
. . . . . . . 8

♯        |
| 20 | 18, 19 | syl 14 |
. . . . . . 7
 ♯        |
| 21 | 20 | adantr 276 |
. . . . . 6
 
     ♯        |
| 22 | 21, 16 | oveq12d 6097 |
. . . . 5
 
      ♯      ♯           |
| 23 | 17, 22 | oveq12d 6097 |
. . . 4
 
         ♯        ♯      ♯                  |
| 24 | 18 | adantr 276 |
. . . . . . . . 9
 
       |
| 25 | 24 | faccld 11157 |
. . . . . . . 8
 
           |
| 26 | 25 | nncnd 9301 |
. . . . . . 7
 
           |
| 27 | | fznn0sub 10446 |
. . . . . . . . . 10
     
   |
| 28 | 27 | adantl 277 |
. . . . . . . . 9
 
         |
| 29 | 28 | faccld 11157 |
. . . . . . . 8
 
        
    |
| 30 | 29 | nncnd 9301 |
. . . . . . 7
 
        
    |
| 31 | 29 | nnap0d 9333 |
. . . . . . 7
 
        
  #   |
| 32 | 26, 30, 31 | divclapd 9114 |
. . . . . 6
 
             
     |
| 33 | 14 | faccld 11157 |
. . . . . . 7
 
           |
| 34 | 33 | nncnd 9301 |
. . . . . 6
 
           |
| 35 | 33 | nnap0d 9333 |
. . . . . 6
 
         #
  |
| 36 | 32, 34, 35 | divcanap2d 9116 |
. . . . 5
 
                   
                       |
| 37 | | bcval2 11171 |
. . . . . . . 8
                
          |
| 38 | 37 | adantl 277 |
. . . . . . 7
 
                           |
| 39 | 26, 30, 34, 31, 35 | divdivap1d 9146 |
. . . . . . 7
 
              
                            |
| 40 | 38, 39 | eqtr4d 2274 |
. . . . . 6
 
                           |
| 41 | 40 | oveq2d 6095 |
. . . . 5
 
                                       |
| 42 | 24 | nn0zd 9749 |
. . . . . . . . 9
 
       |
| 43 | 3, 42 | fzfigd 10851 |
. . . . . . . 8
 
           |
| 44 | | elfznn 10443 |
. . . . . . . . . 10
       |
| 45 | 44 | adantl 277 |
. . . . . . . . 9
            
  |
| 46 | | nnrp 10047 |
. . . . . . . . . . 11
   |
| 47 | 46 | relogcld 15966 |
. . . . . . . . . 10
       |
| 48 | 47 | recnd 8348 |
. . . . . . . . 9
       |
| 49 | 45, 48 | syl 14 |
. . . . . . . 8
            
      |
| 50 | 43, 49 | fsumcl 12150 |
. . . . . . 7
 
                 |
| 51 | 28 | nn0zd 9749 |
. . . . . . . . 9
 
         |
| 52 | 3, 51 | fzfigd 10851 |
. . . . . . . 8
 
             |
| 53 | | elfznn 10443 |
. . . . . . . . . 10
         |
| 54 | 53 | adantl 277 |
. . . . . . . . 9
              
  |
| 55 | 54, 48 | syl 14 |
. . . . . . . 8
              
      |
| 56 | 52, 55 | fsumcl 12150 |
. . . . . . 7
 
                   |
| 57 | | efsub 12431 |
. . . . . . 7
  
                                                                                    |
| 58 | 50, 56, 57 | syl2anc 415 |
. . . . . 6
 
                                                                   |
| 59 | 28 | nn0red 9604 |
. . . . . . . . . . . 12
 
         |
| 60 | 59 | ltp1d 9254 |
. . . . . . . . . . 11
 
             |
| 61 | | fzdisj 10440 |
. . . . . . . . . . 11
           
 
           |
| 62 | 60, 61 | syl 14 |
. . . . . . . . . 10
 
                       |
| 63 | | fznn0sub2 10518 |
. . . . . . . . . . . . . . . 16
     
       |
| 64 | 63 | adantl 277 |
. . . . . . . . . . . . . . 15
 
             |
| 65 | | elfzle2 10415 |
. . . . . . . . . . . . . . 15
       
   |
| 66 | 64, 65 | syl 14 |
. . . . . . . . . . . . . 14
 
         |
| 67 | 66 | adantr 276 |
. . . . . . . . . . . . 13
               |
| 68 | | simpr 110 |
. . . . . . . . . . . . . . 15
               |
| 69 | | nnuz 9941 |
. . . . . . . . . . . . . . 15
     |
| 70 | 68, 69 | eleqtrdi 2331 |
. . . . . . . . . . . . . 14
                   |
| 71 | 7 | ad2antrr 492 |
. . . . . . . . . . . . . 14
             |
| 72 | | elfz5 10403 |
. . . . . . . . . . . . . 14
               
     |
| 73 | 70, 71, 72 | syl2anc 415 |
. . . . . . . . . . . . 13
                       |
| 74 | 67, 73 | mpbird 167 |
. . . . . . . . . . . 12
                   |
| 75 | | fzsplit 10439 |
. . . . . . . . . . . 12
                             |
| 76 | 74, 75 | syl 14 |
. . . . . . . . . . 11
                   
             |
| 77 | | simpr 110 |
. . . . . . . . . . . . . . 15
          
    |
| 78 | 77 | oveq2d 6095 |
. . . . . . . . . . . . . 14
          
            |
| 79 | | fz10 10433 |
. . . . . . . . . . . . . 14
     |
| 80 | 78, 79 | eqtrdi 2287 |
. . . . . . . . . . . . 13
          
        |
| 81 | 80 | uneq1d 3382 |
. . . . . . . . . . . 12
          
                
           |
| 82 | | uncom 3373 |
. . . . . . . . . . . . . 14
                     |
| 83 | | un0 3556 |
. . . . . . . . . . . . . 14
                   |
| 84 | 82, 83 | eqtri 2259 |
. . . . . . . . . . . . 13
                   |
| 85 | 77 | oveq1d 6094 |
. . . . . . . . . . . . . . 15
          
 
      |
| 86 | | 1e0p1 9801 |
. . . . . . . . . . . . . . 15
   |
| 87 | 85, 86 | eqtr4di 2289 |
. . . . . . . . . . . . . 14
          
 
    |
| 88 | 87 | oveq1d 6094 |
. . . . . . . . . . . . 13
          
              |
| 89 | 84, 88 | eqtrid 2283 |
. . . . . . . . . . . 12
          
                |
| 90 | 81, 89 | eqtr2d 2272 |
. . . . . . . . . . 11
          
                      |
| 91 | | elnn0 9548 |
. . . . . . . . . . . 12
  
        |
| 92 | 28, 91 | sylib 122 |
. . . . . . . . . . 11
 
             |
| 93 | 76, 90, 92 | mpjaodan 810 |
. . . . . . . . . 10
 
             
             |
| 94 | 62, 93, 43, 49 | fsumsplit 12157 |
. . . . . . . . 9
 
                                             |
| 95 | 94 | oveq1d 6094 |
. . . . . . . 8
 
                    
                                                    |
| 96 | 51 | peano2zd 9754 |
. . . . . . . . . . 11
 
           |
| 97 | 96, 42 | fzfigd 10851 |
. . . . . . . . . 10
 
               |
| 98 | | nn0p1nn 9585 |
. . . . . . . . . . . . 13
  
      |
| 99 | 28, 98 | syl 14 |
. . . . . . . . . . . 12
 
           |
| 100 | | elfzuz 10407 |
. . . . . . . . . . . 12
             
     |
| 101 | | eluznn 9983 |
. . . . . . . . . . . 12
     
        
  |
| 102 | 99, 100, 101 | syl2an 289 |
. . . . . . . . . . 11
                
  |
| 103 | 102, 48 | syl 14 |
. . . . . . . . . 10
                
      |
| 104 | 97, 103 | fsumcl 12150 |
. . . . . . . . 9
 
                     |
| 105 | 56, 104 | pncan2d 8633 |
. . . . . . . 8
 
                                                               |
| 106 | 95, 105 | eqtr2d 2272 |
. . . . . . 7
 
                                             |
| 107 | 106 | fveq2d 5697 |
. . . . . 6
 
                                                     |
| 108 | 25 | nnrpd 10078 |
. . . . . . . . 9
 
           |
| 109 | 108 | reeflogd 15967 |
. . . . . . . 8
 
                       |
| 110 | | logfac 15978 |
. . . . . . . . . 10

                    |
| 111 | 24, 110 | syl 14 |
. . . . . . . . 9
 
                         |
| 112 | 111 | fveq2d 5697 |
. . . . . . . 8
 
                                 |
| 113 | 109, 112 | eqtr3d 2273 |
. . . . . . 7
 
                         |
| 114 | 29 | nnrpd 10078 |
. . . . . . . . 9
 
        
    |
| 115 | 114 | reeflogd 15967 |
. . . . . . . 8
 
              
       
    |
| 116 | | logfac 15978 |
. . . . . . . . . 10
  
      
                 |
| 117 | 28, 116 | syl 14 |
. . . . . . . . 9
 
                             |
| 118 | 117 | fveq2d 5697 |
. . . . . . . 8
 
              
                      |
| 119 | 115, 118 | eqtr3d 2273 |
. . . . . . 7
 
        
         
          |
| 120 | 113, 119 | oveq12d 6097 |
. . . . . 6
 
             
                                     |
| 121 | 58, 107, 120 | 3eqtr4d 2281 |
. . . . 5
 
                                     |
| 122 | 36, 41, 121 | 3eqtr4d 2281 |
. . . 4
 
                                 |
| 123 | 12, 23, 122 | 3eqtrd 2275 |
. . 3
 
     ♯                      |
| 124 | | birthday.s |
. . . . . . 7
               |
| 125 | | mapvalg 6926 |
. . . . . . . 8
                                     |
| 126 | 9, 6, 125 | syl2anc 415 |
. . . . . . 7
 
                               |
| 127 | 124, 126 | eqtr4id 2290 |
. . . . . 6
 
         
       |
| 128 | 127 | fveq2d 5697 |
. . . . 5
 
     ♯  ♯              |
| 129 | | hashmap 11251 |
. . . . . 6
           ♯             ♯        ♯         |
| 130 | 9, 6, 129 | syl2anc 415 |
. . . . 5
 
     ♯             ♯        ♯         |
| 131 | 128, 130 | eqtrd 2271 |
. . . 4
 
     ♯   ♯        ♯         |
| 132 | 21, 16 | oveq12d 6097 |
. . . 4
 
      ♯        ♯             |
| 133 | | nnrp 10047 |
. . . . . 6
   |
| 134 | 133 | adantr 276 |
. . . . 5
 
       |
| 135 | | reexplog 15955 |
. . . . 5
          
        |
| 136 | 134, 5, 135 | syl2anc 415 |
. . . 4
 
                     |
| 137 | 131, 132,
136 | 3eqtrd 2275 |
. . 3
 
     ♯     
        |
| 138 | 123, 137 | oveq12d 6097 |
. 2
 
      ♯  ♯                         
         |
| 139 | 14 | nn0cnd 9605 |
. . . 4
 
       |
| 140 | 134 | relogcld 15966 |
. . . . 5
 
           |
| 141 | 140 | recnd 8348 |
. . . 4
 
           |
| 142 | 139, 141 | mulcld 8340 |
. . 3
 
             |
| 143 | | efsub 12431 |
. . 3
  
             
                                                      
         |
| 144 | 104, 142,
143 | syl2anc 415 |
. 2
 
                                                     
         |
| 145 | | relogdiv 15954 |
. . . . . . 7
                     |
| 146 | 46, 134, 145 | syl2anr 290 |
. . . . . 6
                           |
| 147 | 102, 146 | syldan 282 |
. . . . 5
                
                  |
| 148 | 147 | sumeq2dv 12117 |
. . . 4
 
                                           |
| 149 | 102 | nnrpd 10078 |
. . . . . . . . 9
                
  |
| 150 | 134 | adantr 276 |
. . . . . . . . 9
                
  |
| 151 | 149, 150 | rpdivcld 10098 |
. . . . . . . 8
                
    |
| 152 | 151 | relogcld 15966 |
. . . . . . 7
                
        |
| 153 | 152 | recnd 8348 |
. . . . . 6
                
        |
| 154 | | fvoveq1 6102 |
. . . . . 6
                   |
| 155 | 8, 96, 8, 153, 154 | fsumrev 12193 |
. . . . 5
 
                           
 
               |
| 156 | | nncn 9295 |
. . . . . . . . 9
   |
| 157 | 156 | adantr 276 |
. . . . . . . 8
 
       |
| 158 | 157 | subidd 8619 |
. . . . . . 7
 
         |
| 159 | | 1cnd 8336 |
. . . . . . . . . 10
 
       |
| 160 | 157, 139,
159 | subsubd 8659 |
. . . . . . . . 9
 
      
        |
| 161 | 160 | oveq2d 6095 |
. . . . . . . 8
 
      

           |
| 162 | | ax-1cn 8266 |
. . . . . . . . . 10
 |
| 163 | | subcl 8519 |
. . . . . . . . . 10
 
     |
| 164 | 139, 162,
163 | sylancl 417 |
. . . . . . . . 9
 
         |
| 165 | 157, 164 | nncand 8636 |
. . . . . . . 8
 
      

       |
| 166 | 161, 165 | eqtr3d 2273 |
. . . . . . 7
 
               |
| 167 | 158, 166 | oveq12d 6097 |
. . . . . 6
 
                         |
| 168 | 157 | adantr 276 |
. . . . . . . . 9
              
  |
| 169 | | elfznn0 10504 |
. . . . . . . . . . 11
         |
| 170 | 169 | adantl 277 |
. . . . . . . . . 10
              
  |
| 171 | 170 | nn0cnd 9605 |
. . . . . . . . 9
              
  |
| 172 | | nnap0 9316 |
. . . . . . . . . 10
 #   |
| 173 | 172 | ad2antrr 492 |
. . . . . . . . 9
              
#   |
| 174 | 168, 171,
168, 173 | divsubdirapd 9154 |
. . . . . . . 8
              
 
          |
| 175 | 168, 173 | dividapd 9110 |
. . . . . . . . 9
              
    |
| 176 | 175 | oveq1d 6094 |
. . . . . . . 8
              
            |
| 177 | 174, 176 | eqtrd 2271 |
. . . . . . 7
              
 
        |
| 178 | 177 | fveq2d 5697 |
. . . . . 6
              
                  |
| 179 | 167, 178 | sumeq12rdv 12122 |
. . . . 5
 
                                             |
| 180 | 155, 179 | eqtrd 2271 |
. . . 4
 
                         
             |
| 181 | 141 | adantr 276 |
. . . . . 6
                
      |
| 182 | 97, 103, 181 | fsumsub 12202 |
. . . . 5
 
                                                         |
| 183 | | fsumconst 12204 |
. . . . . . . 8
                              ♯                 |
| 184 | 97, 141, 183 | syl2anc 415 |
. . . . . . 7
 
                    ♯                 |
| 185 | | fzen 10430 |
. . . . . . . . . . . 12
 

             
      |
| 186 | 3, 5, 51, 185 | syl3anc 1278 |
. . . . . . . . . . 11
 
                       |
| 187 | 28 | nn0cnd 9605 |
. . . . . . . . . . . . 13
 
         |
| 188 | | addcom 8457 |
. . . . . . . . . . . . 13
  
            |
| 189 | 162, 187,
188 | sylancr 418 |
. . . . . . . . . . . 12
 
               |
| 190 | 139, 157 | pncan3d 8634 |
. . . . . . . . . . . 12
 
      
    |
| 191 | 189, 190 | oveq12d 6097 |
. . . . . . . . . . 11
 
                           |
| 192 | 186, 191 | breqtrd 4154 |
. . . . . . . . . 10
 
                   |
| 193 | | hashen 11206 |
. . . . . . . . . . 11
                ♯      ♯                         |
| 194 | 6, 97, 193 | syl2anc 415 |
. . . . . . . . . 10
 
      ♯      ♯                         |
| 195 | 192, 194 | mpbird 167 |
. . . . . . . . 9
 
     ♯      ♯            |
| 196 | 195, 16 | eqtr3d 2273 |
. . . . . . . 8
 
     ♯            |
| 197 | 196 | oveq1d 6094 |
. . . . . . 7
 
      ♯                       |
| 198 | 184, 197 | eqtrd 2271 |
. . . . . 6
 
                           |
| 199 | 198 | oveq2d 6095 |
. . . . 5
 
                                    
                      |
| 200 | 182, 199 | eqtrd 2271 |
. . . 4
 
                                                 |
| 201 | 148, 180,
200 | 3eqtr3rd 2280 |
. . 3
 
                                             |
| 202 | 201 | fveq2d 5697 |
. 2
 
                                  
                  |
| 203 | 138, 144,
202 | 3eqtr2d 2277 |
1
 
      ♯  ♯          
              |