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

Theorem birthdaylem2 20659
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 5672 . . . . . 6  |-  ( # `  T )  =  (
# `  { f  |  f : ( 1 ... K )
-1-1-> ( 1 ... N
) } )
3 fzfi 11239 . . . . . . 7  |-  ( 1 ... K )  e. 
Fin
4 fzfi 11239 . . . . . . 7  |-  ( 1 ... N )  e. 
Fin
5 hashf1 11634 . . . . . . 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 654 . . . . . 6  |-  ( # `  { f  |  f : ( 1 ... K ) -1-1-> ( 1 ... N ) } )  =  ( ( ! `  ( # `  ( 1 ... K
) ) )  x.  ( ( # `  (
1 ... N ) )  _C  ( # `  (
1 ... K ) ) ) )
72, 6eqtri 2408 . . . . 5  |-  ( # `  T )  =  ( ( ! `  ( # `
 ( 1 ... K ) ) )  x.  ( ( # `  ( 1 ... N
) )  _C  ( # `
 ( 1 ... K ) ) ) )
8 elfznn0 11016 . . . . . . . . 9  |-  ( K  e.  ( 0 ... N )  ->  K  e.  NN0 )
98adantl 453 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  K  e.  NN0 )
10 hashfz1 11558 . . . . . . . 8  |-  ( K  e.  NN0  ->  ( # `  ( 1 ... K
) )  =  K )
119, 10syl 16 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( # `  (
1 ... K ) )  =  K )
1211fveq2d 5673 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  ( # `  ( 1 ... K ) ) )  =  ( ! `
 K ) )
13 nnnn0 10161 . . . . . . . . 9  |-  ( N  e.  NN  ->  N  e.  NN0 )
14 hashfz1 11558 . . . . . . . . 9  |-  ( N  e.  NN0  ->  ( # `  ( 1 ... N
) )  =  N )
1513, 14syl 16 . . . . . . . 8  |-  ( N  e.  NN  ->  ( # `
 ( 1 ... N ) )  =  N )
1615adantr 452 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( # `  (
1 ... N ) )  =  N )
1716, 11oveq12d 6039 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( # `  ( 1 ... N
) )  _C  ( # `
 ( 1 ... K ) ) )  =  ( N  _C  K ) )
1812, 17oveq12d 6039 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ! `
 ( # `  (
1 ... K ) ) )  x.  ( (
# `  ( 1 ... N ) )  _C  ( # `  (
1 ... K ) ) ) )  =  ( ( ! `  K
)  x.  ( N  _C  K ) ) )
197, 18syl5eq 2432 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( # `  T
)  =  ( ( ! `  K )  x.  ( N  _C  K ) ) )
2013adantr 452 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  N  e.  NN0 )
21 faccl 11504 . . . . . . . . 9  |-  ( N  e.  NN0  ->  ( ! `
 N )  e.  NN )
2220, 21syl 16 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  N )  e.  NN )
2322nncnd 9949 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  N )  e.  CC )
24 fznn0sub 11018 . . . . . . . . . 10  |-  ( K  e.  ( 0 ... N )  ->  ( N  -  K )  e.  NN0 )
2524adantl 453 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  e.  NN0 )
26 faccl 11504 . . . . . . . . 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 9949 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  ( N  -  K
) )  e.  CC )
2927nnne0d 9977 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  ( N  -  K
) )  =/=  0
)
3023, 28, 29divcld 9723 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ! `
 N )  / 
( ! `  ( N  -  K )
) )  e.  CC )
31 faccl 11504 . . . . . . . 8  |-  ( K  e.  NN0  ->  ( ! `
 K )  e.  NN )
329, 31syl 16 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  K )  e.  NN )
3332nncnd 9949 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  K )  e.  CC )
3432nnne0d 9977 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  K )  =/=  0
)
3530, 33, 34divcan2d 9725 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ! `
 K )  x.  ( ( ( ! `
 N )  / 
( ! `  ( N  -  K )
) )  /  ( ! `  K )
) )  =  ( ( ! `  N
)  /  ( ! `
 ( N  -  K ) ) ) )
36 bcval2 11524 . . . . . . . 8  |-  ( K  e.  ( 0 ... N )  ->  ( N  _C  K )  =  ( ( ! `  N )  /  (
( ! `  ( N  -  K )
)  x.  ( ! `
 K ) ) ) )
