MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  birthdaylem2 Structured version   Unicode version

Theorem birthdaylem2 22305
Description: For general  N and  K, count the fraction of injective functions from  1 ... K to  1 ... N. (Contributed by Mario Carneiro, 7-May-2015.)
Hypotheses
Ref Expression
birthday.s  |-  S  =  { f  |  f : ( 1 ... K ) --> ( 1 ... N ) }
birthday.t  |-  T  =  { f  |  f : ( 1 ... K ) -1-1-> ( 1 ... N ) }
Assertion
Ref Expression
birthdaylem2  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( # `  T )  /  ( # `
 S ) )  =  ( exp `  sum_ k  e.  ( 0 ... ( K  - 
1 ) ) ( log `  ( 1  -  ( k  /  N ) ) ) ) )
Distinct variable groups:    f, k, K    f, N, k
Allowed substitution hints:    S( f, k)    T( f, k)

Proof of Theorem birthdaylem2
Dummy variable  n is distinct from all other variables.
StepHypRef Expression
1 birthday.t . . . . . . 7  |-  T  =  { f  |  f : ( 1 ... K ) -1-1-> ( 1 ... N ) }
21fveq2i 5691 . . . . . 6  |-  ( # `  T )  =  (
# `  { f  |  f : ( 1 ... K )
-1-1-> ( 1 ... N
) } )
3 fzfi 11790 . . . . . . 7  |-  ( 1 ... K )  e. 
Fin
4 fzfi 11790 . . . . . . 7  |-  ( 1 ... N )  e. 
Fin
5 hashf1 12206 . . . . . . 7  |-  ( ( ( 1 ... K
)  e.  Fin  /\  ( 1 ... N
)  e.  Fin )  ->  ( # `  {
f  |  f : ( 1 ... K
) -1-1-> ( 1 ... N ) } )  =  ( ( ! `
 ( # `  (
1 ... K ) ) )  x.  ( (
# `  ( 1 ... N ) )  _C  ( # `  (
1 ... K ) ) ) ) )
63, 4, 5mp2an 667 . . . . . 6  |-  ( # `  { f  |  f : ( 1 ... K ) -1-1-> ( 1 ... N ) } )  =  ( ( ! `  ( # `  ( 1 ... K
) ) )  x.  ( ( # `  (
1 ... N ) )  _C  ( # `  (
1 ... K ) ) ) )
72, 6eqtri 2461 . . . . 5  |-  ( # `  T )  =  ( ( ! `  ( # `
 ( 1 ... K ) ) )  x.  ( ( # `  ( 1 ... N
) )  _C  ( # `
 ( 1 ... K ) ) ) )
8 elfznn0 11477 . . . . . . . . 9  |-  ( K  e.  ( 0 ... N )  ->  K  e.  NN0 )
98adantl 463 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  K  e.  NN0 )
10 hashfz1 12113 . . . . . . . 8  |-  ( K  e.  NN0  ->  ( # `  ( 1 ... K
) )  =  K )
119, 10syl 16 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( # `  (
1 ... K ) )  =  K )
1211fveq2d 5692 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  ( # `  ( 1 ... K ) ) )  =  ( ! `
 K ) )
13 nnnn0 10582 . . . . . . . . 9  |-  ( N  e.  NN  ->  N  e.  NN0 )
14 hashfz1 12113 . . . . . . . . 9  |-  ( N  e.  NN0  ->  ( # `  ( 1 ... N
) )  =  N )
1513, 14syl 16 . . . . . . . 8  |-  ( N  e.  NN  ->  ( # `
 ( 1 ... N ) )  =  N )
1615adantr 462 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( # `  (
1 ... N ) )  =  N )
1716, 11oveq12d 6108 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( # `  ( 1 ... N
) )  _C  ( # `
 ( 1 ... K ) ) )  =  ( N  _C  K ) )
1812, 17oveq12d 6108 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ! `
 ( # `  (
1 ... K ) ) )  x.  ( (
# `  ( 1 ... N ) )  _C  ( # `  (
1 ... K ) ) ) )  =  ( ( ! `  K
)  x.  ( N  _C  K ) ) )
197, 18syl5eq 2485 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( # `  T
)  =  ( ( ! `  K )  x.  ( N  _C  K ) ) )
2013adantr 462 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  N  e.  NN0 )
21 faccl 12057 . . . . . . . . 9  |-  ( N  e.  NN0  ->  ( ! `
 N )  e.  NN )
2220, 21syl 16 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  N )  e.  NN )
2322nncnd 10334 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  N )  e.  CC )
24 fznn0sub 11483 . . . . . . . . . 10  |-  ( K  e.  ( 0 ... N )  ->  ( N  -  K )  e.  NN0 )
2524adantl 463 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  e.  NN0 )
26 faccl 12057 . . . . . . . . 9  |-  ( ( N  -  K )  e.  NN0  ->  ( ! `
 ( N  -  K ) )  e.  NN )
2725, 26syl 16 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  ( N  -  K
) )  e.  NN )
2827nncnd 10334 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  ( N  -  K
) )  e.  CC )
2927nnne0d 10362 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  ( N  -  K
) )  =/=  0
)
3023, 28, 29divcld 10103 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ! `
 N )  / 
( ! `  ( N  -  K )
) )  e.  CC )
31 faccl 12057 . . . . . . . 8  |-  ( K  e.  NN0  ->  ( ! `
 K )  e.  NN )
