| Step | Hyp | Ref
 | Expression | 
| 1 |   | fveq2 5558 | 
. . . 4
⊢ (𝑚 = 0 → (!‘𝑚) =
(!‘0)) | 
| 2 |   | fac0 10820 | 
. . . 4
⊢
(!‘0) = 1 | 
| 3 | 1, 2 | eqtrdi 2245 | 
. . 3
⊢ (𝑚 = 0 → (!‘𝑚) = 1) | 
| 4 |   | id 19 | 
. . . . 5
⊢ (𝑚 = 0 → 𝑚 = 0) | 
| 5 | 4, 4 | oveq12d 5940 | 
. . . 4
⊢ (𝑚 = 0 → (𝑚↑𝑚) = (0↑0)) | 
| 6 |   | 0exp0e1 10636 | 
. . . 4
⊢
(0↑0) = 1 | 
| 7 | 5, 6 | eqtrdi 2245 | 
. . 3
⊢ (𝑚 = 0 → (𝑚↑𝑚) = 1) | 
| 8 | 3, 7 | breq12d 4046 | 
. 2
⊢ (𝑚 = 0 → ((!‘𝑚) ≤ (𝑚↑𝑚) ↔ 1 ≤ 1)) | 
| 9 |   | fveq2 5558 | 
. . 3
⊢ (𝑚 = 𝑘 → (!‘𝑚) = (!‘𝑘)) | 
| 10 |   | id 19 | 
. . . 4
⊢ (𝑚 = 𝑘 → 𝑚 = 𝑘) | 
| 11 | 10, 10 | oveq12d 5940 | 
. . 3
⊢ (𝑚 = 𝑘 → (𝑚↑𝑚) = (𝑘↑𝑘)) | 
| 12 | 9, 11 | breq12d 4046 | 
. 2
⊢ (𝑚 = 𝑘 → ((!‘𝑚) ≤ (𝑚↑𝑚) ↔ (!‘𝑘) ≤ (𝑘↑𝑘))) | 
| 13 |   | fveq2 5558 | 
. . 3
⊢ (𝑚 = (𝑘 + 1) → (!‘𝑚) = (!‘(𝑘 + 1))) | 
| 14 |   | id 19 | 
. . . 4
⊢ (𝑚 = (𝑘 + 1) → 𝑚 = (𝑘 + 1)) | 
| 15 | 14, 14 | oveq12d 5940 | 
. . 3
⊢ (𝑚 = (𝑘 + 1) → (𝑚↑𝑚) = ((𝑘 + 1)↑(𝑘 + 1))) | 
| 16 | 13, 15 | breq12d 4046 | 
. 2
⊢ (𝑚 = (𝑘 + 1) → ((!‘𝑚) ≤ (𝑚↑𝑚) ↔ (!‘(𝑘 + 1)) ≤ ((𝑘 + 1)↑(𝑘 + 1)))) | 
| 17 |   | fveq2 5558 | 
. . 3
⊢ (𝑚 = 𝑁 → (!‘𝑚) = (!‘𝑁)) | 
| 18 |   | id 19 | 
. . . 4
⊢ (𝑚 = 𝑁 → 𝑚 = 𝑁) | 
| 19 | 18, 18 | oveq12d 5940 | 
. . 3
⊢ (𝑚 = 𝑁 → (𝑚↑𝑚) = (𝑁↑𝑁)) | 
| 20 | 17, 19 | breq12d 4046 | 
. 2
⊢ (𝑚 = 𝑁 → ((!‘𝑚) ≤ (𝑚↑𝑚) ↔ (!‘𝑁) ≤ (𝑁↑𝑁))) | 
| 21 |   | 1le1 8599 | 
. 2
⊢ 1 ≤
1 | 
| 22 |   | faccl 10827 | 
. . . . . . . 8
⊢ (𝑘 ∈ ℕ0
→ (!‘𝑘) ∈
ℕ) | 
| 23 | 22 | adantr 276 | 
. . . . . . 7
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → (!‘𝑘) ∈ ℕ) | 
| 24 | 23 | nnred 9003 | 
. . . . . 6
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → (!‘𝑘) ∈ ℝ) | 
| 25 |   | nn0re 9258 | 
. . . . . . . 8
⊢ (𝑘 ∈ ℕ0
→ 𝑘 ∈
ℝ) | 
| 26 | 25 | adantr 276 | 
. . . . . . 7
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → 𝑘 ∈ ℝ) | 
| 27 |   | simpl 109 | 
. . . . . . 7
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → 𝑘 ∈ ℕ0) | 
| 28 | 26, 27 | reexpcld 10782 | 
. . . . . 6
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → (𝑘↑𝑘) ∈ ℝ) | 
| 29 |   | nn0p1nn 9288 | 
. . . . . . . . 9
⊢ (𝑘 ∈ ℕ0
→ (𝑘 + 1) ∈
ℕ) | 
| 30 | 29 | adantr 276 | 
. . . . . . . 8
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → (𝑘 + 1) ∈ ℕ) | 
| 31 | 30 | nnred 9003 | 
. . . . . . 7
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → (𝑘 + 1) ∈ ℝ) | 
| 32 | 31, 27 | reexpcld 10782 | 
. . . . . 6
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → ((𝑘 + 1)↑𝑘) ∈ ℝ) | 
| 33 |   | simpr 110 | 
. . . . . 6
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → (!‘𝑘) ≤ (𝑘↑𝑘)) | 
| 34 |   | nn0ge0 9274 | 
. . . . . . . 8
⊢ (𝑘 ∈ ℕ0
→ 0 ≤ 𝑘) | 
| 35 | 34 | adantr 276 | 
. . . . . . 7
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → 0 ≤ 𝑘) | 
| 36 | 26 | lep1d 8958 | 
. . . . . . 7
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → 𝑘 ≤ (𝑘 + 1)) | 
| 37 |   | leexp1a 10686 | 
. . . . . . 7
⊢ (((𝑘 ∈ ℝ ∧ (𝑘 + 1) ∈ ℝ ∧ 𝑘 ∈ ℕ0)
∧ (0 ≤ 𝑘 ∧ 𝑘 ≤ (𝑘 + 1))) → (𝑘↑𝑘) ≤ ((𝑘 + 1)↑𝑘)) | 
| 38 | 26, 31, 27, 35, 36, 37 | syl32anc 1257 | 
. . . . . 6
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → (𝑘↑𝑘) ≤ ((𝑘 + 1)↑𝑘)) | 
| 39 | 24, 28, 32, 33, 38 | letrd 8150 | 
. . . . 5
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → (!‘𝑘) ≤ ((𝑘 + 1)↑𝑘)) | 
| 40 | 30 | nngt0d 9034 | 
. . . . . 6
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → 0 < (𝑘 + 1)) | 
| 41 |   | lemul1 8620 | 
. . . . . 6
⊢
(((!‘𝑘) ∈
ℝ ∧ ((𝑘 +
1)↑𝑘) ∈ ℝ
∧ ((𝑘 + 1) ∈
ℝ ∧ 0 < (𝑘 +
1))) → ((!‘𝑘)
≤ ((𝑘 + 1)↑𝑘) ↔ ((!‘𝑘) · (𝑘 + 1)) ≤ (((𝑘 + 1)↑𝑘) · (𝑘 + 1)))) | 
| 42 | 24, 32, 31, 40, 41 | syl112anc 1253 | 
. . . . 5
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → ((!‘𝑘) ≤ ((𝑘 + 1)↑𝑘) ↔ ((!‘𝑘) · (𝑘 + 1)) ≤ (((𝑘 + 1)↑𝑘) · (𝑘 + 1)))) | 
| 43 | 39, 42 | mpbid 147 | 
. . . 4
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → ((!‘𝑘) · (𝑘 + 1)) ≤ (((𝑘 + 1)↑𝑘) · (𝑘 + 1))) | 
| 44 |   | facp1 10822 | 
. . . . 5
⊢ (𝑘 ∈ ℕ0
→ (!‘(𝑘 + 1)) =
((!‘𝑘) ·
(𝑘 + 1))) | 
| 45 | 44 | adantr 276 | 
. . . 4
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → (!‘(𝑘 + 1)) = ((!‘𝑘) · (𝑘 + 1))) | 
| 46 | 30 | nncnd 9004 | 
. . . . 5
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → (𝑘 + 1) ∈ ℂ) | 
| 47 | 46, 27 | expp1d 10766 | 
. . . 4
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → ((𝑘 + 1)↑(𝑘 + 1)) = (((𝑘 + 1)↑𝑘) · (𝑘 + 1))) | 
| 48 | 43, 45, 47 | 3brtr4d 4065 | 
. . 3
⊢ ((𝑘 ∈ ℕ0
∧ (!‘𝑘) ≤
(𝑘↑𝑘)) → (!‘(𝑘 + 1)) ≤ ((𝑘 + 1)↑(𝑘 + 1))) | 
| 49 | 48 | ex 115 | 
. 2
⊢ (𝑘 ∈ ℕ0
→ ((!‘𝑘) ≤
(𝑘↑𝑘) → (!‘(𝑘 + 1)) ≤ ((𝑘 + 1)↑(𝑘 + 1)))) | 
| 50 | 8, 12, 16, 20, 21, 49 | nn0ind 9440 | 
1
⊢ (𝑁 ∈ ℕ0
→ (!‘𝑁) ≤
(𝑁↑𝑁)) |