| Step | Hyp | Ref
| Expression |
| 1 | | birthday.t |
. . . . . . 7
               |
| 2 | 1 | fveq2i 6194 |
. . . . . 6
                       |
| 3 | | fzfi 12771 |
. . . . . . 7
     |
| 4 | | fzfi 12771 |
. . . . . . 7
     |
| 5 | | hashf1 13241 |
. . . . . . 7
                                                               |
| 6 | 3, 4, 5 | mp2an 708 |
. . . . . 6
                                                   |
| 7 | 2, 6 | eqtri 2644 |
. . . . 5
                                     |
| 8 | | elfznn0 12433 |
. . . . . . . . 9
       |
| 9 | 8 | adantl 482 |
. . . . . . . 8
 
       |
| 10 | | hashfz1 13134 |
. . . . . . . 8

          |
| 11 | 9, 10 | syl 17 |
. . . . . . 7
 
               |
| 12 | 11 | fveq2d 6195 |
. . . . . 6
 
                       |
| 13 | | nnnn0 11299 |
. . . . . . . . 9
   |
| 14 | | hashfz1 13134 |
. . . . . . . . 9

          |
| 15 | 13, 14 | syl 17 |
. . . . . . . 8
           |
| 16 | 15 | adantr 481 |
. . . . . . 7
 
               |
| 17 | 16, 11 | oveq12d 6668 |
. . . . . 6
 
                           |
| 18 | 12, 17 | oveq12d 6668 |
. . . . 5
 
                                               |
| 19 | 7, 18 | syl5eq 2668 |
. . . 4
 
                   |
| 20 | 13 | adantr 481 |
. . . . . . . . 9
 
       |
| 21 | | faccl 13070 |
. . . . . . . . 9

      |
| 22 | 20, 21 | syl 17 |
. . . . . . . 8
 
           |
| 23 | 22 | nncnd 11036 |
. . . . . . 7
 
           |
| 24 | | fznn0sub 12373 |
. . . . . . . . . 10
     
   |
| 25 | 24 | adantl 482 |
. . . . . . . . 9
 
         |
| 26 | | faccl 13070 |
. . . . . . . . 9
  
        |
| 27 | 25, 26 | syl 17 |
. . . . . . . 8
 
        
    |
| 28 | 27 | nncnd 11036 |
. . . . . . 7
 
        
    |
| 29 | 27 | nnne0d 11065 |
. . . . . . 7
 
        
    |
| 30 | 23, 28, 29 | divcld 10801 |
. . . . . 6
 
             
     |
| 31 | | faccl 13070 |
. . . . . . . 8

      |
| 32 | 9, 31 | syl 17 |
. . . . . . 7
 
           |
| 33 | 32 | nncnd 11036 |
. . . . . 6
 
           |
| 34 | 32 | nnne0d 11065 |
. . . . . 6
 
           |
| 35 | 30, 33, 34 | divcan2d 10803 |
. . . . 5
 
                   
                       |
| 36 | | bcval2 13092 |
. . . . . . . 8
                
          |
| 37 | 36 | adantl 482 |
. . . . . . 7
 
                           |
| 38 | 23, 28, 33, 29, 34 | divdiv1d 10832 |
. . . . . . 7
 
              
                            |
| 39 | 37, 38 | eqtr4d 2659 |
. . . . . 6
 
                           |
| 40 | 39 | oveq2d 6666 |
. . . . 5
 
                                       |
| 41 | | fzfid 12772 |
. . . . . . . 8
 
           |
| 42 | | elfznn 12370 |
. . . . . . . . . 10
       |
| 43 | 42 | adantl 482 |
. . . . . . . . 9
            
  |
| 44 | | nnrp 11842 |
. . . . . . . . . . 11
   |
| 45 | 44 | relogcld 24369 |
. . . . . . . . . 10
       |
| 46 | 45 | recnd 10068 |
. . . . . . . . 9
       |
| 47 | 43, 46 | syl 17 |
. . . . . . . 8
            
      |
| 48 | 41, 47 | fsumcl 14464 |
. . . . . . 7
 
                 |
| 49 | | fzfid 12772 |
. . . . . . . 8
 
             |
| 50 | | elfznn 12370 |
. . . . . . . . . 10
         |
| 51 | 50 | adantl 482 |
. . . . . . . . 9
              
  |
| 52 | 51, 46 | syl 17 |
. . . . . . . 8
              
      |
| 53 | 49, 52 | fsumcl 14464 |
. . . . . . 7
 
                   |
| 54 | | efsub 14830 |
. . . . . . 7
  
                                                                                    |
| 55 | 48, 53, 54 | syl2anc 693 |
. . . . . 6
 
                                                                   |