3736adantl 453 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  _C  K )  =  ( ( ! `  N
)  /  ( ( ! `  ( N  -  K ) )  x.  ( ! `  K ) ) ) )
3823, 28, 33, 29, 34divdiv1d 9754 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ( ! `  N )  /  ( ! `  ( N  -  K
) ) )  / 
( ! `  K
) )  =  ( ( ! `  N
)  /  ( ( ! `  ( N  -  K ) )  x.  ( ! `  K ) ) ) )
3937, 38eqtr4d 2423 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  _C  K )  =  ( ( ( ! `  N )  /  ( ! `  ( N  -  K ) ) )  /  ( ! `  K ) ) )
4039oveq2d 6037 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ! `
 K )  x.  ( N  _C  K
) )  =  ( ( ! `  K
)  x.  ( ( ( ! `  N
)  /  ( ! `
 ( N  -  K ) ) )  /  ( ! `  K ) ) ) )
41 fzfid 11240 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1 ... N )  e.  Fin )
42 elfznn 11013 . . . . . . . . . 10  |-  ( n  e.  ( 1 ... N )  ->  n  e.  NN )
4342adantl 453 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( 1 ... N ) )  ->  n  e.  NN )
44 nnrp 10554 . . . . . . . . . . 11  |-  ( n  e.  NN  ->  n  e.  RR+ )
4544relogcld 20386 . . . . . . . . . 10  |-  ( n  e.  NN  ->  ( log `  n )  e.  RR )
4645recnd 9048 . . . . . . . . 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 12455 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( 1 ... N ) ( log `  n
)  e.  CC )
49 fzfid 11240 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1 ... ( N  -  K
) )  e.  Fin )
50 elfznn 11013 . . . . . . . . . 10  |-  ( n  e.  ( 1 ... ( N  -  K
) )  ->  n  e.  NN )
5150adantl 453 . . . . . . . . 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 12455 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( 1 ... ( N  -  K ) ) ( log `  n
)  e.  CC )
54 efsub 12629 . . . . . . 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 643 . . . . . 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 10208 . . . . . . . . . . . 12  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  e.  RR )
5756ltp1d 9874 . . . . . . . . . . 11  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  <  (
( N  -  K
)  +  1 ) )
58 fzdisj 11011 . . . . . . . . . . 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 11019 . . . . . . . . . . . . . . . 16  |-  ( K  e.  ( 0 ... N )  ->  ( N  -  K )  e.  ( 0 ... N
) )
6160adantl 453 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  e.  ( 0 ... N ) )
62 elfzle2 10994 . . . . . . . . . . . . . . 15  |-  ( ( N  -  K )  e.  ( 0 ... N )  ->  ( N  -  K )  <_  N )
6361, 62syl 16 . . . . . . . . . . . . . 14  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  <_  N
)
6463adantr 452 . . . . . . . . . . . . 13  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  ( N  -  K )  <_  N
)
65 simpr 448 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  ( N  -  K )  e.  NN )
66 nnuz 10454 . . . . . . . . . . . . . . 15  |-  NN  =  ( ZZ>= `  1 )
6765, 66syl6eleq 2478 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  ( N  -  K )  e.  (
ZZ>= `  1 ) )
68 nnz 10236 . . . . . . . . . . . . . . 15  |-  ( N  e.  NN  ->  N  e.  ZZ )
6968ad2antrr 707 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  N  e.  ZZ )
70 elfz5 10984 . . . . . . . . . . . . . 14  |-  ( ( ( N  -  K
)  e.  ( ZZ>= ` 
1 )  /\  N  e.  ZZ )  ->  (
( N  -  K
)  e.  ( 1 ... N )  <->  ( N  -  K )  <_  N
) )
7167, 69, 70syl2anc 643 . . . . . . . . . . . . 13  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  ( ( N  -  K )  e.  ( 1 ... N
)  <->  ( N  -  K )  <_  N
) )
7264, 71mpbird 224 . . . . . . . . . . . 12  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  ( N  -  K )  e.  ( 1 ... N ) )
73 fzsplit 11010 . . . . . . . . . . . 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 448 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( N  -  K )  =  0 )
7675oveq2d 6037 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( 1 ... ( N  -  K ) )  =  ( 1 ... 0
) )
77 fz10 11008 . . . . . . . . . . . . . 14  |-  ( 1 ... 0 )  =  (/)
7876, 77syl6eq 2436 . . . . . . . . . . . . 13  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( 1 ... ( N  -  K ) )  =  (/) )
7978uneq1d 3444 . . . . . . . . . . . 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 3435 . . . . . . . . . . . . . 14  |-  ( (/)  u.  ( ( ( N  -  K )  +  1 ) ... N
) )  =  ( ( ( ( N  -  K )  +  1 ) ... N
)  u.  (/) )
81 un0 3596 . . . . . . . . . . . . . 14  |-  ( ( ( ( N  -  K )  +  1 ) ... N )  u.  (/) )  =  ( ( ( N  -  K )  +  1 ) ... N )
8280, 81eqtri 2408 . . . . . . . . . . . . 13  |-  ( (/)  u.  ( ( ( N  -  K )  +  1 ) ... N
) )  =  ( ( ( N  -  K )  +  1 ) ... N )
8375oveq1d 6036 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( ( N  -  K )  +  1 )  =  ( 0  +  1 ) )
84 1e0p1 10343 . . . . . . . . . . . . . . 15  |-  1  =  ( 0  +  1 )
8583, 84syl6eqr 2438 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( ( N  -  K )  +  1 )  =  1 )
8685oveq1d 6036 . . . . . . . . . . . . 13  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( (
( N  -  K
)  +  1 ) ... N )  =  ( 1 ... N
) )
8782, 86syl5eq 2432 . . . . . . . . . . . 12  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( (/)  u.  (
( ( N  -  K )  +  1 ) ... N ) )  =  ( 1 ... N ) )
8879, 87eqtr2d 2421 . . . . . . . . . . 11  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( 1 ... N )  =  ( ( 1 ... ( N  -  K
) )  u.  (
( ( N  -  K )  +  1 ) ... N ) ) )
89 elnn0 10156 . . . . . . . . . . . 12  |-  ( ( N  -  K )  e.  NN0  <->  ( ( N  -  K )  e.  NN  \/  ( N  -  K )  =  0 ) )
9025, 89sylib 189 . . . . . . . . . . 11  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( N  -  K )  e.  NN  \/  ( N  -  K )  =  0 ) )
9174, 88, 90mpjaodan 762 . . . . . . . . . 10  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1 ... N )  =  ( ( 1 ... ( N  -  K )
)  u.  ( ( ( N  -  K
)  +  1 ) ... N ) ) )
9259, 91, 41, 47fsumsplit 12461 . . . . . . . . 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 6036 . . . . . . . 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 11240 . . . . . . . . . 10  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ( N  -  K )  +  1 ) ... N )  e.  Fin )
95 nn0p1nn 10192 . . . . . . . . . . . . 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 10988 . . . . . . . . . . . 12  |-  ( n  e.  ( ( ( N  -  K )  +  1 ) ... N )  ->  n  e.  ( ZZ>= `  ( ( N  -  K )  +  1 ) ) )
9866uztrn2 10436 . . . . . . . . . . . 12  |-  ( ( ( ( N  -  K )  +  1 )  e.  NN  /\  n  e.  ( ZZ>= `  ( ( N  -  K )  +  1 ) ) )  ->  n  e.  NN )
9996, 97, 98syl2an 464 . . . . . . . . . . 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 12455 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  n
)  e.  CC )
10253, 101pncan2d 9346 . . . . . . . 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 2421 . . . . . . 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 5673 . . . . . 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 9977 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  N )  =/=  0
)
106 eflog 20342 . . . . . . . . 9  |-  ( ( ( ! `  N
)  e.  CC  /\  ( ! `  N )  =/=  0 )  -> 
( exp `  ( log `  ( ! `  N ) ) )  =  ( ! `  N ) )
10723, 105, 106syl2anc 643 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  ( log `  ( ! `  N ) ) )  =  ( ! `  N ) )
108 logfac 20363 . . . . . . . . . 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 5673 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  ( log `  ( ! `  N ) ) )  =  ( exp `  sum_ n  e.  ( 1 ... N ) ( log `  n ) ) )
111107, 110eqtr3d 2422 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  N )  =  ( exp `  sum_ n  e.  ( 1 ... N
) ( log `  n
) ) )
112 eflog 20342 . . . . . . . . 9  |-  ( ( ( ! `  ( N  -  K )
)  e.  CC  /\  ( ! `  ( N  -  K ) )  =/=  0 )  -> 
( exp `  ( log `  ( ! `  ( N  -  K
) ) ) )  =  ( ! `  ( N  -  K
) ) )
11328, 29, 112syl2anc 643 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  ( log `  ( ! `  ( N  -  K
) ) ) )  =  ( ! `  ( N  -  K
) ) )
114 logfac 20363 . . . . . . . . . 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 5673 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  ( log `  ( ! `  ( N  -  K
) ) ) )  =  ( exp `  sum_ n  e.  ( 1 ... ( N  -  K
) ) ( log `  n ) ) )
117113, 116eqtr3d 2422 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  ( N  -  K
) )  =  ( exp `  sum_ n  e.  ( 1 ... ( N  -  K )
) ( log `  n
) ) )
118111, 117oveq12d 6039 . . . . . 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 2430 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  n ) )  =  ( ( ! `  N )  /  ( ! `  ( N  -  K ) ) ) )
12035, 40, 1193eqtr4d 2430 . . . 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 2420 . . 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 6965 . . . . . . . . 9  |-  ( ( ( 1 ... N
)  e.  Fin  /\  ( 1 ... K
)  e.  Fin )  ->  ( ( 1 ... N )  ^m  (
1 ... K ) )  =  { f  |  f : ( 1 ... K ) --> ( 1 ... N ) } )
1244, 3, 123mp2an 654 . . . . . . . 8  |-  ( ( 1 ... N )  ^m  ( 1 ... K ) )  =  { f  |  f : ( 1 ... K ) --> ( 1 ... N ) }
125122, 124eqtr4i 2411 . . . . . . 7  |-  S  =  ( ( 1 ... N )  ^m  (
1 ... K ) )
126125fveq2i 5672 . . . . . 6  |-  ( # `  S )  =  (
# `  ( (
1 ... N )  ^m  ( 1 ... K
) ) )
127 hashmap 11626 . . . . . . 7  |-  ( ( ( 1 ... N
)  e.  Fin  /\  ( 1 ... K
)  e.  Fin )  ->  ( # `  (
( 1 ... N
)  ^m  ( 1 ... K ) ) )  =  ( (
# `  ( 1 ... N ) ) ^
( # `  ( 1 ... K ) ) ) )
1284, 3, 127mp2an 654 . . . . . 6  |-  ( # `  ( ( 1 ... N )  ^m  (
1 ... K ) ) )  =  ( (
# `  ( 1 ... N ) ) ^
( # `  ( 1 ... K ) ) )
129126, 128eqtri 2408 . . . . 5  |-  ( # `  S )  =  ( ( # `  (
1 ... N ) ) ^ ( # `  (
1 ... K ) ) )
13016, 11oveq12d 6039 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( # `  ( 1 ... N
) ) ^ ( # `
 ( 1 ... K ) ) )  =  ( N ^ K ) )