329, 31syl 16 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  K )  e.  NN )
3332nncnd 10334 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  K )  e.  CC )
3432nnne0d 10362 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  K )  =/=  0
)
3530, 33, 34divcan2d 10105 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ! `
 K )  x.  ( ( ( ! `
 N )  / 
( ! `  ( N  -  K )
) )  /  ( ! `  K )
) )  =  ( ( ! `  N
)  /  ( ! `
 ( N  -  K ) ) ) )
36 bcval2 12077 . . . . . . . 8  |-  ( K  e.  ( 0 ... N )  ->  ( N  _C  K )  =  ( ( ! `  N )  /  (
( ! `  ( N  -  K )
)  x.  ( ! `
 K ) ) ) )
3736adantl 463 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  _C  K )  =  ( ( ! `  N
)  /  ( ( ! `  ( N  -  K ) )  x.  ( ! `  K ) ) ) )
3823, 28, 33, 29, 34divdiv1d 10134 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ( ! `  N )  /  ( ! `  ( N  -  K
) ) )  / 
( ! `  K
) )  =  ( ( ! `  N
)  /  ( ( ! `  ( N  -  K ) )  x.  ( ! `  K ) ) ) )
3937, 38eqtr4d 2476 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  _C  K )  =  ( ( ( ! `  N )  /  ( ! `  ( N  -  K ) ) )  /  ( ! `  K ) ) )
4039oveq2d 6106 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ! `
 K )  x.  ( N  _C  K
) )  =  ( ( ! `  K
)  x.  ( ( ( ! `  N
)  /  ( ! `
 ( N  -  K ) ) )  /  ( ! `  K ) ) ) )
