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

Theorem pcfac 12280
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  j are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 fveq2 5486 . . . . . . . 8  |-  ( x  =  0  ->  ( ZZ>=
`  x )  =  ( ZZ>= `  0 )
)
2 fveq2 5486 . . . . . . . . . 10  |-  ( x  =  0  ->  ( ! `  x )  =  ( ! ` 
0 ) )
32oveq2d 5858 . . . . . . . . 9  |-  ( x  =  0  ->  ( P  pCnt  ( ! `  x ) )  =  ( P  pCnt  ( ! `  0 )
) )
4 fvoveq1 5865 . . . . . . . . . 10  |-  ( x  =  0  ->  ( |_ `  ( x  / 
( P ^ k
) ) )  =  ( |_ `  (
0  /  ( P ^ k ) ) ) )
54sumeq2sdv 11311 . . . . . . . . 9  |-  ( x  =  0  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( 0  /  ( P ^ k ) ) ) )
63, 5eqeq12d 2180 . . . . . . . 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 ) ) ) ) )
71, 6raleqbidv 2673 . . . . . . 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 ) ) ) ) )
87imbi2d 229 . . . . . 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 ) ) ) ) ) )
9 fveq2 5486 . . . . . . . 8  |-  ( x  =  n  ->  ( ZZ>=
`  x )  =  ( ZZ>= `  n )
)
10 fveq2 5486 . . . . . . . . . 10  |-  ( x  =  n  ->  ( ! `  x )  =  ( ! `  n ) )
1110oveq2d 5858 . . . . . . . . 9  |-  ( x  =  n  ->  ( P  pCnt  ( ! `  x ) )  =  ( P  pCnt  ( ! `  n )
) )
12 fvoveq1 5865 . . . . . . . . . 10  |-  ( x  =  n  ->  ( |_ `  ( x  / 
( P ^ k
) ) )  =  ( |_ `  (
n  /  ( P ^ k ) ) ) )
1312sumeq2sdv 11311 . . . . . . . . 9  |-  ( x  =  n  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( n  /  ( P ^ k ) ) ) )
1411, 13eqeq12d 2180 . . . . . . . 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 ) ) ) ) )
159, 14raleqbidv 2673 . . . . . . 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 ) ) ) ) )
1615imbi2d 229 . . . . . 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 ) ) ) ) ) )
17 fveq2 5486 . . . . . . . 8  |-  ( x  =  ( n  + 
1 )  ->  ( ZZ>=
`  x )  =  ( ZZ>= `  ( n  +  1 ) ) )
18 fveq2 5486 . . . . . . . . . 10  |-  ( x  =  ( n  + 
1 )  ->  ( ! `  x )  =  ( ! `  ( n  +  1
) ) )
1918oveq2d 5858 . . . . . . . . 9  |-  ( x  =  ( n  + 
1 )  ->  ( P  pCnt  ( ! `  x ) )  =  ( P  pCnt  ( ! `  ( n  +  1 ) ) ) )
20 fvoveq1 5865 . . . . . . . . . 10  |-  ( x  =  ( n  + 
1 )  ->  ( |_ `  ( x  / 
( P ^ k
) ) )  =  ( |_ `  (
( n  +  1 )  /  ( P ^ k ) ) ) )
2120sumeq2sdv 11311 . . . . . . . . 9  |-  ( x  =  ( n  + 
1 )  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( ( n  + 
1 )  /  ( P ^ k ) ) ) )
2219, 21eqeq12d 2180 . . . . . . . 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 ) ) ) ) )
2317, 22raleqbidv 2673 . . . . . . 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 ) ) ) ) )
2423imbi2d 229 . . . . . 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 ) ) ) ) ) )
25 fveq2 5486 . . . . . . . 8  |-  ( x  =  N  ->  ( ZZ>=
`  x )  =  ( ZZ>= `  N )
)
26 fveq2 5486 . . . . . . . . . 10  |-  ( x  =  N  ->  ( ! `  x )  =  ( ! `  N ) )
2726oveq2d 5858 . . . . . . . . 9  |-  ( x  =  N  ->  ( P  pCnt  ( ! `  x ) )  =  ( P  pCnt  ( ! `  N )
) )
28 fvoveq1 5865 . . . . . . . . . 10  |-  ( x  =  N  ->  ( |_ `  ( x  / 
( P ^ k
) ) )  =  ( |_ `  ( N  /  ( P ^
k ) ) ) )
2928sumeq2sdv 11311 . . . . . . . . 9  |-  ( x  =  N  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( N  /  ( P ^ k ) ) ) )
3027, 29eqeq12d 2180 . . . . . . . 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 ) ) ) ) )
3125, 30raleqbidv 2673 . . . . . . 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 ) ) ) ) )
3231imbi2d 229 . . . . . 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 ) ) ) ) ) )
33 1zzd 9218 . . . . . . . . . 10  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  1  e.  ZZ )
34 eluzelz 9475 . . . . . . . . . . 11  |-  ( m  e.  ( ZZ>= `  0
)  ->  m  e.  ZZ )
3534adantl 275 . . . . . . . . . 10  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  m  e.  ZZ )
3633, 35fzfigd 10366 . . . . . . . . 9  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  ( 1 ... m )  e. 
Fin )
37 isumz 11330 . . . . . . . . . 10  |-  ( ( ( 1  e.  ZZ  /\  ( 1 ... m
)  C_  ( ZZ>= ` 
1 )  /\  A. j  e.  ( ZZ>= ` 
1 )DECID  j  e.  ( 1 ... m ) )  \/  ( 1 ... m )  e.  Fin )  ->  sum_ k  e.  ( 1 ... m ) 0  =  0 )
3837olcs 726 . . . . . . . . 9  |-  ( ( 1 ... m )  e.  Fin  ->  sum_ k  e.  ( 1 ... m
) 0  =  0 )
3936, 38syl 14 . . . . . . . 8  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  sum_ k  e.  ( 1 ... m
) 0  =  0 )
40 0nn0 9129 . . . . . . . . . 10  |-  0  e.  NN0
41 elfznn 9989 . . . . . . . . . . . . 13  |-  ( k  e.  ( 1 ... m )  ->  k  e.  NN )
4241nnnn0d 9167 . . . . . . . . . . . 12  |-  ( k  e.  ( 1 ... m )  ->  k  e.  NN0 )
43 nn0uz 9500 . . . . . . . . . . . 12  |-  NN0  =  ( ZZ>= `  0 )
4442, 43eleqtrdi 2259 . . . . . . . . . . 11  |-  ( k  e.  ( 1 ... m )  ->  k  e.  ( ZZ>= `  0 )
)
4544adantl 275 . . . . . . . . . 10  |-  ( ( ( P  e.  Prime  /\  m  e.  ( ZZ>= ` 
0 ) )  /\  k  e.  ( 1 ... m ) )  ->  k  e.  (
ZZ>= `  0 ) )
46 simpll 519 . . . . . . . . . 10  |-  ( ( ( P  e.  Prime  /\  m  e.  ( ZZ>= ` 
0 ) )  /\  k  e.  ( 1 ... m ) )  ->  P  e.  Prime )
47 pcfaclem 12279 . . . . . . . . . 10  |-  ( ( 0  e.  NN0  /\  k  e.  ( ZZ>= ` 
0 )  /\  P  e.  Prime )  ->  ( |_ `  ( 0  / 
( P ^ k
) ) )  =  0 )
4840, 45, 46, 47mp3an2i 1332 . . . . . . . . 9  |-  ( ( ( P  e.  Prime  /\  m  e.  ( ZZ>= ` 
0 ) )  /\  k  e.  ( 1 ... m ) )  ->  ( |_ `  ( 0  /  ( P ^ k ) ) )  =  0 )
4948sumeq2dv 11309 . . . . . . . 8  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( 0  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) 0 )
50 fac0 10641 . . . . . . . . . . 11  |-  ( ! `
 0 )  =  1
5150oveq2i 5853 . . . . . . . . . 10  |-  ( P 
pCnt  ( ! ` 
0 ) )  =  ( P  pCnt  1
)
52 pc1 12237 . . . . . . . . . 10  |-  ( P  e.  Prime  ->  ( P 
pCnt  1 )  =  0 )
5351, 52syl5eq 2211 . . . . . . . . 9  |-  ( P  e.  Prime  ->  ( P 
pCnt  ( ! ` 
0 ) )  =  0 )
5453adantr 274 . . . . . . . 8  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  ( P  pCnt  ( ! `  0
) )  =  0 )
5539, 49, 543eqtr4rd 2209 . . . . . . 7  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  ( P  pCnt  ( ! `  0
) )  =  sum_ k  e.  ( 1 ... m ) ( |_ `  ( 0  /  ( P ^
k ) ) ) )
5655ralrimiva 2539 . . . . . 6  |-  ( P  e.  Prime  ->  A. m  e.  ( ZZ>= `  0 )
( P  pCnt  ( ! `  0 )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( 0  /  ( P ^ k ) ) ) )
57 nn0z 9211 . . . . . . . . . . . 12  |-  ( n  e.  NN0  ->  n  e.  ZZ )
5857adantr 274 . . . . . . . . . . 11  |-  ( ( n  e.  NN0  /\  P  e.  Prime )  ->  n  e.  ZZ )
59 uzid 9480 . . . . . . . . . . 11  |-  ( n  e.  ZZ  ->  n  e.  ( ZZ>= `  n )
)
60 peano2uz 9521 . . . . . . . . . . 11  |-  ( n  e.  ( ZZ>= `  n
)  ->  ( n  +  1 )  e.  ( ZZ>= `  n )
)
6158, 59, 603syl 17 . . . . . . . . . 10  |-  ( ( n  e.  NN0  /\  P  e.  Prime )  -> 
( n  +  1 )  e.  ( ZZ>= `  n ) )
62 uzss 9486 . . . . . . . . . 10  |-  ( ( n  +  1 )  e.  ( ZZ>= `  n
)  ->  ( ZZ>= `  ( n  +  1
) )  C_  ( ZZ>=
`  n ) )
63 ssralv 3206 . . . . . . . . . 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 ) ) ) ) )
6461, 62, 633syl 17 . . . . . . . . 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 ) ) ) ) )
65 oveq1 5849 . . . . . . . . . . 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 ) ) ) )
66 simpll 519 . . . . . . . . . . . . . . 15  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  n  e.  NN0 )
67 facp1 10643 . . . . . . . . . . . . . . 15  |-  ( n  e.  NN0  ->  ( ! `
 ( n  + 
1 ) )  =  ( ( ! `  n )  x.  (
n  +  1 ) ) )
6866, 67syl 14 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ! `  ( n  +  1
) )  =  ( ( ! `  n
)  x.  ( n  +  1 ) ) )
6968oveq2d 5858 . . . . . . . . . . . . 13  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( ! `  ( n  +  1 ) ) )  =  ( P 
pCnt  ( ( ! `
 n )  x.  ( n  +  1 ) ) ) )
70 simplr 520 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  P  e.  Prime )
71 faccl 10648 . . . . . . . . . . . . . . 15  |-  ( n  e.  NN0  ->  ( ! `
 n )  e.  NN )
72 nnz 9210 . . . . . . . . . . . . . . . 16  |-  ( ( ! `  n )  e.  NN  ->  ( ! `  n )  e.  ZZ )
73 nnne0 8885 . . . . . . . . . . . . . . . 16  |-  ( ( ! `  n )  e.  NN  ->  ( ! `  n )  =/=  0 )
7472, 73jca 304 . . . . . . . . . . . . . . 15  |-  ( ( ! `  n )  e.  NN  ->  (
( ! `  n
)  e.  ZZ  /\  ( ! `  n )  =/=  0 ) )
7566, 71, 743syl 17 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( ! `
 n )  e.  ZZ  /\  ( ! `
 n )  =/=  0 ) )
76 nn0p1nn 9153 . . . . . . . . . . . . . . 15  |-  ( n  e.  NN0  ->  ( n  +  1 )  e.  NN )
77 nnz 9210 . . . . . . . . . . . . . . . 16  |-  ( ( n  +  1 )  e.  NN  ->  (
n  +  1 )  e.  ZZ )
78 nnne0 8885 . . . . . . . . . . . . . . . 16  |-  ( ( n  +  1 )  e.  NN  ->  (
n  +  1 )  =/=  0 )
7977, 78jca 304 . . . . . . . . . . . . . . 15  |-  ( ( n  +  1 )  e.  NN  ->  (
( n  +  1 )  e.  ZZ  /\  ( n  +  1
)  =/=  0 ) )
8066, 76, 793syl 17 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( n  +  1 )  e.  ZZ  /\  ( n  +  1 )  =/=  0 ) )
81 pcmul 12233 . . . . . . . . . . . . . 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 ) ) ) )
8270, 75, 80, 81syl3anc 1228 . . . . . . . . . . . . 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 ) ) ) )
8369, 82eqtr2d 2199 . . . . . . . . . . . 12  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P 
pCnt  ( ! `  n ) )  +  ( P  pCnt  (
n  +  1 ) ) )  =  ( P  pCnt  ( ! `  ( n  +  1 ) ) ) )
8466adantr 274 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  n  e.  NN0 )
8584nn0zd 9311 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  n  e.  ZZ )
86 prmnn 12042 . . . . . . . . . . . . . . . . . . 19  |-  ( P  e.  Prime  ->  P  e.  NN )
8786ad2antlr 481 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  P  e.  NN )
88 nnexpcl 10468 . . . . . . . . . . . . . . . . . 18  |-  ( ( P  e.  NN  /\  k  e.  NN0 )  -> 
( P ^ k
)  e.  NN )
8987, 42, 88syl2an 287 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( P ^ k )  e.  NN )
90 fldivp1 12278 . . . . . . . . . . . . . . . . 17  |-  ( ( n  e.  ZZ  /\  ( P ^ k )  e.  NN )  -> 
( ( |_ `  ( ( n  + 
1 )  /  ( P ^ k ) ) )  -  ( |_
`  ( n  / 
( P ^ k
) ) ) )  =  if ( ( P ^ k ) 
||  ( n  + 
1 ) ,  1 ,  0 ) )
9185, 89, 90syl2anc 409 . . . . . . . . . . . . . . . 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 ) )
92 elfzuz 9956 . . . . . . . . . . . . . . . . . . 19  |-  ( k  e.  ( 1 ... m )  ->  k  e.  ( ZZ>= `  1 )
)
9366, 76syl 14 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  e.  NN )
9470, 93pccld 12232 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  e.  NN0 )
9594nn0zd 9311 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  e.  ZZ )
96 elfz5 9952 . . . . . . . . . . . . . . . . . . 19  |-  ( ( k  e.  ( ZZ>= ` 
1 )  /\  ( P  pCnt  ( n  + 
1 ) )  e.  ZZ )  ->  (
k  e.  ( 1 ... ( P  pCnt  ( n  +  1 ) ) )  <->  k  <_  ( P  pCnt  ( n  +  1 ) ) ) )
9792, 95, 96syl2anr 288 . . . . . . . . . . . . . . . . . 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 ) ) ) )
98 simpllr 524 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  P  e.  Prime )
9984, 76syl 14 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
n  +  1 )  e.  NN )
10099nnzd 9312 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
n  +  1 )  e.  ZZ )
10142adantl 275 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  k  e.  NN0 )
102 pcdvdsb 12251 . . . . . . . . . . . . . . . . . . 19  |-  ( ( P  e.  Prime  /\  (
n  +  1 )  e.  ZZ  /\  k  e.  NN0 )  ->  (
k  <_  ( P  pCnt  ( n  +  1 ) )  <->  ( P ^ k )  ||  ( n  +  1
) ) )
10398, 100, 101, 102syl3anc 1228 . . . . . . . . . . . . . . . . . 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
) ) )
10497, 103bitr2d 188 . . . . . . . . . . . . . . . . 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 ) ) ) ) )
105104ifbid 3541 . . . . . . . . . . . . . . . 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 ) )
10691, 105eqtrd 2198 . . . . . . . . . . . . . . 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 ) )
107106sumeq2dv 11309 . . . . . . . . . . . . . 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 ) )
108 1zzd 9218 . . . . . . . . . . . . . . . 16  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  1  e.  ZZ )
109 eluzelz 9475 . . . . . . . . . . . . . . . . 17  |-  ( m  e.  ( ZZ>= `  (
n  +  1 ) )  ->  m  e.  ZZ )
110109adantl 275 . . . . . . . . . . . . . . . 16  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  m  e.  ZZ )
111108, 110fzfigd 10366 . . . . . . . . . . . . . . 15  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( 1 ... m )  e.  Fin )
112 znq 9562 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( n  +  1 )  e.  ZZ  /\  ( P ^ k )  e.  NN )  -> 
( ( n  + 
1 )  /  ( P ^ k ) )  e.  QQ )
113100, 89, 112syl2anc 409 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
( n  +  1 )  /  ( P ^ k ) )  e.  QQ )
114113flqcld 10212 . . . . . . . . . . . . . . . 16  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( |_ `  ( ( n  +  1 )  / 
( P ^ k
) ) )  e.  ZZ )
115114zcnd 9314 . . . . . . . . . . . . . . 15  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( |_ `  ( ( n  +  1 )  / 
( P ^ k
) ) )  e.  CC )
116 znq 9562 . . . . . . . . . . . . . . . . . 18  |-  ( ( n  e.  ZZ  /\  ( P ^ k )  e.  NN )  -> 
( n  /  ( P ^ k ) )  e.  QQ )
11785, 89, 116syl2anc 409 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
n  /  ( P ^ k ) )  e.  QQ )
118117flqcld 10212 . . . . . . . . . . . . . . . 16  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( |_ `  ( n  / 
( P ^ k
) ) )  e.  ZZ )
119118zcnd 9314 . . . . . . . . . . . . . . 15  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( |_ `  ( n  / 
( P ^ k
) ) )  e.  CC )
120111, 115, 119fsumsub 11393 . . . . . . . . . . . . . 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 ) ) ) ) )
12194nn0red 9168 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  e.  RR )
12266nn0red 9168 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  n  e.  RR )
123 peano2re 8034 . . . . . . . . . . . . . . . . . . . 20  |-  ( n  e.  RR  ->  (
n  +  1 )  e.  RR )
124122, 123syl 14 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  e.  RR )
125110zred 9313 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  m  e.  RR )
12693nnzd 9312 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  e.  ZZ )
127 zdcle 9267 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( P  pCnt  (
n  +  1 ) )  e.  ZZ  /\  ( n  +  1
)  e.  ZZ )  -> DECID 
( P  pCnt  (
n  +  1 ) )  <_  ( n  +  1 ) )
12895, 126, 127syl2anc 409 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  -> DECID 
( P  pCnt  (
n  +  1 ) )  <_  ( n  +  1 ) )
129 zletric 9235 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( ( P  pCnt  (
n  +  1 ) )  e.  ZZ  /\  ( n  +  1
)  e.  ZZ )  ->  ( ( P 
pCnt  ( n  + 
1 ) )  <_ 
( n  +  1 )  \/  ( n  +  1 )  <_ 
( P  pCnt  (
n  +  1 ) ) ) )
13095, 126, 129syl2anc 409 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P 
pCnt  ( n  + 
1 ) )  <_ 
( n  +  1 )  \/  ( n  +  1 )  <_ 
( P  pCnt  (
n  +  1 ) ) ) )
131130ord 714 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( -.  ( P  pCnt  ( n  + 
1 ) )  <_ 
( n  +  1 )  ->  ( n  +  1 )  <_ 
( P  pCnt  (
n  +  1 ) ) ) )
13293nnnn0d 9167 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  e.  NN0 )
133 pcdvdsb 12251 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( P  e.  Prime  /\  (
n  +  1 )  e.  ZZ  /\  (
n  +  1 )  e.  NN0 )  -> 
( ( n  + 
1 )  <_  ( P  pCnt  ( n  + 
1 ) )  <->  ( P ^ ( n  + 
1 ) )  ||  ( n  +  1
) ) )
13470, 126, 132, 133syl3anc 1228 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( n  +  1 )  <_ 
( P  pCnt  (
n  +  1 ) )  <->  ( P ^
( n  +  1 ) )  ||  (
n  +  1 ) ) )
13587, 132nnexpcld 10610 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P ^
( n  +  1 ) )  e.  NN )
136135nnzd 9312 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P ^
( n  +  1 ) )  e.  ZZ )
137 dvdsle 11782 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( ( P ^ (
n  +  1 ) )  e.  ZZ  /\  ( n  +  1
)  e.  NN )  ->  ( ( P ^ ( n  + 
1 ) )  ||  ( n  +  1
)  ->  ( P ^ ( n  + 
1 ) )  <_ 
( n  +  1 ) ) )
138136, 93, 137syl2anc 409 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P ^ ( n  + 
1 ) )  ||  ( n  +  1
)  ->  ( P ^ ( n  + 
1 ) )  <_ 
( n  +  1 ) ) )
139135nnred 8870 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P ^
( n  +  1 ) )  e.  RR )
140139, 124lenltd 8016 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P ^ ( n  + 
1 ) )  <_ 
( n  +  1 )  <->  -.  ( n  +  1 )  < 
( P ^ (
n  +  1 ) ) ) )
141138, 140sylibd 148 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P ^ ( n  + 
1 ) )  ||  ( n  +  1
)  ->  -.  (
n  +  1 )  <  ( P ^
( n  +  1 ) ) ) )
142134, 141sylbid 149 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( n  +  1 )  <_ 
( P  pCnt  (
n  +  1 ) )  ->  -.  (
n  +  1 )  <  ( P ^
( n  +  1 ) ) ) )
143131, 142syld 45 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( -.  ( P  pCnt  ( n  + 
1 ) )  <_ 
( n  +  1 )  ->  -.  (
n  +  1 )  <  ( P ^
( n  +  1 ) ) ) )
144 prmuz2 12063 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( P  e.  Prime  ->  P  e.  ( ZZ>= `  2 )
)
145144ad2antlr 481 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  P  e.  (
ZZ>= `  2 ) )
146 bernneq3 10577 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( P  e.  ( ZZ>= ` 
2 )  /\  (
n  +  1 )  e.  NN0 )  -> 
( n  +  1 )  <  ( P ^ ( n  + 
1 ) ) )
147145, 132, 146syl2anc 409 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  <  ( P ^ ( n  + 
1 ) ) )
148 condc 843 . . . . . . . . . . . . . . . . . . . 20  |-  (DECID  ( P 
pCnt  ( n  + 
1 ) )  <_ 
( n  +  1 )  ->  ( ( -.  ( P  pCnt  (
n  +  1 ) )  <_  ( n  +  1 )  ->  -.  ( n  +  1 )  <  ( P ^ ( n  + 
1 ) ) )  ->  ( ( n  +  1 )  < 
( P ^ (
n  +  1 ) )  ->  ( P  pCnt  ( n  +  1 ) )  <_  (
n  +  1 ) ) ) )
149128, 143, 147, 148syl3c 63 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  <_  ( n  +  1 ) )
150 eluzle 9478 . . . . . . . . . . . . . . . . . . . 20  |-  ( m  e.  ( ZZ>= `  (
n  +  1 ) )  ->  ( n  +  1 )  <_  m )
151150adantl 275 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  <_  m
)
152121, 124, 125, 149, 151letrd 8022 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  <_  m )
153 eluz 9479 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( P  pCnt  (
n  +  1 ) )  e.  ZZ  /\  m  e.  ZZ )  ->  ( m  e.  (
ZZ>= `  ( P  pCnt  ( n  +  1 ) ) )  <->  ( P  pCnt  ( n  +  1 ) )  <_  m
) )
15495, 110, 153syl2anc 409 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( m  e.  ( ZZ>= `  ( P  pCnt  ( n  +  1 ) ) )  <->  ( P  pCnt  ( n  +  1 ) )  <_  m
) )
155152, 154mpbird 166 . . . . . . . . . . . . . . . . 17  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  m  e.  (
ZZ>= `  ( P  pCnt  ( n  +  1 ) ) ) )
156 fzss2 9999 . . . . . . . . . . . . . . . . 17  |-  ( m  e.  ( ZZ>= `  ( P  pCnt  ( n  + 
1 ) ) )  ->  ( 1 ... ( P  pCnt  (
n  +  1 ) ) )  C_  (
1 ... m ) )
157155, 156syl 14 . . . . . . . . . . . . . . . 16  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( 1 ... ( P  pCnt  (
n  +  1 ) ) )  C_  (
1 ... m ) )
158 elfzelz 9960 . . . . . . . . . . . . . . . . . . 19  |-  ( j  e.  ( 1 ... m )  ->  j  e.  ZZ )
159158adantl 275 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  j  e.  ( 1 ... m
) )  ->  j  e.  ZZ )
160 1zzd 9218 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  j  e.  ( 1 ... m
) )  ->  1  e.  ZZ )
16195adantr 274 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  j  e.  ( 1 ... m
) )  ->  ( P  pCnt  ( n  + 
1 ) )  e.  ZZ )
162 fzdcel 9975 . . . . . . . . . . . . . . . . . 18  |-  ( ( j  e.  ZZ  /\  1  e.  ZZ  /\  ( P  pCnt  ( n  + 
1 ) )  e.  ZZ )  -> DECID  j  e.  (
1 ... ( P  pCnt  ( n  +  1 ) ) ) )
163159, 160, 161, 162syl3anc 1228 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  j  e.  ( 1 ... m
) )  -> DECID  j  e.  (
1 ... ( P  pCnt  ( n  +  1 ) ) ) )
164163ralrimiva 2539 . . . . . . . . . . . . . . . 16  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  A. j  e.  ( 1 ... m )DECID  j  e.  ( 1 ... ( P  pCnt  (
n  +  1 ) ) ) )
165 sumhashdc 12277 . . . . . . . . . . . . . . . 16  |-  ( ( ( 1 ... m
)  e.  Fin  /\  ( 1 ... ( P  pCnt  ( n  + 
1 ) ) ) 
C_  ( 1 ... m )  /\  A. j  e.  ( 1 ... m )DECID  j  e.  ( 1 ... ( P  pCnt  ( n  + 
1 ) ) ) )  ->  sum_ k  e.  ( 1 ... m
) if ( k  e.  ( 1 ... ( P  pCnt  (
n  +  1 ) ) ) ,  1 ,  0 )  =  ( `  ( 1 ... ( P  pCnt  (
n  +  1 ) ) ) ) )
166111, 157, 164, 165syl3anc 1228 . . . . . . . . . . . . . . 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 ) ) ) ) )
167 hashfz1 10696 . . . . . . . . . . . . . . . 16  |-  ( ( P  pCnt  ( n  +  1 ) )  e.  NN0  ->  ( `  (
1 ... ( P  pCnt  ( n  +  1 ) ) ) )  =  ( P  pCnt  (
n  +  1 ) ) )
16894, 167syl 14 . . . . . . . . . . . . . . 15  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( `  ( 1 ... ( P  pCnt  (
n  +  1 ) ) ) )  =  ( P  pCnt  (
n  +  1 ) ) )
169166, 168eqtrd 2198 . . . . . . . . . . . . . 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 ) ) )
170107, 120, 1693eqtr3d 2206 . . . . . . . . . . . . 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 ) ) )
171111, 115fsumcl 11341 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  sum_ k  e.  ( 1 ... m ) ( |_ `  (
( n  +  1 )  /  ( P ^ k ) ) )  e.  CC )
172111, 119fsumcl 11341 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  sum_ k  e.  ( 1 ... m ) ( |_ `  (
n  /  ( P ^ k ) ) )  e.  CC )
17394nn0cnd 9169 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  e.  CC )
174171, 172, 173subaddd 8227 . . . . . . . . . . . . 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 ) ) ) ) )
175170, 174mpbid 146 . . . . . . . . . . . 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 ) ) ) )
17683, 175eqeq12d 2180 . . . . . . . . . . 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 ) ) ) ) )
17765, 176syl5ib 153 . . . . . . . . . 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 ) ) ) ) )
178177ralimdva 2533 . . . . . . . . 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 ) ) ) ) )
17964, 178syld 45 . . . . . . . 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 ) ) ) ) )
180179ex 114 . . . . . . 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 ) ) ) ) ) )
181180a2d 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 ) ) ) ) ) )
1828, 16, 24, 32, 56, 181nn0ind 9305 . . . . 5  |-  ( N  e.  NN0  ->  ( P  e.  Prime  ->  A. m  e.  ( ZZ>= `  N )
( P  pCnt  ( ! `  N )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( N  /  ( P ^ k ) ) ) ) )
183182imp 123 . . . 4  |-  ( ( N  e.  NN0  /\  P  e.  Prime )  ->  A. m  e.  ( ZZ>=
`  N ) ( P  pCnt  ( ! `  N ) )  = 
sum_ k  e.  ( 1 ... m ) ( |_ `  ( N  /  ( P ^
k ) ) ) )
184 oveq2 5850 . . . . . . 7  |-  ( m  =  M  ->  (
1 ... m )  =  ( 1 ... M
) )
185184sumeq1d 11307 . . . . . 6  |-  ( m  =  M  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( N  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... M
) ( |_ `  ( N  /  ( P ^ k ) ) ) )
186185eqeq2d 2177 . . . . 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 ) ) ) ) )
187186rspcv 2826 . . . 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 ) ) ) ) )
188183, 187syl5 32 . . 3  |-  ( M  e.  ( ZZ>= `  N
)  ->  ( ( N  e.  NN0  /\  P  e.  Prime )  ->  ( P  pCnt  ( ! `  N ) )  = 
sum_ k  e.  ( 1 ... M ) ( |_ `  ( N  /  ( P ^
k ) ) ) ) )
1891883impib 1191 . 2  |-  ( ( M  e.  ( ZZ>= `  N )  /\  N  e.  NN0  /\  P  e. 
Prime )  ->  ( P 
pCnt  ( ! `  N ) )  = 
sum_ k  e.  ( 1 ... M ) ( |_ `  ( N  /  ( P ^
k ) ) ) )
1901893com12 1197 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    /\ wa 103    <-> wb 104    \/ wo 698  DECID wdc 824    /\ w3a 968    = wceq 1343    e. wcel 2136    =/= wne 2336   A.wral 2444    C_ wss 3116   ifcif 3520   class class class wbr 3982   ` cfv 5188  (class class class)co 5842   Fincfn 6706   RRcr 7752   0cc0 7753   1c1 7754    + caddc 7756    x. cmul 7758    < clt 7933    <_ cle 7934    - cmin 8069    / cdiv 8568   NNcn 8857   2c2 8908   NN0cn0 9114   ZZcz 9191   ZZ>=cuz 9466   QQcq 9557   ...cfz 9944   |_cfl 10203   ^cexp 10454   !cfa 10638  ♯chash 10688   sum_csu 11294    || cdvds 11727   Primecprime 12039    pCnt cpc 12216
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 105  ax-ia2 106  ax-ia3 107  ax-in1 604  ax-in2 605  ax-io 699  ax-5 1435  ax-7 1436  ax-gen 1437  ax-ie1 1481  ax-ie2 1482  ax-8 1492  ax-10 1493  ax-11 1494  ax-i12 1495  ax-bndl 1497  ax-4 1498  ax-17 1514  ax-i9 1518  ax-ial 1522  ax-i5r 1523  ax-13 2138  ax-14 2139  ax-ext 2147  ax-coll 4097  ax-sep 4100  ax-nul 4108  ax-pow 4153  ax-pr 4187  ax-un 4411  ax-setind 4514  ax-iinf 4565  ax-cnex 7844  ax-resscn 7845  ax-1cn 7846  ax-1re 7847  ax-icn 7848  ax-addcl 7849  ax-addrcl 7850  ax-mulcl 7851  ax-mulrcl 7852  ax-addcom 7853  ax-mulcom 7854  ax-addass 7855  ax-mulass 7856  ax-distr 7857  ax-i2m1 7858  ax-0lt1 7859  ax-1rid 7860  ax-0id 7861  ax-rnegex 7862  ax-precex 7863  ax-cnre 7864  ax-pre-ltirr 7865  ax-pre-ltwlin 7866  ax-pre-lttrn 7867  ax-pre-apti 7868  ax-pre-ltadd 7869  ax-pre-mulgt0 7870  ax-pre-mulext 7871  ax-arch 7872  ax-caucvg 7873
This theorem depends on definitions:  df-bi 116  df-stab 821  df-dc 825  df-3or 969  df-3an 970  df-tru 1346  df-fal 1349  df-nf 1449  df-sb 1751  df-eu 2017  df-mo 2018  df-clab 2152  df-cleq 2158  df-clel 2161  df-nfc 2297  df-ne 2337  df-nel 2432  df-ral 2449  df-rex 2450  df-reu 2451  df-rmo 2452  df-rab 2453  df-v 2728  df-sbc 2952  df-csb 3046  df-dif 3118  df-un 3120  df-in 3122  df-ss 3129  df-nul 3410  df-if 3521  df-pw 3561  df-sn 3582  df-pr 3583  df-op 3585  df-uni 3790  df-int 3825  df-iun 3868  df-br 3983  df-opab 4044  df-mpt 4045  df-tr 4081  df-id 4271  df-po 4274  df-iso 4275  df-iord 4344  df-on 4346  df-ilim 4347  df-suc 4349  df-iom 4568  df-xp 4610  df-rel 4611  df-cnv 4612  df-co 4613  df-dm 4614  df-rn 4615  df-res 4616  df-ima 4617  df-iota 5153  df-fun 5190  df-fn 5191  df-f 5192  df-f1 5193  df-fo 5194  df-f1o 5195  df-fv 5196  df-isom 5197  df-riota 5798  df-ov 5845  df-oprab 5846  df-mpo 5847  df-1st 6108  df-2nd 6109  df-recs 6273  df-irdg 6338  df-frec 6359  df-1o 6384  df-2o 6385  df-oadd 6388  df-er 6501  df-en 6707  df-dom 6708  df-fin 6709  df-sup 6949  df-inf 6950  df-pnf 7935  df-mnf 7936  df-xr 7937  df-ltxr 7938  df-le 7939  df-sub 8071  df-neg 8072  df-reap 8473  df-ap 8480  df-div 8569  df-inn 8858  df-2 8916  df-3 8917  df-4 8918  df-n0 9115  df-z 9192  df-uz 9467  df-q 9558  df-rp 9590  df-fz 9945  df-fzo 10078  df-fl 10205  df-mod 10258  df-seqfrec 10381  df-exp 10455  df-fac 10639  df-ihash 10689  df-cj 10784  df-re 10785  df-im 10786  df-rsqrt 10940  df-abs 10941  df-clim 11220  df-sumdc 11295  df-dvds 11728  df-gcd 11876  df-prm 12040  df-pc 12217
This theorem is referenced by:  pcbc  12281
  Copyright terms: Public domain W3C validator