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

Theorem pcfac 13195
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 5668 . . . . . . . 8  |-  ( x  =  0  ->  ( ZZ>=
`  x )  =  ( ZZ>= `  0 )
)
2 fveq2 5668 . . . . . . . . . 10  |-  ( x  =  0  ->  ( ! `  x )  =  ( ! ` 
0 ) )
32oveq2d 6036 . . . . . . . . 9  |-  ( x  =  0  ->  ( P  pCnt  ( ! `  x ) )  =  ( P  pCnt  ( ! `  0 )
) )
4 oveq1 6027 . . . . . . . . . . 11  |-  ( x  =  0  ->  (
x  /  ( P ^ k ) )  =  ( 0  / 
( P ^ k
) ) )
54fveq2d 5672 . . . . . . . . . 10  |-  ( x  =  0  ->  ( |_ `  ( x  / 
( P ^ k
) ) )  =  ( |_ `  (
0  /  ( P ^ k ) ) ) )
65sumeq2sdv 12425 . . . . . . . . 9  |-  ( x  =  0  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( 0  /  ( P ^ k ) ) ) )
73, 6eqeq12d 2401 . . . . . . . 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 2859 . . . . . . 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 308 . . . . . 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 5668 . . . . . . . 8  |-  ( x  =  n  ->  ( ZZ>=
`  x )  =  ( ZZ>= `  n )
)
11 fveq2 5668 . . . . . . . . . 10  |-  ( x  =  n  ->  ( ! `  x )  =  ( ! `  n ) )
1211oveq2d 6036 . . . . . . . . 9  |-  ( x  =  n  ->  ( P  pCnt  ( ! `  x ) )  =  ( P  pCnt  ( ! `  n )
) )
13 oveq1 6027 . . . . . . . . . . 11  |-  ( x  =  n  ->  (
x  /  ( P ^ k ) )  =  ( n  / 
( P ^ k
) ) )
1413fveq2d 5672 . . . . . . . . . 10  |-  ( x  =  n  ->  ( |_ `  ( x  / 
( P ^ k
) ) )  =  ( |_ `  (
n  /  ( P ^ k ) ) ) )
1514sumeq2sdv 12425 . . . . . . . . 9  |-  ( x  =  n  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( n  /  ( P ^ k ) ) ) )
1612, 15eqeq12d 2401 . . . . . . . 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 2859 . . . . . . 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 308 . . . . . 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 5668 . . . . . . . 8  |-  ( x  =  ( n  + 
1 )  ->  ( ZZ>=
`  x )  =  ( ZZ>= `  ( n  +  1 ) ) )
20 fveq2 5668 . . . . . . . . . 10  |-  ( x  =  ( n  + 
1 )  ->  ( ! `  x )  =  ( ! `  ( n  +  1
) ) )
2120oveq2d 6036 . . . . . . . . 9  |-  ( x  =  ( n  + 
1 )  ->  ( P  pCnt  ( ! `  x ) )  =  ( P  pCnt  ( ! `  ( n  +  1 ) ) ) )
22 oveq1 6027 . . . . . . . . . . 11  |-  ( x  =  ( n  + 
1 )  ->  (
x  /  ( P ^ k ) )  =  ( ( n  +  1 )  / 
( P ^ k
) ) )
2322fveq2d 5672 . . . . . . . . . 10  |-  ( x  =  ( n  + 
1 )  ->  ( |_ `  ( x  / 
( P ^ k
) ) )  =  ( |_ `  (
( n  +  1 )  /  ( P ^ k ) ) ) )
2423sumeq2sdv 12425 . . . . . . . . 9  |-  ( x  =  ( n  + 
1 )  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( ( n  + 
1 )  /  ( P ^ k ) ) ) )
2521, 24eqeq12d 2401 . . . . . . . 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 2859 . . . . . . 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 308 . . . . . 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 5668 . . . . . . . 8  |-  ( x  =  N  ->  ( ZZ>=
`  x )  =  ( ZZ>= `  N )
)
29 fveq2 5668 . . . . . . . . . 10  |-  ( x  =  N  ->  ( ! `  x )  =  ( ! `  N ) )
3029oveq2d 6036 . . . . . . . . 9  |-  ( x  =  N  ->  ( P  pCnt  ( ! `  x ) )  =  ( P  pCnt  ( ! `  N )
) )
31 oveq1 6027 . . . . . . . . . . 11  |-  ( x  =  N  ->  (
x  /  ( P ^ k ) )  =  ( N  / 
( P ^ k
) ) )
3231fveq2d 5672 . . . . . . . . . 10  |-  ( x  =  N  ->  ( |_ `  ( x  / 
( P ^ k
) ) )  =  ( |_ `  ( N  /  ( P ^
k ) ) ) )
3332sumeq2sdv 12425 . . . . . . . . 9  |-  ( x  =  N  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( N  /  ( P ^ k ) ) ) )
3430, 33eqeq12d 2401 . . . . . . . 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 2859 . . . . . . 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 308 . . . . . 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 11239 . . . . . . . . 9  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  ( 1 ... m )  e. 
Fin )
38 sumz 12443 . . . . . . . . . 10  |-  ( ( ( 1 ... m
)  C_  ( ZZ>= ` 
1 )  \/  (
1 ... m )  e. 
Fin )  ->  sum_ k  e.  ( 1 ... m
) 0  =  0 )
3938olcs 385 . . . . . . . . 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 10168 . . . . . . . . . . 11  |-  0  e.  NN0
4241a1i 11 . . . . . . . . . 10  |-  ( ( ( P  e.  Prime  /\  m  e.  ( ZZ>= ` 
0 ) )  /\  k  e.  ( 1 ... m ) )  ->  0  e.  NN0 )
43 elfznn 11012 . . . . . . . . . . . . 13  |-  ( k  e.  ( 1 ... m )  ->  k  e.  NN )
4443nnnn0d 10206 . . . . . . . . . . . 12  |-  ( k  e.  ( 1 ... m )  ->  k  e.  NN0 )
45 nn0uz 10452 . . . . . . . . . . . 12  |-  NN0  =  ( ZZ>= `  0 )
4644, 45syl6eleq 2477 . . . . . . . . . . 11  |-  ( k  e.  ( 1 ... m )  ->  k  e.  ( ZZ>= `  0 )
)
4746adantl 453 . . . . . . . . . 10  |-  ( ( ( P  e.  Prime  /\  m  e.  ( ZZ>= ` 
0 ) )  /\  k  e.  ( 1 ... m ) )  ->  k  e.  (
ZZ>= `  0 ) )
48 simpll 731 . . . . . . . . . 10  |-  ( ( ( P  e.  Prime  /\  m  e.  ( ZZ>= ` 
0 ) )  /\  k  e.  ( 1 ... m ) )  ->  P  e.  Prime )
49 pcfaclem 13194 . . . . . . . . . 10  |-  ( ( 0  e.  NN0  /\  k  e.  ( ZZ>= ` 
0 )  /\  P  e.  Prime )  ->  ( |_ `  ( 0  / 
( P ^ k
) ) )  =  0 )
5042, 47, 48, 49syl3anc 1184 . . . . . . . . 9  |-  ( ( ( P  e.  Prime  /\  m  e.  ( ZZ>= ` 
0 ) )  /\  k  e.  ( 1 ... m ) )  ->  ( |_ `  ( 0  /  ( P ^ k ) ) )  =  0 )
5150sumeq2dv 12424 . . . . . . . 8  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( 0  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) 0 )
52 fac0 11496 . . . . . . . . . . 11  |-  ( ! `
 0 )  =  1
5352oveq2i 6031 . . . . . . . . . 10  |-  ( P 
pCnt  ( ! ` 
0 ) )  =  ( P  pCnt  1
)
54 pc1 13156 . . . . . . . . . 10  |-  ( P  e.  Prime  ->  ( P 
pCnt  1 )  =  0 )
5553, 54syl5eq 2431 . . . . . . . . 9  |-  ( P  e.  Prime  ->  ( P 
pCnt  ( ! ` 
0 ) )  =  0 )
5655adantr 452 . . . . . . . 8  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  ( P  pCnt  ( ! `  0
) )  =  0 )
5740, 51, 563eqtr4rd 2430 . . . . . . 7  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  ( P  pCnt  ( ! `  0
) )  =  sum_ k  e.  ( 1 ... m ) ( |_ `  ( 0  /  ( P ^
k ) ) ) )
5857ralrimiva 2732 . . . . . 6  |-  ( P  e.  Prime  ->  A. m  e.  ( ZZ>= `  0 )
( P  pCnt  ( ! `  0 )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( 0  /  ( P ^ k ) ) ) )
59 nn0z 10236 . . . . . . . . . . . 12  |-  ( n  e.  NN0  ->  n  e.  ZZ )
6059adantr 452 . . . . . . . . . . 11  |-  ( ( n  e.  NN0  /\  P  e.  Prime )  ->  n  e.  ZZ )
61 uzid 10432 . . . . . . . . . . 11  |-  ( n  e.  ZZ  ->  n  e.  ( ZZ>= `  n )
)
62 peano2uz 10462 . . . . . . . . . . 11  |-  ( n  e.  ( ZZ>= `  n
)  ->  ( n  +  1 )  e.  ( ZZ>= `  n )
)
6360, 61, 623syl 19 . . . . . . . . . 10  |-  ( ( n  e.  NN0  /\  P  e.  Prime )  -> 
( n  +  1 )  e.  ( ZZ>= `  n ) )
64 uzss 10438 . . . . . . . . . 10  |-  ( ( n  +  1 )  e.  ( ZZ>= `  n
)  ->  ( ZZ>= `  ( n  +  1
) )  C_  ( ZZ>=
`  n ) )
65 ssralv 3350 . . . . . . . . . 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 19 . . . . . . . . 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 6027 . . . . . . . . . . 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 731 . . . . . . . . . . . . . . 15  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  n  e.  NN0 )
69 facp1 11498 . . . . . . . . . . . . . . 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 6036 . . . . . . . . . . . . 13  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( ! `  ( n  +  1 ) ) )  =  ( P 
pCnt  ( ( ! `
 n )  x.  ( n  +  1 ) ) ) )