| 56 | 25 | nn0red 11352 |
. . . . . . . . . . . 12
 
         |
| 57 | 56 | ltp1d 10954 |
. . . . . . . . . . 11
 
             |
| 58 | | fzdisj 12368 |
. . . . . . . . . . 11
           
 
           |
| 59 | 57, 58 | syl 17 |
. . . . . . . . . 10
 
                       |
| 60 | | fznn0sub2 12446 |
. . . . . . . . . . . . . . . 16
     
       |
| 61 | 60 | adantl 482 |
. . . . . . . . . . . . . . 15
 
             |
| 62 | | elfzle2 12345 |
. . . . . . . . . . . . . . 15
       
   |
| 63 | 61, 62 | syl 17 |
. . . . . . . . . . . . . 14
 
         |
| 64 | 63 | adantr 481 |
. . . . . . . . . . . . 13
               |
| 65 | | simpr 477 |
. . . . . . . . . . . . . . 15
               |
| 66 | | nnuz 11723 |
. . . . . . . . . . . . . . 15
     |
| 67 | 65, 66 | syl6eleq 2711 |
. . . . . . . . . . . . . 14
                   |
| 68 | | nnz 11399 |
. . . . . . . . . . . . . . 15
   |
| 69 | 68 | ad2antrr 762 |
. . . . . . . . . . . . . 14
             |
| 70 | | elfz5 12334 |
. . . . . . . . . . . . . 14
               
     |
| 71 | 67, 69, 70 | syl2anc 693 |
. . . . . . . . . . . . 13
                       |
| 72 | 64, 71 | mpbird 247 |
. . . . . . . . . . . 12
                   |
| 73 | | fzsplit 12367 |
. . . . . . . . . . . 12
                             |
| 74 | 72, 73 | syl 17 |
. . . . . . . . . . 11
                   
             |
| 75 | | simpr 477 |
. . . . . . . . . . . . . . 15
          
    |
| 76 | 75 | oveq2d 6666 |
. . . . . . . . . . . . . 14
          
            |
| 77 | | fz10 12362 |
. . . . . . . . . . . . . 14
     |
| 78 | 76, 77 | syl6eq 2672 |
. . . . . . . . . . . . 13
          
        |
| 79 | 78 | uneq1d 3766 |
. . . . . . . . . . . 12
          
                
           |
| 80 | | uncom 3757 |
. . . . . . . . . . . . . 14
                     |
| 81 | | un0 3967 |
. . . . . . . . . . . . . 14
                   |
| 82 | 80, 81 | eqtri 2644 |
. . . . . . . . . . . . 13
                   |
| 83 | 75 | oveq1d 6665 |
. . . . . . . . . . . . . . 15
          
 
      |
| 84 | | 1e0p1 11552 |
. . . . . . . . . . . . . . 15
   |
| 85 | 83, 84 | syl6eqr 2674 |
. . . . . . . . . . . . . 14
          
 
    |
| 86 | 85 | oveq1d 6665 |
. . . . . . . . . . . . 13
          
              |
| 87 | 82, 86 | syl5eq 2668 |
. . . . . . . . . . . 12
          
                |
| 88 | 79, 87 | eqtr2d 2657 |
. . . . . . . . . . 11
          
                      |
| 89 | | elnn0 11294 |
. . . . . . . . . . . 12
  
        |
| 90 | 25, 89 | sylib 208 |
. . . . . . . . . . 11
 
             |
| 91 | 74, 88, 90 | mpjaodan 827 |
. . . . . . . . . 10
 
             
             |
| 92 | 59, 91, 41, 47 | fsumsplit 14471 |
. . . . . . . . 9
 
                                             |
| 93 | 92 | oveq1d 6665 |
. . . . . . . 8
 
                    
                                                    |
| 94 | | fzfid 12772 |
. . . . . . . . . 10
 
               |
| 95 | | nn0p1nn 11332 |
. . . . . . . . . . . . 13
  
      |
| 96 | 25, 95 | syl 17 |
. . . . . . . . . . . 12
 
           |
| 97 | | elfzuz 12338 |
. . . . . . . . . . . 12
             
     |
| 98 | | eluznn 11758 |
. . . . . . . . . . . 12
     
        
  |
| 99 | 96, 97, 98 | syl2an 494 |
. . . . . . . . . . 11
                
  |
| 100 | 99, 46 | syl 17 |
. . . . . . . . . 10
                
      |
| 101 | 94, 100 | fsumcl 14464 |
. . . . . . . . 9
 
                     |
| 102 | 53, 101 | pncan2d 10394 |
. . . . . . . 8
 
                                                               |
| 103 | 93, 102 | eqtr2d 2657 |
. . . . . . 7
 
                                             |
