Metamath Proof Explorer


Theorem bcprod

Description: A product identity for binomial coefficents. (Contributed by Scott Fenton, 23-Jun-2020)

Ref Expression
Assertion bcprod Nk=1N1(N1k)=k=1N1k2kN

Proof

Step Hyp Ref Expression
1 oveq1 m=1m1=11
2 1m1e0 11=0
3 1 2 eqtrdi m=1m1=0
4 3 oveq2d m=11m1=10
5 fz10 10=
6 4 5 eqtrdi m=11m1=
7 3 oveq1d m=1(m1k)=(0k)
8 7 adantr m=1k1m1(m1k)=(0k)
9 6 8 prodeq12dv m=1k=1m1(m1k)=k(0k)
10 oveq2 m=12km=2k1
11 10 oveq2d m=1k2km=k2k1
12 11 adantr m=1k1m1k2km=k2k1
13 6 12 prodeq12dv m=1k=1m1k2km=kk2k1
14 9 13 eqeq12d m=1k=1m1(m1k)=k=1m1k2kmk(0k)=kk2k1
15 oveq1 m=nm1=n1
16 15 oveq2d m=n1m1=1n1
17 15 oveq1d m=n(m1k)=(n1k)
18 17 adantr m=nk1m1(m1k)=(n1k)
19 16 18 prodeq12dv m=nk=1m1(m1k)=k=1n1(n1k)
20 oveq2 m=n2km=2kn
21 20 oveq2d m=nk2km=k2kn
22 21 adantr m=nk1m1k2km=k2kn
23 16 22 prodeq12dv m=nk=1m1k2km=k=1n1k2kn
24 19 23 eqeq12d m=nk=1m1(m1k)=k=1m1k2kmk=1n1(n1k)=k=1n1k2kn
25 oveq1 m=n+1m1=n+1-1
26 25 oveq2d m=n+11m1=1n+1-1
27 25 oveq1d m=n+1(m1k)=(n+1-1k)
28 27 adantr m=n+1k1m1(m1k)=(n+1-1k)
29 26 28 prodeq12dv m=n+1k=1m1(m1k)=k=1n+1-1(n+1-1k)
30 oveq2 m=n+12km=2kn+1
31 30 oveq2d m=n+1k2km=k2kn+1
32 31 adantr m=n+1k1m1k2km=k2kn+1
33 26 32 prodeq12dv m=n+1k=1m1k2km=k=1n+1-1k2kn+1
34 29 33 eqeq12d m=n+1k=1m1(m1k)=k=1m1k2kmk=1n+1-1(n+1-1k)=k=1n+1-1k2kn+1
35 oveq1 m=Nm1=N1
36 35 oveq2d m=N1m1=1N1
37 35 oveq1d m=N(m1k)=(N1k)
38 37 adantr m=Nk1m1(m1k)=(N1k)
39 36 38 prodeq12dv m=Nk=1m1(m1k)=k=1N1(N1k)
40 oveq2 m=N2km=2kN
41 40 oveq2d m=Nk2km=k2kN
42 41 adantr m=Nk1m1k2km=k2kN
43 36 42 prodeq12dv m=Nk=1m1k2km=k=1N1k2kN
44 39 43 eqeq12d m=Nk=1m1(m1k)=k=1m1k2kmk=1N1(N1k)=k=1N1k2kN
45 prod0 k(0k)=1
46 prod0 kk2k1=1
47 45 46 eqtr4i k(0k)=kk2k1
48 simpr nk=1n1(n1k)=k=1n1k2knk=1n1(n1k)=k=1n1k2kn
49 48 oveq1d nk=1n1(n1k)=k=1n1k2knk=1n1(n1k)nn1n1!=k=1n1k2knnn1n1!
50 nncn nn
51 1cnd n1
52 50 51 pncand nn+1-1=n
53 52 oveq2d n1n+1-1=1n
54 52 oveq1d n(n+1-1k)=(nk)
55 54 adantr nk1n+1-1(n+1-1k)=(nk)
56 53 55 prodeq12dv nk=1n+1-1(n+1-1k)=k=1n(nk)
57 elnnuz nn1
58 57 biimpi nn1
59 nnnn0 nn0
60 elfzelz k1nk
61 bccl n0k(nk)0
62 59 60 61 syl2an nk1n(nk)0
63 62 nn0cnd nk1n(nk)
64 oveq2 k=n(nk)=(nn)
65 58 63 64 fprodm1 nk=1n(nk)=k=1n1(nk)(nn)
66 bcnn n0(nn)=1
67 59 66 syl n(nn)=1
68 67 oveq2d nk=1n1(nk)(nn)=k=1n1(nk)1
69 fzfid n1n1Fin
70 elfzelz k1n1k
71 59 70 61 syl2an nk1n1(nk)0
72 71 nn0cnd nk1n1(nk)
73 69 72 fprodcl nk=1n1(nk)
74 73 mulridd nk=1n1(nk)1=k=1n1(nk)
75 fz1ssfz0 1n10n1
76 75 sseli k1n1k0n1
77 bcm1nt nk0n1(nk)=(n1k)nnk
78 76 77 sylan2 nk1n1(nk)=(n1k)nnk
79 78 prodeq2dv nk=1n1(nk)=k=1n1(n1k)nnk
80 nnm1nn0 nn10
81 bccl n10k(n1k)0
82 80 70 81 syl2an nk1n1(n1k)0
83 82 nn0cnd nk1n1(n1k)
84 50 adantr nk1n1n
85 elfznn k1n1k
86 85 adantl nk1n1k
87 86 nnred nk1n1k
88 80 adantr nk1n1n10
89 88 nn0red nk1n1n1
90 nnre nn
91 90 adantr nk1n1n
92 elfzle2 k1n1kn1
93 92 adantl nk1n1kn1
94 91 ltm1d nk1n1n1<n
95 87 89 91 93 94 lelttrd nk1n1k<n
96 simpl nk1n1n
97 nnsub knk<nnk
98 86 96 97 syl2anc nk1n1k<nnk
99 95 98 mpbid nk1n1nk
100 99 nncnd nk1n1nk
101 99 nnne0d nk1n1nk0
102 84 100 101 divcld nk1n1nnk
103 69 83 102 fprodmul nk=1n1(n1k)nnk=k=1n1(n1k)k=1n1nnk
104 69 84 100 101 fproddiv nk=1n1nnk=k=1n1nk=1n1nk
105 fzfi 1n1Fin
106 fprodconst 1n1Finnk=1n1n=n1n1
107 105 50 106 sylancr nk=1n1n=n1n1
108 hashfz1 n101n1=n1
109 80 108 syl n1n1=n1
110 109 oveq2d nn1n1=nn1
111 107 110 eqtr2d nnn1=k=1n1n
112 fprodfac n10n1!=j=1n1j
113 80 112 syl nn1!=j=1n1j
114 nnz nn
115 1zzd n1
116 80 nn0zd nn1
117 elfznn j1n1j
118 117 adantl nj1n1j
119 118 nncnd nj1n1j
120 id j=nkj=nk
121 114 115 116 119 120 fprodrev nj=1n1j=k=nn1n1nk
122 50 51 nncand nnn1=1
123 122 oveq1d nnn1n1=1n1
124 123 prodeq1d nk=nn1n1nk=k=1n1nk
125 113 121 124 3eqtrd nn1!=k=1n1nk
126 111 125 oveq12d nnn1n1!=k=1n1nk=1n1nk
127 104 126 eqtr4d nk=1n1nnk=nn1n1!
128 127 oveq2d nk=1n1(n1k)k=1n1nnk=k=1n1(n1k)nn1n1!
129 79 103 128 3eqtrd nk=1n1(nk)=k=1n1(n1k)nn1n1!
130 68 74 129 3eqtrd nk=1n1(nk)(nn)=k=1n1(n1k)nn1n1!
131 56 65 130 3eqtrd nk=1n+1-1(n+1-1k)=k=1n1(n1k)nn1n1!
132 131 adantr nk=1n1(n1k)=k=1n1k2knk=1n+1-1(n+1-1k)=k=1n1(n1k)nn1n1!
133 53 prodeq1d nk=1n+1-1k2kn+1=k=1nk2kn+1
134 elfznn k1nk
135 134 adantl nk1nk
136 135 nncnd nk1nk
137 135 nnne0d nk1nk0
138 2nn 2
139 138 a1i nk1n2
140 139 135 nnmulcld nk1n2k
141 140 nnzd nk1n2k
142 peano2nn nn+1
143 142 adantr nk1nn+1
144 143 nnzd nk1nn+1
145 141 144 zsubcld nk1n2kn+1
146 136 137 145 expclzd nk1nk2kn+1
147 id k=nk=n
148 oveq2 k=n2k=2n
149 148 oveq1d k=n2kn+1=2nn+1
150 147 149 oveq12d k=nk2kn+1=n2nn+1
151 58 146 150 fprodm1 nk=1nk2kn+1=k=1n1k2kn+1n2nn+1
152 86 nncnd nk1n1k
153 86 nnne0d nk1n1k0
154 138 a1i nk1n12
155 154 86 nnmulcld nk1n12k
156 155 nnzd nk1n12k
157 114 adantr nk1n1n
158 156 157 zsubcld nk1n12kn
159 152 153 158 expclzd nk1n1k2kn
160 69 159 152 153 fproddiv nk=1n1k2knk=k=1n1k2knk=1n1k
161 155 nncnd nk1n12k
162 1cnd nk1n11
163 161 84 162 subsub4d nk1n12k-n-1=2kn+1
164 163 oveq2d nk1n1k2k-n-1=k2kn+1
165 152 153 158 expm1d nk1n1k2k-n-1=k2knk
166 164 165 eqtr3d nk1n1k2kn+1=k2knk
167 166 prodeq2dv nk=1n1k2kn+1=k=1n1k2knk
168 fprodfac n10n1!=k=1n1k
169 80 168 syl nn1!=k=1n1k
170 169 oveq2d nk=1n1k2knn1!=k=1n1k2knk=1n1k
171 160 167 170 3eqtr4d nk=1n1k2kn+1=k=1n1k2knn1!
172 138 a1i n2
173 id nn
174 172 173 nnmulcld n2n
175 174 nncnd n2n
176 175 50 51 subsub4d n2n-n-1=2nn+1
177 50 2timesd n2n=n+n
178 50 50 177 mvrladdd n2nn=n
179 178 oveq1d n2n-n-1=n1
180 176 179 eqtr3d n2nn+1=n1
181 180 oveq2d nn2nn+1=nn1
182 171 181 oveq12d nk=1n1k2kn+1n2nn+1=k=1n1k2knn1!nn1
183 69 159 fprodcl nk=1n1k2kn
184 faccl n10n1!
185 80 184 syl nn1!
186 185 nncnd nn1!
187 50 80 expcld nnn1
188 185 nnne0d nn1!0
189 183 186 187 188 div32d nk=1n1k2knn1!nn1=k=1n1k2knnn1n1!
190 182 189 eqtrd nk=1n1k2kn+1n2nn+1=k=1n1k2knnn1n1!
191 133 151 190 3eqtrd nk=1n+1-1k2kn+1=k=1n1k2knnn1n1!
192 191 adantr nk=1n1(n1k)=k=1n1k2knk=1n+1-1k2kn+1=k=1n1k2knnn1n1!
193 49 132 192 3eqtr4d nk=1n1(n1k)=k=1n1k2knk=1n+1-1(n+1-1k)=k=1n+1-1k2kn+1
194 193 ex nk=1n1(n1k)=k=1n1k2knk=1n+1-1(n+1-1k)=k=1n+1-1k2kn+1
195 14 24 34 44 47 194 nnind Nk=1N1(N1k)=k=1N1k2kN