41 fzfid 11791 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1 ... N )  e.  Fin )
42 elfznn 11474 . . . . . . . . . 10  |-  ( n  e.  ( 1 ... N )  ->  n  e.  NN )
4342adantl 463 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( 1 ... N ) )  ->  n  e.  NN )
44 nnrp 10996 . . . . . . . . . . 11  |-  ( n  e.  NN  ->  n  e.  RR+ )
4544relogcld 22031 . . . . . . . . . 10  |-  ( n  e.  NN  ->  ( log `  n )  e.  RR )
4645recnd 9408 . . . . . . . . 9  |-  ( n  e.  NN  ->  ( log `  n )  e.  CC )
4743, 46syl 16 . . . . . . . 8  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( 1 ... N ) )  ->  ( log `  n )  e.  CC )
4841, 47fsumcl 13206 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( 1 ... N ) ( log `  n
)  e.  CC )
49 fzfid 11791 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1 ... ( N  -  K
) )  e.  Fin )
50 elfznn 11474 . . . . . . . . . 10  |-  ( n  e.  ( 1 ... ( N  -  K
) )  ->  n  e.  NN )
5150adantl 463 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( 1 ... ( N  -  K ) ) )  ->  n  e.  NN )
5251, 46syl 16 . . . . . . . 8  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( 1 ... ( N  -  K ) ) )  ->  ( log `  n )  e.  CC )
5349, 52fsumcl 13206 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( 1 ... ( N  -  K ) ) ( log `  n
)  e.  CC )
54 efsub 13380 . . . . . . 7  |-  ( (
sum_ n  e.  (
1 ... N ) ( log `  n )  e.  CC  /\  sum_ n  e.  ( 1 ... ( N  -  K
) ) ( log `  n )  e.  CC )  ->  ( exp `  ( sum_ n  e.  ( 1 ... N ) ( log `  n )  -  sum_ n  e.  ( 1 ... ( N  -  K ) ) ( log `  n
) ) )  =  ( ( exp `  sum_ n  e.  ( 1 ... N ) ( log `  n ) )  / 
( exp `  sum_ n  e.  ( 1 ... ( N  -  K
) ) ( log `  n ) ) ) )
5548, 53, 54syl2anc 656 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  ( sum_ n  e.  ( 1 ... N ) ( log `  n )  -  sum_ n  e.  ( 1 ... ( N  -  K ) ) ( log `  n
) ) )  =  ( ( exp `  sum_ n  e.  ( 1 ... N ) ( log `  n ) )  / 
( exp `  sum_ n  e.  ( 1 ... ( N  -  K
) ) ( log `  n ) ) ) )
5625nn0red 10633 . . . . . . . . . . . 12  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  e.  RR )
5756ltp1d 10259 . . . . . . . . . . 11  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  <  (
( N  -  K
)  +  1 ) )
58 fzdisj 11472 . . . . . . . . . . 11  |-  ( ( N  -  K )  <  ( ( N  -  K )  +  1 )  ->  (
( 1 ... ( N  -  K )
)  i^i  ( (
( N  -  K
)  +  1 ) ... N ) )  =  (/) )
5957, 58syl 16 . . . . . . . . . 10  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( 1 ... ( N  -  K ) )  i^i  ( ( ( N  -  K )  +  1 ) ... N
) )  =  (/) )
60 fznn0sub2 11484 . . . . . . . . . . . . . . . 16  |-  ( K  e.  ( 0 ... N )  ->  ( N  -  K )  e.  ( 0 ... N
) )
6160adantl 463 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  e.  ( 0 ... N ) )
62 elfzle2 11451 . . . . . . . . . . . . . . 15  |-  ( ( N  -  K )  e.  ( 0 ... N )  ->  ( N  -  K )  <_  N )
6361, 62syl 16 . . . . . . . . . . . . . 14  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  <_  N
)
6463adantr 462 . . . . . . . . . . . . 13  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  ( N  -  K )  <_  N
)
65 simpr 458 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  ( N  -  K )  e.  NN )
66 nnuz 10892 . . . . . . . . . . . . . . 15  |-  NN  =  ( ZZ>= `  1 )
6765, 66syl6eleq 2531 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  ( N  -  K )  e.  (
ZZ>= `  1 ) )
68 nnz 10664 . . . . . . . . . . . . . . 15  |-  ( N  e.  NN  ->  N  e.  ZZ )
6968ad2antrr 720 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  N  e.  ZZ )
70 elfz5 11441 . . . . . . . . . . . . . 14  |-  ( ( ( N  -  K
)  e.  ( ZZ>= ` 
1 )  /\  N  e.  ZZ )  ->  (
( N  -  K
)  e.  ( 1 ... N )  <->  ( N  -  K )  <_  N
) )
7167, 69, 70syl2anc 656 . . . . . . . . . . . . 13  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  ( ( N  -  K )  e.  ( 1 ... N
)  <->  ( N  -  K )  <_  N
) )
7264, 71mpbird 232 . . . . . . . . . . . 12  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  ( N  -  K )  e.  ( 1 ... N ) )
73 fzsplit 11471 . . . . . . . . . . . 12  |-  ( ( N  -  K )  e.  ( 1 ... N )  ->  (
1 ... N )  =  ( ( 1 ... ( N  -  K
) )  u.  (
( ( N  -  K )  +  1 ) ... N ) ) )
7472, 73syl 16 . . . . . . . . . . 11  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  ( 1 ... N )  =  ( ( 1 ... ( N  -  K )
)  u.  ( ( ( N  -  K
)  +  1 ) ... N ) ) )
75 simpr 458 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( N  -  K )  =  0 )
7675oveq2d 6106 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( 1 ... ( N  -  K ) )  =  ( 1 ... 0
) )
77 fz10 11466 . . . . . . . . . . . . . 14  |-  ( 1 ... 0 )  =  (/)
7876, 77syl6eq 2489 . . . . . . . . . . . . 13  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( 1 ... ( N  -  K ) )  =  (/) )
7978uneq1d 3506 . . . . . . . . . . . 12  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( (
1 ... ( N  -  K ) )  u.  ( ( ( N  -  K )  +  1 ) ... N
) )  =  (
(/)  u.  ( (
( N  -  K
)  +  1 ) ... N ) ) )
80 uncom 3497 . . . . . . . . . . . . . 14  |-  ( (/)  u.  ( ( ( N  -  K )  +  1 ) ... N
) )  =  ( ( ( ( N  -  K )  +  1 ) ... N
)  u.  (/) )
81 un0 3659 . . . . . . . . . . . . . 14  |-  ( ( ( ( N  -  K )  +  1 ) ... N )  u.  (/) )  =  ( ( ( N  -  K )  +  1 ) ... N )
8280, 81eqtri 2461 . . . . . . . . . . . . 13  |-  ( (/)  u.  ( ( ( N  -  K )  +  1 ) ... N
) )  =  ( ( ( N  -  K )  +  1 ) ... N )
8375oveq1d 6105 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( ( N  -  K )  +  1 )  =  ( 0  +  1 ) )
84 1e0p1 10779 . . . . . . . . . . . . . . 15  |-  1  =  ( 0  +  1 )
8583, 84syl6eqr 2491 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( ( N  -  K )  +  1 )  =  1 )
8685oveq1d 6105 . . . . . . . . . . . . 13  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( (
( N  -  K
)  +  1 ) ... N )  =  ( 1 ... N
) )
8782, 86syl5eq 2485 . . . . . . . . . . . 12  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( (/)  u.  (
( ( N  -  K )  +  1 ) ... N ) )  =  ( 1 ... N ) )
8879, 87eqtr2d 2474 . . . . . . . . . . 11  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( 1 ... N )  =  ( ( 1 ... ( N  -  K
) )  u.  (
( ( N  -  K )  +  1 ) ... N ) ) )
89 elnn0 10577 . . . . . . . . . . . 12  |-  ( ( N  -  K )  e.  NN0  <->  ( ( N  -  K )  e.  NN  \/  ( N  -  K )  =  0 ) )
9025, 89sylib 196 . . . . . . . . . . 11  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( N  -  K )  e.  NN  \/  ( N  -  K )  =  0 ) )
9174, 88, 90mpjaodan 779 . . . . . . . . . 10  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1 ... N )  =  ( ( 1 ... ( N  -  K )
)  u.  ( ( ( N  -  K
)  +  1 ) ... N ) ) )
9259, 91, 41, 47fsumsplit 13212 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( 1 ... N ) ( log `  n
)  =  ( sum_ n  e.  ( 1 ... ( N  -  K
) ) ( log `  n )  +  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  n ) ) )
9392oveq1d 6105 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( sum_ n  e.  ( 1 ... N
) ( log `  n
)  -  sum_ n  e.  ( 1 ... ( N  -  K )
) ( log `  n
) )  =  ( ( sum_ n  e.  ( 1 ... ( N  -  K ) ) ( log `  n
)  +  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N
) ( log `  n
) )  -  sum_ n  e.  ( 1 ... ( N  -  K
) ) ( log `  n ) ) )
94 fzfid 11791 . . . . . . . . . 10  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ( N  -  K )  +  1 ) ... N )  e.  Fin )
95 nn0p1nn 10615 . . . . . . . . . . . . 13  |-  ( ( N  -  K )  e.  NN0  ->  ( ( N  -  K )  +  1 )  e.  NN )
9625, 95syl 16 . . . . . . . . . . . 12  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( N  -  K )  +  1 )  e.  NN )
97 elfzuz 11445 . . . . . . . . . . . 12  |-  ( n  e.  ( ( ( N  -  K )  +  1 ) ... N )  ->  n  e.  ( ZZ>= `  ( ( N  -  K )  +  1 ) ) )
98 eluznn 10921 . . . . . . . . . . . 12  |-  ( ( ( ( N  -  K )  +  1 )  e.  NN  /\  n  e.  ( ZZ>= `  ( ( N  -  K )  +  1 ) ) )  ->  n  e.  NN )
9996, 97, 98syl2an 474 . . . . . . . . . . 11  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  n  e.  NN )
10099, 46syl 16 . . . . . . . . . 10  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  ( log `  n )  e.  CC )
10194, 100fsumcl 13206 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  n
)  e.  CC )
10253, 101pncan2d 9717 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( sum_ n  e.  ( 1 ... ( N  -  K
) ) ( log `  n )  +  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  n ) )  -  sum_ n  e.  ( 1 ... ( N  -  K ) ) ( log `  n ) )  =  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N
) ( log `  n
) )
10393, 102eqtr2d 2474 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  n
)  =  ( sum_ n  e.  ( 1 ... N ) ( log `  n )  -  sum_ n  e.  ( 1 ... ( N  -  K
) ) ( log `  n ) ) )
104103fveq2d 5692 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  n ) )  =  ( exp `  ( sum_ n  e.  ( 1 ... N ) ( log `  n )  -  sum_ n  e.  ( 1 ... ( N  -  K ) ) ( log `  n
) ) ) )
10522nnne0d 10362 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  N )  =/=  0
)
106 eflog 21987 . . . . . . . . 9  |-  ( ( ( ! `  N
)  e.  CC  /\  ( ! `  N )  =/=  0 )  -> 
( exp `  ( log `  ( ! `  N ) ) )  =  ( ! `  N ) )
10723, 105, 106syl2anc 656 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  ( log `  ( ! `  N ) ) )  =  ( ! `  N ) )
108 logfac 22008 . . . . . . . . . 10  |-  ( N  e.  NN0  ->  ( log `  ( ! `  N
) )  =  sum_ n  e.  ( 1 ... N ) ( log `  n ) )
10920, 108syl 16 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( log `  ( ! `  N )
)  =  sum_ n  e.  ( 1 ... N
) ( log `  n
) )
110109fveq2d 5692 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  ( log `  ( ! `  N ) ) )  =  ( exp `  sum_ n  e.  ( 1 ... N ) ( log `  n ) ) )
111107, 110eqtr3d 2475 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  N )  =  ( exp `  sum_ n  e.  ( 1 ... N
) ( log `  n
) ) )
112 eflog 21987 . . . . . . . . 9  |-  ( ( ( ! `  ( N  -  K )
)  e.  CC  /\  ( ! `  ( N  -  K ) )  =/=  0 )  -> 
( exp `  ( log `  ( ! `  ( N  -  K
) ) ) )  =  ( ! `  ( N  -  K
) ) )
11328, 29, 112syl2anc 656 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  ( log `  ( ! `  ( N  -  K
) ) ) )  =  ( ! `  ( N  -  K
) ) )
114 logfac 22008 . . . . . . . . . 10  |-  ( ( N  -  K )  e.  NN0  ->  ( log `  ( ! `  ( N  -  K )
) )  =  sum_ n  e.  ( 1 ... ( N  -  K
) ) ( log `  n ) )
11525, 114syl 16 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( log `  ( ! `  ( N  -  K ) ) )  =  sum_ n  e.  ( 1 ... ( N  -  K ) ) ( log `  n
) )
116115fveq2d 5692 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  ( log `  ( ! `  ( N  -  K
) ) ) )  =  ( exp `  sum_ n  e.  ( 1 ... ( N  -  K
) ) ( log `  n ) ) )
117113, 116eqtr3d 2475 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  ( N  -  K
) )  =  ( exp `  sum_ n  e.  ( 1 ... ( N  -  K )
) ( log `  n
) ) )
118111, 117oveq12d 6108 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ! `
 N )  / 
( ! `  ( N  -  K )
) )  =  ( ( exp `  sum_ n  e.  ( 1 ... N ) ( log `  n ) )  / 
( exp `  sum_ n  e.  ( 1 ... ( N  -  K
) ) ( log `  n ) ) ) )
11955, 104, 1183eqtr4d 2483 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  n ) )  =  ( ( ! `  N )  /  ( ! `  ( N  -  K ) ) ) )
12035, 40, 1193eqtr4d 2483 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ! `
 K )  x.  ( N  _C  K
) )  =  ( exp `  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N
) ( log `  n
) ) )
12119, 120eqtrd 2473 . . 3  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( # `  T
)  =  ( exp `  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  n
) ) )
122 birthday.s . . . . . . . 8  |-  S  =  { f  |  f : ( 1 ... K ) --> ( 1 ... N ) }
123 mapvalg 7220 . . . . . . . . 9  |-  ( ( ( 1 ... N
)  e.  Fin  /\  ( 1 ... K
)  e.  Fin )  ->  ( ( 1 ... N )  ^m  (
1 ... K ) )  =  { f  |  f : ( 1 ... K ) --> ( 1 ... N ) } )
1244, 3, 123mp2an 667 . . . . . . . 8  |-  ( ( 1 ... N )  ^m  ( 1 ... K ) )  =  { f  |  f : ( 1 ... K ) --> ( 1 ... N ) }
125122, 124eqtr4i 2464 . . . . . . 7  |-  S  =  ( ( 1 ... N )  ^m  (
1 ... K ) )
126125fveq2i 5691 . . . . . 6  |-  ( # `  S )  =  (
# `  ( (
1 ... N )  ^m  ( 1 ... K
) ) )
127 hashmap 12193 . . . . . . 7  |-  ( ( ( 1 ... N
)  e.  Fin  /\  ( 1 ... K
)  e.  Fin )  ->  ( # `  (
( 1 ... N
)  ^m  ( 1 ... K ) ) )  =  ( (
# `  ( 1 ... N ) ) ^
( # `  ( 1 ... K ) ) ) )
1284, 3, 127mp2an 667 . . . . . 6  |-  ( # `  ( ( 1 ... N )  ^m  (
1 ... K ) ) )  =  ( (
# `  ( 1 ... N ) ) ^
( # `  ( 1 ... K ) ) )
129126, 128eqtri 2461 . . . . 5  |-  ( # `  S )  =  ( ( # `  (
1 ... N ) ) ^ ( # `  (
1 ... K ) ) )
13016, 11oveq12d 6108 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( # `  ( 1 ... N
) ) ^ ( # `
 ( 1 ... K ) ) )  =  ( N ^ K ) )
