Metamath Proof Explorer


Theorem facubnd

Description: An upper bound for the factorial function. (Contributed by Mario Carneiro, 15-Apr-2016)

Ref Expression
Assertion facubnd ⊢ N ∈ ℕ 0 → N ! ≤ N N

Proof

Step Hyp Ref Expression
1 fveq2 ⊢ m = 0 → m ! = 0 !
2 fac0 ⊢ 0 ! = 1
3 1 2 eqtrdi ⊢ m = 0 → m ! = 1
4 id ⊢ m = 0 → m = 0
5 4 4 oveq12d ⊢ m = 0 → m m = 0 0
6 0exp0e1 ⊢ 0 0 = 1
7 5 6 eqtrdi ⊢ m = 0 → m m = 1
8 3 7 breq12d ⊢ m = 0 → m ! ≤ m m ↔ 1 ≤ 1
9 fveq2 ⊢ m = k → m ! = k !
10 id ⊢ m = k → m = k
11 10 10 oveq12d ⊢ m = k → m m = k k
12 9 11 breq12d ⊢ m = k → m ! ≤ m m ↔ k ! ≤ k k
13 fveq2 ⊢ m = k + 1 → m ! = k + 1 !
14 id ⊢ m = k + 1 → m = k + 1
15 14 14 oveq12d ⊢ m = k + 1 → m m = k + 1 k + 1
16 13 15 breq12d ⊢ m = k + 1 → m ! ≤ m m ↔ k + 1 ! ≤ k + 1 k + 1
17 fveq2 ⊢ m = N → m ! = N !
18 id ⊢ m = N → m = N
19 18 18 oveq12d ⊢ m = N → m m = N N
20 17 19 breq12d ⊢ m = N → m ! ≤ m m ↔ N ! ≤ N N
21 1le1 ⊢ 1 ≤ 1
22 faccl ⊢ k ∈ ℕ 0 → k ! ∈ ℕ
23 22 adantr ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → k ! ∈ ℕ
24 23 nnred ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → k ! ∈ ℝ
25 nn0re ⊢ k ∈ ℕ 0 → k ∈ ℝ
26 25 adantr ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → k ∈ ℝ
27 simpl ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → k ∈ ℕ 0
28 26 27 reexpcld ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → k k ∈ ℝ
29 nn0p1nn ⊢ k ∈ ℕ 0 → k + 1 ∈ ℕ
30 29 adantr ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → k + 1 ∈ ℕ
31 30 nnred ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → k + 1 ∈ ℝ
32 31 27 reexpcld ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → k + 1 k ∈ ℝ
33 simpr ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → k ! ≤ k k
34 nn0ge0 ⊢ k ∈ ℕ 0 → 0 ≤ k
35 34 adantr ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → 0 ≤ k
36 26 lep1d ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → k ≤ k + 1
37 leexp1a ⊢ k ∈ ℝ ∧ k + 1 ∈ ℝ ∧ k ∈ ℕ 0 ∧ 0 ≤ k ∧ k ≤ k + 1 → k k ≤ k + 1 k
38 26 31 27 35 36 37 syl32anc ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → k k ≤ k + 1 k
39 24 28 32 33 38 letrd ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → k ! ≤ k + 1 k
40 30 nngt0d ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → 0 < k + 1
41 lemul1 ⊢ k ! ∈ ℝ ∧ k + 1 k ∈ ℝ ∧ k + 1 ∈ ℝ ∧ 0 < k + 1 → k ! ≤ k + 1 k ↔ k ! ⁢ k + 1 ≤ k + 1 k ⁢ k + 1
42 24 32 31 40 41 syl112anc ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → k ! ≤ k + 1 k ↔ k ! ⁢ k + 1 ≤ k + 1 k ⁢ k + 1
43 39 42 mpbid ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → k ! ⁢ k + 1 ≤ k + 1 k ⁢ k + 1
44 facp1 ⊢ k ∈ ℕ 0 → k + 1 ! = k ! ⁢ k + 1
45 44 adantr ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → k + 1 ! = k ! ⁢ k + 1
46 30 nncnd ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → k + 1 ∈ ℂ
47 46 27 expp1d ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → k + 1 k + 1 = k + 1 k ⁢ k + 1
48 43 45 47 3brtr4d ⊢ k ∈ ℕ 0 ∧ k ! ≤ k k → k + 1 ! ≤ k + 1 k + 1
49 48 ex ⊢ k ∈ ℕ 0 → k ! ≤ k k → k + 1 ! ≤ k + 1 k + 1
50 8 12 16 20 21 49 nn0ind ⊢ N ∈ ℕ 0 → N ! ≤ N N