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

Theorem pcfac 13944
Description: Calculate the prime count of a factorial. (Contributed by Mario Carneiro, 11-Mar-2014.) (Revised by Mario Carneiro, 21-May-2014.)
Assertion
Ref Expression
pcfac  |-  ( ( N  e.  NN0  /\  M  e.  ( ZZ>= `  N )  /\  P  e.  Prime )  ->  ( P  pCnt  ( ! `  N ) )  = 
sum_ k  e.  ( 1 ... M ) ( |_ `  ( N  /  ( P ^
k ) ) ) )
Distinct variable groups:    P, k    k, N    k, M

Proof of Theorem pcfac
Dummy variables  m  n  x are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 fveq2 5679 . . . . . . . 8  |-  ( x  =  0  ->  ( ZZ>=
`  x )  =  ( ZZ>= `  0 )
)
2 fveq2 5679 . . . . . . . . . 10  |-  ( x  =  0  ->  ( ! `  x )  =  ( ! ` 
0 ) )
32oveq2d 6096 . . . . . . . . 9  |-  ( x  =  0  ->  ( P  pCnt  ( ! `  x ) )  =  ( P  pCnt  ( ! `  0 )
) )
4 oveq1 6087 . . . . . . . . . . 11  |-  ( x  =  0  ->  (
x  /  ( P ^ k ) )  =  ( 0  / 
( P ^ k
) ) )
54fveq2d 5683 . . . . . . . . . 10  |-  ( x  =  0  ->  ( |_ `  ( x  / 
( P ^ k
) ) )  =  ( |_ `  (
0  /  ( P ^ k ) ) ) )
65sumeq2sdv 13165 . . . . . . . . 9  |-  ( x  =  0  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( 0  /  ( P ^ k ) ) ) )
73, 6eqeq12d 2447 . . . . . . . 8  |-  ( x  =  0  ->  (
( P  pCnt  ( ! `  x )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  <->  ( P  pCnt  ( ! `  0 ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( 0  /  ( P ^ k ) ) ) ) )
81, 7raleqbidv 2921 . . . . . . 7  |-  ( x  =  0  ->  ( A. m  e.  ( ZZ>=
`  x ) ( P  pCnt  ( ! `  x ) )  = 
sum_ k  e.  ( 1 ... m ) ( |_ `  (
x  /  ( P ^ k ) ) )  <->  A. m  e.  (
ZZ>= `  0 ) ( P  pCnt  ( ! `  0 ) )  =  sum_ k  e.  ( 1 ... m ) ( |_ `  (
0  /  ( P ^ k ) ) ) ) )
98imbi2d 316 . . . . . 6  |-  ( x  =  0  ->  (
( P  e.  Prime  ->  A. m  e.  ( ZZ>=
`  x ) ( P  pCnt  ( ! `  x ) )  = 
sum_ k  e.  ( 1 ... m ) ( |_ `  (
x  /  ( P ^ k ) ) ) )  <->  ( P  e.  Prime  ->  A. m  e.  ( ZZ>= `  0 )
( P  pCnt  ( ! `  0 )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( 0  /  ( P ^ k ) ) ) ) ) )
10 fveq2 5679 . . . . . . . 8  |-  ( x  =  n  ->  ( ZZ>=
`  x )  =  ( ZZ>= `  n )
)
11 fveq2 5679 . . . . . . . . . 10  |-  ( x  =  n  ->  ( ! `  x )  =  ( ! `  n ) )
1211oveq2d 6096 . . . . . . . . 9  |-  ( x  =  n  ->  ( P  pCnt  ( ! `  x ) )  =  ( P  pCnt  ( ! `  n )
) )
13 oveq1 6087 . . . . . . . . . . 11  |-  ( x  =  n  ->  (
x  /  ( P ^ k ) )  =  ( n  / 
( P ^ k
) ) )
1413fveq2d 5683 . . . . . . . . . 10  |-  ( x  =  n  ->  ( |_ `  ( x  / 
( P ^ k
) ) )  =  ( |_ `  (
n  /  ( P ^ k ) ) ) )
1514sumeq2sdv 13165 . . . . . . . . 9  |-  ( x  =  n  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( n  /  ( P ^ k ) ) ) )
1612, 15eqeq12d 2447 . . . . . . . 8  |-  ( x  =  n  ->  (
( P  pCnt  ( ! `  x )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  <->  ( P  pCnt  ( ! `  n ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( n  /  ( P ^ k ) ) ) ) )
1710, 16raleqbidv 2921 . . . . . . 7  |-  ( x  =  n  ->  ( A. m  e.  ( ZZ>=
`  x ) ( P  pCnt  ( ! `  x ) )  = 
sum_ k  e.  ( 1 ... m ) ( |_ `  (
x  /  ( P ^ k ) ) )  <->  A. m  e.  (
ZZ>= `  n ) ( P  pCnt  ( ! `  n ) )  = 
sum_ k  e.  ( 1 ... m ) ( |_ `  (
n  /  ( P ^ k ) ) ) ) )
1817imbi2d 316 . . . . . 6  |-  ( x  =  n  ->  (
( P  e.  Prime  ->  A. m  e.  ( ZZ>=
`  x ) ( P  pCnt  ( ! `  x ) )  = 
sum_ k  e.  ( 1 ... m ) ( |_ `  (
x  /  ( P ^ k ) ) ) )  <->  ( P  e.  Prime  ->  A. m  e.  ( ZZ>= `  n )
( P  pCnt  ( ! `  n )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( n  /  ( P ^ k ) ) ) ) ) )
19 fveq2 5679 . . . . . . . 8  |-  ( x  =  ( n  + 
1 )  ->  ( ZZ>=
`  x )  =  ( ZZ>= `  ( n  +  1 ) ) )
20 fveq2 5679 . . . . . . . . . 10  |-  ( x  =  ( n  + 
1 )  ->  ( ! `  x )  =  ( ! `  ( n  +  1
) ) )
2120oveq2d 6096 . . . . . . . . 9  |-  ( x  =  ( n  + 
1 )  ->  ( P  pCnt  ( ! `  x ) )  =  ( P  pCnt  ( ! `  ( n  +  1 ) ) ) )
22 oveq1 6087 . . . . . . . . . . 11  |-  ( x  =  ( n  + 
1 )  ->  (
x  /  ( P ^ k ) )  =  ( ( n  +  1 )  / 
( P ^ k
) ) )
2322fveq2d 5683 . . . . . . . . . 10  |-  ( x  =  ( n  + 
1 )  ->  ( |_ `  ( x  / 
( P ^ k
) ) )  =  ( |_ `  (
( n  +  1 )  /  ( P ^ k ) ) ) )
2423sumeq2sdv 13165 . . . . . . . . 9  |-  ( x  =  ( n  + 
1 )  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( ( n  + 
1 )  /  ( P ^ k ) ) ) )
2521, 24eqeq12d 2447 . . . . . . . 8  |-  ( x  =  ( n  + 
1 )  ->  (
( P  pCnt  ( ! `  x )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  <->  ( P  pCnt  ( ! `  ( n  +  1 ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( ( n  + 
1 )  /  ( P ^ k ) ) ) ) )
2619, 25raleqbidv 2921 . . . . . . 7  |-  ( x  =  ( n  + 
1 )  ->  ( A. m  e.  ( ZZ>=
`  x ) ( P  pCnt  ( ! `  x ) )  = 
sum_ k  e.  ( 1 ... m ) ( |_ `  (
x  /  ( P ^ k ) ) )  <->  A. m  e.  (
ZZ>= `  ( n  + 
1 ) ) ( P  pCnt  ( ! `  ( n  +  1 ) ) )  = 
sum_ k  e.  ( 1 ... m ) ( |_ `  (
( n  +  1 )  /  ( P ^ k ) ) ) ) )
2726imbi2d 316 . . . . . 6  |-  ( x  =  ( n  + 
1 )  ->  (
( P  e.  Prime  ->  A. m  e.  ( ZZ>=
`  x ) ( P  pCnt  ( ! `  x ) )  = 
sum_ k  e.  ( 1 ... m ) ( |_ `  (
x  /  ( P ^ k ) ) ) )  <->  ( P  e.  Prime  ->  A. m  e.  ( ZZ>= `  ( n  +  1 ) ) ( P  pCnt  ( ! `  ( n  +  1 ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( ( n  + 
1 )  /  ( P ^ k ) ) ) ) ) )
28 fveq2 5679 . . . . . . . 8  |-  ( x  =  N  ->  ( ZZ>=
`  x )  =  ( ZZ>= `  N )
)
29 fveq2 5679 . . . . . . . . . 10  |-  ( x  =  N  ->  ( ! `  x )  =  ( ! `  N ) )
3029oveq2d 6096 . . . . . . . . 9  |-  ( x  =  N  ->  ( P  pCnt  ( ! `  x ) )  =  ( P  pCnt  ( ! `  N )
) )
31 oveq1 6087 . . . . . . . . . . 11  |-  ( x  =  N  ->  (
x  /  ( P ^ k ) )  =  ( N  / 
( P ^ k
) ) )
3231fveq2d 5683 . . . . . . . . . 10  |-  ( x  =  N  ->  ( |_ `  ( x  / 
( P ^ k
) ) )  =  ( |_ `  ( N  /  ( P ^
k ) ) ) )
3332sumeq2sdv 13165 . . . . . . . . 9  |-  ( x  =  N  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( N  /  ( P ^ k ) ) ) )
3430, 33eqeq12d 2447 . . . . . . . 8  |-  ( x  =  N  ->  (
( P  pCnt  ( ! `  x )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  <->  ( P  pCnt  ( ! `  N ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( N  /  ( P ^ k ) ) ) ) )
3528, 34raleqbidv 2921 . . . . . . 7  |-  ( x  =  N  ->  ( A. m  e.  ( ZZ>=
`  x ) ( P  pCnt  ( ! `  x ) )  = 
sum_ k  e.  ( 1 ... m ) ( |_ `  (
x  /  ( P ^ k ) ) )  <->  A. m  e.  (
ZZ>= `  N ) ( P  pCnt  ( ! `  N ) )  = 
sum_ k  e.  ( 1 ... m ) ( |_ `  ( N  /  ( P ^
k ) ) ) ) )
3635imbi2d 316 . . . . . 6  |-  ( x  =  N  ->  (
( P  e.  Prime  ->  A. m  e.  ( ZZ>=
`  x ) ( P  pCnt  ( ! `  x ) )  = 
sum_ k  e.  ( 1 ... m ) ( |_ `  (
x  /  ( P ^ k ) ) ) )  <->  ( P  e.  Prime  ->  A. m  e.  ( ZZ>= `  N )
( P  pCnt  ( ! `  N )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( N  /  ( P ^ k ) ) ) ) ) )
37 fzfid 11779 . . . . . . . . 9  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  ( 1 ... m )  e. 
Fin )
38 sumz 13183 . . . . . . . . . 10  |-  ( ( ( 1 ... m
)  C_  ( ZZ>= ` 
1 )  \/  (
1 ... m )  e. 
Fin )  ->  sum_ k  e.  ( 1 ... m
) 0  =  0 )
3938olcs 395 . . . . . . . . 9  |-  ( ( 1 ... m )  e.  Fin  ->  sum_ k  e.  ( 1 ... m
) 0  =  0 )
4037, 39syl 16 . . . . . . . 8  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  sum_ k  e.  ( 1 ... m
) 0  =  0 )
41 0nn0 10582 . . . . . . . . . . 11  |-  0  e.  NN0
4241a1i 11 . . . . . . . . . 10  |-  ( ( ( P  e.  Prime  /\  m  e.  ( ZZ>= ` 
0 ) )  /\  k  e.  ( 1 ... m ) )  ->  0  e.  NN0 )
43 elfznn 11465 . . . . . . . . . . . . 13  |-  ( k  e.  ( 1 ... m )  ->  k  e.  NN )
4443nnnn0d 10624 . . . . . . . . . . . 12  |-  ( k  e.  ( 1 ... m )  ->  k  e.  NN0 )
45 nn0uz 10883 . . . . . . . . . . . 12  |-  NN0  =  ( ZZ>= `  0 )
4644, 45syl6eleq 2523 . . . . . . . . . . 11  |-  ( k  e.  ( 1 ... m )  ->  k  e.  ( ZZ>= `  0 )
)
4746adantl 463 . . . . . . . . . 10  |-  ( ( ( P  e.  Prime  /\  m  e.  ( ZZ>= ` 
0 ) )  /\  k  e.  ( 1 ... m ) )  ->  k  e.  (
ZZ>= `  0 ) )
48 simpll 746 . . . . . . . . . 10  |-  ( ( ( P  e.  Prime  /\  m  e.  ( ZZ>= ` 
0 ) )  /\  k  e.  ( 1 ... m ) )  ->  P  e.  Prime )
49 pcfaclem 13943 . . . . . . . . . 10  |-  ( ( 0  e.  NN0  /\  k  e.  ( ZZ>= ` 
0 )  /\  P  e.  Prime )  ->  ( |_ `  ( 0  / 
( P ^ k
) ) )  =  0 )
5042, 47, 48, 49syl3anc 1211 . . . . . . . . 9  |-  ( ( ( P  e.  Prime  /\  m  e.  ( ZZ>= ` 
0 ) )  /\  k  e.  ( 1 ... m ) )  ->  ( |_ `  ( 0  /  ( P ^ k ) ) )  =  0 )
5150sumeq2dv 13164 . . . . . . . 8  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( 0  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) 0 )
52 fac0 12038 . . . . . . . . . . 11  |-  ( ! `
 0 )  =  1
5352oveq2i 6091 . . . . . . . . . 10  |-  ( P 
pCnt  ( ! ` 
0 ) )  =  ( P  pCnt  1
)
54 pc1 13905 . . . . . . . . . 10  |-  ( P  e.  Prime  ->  ( P 
pCnt  1 )  =  0 )
5553, 54syl5eq 2477 . . . . . . . . 9  |-  ( P  e.  Prime  ->  ( P 
pCnt  ( ! ` 
0 ) )  =  0 )
5655adantr 462 . . . . . . . 8  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  ( P  pCnt  ( ! `  0
) )  =  0 )
5740, 51, 563eqtr4rd 2476 . . . . . . 7  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  ( P  pCnt  ( ! `  0
) )  =  sum_ k  e.  ( 1 ... m ) ( |_ `  ( 0  /  ( P ^
k ) ) ) )
5857ralrimiva 2789 . . . . . 6  |-  ( P  e.  Prime  ->  A. m  e.  ( ZZ>= `  0 )
( P  pCnt  ( ! `  0 )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( 0  /  ( P ^ k ) ) ) )
59 nn0z 10657 . . . . . . . . . . . 12  |-  ( n  e.  NN0  ->  n  e.  ZZ )
6059adantr 462 . . . . . . . . . . 11  |-  ( ( n  e.  NN0  /\  P  e.  Prime )  ->  n  e.  ZZ )
61 uzid 10863 . . . . . . . . . . 11  |-  ( n  e.  ZZ  ->  n  e.  ( ZZ>= `  n )
)
62 peano2uz 10896 . . . . . . . . . . 11  |-  ( n  e.  ( ZZ>= `  n
)  ->  ( n  +  1 )  e.  ( ZZ>= `  n )
)
6360, 61, 623syl 20 . . . . . . . . . 10  |-  ( ( n  e.  NN0  /\  P  e.  Prime )  -> 
( n  +  1 )  e.  ( ZZ>= `  n ) )
64 uzss 10869 . . . . . . . . . 10  |-  ( ( n  +  1 )  e.  ( ZZ>= `  n
)  ->  ( ZZ>= `  ( n  +  1
) )  C_  ( ZZ>=
`  n ) )
65 ssralv 3404 . . . . . . . . . 10  |-  ( (
ZZ>= `  ( n  + 
1 ) )  C_  ( ZZ>= `  n )  ->  ( A. m  e.  ( ZZ>= `  n )
( P  pCnt  ( ! `  n )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( n  /  ( P ^ k ) ) )  ->  A. m  e.  ( ZZ>= `  ( n  +  1 ) ) ( P  pCnt  ( ! `  n )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( n  /  ( P ^ k ) ) ) ) )
6663, 64, 653syl 20 . . . . . . . . 9  |-  ( ( n  e.  NN0  /\  P  e.  Prime )  -> 
( A. m  e.  ( ZZ>= `  n )
( P  pCnt  ( ! `  n )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( n  /  ( P ^ k ) ) )  ->  A. m  e.  ( ZZ>= `  ( n  +  1 ) ) ( P  pCnt  ( ! `  n )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( n  /  ( P ^ k ) ) ) ) )
67 oveq1 6087 . . . . . . . . . . 11  |-  ( ( P  pCnt  ( ! `  n ) )  = 
sum_ k  e.  ( 1 ... m ) ( |_ `  (
n  /  ( P ^ k ) ) )  ->  ( ( P  pCnt  ( ! `  n ) )  +  ( P  pCnt  (
n  +  1 ) ) )  =  (
sum_ k  e.  ( 1 ... m ) ( |_ `  (
n  /  ( P ^ k ) ) )  +  ( P 
pCnt  ( n  + 
1 ) ) ) )
68 simpll 746 . . . . . . . . . . . . . . 15  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  n  e.  NN0 )
69 facp1 12040 . . . . . . . . . . . . . . 15  |-  ( n  e.  NN0  ->  ( ! `
 ( n  + 
1 ) )  =  ( ( ! `  n )  x.  (
n  +  1 ) ) )
7068, 69syl 16 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ! `  ( n  +  1
) )  =  ( ( ! `  n
)  x.  ( n  +  1 ) ) )
7170oveq2d 6096 . . . . . . . . . . . . 13  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( ! `  ( n  +  1 ) ) )  =  ( P 
pCnt  ( ( ! `
 n )  x.  ( n  +  1 ) ) ) )
72 simplr 747 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  P  e.  Prime )
73 faccl 12045 . . . . . . . . . . . . . . 15  |-  ( n  e.  NN0  ->  ( ! `
 n )  e.  NN )
74 nnz 10656 . . . . . . . . . . . . . . . 16  |-  ( ( ! `  n )  e.  NN  ->  ( ! `  n )  e.  ZZ )
75 nnne0 10342 . . . . . . . . . . . . . . . 16  |-  ( ( ! `  n )  e.  NN  ->  ( ! `  n )  =/=  0 )
7674, 75jca 529 . . . . . . . . . . . . . . 15  |-  ( ( ! `  n )  e.  NN  ->  (
( ! `  n
)  e.  ZZ  /\  ( ! `  n )  =/=  0 ) )
7768, 73, 763syl 20 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( ! `
 n )  e.  ZZ  /\  ( ! `
 n )  =/=  0 ) )
78 nn0p1nn 10607 . . . . . . . . . . . . . . 15  |-  ( n  e.  NN0  ->  ( n  +  1 )  e.  NN )
79 nnz 10656 . . . . . . . . . . . . . . . 16  |-  ( ( n  +  1 )  e.  NN  ->  (
n  +  1 )  e.  ZZ )
80 nnne0 10342 . . . . . . . . . . . . . . . 16  |-  ( ( n  +  1 )  e.  NN  ->  (
n  +  1 )  =/=  0 )
8179, 80jca 529 . . . . . . . . . . . . . . 15  |-  ( ( n  +  1 )  e.  NN  ->  (
( n  +  1 )  e.  ZZ  /\  ( n  +  1
)  =/=  0 ) )
8268, 78, 813syl 20 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( n  +  1 )  e.  ZZ  /\  ( n  +  1 )  =/=  0 ) )
83 pcmul 13901 . . . . . . . . . . . . . 14  |-  ( ( P  e.  Prime  /\  (
( ! `  n
)  e.  ZZ  /\  ( ! `  n )  =/=  0 )  /\  ( ( n  + 
1 )  e.  ZZ  /\  ( n  +  1 )  =/=  0 ) )  ->  ( P  pCnt  ( ( ! `  n )  x.  (
n  +  1 ) ) )  =  ( ( P  pCnt  ( ! `  n )
)  +  ( P 
pCnt  ( n  + 
1 ) ) ) )
8472, 77, 82, 83syl3anc 1211 . . . . . . . . . . . . 13  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( ( ! `  n
)  x.  ( n  +  1 ) ) )  =  ( ( P  pCnt  ( ! `  n ) )  +  ( P  pCnt  (
n  +  1 ) ) ) )
8571, 84eqtr2d 2466 . . . . . . . . . . . 12  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P 
pCnt  ( ! `  n ) )  +  ( P  pCnt  (
n  +  1 ) ) )  =  ( P  pCnt  ( ! `  ( n  +  1 ) ) ) )
8668adantr 462 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  n  e.  NN0 )
8786nn0zd 10733 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  n  e.  ZZ )
88 prmnn 13749 . . . . . . . . . . . . . . . . . . 19  |-  ( P  e.  Prime  ->  P  e.  NN )
8988ad2antlr 719 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  P  e.  NN )
90 nnexpcl 11862 . . . . . . . . . . . . . . . . . 18  |-  ( ( P  e.  NN  /\  k  e.  NN0 )  -> 
( P ^ k
)  e.  NN )
9189, 44, 90syl2an 474 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( P ^ k )  e.  NN )
92 fldivp1 13942 . . . . . . . . . . . . . . . . 17  |-  ( ( n  e.  ZZ  /\  ( P ^ k )  e.  NN )  -> 
( ( |_ `  ( ( n  + 
1 )  /  ( P ^ k ) ) )  -  ( |_
`  ( n  / 
( P ^ k
) ) ) )  =  if ( ( P ^ k ) 
||  ( n  + 
1 ) ,  1 ,  0 ) )
9387, 91, 92syl2anc 654 . . . . . . . . . . . . . . . 16  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
( |_ `  (
( n  +  1 )  /  ( P ^ k ) ) )  -  ( |_
`  ( n  / 
( P ^ k
) ) ) )  =  if ( ( P ^ k ) 
||  ( n  + 
1 ) ,  1 ,  0 ) )
94 elfzuz 11436 . . . . . . . . . . . . . . . . . . 19  |-  ( k  e.  ( 1 ... m )  ->  k  e.  ( ZZ>= `  1 )
)
9568, 78syl 16 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  e.  NN )
9672, 95pccld 13900 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  e.  NN0 )
9796nn0zd 10733 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  e.  ZZ )
98 elfz5 11432 . . . . . . . . . . . . . . . . . . 19  |-  ( ( k  e.  ( ZZ>= ` 
1 )  /\  ( P  pCnt  ( n  + 
1 ) )  e.  ZZ )  ->  (
k  e.  ( 1 ... ( P  pCnt  ( n  +  1 ) ) )  <->  k  <_  ( P  pCnt  ( n  +  1 ) ) ) )
9994, 97, 98syl2anr 475 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
k  e.  ( 1 ... ( P  pCnt  ( n  +  1 ) ) )  <->  k  <_  ( P  pCnt  ( n  +  1 ) ) ) )
100 simpllr 751 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  P  e.  Prime )
10186, 78syl 16 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
n  +  1 )  e.  NN )
102101nnzd 10734 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
n  +  1 )  e.  ZZ )
10344adantl 463 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  k  e.  NN0 )
104 pcdvdsb 13918 . . . . . . . . . . . . . . . . . . 19  |-  ( ( P  e.  Prime  /\  (
n  +  1 )  e.  ZZ  /\  k  e.  NN0 )  ->  (
k  <_  ( P  pCnt  ( n  +  1 ) )  <->  ( P ^ k )  ||  ( n  +  1
) ) )
105100, 102, 103, 104syl3anc 1211 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
k  <_  ( P  pCnt  ( n  +  1 ) )  <->  ( P ^ k )  ||  ( n  +  1
) ) )
10699, 105bitr2d 254 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
( P ^ k
)  ||  ( n  +  1 )  <->  k  e.  ( 1 ... ( P  pCnt  ( n  + 
1 ) ) ) ) )
107106ifbid 3799 . . . . . . . . . . . . . . . 16  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  if ( ( P ^
k )  ||  (
n  +  1 ) ,  1 ,  0 )  =  if ( k  e.  ( 1 ... ( P  pCnt  ( n  +  1 ) ) ) ,  1 ,  0 ) )
10893, 107eqtrd 2465 . . . . . . . . . . . . . . 15  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
( |_ `  (
( n  +  1 )  /  ( P ^ k ) ) )  -  ( |_
`  ( n  / 
( P ^ k
) ) ) )  =  if ( k  e.  ( 1 ... ( P  pCnt  (
n  +  1 ) ) ) ,  1 ,  0 ) )
109108sumeq2dv 13164 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  sum_ k  e.  ( 1 ... m ) ( ( |_ `  ( ( n  + 
1 )  /  ( P ^ k ) ) )  -  ( |_
`  ( n  / 
( P ^ k
) ) ) )  =  sum_ k  e.  ( 1 ... m ) if ( k  e.  ( 1 ... ( P  pCnt  ( n  + 
1 ) ) ) ,  1 ,  0 ) )
110 fzfid 11779 . . . . . . . . . . . . . . 15  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( 1 ... m )  e.  Fin )
11168nn0red 10625 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  n  e.  RR )
112 peano2re 9530 . . . . . . . . . . . . . . . . . . . 20  |-  ( n  e.  RR  ->  (
n  +  1 )  e.  RR )
113111, 112syl 16 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  e.  RR )
114113adantr 462 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
n  +  1 )  e.  RR )
115114, 91nndivred 10358 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
( n  +  1 )  /  ( P ^ k ) )  e.  RR )
116115flcld 11632 . . . . . . . . . . . . . . . 16  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( |_ `  ( ( n  +  1 )  / 
( P ^ k
) ) )  e.  ZZ )
117116zcnd 10736 . . . . . . . . . . . . . . 15  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( |_ `  ( ( n  +  1 )  / 
( P ^ k
) ) )  e.  CC )
118111adantr 462 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  n  e.  RR )
119118, 91nndivred 10358 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
n  /  ( P ^ k ) )  e.  RR )
120119flcld 11632 . . . . . . . . . . . . . . . 16  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( |_ `  ( n  / 
( P ^ k
) ) )  e.  ZZ )
121120zcnd 10736 . . . . . . . . . . . . . . 15  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( |_ `  ( n  / 
( P ^ k
) ) )  e.  CC )
122110, 117, 121fsumsub 13238 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  sum_ k  e.  ( 1 ... m ) ( ( |_ `  ( ( n  + 
1 )  /  ( P ^ k ) ) )  -  ( |_
`  ( n  / 
( P ^ k
) ) ) )  =  ( sum_ k  e.  ( 1 ... m
) ( |_ `  ( ( n  + 
1 )  /  ( P ^ k ) ) )  -  sum_ k  e.  ( 1 ... m
) ( |_ `  ( n  /  ( P ^ k ) ) ) ) )
123 fzfi 11778 . . . . . . . . . . . . . . . 16  |-  ( 1 ... m )  e. 
Fin
12496nn0red 10625 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  e.  RR )
125 eluzelz 10858 . . . . . . . . . . . . . . . . . . . . 21  |-  ( m  e.  ( ZZ>= `  (
n  +  1 ) )  ->  m  e.  ZZ )
126125adantl 463 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  m  e.  ZZ )
127126zred 10735 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  m  e.  RR )
128 prmuz2 13764 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( P  e.  Prime  ->  P  e.  ( ZZ>= `  2 )
)
129128ad2antlr 719 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  P  e.  (
ZZ>= `  2 ) )
13095nnnn0d 10624 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  e.  NN0 )
131 bernneq3 11976 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( P  e.  ( ZZ>= ` 
2 )  /\  (
n  +  1 )  e.  NN0 )  -> 
( n  +  1 )  <  ( P ^ ( n  + 
1 ) ) )
132129, 130, 131syl2anc 654 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  <  ( P ^ ( n  + 
1 ) ) )
133124, 113letrid 9512 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P 
pCnt  ( n  + 
1 ) )  <_ 
( n  +  1 )  \/  ( n  +  1 )  <_ 
( P  pCnt  (
n  +  1 ) ) ) )
134133ord 377 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( -.  ( P  pCnt  ( n  + 
1 ) )  <_ 
( n  +  1 )  ->  ( n  +  1 )  <_ 
( P  pCnt  (
n  +  1 ) ) ) )
13595nnzd 10734 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  e.  ZZ )
136 pcdvdsb 13918 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( P  e.  Prime  /\  (
n  +  1 )  e.  ZZ  /\  (
n  +  1 )  e.  NN0 )  -> 
( ( n  + 
1 )  <_  ( P  pCnt  ( n  + 
1 ) )  <->  ( P ^ ( n  + 
1 ) )  ||  ( n  +  1
) ) )
13772, 135, 130, 136syl3anc 1211 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( n  +  1 )  <_ 
( P  pCnt  (
n  +  1 ) )  <->  ( P ^
( n  +  1 ) )  ||  (
n  +  1 ) ) )
13889, 130nnexpcld 12013 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P ^
( n  +  1 ) )  e.  NN )
139138nnzd 10734 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P ^
( n  +  1 ) )  e.  ZZ )
140 dvdsle 13561 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( ( P ^ (
n  +  1 ) )  e.  ZZ  /\  ( n  +  1
)  e.  NN )  ->  ( ( P ^ ( n  + 
1 ) )  ||  ( n  +  1
)  ->  ( P ^ ( n  + 
1 ) )  <_ 
( n  +  1 ) ) )
141139, 95, 140syl2anc 654 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P ^ ( n  + 
1 ) )  ||  ( n  +  1
)  ->  ( P ^ ( n  + 
1 ) )  <_ 
( n  +  1 ) ) )
142138nnred 10325 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P ^
( n  +  1 ) )  e.  RR )
143142, 113lenltd 9508 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P ^ ( n  + 
1 ) )  <_ 
( n  +  1 )  <->  -.  ( n  +  1 )  < 
( P ^ (
n  +  1 ) ) ) )
144141, 143sylibd 214 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P ^ ( n  + 
1 ) )  ||  ( n  +  1
)  ->  -.  (
n  +  1 )  <  ( P ^
( n  +  1 ) ) ) )
145137, 144sylbid 215 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( n  +  1 )  <_ 
( P  pCnt  (
n  +  1 ) )  ->  -.  (
n  +  1 )  <  ( P ^
( n  +  1 ) ) ) )
146134, 145syld 44 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( -.  ( P  pCnt  ( n  + 
1 ) )  <_ 
( n  +  1 )  ->  -.  (
n  +  1 )  <  ( P ^
( n  +  1 ) ) ) )
147132, 146mt4d 138 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  <_  ( n  +  1 ) )
148 eluzle 10861 . . . . . . . . . . . . . . . . . . . 20  |-  ( m  e.  ( ZZ>= `  (
n  +  1 ) )  ->  ( n  +  1 )  <_  m )
149148adantl 463 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  <_  m
)
150124, 113, 127, 147, 149letrd 9516 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  <_  m )
151 eluz 10862 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( P  pCnt  (
n  +  1 ) )  e.  ZZ  /\  m  e.  ZZ )  ->  ( m  e.  (
ZZ>= `  ( P  pCnt  ( n  +  1 ) ) )  <->  ( P  pCnt  ( n  +  1 ) )  <_  m
) )
15297, 126, 151syl2anc 654 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( m  e.  ( ZZ>= `  ( P  pCnt  ( n  +  1 ) ) )  <->  ( P  pCnt  ( n  +  1 ) )  <_  m
) )
153150, 152mpbird 232 . . . . . . . . . . . . . . . . 17  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  m  e.  (
ZZ>= `  ( P  pCnt  ( n  +  1 ) ) ) )
154 fzss2 11485 . . . . . . . . . . . . . . . . 17  |-  ( m  e.  ( ZZ>= `  ( P  pCnt  ( n  + 
1 ) ) )  ->  ( 1 ... ( P  pCnt  (
n  +  1 ) ) )  C_  (
1 ... m ) )
155153, 154syl 16 . . . . . . . . . . . . . . . 16  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( 1 ... ( P  pCnt  (
n  +  1 ) ) )  C_  (
1 ... m ) )
156 sumhash 13941 . . . . . . . . . . . . . . . 16  |-  ( ( ( 1 ... m
)  e.  Fin  /\  ( 1 ... ( P  pCnt  ( n  + 
1 ) ) ) 
C_  ( 1 ... m ) )  ->  sum_ k  e.  ( 1 ... m ) if ( k  e.  ( 1 ... ( P 
pCnt  ( n  + 
1 ) ) ) ,  1 ,  0 )  =  ( # `  ( 1 ... ( P  pCnt  ( n  + 
1 ) ) ) ) )
157123, 155, 156sylancr 656 . . . . . . . . . . . . . . 15  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  sum_ k  e.  ( 1 ... m ) if ( k  e.  ( 1 ... ( P  pCnt  ( n  + 
1 ) ) ) ,  1 ,  0 )  =  ( # `  ( 1 ... ( P  pCnt  ( n  + 
1 ) ) ) ) )
158 hashfz1 12101 . . . . . . . . . . . . . . . 16  |-  ( ( P  pCnt  ( n  +  1 ) )  e.  NN0  ->  ( # `  ( 1 ... ( P  pCnt  ( n  + 
1 ) ) ) )  =  ( P 
pCnt  ( n  + 
1 ) ) )
15996, 158syl 16 . . . . . . . . . . . . . . 15  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( # `  (
1 ... ( P  pCnt  ( n  +  1 ) ) ) )  =  ( P  pCnt  (
n  +  1 ) ) )
160157, 159eqtrd 2465 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  sum_ k  e.  ( 1 ... m ) if ( k  e.  ( 1 ... ( P  pCnt  ( n  + 
1 ) ) ) ,  1 ,  0 )  =  ( P 
pCnt  ( n  + 
1 ) ) )
161109, 122, 1603eqtr3d 2473 . . . . . . . . . . . . 13  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( sum_ k  e.  ( 1 ... m
) ( |_ `  ( ( n  + 
1 )  /  ( P ^ k ) ) )  -  sum_ k  e.  ( 1 ... m
) ( |_ `  ( n  /  ( P ^ k ) ) ) )  =  ( P  pCnt  ( n  +  1 ) ) )
162110, 117fsumcl 13194 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  sum_ k  e.  ( 1 ... m ) ( |_ `  (
( n  +  1 )  /  ( P ^ k ) ) )  e.  CC )
163110, 121fsumcl 13194 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  sum_ k  e.  ( 1 ... m ) ( |_ `  (
n  /  ( P ^ k ) ) )  e.  CC )
164124recnd 9400 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  e.  CC )
165162, 163, 164subaddd 9725 . . . . . . . . . . . . 13  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( sum_ k  e.  ( 1 ... m ) ( |_ `  ( ( n  +  1 )  /  ( P ^
k ) ) )  -  sum_ k  e.  ( 1 ... m ) ( |_ `  (
n  /  ( P ^ k ) ) ) )  =  ( P  pCnt  ( n  +  1 ) )  <-> 
( sum_ k  e.  ( 1 ... m ) ( |_ `  (
n  /  ( P ^ k ) ) )  +  ( P 
pCnt  ( n  + 
1 ) ) )  =  sum_ k  e.  ( 1 ... m ) ( |_ `  (
( n  +  1 )  /  ( P ^ k ) ) ) ) )
166161, 165mpbid 210 . . . . . . . . . . . 12  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( sum_ k  e.  ( 1 ... m
) ( |_ `  ( n  /  ( P ^ k ) ) )  +  ( P 
pCnt  ( n  + 
1 ) ) )  =  sum_ k  e.  ( 1 ... m ) ( |_ `  (
( n  +  1 )  /  ( P ^ k ) ) ) )
16785, 166eqeq12d 2447 . . . . . . . . . . 11  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( ( P  pCnt  ( ! `  n ) )  +  ( P  pCnt  (
n  +  1 ) ) )  =  (
sum_ k  e.  ( 1 ... m ) ( |_ `  (
n  /  ( P ^ k ) ) )  +  ( P 
pCnt  ( n  + 
1 ) ) )  <-> 
( P  pCnt  ( ! `  ( n  +  1 ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( ( n  + 
1 )  /  ( P ^ k ) ) ) ) )
16867, 167syl5ib 219 . . . . . . . . . 10  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P 
pCnt  ( ! `  n ) )  = 
sum_ k  e.  ( 1 ... m ) ( |_ `  (
n  /  ( P ^ k ) ) )  ->  ( P  pCnt  ( ! `  (
n  +  1 ) ) )  =  sum_ k  e.  ( 1 ... m ) ( |_ `  ( ( n  +  1 )  /  ( P ^
k ) ) ) ) )
169168ralimdva 2784 . . . . . . . . 9  |-  ( ( n  e.  NN0  /\  P  e.  Prime )  -> 
( A. m  e.  ( ZZ>= `  ( n  +  1 ) ) ( P  pCnt  ( ! `  n )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( n  /  ( P ^ k ) ) )  ->  A. m  e.  ( ZZ>= `  ( n  +  1 ) ) ( P  pCnt  ( ! `  ( n  +  1 ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( ( n  + 
1 )  /  ( P ^ k ) ) ) ) )
17066, 169syld 44 . . . . . . . 8  |-  ( ( n  e.  NN0  /\  P  e.  Prime )  -> 
( A. m  e.  ( ZZ>= `  n )
( P  pCnt  ( ! `  n )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( n  /  ( P ^ k ) ) )  ->  A. m  e.  ( ZZ>= `  ( n  +  1 ) ) ( P  pCnt  ( ! `  ( n  +  1 ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( ( n  + 
1 )  /  ( P ^ k ) ) ) ) )
171170ex 434 . . . . . . 7  |-  ( n  e.  NN0  ->  ( P  e.  Prime  ->  ( A. m  e.  ( ZZ>= `  n ) ( P 
pCnt  ( ! `  n ) )  = 
sum_ k  e.  ( 1 ... m ) ( |_ `  (
n  /  ( P ^ k ) ) )  ->  A. m  e.  ( ZZ>= `  ( n  +  1 ) ) ( P  pCnt  ( ! `  ( n  +  1 ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( ( n  + 
1 )  /  ( P ^ k ) ) ) ) ) )
172171a2d 26 . . . . . 6  |-  ( n  e.  NN0  ->  ( ( P  e.  Prime  ->  A. m  e.  ( ZZ>= `  n ) ( P 
pCnt  ( ! `  n ) )  = 
sum_ k  e.  ( 1 ... m ) ( |_ `  (
n  /  ( P ^ k ) ) ) )  ->  ( P  e.  Prime  ->  A. m  e.  ( ZZ>= `  ( n  +  1 ) ) ( P  pCnt  ( ! `  ( n  +  1 ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( ( n  + 
1 )  /  ( P ^ k ) ) ) ) ) )
1739, 18, 27, 36, 58, 172nn0ind 10726 . . . . 5  |-  ( N  e.  NN0  ->  ( P  e.  Prime  ->  A. m  e.  ( ZZ>= `  N )
( P  pCnt  ( ! `  N )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( N  /  ( P ^ k ) ) ) ) )
174173imp 429 . . . 4  |-  ( ( N  e.  NN0  /\  P  e.  Prime )  ->  A. m  e.  ( ZZ>=
`  N ) ( P  pCnt  ( ! `  N ) )  = 
sum_ k  e.  ( 1 ... m ) ( |_ `  ( N  /  ( P ^
k ) ) ) )
175 oveq2 6088 . . . . . . 7  |-  ( m  =  M  ->  (
1 ... m )  =  ( 1 ... M
) )
176175sumeq1d 13162 . . . . . 6  |-  ( m  =  M  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( N  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... M
) ( |_ `  ( N  /  ( P ^ k ) ) ) )
177176eqeq2d 2444 . . . . 5  |-  ( m  =  M  ->  (
( P  pCnt  ( ! `  N )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( N  /  ( P ^ k ) ) )  <->  ( P  pCnt  ( ! `  N ) )  =  sum_ k  e.  ( 1 ... M
) ( |_ `  ( N  /  ( P ^ k ) ) ) ) )
178177rspcv 3058 . . . 4  |-  ( M  e.  ( ZZ>= `  N
)  ->  ( A. m  e.  ( ZZ>= `  N ) ( P 
pCnt  ( ! `  N ) )  = 
sum_ k  e.  ( 1 ... m ) ( |_ `  ( N  /  ( P ^
k ) ) )  ->  ( P  pCnt  ( ! `  N ) )  =  sum_ k  e.  ( 1 ... M
) ( |_ `  ( N  /  ( P ^ k ) ) ) ) )
179174, 178syl5 32 . . 3  |-  ( M  e.  ( ZZ>= `  N
)  ->  ( ( N  e.  NN0  /\  P  e.  Prime )  ->  ( P  pCnt  ( ! `  N ) )  = 
sum_ k  e.  ( 1 ... M ) ( |_ `  ( N  /  ( P ^
k ) ) ) ) )
1801793impib 1178 . 2  |-  ( ( M  e.  ( ZZ>= `  N )  /\  N  e.  NN0  /\  P  e. 
Prime )  ->  ( P 
pCnt  ( ! `  N ) )  = 
sum_ k  e.  ( 1 ... M ) ( |_ `  ( N  /  ( P ^
k ) ) ) )
1811803com12 1184 1  |-  ( ( N  e.  NN0  /\  M  e.  ( ZZ>= `  N )  /\  P  e.  Prime )  ->  ( P  pCnt  ( ! `  N ) )  = 
sum_ k  e.  ( 1 ... M ) ( |_ `  ( N  /  ( P ^
k ) ) ) )
Colors of variables: wff setvar class
Syntax hints:   -. wn 3    -> wi 4    <-> wb 184    /\ wa 369    /\ w3a 958    = wceq 1362    e. wcel 1755    =/= wne 2596   A.wral 2705    C_ wss 3316   ifcif 3779   class class class wbr 4280   ` cfv 5406  (class class class)co 6080   Fincfn 7298   RRcr 9269   0cc0 9270   1c1 9271    + caddc 9273    x. cmul 9275    < clt 9406    <_ cle 9407    - cmin 9583    / cdiv 9981   NNcn 10310   2c2 10359   NN0cn0 10567   ZZcz 10634   ZZ>=cuz 10849   ...cfz 11424   |_cfl 11624   ^cexp 11849   !cfa 12035   #chash 12087   sum_csu 13147    || cdivides 13518   Primecprime 13746    pCnt cpc 13886
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1594  ax-4 1605  ax-5 1669  ax-6 1707  ax-7 1727  ax-8 1757  ax-9 1759  ax-10 1774  ax-11 1779  ax-12 1791  ax-13 1942  ax-ext 2414  ax-rep 4391  ax-sep 4401  ax-nul 4409  ax-pow 4458  ax-pr 4519  ax-un 6361  ax-inf2 7835  ax-cnex 9326  ax-resscn 9327  ax-1cn 9328  ax-icn 9329  ax-addcl 9330  ax-addrcl 9331  ax-mulcl 9332  ax-mulrcl 9333  ax-mulcom 9334  ax-addass 9335  ax-mulass 9336  ax-distr 9337  ax-i2m1 9338  ax-1ne0 9339  ax-1rid 9340  ax-rnegex 9341  ax-rrecex 9342  ax-cnre 9343  ax-pre-lttri 9344  ax-pre-lttrn 9345  ax-pre-ltadd 9346  ax-pre-mulgt0 9347  ax-pre-sup 9348
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3or 959  df-3an 960  df-tru 1365  df-fal 1368  df-ex 1590  df-nf 1593  df-sb 1700  df-eu 2258  df-mo 2259  df-clab 2420  df-cleq 2426  df-clel 2429  df-nfc 2558  df-ne 2598  df-nel 2599  df-ral 2710  df-rex 2711  df-reu 2712  df-rmo 2713  df-rab 2714  df-v 2964  df-sbc 3176  df-csb 3277  df-dif 3319  df-un 3321  df-in 3323  df-ss 3330  df-pss 3332  df-nul 3626  df-if 3780  df-pw 3850  df-sn 3866  df-pr 3868  df-tp 3870  df-op 3872  df-uni 4080  df-int 4117  df-iun 4161  df-br 4281  df-opab 4339  df-mpt 4340  df-tr 4374  df-eprel 4619  df-id 4623  df-po 4628  df-so 4629  df-fr 4666  df-se 4667  df-we 4668  df-ord 4709  df-on 4710  df-lim 4711  df-suc 4712  df-xp 4833  df-rel 4834  df-cnv 4835  df-co 4836  df-dm 4837  df-rn 4838  df-res 4839  df-ima 4840  df-iota 5369  df-fun 5408  df-fn 5409  df-f 5410  df-f1 5411  df-fo 5412  df-f1o 5413  df-fv 5414  df-isom 5415  df-riota 6039  df-ov 6083  df-oprab 6084  df-mpt2 6085  df-om 6466  df-1st 6566  df-2nd 6567  df-recs 6818  df-rdg 6852  df-1o 6908  df-2o 6909  df-oadd 6912  df-er 7089  df-en 7299  df-dom 7300  df-sdom 7301  df-fin 7302  df-sup 7679  df-oi 7712  df-card 8097  df-pnf 9408  df-mnf 9409  df-xr 9410  df-ltxr 9411  df-le 9412  df-sub 9585  df-neg 9586  df-div 9982  df-nn 10311  df-2 10368  df-3 10369  df-n0 10568  df-z 10635  df-uz 10850  df-q 10942  df-rp 10980  df-fz 11425  df-fzo 11533  df-fl 11626  df-mod 11693  df-seq 11791  df-exp 11850  df-fac 12036  df-hash 12088  df-cj 12572  df-re 12573  df-im 12574  df-sqr 12708  df-abs 12709  df-clim 12950  df-sum 13148  df-dvds 13519  df-gcd 13674  df-prm 13747  df-pc 13887
This theorem is referenced by:  pcbc  13945
  Copyright terms: Public domain W3C validator