Metamath Proof Explorer


Theorem faclbnd

Description: A lower bound for the factorial function. (Contributed by NM, 17-Dec-2005)

Ref Expression
Assertion faclbnd ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 → M N + 1 ≤ M M ⁢ N !

Proof

Step Hyp Ref Expression
1 elnn0 ⊢ M ∈ ℕ 0 ↔ M ∈ ℕ ∨ M = 0
2 oveq1 ⊢ j = 0 → j + 1 = 0 + 1
3 2 oveq2d ⊢ j = 0 → M j + 1 = M 0 + 1
4 fveq2 ⊢ j = 0 → j ! = 0 !
5 4 oveq2d ⊢ j = 0 → M M ⁢ j ! = M M ⁢ 0 !
6 3 5 breq12d ⊢ j = 0 → M j + 1 ≤ M M ⁢ j ! ↔ M 0 + 1 ≤ M M ⁢ 0 !
7 6 imbi2d ⊢ j = 0 → M ∈ ℕ → M j + 1 ≤ M M ⁢ j ! ↔ M ∈ ℕ → M 0 + 1 ≤ M M ⁢ 0 !
8 oveq1 ⊢ j = k → j + 1 = k + 1
9 8 oveq2d ⊢ j = k → M j + 1 = M k + 1
10 fveq2 ⊢ j = k → j ! = k !
11 10 oveq2d ⊢ j = k → M M ⁢ j ! = M M ⁢ k !
12 9 11 breq12d ⊢ j = k → M j + 1 ≤ M M ⁢ j ! ↔ M k + 1 ≤ M M ⁢ k !
13 12 imbi2d ⊢ j = k → M ∈ ℕ → M j + 1 ≤ M M ⁢ j ! ↔ M ∈ ℕ → M k + 1 ≤ M M ⁢ k !
14 oveq1 ⊢ j = k + 1 → j + 1 = k + 1 + 1
15 14 oveq2d ⊢ j = k + 1 → M j + 1 = M k + 1 + 1
16 fveq2 ⊢ j = k + 1 → j ! = k + 1 !
17 16 oveq2d ⊢ j = k + 1 → M M ⁢ j ! = M M ⁢ k + 1 !
18 15 17 breq12d ⊢ j = k + 1 → M j + 1 ≤ M M ⁢ j ! ↔ M k + 1 + 1 ≤ M M ⁢ k + 1 !
19 18 imbi2d ⊢ j = k + 1 → M ∈ ℕ → M j + 1 ≤ M M ⁢ j ! ↔ M ∈ ℕ → M k + 1 + 1 ≤ M M ⁢ k + 1 !
20 oveq1 ⊢ j = N → j + 1 = N + 1
21 20 oveq2d ⊢ j = N → M j + 1 = M N + 1
22 fveq2 ⊢ j = N → j ! = N !
23 22 oveq2d ⊢ j = N → M M ⁢ j ! = M M ⁢ N !
24 21 23 breq12d ⊢ j = N → M j + 1 ≤ M M ⁢ j ! ↔ M N + 1 ≤ M M ⁢ N !
25 24 imbi2d ⊢ j = N → M ∈ ℕ → M j + 1 ≤ M M ⁢ j ! ↔ M ∈ ℕ → M N + 1 ≤ M M ⁢ N !
26 nnre ⊢ M ∈ ℕ → M ∈ ℝ
27 nnge1 ⊢ M ∈ ℕ → 1 ≤ M
28 elnnuz ⊢ M ∈ ℕ ↔ M ∈ ℤ ≥ 1
29 28 biimpi ⊢ M ∈ ℕ → M ∈ ℤ ≥ 1
30 26 27 29 leexp2ad ⊢ M ∈ ℕ → M 1 ≤ M M
31 0p1e1 ⊢ 0 + 1 = 1
32 31 oveq2i ⊢ M 0 + 1 = M 1
33 32 a1i ⊢ M ∈ ℕ → M 0 + 1 = M 1
34 fac0 ⊢ 0 ! = 1
35 34 oveq2i ⊢ M M ⁢ 0 ! = M M ⋅ 1
36 nnnn0 ⊢ M ∈ ℕ → M ∈ ℕ 0
37 26 36 reexpcld ⊢ M ∈ ℕ → M M ∈ ℝ
38 37 recnd ⊢ M ∈ ℕ → M M ∈ ℂ
39 38 mulridd ⊢ M ∈ ℕ → M M ⋅ 1 = M M
40 35 39 eqtrid ⊢ M ∈ ℕ → M M ⁢ 0 ! = M M
41 30 33 40 3brtr4d ⊢ M ∈ ℕ → M 0 + 1 ≤ M M ⁢ 0 !
42 26 ad3antrrr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M ≤ k + 1 → M ∈ ℝ
43 simpllr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M ≤ k + 1 → k ∈ ℕ 0
44 peano2nn0 ⊢ k ∈ ℕ 0 → k + 1 ∈ ℕ 0
45 43 44 syl ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M ≤ k + 1 → k + 1 ∈ ℕ 0
46 42 45 reexpcld ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M ≤ k + 1 → M k + 1 ∈ ℝ
47 36 ad3antrrr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M ≤ k + 1 → M ∈ ℕ 0
48 42 47 reexpcld ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M ≤ k + 1 → M M ∈ ℝ
49 43 faccld ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M ≤ k + 1 → k ! ∈ ℕ
50 49 nnred ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M ≤ k + 1 → k ! ∈ ℝ
51 48 50 remulcld ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M ≤ k + 1 → M M ⁢ k ! ∈ ℝ
52 nn0re ⊢ k ∈ ℕ 0 → k ∈ ℝ
53 peano2re ⊢ k ∈ ℝ → k + 1 ∈ ℝ
54 43 52 53 3syl ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M ≤ k + 1 → k + 1 ∈ ℝ
55 nngt0 ⊢ M ∈ ℕ → 0 < M
56 55 ad3antrrr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M ≤ k + 1 → 0 < M
57 0re ⊢ 0 ∈ ℝ
58 ltle ⊢ 0 ∈ ℝ ∧ M ∈ ℝ → 0 < M → 0 ≤ M
59 57 58 mpan ⊢ M ∈ ℝ → 0 < M → 0 ≤ M
60 42 56 59 sylc ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M ≤ k + 1 → 0 ≤ M
61 42 45 60 expge0d ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M ≤ k + 1 → 0 ≤ M k + 1
62 simplr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M ≤ k + 1 → M k + 1 ≤ M M ⁢ k !
63 simprr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M ≤ k + 1 → M ≤ k + 1
64 46 51 42 54 61 60 62 63 lemul12ad ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M ≤ k + 1 → M k + 1 ⋅ M ≤ M M ⁢ k ! ⁢ k + 1
65 64 anandis ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ≤ k + 1 → M k + 1 ⋅ M ≤ M M ⁢ k ! ⁢ k + 1
66 nncn ⊢ M ∈ ℕ → M ∈ ℂ
67 expp1 ⊢ M ∈ ℂ ∧ k + 1 ∈ ℕ 0 → M k + 1 + 1 = M k + 1 ⋅ M
68 66 44 67 syl2an ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → M k + 1 + 1 = M k + 1 ⋅ M
69 68 adantr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ≤ k + 1 → M k + 1 + 1 = M k + 1 ⋅ M
70 facp1 ⊢ k ∈ ℕ 0 → k + 1 ! = k ! ⁢ k + 1
71 70 adantl ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → k + 1 ! = k ! ⁢ k + 1
72 71 oveq2d ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → M M ⁢ k + 1 ! = M M ⁢ k ! ⁢ k + 1
73 38 adantr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → M M ∈ ℂ
74 faccl ⊢ k ∈ ℕ 0 → k ! ∈ ℕ
75 74 nncnd ⊢ k ∈ ℕ 0 → k ! ∈ ℂ
76 75 adantl ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → k ! ∈ ℂ
77 nn0cn ⊢ k ∈ ℕ 0 → k ∈ ℂ
78 peano2cn ⊢ k ∈ ℂ → k + 1 ∈ ℂ
79 77 78 syl ⊢ k ∈ ℕ 0 → k + 1 ∈ ℂ
80 79 adantl ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → k + 1 ∈ ℂ
81 73 76 80 mulassd ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → M M ⁢ k ! ⁢ k + 1 = M M ⁢ k ! ⁢ k + 1
82 72 81 eqtr4d ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → M M ⁢ k + 1 ! = M M ⁢ k ! ⁢ k + 1
83 82 adantr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ≤ k + 1 → M M ⁢ k + 1 ! = M M ⁢ k ! ⁢ k + 1
84 65 69 83 3brtr4d ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ M k + 1 ≤ M M ⁢ k ! ∧ M ≤ k + 1 → M k + 1 + 1 ≤ M M ⁢ k + 1 !
85 84 exp32 ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → M k + 1 ≤ M M ⁢ k ! → M ≤ k + 1 → M k + 1 + 1 ≤ M M ⁢ k + 1 !
86 85 com23 ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → M ≤ k + 1 → M k + 1 ≤ M M ⁢ k ! → M k + 1 + 1 ≤ M M ⁢ k + 1 !
87 nn0ltp1le ⊢ k + 1 ∈ ℕ 0 ∧ M ∈ ℕ 0 → k + 1 < M ↔ k + 1 + 1 ≤ M
88 44 36 87 syl2anr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → k + 1 < M ↔ k + 1 + 1 ≤ M
89 peano2nn0 ⊢ k + 1 ∈ ℕ 0 → k + 1 + 1 ∈ ℕ 0
90 44 89 syl ⊢ k ∈ ℕ 0 → k + 1 + 1 ∈ ℕ 0
91 reexpcl ⊢ M ∈ ℝ ∧ k + 1 + 1 ∈ ℕ 0 → M k + 1 + 1 ∈ ℝ
92 26 90 91 syl2an ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → M k + 1 + 1 ∈ ℝ
93 92 adantr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ k + 1 + 1 ≤ M → M k + 1 + 1 ∈ ℝ
94 37 ad2antrr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ k + 1 + 1 ≤ M → M M ∈ ℝ
95 44 faccld ⊢ k ∈ ℕ 0 → k + 1 ! ∈ ℕ
96 95 nnred ⊢ k ∈ ℕ 0 → k + 1 ! ∈ ℝ
97 remulcl ⊢ M M ∈ ℝ ∧ k + 1 ! ∈ ℝ → M M ⁢ k + 1 ! ∈ ℝ
98 37 96 97 syl2an ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → M M ⁢ k + 1 ! ∈ ℝ
99 98 adantr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ k + 1 + 1 ≤ M → M M ⁢ k + 1 ! ∈ ℝ
100 26 ad2antrr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ k + 1 + 1 ≤ M → M ∈ ℝ
101 27 ad2antrr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ k + 1 + 1 ≤ M → 1 ≤ M
102 simpr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ k + 1 + 1 ≤ M → k + 1 + 1 ≤ M
103 90 ad2antlr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ k + 1 + 1 ≤ M → k + 1 + 1 ∈ ℕ 0
104 103 nn0zd ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ k + 1 + 1 ≤ M → k + 1 + 1 ∈ ℤ
105 nnz ⊢ M ∈ ℕ → M ∈ ℤ
106 105 ad2antrr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ k + 1 + 1 ≤ M → M ∈ ℤ
107 eluz ⊢ k + 1 + 1 ∈ ℤ ∧ M ∈ ℤ → M ∈ ℤ ≥ k + 1 + 1 ↔ k + 1 + 1 ≤ M
108 104 106 107 syl2anc ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ k + 1 + 1 ≤ M → M ∈ ℤ ≥ k + 1 + 1 ↔ k + 1 + 1 ≤ M
109 102 108 mpbird ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ k + 1 + 1 ≤ M → M ∈ ℤ ≥ k + 1 + 1
110 100 101 109 leexp2ad ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ k + 1 + 1 ≤ M → M k + 1 + 1 ≤ M M
111 37 96 anim12i ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → M M ∈ ℝ ∧ k + 1 ! ∈ ℝ
112 nn0re ⊢ M ∈ ℕ 0 → M ∈ ℝ
113 id ⊢ M ∈ ℕ 0 → M ∈ ℕ 0
114 nn0ge0 ⊢ M ∈ ℕ 0 → 0 ≤ M
115 112 113 114 expge0d ⊢ M ∈ ℕ 0 → 0 ≤ M M
116 36 115 syl ⊢ M ∈ ℕ → 0 ≤ M M
117 95 nnge1d ⊢ k ∈ ℕ 0 → 1 ≤ k + 1 !
118 116 117 anim12i ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → 0 ≤ M M ∧ 1 ≤ k + 1 !
119 lemulge11 ⊢ M M ∈ ℝ ∧ k + 1 ! ∈ ℝ ∧ 0 ≤ M M ∧ 1 ≤ k + 1 ! → M M ≤ M M ⁢ k + 1 !
120 111 118 119 syl2anc ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → M M ≤ M M ⁢ k + 1 !
121 120 adantr ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ k + 1 + 1 ≤ M → M M ≤ M M ⁢ k + 1 !
122 93 94 99 110 121 letrd ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 ∧ k + 1 + 1 ≤ M → M k + 1 + 1 ≤ M M ⁢ k + 1 !
123 122 ex ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → k + 1 + 1 ≤ M → M k + 1 + 1 ≤ M M ⁢ k + 1 !
124 88 123 sylbid ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → k + 1 < M → M k + 1 + 1 ≤ M M ⁢ k + 1 !
125 124 a1dd ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → k + 1 < M → M k + 1 ≤ M M ⁢ k ! → M k + 1 + 1 ≤ M M ⁢ k + 1 !
126 52 53 syl ⊢ k ∈ ℕ 0 → k + 1 ∈ ℝ
127 lelttric ⊢ M ∈ ℝ ∧ k + 1 ∈ ℝ → M ≤ k + 1 ∨ k + 1 < M
128 26 126 127 syl2an ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → M ≤ k + 1 ∨ k + 1 < M
129 86 125 128 mpjaod ⊢ M ∈ ℕ ∧ k ∈ ℕ 0 → M k + 1 ≤ M M ⁢ k ! → M k + 1 + 1 ≤ M M ⁢ k + 1 !
130 129 expcom ⊢ k ∈ ℕ 0 → M ∈ ℕ → M k + 1 ≤ M M ⁢ k ! → M k + 1 + 1 ≤ M M ⁢ k + 1 !
131 130 a2d ⊢ k ∈ ℕ 0 → M ∈ ℕ → M k + 1 ≤ M M ⁢ k ! → M ∈ ℕ → M k + 1 + 1 ≤ M M ⁢ k + 1 !
132 7 13 19 25 41 131 nn0ind ⊢ N ∈ ℕ 0 → M ∈ ℕ → M N + 1 ≤ M M ⁢ N !
133 132 impcom ⊢ M ∈ ℕ ∧ N ∈ ℕ 0 → M N + 1 ≤ M M ⁢ N !
134 faccl ⊢ N ∈ ℕ 0 → N ! ∈ ℕ
135 134 nnnn0d ⊢ N ∈ ℕ 0 → N ! ∈ ℕ 0
136 135 nn0ge0d ⊢ N ∈ ℕ 0 → 0 ≤ N !
137 nn0p1nn ⊢ N ∈ ℕ 0 → N + 1 ∈ ℕ
138 137 0expd ⊢ N ∈ ℕ 0 → 0 N + 1 = 0
139 0exp0e1 ⊢ 0 0 = 1
140 139 oveq1i ⊢ 0 0 ⁢ N ! = 1 ⁢ N !
141 134 nncnd ⊢ N ∈ ℕ 0 → N ! ∈ ℂ
142 141 mullidd ⊢ N ∈ ℕ 0 → 1 ⁢ N ! = N !
143 140 142 eqtrid ⊢ N ∈ ℕ 0 → 0 0 ⁢ N ! = N !
144 136 138 143 3brtr4d ⊢ N ∈ ℕ 0 → 0 N + 1 ≤ 0 0 ⁢ N !
145 oveq1 ⊢ M = 0 → M N + 1 = 0 N + 1
146 oveq12 ⊢ M = 0 ∧ M = 0 → M M = 0 0
147 146 anidms ⊢ M = 0 → M M = 0 0
148 147 oveq1d ⊢ M = 0 → M M ⁢ N ! = 0 0 ⁢ N !
149 145 148 breq12d ⊢ M = 0 → M N + 1 ≤ M M ⁢ N ! ↔ 0 N + 1 ≤ 0 0 ⁢ N !
150 144 149 imbitrrid ⊢ M = 0 → N ∈ ℕ 0 → M N + 1 ≤ M M ⁢ N !
151 150 imp ⊢ M = 0 ∧ N ∈ ℕ 0 → M N + 1 ≤ M M ⁢ N !
152 133 151 jaoian ⊢ M ∈ ℕ ∨ M = 0 ∧ N ∈ ℕ 0 → M N + 1 ≤ M M ⁢ N !
153 1 152 sylanb ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 → M N + 1 ≤ M M ⁢ N !