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

Theorem pcfac 13003
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 5648 . . . . . . . 8  |-  ( x  =  0  ->  ( ZZ>=
`  x )  =  ( ZZ>= `  0 )
)
2 fveq2 5648 . . . . . . . . . 10  |-  ( x  =  0  ->  ( ! `  x )  =  ( ! ` 
0 ) )
32oveq2d 6044 . . . . . . . . 9  |-  ( x  =  0  ->  ( P  pCnt  ( ! `  x ) )  =  ( P  pCnt  ( ! `  0 )
) )
4 fvoveq1 6051 . . . . . . . . . 10  |-  ( x  =  0  ->  ( |_ `  ( x  / 
( P ^ k
) ) )  =  ( |_ `  (
0  /  ( P ^ k ) ) ) )
54sumeq2sdv 12010 . . . . . . . . 9  |-  ( x  =  0  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( 0  /  ( P ^ k ) ) ) )
63, 5eqeq12d 2246 . . . . . . . 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 2747 . . . . . . 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 230 . . . . . 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 5648 . . . . . . . 8  |-  ( x  =  n  ->  ( ZZ>=
`  x )  =  ( ZZ>= `  n )
)
10 fveq2 5648 . . . . . . . . . 10  |-  ( x  =  n  ->  ( ! `  x )  =  ( ! `  n ) )
1110oveq2d 6044 . . . . . . . . 9  |-  ( x  =  n  ->  ( P  pCnt  ( ! `  x ) )  =  ( P  pCnt  ( ! `  n )
) )
12 fvoveq1 6051 . . . . . . . . . 10  |-  ( x  =  n  ->  ( |_ `  ( x  / 
( P ^ k
) ) )  =  ( |_ `  (
n  /  ( P ^ k ) ) ) )
1312sumeq2sdv 12010 . . . . . . . . 9  |-  ( x  =  n  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( n  /  ( P ^ k ) ) ) )
1411, 13eqeq12d 2246 . . . . . . . 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 2747 . . . . . . 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 230 . . . . . 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 5648 . . . . . . . 8  |-  ( x  =  ( n  + 
1 )  ->  ( ZZ>=
`  x )  =  ( ZZ>= `  ( n  +  1 ) ) )
18 fveq2 5648 . . . . . . . . . 10  |-  ( x  =  ( n  + 
1 )  ->  ( ! `  x )  =  ( ! `  ( n  +  1
) ) )
1918oveq2d 6044 . . . . . . . . 9  |-  ( x  =  ( n  + 
1 )  ->  ( P  pCnt  ( ! `  x ) )  =  ( P  pCnt  ( ! `  ( n  +  1 ) ) ) )
20 fvoveq1 6051 . . . . . . . . . 10  |-  ( x  =  ( n  + 
1 )  ->  ( |_ `  ( x  / 
( P ^ k
) ) )  =  ( |_ `  (
( n  +  1 )  /  ( P ^ k ) ) ) )
2120sumeq2sdv 12010 . . . . . . . . 9  |-  ( x  =  ( n  + 
1 )  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( ( n  + 
1 )  /  ( P ^ k ) ) ) )
2219, 21eqeq12d 2246 . . . . . . . 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 2747 . . . . . . 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 230 . . . . . 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 5648 . . . . . . . 8  |-  ( x  =  N  ->  ( ZZ>=
`  x )  =  ( ZZ>= `  N )
)
26 fveq2 5648 . . . . . . . . . 10  |-  ( x  =  N  ->  ( ! `  x )  =  ( ! `  N ) )
2726oveq2d 6044 . . . . . . . . 9  |-  ( x  =  N  ->  ( P  pCnt  ( ! `  x ) )  =  ( P  pCnt  ( ! `  N )
) )
28 fvoveq1 6051 . . . . . . . . . 10  |-  ( x  =  N  ->  ( |_ `  ( x  / 
( P ^ k
) ) )  =  ( |_ `  ( N  /  ( P ^
k ) ) ) )
2928sumeq2sdv 12010 . . . . . . . . 9  |-  ( x  =  N  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( x  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( N  /  ( P ^ k ) ) ) )
3027, 29eqeq12d 2246 . . . . . . . 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 2747 . . . . . . 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 230 . . . . . 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 9567 . . . . . . . . . 10  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  1  e.  ZZ )
34 eluzelz 9826 . . . . . . . . . . 11  |-  ( m  e.  ( ZZ>= `  0
)  ->  m  e.  ZZ )
3534adantl 277 . . . . . . . . . 10  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  m  e.  ZZ )
3633, 35fzfigd 10756 . . . . . . . . 9  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  ( 1 ... m )  e. 
Fin )
37 isumz 12030 . . . . . . . . . 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 744 . . . . . . . . 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 9476 . . . . . . . . . 10  |-  0  e.  NN0
41 elfznn 10351 . . . . . . . . . . . . 13  |-  ( k  e.  ( 1 ... m )  ->  k  e.  NN )
4241nnnn0d 9516 . . . . . . . . . . . 12  |-  ( k  e.  ( 1 ... m )  ->  k  e.  NN0 )
43 nn0uz 9852 . . . . . . . . . . . 12  |-  NN0  =  ( ZZ>= `  0 )
4442, 43eleqtrdi 2324 . . . . . . . . . . 11  |-  ( k  e.  ( 1 ... m )  ->  k  e.  ( ZZ>= `  0 )
)
4544adantl 277 . . . . . . . . . 10  |-  ( ( ( P  e.  Prime  /\  m  e.  ( ZZ>= ` 
0 ) )  /\  k  e.  ( 1 ... m ) )  ->  k  e.  (
ZZ>= `  0 ) )
46 simpll 527 . . . . . . . . . 10  |-  ( ( ( P  e.  Prime  /\  m  e.  ( ZZ>= ` 
0 ) )  /\  k  e.  ( 1 ... m ) )  ->  P  e.  Prime )
47 pcfaclem 13002 . . . . . . . . . 10  |-  ( ( 0  e.  NN0  /\  k  e.  ( ZZ>= ` 
0 )  /\  P  e.  Prime )  ->  ( |_ `  ( 0  / 
( P ^ k
) ) )  =  0 )
4840, 45, 46, 47mp3an2i 1379 . . . . . . . . 9  |-  ( ( ( P  e.  Prime  /\  m  e.  ( ZZ>= ` 
0 ) )  /\  k  e.  ( 1 ... m ) )  ->  ( |_ `  ( 0  /  ( P ^ k ) ) )  =  0 )
4948sumeq2dv 12008 . . . . . . . 8  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( 0  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... m
) 0 )
50 fac0 11053 . . . . . . . . . . 11  |-  ( ! `
 0 )  =  1
5150oveq2i 6039 . . . . . . . . . 10  |-  ( P 
pCnt  ( ! ` 
0 ) )  =  ( P  pCnt  1
)
52 pc1 12958 . . . . . . . . . 10  |-  ( P  e.  Prime  ->  ( P 
pCnt  1 )  =  0 )
5351, 52eqtrid 2276 . . . . . . . . 9  |-  ( P  e.  Prime  ->  ( P 
pCnt  ( ! ` 
0 ) )  =  0 )
5453adantr 276 . . . . . . . 8  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  ( P  pCnt  ( ! `  0
) )  =  0 )
5539, 49, 543eqtr4rd 2275 . . . . . . 7  |-  ( ( P  e.  Prime  /\  m  e.  ( ZZ>= `  0 )
)  ->  ( P  pCnt  ( ! `  0
) )  =  sum_ k  e.  ( 1 ... m ) ( |_ `  ( 0  /  ( P ^
k ) ) ) )
5655ralrimiva 2606 . . . . . 6  |-  ( P  e.  Prime  ->  A. m  e.  ( ZZ>= `  0 )
( P  pCnt  ( ! `  0 )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( 0  /  ( P ^ k ) ) ) )
57 nn0z 9560 . . . . . . . . . . . 12  |-  ( n  e.  NN0  ->  n  e.  ZZ )
5857adantr 276 . . . . . . . . . . 11  |-  ( ( n  e.  NN0  /\  P  e.  Prime )  ->  n  e.  ZZ )
59 uzid 9831 . . . . . . . . . . 11  |-  ( n  e.  ZZ  ->  n  e.  ( ZZ>= `  n )
)
60 peano2uz 9878 . . . . . . . . . . 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 9838 . . . . . . . . . 10  |-  ( ( n  +  1 )  e.  ( ZZ>= `  n
)  ->  ( ZZ>= `  ( n  +  1
) )  C_  ( ZZ>=
`  n ) )
63 ssralv 3292 . . . . . . . . . 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 6035 . . . . . . . . . . 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 527 . . . . . . . . . . . . . . 15  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  n  e.  NN0 )
67 facp1 11055 . . . . . . . . . . . . . . 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 6044 . . . . . . . . . . . . 13  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( ! `  ( n  +  1 ) ) )  =  ( P 
pCnt  ( ( ! `
 n )  x.  ( n  +  1 ) ) ) )
70 simplr 529 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  P  e.  Prime )
71 faccl 11060 . . . . . . . . . . . . . . 15  |-  ( n  e.  NN0  ->  ( ! `
 n )  e.  NN )
72 nnz 9559 . . . . . . . . . . . . . . . 16  |-  ( ( ! `  n )  e.  NN  ->  ( ! `  n )  e.  ZZ )
73 nnne0 9230 . . . . . . . . . . . . . . . 16  |-  ( ( ! `  n )  e.  NN  ->  ( ! `  n )  =/=  0 )
7472, 73jca 306 . . . . . . . . . . . . . . 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 9500 . . . . . . . . . . . . . . 15  |-  ( n  e.  NN0  ->  ( n  +  1 )  e.  NN )
77 nnz 9559 . . . . . . . . . . . . . . . 16  |-  ( ( n  +  1 )  e.  NN  ->  (
n  +  1 )  e.  ZZ )
78 nnne0 9230 . . . . . . . . . . . . . . . 16  |-  ( ( n  +  1 )  e.  NN  ->  (
n  +  1 )  =/=  0 )
7977, 78jca 306 . . . . . . . . . . . . . . 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 12954 . . . . . . . . . . . . . 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 1274 . . . . . . . . . . . . 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 2265 . . . . . . . . . . . 12  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P 
pCnt  ( ! `  n ) )  +  ( P  pCnt  (
n  +  1 ) ) )  =  ( P  pCnt  ( ! `  ( n  +  1 ) ) ) )
8466adantr 276 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  n  e.  NN0 )
8584nn0zd 9661 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  n  e.  ZZ )
86 prmnn 12762 . . . . . . . . . . . . . . . . . . 19  |-  ( P  e.  Prime  ->  P  e.  NN )
8786ad2antlr 489 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  P  e.  NN )
88 nnexpcl 10877 . . . . . . . . . . . . . . . . . 18  |-  ( ( P  e.  NN  /\  k  e.  NN0 )  -> 
( P ^ k
)  e.  NN )
8987, 42, 88syl2an 289 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( P ^ k )  e.  NN )
90 fldivp1 13001 . . . . . . . . . . . . . . . . 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 411 . . . . . . . . . . . . . . . 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 10318 . . . . . . . . . . . . . . . . . . 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 12953 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  e.  NN0 )
9594nn0zd 9661 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  e.  ZZ )
96 elfz5 10314 . . . . . . . . . . . . . . . . . . 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 290 . . . . . . . . . . . . . . . . . 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 536 . . . . . . . . . . . . . . . . . . 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 9662 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
n  +  1 )  e.  ZZ )
10142adantl 277 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  k  e.  NN0 )
102 pcdvdsb 12973 . . . . . . . . . . . . . . . . . . 19  |-  ( ( P  e.  Prime  /\  (
n  +  1 )  e.  ZZ  /\  k  e.  NN0 )  ->  (
k  <_  ( P  pCnt  ( n  +  1 ) )  <->  ( P ^ k )  ||  ( n  +  1
) ) )
10398, 100, 101, 102syl3anc 1274 . . . . . . . . . . . . . . . . . 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 189 . . . . . . . . . . . . . . . . 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 3631 . . . . . . . . . . . . . . . 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 2264 . . . . . . . . . . . . . . 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 12008 . . . . . . . . . . . . . 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 9567 . . . . . . . . . . . . . . . 16  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  1  e.  ZZ )
109 eluzelz 9826 . . . . . . . . . . . . . . . . 17  |-  ( m  e.  ( ZZ>= `  (
n  +  1 ) )  ->  m  e.  ZZ )
110109adantl 277 . . . . . . . . . . . . . . . 16  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  m  e.  ZZ )
111108, 110fzfigd 10756 . . . . . . . . . . . . . . 15  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( 1 ... m )  e.  Fin )
112 znq 9919 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( n  +  1 )  e.  ZZ  /\  ( P ^ k )  e.  NN )  -> 
( ( n  + 
1 )  /  ( P ^ k ) )  e.  QQ )
113100, 89, 112syl2anc 411 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
( n  +  1 )  /  ( P ^ k ) )  e.  QQ )
114113flqcld 10600 . . . . . . . . . . . . . . . 16  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( |_ `  ( ( n  +  1 )  / 
( P ^ k
) ) )  e.  ZZ )
115114zcnd 9664 . . . . . . . . . . . . . . 15  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( |_ `  ( ( n  +  1 )  / 
( P ^ k
) ) )  e.  CC )
116 znq 9919 . . . . . . . . . . . . . . . . . 18  |-  ( ( n  e.  ZZ  /\  ( P ^ k )  e.  NN )  -> 
( n  /  ( P ^ k ) )  e.  QQ )
11785, 89, 116syl2anc 411 . . . . . . . . . . . . . . . . 17  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  (
n  /  ( P ^ k ) )  e.  QQ )
118117flqcld 10600 . . . . . . . . . . . . . . . 16  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( |_ `  ( n  / 
( P ^ k
) ) )  e.  ZZ )
119118zcnd 9664 . . . . . . . . . . . . . . 15  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  k  e.  ( 1 ... m
) )  ->  ( |_ `  ( n  / 
( P ^ k
) ) )  e.  CC )
120111, 115, 119fsumsub 12093 . . . . . . . . . . . . . 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 9517 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  e.  RR )
12266nn0red 9517 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  n  e.  RR )
123 peano2re 8374 . . . . . . . . . . . . . . . . . . . 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 9663 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  m  e.  RR )
12693nnzd 9662 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  e.  ZZ )
127 zdcle 9617 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( P  pCnt  (
n  +  1 ) )  e.  ZZ  /\  ( n  +  1
)  e.  ZZ )  -> DECID 
( P  pCnt  (
n  +  1 ) )  <_  ( n  +  1 ) )
12895, 126, 127syl2anc 411 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  -> DECID 
( P  pCnt  (
n  +  1 ) )  <_  ( n  +  1 ) )
129 zletric 9584 . . . . . . . . . . . . . . . . . . . . . . 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 411 . . . . . . . . . . . . . . . . . . . . . 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 732 . . . . . . . . . . . . . . . . . . . . 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 9516 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  e.  NN0 )
133 pcdvdsb 12973 . . . . . . . . . . . . . . . . . . . . . . 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 1274 . . . . . . . . . . . . . . . . . . . . . 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 11020 . . . . . . . . . . . . . . . . . . . . . . . . 25  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P ^
( n  +  1 ) )  e.  NN )
136135nnzd 9662 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P ^
( n  +  1 ) )  e.  ZZ )
137 dvdsle 12485 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( ( P ^ (
n  +  1 ) )  e.  ZZ  /\  ( n  +  1
)  e.  NN )  ->  ( ( P ^ ( n  + 
1 ) )  ||  ( n  +  1
)  ->  ( P ^ ( n  + 
1 ) )  <_ 
( n  +  1 ) ) )
138136, 93, 137syl2anc 411 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P ^ ( n  + 
1 ) )  ||  ( n  +  1
)  ->  ( P ^ ( n  + 
1 ) )  <_ 
( n  +  1 ) ) )
139135nnred 9215 . . . . . . . . . . . . . . . . . . . . . . . 24  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P ^
( n  +  1 ) )  e.  RR )
140139, 124lenltd 8356 . . . . . . . . . . . . . . . . . . . . . . 23  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P ^ ( n  + 
1 ) )  <_ 
( n  +  1 )  <->  -.  ( n  +  1 )  < 
( P ^ (
n  +  1 ) ) ) )
141138, 140sylibd 149 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( ( P ^ ( n  + 
1 ) )  ||  ( n  +  1
)  ->  -.  (
n  +  1 )  <  ( P ^
( n  +  1 ) ) ) )
142134, 141sylbid 150 . . . . . . . . . . . . . . . . . . . . 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 12783 . . . . . . . . . . . . . . . . . . . . . 22  |-  ( P  e.  Prime  ->  P  e.  ( ZZ>= `  2 )
)
145144ad2antlr 489 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  P  e.  (
ZZ>= `  2 ) )
146 bernneq3 10987 . . . . . . . . . . . . . . . . . . . . 21  |-  ( ( P  e.  ( ZZ>= ` 
2 )  /\  (
n  +  1 )  e.  NN0 )  -> 
( n  +  1 )  <  ( P ^ ( n  + 
1 ) ) )
147145, 132, 146syl2anc 411 . . . . . . . . . . . . . . . . . . . 20  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  <  ( P ^ ( n  + 
1 ) ) )
148 condc 861 . . . . . . . . . . . . . . . . . . . 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 9829 . . . . . . . . . . . . . . . . . . . 20  |-  ( m  e.  ( ZZ>= `  (
n  +  1 ) )  ->  ( n  +  1 )  <_  m )
151150adantl 277 . . . . . . . . . . . . . . . . . . 19  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( n  + 
1 )  <_  m
)
152121, 124, 125, 149, 151letrd 8362 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  <_  m )
153 eluz 9830 . . . . . . . . . . . . . . . . . . 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 411 . . . . . . . . . . . . . . . . . 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 167 . . . . . . . . . . . . . . . . 17  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  m  e.  (
ZZ>= `  ( P  pCnt  ( n  +  1 ) ) ) )
156 fzss2 10361 . . . . . . . . . . . . . . . . 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 10322 . . . . . . . . . . . . . . . . . . 19  |-  ( j  e.  ( 1 ... m )  ->  j  e.  ZZ )
159158adantl 277 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  j  e.  ( 1 ... m
) )  ->  j  e.  ZZ )
160 1zzd 9567 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  j  e.  ( 1 ... m
) )  ->  1  e.  ZZ )
16195adantr 276 . . . . . . . . . . . . . . . . . 18  |-  ( ( ( ( n  e. 
NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>= `  ( n  +  1 ) ) )  /\  j  e.  ( 1 ... m
) )  ->  ( P  pCnt  ( n  + 
1 ) )  e.  ZZ )
162 fzdcel 10337 . . . . . . . . . . . . . . . . . 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 1274 . . . . . . . . . . . . . . . . 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 2606 . . . . . . . . . . . . . . . 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 13000 . . . . . . . . . . . . . . . 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 1274 . . . . . . . . . . . . . . 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 11108 . . . . . . . . . . . . . . . 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 2264 . . . . . . . . . . . . . 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 2272 . . . . . . . . . . . . 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 12041 . . . . . . . . . . . . . 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 12041 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  sum_ k  e.  ( 1 ... m ) ( |_ `  (
n  /  ( P ^ k ) ) )  e.  CC )
17394nn0cnd 9518 . . . . . . . . . . . . . 14  |-  ( ( ( n  e.  NN0  /\  P  e.  Prime )  /\  m  e.  ( ZZ>=
`  ( n  + 
1 ) ) )  ->  ( P  pCnt  ( n  +  1 ) )  e.  CC )
174171, 172, 173subaddd 8567 . . . . . . . . . . . . 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 147 . . . . . . . . . . . 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 2246 . . . . . . . . . . 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, 176imbitrid 154 . . . . . . . . . 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 2600 . . . . . . . . 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 115 . . . . . . 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 9655 . . . . 5  |-  ( N  e.  NN0  ->  ( P  e.  Prime  ->  A. m  e.  ( ZZ>= `  N )
( P  pCnt  ( ! `  N )
)  =  sum_ k  e.  ( 1 ... m
) ( |_ `  ( N  /  ( P ^ k ) ) ) ) )
183182imp 124 . . . 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 6036 . . . . . . 7  |-  ( m  =  M  ->  (
1 ... m )  =  ( 1 ... M
) )
185184sumeq1d 12006 . . . . . 6  |-  ( m  =  M  ->  sum_ k  e.  ( 1 ... m
) ( |_ `  ( N  /  ( P ^ k ) ) )  =  sum_ k  e.  ( 1 ... M
) ( |_ `  ( N  /  ( P ^ k ) ) ) )
186185eqeq2d 2243 . . . . 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 2907 . . . 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 1228 . 2  |-  ( ( M  e.  ( ZZ>= `  N )  /\  N  e.  NN0  /\  P  e. 
Prime )  ->  ( P 
pCnt  ( ! `  N ) )  = 
sum_ k  e.  ( 1 ... M ) ( |_ `  ( N  /  ( P ^
k ) ) ) )
1901893com12 1234 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 104    <-> wb 105    \/ wo 716  DECID wdc 842    /\ w3a 1005    = wceq 1398    e. wcel 2202    =/= wne 2403   A.wral 2511    C_ wss 3201   ifcif 3607   class class class wbr 4093   ` cfv 5333  (class class class)co 6028   Fincfn 6952   RRcr 8091   0cc0 8092   1c1 8093    + caddc 8095    x. cmul 8097    < clt 8273    <_ cle 8274    - cmin 8409    / cdiv 8911   NNcn 9202   2c2 9253   NN0cn0 9461   ZZcz 9540   ZZ>=cuz 9816   QQcq 9914   ...cfz 10305   |_cfl 10591   ^cexp 10863   !cfa 11050  ♯chash 11100   sum_csu 11993    || cdvds 12428   Primecprime 12759    pCnt cpc 12937
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 619  ax-in2 620  ax-io 717  ax-5 1496  ax-7 1497  ax-gen 1498  ax-ie1 1542  ax-ie2 1543  ax-8 1553  ax-10 1554  ax-11 1555  ax-i12 1556  ax-bndl 1558  ax-4 1559  ax-17 1575  ax-i9 1579  ax-ial 1583  ax-i5r 1584  ax-13 2204  ax-14 2205  ax-ext 2213  ax-coll 4209  ax-sep 4212  ax-nul 4220  ax-pow 4270  ax-pr 4305  ax-un 4536  ax-setind 4641  ax-iinf 4692  ax-cnex 8183  ax-resscn 8184  ax-1cn 8185  ax-1re 8186  ax-icn 8187  ax-addcl 8188  ax-addrcl 8189  ax-mulcl 8190  ax-mulrcl 8191  ax-addcom 8192  ax-mulcom 8193  ax-addass 8194  ax-mulass 8195  ax-distr 8196  ax-i2m1 8197  ax-0lt1 8198  ax-1rid 8199  ax-0id 8200  ax-rnegex 8201  ax-precex 8202  ax-cnre 8203  ax-pre-ltirr 8204  ax-pre-ltwlin 8205  ax-pre-lttrn 8206  ax-pre-apti 8207  ax-pre-ltadd 8208  ax-pre-mulgt0 8209  ax-pre-mulext 8210  ax-arch 8211  ax-caucvg 8212
This theorem depends on definitions:  df-bi 117  df-stab 839  df-dc 843  df-3or 1006  df-3an 1007  df-tru 1401  df-fal 1404  df-nf 1510  df-sb 1811  df-eu 2082  df-mo 2083  df-clab 2218  df-cleq 2224  df-clel 2227  df-nfc 2364  df-ne 2404  df-nel 2499  df-ral 2516  df-rex 2517  df-reu 2518  df-rmo 2519  df-rab 2520  df-v 2805  df-sbc 3033  df-csb 3129  df-dif 3203  df-un 3205  df-in 3207  df-ss 3214  df-nul 3497  df-if 3608  df-pw 3658  df-sn 3679  df-pr 3680  df-op 3682  df-uni 3899  df-int 3934  df-iun 3977  df-br 4094  df-opab 4156  df-mpt 4157  df-tr 4193  df-id 4396  df-po 4399  df-iso 4400  df-iord 4469  df-on 4471  df-ilim 4472  df-suc 4474  df-iom 4695  df-xp 4737  df-rel 4738  df-cnv 4739  df-co 4740  df-dm 4741  df-rn 4742  df-res 4743  df-ima 4744  df-iota 5293  df-fun 5335  df-fn 5336  df-f 5337  df-f1 5338  df-fo 5339  df-f1o 5340  df-fv 5341  df-isom 5342  df-riota 5981  df-ov 6031  df-oprab 6032  df-mpo 6033  df-1st 6312  df-2nd 6313  df-recs 6514  df-irdg 6579  df-frec 6600  df-1o 6625  df-2o 6626  df-oadd 6629  df-er 6745  df-en 6953  df-dom 6954  df-fin 6955  df-sup 7243  df-inf 7244  df-pnf 8275  df-mnf 8276  df-xr 8277  df-ltxr 8278  df-le 8279  df-sub 8411  df-neg 8412  df-reap 8814  df-ap 8821  df-div 8912  df-inn 9203  df-2 9261  df-3 9262  df-4 9263  df-n0 9462  df-z 9541  df-uz 9817  df-q 9915  df-rp 9950  df-fz 10306  df-fzo 10440  df-fl 10593  df-mod 10648  df-seqfrec 10773  df-exp 10864  df-fac 11051  df-ihash 11101  df-cj 11482  df-re 11483  df-im 11484  df-rsqrt 11638  df-abs 11639  df-clim 11919  df-sumdc 11994  df-dvds 12429  df-gcd 12605  df-prm 12760  df-pc 12938
This theorem is referenced by:  pcbc  13004
  Copyright terms: Public domain W3C validator