Metamath Proof Explorer


Theorem mccl

Description: A multinomial coefficient, in its standard domain, is a positive integer. (Contributed by Glauco Siliprandi, 5-Apr-2020)

Ref Expression
Hypotheses mccl.kb _kB
mccl.a φAFin
mccl.b φB0A
Assertion mccl φkABk!kABk!

Proof

Step Hyp Ref Expression
1 mccl.kb _kB
2 mccl.a φAFin
3 mccl.b φB0A
4 sumeq1 a=kabk=kbk
5 4 fveq2d a=kabk!=kbk!
6 prodeq1 a=kabk!=kbk!
7 5 6 oveq12d a=kabk!kabk!=kbk!kbk!
8 7 eleq1d a=kabk!kabk!kbk!kbk!
9 8 ralbidv a=b0akabk!kabk!b0akbk!kbk!
10 oveq2 a=0a=0
11 10 raleqdv a=b0akbk!kbk!b0kbk!kbk!
12 9 11 bitrd a=b0akabk!kabk!b0kbk!kbk!
13 sumeq1 a=ckabk=kcbk
14 13 fveq2d a=ckabk!=kcbk!
15 prodeq1 a=ckabk!=kcbk!
16 14 15 oveq12d a=ckabk!kabk!=kcbk!kcbk!
17 16 eleq1d a=ckabk!kabk!kcbk!kcbk!
18 17 ralbidv a=cb0akabk!kabk!b0akcbk!kcbk!
19 oveq2 a=c0a=0c
20 19 raleqdv a=cb0akcbk!kcbk!b0ckcbk!kcbk!
21 18 20 bitrd a=cb0akabk!kabk!b0ckcbk!kcbk!
22 sumeq1 a=cdkabk=kcdbk
23 22 fveq2d a=cdkabk!=kcdbk!
24 prodeq1 a=cdkabk!=kcdbk!
25 23 24 oveq12d a=cdkabk!kabk!=kcdbk!kcdbk!
26 25 eleq1d a=cdkabk!kabk!kcdbk!kcdbk!
27 26 ralbidv a=cdb0akabk!kabk!b0akcdbk!kcdbk!
28 oveq2 a=cd0a=0cd
29 28 raleqdv a=cdb0akcdbk!kcdbk!b0cdkcdbk!kcdbk!
30 27 29 bitrd a=cdb0akabk!kabk!b0cdkcdbk!kcdbk!
31 sumeq1 a=Akabk=kAbk
32 31 fveq2d a=Akabk!=kAbk!
33 prodeq1 a=Akabk!=kAbk!
34 32 33 oveq12d a=Akabk!kabk!=kAbk!kAbk!
35 34 eleq1d a=Akabk!kabk!kAbk!kAbk!
36 35 ralbidv a=Ab0akabk!kabk!b0akAbk!kAbk!
37 oveq2 a=A0a=0A
38 37 raleqdv a=Ab0akAbk!kAbk!b0AkAbk!kAbk!
39 36 38 bitrd a=Ab0akabk!kabk!b0AkAbk!kAbk!
40 sum0 kbk=0
41 40 fveq2i kbk!=0!
42 fac0 0!=1
43 41 42 eqtri kbk!=1
44 prod0 kbk!=1
45 43 44 oveq12i kbk!kbk!=11
46 1div1e1 11=1
47 45 46 eqtri kbk!kbk!=1
48 1nn 1
49 47 48 eqeltri kbk!kbk!
50 49 a1i φb0kbk!kbk!
51 50 ralrimiva φb0kbk!kbk!
52 nfv bφcAdAc
53 nfra1 bb0ckcbk!kcbk!
54 52 53 nfan bφcAdAcb0ckcbk!kcbk!
55 simpll φcAdAcb0ckcbk!kcbk!b0cdφcAdAc
56 fveq2 k=jbk=bj
57 56 cbvsumv kcbk=jcbj
58 57 a1i b=ekcbk=jcbj
59 fveq1 b=ebj=ej
60 59 sumeq2sdv b=ejcbj=jcej
61 58 60 eqtrd b=ekcbk=jcej
62 61 fveq2d b=ekcbk!=jcej!
63 2fveq3 k=jbk!=bj!
64 63 cbvprodv kcbk!=jcbj!
65 64 a1i b=ekcbk!=jcbj!
66 59 fveq2d b=ebj!=ej!
67 66 prodeq2ad b=ejcbj!=jcej!
68 65 67 eqtrd b=ekcbk!=jcej!
69 62 68 oveq12d b=ekcbk!kcbk!=jcej!jcej!
70 69 eleq1d b=ekcbk!kcbk!jcej!jcej!
71 70 cbvralvw b0ckcbk!kcbk!e0cjcej!jcej!
72 71 biimpi b0ckcbk!kcbk!e0cjcej!jcej!
73 72 ad2antlr φcAdAcb0ckcbk!kcbk!b0cde0cjcej!jcej!
74 simpr φcAdAcb0ckcbk!kcbk!b0cdb0cd
75 2 ad3antrrr φcAdAce0cjcej!jcej!b0cdAFin
76 simprl φcAdAccA
77 76 ad2antrr φcAdAce0cjcej!jcej!b0cdcA
78 simprr φcAdAcdAc
79 78 ad2antrr φcAdAce0cjcej!jcej!b0cddAc
80 simpr φcAdAce0cjcej!jcej!b0cdb0cd
81 fveq2 j=kej=ek
82 81 cbvsumv jcej=kcek
83 82 fveq2i jcej!=kcek!
84 2fveq3 j=kej!=ek!
85 84 cbvprodv jcej!=kcek!
86 83 85 oveq12i jcej!jcej!=kcek!kcek!
87 86 eleq1i jcej!jcej!kcek!kcek!
88 87 ralbii e0cjcej!jcej!e0ckcek!kcek!
89 88 biimpi e0cjcej!jcej!e0ckcek!kcek!
90 89 ad2antlr φcAdAce0cjcej!jcej!b0cde0ckcek!kcek!
91 75 77 79 80 90 mccllem φcAdAce0cjcej!jcej!b0cdkcdbk!kcdbk!
92 55 73 74 91 syl21anc φcAdAcb0ckcbk!kcbk!b0cdkcdbk!kcdbk!
93 92 ex φcAdAcb0ckcbk!kcbk!b0cdkcdbk!kcdbk!
94 54 93 ralrimi φcAdAcb0ckcbk!kcbk!b0cdkcdbk!kcdbk!
95 94 ex φcAdAcb0ckcbk!kcbk!b0cdkcdbk!kcdbk!
96 12 21 30 39 51 95 2 findcard2d φb0AkAbk!kAbk!
97 nfcv _kb
98 97 1 nfeq kb=B
99 fveq1 b=Bbk=Bk
100 99 a1d b=BkAbk=Bk
101 98 100 ralrimi b=BkAbk=Bk
102 101 sumeq2d b=BkAbk=kABk
103 102 fveq2d b=BkAbk!=kABk!
104 99 fveq2d b=Bbk!=Bk!
105 104 a1d b=BkAbk!=Bk!
106 98 105 ralrimi b=BkAbk!=Bk!
107 106 prodeq2d b=BkAbk!=kABk!
108 103 107 oveq12d b=BkAbk!kAbk!=kABk!kABk!
109 108 eleq1d b=BkAbk!kAbk!kABk!kABk!
110 109 rspccva b0AkAbk!kAbk!B0AkABk!kABk!
111 96 3 110 syl2anc φkABk!kABk!