ILE Home Intuitionistic Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >  birthdaylem2 Unicode version

Theorem birthdaylem2 16226
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 . . . . . 6  |-  T  =  { f  |  f : ( 1 ... K ) -1-1-> ( 1 ... N ) }
21fveq2i 5701 . . . . 5  |-  (♯ `  T
)  =  (♯ `  {
f  |  f : ( 1 ... K
) -1-1-> ( 1 ... N ) } )
3 1zzd 9682 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  1  e.  ZZ )
4 elfzelz 10445 . . . . . . . 8  |-  ( K  e.  ( 0 ... N )  ->  K  e.  ZZ )
54adantl 277 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  K  e.  ZZ )
63, 5fzfigd 10889 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1 ... K )  e.  Fin )
7 nnz 9674 . . . . . . . 8  |-  ( N  e.  NN  ->  N  e.  ZZ )
87adantr 276 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  N  e.  ZZ )
93, 8fzfigd 10889 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1 ... N )  e.  Fin )
10 hashf1 11309 . . . . . 6  |-  ( ( ( 1 ... K
)  e.  Fin  /\  ( 1 ... N
)  e.  Fin )  ->  (♯ `  { f  |  f : ( 1 ... K )
-1-1-> ( 1 ... N
) } )  =  ( ( ! `  (♯ `  ( 1 ... K ) ) )  x.  ( (♯ `  (
1 ... N ) )  _C  (♯ `  (
1 ... K ) ) ) ) )
116, 9, 10syl2anc 415 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  (♯ `  { f  |  f : ( 1 ... K )
-1-1-> ( 1 ... N
) } )  =  ( ( ! `  (♯ `  ( 1 ... K ) ) )  x.  ( (♯ `  (
1 ... N ) )  _C  (♯ `  (
1 ... K ) ) ) ) )
122, 11eqtrid 2283 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  (♯ `  T )  =  ( ( ! `
 (♯ `  (
1 ... K ) ) )  x.  ( (♯ `  ( 1 ... N
) )  _C  (♯ `  ( 1 ... K
) ) ) ) )
13 elfznn0 10538 . . . . . . . 8  |-  ( K  e.  ( 0 ... N )  ->  K  e.  NN0 )
1413adantl 277 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  K  e.  NN0 )
15 hashfz1 11244 . . . . . . 7  |-  ( K  e.  NN0  ->  (♯ `  (
1 ... K ) )  =  K )
1614, 15syl 14 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  (♯ `  ( 1 ... K ) )  =  K )
1716fveq2d 5702 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  (♯ `  ( 1 ... K ) ) )  =  ( ! `  K ) )
18 nnnn0 9581 . . . . . . . 8  |-  ( N  e.  NN  ->  N  e.  NN0 )
19 hashfz1 11244 . . . . . . . 8  |-  ( N  e.  NN0  ->  (♯ `  (
1 ... N ) )  =  N )
2018, 19syl 14 . . . . . . 7  |-  ( N  e.  NN  ->  (♯ `  ( 1 ... N
) )  =  N )
2120adantr 276 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  (♯ `  ( 1 ... N ) )  =  N )
2221, 16oveq12d 6106 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( (♯ `  (
1 ... N ) )  _C  (♯ `  (
1 ... K ) ) )  =  ( N  _C  K ) )
2317, 22oveq12d 6106 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ! `
 (♯ `  (
1 ... K ) ) )  x.  ( (♯ `  ( 1 ... N
) )  _C  (♯ `  ( 1 ... K
) ) ) )  =  ( ( ! `
 K )  x.  ( N  _C  K
) ) )
2418adantr 276 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  N  e.  NN0 )
2524faccld 11196 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  N )  e.  NN )
2625nncnd 9327 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  N )  e.  CC )
27 fznn0sub 10480 . . . . . . . . . 10  |-  ( K  e.  ( 0 ... N )  ->  ( N  -  K )  e.  NN0 )
2827adantl 277 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  e.  NN0 )
2928faccld 11196 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  ( N  -  K
) )  e.  NN )
3029nncnd 9327 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  ( N  -  K
) )  e.  CC )
3129nnap0d 9359 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  ( N  -  K
) ) #  0 )
3226, 30, 31divclapd 9128 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ! `
 N )  / 
( ! `  ( N  -  K )
) )  e.  CC )
3314faccld 11196 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  K )  e.  NN )
3433nncnd 9327 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  K )  e.  CC )
3533nnap0d 9359 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  K ) #  0 )
3632, 34, 35divcanap2d 9130 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ! `
 K )  x.  ( ( ( ! `
 N )  / 
( ! `  ( N  -  K )
) )  /  ( ! `  K )
) )  =  ( ( ! `  N
)  /  ( ! `
 ( N  -  K ) ) ) )
37 bcval2 11210 . . . . . . . 8  |-  ( K  e.  ( 0 ... N )  ->  ( N  _C  K )  =  ( ( ! `  N )  /  (
( ! `  ( N  -  K )
)  x.  ( ! `
 K ) ) ) )