| 104 | 103 | fveq2d 6195 |
. . . . . 6
 
                                                     |
| 105 | 22 | nnne0d 11065 |
. . . . . . . . 9
 
           |
| 106 | | eflog 24323 |
. . . . . . . . 9
                             |
| 107 | 23, 105, 106 | syl2anc 693 |
. . . . . . . 8
 
                       |
| 108 | | logfac 24347 |
. . . . . . . . . 10

                    |
| 109 | 20, 108 | syl 17 |
. . . . . . . . 9
 
                         |
| 110 | 109 | fveq2d 6195 |
. . . . . . . 8
 
                                 |
| 111 | 107, 110 | eqtr3d 2658 |
. . . . . . 7
 
                         |
| 112 | | eflog 24323 |
. . . . . . . . 9
     
                  
       
    |
| 113 | 28, 29, 112 | syl2anc 693 |
. . . . . . . 8
 
              
       
    |
| 114 | | logfac 24347 |
. . . . . . . . . 10
  
      
                 |
| 115 | 25, 114 | syl 17 |
. . . . . . . . 9
 
                             |
| 116 | 115 | fveq2d 6195 |
. . . . . . . 8
 
              
                      |
| 117 | 113, 116 | eqtr3d 2658 |
. . . . . . 7
 
        
         
          |
| 118 | 111, 117 | oveq12d 6668 |
. . . . . 6
 
             
                                     |
| 119 | 55, 104, 118 | 3eqtr4d 2666 |
. . . . 5
 
                                     |
| 120 | 35, 40, 119 | 3eqtr4d 2666 |
. . . 4
 
                                 |
| 121 | 19, 120 | eqtrd 2656 |
. . 3
 
                             |
| 122 | | birthday.s |
. . . . . . . 8
               |
| 123 | | mapvalg 7867 |
. . . . . . . . 9
                                     |
| 124 | 4, 3, 123 | mp2an 708 |
. . . . . . . 8
                         |
| 125 | 122, 124 | eqtr4i 2647 |
. . . . . . 7
           |
| 126 | 125 | fveq2i 6194 |
. . . . . 6
                   |
| 127 | | hashmap 13222 |
. . . . . . 7
                  
                            |
| 128 | 4, 3, 127 | mp2an 708 |
. . . . . 6
                                   |
| 129 | 126, 128 | eqtri 2644 |
. . . . 5
                         |
| 130 | 16, 11 | oveq12d 6668 |
. . . . 5
 
                               |
| 131 | 129, 130 | syl5eq 2668 |
. . . 4
 
               |
| 132 | | nncn 11028 |
. . . . . 6
   |
| 133 | 132 | adantr 481 |
. . . . 5
 
       |
| 134 | | nnne0 11053 |
. . . . . 6
   |
| 135 | 134 | adantr 481 |
. . . . 5
 
       |
| 136 | | elfzelz 12342 |
. . . . . 6
       |
| 137 | 136 | adantl 482 |
. . . . 5
 
       |
| 138 | | explog 24340 |
. . . . 5
          
        |
| 139 | 133, 135,
137, 138 | syl3anc 1326 |
. . . 4
 
                     |
| 140 | 131, 139 | eqtrd 2656 |
. . 3
 
                     |
| 141 | 121, 140 | oveq12d 6668 |
. 2
 
                                               |
| 142 | 9 | nn0cnd 11353 |
. . . 4
 
       |
| 143 | | nnrp 11842 |
. . . . . . 7
   |
| 144 | 143 | adantr 481 |
. . . . . 6
 
       |
| 145 | 144 | relogcld 24369 |
. . . . 5
 
           |
| 146 | 145 | recnd 10068 |
. . . 4
 
           |
| 147 | 142, 146 | mulcld 10060 |
. . 3
 
             |
| 148 | | efsub 14830 |
. . 3
  
             
                                                      
         |
| 149 | 101, 147,
148 | syl2anc 693 |
. 2
 
                                                     
         |
| 150 | | relogdiv 24339 |
. . . . . . 7
                     |
| 151 | 44, 144, 150 | syl2anr 495 |
. . . . . 6
                           |
| 152 | 99, 151 | syldan 487 |
. . . . 5
                
                  |
| 153 | 152 | sumeq2dv 14433 |
. . . 4
 
                                           |
| 154 | 68 | adantr 481 |
. . . . . 6
 
       |
| 155 | 25 | nn0zd 11480 |
. . . . . . 7
 
         |
| 156 | 155 | peano2zd 11485 |
. . . . . 6
 
           |
| 157 | 99, 44 | syl 17 |
. . . . . . . . 9
                
  |
| 158 | 144 | adantr 481 |
. . . . . . . . 9
                
  |