131129, 130syl5eq 2485 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( # `  S
)  =  ( N ^ K ) )
132 nncn 10326 . . . . . 6  |-  ( N  e.  NN  ->  N  e.  CC )
133132adantr 462 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  N  e.  CC )
134 nnne0 10350 . . . . . 6  |-  ( N  e.  NN  ->  N  =/=  0 )
135134adantr 462 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  N  =/=  0
)
136 elfzelz 11449 . . . . . 6  |-  ( K  e.  ( 0 ... N )  ->  K  e.  ZZ )
137136adantl 463 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  K  e.  ZZ )
138 explog 22001 . . . . 5  |-  ( ( N  e.  CC  /\  N  =/=  0  /\  K  e.  ZZ )  ->  ( N ^ K )  =  ( exp `  ( K  x.  ( log `  N ) ) ) )
139133, 135, 137, 138syl3anc 1213 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N ^ K )  =  ( exp `  ( K  x.  ( log `  N
) ) ) )
140131, 139eqtrd 2473 . . 3  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( # `  S
)  =  ( exp `  ( K  x.  ( log `  N ) ) ) )
141121, 140oveq12d 6108 . 2  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( # `  T )  /  ( # `
 S ) )  =  ( ( exp `  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  n
) )  /  ( exp `  ( K  x.  ( log `  N ) ) ) ) )
1429nn0cnd 10634 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  K  e.  CC )
143 nnrp 10996 . . . . . . 7  |-  ( N  e.  NN  ->  N  e.  RR+ )
144143adantr 462 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  N  e.  RR+ )
145144relogcld 22031 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( log `  N
)  e.  RR )
146145recnd 9408 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( log `  N
)  e.  CC )
147142, 146mulcld 9402 . . 3  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( K  x.  ( log `  N ) )  e.  CC )
148 efsub 13380 . . 3  |-  ( (
sum_ n  e.  (
( ( N  -  K )  +  1 ) ... N ) ( log `  n
)  e.  CC  /\  ( K  x.  ( log `  N ) )  e.  CC )  -> 
( exp `  ( sum_ n  e.  ( ( ( N  -  K
)  +  1 ) ... N ) ( log `  n )  -  ( K  x.  ( log `  N ) ) ) )  =  ( ( exp `  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  n ) )  / 
( exp `  ( K  x.  ( log `  N ) ) ) ) )
149101, 147, 148syl2anc 656 . 2  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  ( sum_ n  e.  ( ( ( N  -  K
)  +  1 ) ... N ) ( log `  n )  -  ( K  x.  ( log `  N ) ) ) )  =  ( ( exp `  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  n ) )  / 
( exp `  ( K  x.  ( log `  N ) ) ) ) )
150 relogdiv 22000 . . . . . . 7  |-  ( ( n  e.  RR+  /\  N  e.  RR+ )  ->  ( log `  ( n  /  N ) )  =  ( ( log `  n
)  -  ( log `  N ) ) )
15144, 144, 150syl2anr 475 . . . . . 6  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  NN )  ->  ( log `  (
n  /  N ) )  =  ( ( log `  n )  -  ( log `  N
) ) )
15299, 151syldan 467 . . . . 5  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  ( log `  ( n  /  N
) )  =  ( ( log `  n
)  -  ( log `  N ) ) )
153152sumeq2dv 13176 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  (
n  /  N ) )  =  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N
) ( ( log `  n )  -  ( log `  N ) ) )
15468adantr 462 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  N  e.  ZZ )
15525nn0zd 10741 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  e.  ZZ )
156155peano2zd 10746 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( N  -  K )  +  1 )  e.  ZZ )
15799, 44syl 16 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  n  e.  RR+ )
158144adantr 462 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  N  e.  RR+ )
159157, 158rpdivcld 11040 . . . . . . . 8  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  ( n  /  N )  e.  RR+ )
160159relogcld 22031 . . . . . . 7  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  ( log `  ( n  /  N
) )  e.  RR )
161160recnd 9408 . . . . . 6  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  ( log `  ( n  /  N
) )  e.  CC )
162 oveq1 6097 . . . . . . 7  |-  ( n  =  ( N  -  k )  ->  (
n  /  N )  =  ( ( N  -  k )  /  N ) )
163162fveq2d 5692 . . . . . 6  |-  ( n  =  ( N  -  k )  ->  ( log `  ( n  /  N ) )  =  ( log `  (
( N  -  k
)  /  N ) ) )
164154, 156, 154, 161, 163fsumrev 13242 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  (
n  /  N ) )  =  sum_ k  e.  ( ( N  -  N ) ... ( N  -  ( ( N  -  K )  +  1 ) ) ) ( log `  (
( N  -  k
)  /  N ) ) )
165133subidd 9703 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  N )  =  0 )
166 1cnd 9398 . . . . . . . . . 10  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  1  e.  CC )
167133, 142, 166subsubd 9743 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  ( K  -  1
) )  =  ( ( N  -  K
)  +  1 ) )
168167oveq2d 6106 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  ( N  -  ( K  -  1 ) ) )  =  ( N  -  ( ( N  -  K )  +  1 ) ) )
169 ax-1cn 9336 . . . . . . . . . 10  |-  1  e.  CC
170 subcl 9605 . . . . . . . . . 10  |-  ( ( K  e.  CC  /\  1  e.  CC )  ->  ( K  -  1 )  e.  CC )
171142, 169, 170sylancl 657 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( K  - 
1 )  e.  CC )
172133, 171nncand 9720 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  ( N  -  ( K  -  1 ) ) )  =  ( K  -  1 ) )
173168, 172eqtr3d 2475 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  ( ( N  -  K )  +  1 ) )  =  ( K  -  1 ) )
174165, 173oveq12d 6108 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( N  -  N ) ... ( N  -  (
( N  -  K
)  +  1 ) ) )  =  ( 0 ... ( K  -  1 ) ) )
175133adantr 462 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  N  e.  CC )
176 elfznn0 11477 . . . . . . . . . . 11  |-  ( k  e.  ( 0 ... ( K  -  1 ) )  ->  k  e.  NN0 )
177176adantl 463 . . . . . . . . . 10  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  k  e.  NN0 )
178177nn0cnd 10634 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  k  e.  CC )
179135adantr 462 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  N  =/=  0 )
180175, 178, 175, 179divsubdird 10142 . . . . . . . 8  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  ( ( N  -  k )  /  N )  =  ( ( N  /  N
)  -  ( k  /  N ) ) )
181175, 179dividd 10101 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  ( N  /  N )  =  1 )
182181oveq1d 6105 . . . . . . . 8  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  ( ( N  /  N )  -  ( k  /  N
) )  =  ( 1  -  ( k  /  N ) ) )
183180, 182eqtrd 2473 . . . . . . 7  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  ( ( N  -  k )  /  N )  =  ( 1  -  ( k  /  N ) ) )
184183fveq2d 5692 . . . . . 6  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  ( log `  ( ( N  -  k )  /  N
) )  =  ( log `  ( 1  -  ( k  /  N ) ) ) )
185174, 184sumeq12rdv 13180 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ k  e.  ( ( N  -  N
) ... ( N  -  ( ( N  -  K )  +  1 ) ) ) ( log `  ( ( N  -  k )  /  N ) )  =  sum_ k  e.  ( 0 ... ( K  -  1 ) ) ( log `  (
1  -  ( k  /  N ) ) ) )
186164, 185eqtrd 2473 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  (
n  /  N ) )  =  sum_ k  e.  ( 0 ... ( K  -  1 ) ) ( log `  (
1  -  ( k  /  N ) ) ) )
187146adantr 462 . . . . . 6  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  ( log `  N )  e.  CC )
18894, 100, 187fsumsub 13251 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( ( log `  n
)  -  ( log `  N ) )  =  ( sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  n
)  -  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N
) ( log `  N
) ) )
189 fsumconst 13253 . . . . . . . 8  |-  ( ( ( ( ( N  -  K )  +  1 ) ... N
)  e.  Fin  /\  ( log `  N )  e.  CC )  ->  sum_ n  e.  ( ( ( N  -  K
)  +  1 ) ... N ) ( log `  N )  =  ( ( # `  ( ( ( N  -  K )  +  1 ) ... N
) )  x.  ( log `  N ) ) )
19094, 146, 189syl2anc 656 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  N
)  =  ( (
# `  ( (
( N  -  K
)  +  1 ) ... N ) )  x.  ( log `  N
) ) )
191 1zzd 10673 . . . . . . . . . . . 12  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  1  e.  ZZ )
192 fzen 11463 . . . . . . . . . . . 12  |-  ( ( 1  e.  ZZ  /\  K  e.  ZZ  /\  ( N  -  K )  e.  ZZ )  ->  (
1 ... K )  ~~  ( ( 1  +  ( N  -  K
) ) ... ( K  +  ( N  -  K ) ) ) )
193191, 137, 155, 192syl3anc 1213 . . . . . . . . . . 11  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1 ... K )  ~~  (
( 1  +  ( N  -  K ) ) ... ( K  +  ( N  -  K ) ) ) )
19425nn0cnd 10634 . . . . . . . . . . . . 13  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  e.  CC )
195 addcom 9551 . . . . . . . . . . . . 13  |-  ( ( 1  e.  CC  /\  ( N  -  K
)  e.  CC )  ->  ( 1  +  ( N  -  K
) )  =  ( ( N  -  K
)  +  1 ) )
196169, 194, 195sylancr 658 . . . . . . . . . . . 12  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1  +  ( N  -  K
) )  =  ( ( N  -  K
)  +  1 ) )
197142, 133pncan3d 9718 . . . . . . . . . . . 12  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( K  +  ( N  -  K
) )  =  N )
198196, 197oveq12d 6108 . . . . . . . . . . 11  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( 1  +  ( N  -  K ) ) ... ( K  +  ( N  -  K ) ) )  =  ( ( ( N  -  K )  +  1 ) ... N ) )
199193, 198breqtrd 4313 . . . . . . . . . 10  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1 ... K )  ~~  (
( ( N  -  K )  +  1 ) ... N ) )
200 hasheni 12115 . . . . . . . . . 10  |-  ( ( 1 ... K ) 
~~  ( ( ( N  -  K )  +  1 ) ... N )  ->  ( # `
 ( 1 ... K ) )  =  ( # `  (
( ( N  -  K )  +  1 ) ... N ) ) )
201199, 200syl 16 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( # `  (
1 ... K ) )  =  ( # `  (
( ( N  -  K )  +  1 ) ... N ) ) )
202201, 11eqtr3d 2475 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( # `  (
( ( N  -  K )  +  1 ) ... N ) )  =  K )
203202oveq1d 6105 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( # `  ( ( ( N  -  K )  +  1 ) ... N
) )  x.  ( log `  N ) )  =  ( K  x.  ( log `  N ) ) )
204190, 203eqtrd 2473 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  N
)  =  ( K  x.  ( log `  N
) ) )
205204oveq2d 6106 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N
) ( log `  n
)  -  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N
) ( log `  N
) )  =  (
sum_ n  e.  (
( ( N  -  K )  +  1 ) ... N ) ( log `  n
)  -  ( K  x.  ( log `  N
) ) ) )
206188, 205eqtrd 2473 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( ( log `  n
)  -  ( log `  N ) )  =  ( sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  n
)  -  ( K  x.  ( log `  N
) ) ) )
207153, 186, 2063eqtr3rd 2482 . . 3  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N
) ( log `  n
)  -  ( K  x.  ( log `  N
) ) )  = 
sum_ k  e.  ( 0 ... ( K  -  1 ) ) ( log `  (
1  -  ( k  /  N ) ) ) )
208207fveq2d 5692 . 2  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  ( sum_ n  e.  ( ( ( N  -  K
)  +  1 ) ... N ) ( log `  n )  -  ( K  x.  ( log `  N ) ) ) )  =  ( exp `  sum_ k  e.  ( 0 ... ( K  - 
1 ) ) ( log `  ( 1  -  ( k  /  N ) ) ) ) )
209141, 149, 2083eqtr2d 2479 1  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( # `  T )  /  ( # `
 S ) )  =  ( exp `  sum_ k  e.  ( 0 ... ( K  - 
1 ) ) ( log `  ( 1  -  ( k  /  N ) ) ) ) )
Colors of variables: wff setvar class
Syntax hints:    -> wi 4    <-> wb 184    \/ wo 368    /\ wa 369    = wceq 1364    e. wcel 1761   {cab 2427    =/= wne 2604    u. cun 3323    i^i cin 3324   (/)c0 3634   class class class wbr 4289   -->wf 5411   -1-1->wf1 5412   ` cfv 5415  (class class class)co 6090    ^m cmap 7210    ~~ cen 7303   Fincfn 7306   CCcc 9276   0cc0 9278   1c1 9279    + caddc 9281    x. cmul 9283    < clt 9414    <_ cle 9415    - cmin 9591    / cdiv 9989   NNcn 10318   NN0cn0 10575   ZZcz 10642   ZZ>=cuz 10857   RR+crp 10987   ...cfz 11433   ^cexp 11861   !cfa 12047    _C cbc 12074   #chash 12099   sum_csu 13159   expce 13343   logclog 21965
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1596  ax-4 1607  ax-5 1675  ax-6 1713  ax-7 1733  ax-8 1763  ax-9 1765  ax-10 1780  ax-11 1785  ax-12 1797  ax-13 1948  ax-ext 2422  ax-rep 4400  ax-sep 4410  ax-nul 4418  ax-pow 4467  ax-pr 4528  ax-un 6371  ax-inf2 7843  ax-cnex 9334  ax-resscn 9335  ax-1cn 9336  ax-icn 9337  ax-addcl 9338  ax-addrcl 9339  ax-mulcl 9340  ax-mulrcl 9341  ax-mulcom 9342  ax-addass 9343  ax-mulass 9344  ax-distr 9345  ax-i2m1 9346  ax-1ne0 9347  ax-1rid 9348  ax-rnegex 9349  ax-rrecex 9350  ax-cnre 9351  ax-pre-lttri 9352  ax-pre-lttrn 9353  ax-pre-ltadd 9354  ax-pre-mulgt0 9355  ax-pre-sup 9356  ax-addf 9357  ax-mulf 9358
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3or 961  df-3an 962  df-tru 1367  df-fal 1370  df-ex 1592  df-nf 1595  df-sb 1706  df-eu 2261  df-mo 2262  df-clab 2428  df-cleq 2434  df-clel 2437  df-nfc 2566  df-ne 2606  df-nel 2607  df-ral 2718  df-rex 2719  df-reu 2720  df-rmo 2721  df-rab 2722  df-v 2972  df-sbc 3184  df-csb 3286  df-dif 3328  df-un 3330  df-in 3332  df-ss 3339  df-pss 3341  df-nul 3635  df-if 3789  df-pw 3859  df-sn 3875  df-pr 3877  df-tp 3879  df-op 3881  df-uni 4089  df-int 4126  df-iun 4170  df-iin 4171  df-br 4290  df-opab 4348  df-mpt 4349  df-tr 4383  df-eprel 4628  df-id 4632  df-po 4637  df-so 4638  df-fr 4675  df-se 4676  df-we 4677  df-ord 4718  df-on 4719  df-lim 4720  df-suc 4721  df-xp 4842  df-rel 4843  df-cnv 4844  df-co 4845  df-dm 4846  df-rn 4847  df-res 4848  df-ima 4849  df-iota 5378  df-fun 5417  df-fn 5418  df-f 5419  df-f1 5420  df-fo 5421  df-f1o 5422  df-fv 5423  df-isom 5424  df-riota 6049  df-ov 6093  df-oprab 6094  df-mpt2 6095  df-of 6319  df-om 6476  df-1st 6576  df-2nd 6577  df-supp 6690  df-recs 6828  df-rdg 6862  df-1o 6916  df-2o 6917  df-oadd 6920  df-er 7097  df-map 7212  df-pm 7213  df-ixp 7260  df-en 7307  df-dom 7308  df-sdom 7309  df-fin 7310  df-fsupp 7617  df-fi 7657  df-sup 7687  df-oi 7720  df-card 8105  df-cda 8333  df-pnf 9416  df-mnf 9417  df-xr 9418  df-ltxr 9419  df-le 9420  df-sub 9593  df-neg 9594  df-div 9990  df-nn 10319  df-2 10376  df-3 10377  df-4 10378  df-5 10379  df-6 10380  df-7 10381  df-8 10382  df-9 10383  df-10 10384  df-n0 10576  df-z 10643  df-dec 10752  df-uz 10858  df-q 10950  df-rp 10988  df-xneg 11085  df-xadd 11086  df-xmul 11087  df-ioo 11300  df-ioc 11301  df-ico 11302  df-icc 11303  df-fz 11434  df-fzo 11545  df-fl 11638  df-mod 11705  df-seq 11803  df-exp 11862  df-fac 12048  df-bc 12075  df-hash 12100  df-shft 12552  df-cj 12584  df-re 12585  df-im 12586  df-sqr 12720  df-abs 12721  df-limsup 12945  df-clim 12962  df-rlim 12963  df-sum 13160  df-ef 13349  df-sin 13351  df-cos 13352  df-pi 13354  df-struct 14172  df-ndx 14173  df-slot 14174  df-base 14175  df-sets 14176  df-ress 14177  df-plusg 14247  df-mulr 14248  df-starv 14249  df-sca 14250  df-vsca 14251  df-ip 14252  df-tset 14253  df-ple 14254  df-ds 14256  df-unif 14257  df-hom 14258  df-cco 14259  df-rest 14357  df-topn 14358  df-0g 14376  df-gsum 14377  df-topgen 14378  df-pt 14379  df-prds 14382  df-xrs 14436  df-qtop 14441  df-imas 14442  df-xps 14444  df-mre 14520  df-mrc 14521  df-acs 14523  df-mnd 15411  df-submnd 15461  df-mulg 15541  df-cntz 15828  df-cmn 16272  df-psmet 17768  df-xmet 17769  df-met 17770  df-bl 17771  df-mopn 17772  df-fbas 17773  df-fg 17774  df-cnfld 17778  df-top 18462  df-bases 18464  df-topon 18465  df-topsp 18466  df-cld 18582  df-ntr 18583  df-cls 18584  df-nei 18661  df-lp 18699  df-perf 18700  df-cn 18790  df-cnp 18791  df-haus 18878  df-tx 19094  df-hmeo 19287  df-fil 19378  df-fm 19470  df-flim 19471  df-flf 19472  df-xms 19854  df-ms 19855  df-tms 19856  df-cncf 20413  df-limc 21300  df-dv 21301  df-log 21967
This theorem is referenced by:  birthdaylem3  22306
  Copyright terms: Public domain W3C validator