Metamath Proof Explorer


Theorem facdiv

Description: A positive integer divides the factorial of an equal or larger number. (Contributed by NM, 2-May-2005)

Ref Expression
Assertion facdiv ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ ∧ N ≤ M → M ! N ∈ ℕ

Proof

Step Hyp Ref Expression
1 breq2 ⊢ j = 0 → N ≤ j ↔ N ≤ 0
2 fveq2 ⊢ j = 0 → j ! = 0 !
3 2 oveq1d ⊢ j = 0 → j ! N = 0 ! N
4 3 eleq1d ⊢ j = 0 → j ! N ∈ ℕ ↔ 0 ! N ∈ ℕ
5 1 4 imbi12d ⊢ j = 0 → N ≤ j → j ! N ∈ ℕ ↔ N ≤ 0 → 0 ! N ∈ ℕ
6 5 imbi2d ⊢ j = 0 → N ∈ ℕ → N ≤ j → j ! N ∈ ℕ ↔ N ∈ ℕ → N ≤ 0 → 0 ! N ∈ ℕ
7 breq2 ⊢ j = k → N ≤ j ↔ N ≤ k
8 fveq2 ⊢ j = k → j ! = k !
9 8 oveq1d ⊢ j = k → j ! N = k ! N
10 9 eleq1d ⊢ j = k → j ! N ∈ ℕ ↔ k ! N ∈ ℕ
11 7 10 imbi12d ⊢ j = k → N ≤ j → j ! N ∈ ℕ ↔ N ≤ k → k ! N ∈ ℕ
12 11 imbi2d ⊢ j = k → N ∈ ℕ → N ≤ j → j ! N ∈ ℕ ↔ N ∈ ℕ → N ≤ k → k ! N ∈ ℕ
13 breq2 ⊢ j = k + 1 → N ≤ j ↔ N ≤ k + 1
14 fveq2 ⊢ j = k + 1 → j ! = k + 1 !
15 14 oveq1d ⊢ j = k + 1 → j ! N = k + 1 ! N
16 15 eleq1d ⊢ j = k + 1 → j ! N ∈ ℕ ↔ k + 1 ! N ∈ ℕ
17 13 16 imbi12d ⊢ j = k + 1 → N ≤ j → j ! N ∈ ℕ ↔ N ≤ k + 1 → k + 1 ! N ∈ ℕ
18 17 imbi2d ⊢ j = k + 1 → N ∈ ℕ → N ≤ j → j ! N ∈ ℕ ↔ N ∈ ℕ → N ≤ k + 1 → k + 1 ! N ∈ ℕ
19 breq2 ⊢ j = M → N ≤ j ↔ N ≤ M
20 fveq2 ⊢ j = M → j ! = M !
21 20 oveq1d ⊢ j = M → j ! N = M ! N
22 21 eleq1d ⊢ j = M → j ! N ∈ ℕ ↔ M ! N ∈ ℕ
23 19 22 imbi12d ⊢ j = M → N ≤ j → j ! N ∈ ℕ ↔ N ≤ M → M ! N ∈ ℕ
24 23 imbi2d ⊢ j = M → N ∈ ℕ → N ≤ j → j ! N ∈ ℕ ↔ N ∈ ℕ → N ≤ M → M ! N ∈ ℕ
25 nnnle0 ⊢ N ∈ ℕ → ¬ N ≤ 0
26 25 pm2.21d ⊢ N ∈ ℕ → N ≤ 0 → 0 ! N ∈ ℕ
27 nnre ⊢ N ∈ ℕ → N ∈ ℝ
28 peano2nn0 ⊢ k ∈ ℕ 0 → k + 1 ∈ ℕ 0
29 28 nn0red ⊢ k ∈ ℕ 0 → k + 1 ∈ ℝ
30 leloe ⊢ N ∈ ℝ ∧ k + 1 ∈ ℝ → N ≤ k + 1 ↔ N < k + 1 ∨ N = k + 1
31 27 29 30 syl2an ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → N ≤ k + 1 ↔ N < k + 1 ∨ N = k + 1
32 nnnn0 ⊢ N ∈ ℕ → N ∈ ℕ 0
33 nn0leltp1 ⊢ N ∈ ℕ 0 ∧ k ∈ ℕ 0 → N ≤ k ↔ N < k + 1
34 32 33 sylan ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → N ≤ k ↔ N < k + 1
35 nn0p1nn ⊢ k ∈ ℕ 0 → k + 1 ∈ ℕ
36 nnmulcl ⊢ k ! N ∈ ℕ ∧ k + 1 ∈ ℕ → k ! N ⁢ k + 1 ∈ ℕ
37 35 36 sylan2 ⊢ k ! N ∈ ℕ ∧ k ∈ ℕ 0 → k ! N ⁢ k + 1 ∈ ℕ
38 37 expcom ⊢ k ∈ ℕ 0 → k ! N ∈ ℕ → k ! N ⁢ k + 1 ∈ ℕ
39 38 adantl ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → k ! N ∈ ℕ → k ! N ⁢ k + 1 ∈ ℕ
40 faccl ⊢ k ∈ ℕ 0 → k ! ∈ ℕ
41 40 nncnd ⊢ k ∈ ℕ 0 → k ! ∈ ℂ
42 28 nn0cnd ⊢ k ∈ ℕ 0 → k + 1 ∈ ℂ
43 nncn ⊢ N ∈ ℕ → N ∈ ℂ
44 nnne0 ⊢ N ∈ ℕ → N ≠ 0
45 43 44 jca ⊢ N ∈ ℕ → N ∈ ℂ ∧ N ≠ 0
46 45 adantr ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → N ∈ ℂ ∧ N ≠ 0
47 div23 ⊢ k ! ∈ ℂ ∧ k + 1 ∈ ℂ ∧ N ∈ ℂ ∧ N ≠ 0 → k ! ⁢ k + 1 N = k ! N ⁢ k + 1
48 41 42 46 47 syl2an23an ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → k ! ⁢ k + 1 N = k ! N ⁢ k + 1
49 48 eleq1d ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → k ! ⁢ k + 1 N ∈ ℕ ↔ k ! N ⁢ k + 1 ∈ ℕ
50 39 49 sylibrd ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → k ! N ∈ ℕ → k ! ⁢ k + 1 N ∈ ℕ
51 50 imim2d ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → N ≤ k → k ! N ∈ ℕ → N ≤ k → k ! ⁢ k + 1 N ∈ ℕ
52 51 com23 ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → N ≤ k → N ≤ k → k ! N ∈ ℕ → k ! ⁢ k + 1 N ∈ ℕ
53 34 52 sylbird ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → N < k + 1 → N ≤ k → k ! N ∈ ℕ → k ! ⁢ k + 1 N ∈ ℕ
54 41 adantl ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → k ! ∈ ℂ
55 43 adantr ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → N ∈ ℂ
56 44 adantr ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → N ≠ 0
57 54 55 56 divcan4d ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → k ! ⋅ N N = k !
58 40 adantl ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → k ! ∈ ℕ
59 57 58 eqeltrd ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → k ! ⋅ N N ∈ ℕ
60 oveq2 ⊢ N = k + 1 → k ! ⋅ N = k ! ⁢ k + 1
61 60 oveq1d ⊢ N = k + 1 → k ! ⋅ N N = k ! ⁢ k + 1 N
62 61 eleq1d ⊢ N = k + 1 → k ! ⋅ N N ∈ ℕ ↔ k ! ⁢ k + 1 N ∈ ℕ
63 59 62 syl5ibcom ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → N = k + 1 → k ! ⁢ k + 1 N ∈ ℕ
64 63 a1dd ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → N = k + 1 → N ≤ k → k ! N ∈ ℕ → k ! ⁢ k + 1 N ∈ ℕ
65 53 64 jaod ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → N < k + 1 ∨ N = k + 1 → N ≤ k → k ! N ∈ ℕ → k ! ⁢ k + 1 N ∈ ℕ
66 31 65 sylbid ⊢ N ∈ ℕ ∧ k ∈ ℕ 0 → N ≤ k + 1 → N ≤ k → k ! N ∈ ℕ → k ! ⁢ k + 1 N ∈ ℕ
67 66 ex ⊢ N ∈ ℕ → k ∈ ℕ 0 → N ≤ k + 1 → N ≤ k → k ! N ∈ ℕ → k ! ⁢ k + 1 N ∈ ℕ
68 67 com34 ⊢ N ∈ ℕ → k ∈ ℕ 0 → N ≤ k → k ! N ∈ ℕ → N ≤ k + 1 → k ! ⁢ k + 1 N ∈ ℕ
69 68 com12 ⊢ k ∈ ℕ 0 → N ∈ ℕ → N ≤ k → k ! N ∈ ℕ → N ≤ k + 1 → k ! ⁢ k + 1 N ∈ ℕ
70 69 imp4d ⊢ k ∈ ℕ 0 → N ∈ ℕ ∧ N ≤ k → k ! N ∈ ℕ ∧ N ≤ k + 1 → k ! ⁢ k + 1 N ∈ ℕ
71 facp1 ⊢ k ∈ ℕ 0 → k + 1 ! = k ! ⁢ k + 1
72 71 oveq1d ⊢ k ∈ ℕ 0 → k + 1 ! N = k ! ⁢ k + 1 N
73 72 eleq1d ⊢ k ∈ ℕ 0 → k + 1 ! N ∈ ℕ ↔ k ! ⁢ k + 1 N ∈ ℕ
74 70 73 sylibrd ⊢ k ∈ ℕ 0 → N ∈ ℕ ∧ N ≤ k → k ! N ∈ ℕ ∧ N ≤ k + 1 → k + 1 ! N ∈ ℕ
75 74 exp4d ⊢ k ∈ ℕ 0 → N ∈ ℕ → N ≤ k → k ! N ∈ ℕ → N ≤ k + 1 → k + 1 ! N ∈ ℕ
76 75 a2d ⊢ k ∈ ℕ 0 → N ∈ ℕ → N ≤ k → k ! N ∈ ℕ → N ∈ ℕ → N ≤ k + 1 → k + 1 ! N ∈ ℕ
77 6 12 18 24 26 76 nn0ind ⊢ M ∈ ℕ 0 → N ∈ ℕ → N ≤ M → M ! N ∈ ℕ
78 77 3imp ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ ∧ N ≤ M → M ! N ∈ ℕ