3837adantl 277 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  _C  K )  =  ( ( ! `  N
)  /  ( ( ! `  ( N  -  K ) )  x.  ( ! `  K ) ) ) )
3926, 30, 34, 31, 35divdivap1d 9160 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ( ! `  N )  /  ( ! `  ( N  -  K
) ) )  / 
( ! `  K
) )  =  ( ( ! `  N
)  /  ( ( ! `  ( N  -  K ) )  x.  ( ! `  K ) ) ) )
4038, 39eqtr4d 2274 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  _C  K )  =  ( ( ( ! `  N )  /  ( ! `  ( N  -  K ) ) )  /  ( ! `  K ) ) )
4140oveq2d 6104 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ! `
 K )  x.  ( N  _C  K
) )  =  ( ( ! `  K
)  x.  ( ( ( ! `  N
)  /  ( ! `
 ( N  -  K ) ) )  /  ( ! `  K ) ) ) )
4224nn0zd 9777 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  N  e.  ZZ )
433, 42fzfigd 10889 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1 ... N )  e.  Fin )
44 elfznn 10477 . . . . . . . . . 10  |-  ( n  e.  ( 1 ... N )  ->  n  e.  NN )
4544adantl 277 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( 1 ... N ) )  ->  n  e.  NN )
46 nnrp 10081 . . . . . . . . . . 11  |-  ( n  e.  NN  ->  n  e.  RR+ )
4746relogcld 16112 . . . . . . . . . 10  |-  ( n  e.  NN  ->  ( log `  n )  e.  RR )
4847recnd 8360 . . . . . . . . 9  |-  ( n  e.  NN  ->  ( log `  n )  e.  CC )
4945, 48syl 14 . . . . . . . 8  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( 1 ... N ) )  ->  ( log `  n )  e.  CC )
5043, 49fsumcl 12192 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( 1 ... N ) ( log `  n
)  e.  CC )
5128nn0zd 9777 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  e.  ZZ )
523, 51fzfigd 10889 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1 ... ( N  -  K
) )  e.  Fin )
53 elfznn 10477 . . . . . . . . . 10  |-  ( n  e.  ( 1 ... ( N  -  K
) )  ->  n  e.  NN )
5453adantl 277 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( 1 ... ( N  -  K ) ) )  ->  n  e.  NN )
5554, 48syl 14 . . . . . . . 8  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( 1 ... ( N  -  K ) ) )  ->  ( log `  n )  e.  CC )
5652, 55fsumcl 12192 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( 1 ... ( N  -  K ) ) ( log `  n
)  e.  CC )
57 efsub 12473 . . . . . . 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 ) ) ) )
5850, 56, 57syl2anc 415 . . . . . 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 ) ) ) )
5928nn0red 9632 . . . . . . . . . . . 12  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  e.  RR )
6059ltp1d 9268 . . . . . . . . . . 11  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  <  (
( N  -  K
)  +  1 ) )
61 fzdisj 10474 . . . . . . . . . . 11  |-  ( ( N  -  K )  <  ( ( N  -  K )  +  1 )  ->  (
( 1 ... ( N  -  K )
)  i^i  ( (
( N  -  K
)  +  1 ) ... N ) )  =  (/) )
6260, 61syl 14 . . . . . . . . . 10  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( 1 ... ( N  -  K ) )  i^i  ( ( ( N  -  K )  +  1 ) ... N
) )  =  (/) )
63 fznn0sub2 10552 . . . . . . . . . . . . . . . 16  |-  ( K  e.  ( 0 ... N )  ->  ( N  -  K )  e.  ( 0 ... N
) )
6463adantl 277 . . . . . . . . . . . . . . 15  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  e.  ( 0 ... N ) )
65 elfzle2 10449 . . . . . . . . . . . . . . 15  |-  ( ( N  -  K )  e.  ( 0 ... N )  ->  ( N  -  K )  <_  N )
6664, 65syl 14 . . . . . . . . . . . . . 14  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  <_  N
)
6766adantr 276 . . . . . . . . . . . . 13  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  ( N  -  K )  <_  N
)
68 simpr 110 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  ( N  -  K )  e.  NN )
69 nnuz 9974 . . . . . . . . . . . . . . 15  |-  NN  =  ( ZZ>= `  1 )
7068, 69eleqtrdi 2331 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  ( N  -  K )  e.  (
ZZ>= `  1 ) )
717ad2antrr 492 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  N  e.  ZZ )
72 elfz5 10437 . . . . . . . . . . . . . 14  |-  ( ( ( N  -  K
)  e.  ( ZZ>= ` 
1 )  /\  N  e.  ZZ )  ->  (
( N  -  K
)  e.  ( 1 ... N )  <->  ( N  -  K )  <_  N
) )
7370, 71, 72syl2anc 415 . . . . . . . . . . . . 13  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  ( ( N  -  K )  e.  ( 1 ... N
)  <->  ( N  -  K )  <_  N
) )
7467, 73mpbird 167 . . . . . . . . . . . 12  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  ( N  -  K )  e.  ( 1 ... N ) )
75 fzsplit 10473 . . . . . . . . . . . 12  |-  ( ( N  -  K )  e.  ( 1 ... N )  ->  (
1 ... N )  =  ( ( 1 ... ( N  -  K
) )  u.  (
( ( N  -  K )  +  1 ) ... N ) ) )
7674, 75syl 14 . . . . . . . . . . 11  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  e.  NN )  ->  ( 1 ... N )  =  ( ( 1 ... ( N  -  K )
)  u.  ( ( ( N  -  K
)  +  1 ) ... N ) ) )
77 simpr 110 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( N  -  K )  =  0 )
7877oveq2d 6104 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( 1 ... ( N  -  K ) )  =  ( 1 ... 0
) )
79 fz10 10467 . . . . . . . . . . . . . 14  |-  ( 1 ... 0 )  =  (/)
8078, 79eqtrdi 2287 . . . . . . . . . . . . 13  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( 1 ... ( N  -  K ) )  =  (/) )
8180uneq1d 3382 . . . . . . . . . . . 12  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( (
1 ... ( N  -  K ) )  u.  ( ( ( N  -  K )  +  1 ) ... N
) )  =  (
(/)  u.  ( (
( N  -  K
)  +  1 ) ... N ) ) )
82 uncom 3373 . . . . . . . . . . . . . 14  |-  ( (/)  u.  ( ( ( N  -  K )  +  1 ) ... N
) )  =  ( ( ( ( N  -  K )  +  1 ) ... N
)  u.  (/) )
83 un0 3556 . . . . . . . . . . . . . 14  |-  ( ( ( ( N  -  K )  +  1 ) ... N )  u.  (/) )  =  ( ( ( N  -  K )  +  1 ) ... N )
8482, 83eqtri 2259 . . . . . . . . . . . . 13  |-  ( (/)  u.  ( ( ( N  -  K )  +  1 ) ... N
) )  =  ( ( ( N  -  K )  +  1 ) ... N )
8577oveq1d 6103 . . . . . . . . . . . . . . 15  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( ( N  -  K )  +  1 )  =  ( 0  +  1 ) )
86 1e0p1 9834 . . . . . . . . . . . . . . 15  |-  1  =  ( 0  +  1 )
8785, 86eqtr4di 2289 . . . . . . . . . . . . . 14  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( ( N  -  K )  +  1 )  =  1 )
8887oveq1d 6103 . . . . . . . . . . . . 13  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( (
( N  -  K
)  +  1 ) ... N )  =  ( 1 ... N
) )
8984, 88eqtrid 2283 . . . . . . . . . . . 12  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( (/)  u.  (
( ( N  -  K )  +  1 ) ... N ) )  =  ( 1 ... N ) )
9081, 89eqtr2d 2272 . . . . . . . . . . 11  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  ( N  -  K )  =  0 )  ->  ( 1 ... N )  =  ( ( 1 ... ( N  -  K
) )  u.  (
( ( N  -  K )  +  1 ) ... N ) ) )
91 elnn0 9576 . . . . . . . . . . . 12  |-  ( ( N  -  K )  e.  NN0  <->  ( ( N  -  K )  e.  NN  \/  ( N  -  K )  =  0 ) )
9228, 91sylib 122 . . . . . . . . . . 11  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( N  -  K )  e.  NN  \/  ( N  -  K )  =  0 ) )
9376, 90, 92mpjaodan 810 . . . . . . . . . 10  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1 ... N )  =  ( ( 1 ... ( N  -  K )
)  u.  ( ( ( N  -  K
)  +  1 ) ... N ) ) )
9462, 93, 43, 49fsumsplit 12199 . . . . . . . . 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 ) ) )
9594oveq1d 6103 . . . . . . . 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 ) ) )
9651peano2zd 9782 . . . . . . . . . . 11  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( N  -  K )  +  1 )  e.  ZZ )
9796, 42fzfigd 10889 . . . . . . . . . 10  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ( N  -  K )  +  1 ) ... N )  e.  Fin )
98 nn0p1nn 9613 . . . . . . . . . . . . 13  |-  ( ( N  -  K )  e.  NN0  ->  ( ( N  -  K )  +  1 )  e.  NN )
9928, 98syl 14 . . . . . . . . . . . 12  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( N  -  K )  +  1 )  e.  NN )
100 elfzuz 10441 . . . . . . . . . . . 12  |-  ( n  e.  ( ( ( N  -  K )  +  1 ) ... N )  ->  n  e.  ( ZZ>= `  ( ( N  -  K )  +  1 ) ) )
101 eluznn 10016 . . . . . . . . . . . 12  |-  ( ( ( ( N  -  K )  +  1 )  e.  NN  /\  n  e.  ( ZZ>= `  ( ( N  -  K )  +  1 ) ) )  ->  n  e.  NN )
10299, 100, 101syl2an 289 . . . . . . . . . . 11  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  n  e.  NN )
103102, 48syl 14 . . . . . . . . . 10  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  ( log `  n )  e.  CC )
10497, 103fsumcl 12192 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  n
)  e.  CC )
10556, 104pncan2d 8646 . . . . . . . 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
) )
10695, 105eqtr2d 2272 . . . . . . 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 ) ) )
107106fveq2d 5702 . . . . . 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
) ) ) )
10825nnrpd 10112 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  N )  e.  RR+ )
109108reeflogd 16113 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  ( log `  ( ! `  N ) ) )  =  ( ! `  N ) )
110 logfac 16126 . . . . . . . . . 10  |-  ( N  e.  NN0  ->  ( log `  ( ! `  N
) )  =  sum_ n  e.  ( 1 ... N ) ( log `  n ) )
11124, 110syl 14 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( log `  ( ! `  N )
)  =  sum_ n  e.  ( 1 ... N
) ( log `  n
) )
112111fveq2d 5702 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  ( log `  ( ! `  N ) ) )  =  ( exp `  sum_ n  e.  ( 1 ... N ) ( log `  n ) ) )
113109, 112eqtr3d 2273 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  N )  =  ( exp `  sum_ n  e.  ( 1 ... N
) ( log `  n
) ) )
11429nnrpd 10112 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  ( N  -  K
) )  e.  RR+ )
115114reeflogd 16113 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  ( log `  ( ! `  ( N  -  K
) ) ) )  =  ( ! `  ( N  -  K
) ) )
116 logfac 16126 . . . . . . . . . 10  |-  ( ( N  -  K )  e.  NN0  ->  ( log `  ( ! `  ( N  -  K )
) )  =  sum_ n  e.  ( 1 ... ( N  -  K
) ) ( log `  n ) )
11728, 116syl 14 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( log `  ( ! `  ( N  -  K ) ) )  =  sum_ n  e.  ( 1 ... ( N  -  K ) ) ( log `  n
) )
118117fveq2d 5702 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  ( log `  ( ! `  ( N  -  K
) ) ) )  =  ( exp `  sum_ n  e.  ( 1 ... ( N  -  K
) ) ( log `  n ) ) )
119115, 118eqtr3d 2273 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ! `  ( N  -  K
) )  =  ( exp `  sum_ n  e.  ( 1 ... ( N  -  K )
) ( log `  n
) ) )
120113, 119oveq12d 6106 . . . . . 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 ) ) ) )
12158, 107, 1203eqtr4d 2281 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( exp `  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  n ) )  =  ( ( ! `  N )  /  ( ! `  ( N  -  K ) ) ) )
12236, 41, 1213eqtr4d 2281 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( ! `
 K )  x.  ( N  _C  K
) )  =  ( exp `  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N
) ( log `  n
) ) )
12312, 23, 1223eqtrd 2275 . . 3  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  (♯ `  T )  =  ( exp `  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  n ) ) )
124 birthday.s . . . . . . 7  |-  S  =  { f  |  f : ( 1 ... K ) --> ( 1 ... N ) }
125 mapvalg 6936 . . . . . . . 8  |-  ( ( ( 1 ... N
)  e.  Fin  /\  ( 1 ... K
)  e.  Fin )  ->  ( ( 1 ... N )  ^m  (
1 ... K ) )  =  { f  |  f : ( 1 ... K ) --> ( 1 ... N ) } )
1269, 6, 125syl2anc 415 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( 1 ... N )  ^m  ( 1 ... K
) )  =  {
f  |  f : ( 1 ... K
) --> ( 1 ... N ) } )
127124, 126eqtr4id 2290 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  S  =  ( ( 1 ... N
)  ^m  ( 1 ... K ) ) )
128127fveq2d 5702 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  (♯ `  S )  =  (♯ `  ( (
1 ... N )  ^m  ( 1 ... K
) ) ) )
129 hashmap 11290 . . . . . 6  |-  ( ( ( 1 ... N
)  e.  Fin  /\  ( 1 ... K
)  e.  Fin )  ->  (♯ `  ( (
1 ... N )  ^m  ( 1 ... K
) ) )  =  ( (♯ `  (
1 ... N ) ) ^ (♯ `  (
1 ... K ) ) ) )
1309, 6, 129syl2anc 415 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  (♯ `  ( (
1 ... N )  ^m  ( 1 ... K
) ) )  =  ( (♯ `  (
1 ... N ) ) ^ (♯ `  (
1 ... K ) ) ) )
131128, 130eqtrd 2271 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  (♯ `  S )  =  ( (♯ `  (
1 ... N ) ) ^ (♯ `  (
1 ... K ) ) ) )
13221, 16oveq12d 6106 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( (♯ `  (
1 ... N ) ) ^ (♯ `  (
1 ... K ) ) )  =  ( N ^ K ) )
133 nnrp 10081 . . . . . 6  |-  ( N  e.  NN  ->  N  e.  RR+ )
134133adantr 276 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  N  e.  RR+ )
135 reexplog 16101 . . . . 5  |-  ( ( N  e.  RR+  /\  K  e.  ZZ )  ->  ( N ^ K )  =  ( exp `  ( K  x.  ( log `  N ) ) ) )
136134, 5, 135syl2anc 415 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N ^ K )  =  ( exp `  ( K  x.  ( log `  N
) ) ) )
137131, 132, 1363eqtrd 2275 . . 3  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  (♯ `  S )  =  ( exp `  ( K  x.  ( log `  N ) ) ) )
138123, 137oveq12d 6106 . 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 ) ) ) ) )
13914nn0cnd 9633 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  K  e.  CC )
140134relogcld 16112 . . . . 5  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( log `  N
)  e.  RR )
141140recnd 8360 . . . 4  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( log `  N
)  e.  CC )
142139, 141mulcld 8352 . . 3  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( K  x.  ( log `  N ) )  e.  CC )
143 efsub 12473 . . 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 ) ) ) ) )
144104, 142, 143syl2anc 415 . 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 ) ) ) ) )
145 relogdiv 16100 . . . . . . 7  |-  ( ( n  e.  RR+  /\  N  e.  RR+ )  ->  ( log `  ( n  /  N ) )  =  ( ( log `  n
)  -  ( log `  N ) ) )
14646, 134, 145syl2anr 290 . . . . . 6  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  NN )  ->  ( log `  (
n  /  N ) )  =  ( ( log `  n )  -  ( log `  N
) ) )
147102, 146syldan 282 . . . . 5  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  ( log `  ( n  /  N
) )  =  ( ( log `  n
)  -  ( log `  N ) ) )
148147sumeq2dv 12159 . . . 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 ) ) )
149102nnrpd 10112 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  n  e.  RR+ )
150134adantr 276 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  N  e.  RR+ )
151149, 150rpdivcld 10132 . . . . . . . 8  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  ( n  /  N )  e.  RR+ )
152151relogcld 16112 . . . . . . 7  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  ( log `  ( n  /  N
) )  e.  RR )
153152recnd 8360 . . . . . 6  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  ( log `  ( n  /  N
) )  e.  CC )
154 fvoveq1 6111 . . . . . 6  |-  ( n  =  ( N  -  k )  ->  ( log `  ( n  /  N ) )  =  ( log `  (
( N  -  k
)  /  N ) ) )
1558, 96, 8, 153, 154fsumrev 12235 . . . . 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 ) ) )
156 nncn 9321 . . . . . . . . 9  |-  ( N  e.  NN  ->  N  e.  CC )
157156adantr 276 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  N  e.  CC )
158157subidd 8632 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  N )  =  0 )
159 1cnd 8348 . . . . . . . . . 10  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  1  e.  CC )
160157, 139, 159subsubd 8672 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  ( K  -  1
) )  =  ( ( N  -  K
)  +  1 ) )
161160oveq2d 6104 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  ( N  -  ( K  -  1 ) ) )  =  ( N  -  ( ( N  -  K )  +  1 ) ) )
162 ax-1cn 8278 . . . . . . . . . 10  |-  1  e.  CC
163 subcl 8532 . . . . . . . . . 10  |-  ( ( K  e.  CC  /\  1  e.  CC )  ->  ( K  -  1 )  e.  CC )
164139, 162, 163sylancl 417 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( K  - 
1 )  e.  CC )
165157, 164nncand 8649 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  ( N  -  ( K  -  1 ) ) )  =  ( K  -  1 ) )
166161, 165eqtr3d 2273 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  ( ( N  -  K )  +  1 ) )  =  ( K  -  1 ) )
167158, 166oveq12d 6106 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( N  -  N ) ... ( N  -  (
( N  -  K
)  +  1 ) ) )  =  ( 0 ... ( K  -  1 ) ) )
168157adantr 276 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  N  e.  CC )
169 elfznn0 10538 . . . . . . . . . . 11  |-  ( k  e.  ( 0 ... ( K  -  1 ) )  ->  k  e.  NN0 )
170169adantl 277 . . . . . . . . . 10  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  k  e.  NN0 )
171170nn0cnd 9633 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  k  e.  CC )
172 nnap0 9342 . . . . . . . . . 10  |-  ( N  e.  NN  ->  N #  0 )
173172ad2antrr 492 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  N #  0
)
174168, 171, 168, 173divsubdirapd 9168 . . . . . . . 8  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  ( ( N  -  k )  /  N )  =  ( ( N  /  N
)  -  ( k  /  N ) ) )
175168, 173dividapd 9124 . . . . . . . . 9  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  ( N  /  N )  =  1 )
176175oveq1d 6103 . . . . . . . 8  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  ( ( N  /  N )  -  ( k  /  N
) )  =  ( 1  -  ( k  /  N ) ) )
177174, 176eqtrd 2271 . . . . . . 7  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  ( ( N  -  k )  /  N )  =  ( 1  -  ( k  /  N ) ) )
178177fveq2d 5702 . . . . . 6  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  k  e.  ( 0 ... ( K  -  1 ) ) )  ->  ( log `  ( ( N  -  k )  /  N
) )  =  ( log `  ( 1  -  ( k  /  N ) ) ) )
179167, 178sumeq12rdv 12164 . . . . 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 ) ) ) )
180155, 179eqtrd 2271 . . . 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 ) ) ) )
181141adantr 276 . . . . . 6  |-  ( ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  /\  n  e.  ( ( ( N  -  K )  +  1 ) ... N ) )  ->  ( log `  N )  e.  CC )
18297, 103, 181fsumsub 12244 . . . . 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
) ) )
183 fsumconst 12246 . . . . . . . 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 ) ) )
18497, 141, 183syl2anc 415 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  N
)  =  ( (♯ `  ( ( ( N  -  K )  +  1 ) ... N
) )  x.  ( log `  N ) ) )
185 fzen 10464 . . . . . . . . . . . 12  |-  ( ( 1  e.  ZZ  /\  K  e.  ZZ  /\  ( N  -  K )  e.  ZZ )  ->  (
1 ... K )  ~~  ( ( 1  +  ( N  -  K
) ) ... ( K  +  ( N  -  K ) ) ) )
1863, 5, 51, 185syl3anc 1278 . . . . . . . . . . 11  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1 ... K )  ~~  (
( 1  +  ( N  -  K ) ) ... ( K  +  ( N  -  K ) ) ) )
18728nn0cnd 9633 . . . . . . . . . . . . 13  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( N  -  K )  e.  CC )
188 addcom 8470 . . . . . . . . . . . . 13  |-  ( ( 1  e.  CC  /\  ( N  -  K
)  e.  CC )  ->  ( 1  +  ( N  -  K
) )  =  ( ( N  -  K
)  +  1 ) )
189162, 187, 188sylancr 418 . . . . . . . . . . . 12  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1  +  ( N  -  K
) )  =  ( ( N  -  K
)  +  1 ) )
190139, 157pncan3d 8647 . . . . . . . . . . . 12  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( K  +  ( N  -  K
) )  =  N )
191189, 190oveq12d 6106 . . . . . . . . . . 11  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( ( 1  +  ( N  -  K ) ) ... ( K  +  ( N  -  K ) ) )  =  ( ( ( N  -  K )  +  1 ) ... N ) )
192186, 191breqtrd 4157 . . . . . . . . . 10  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( 1 ... K )  ~~  (
( ( N  -  K )  +  1 ) ... N ) )
193 hashen 11245 . . . . . . . . . . 11  |-  ( ( ( 1 ... K
)  e.  Fin  /\  ( ( ( N  -  K )  +  1 ) ... N
)  e.  Fin )  ->  ( (♯ `  (
1 ... K ) )  =  (♯ `  (
( ( N  -  K )  +  1 ) ... N ) )  <->  ( 1 ... K )  ~~  (
( ( N  -  K )  +  1 ) ... N ) ) )
1946, 97, 193syl2anc 415 . . . . . . . . . 10  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( (♯ `  (
1 ... K ) )  =  (♯ `  (
( ( N  -  K )  +  1 ) ... N ) )  <->  ( 1 ... K )  ~~  (
( ( N  -  K )  +  1 ) ... N ) ) )
195192, 194mpbird 167 . . . . . . . . 9  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  (♯ `  ( 1 ... K ) )  =  (♯ `  ( (
( N  -  K
)  +  1 ) ... N ) ) )
196195, 16eqtr3d 2273 . . . . . . . 8  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  (♯ `  ( (
( N  -  K
)  +  1 ) ... N ) )  =  K )
197196oveq1d 6103 . . . . . . 7  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  ( (♯ `  (
( ( N  -  K )  +  1 ) ... N ) )  x.  ( log `  N ) )  =  ( K  x.  ( log `  N ) ) )
198184, 197eqtrd 2271 . . . . . 6  |-  ( ( N  e.  NN  /\  K  e.  ( 0 ... N ) )  ->  sum_ n  e.  ( ( ( N  -  K )  +  1 ) ... N ) ( log `  N
)  =  ( K  x.  ( log `  N
) ) )
199198oveq2d 6104 . . . . 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
) ) ) )
200182, 199eqtrd 2271 . . . 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
) ) ) )
201148, 180, 2003eqtr3rd 2280 . . 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 ) ) ) )
202201fveq2d 5702 . 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 ) ) ) ) )
203138, 144, 2023eqtr2d 2277 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
This proof depends on syntax axioms:    -> wi 4    /\ wa 104    <-> wb 105    \/ wo 720    = wceq 1402    e. wcel 2209   {cab 2224    u. cun 3218    i^i cin 3219   (/)c0 3520   class class class wbr 4131   -->wf 5376   -1-1->wf1 5377   ` cfv 5380  (class class class)co 6088    ^m cmap 6926    ~~ cen 7024   Fincfn 7026   CCcc 8183   0cc0 8185   1c1 8186    + caddc 8188    x. cmul 8190    < clt 8366    <_ cle 8367    - cmin 8504   # cap 8917    / cdiv 9010   NNcn 9313   NN0cn0 9574   ZZcz 9655   ZZ>=cuz 9937   RR+crp 10071   ...cfz 10428   ^cexp 10996   !cfa 11185    _C cbc 11207  ♯chash 11236   sum_csu 12144   expce 12434   logclog 16085
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 623  ax-in2 624  ax-io 721  ax-5 1500  ax-7 1501  ax-gen 1502  ax-ie1 1546  ax-ie2 1547  ax-8 1557  ax-10 1558  ax-11 1559  ax-i12 1560  ax-bndl 1562  ax-4 1563  ax-17 1579  ax-i9 1583  ax-ial 1587  ax-i5r 1588  ax-14 2212  ax-ext 2220  ax-coll 4248  ax-sep 4251  ax-nul 4261  ax-pow 4313  ax-pr 4348  ax-un 4580  ax-setind 4686  ax-iinf 4737  ax-cnex 8276  ax-resscn 8277  ax-1cn 8278  ax-1re 8279  ax-icn 8280  ax-addcl 8281  ax-addrcl 8282  ax-mulcl 8283  ax-mulrcl 8284  ax-addcom 8285  ax-mulcom 8286  ax-addass 8287  ax-mulass 8288  ax-distr 8289  ax-i2m1 8290  ax-0lt1 8291  ax-1rid 8292  ax-0id 8293  ax-rnegex 8294  ax-precex 8295  ax-cnre 8296  ax-pre-ltirr 8297  ax-pre-ltwlin 8298  ax-pre-lttrn 8299  ax-pre-apti 8300  ax-pre-ltadd 8301  ax-pre-mulgt0 8302  ax-pre-mulext 8303  ax-arch 8304  ax-caucvg 8305  ax-pre-suploc 8306  ax-addf 8307  ax-mulf 8308
This proof depends on definitions:  df-bi 117  df-stab 843  df-dc 847  df-3or 1010  df-3an 1011  df-tru 1405  df-fal 1408  df-nf 1514  df-sb 1816  df-eu 2089  df-mo 2090  df-clab 2225  df-cleq 2231  df-clel 2234  df-nfc 2381  df-ne 2421  df-nel 2516  df-ral 2533  df-rex 2534  df-reu 2535  df-rmo 2536  df-rab 2537  df-v 2823  df-sbc 3052  df-csb 3148  df-dif 3222  df-un 3224  df-in 3226  df-ss 3233  df-nul 3521  df-if 3639  df-pw 3690  df-sn 3715  df-pr 3716  df-op 3718  df-uni 3936  df-int 3971  df-iun 4014  df-disj 4107  df-br 4132  df-opab 4194  df-mpt 4195  df-tr 4232  df-id 4440  df-po 4443  df-iso 4444  df-iord 4513  df-on 4515  df-ilim 4516  df-suc 4518  df-iom 4740  df-xp 4782  df-rel 4783  df-cnv 4784  df-co 4785  df-dm 4786  df-rn 4787  df-res 4788  df-ima 4789  df-iota 5340  df-fun 5382  df-fn 5383  df-f 5384  df-f1 5385  df-fo 5386  df-f1o 5387  df-fv 5388  df-isom 5389  df-riota 6041  df-ov 6091  df-oprab 6092  df-mpo 6093  df-of 6305  df-1st 6378  df-2nd 6379  df-recs 6580  df-irdg 6645  df-frec 6666  df-1o 6691  df-oadd 6695  df-er 6811  df-map 6928  df-pm 6929  df-en 7027  df-dom 7028  df-fin 7029  df-sup 7330  df-inf 7331  df-pnf 8368  df-mnf 8369  df-xr 8370  df-ltxr 8371  df-le 8372  df-sub 8506  df-neg 8507  df-reap 8911  df-ap 8918  df-div 9011  df-inn 9314  df-2 9372  df-3 9373  df-4 9374  df-n0 9575  df-z 9656  df-uz 9938  df-q 10036  df-rp 10072  df-xneg 10191  df-xadd 10192  df-ioo 10311  df-ico 10313  df-icc 10314  df-fz 10429  df-fzo 10567  df-seqfrec 10906  df-exp 10997  df-fac 11186  df-bc 11208  df-ihash 11237  df-shft 11602  df-cj 11629  df-re 11630  df-im 11631  df-rsqrt 11786  df-abs 11787  df-clim 12070  df-sumdc 12145  df-ef 12440  df-e 12441  df-rest 13654  df-topgen 13673  df-psmet 14989  df-xmet 14990  df-met 14991  df-bl 14992  df-mopn 14993  df-top 15224  df-topon 15237  df-bases 15269  df-ntr 15322  df-cn 15414  df-cnp 15415  df-tx 15479  df-cncf 15797  df-limced 15882  df-dvap 15883  df-relog 16087
This theorem is used by:  birthdaylem3  16227
  Copyright terms: Public domain W3C validator