131129, 130syl5eq 2432 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( # `  S
)  =  ( N ^ K ) )
132 nncn 9941 . . . . . 6  |-  ( N  e.  NN  ->  N  e.  CC )
133132adantr 452 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  N  e.  CC )
134 nnne0 9965 . . . . . 6  |-  ( N  e.  NN  ->  N  =/=  0 )
135134adantr 452 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  N  =/=  0
)
136 elfzelz 10992 . . . . . 6  |-  ( K  e.  ( 0 ... N )  ->  K  e.  ZZ )
137136adantl 453 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  K  e.  ZZ )
138 explog 20356 . . . . 5  |-  ( ( N  e.  CC  /\  N  =/=  0  /\  K  e.  ZZ )  ->  ( N ^ K )  =  ( exp `  ( K  x.  ( log `  N ) ) ) )
139133, 135, 137, 138syl3anc 1184 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N ^ K )  =  ( exp `  ( K  x.  ( log `  N
) ) ) )
140131, 139eqtrd 2420 . . 3  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( # `  S
)  =  ( exp `  ( K  x.  ( log `  N ) ) ) )
141121, 140oveq12d 6039 . 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 10209 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  K  e.  CC )
143 nnrp 10554 . . . . . . 7  |-  ( N  e.  NN  ->  N  e.  RR+ )
144143adantr 452 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  N  e.  RR+ )
145144relogcld 20386 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( log `  N
)  e.  RR )
146145recnd 9048 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( log `  N
)  e.  CC )
147142, 146mulcld 9042 . . 3  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( K  x.  ( log `  N ) )  e.  CC )
148 efsub 12629 . . 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 643 . 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 20355 . . . . . . 7  |-  ( ( n  e.  RR+  /\  N  e.  RR+ )  ->  ( log `  ( n  /  N ) )  =  ( ( log `  n
)  -  ( log `  N ) ) )
15144, 144, 150syl2anr 465 . . . . . 6  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  NN )  ->  ( log `  (
n  /  N ) )  =  ( ( log `  n )  -  ( log `  N
) ) )
15299, 151syldan 457 . . . . 5  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  ( log `  ( n  /  N
) )  =  ( ( log `  n
)  -  ( log `  N ) ) )
153152sumeq2dv 12425 . . . 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 452 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  N  e.  ZZ )
15525nn0zd 10306 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  e.  ZZ )
156155peano2zd 10311 . . . . . 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 452 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  N  e.  RR+ )
159157, 158rpdivcld 10598 . . . . . . . 8  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  ( n  /  N )  e.  RR+ )
160159relogcld 20386 . . . . . . 7  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  ( log `  ( n  /  N
) )  e.  RR )
161160recnd 9048 . . . . . 6  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  ( log `  ( n  /  N
) )  e.  CC )
162 oveq1 6028 . . . . . . 7  |-  ( n  =  ( N  -  k )  ->  (
n  /  N )  =  ( ( N  -  k )  /  N ) )
163162fveq2d 5673 . . . . . 6  |-  ( n  =  ( N  -  k )  ->  ( log `  ( n  /  N ) )  =  ( log `  (
( N  -  k
)  /  N ) ) )
164154, 156, 154, 161, 163fsumrev 12490 . . . . 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 9332 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  N )  =  0 )
166 ax-1cn 8982 . . . . . . . . . . 11  |-  1  e.  CC
167166a1i 11 . . . . . . . . . 10  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  1  e.  CC )
168133, 142, 167subsubd 9372 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  ( K  -  1
) )  =  ( ( N  -  K
)  +  1 ) )
169168oveq2d 6037 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  ( N  -  ( K  -  1 ) ) )  =  ( N  -  ( ( N  -  K )  +  1 ) ) )
170 subcl 9238 . . . . . . . . . 10  |-  ( ( K  e.  CC  /\  1  e.  CC )  ->  ( K  -  1 )  e.  CC )
171142, 166, 170sylancl 644 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( K  - 
1 )  e.  CC )
172133, 171nncand 9349 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  ( N  -  ( K  -  1 ) ) )  =  ( K  -  1 ) )
173169, 172eqtr3d 2422 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  ( ( N  -  K )  +  1 ) )  =  ( K  -  1 ) )
174165, 173oveq12d 6039 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( N  -  N ) ... ( N  -  (
( N  -  K
)  +  1 ) ) )  =  ( 0 ... ( K  -  1 ) ) )
175133adantr 452 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  N  e.  CC )
176 elfznn0 11016 . . . . . . . . . . 11  |-  ( k  e.  ( 0 ... ( K  -  1 ) )  ->  k  e.  NN0 )
177176adantl 453 . . . . . . . . . 10  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  k  e.  NN0 )
178177nn0cnd 10209 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  k  e.  CC )
179135adantr 452 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  N  =/=  0 )
180175, 178, 175, 179divsubdird 9762 . . . . . . . 8  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  ( ( N  -  k )  /  N )  =  ( ( N  /  N
)  -  ( k  /  N ) ) )
181175, 179dividd 9721 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  ( N  /  N )  =  1 )
182181oveq1d 6036 . . . . . . . 8  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  ( ( N  /  N )  -  ( k  /  N
) )  =  ( 1  -  ( k  /  N ) ) )
183180, 182eqtrd 2420 . . . . . . 7  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  ( ( N  -  k )  /  N )  =  ( 1  -  ( k  /  N ) ) )
184183fveq2d 5673 . . . . . 6  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  ( log `  ( ( N  -  k )  /  N
) )  =  ( log `  ( 1  -  ( k  /  N ) ) ) )
185174, 184sumeq12rdv 12429 . . . . 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 2420 . . . 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 452 . . . . . 6  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  ( log `  N )  e.  CC )
18894, 100, 187fsumsub 12499 . . . . 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 12501 . . . . . . . 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 643 . . . . . . 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 1z 10244 . . . . . . . . . . . . 13  |-  1  e.  ZZ
192191a1i 11 . . . . . . . . . . . 12  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  1  e.  ZZ )
193 fzen 11005 . . . . . . . . . . . 12  |-  ( ( 1  e.  ZZ  /\  K  e.  ZZ  /\  ( N  -  K )  e.  ZZ )  ->  (
1 ... K )  ~~  ( ( 1  +  ( N  -  K
) ) ... ( K  +  ( N  -  K ) ) ) )
194192, 137, 155, 193syl3anc 1184 . . . . . . . . . . 11  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1 ... K )  ~~  (
( 1  +  ( N  -  K ) ) ... ( K  +  ( N  -  K ) ) ) )
19525nn0cnd 10209 . . . . . . . . . . . . 13  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  e.  CC )
196 addcom 9185 . . . . . . . . . . . . 13  |-  ( ( 1  e.  CC  /\  ( N  -  K
)  e.  CC )  ->  ( 1  +  ( N  -  K
) )  =  ( ( N  -  K
)  +  1 ) )
197166, 195, 196sylancr 645 . . . . . . . . . . . 12  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1  +  ( N  -  K
) )  =  ( ( N  -  K
)  +  1 ) )
198142, 133pncan3d 9347 . . . . . . . . . . . 12  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( K  +  ( N  -  K
) )  =  N )
199197, 198oveq12d 6039 . . . . . . . . . . 11  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( 1  +  ( N  -  K ) ) ... ( K  +  ( N  -  K ) ) )  =  ( ( ( N  -  K )  +  1 ) ... N ) )
200194, 199breqtrd 4178 . . . . . . . . . 10  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1 ... K )  ~~  (
( ( N  -  K )  +  1 ) ... N ) )
201 hasheni 11560 . . . . . . . . . 10  |-  ( ( 1 ... K ) 
~~  ( ( ( N  -  K )  +  1 ) ... N )  ->  ( # `
 ( 1 ... K ) )  =  ( # `  (
( ( N  -  K )  +  1 ) ... N ) ) )
202200, 201syl 16 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( # `  (
1 ... K ) )  =  ( # `  (
( ( N  -  K )  +  1 ) ... N ) ) )
203202, 11eqtr3d 2422 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( # `  (
( ( N  -  K )  +  1 ) ... N ) )  =  K )
204203oveq1d 6036 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( # `  ( ( ( N  -  K )  +  1 ) ... N
) )  x.  ( log `  N ) )  =  ( K  x.  ( log `  N ) ) )
205190, 204eqtrd 2420 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  N
)  =  ( K  x.  ( log `  N
) ) )
206205oveq2d 6037 . . . . 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
) ) ) )
207188, 206eqtrd 2420 . . . 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
) ) ) )
208153, 186, 2073eqtr3rd 2429 . . 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 ) ) ) )
209208fveq2d 5673 . 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 ) ) ) ) )
210141, 149, 2093eqtr2d 2426 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 set class
Syntax hints:    -> wi 4    <-> wb 177    \/ wo 358    /\ wa 359    = wceq 1649    e. wcel 1717   {cab 2374    =/= wne 2551    u. cun 3262    i^i cin 3263   (/)c0 3572   class class class wbr 4154   -->wf 5391   -1-1->wf1 5392   ` cfv 5395  (class class class)co 6021    ^m cmap 6955    ~~ cen 7043   Fincfn 7046   CCcc 8922   0cc0 8924   1c1 8925    + caddc 8927    x. cmul 8929    < clt 9054    <_ cle 9055    - cmin 9224    / cdiv 9610   NNcn 9933   NN0cn0 10154   ZZcz 10215   ZZ>=cuz 10421   RR+crp 10545   ...cfz 10976   ^cexp 11310   !cfa 11494    _C cbc 11521   #chash 11546   sum_csu 12407   expce 12592   logclog 20320
This theorem is referenced by:  birthdaylem3  20660
This theorem was proved from axioms:  ax-1 5  ax-2 6  ax-3 7  ax-mp 8  ax-gen 1552  ax-5 1563  ax-17 1623  ax-9 1661  ax-8 1682  ax-13 1719  ax-14 1721  ax-6 1736  ax-7 1741  ax-11 1753  ax-12 1939  ax-ext 2369  ax-rep 4262  ax-sep 4272  ax-nul 4280  ax-pow 4319  ax-pr 4345  ax-un 4642  ax-inf2 7530  ax-cnex 8980  ax-resscn 8981  ax-1cn 8982  ax-icn 8983  ax-addcl 8984  ax-addrcl 8985  ax-mulcl 8986  ax-mulrcl 8987  ax-mulcom 8988  ax-addass 8989  ax-mulass 8990  ax-distr 8991  ax-i2m1 8992  ax-1ne0 8993  ax-1rid 8994  ax-rnegex 8995  ax-rrecex 8996  ax-cnre 8997  ax-pre-lttri 8998  ax-pre-lttrn 8999  ax-pre-ltadd 9000  ax-pre-mulgt0 9001  ax-pre-sup 9002  ax-addf 9003  ax-mulf 9004
This theorem depends on definitions:  df-bi 178  df-or 360  df-an 361  df-3or 937  df-3an 938  df-tru 1325  df-ex 1548  df-nf 1551  df-sb 1656  df-eu 2243  df-mo 2244  df-clab 2375  df-cleq 2381  df-clel 2384  df-nfc 2513  df-ne 2553  df-nel 2554  df-ral 2655  df-rex 2656  df-reu 2657  df-rmo 2658  df-rab 2659  df-v 2902  df-sbc 3106  df-csb 3196  df-dif 3267  df-un 3269  df-in 3271  df-ss 3278  df-pss 3280  df-nul 3573  df-if 3684  df-pw 3745  df-sn 3764  df-pr 3765  df-tp 3766  df-op 3767  df-uni 3959  df-int 3994  df-iun 4038  df-iin 4039  df-br 4155  df-opab 4209  df-mpt 4210  df-tr 4245  df-eprel 4436  df-id 4440  df-po 4445  df-so 4446  df-fr 4483  df-se 4484  df-we 4485  df-ord 4526  df-on 4527  df-lim 4528  df-suc 4529  df-om 4787  df-xp 4825  df-rel 4826  df-cnv 4827  df-co 4828  df-dm 4829  df-rn 4830  df-res 4831  df-ima 4832  df-iota 5359  df-fun 5397  df-fn 5398  df-f 5399  df-f1 5400  df-fo 5401  df-f1o 5402  df-fv 5403  df-isom 5404  df-ov 6024  df-oprab 6025  df-mpt2 6026  df-of 6245  df-1st 6289  df-2nd 6290  df-riota 6486  df-recs 6570  df-rdg 6605  df-1o 6661  df-2o 6662  df-oadd 6665  df-er 6842  df-map 6957  df-pm 6958  df-ixp 7001  df-en 7047  df-dom 7048  df-sdom 7049  df-fin 7050  df-fi 7352  df-sup 7382  df-oi 7413  df-card 7760  df-cda 7982  df-pnf 9056  df-mnf 9057  df-xr 9058  df-ltxr 9059  df-le 9060  df-sub 9226  df-neg 9227  df-div 9611  df-nn 9934  df-2 9991  df-3 9992  df-4 9993  df-5 9994  df-6 9995  df-7 9996  df-8 9997  df-9 9998  df-10 9999  df-n0 10155  df-z 10216  df-dec 10316  df-uz 10422  df-q 10508  df-rp 10546  df-xneg 10643  df-xadd 10644  df-xmul 10645  df-ioo 10853  df-ioc 10854  df-ico 10855  df-icc 10856  df-fz 10977  df-fzo 11067  df-fl 11130  df-mod 11179  df-seq 11252  df-exp 11311  df-fac 11495  df-bc 11522  df-hash 11547  df-shft 11810  df-cj 11832  df-re 11833  df-im 11834  df-sqr 11968  df-abs 11969  df-limsup 12193  df-clim 12210  df-rlim 12211  df-sum 12408  df-ef 12598  df-sin 12600  df-cos 12601  df-pi 12603  df-struct 13399  df-ndx 13400  df-slot 13401  df-base 13402  df-sets 13403  df-ress 13404  df-plusg 13470  df-mulr 13471  df-starv 13472  df-sca 13473  df-vsca 13474  df-tset 13476  df-ple 13477  df-ds 13479  df-unif 13480  df-hom 13481  df-cco 13482  df-rest 13578  df-topn 13579  df-topgen 13595  df-pt 13596  df-prds 13599  df-xrs 13654  df-0g 13655  df-gsum 13656  df-qtop 13661  df-imas 13662  df-xps 13664  df-mre 13739  df-mrc 13740  df-acs 13742  df-mnd 14618  df-submnd 14667  df-mulg 14743  df-cntz 15044  df-cmn 15342  df-xmet 16620  df-met 16621  df-bl 16622  df-mopn 16623  df-fbas 16624  df-fg 16625  df-cnfld 16628  df-top 16887  df-bases 16889  df-topon 16890  df-topsp 16891  df-cld 17007  df-ntr 17008  df-cls 17009  df-nei 17086  df-lp 17124  df-perf 17125  df-cn 17214  df-cnp 17215  df-haus 17302  df-tx 17516  df-hmeo 17709  df-fil 17800  df-fm 17892  df-flim 17893  df-flf 17894  df-xms 18260  df-ms 18261  df-tms 18262  df-cncf 18780  df-limc 19621  df-dv 19622  df-log 20322
  Copyright terms: Public domain W3C validator