72 simplr 732 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  P  e.  Prime )
73 faccl 11503 . . . . . . . . . . . . . . 15  |-  ( n  e.  NN0  ->  ( ! `
 n )  e.  NN )
74 nnz 10235 . . . . . . . . . . . . . . . 16  |-  ( ( ! `  n )  e.  NN  ->  ( ! `  n )  e.  ZZ )
75 nnne0 9964 . . . . . . . . . . . . . . . 16  |-  ( ( ! `  n )  e.  NN  ->  ( ! `  n )  =/=  0 )
7674, 75jca 519 . . . . . . . . . . . . . . 15  |-  ( ( ! `  n )  e.  NN  ->  (
( ! `  n
)  e.  ZZ  /\  ( ! `  n )  =/=  0 ) )
7768, 73, 763syl 19 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( ! `
 n )  e.  ZZ  /\  ( ! `
 n )  =/=  0 ) )
78 nn0p1nn 10191 . . . . . . . . . . . . . . 15  |-  ( n  e.  NN0  ->  ( n  +  1 )  e.  NN )
79 nnz 10235 . . . . . . . . . . . . . . . 16  |-  ( ( n  +  1 )  e.  NN  ->  (
n  +  1 )  e.  ZZ )
80 nnne0 9964 . . . . . . . . . . . . . . . 16  |-  ( ( n  +  1 )  e.  NN  ->  (
n  +  1 )  =/=  0 )
8179, 80jca 519 . . . . . . . . . . . . . . 15  |-  ( ( n  +  1 )  e.  NN  ->  (
( n  +  1 )  e.  ZZ  /\  ( n  +  1
)  =/=  0 ) )
8268, 78, 813syl 19 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( n  +  1 )  e.  ZZ  /\  ( n  +  1 )  =/=  0 ) )
83 pcmul 13152 . . . . . . . . . . . . . 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 1184 . . . . . . . . . . . . 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 2420 . . . . . . . . . . . 12  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P 
pCnt  ( ! `  n ) )  +  ( P  pCnt  (
n  +  1 ) ) )  =  ( P  pCnt  ( ! `  ( n  +  1 ) ) ) )
8668adantr 452 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  n  e.  NN0 )
8786nn0zd 10305 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  n  e.  ZZ )
88 prmnn 13009 . . . . . . . . . . . . . . . . . . 19  |-  ( P  e.  Prime  ->  P  e.  NN )
8988ad2antlr 708 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  P  e.  NN )
90 nnexpcl 11321 . . . . . . . . . . . . . . . . . 18  |-  ( ( P  e.  NN  /\  k  e.  NN0 )  -> 
( P ^ k
)  e.  NN )
9189, 44, 90syl2an 464 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( P ^ k )  e.  NN )
92 fldivp1 13193 . . . . . . . . . . . . . . . . 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 643 . . . . . . . . . . . . . . . 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 10987 . . . . . . . . . . . . . . . . . . 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 13151 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  e.  NN0 )
9796nn0zd 10305 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  e.  ZZ )
98 elfz5 10983 . . . . . . . . . . . . . . . . . . 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 465 . . . . . . . . . . . . . . . . . 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 736 . . . . . . . . . . . . . . . . . . 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 10306 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
n  +  1 )  e.  ZZ )
10344adantl 453 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  k  e.  NN0 )
104 pcdvdsb 13169 . . . . . . . . . . . . . . . . . . 19  |-  ( ( P  e.  Prime  /\  (
n  +  1 )  e.  ZZ  /\  k  e.  NN0 )  ->  (
k  <_  ( P  pCnt  ( n  +  1 ) )  <->  ( P ^ k )  ||  ( n  +  1
) ) )
105100, 102, 103, 104syl3anc 1184 . . . . . . . . . . . . . . . . . 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 246 . . . . . . . . . . . . . . . . 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 3700 . . . . . . . . . . . . . . . 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 2419 . . . . . . . . . . . . . . 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 12424 . . . . . . . . . . . . . 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 11239 . . . . . . . . . . . . . . 15  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( 1 ... m )  e.  Fin )
11168nn0red 10207 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  n  e.  RR )
112 peano2re 9171 . . . . . . . . . . . . . . . . . . . 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 452 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
n  +  1 )  e.  RR )
115114, 91nndivred 9980 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
( n  +  1 )  /  ( P ^ k ) )  e.  RR )
116115flcld 11134 . . . . . . . . . . . . . . . 16  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( |_ `  ( ( n  +  1 )  / 
( P ^ k
) ) )  e.  ZZ )
117116zcnd 10308 . . . . . . . . . . . . . . 15  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( |_ `  ( ( n  +  1 )  / 
( P ^ k
) ) )  e.  CC )
118111adantr 452 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  n  e.  RR )
119118, 91nndivred 9980 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
n  /  ( P ^ k ) )  e.  RR )
120119flcld 11134 . . . . . . . . . . . . . . . 16  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( |_ `  ( n  / 
( P ^ k
) ) )  e.  ZZ )
121120zcnd 10308 . . . . . . . . . . . . . . 15  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( |_ `  ( n  / 
( P ^ k
) ) )  e.  CC )
122110, 117, 121fsumsub 12498 . . . . . . . . . . . . . 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 11238 . . . . . . . . . . . . . . . 16  |-  ( 1 ... m )  e. 
Fin
12496nn0red 10207 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  e.  RR )
125 eluzelz 10428 . . . . . . . . . . . . . . . . . . . . 21  |-  ( m  e.  ( ZZ>= `  (
n  +  1 ) )  ->  m  e.  ZZ )
126125adantl 453 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  m  e.  ZZ )
127126zred 10307 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  m  e.  RR )
128 prmuz2 13024 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( P  e.  Prime  ->  P  e.  ( ZZ>= `  2 )
)
129128ad2antlr 708 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  P  e.  (
ZZ>= `  2 ) )
13095nnnn0d 10206 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  e.  NN0 )
131 bernneq3 11434 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( P  e.  ( ZZ>= ` 
2 )  /\  (
n  +  1 )  e.  NN0 )  -> 
( n  +  1 )  <  ( P ^ ( n  + 
1 ) ) )
132129, 130, 131syl2anc 643 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  <  ( P ^ ( n  + 
1 ) ) )
133124, 113letrid 9155 . . . . . . . . . . . . . . . . . . . . . 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 367 . . . . . . . . . . . . . . . . . . . . 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 10306 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  e.  ZZ )
136 pcdvdsb 13169 . . . . . . . . . . . . . . . . . . . . . . 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 1184 . . . . . . . . . . . . . . . . . . . . . 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 11471 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P ^
( n  +  1 ) )  e.  NN )
139138nnzd 10306 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P ^
( n  +  1 ) )  e.  ZZ )
140 dvdsle 12822 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( ( P ^ (
n  +  1 ) )  e.  ZZ  /\  ( n  +  1
)  e.  NN )  ->  ( ( P ^ ( n  + 
1 ) )  ||  ( n  +  1
)  ->  ( P ^ ( n  + 
1 ) )  <_ 
( n  +  1 ) ) )
141139, 95, 140syl2anc 643 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P ^ ( n  + 
1 ) )  ||  ( n  +  1
)  ->  ( P ^ ( n  + 
1 ) )  <_ 
( n  +  1 ) ) )
142138nnred 9947 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P ^
( n  +  1 ) )  e.  RR )
143142, 113lenltd 9151 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P ^ ( n  + 
1 ) )  <_ 
( n  +  1 )  <->  -.  ( n  +  1 )  < 
( P ^ (
n  +  1 ) ) ) )
144141, 143sylibd 206 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P ^ ( n  + 
1 ) )  ||  ( n  +  1
)  ->  -.  (
n  +  1 )  <  ( P ^
( n  +  1 ) ) ) )
145137, 144sylbid 207 . . . . . . . . . . . . . . . . . . . . 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 42 . . . . . . . . . . . . . . . . . . . 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 132 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  <_  ( n  +  1 ) )
148 eluzle 10430 . . . . . . . . . . . . . . . . . . . 20  |-  ( m  e.  ( ZZ>= `  (
n  +  1 ) )  ->  ( n  +  1 )  <_  m )
149148adantl 453 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  <_  m
)
150124, 113, 127, 147, 149letrd 9159 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  <_  m )
151 eluz 10431 . . . . . . . . . . . . . . . . . . 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 643 . . . . . . . . . . . . . . . . . 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 224 . . . . . . . . . . . . . . . . 17  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  m  e.  (
ZZ>= `  ( P  pCnt  ( n  +  1 ) ) ) )
154 fzss2 11024 . . . . . . . . . . . . . . . . 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 13192 . . . . . . . . . . . . . . . 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 645 . . . . . . . . . . . . . . 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 11557 . . . . . . . . . . . . . . . 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 2419 . . . . . . . . . . . . . 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 2427 . . . . . . . . . . . . 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 12454 . . . . . . . . . . . . . 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 12454 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  sum_ k  e.  ( 1 ... m ) ( |_ `  (
n  /  ( P ^ k ) ) )  e.  CC )
164124recnd 9047 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  e.  CC )
165162, 163, 164subaddd 9361 . . . . . . . . . . . . 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 202 . . . . . . . . . . . 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 2401 . . . . . . . . . . 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 211 . . . . . . . . . 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 2727 . . . . . . . . 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 42 . . . . . . . 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 424 . . . . . . 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 24 . . . . . 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 10298 . . . . 5  |-  ( N  e.  NN0  ->  ( P  e.  Prime  ->  A. m  e.  ( ZZ>= `  N )
( P  pCnt  ( ! `  N )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( N  /  ( P ^ k ) ) ) ) )
174173imp 419 . . . 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 6028 . . . . . . 7  |-  ( m  =  M  ->  (
1 ... m )  =  ( 1 ... M
) )
176175sumeq1d 12422 . . . . . 6  |-  ( m  =  M  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( N  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... M
) ( |_ `  ( N  /  ( P ^ k ) ) ) )
177176eqeq2d 2398 . . . . 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 2991 . . . 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 30 . . 3  |-  ( M  e.  ( ZZ>= `  N
)  ->  ( ( N  e.  NN0  /\  P  e.  Prime )  ->  ( P  pCnt  ( ! `  N ) )  = 
sum_ k  e.  ( 1 ... M ) ( |_ `  ( N  /  ( P ^
k ) ) ) ) )
1801793impib 1151 . 2  |-  ( ( M  e.  ( ZZ>= `  N )  /\  N  e.  NN0  /\  P  e. 
Prime )  ->  ( P 
pCnt  ( ! `  N ) )  = 
sum_ k  e.  ( 1 ... M ) ( |_ `  ( N  /  ( P ^
k ) ) ) )
1811803com12 1157 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 set class
Syntax hints:   -. wn 3    -> wi 4    <-> wb 177    /\ wa 359    /\ w3a 936    = wceq 1649    e. wcel 1717    =/= wne 2550   A.wral 2649    C_ wss 3263   ifcif 3682   class class class wbr 4153   ` cfv 5394  (class class class)co 6020   Fincfn 7045   RRcr 8922   0cc0 8923   1c1 8924    + caddc 8926    x. cmul 8928    < clt 9053    <_ cle 9054    - cmin 9223    / cdiv 9609   NNcn 9932   2c2 9981   NN0cn0 10153   ZZcz 10214   ZZ>=cuz 10420   ...cfz 10975   |_cfl 11128   ^cexp 11309   !cfa 11493   #chash 11545   sum_csu 12406    || cdivides 12779   Primecprime 13006    pCnt cpc 13137
This theorem is referenced by:  pcbc  13196
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 2368  ax-rep 4261  ax-sep 4271  ax-nul 4279  ax-pow 4318  ax-pr 4344  ax-un 4641  ax-inf2 7529  ax-cnex 8979  ax-resscn 8980  ax-1cn 8981  ax-icn 8982  ax-addcl 8983  ax-addrcl 8984  ax-mulcl 8985  ax-mulrcl 8986  ax-mulcom 8987  ax-addass 8988  ax-mulass 8989  ax-distr 8990  ax-i2m1 8991  ax-1ne0 8992  ax-1rid 8993  ax-rnegex 8994  ax-rrecex 8995  ax-cnre 8996  ax-pre-lttri 8997  ax-pre-lttrn 8998  ax-pre-ltadd 8999  ax-pre-mulgt0 9000  ax-pre-sup 9001
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 2242  df-mo 2243  df-clab 2374  df-cleq 2380  df-clel 2383  df-nfc 2512  df-ne 2552  df-nel 2553  df-ral 2654  df-rex 2655  df-reu 2656  df-rmo 2657  df-rab 2658  df-v 2901  df-sbc 3105  df-csb 3195  df-dif 3266  df-un 3268  df-in 3270  df-ss 3277  df-pss 3279  df-nul 3572  df-if 3683  df-pw 3744  df-sn 3763  df-pr 3764  df-tp 3765  df-op 3766  df-uni 3958  df-int 3993  df-iun 4037  df-br 4154  df-opab 4208  df-mpt 4209  df-tr 4244  df-eprel 4435  df-id 4439  df-po 4444  df-so 4445  df-fr 4482  df-se 4483  df-we 4484  df-ord 4525  df-on 4526  df-lim 4527  df-suc 4528  df-om 4786  df-xp 4824  df-rel 4825  df-cnv 4826  df-co 4827  df-dm 4828  df-rn 4829  df-res 4830  df-ima 4831  df-iota 5358  df-fun 5396  df-fn 5397  df-f 5398  df-f1 5399  df-fo 5400  df-f1o 5401  df-fv 5402  df-isom 5403  df-ov 6023  df-oprab 6024  df-mpt2 6025  df-1st 6288  df-2nd 6289  df-riota 6485  df-recs 6569  df-rdg 6604  df-1o 6660  df-2o 6661  df-oadd 6664  df-er 6841  df-en 7046  df-dom 7047  df-sdom 7048  df-fin 7049  df-sup 7381  df-oi 7412  df-card 7759  df-pnf 9055  df-mnf 9056  df-xr 9057  df-ltxr 9058  df-le 9059  df-sub 9225  df-neg 9226  df-div 9610  df-nn 9933  df-2 9990  df-3 9991  df-n0 10154  df-z 10215  df-uz 10421  df-q 10507  df-rp 10545  df-fz 10976  df-fzo 11066  df-fl 11129  df-mod 11178  df-seq 11251  df-exp 11310  df-fac 11494  df-hash 11546  df-cj 11831  df-re 11832  df-im 11833  df-sqr 11967  df-abs 11968  df-clim 12209  df-sum 12407  df-dvds 12780  df-gcd 12934  df-prm 13007  df-pc 13138
  Copyright terms: Public domain W3C validator