Proof of Theorem bccmpl
| Step | Hyp | Ref
| Expression |
| 1 | | bcval2 10842 |
. . . 4
⊢ (𝐾 ∈ (0...𝑁) → (𝑁C𝐾) = ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾)))) |
| 2 | | fznn0sub2 10203 |
. . . . . 6
⊢ (𝐾 ∈ (0...𝑁) → (𝑁 − 𝐾) ∈ (0...𝑁)) |
| 3 | | bcval2 10842 |
. . . . . 6
⊢ ((𝑁 − 𝐾) ∈ (0...𝑁) → (𝑁C(𝑁 − 𝐾)) = ((!‘𝑁) / ((!‘(𝑁 − (𝑁 − 𝐾))) · (!‘(𝑁 − 𝐾))))) |
| 4 | 2, 3 | syl 14 |
. . . . 5
⊢ (𝐾 ∈ (0...𝑁) → (𝑁C(𝑁 − 𝐾)) = ((!‘𝑁) / ((!‘(𝑁 − (𝑁 − 𝐾))) · (!‘(𝑁 − 𝐾))))) |
| 5 | | elfznn0 10189 |
. . . . . . . . . . 11
⊢ ((𝑁 − 𝐾) ∈ (0...𝑁) → (𝑁 − 𝐾) ∈
ℕ0) |
| 6 | 5 | faccld 10828 |
. . . . . . . . . 10
⊢ ((𝑁 − 𝐾) ∈ (0...𝑁) → (!‘(𝑁 − 𝐾)) ∈ ℕ) |
| 7 | 6 | nncnd 9004 |
. . . . . . . . 9
⊢ ((𝑁 − 𝐾) ∈ (0...𝑁) → (!‘(𝑁 − 𝐾)) ∈ ℂ) |
| 8 | 2, 7 | syl 14 |
. . . . . . . 8
⊢ (𝐾 ∈ (0...𝑁) → (!‘(𝑁 − 𝐾)) ∈ ℂ) |
| 9 | | elfznn0 10189 |
. . . . . . . . . 10
⊢ (𝐾 ∈ (0...𝑁) → 𝐾 ∈
ℕ0) |
| 10 | 9 | faccld 10828 |
. . . . . . . . 9
⊢ (𝐾 ∈ (0...𝑁) → (!‘𝐾) ∈ ℕ) |
| 11 | 10 | nncnd 9004 |
. . . . . . . 8
⊢ (𝐾 ∈ (0...𝑁) → (!‘𝐾) ∈ ℂ) |
| 12 | 8, 11 | mulcomd 8048 |
. . . . . . 7
⊢ (𝐾 ∈ (0...𝑁) → ((!‘(𝑁 − 𝐾)) · (!‘𝐾)) = ((!‘𝐾) · (!‘(𝑁 − 𝐾)))) |
| 13 | | elfz3nn0 10190 |
. . . . . . . . . 10
⊢ (𝐾 ∈ (0...𝑁) → 𝑁 ∈
ℕ0) |
| 14 | | elfzelz 10100 |
. . . . . . . . . 10
⊢ (𝐾 ∈ (0...𝑁) → 𝐾 ∈ ℤ) |
| 15 | | nn0cn 9259 |
. . . . . . . . . . 11
⊢ (𝑁 ∈ ℕ0
→ 𝑁 ∈
ℂ) |
| 16 | | zcn 9331 |
. . . . . . . . . . 11
⊢ (𝐾 ∈ ℤ → 𝐾 ∈
ℂ) |
| 17 | | nncan 8255 |
. . . . . . . . . . 11
⊢ ((𝑁 ∈ ℂ ∧ 𝐾 ∈ ℂ) → (𝑁 − (𝑁 − 𝐾)) = 𝐾) |
| 18 | 15, 16, 17 | syl2an 289 |
. . . . . . . . . 10
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ (𝑁 − (𝑁 − 𝐾)) = 𝐾) |
| 19 | 13, 14, 18 | syl2anc 411 |
. . . . . . . . 9
⊢ (𝐾 ∈ (0...𝑁) → (𝑁 − (𝑁 − 𝐾)) = 𝐾) |
| 20 | 19 | fveq2d 5562 |
. . . . . . . 8
⊢ (𝐾 ∈ (0...𝑁) → (!‘(𝑁 − (𝑁 − 𝐾))) = (!‘𝐾)) |
| 21 | 20 | oveq1d 5937 |
. . . . . . 7
⊢ (𝐾 ∈ (0...𝑁) → ((!‘(𝑁 − (𝑁 − 𝐾))) · (!‘(𝑁 − 𝐾))) = ((!‘𝐾) · (!‘(𝑁 − 𝐾)))) |
| 22 | 12, 21 | eqtr4d 2232 |
. . . . . 6
⊢ (𝐾 ∈ (0...𝑁) → ((!‘(𝑁 − 𝐾)) · (!‘𝐾)) = ((!‘(𝑁 − (𝑁 − 𝐾))) · (!‘(𝑁 − 𝐾)))) |
| 23 | 22 | oveq2d 5938 |
. . . . 5
⊢ (𝐾 ∈ (0...𝑁) → ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾))) = ((!‘𝑁) / ((!‘(𝑁 − (𝑁 − 𝐾))) · (!‘(𝑁 − 𝐾))))) |
| 24 | 4, 23 | eqtr4d 2232 |
. . . 4
⊢ (𝐾 ∈ (0...𝑁) → (𝑁C(𝑁 − 𝐾)) = ((!‘𝑁) / ((!‘(𝑁 − 𝐾)) · (!‘𝐾)))) |
| 25 | 1, 24 | eqtr4d 2232 |
. . 3
⊢ (𝐾 ∈ (0...𝑁) → (𝑁C𝐾) = (𝑁C(𝑁 − 𝐾))) |
| 26 | 25 | adantl 277 |
. 2
⊢ (((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
∧ 𝐾 ∈ (0...𝑁)) → (𝑁C𝐾) = (𝑁C(𝑁 − 𝐾))) |
| 27 | | bcval3 10843 |
. . . 4
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ
∧ ¬ 𝐾 ∈
(0...𝑁)) → (𝑁C𝐾) = 0) |
| 28 | | simp1 999 |
. . . . 5
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ
∧ ¬ 𝐾 ∈
(0...𝑁)) → 𝑁 ∈
ℕ0) |
| 29 | | nn0z 9346 |
. . . . . . 7
⊢ (𝑁 ∈ ℕ0
→ 𝑁 ∈
ℤ) |
| 30 | | zsubcl 9367 |
. . . . . . 7
⊢ ((𝑁 ∈ ℤ ∧ 𝐾 ∈ ℤ) → (𝑁 − 𝐾) ∈ ℤ) |
| 31 | 29, 30 | sylan 283 |
. . . . . 6
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ (𝑁 − 𝐾) ∈
ℤ) |
| 32 | 31 | 3adant3 1019 |
. . . . 5
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ
∧ ¬ 𝐾 ∈
(0...𝑁)) → (𝑁 − 𝐾) ∈ ℤ) |
| 33 | | fznn0sub2 10203 |
. . . . . . . 8
⊢ ((𝑁 − 𝐾) ∈ (0...𝑁) → (𝑁 − (𝑁 − 𝐾)) ∈ (0...𝑁)) |
| 34 | 18 | eleq1d 2265 |
. . . . . . . 8
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ ((𝑁 − (𝑁 − 𝐾)) ∈ (0...𝑁) ↔ 𝐾 ∈ (0...𝑁))) |
| 35 | 33, 34 | imbitrid 154 |
. . . . . . 7
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ ((𝑁 − 𝐾) ∈ (0...𝑁) → 𝐾 ∈ (0...𝑁))) |
| 36 | 35 | con3d 632 |
. . . . . 6
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ (¬ 𝐾 ∈
(0...𝑁) → ¬ (𝑁 − 𝐾) ∈ (0...𝑁))) |
| 37 | 36 | 3impia 1202 |
. . . . 5
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ
∧ ¬ 𝐾 ∈
(0...𝑁)) → ¬
(𝑁 − 𝐾) ∈ (0...𝑁)) |
| 38 | | bcval3 10843 |
. . . . 5
⊢ ((𝑁 ∈ ℕ0
∧ (𝑁 − 𝐾) ∈ ℤ ∧ ¬
(𝑁 − 𝐾) ∈ (0...𝑁)) → (𝑁C(𝑁 − 𝐾)) = 0) |
| 39 | 28, 32, 37, 38 | syl3anc 1249 |
. . . 4
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ
∧ ¬ 𝐾 ∈
(0...𝑁)) → (𝑁C(𝑁 − 𝐾)) = 0) |
| 40 | 27, 39 | eqtr4d 2232 |
. . 3
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ
∧ ¬ 𝐾 ∈
(0...𝑁)) → (𝑁C𝐾) = (𝑁C(𝑁 − 𝐾))) |
| 41 | 40 | 3expa 1205 |
. 2
⊢ (((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
∧ ¬ 𝐾 ∈
(0...𝑁)) → (𝑁C𝐾) = (𝑁C(𝑁 − 𝐾))) |
| 42 | | simpr 110 |
. . . 4
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ 𝐾 ∈
ℤ) |
| 43 | | 0zd 9338 |
. . . 4
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ 0 ∈ ℤ) |
| 44 | 29 | adantr 276 |
. . . 4
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ 𝑁 ∈
ℤ) |
| 45 | | fzdcel 10115 |
. . . 4
⊢ ((𝐾 ∈ ℤ ∧ 0 ∈
ℤ ∧ 𝑁 ∈
ℤ) → DECID 𝐾 ∈ (0...𝑁)) |
| 46 | 42, 43, 44, 45 | syl3anc 1249 |
. . 3
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ DECID 𝐾 ∈ (0...𝑁)) |
| 47 | | exmiddc 837 |
. . 3
⊢
(DECID 𝐾 ∈ (0...𝑁) → (𝐾 ∈ (0...𝑁) ∨ ¬ 𝐾 ∈ (0...𝑁))) |
| 48 | 46, 47 | syl 14 |
. 2
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ (𝐾 ∈ (0...𝑁) ∨ ¬ 𝐾 ∈ (0...𝑁))) |
| 49 | 26, 41, 48 | mpjaodan 799 |
1
⊢ ((𝑁 ∈ ℕ0
∧ 𝐾 ∈ ℤ)
→ (𝑁C𝐾) = (𝑁C(𝑁 − 𝐾))) |