| Step | Hyp | Ref
 | Expression | 
| 1 |   | iftrue 3566 | 
. . . . 5
⊢ (𝐾 ∈ (0...𝑁) → if(𝐾 ∈ (0...𝑁), ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾))), 0) = ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾)))) | 
| 2 | 1 | adantl 277 | 
. . . 4
⊢ (((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
∧ 𝐾 ∈ (0...𝑁)) → if(𝐾 ∈ (0...𝑁), ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾))), 0) = ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾)))) | 
| 3 |   | simpll 527 | 
. . . . . . 7
⊢ (((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
∧ 𝐾 ∈ (0...𝑁)) → 𝑁 ∈
ℕ0) | 
| 4 | 3 | faccld 10828 | 
. . . . . 6
⊢ (((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
∧ 𝐾 ∈ (0...𝑁)) → (!‘𝑁) ∈
ℕ) | 
| 5 | 4 | nnzd 9447 | 
. . . . 5
⊢ (((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
∧ 𝐾 ∈ (0...𝑁)) → (!‘𝑁) ∈
ℤ) | 
| 6 |   | fznn0sub 10132 | 
. . . . . . . 8
⊢ (𝐾 ∈ (0...𝑁) → (𝑁 − 𝐾) ∈
ℕ0) | 
| 7 | 6 | adantl 277 | 
. . . . . . 7
⊢ (((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
∧ 𝐾 ∈ (0...𝑁)) → (𝑁 − 𝐾) ∈
ℕ0) | 
| 8 | 7 | faccld 10828 | 
. . . . . 6
⊢ (((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
∧ 𝐾 ∈ (0...𝑁)) → (!‘(𝑁 − 𝐾)) ∈ ℕ) | 
| 9 |   | elfznn0 10189 | 
. . . . . . . 8
⊢ (𝐾 ∈ (0...𝑁) → 𝐾 ∈
ℕ0) | 
| 10 | 9 | adantl 277 | 
. . . . . . 7
⊢ (((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
∧ 𝐾 ∈ (0...𝑁)) → 𝐾 ∈
ℕ0) | 
| 11 | 10 | faccld 10828 | 
. . . . . 6
⊢ (((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
∧ 𝐾 ∈ (0...𝑁)) → (!‘𝐾) ∈
ℕ) | 
| 12 | 8, 11 | nnmulcld 9039 | 
. . . . 5
⊢ (((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
∧ 𝐾 ∈ (0...𝑁)) → ((!‘(𝑁 − 𝐾)) · (!‘𝐾)) ∈ ℕ) | 
| 13 |   | znq 9698 | 
. . . . 5
⊢
(((!‘𝑁) ∈
ℤ ∧ ((!‘(𝑁
− 𝐾)) ·
(!‘𝐾)) ∈
ℕ) → ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾))) ∈ ℚ) | 
| 14 | 5, 12, 13 | syl2anc 411 | 
. . . 4
⊢ (((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
∧ 𝐾 ∈ (0...𝑁)) → ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾))) ∈ ℚ) | 
| 15 | 2, 14 | eqeltrd 2273 | 
. . 3
⊢ (((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
∧ 𝐾 ∈ (0...𝑁)) → if(𝐾 ∈ (0...𝑁), ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾))), 0) ∈ ℚ) | 
| 16 |   | iffalse 3569 | 
. . . . 5
⊢ (¬
𝐾 ∈ (0...𝑁) → if(𝐾 ∈ (0...𝑁), ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾))), 0) = 0) | 
| 17 |   | 0z 9337 | 
. . . . . 6
⊢ 0 ∈
ℤ | 
| 18 |   | zq 9700 | 
. . . . . 6
⊢ (0 ∈
ℤ → 0 ∈ ℚ) | 
| 19 | 17, 18 | ax-mp 5 | 
. . . . 5
⊢ 0 ∈
ℚ | 
| 20 | 16, 19 | eqeltrdi 2287 | 
. . . 4
⊢ (¬
𝐾 ∈ (0...𝑁) → if(𝐾 ∈ (0...𝑁), ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾))), 0) ∈ ℚ) | 
| 21 | 20 | adantl 277 | 
. . 3
⊢ (((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
∧ ¬ 𝐾 ∈
(0...𝑁)) → if(𝐾 ∈ (0...𝑁), ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾))), 0) ∈ ℚ) | 
| 22 |   | simpr 110 | 
. . . . 5
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ 𝐾 ∈
ℤ) | 
| 23 |   | 0zd 9338 | 
. . . . 5
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ 0 ∈ ℤ) | 
| 24 |   | simpl 109 | 
. . . . . 6
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ 𝑁 ∈
ℕ0) | 
| 25 | 24 | nn0zd 9446 | 
. . . . 5
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ 𝑁 ∈
ℤ) | 
| 26 |   | fzdcel 10115 | 
. . . . 5
⊢ ((𝐾 ∈ ℤ ∧ 0 ∈
ℤ ∧ 𝑁 ∈
ℤ) → DECID 𝐾 ∈ (0...𝑁)) | 
| 27 | 22, 23, 25, 26 | syl3anc 1249 | 
. . . 4
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ DECID 𝐾 ∈ (0...𝑁)) | 
| 28 |   | exmiddc 837 | 
. . . 4
⊢
(DECID 𝐾 ∈ (0...𝑁) → (𝐾 ∈ (0...𝑁) ∨ ¬ 𝐾 ∈ (0...𝑁))) | 
| 29 | 27, 28 | syl 14 | 
. . 3
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ (𝐾 ∈ (0...𝑁) ∨ ¬ 𝐾 ∈ (0...𝑁))) | 
| 30 | 15, 21, 29 | mpjaodan 799 | 
. 2
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ if(𝐾 ∈
(0...𝑁), ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾))), 0) ∈ ℚ) | 
| 31 |   | oveq2 5930 | 
. . . . 5
⊢ (𝑛 = 𝑁 → (0...𝑛) = (0...𝑁)) | 
| 32 | 31 | eleq2d 2266 | 
. . . 4
⊢ (𝑛 = 𝑁 → (𝑘 ∈ (0...𝑛) ↔ 𝑘 ∈ (0...𝑁))) | 
| 33 |   | fveq2 5558 | 
. . . . 5
⊢ (𝑛 = 𝑁 → (!‘𝑛) = (!‘𝑁)) | 
| 34 |   | oveq1 5929 | 
. . . . . . 7
⊢ (𝑛 = 𝑁 → (𝑛 − 𝑘) = (𝑁 − 𝑘)) | 
| 35 | 34 | fveq2d 5562 | 
. . . . . 6
⊢ (𝑛 = 𝑁 → (!‘(𝑛 − 𝑘)) = (!‘(𝑁 − 𝑘))) | 
| 36 | 35 | oveq1d 5937 | 
. . . . 5
⊢ (𝑛 = 𝑁 → ((!‘(𝑛 − 𝑘)) · (!‘𝑘)) = ((!‘(𝑁 − 𝑘)) · (!‘𝑘))) | 
| 37 | 33, 36 | oveq12d 5940 | 
. . . 4
⊢ (𝑛 = 𝑁 → ((!‘𝑛) / ((!‘(𝑛 − 𝑘)) · (!‘𝑘))) = ((!‘𝑁) / ((!‘(𝑁 − 𝑘)) · (!‘𝑘)))) | 
| 38 | 32, 37 | ifbieq1d 3583 | 
. . 3
⊢ (𝑛 = 𝑁 → if(𝑘 ∈ (0...𝑛), ((!‘𝑛) / ((!‘(𝑛 − 𝑘)) · (!‘𝑘))), 0) = if(𝑘 ∈ (0...𝑁), ((!‘𝑁) / ((!‘(𝑁 − 𝑘)) · (!‘𝑘))), 0)) | 
| 39 |   | eleq1 2259 | 
. . . 4
⊢ (𝑘 = 𝐾 → (𝑘 ∈ (0...𝑁) ↔ 𝐾 ∈ (0...𝑁))) | 
| 40 |   | oveq2 5930 | 
. . . . . . 7
⊢ (𝑘 = 𝐾 → (𝑁 − 𝑘) = (𝑁 − 𝐾)) | 
| 41 | 40 | fveq2d 5562 | 
. . . . . 6
⊢ (𝑘 = 𝐾 → (!‘(𝑁 − 𝑘)) = (!‘(𝑁 − 𝐾))) | 
| 42 |   | fveq2 5558 | 
. . . . . 6
⊢ (𝑘 = 𝐾 → (!‘𝑘) = (!‘𝐾)) | 
| 43 | 41, 42 | oveq12d 5940 | 
. . . . 5
⊢ (𝑘 = 𝐾 → ((!‘(𝑁 − 𝑘)) · (!‘𝑘)) = ((!‘(𝑁 − 𝐾)) · (!‘𝐾))) | 
| 44 | 43 | oveq2d 5938 | 
. . . 4
⊢ (𝑘 = 𝐾 → ((!‘𝑁) / ((!‘(𝑁 − 𝑘)) · (!‘𝑘))) = ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾)))) | 
| 45 | 39, 44 | ifbieq1d 3583 | 
. . 3
⊢ (𝑘 = 𝐾 → if(𝑘 ∈ (0...𝑁), ((!‘𝑁) / ((!‘(𝑁 − 𝑘)) · (!‘𝑘))), 0) = if(𝐾 ∈ (0...𝑁), ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾))), 0)) | 
| 46 |   | df-bc 10840 | 
. . 3
⊢ C =
(𝑛 ∈
ℕ0, 𝑘
∈ ℤ ↦ if(𝑘
∈ (0...𝑛),
((!‘𝑛) /
((!‘(𝑛 − 𝑘)) · (!‘𝑘))), 0)) | 
| 47 | 38, 45, 46 | ovmpog 6057 | 
. 2
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ
∧ if(𝐾 ∈
(0...𝑁), ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾))), 0) ∈ ℚ) → (𝑁C𝐾) = if(𝐾 ∈ (0...𝑁), ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾))), 0)) | 
| 48 | 30, 47 | mpd3an3 1349 | 
1
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ (𝑁C𝐾) = if(𝐾 ∈ (0...𝑁), ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾))), 0)) |