Metamath Proof Explorer


Theorem bpolysum

Description: A sum for Bernoulli polynomials. (Contributed by Scott Fenton, 16-May-2014) (Proof shortened by Mario Carneiro, 22-May-2014)

Ref Expression
Assertion bpolysum N0Xk=0N(Nk)kBernPolyXN-k+1=XN

Proof

Step Hyp Ref Expression
1 simpl N0XN0
2 nn0uz 0=0
3 1 2 eleqtrdi N0XN0
4 elfzelz k0Nk
5 bccl N0k(Nk)0
6 1 4 5 syl2an N0Xk0N(Nk)0
7 6 nn0cnd N0Xk0N(Nk)
8 elfznn0 k0Nk0
9 simpr N0XX
10 bpolycl k0XkBernPolyX
11 8 9 10 syl2anr N0Xk0NkBernPolyX
12 fznn0sub k0NNk0
13 12 adantl N0Xk0NNk0
14 nn0p1nn Nk0N-k+1
15 13 14 syl N0Xk0NN-k+1
16 15 nncnd N0Xk0NN-k+1
17 15 nnne0d N0Xk0NN-k+10
18 11 16 17 divcld N0Xk0NkBernPolyXN-k+1
19 7 18 mulcld N0Xk0N(Nk)kBernPolyXN-k+1
20 oveq2 k=N(Nk)=(NN)
21 oveq1 k=NkBernPolyX=NBernPolyX
22 oveq2 k=NNk=NN
23 22 oveq1d k=NN-k+1=N-N+1
24 21 23 oveq12d k=NkBernPolyXN-k+1=NBernPolyXN-N+1
25 20 24 oveq12d k=N(Nk)kBernPolyXN-k+1=(NN)NBernPolyXN-N+1
26 3 19 25 fsumm1 N0Xk=0N(Nk)kBernPolyXN-k+1=k=0N1(Nk)kBernPolyXN-k+1+(NN)NBernPolyXN-N+1
27 bcnn N0(NN)=1
28 27 adantr N0X(NN)=1
29 nn0cn N0N
30 29 adantr N0XN
31 30 subidd N0XNN=0
32 31 oveq1d N0XN-N+1=0+1
33 0p1e1 0+1=1
34 32 33 eqtrdi N0XN-N+1=1
35 34 oveq2d N0XNBernPolyXN-N+1=NBernPolyX1
36 bpolycl N0XNBernPolyX
37 36 div1d N0XNBernPolyX1=NBernPolyX
38 35 37 eqtrd N0XNBernPolyXN-N+1=NBernPolyX
39 28 38 oveq12d N0X(NN)NBernPolyXN-N+1=1NBernPolyX
40 36 mullidd N0X1NBernPolyX=NBernPolyX
41 39 40 eqtrd N0X(NN)NBernPolyXN-N+1=NBernPolyX
42 41 oveq2d N0Xk=0N1(Nk)kBernPolyXN-k+1+(NN)NBernPolyXN-N+1=k=0N1(Nk)kBernPolyXN-k+1+NBernPolyX
43 bpolyval N0XNBernPolyX=XNk=0N1(Nk)kBernPolyXN-k+1
44 43 eqcomd N0XXNk=0N1(Nk)kBernPolyXN-k+1=NBernPolyX
45 expcl XN0XN
46 45 ancoms N0XXN
47 fzfid N0X0N1Fin
48 fzssp1 0N10N-1+1
49 ax-1cn 1
50 npcan N1N-1+1=N
51 30 49 50 sylancl N0XN-1+1=N
52 51 oveq2d N0X0N-1+1=0N
53 48 52 sseqtrid N0X0N10N
54 53 sselda N0Xk0N1k0N
55 54 19 syldan N0Xk0N1(Nk)kBernPolyXN-k+1
56 47 55 fsumcl N0Xk=0N1(Nk)kBernPolyXN-k+1
57 46 56 36 subaddd N0XXNk=0N1(Nk)kBernPolyXN-k+1=NBernPolyXk=0N1(Nk)kBernPolyXN-k+1+NBernPolyX=XN
58 44 57 mpbid N0Xk=0N1(Nk)kBernPolyXN-k+1+NBernPolyX=XN
59 26 42 58 3eqtrd N0Xk=0N(Nk)kBernPolyXN-k+1=XN