Metamath Proof Explorer


Theorem bccl

Description: A binomial coefficient, in its extended domain, is a nonnegative integer. (Contributed by NM, 10-Jul-2005) (Revised by Mario Carneiro, 9-Nov-2013)

Ref Expression
Assertion bccl ⊢ N ∈ ℕ 0 ∧ K ∈ ℤ → ( N K) ∈ ℕ 0

Proof

Step Hyp Ref Expression
1 oveq1 ⊢ m = 0 → ( m k) = ( 0 k)
2 1 eleq1d ⊢ m = 0 → ( m k) ∈ ℕ 0 ↔ ( 0 k) ∈ ℕ 0
3 2 ralbidv ⊢ m = 0 → ∀ k ∈ ℤ ( m k) ∈ ℕ 0 ↔ ∀ k ∈ ℤ ( 0 k) ∈ ℕ 0
4 oveq1 ⊢ m = n → ( m k) = ( n k)
5 4 eleq1d ⊢ m = n → ( m k) ∈ ℕ 0 ↔ ( n k) ∈ ℕ 0
6 5 ralbidv ⊢ m = n → ∀ k ∈ ℤ ( m k) ∈ ℕ 0 ↔ ∀ k ∈ ℤ ( n k) ∈ ℕ 0
7 oveq1 ⊢ m = n + 1 → ( m k) = ( n + 1 k)
8 7 eleq1d ⊢ m = n + 1 → ( m k) ∈ ℕ 0 ↔ ( n + 1 k) ∈ ℕ 0
9 8 ralbidv ⊢ m = n + 1 → ∀ k ∈ ℤ ( m k) ∈ ℕ 0 ↔ ∀ k ∈ ℤ ( n + 1 k) ∈ ℕ 0
10 oveq1 ⊢ m = N → ( m k) = ( N k)
11 10 eleq1d ⊢ m = N → ( m k) ∈ ℕ 0 ↔ ( N k) ∈ ℕ 0
12 11 ralbidv ⊢ m = N → ∀ k ∈ ℤ ( m k) ∈ ℕ 0 ↔ ∀ k ∈ ℤ ( N k) ∈ ℕ 0
13 elfz1eq ⊢ k ∈ 0 … 0 → k = 0
14 13 adantl ⊢ k ∈ ℤ ∧ k ∈ 0 … 0 → k = 0
15 oveq2 ⊢ k = 0 → ( 0 k) = ( 0 0 )
16 0nn0 ⊢ 0 ∈ ℕ 0
17 bcn0 ⊢ 0 ∈ ℕ 0 → ( 0 0 ) = 1
18 16 17 ax-mp ⊢ ( 0 0 ) = 1
19 1nn0 ⊢ 1 ∈ ℕ 0
20 18 19 eqeltri ⊢ ( 0 0 ) ∈ ℕ 0
21 15 20 eqeltrdi ⊢ k = 0 → ( 0 k) ∈ ℕ 0
22 14 21 syl ⊢ k ∈ ℤ ∧ k ∈ 0 … 0 → ( 0 k) ∈ ℕ 0
23 bcval3 ⊢ 0 ∈ ℕ 0 ∧ k ∈ ℤ ∧ ¬ k ∈ 0 … 0 → ( 0 k) = 0
24 16 23 mp3an1 ⊢ k ∈ ℤ ∧ ¬ k ∈ 0 … 0 → ( 0 k) = 0
25 24 16 eqeltrdi ⊢ k ∈ ℤ ∧ ¬ k ∈ 0 … 0 → ( 0 k) ∈ ℕ 0
26 22 25 pm2.61dan ⊢ k ∈ ℤ → ( 0 k) ∈ ℕ 0
27 26 rgen ⊢ ∀ k ∈ ℤ ( 0 k) ∈ ℕ 0
28 oveq2 ⊢ k = m → ( n k) = ( n m)
29 28 eleq1d ⊢ k = m → ( n k) ∈ ℕ 0 ↔ ( n m) ∈ ℕ 0
30 29 cbvralvw ⊢ ∀ k ∈ ℤ ( n k) ∈ ℕ 0 ↔ ∀ m ∈ ℤ ( n m) ∈ ℕ 0
31 bcpasc ⊢ n ∈ ℕ 0 ∧ k ∈ ℤ → ( n k) + ( n k − 1 ) = ( n + 1 k)
32 31 adantlr ⊢ n ∈ ℕ 0 ∧ ∀ m ∈ ℤ ( n m) ∈ ℕ 0 ∧ k ∈ ℤ → ( n k) + ( n k − 1 ) = ( n + 1 k)
33 oveq2 ⊢ m = k → ( n m) = ( n k)
34 33 eleq1d ⊢ m = k → ( n m) ∈ ℕ 0 ↔ ( n k) ∈ ℕ 0
35 34 rspccva ⊢ ∀ m ∈ ℤ ( n m) ∈ ℕ 0 ∧ k ∈ ℤ → ( n k) ∈ ℕ 0
36 peano2zm ⊢ k ∈ ℤ → k − 1 ∈ ℤ
37 oveq2 ⊢ m = k − 1 → ( n m) = ( n k − 1 )
38 37 eleq1d ⊢ m = k − 1 → ( n m) ∈ ℕ 0 ↔ ( n k − 1 ) ∈ ℕ 0
39 38 rspccva ⊢ ∀ m ∈ ℤ ( n m) ∈ ℕ 0 ∧ k − 1 ∈ ℤ → ( n k − 1 ) ∈ ℕ 0
40 36 39 sylan2 ⊢ ∀ m ∈ ℤ ( n m) ∈ ℕ 0 ∧ k ∈ ℤ → ( n k − 1 ) ∈ ℕ 0
41 35 40 nn0addcld ⊢ ∀ m ∈ ℤ ( n m) ∈ ℕ 0 ∧ k ∈ ℤ → ( n k) + ( n k − 1 ) ∈ ℕ 0
42 41 adantll ⊢ n ∈ ℕ 0 ∧ ∀ m ∈ ℤ ( n m) ∈ ℕ 0 ∧ k ∈ ℤ → ( n k) + ( n k − 1 ) ∈ ℕ 0
43 32 42 eqeltrrd ⊢ n ∈ ℕ 0 ∧ ∀ m ∈ ℤ ( n m) ∈ ℕ 0 ∧ k ∈ ℤ → ( n + 1 k) ∈ ℕ 0
44 43 ralrimiva ⊢ n ∈ ℕ 0 ∧ ∀ m ∈ ℤ ( n m) ∈ ℕ 0 → ∀ k ∈ ℤ ( n + 1 k) ∈ ℕ 0
45 44 ex ⊢ n ∈ ℕ 0 → ∀ m ∈ ℤ ( n m) ∈ ℕ 0 → ∀ k ∈ ℤ ( n + 1 k) ∈ ℕ 0
46 30 45 biimtrid ⊢ n ∈ ℕ 0 → ∀ k ∈ ℤ ( n k) ∈ ℕ 0 → ∀ k ∈ ℤ ( n + 1 k) ∈ ℕ 0
47 3 6 9 12 27 46 nn0ind ⊢ N ∈ ℕ 0 → ∀ k ∈ ℤ ( N k) ∈ ℕ 0
48 oveq2 ⊢ k = K → ( N k) = ( N K)
49 48 eleq1d ⊢ k = K → ( N k) ∈ ℕ 0 ↔ ( N K) ∈ ℕ 0
50 49 rspccva ⊢ ∀ k ∈ ℤ ( N k) ∈ ℕ 0 ∧ K ∈ ℤ → ( N K) ∈ ℕ 0
51 47 50 sylan ⊢ N ∈ ℕ 0 ∧ K ∈ ℤ → ( N K) ∈ ℕ 0