| 159 | 157, 158 | rpdivcld 11889 |
. . . . . . . 8
                
    |
| 160 | 159 | relogcld 24369 |
. . . . . . 7
                
        |
| 161 | 160 | recnd 10068 |
. . . . . 6
                
        |
| 162 | | oveq1 6657 |
. . . . . . 7
           |
| 163 | 162 | fveq2d 6195 |
. . . . . 6
                   |
| 164 | 154, 156,
154, 161, 163 | fsumrev 14511 |
. . . . 5
 
                           
 
               |
| 165 | 133 | subidd 10380 |
. . . . . . 7
 
         |
| 166 | | 1cnd 10056 |
. . . . . . . . . 10
 
       |
| 167 | 133, 142,
166 | subsubd 10420 |
. . . . . . . . 9
 
      
        |
| 168 | 167 | oveq2d 6666 |
. . . . . . . 8
 
      

           |
| 169 | | ax-1cn 9994 |
. . . . . . . . . 10
 |
| 170 | | subcl 10280 |
. . . . . . . . . 10
 
     |
| 171 | 142, 169,
170 | sylancl 694 |
. . . . . . . . 9
 
         |
| 172 | 133, 171 | nncand 10397 |
. . . . . . . 8
 
      

       |
| 173 | 168, 172 | eqtr3d 2658 |
. . . . . . 7
 
               |
| 174 | 165, 173 | oveq12d 6668 |
. . . . . 6
 
                         |
| 175 | 133 | adantr 481 |
. . . . . . . . 9
              
  |
| 176 | | elfznn0 12433 |
. . . . . . . . . . 11
         |
| 177 | 176 | adantl 482 |
. . . . . . . . . 10
              
  |
| 178 | 177 | nn0cnd 11353 |
. . . . . . . . 9
              
  |
| 179 | 135 | adantr 481 |
. . . . . . . . 9
              
  |
| 180 | 175, 178,
175, 179 | divsubdird 10840 |
. . . . . . . 8
              
 
          |
| 181 | 175, 179 | dividd 10799 |
. . . . . . . . 9
              
    |
| 182 | 181 | oveq1d 6665 |
. . . . . . . 8
              
            |
| 183 | 180, 182 | eqtrd 2656 |
. . . . . . 7
              
 
        |
| 184 | 183 | fveq2d 6195 |
. . . . . 6
              
                  |
| 185 | 174, 184 | sumeq12rdv 14438 |
. . . . 5
 
                                             |
| 186 | 164, 185 | eqtrd 2656 |
. . . 4
 
                         
             |
| 187 | 146 | adantr 481 |
. . . . . 6
                
      |
| 188 | 94, 100, 187 | fsumsub 14520 |
. . . . 5
 
                                                         |
| 189 | | fsumconst 14522 |
. . . . . . . 8
                                                 |
| 190 | 94, 146, 189 | syl2anc 693 |
. . . . . . 7
 
                                       |
| 191 | | 1zzd 11408 |
. . . . . . . . . . . 12
 
       |
| 192 | | fzen 12358 |
. . . . . . . . . . . 12
 

             
      |
| 193 | 191, 137,
155, 192 | syl3anc 1326 |
. . . . . . . . . . 11
 
                       |
| 194 | 25 | nn0cnd 11353 |
. . . . . . . . . . . . 13
 
         |
| 195 | | addcom 10222 |
. . . . . . . . . . . . 13
  
            |
| 196 | 169, 194,
195 | sylancr 695 |
. . . . . . . . . . . 12
 
               |
| 197 | 142, 133 | pncan3d 10395 |
. . . . . . . . . . . 12
 
      
    |
| 198 | 196, 197 | oveq12d 6668 |
. . . . . . . . . . 11
 
                           |
| 199 | 193, 198 | breqtrd 4679 |
. . . . . . . . . 10
 
                   |
| 200 | | hasheni 13136 |
. . . . . . . . . 10
                                   |
| 201 | 199, 200 | syl 17 |
. . . . . . . . 9
 
                           |
| 202 | 201, 11 | eqtr3d 2658 |
. . . . . . . 8
 
                   |
| 203 | 202 | oveq1d 6665 |
. . . . . . 7
 
                               |
| 204 | 190, 203 | eqtrd 2656 |
. . . . . 6
 
                           |
| 205 | 204 | oveq2d 6666 |
. . . . 5
 
                                    
                      |
| 206 | 188, 205 | eqtrd 2656 |
. . . 4
 
                                                 |
| 207 | 153, 186,
206 | 3eqtr3rd 2665 |
. . 3
 
                                             |
| 208 | 207 | fveq2d 6195 |
. 2
 
                                  
                  |
| 209 | 141, 149,
208 | 3eqtr2d 2662 |
1
 
                  
                  |