no goals
n : ℕ
⊢ 2 ≤ 0 → ascFactorial n 0 < (n + 0) ^ 0
rintro ⟨⟩
n : ℕ
a✝ : 2 ≤ 1
⊢ ascFactorial n 1 < (n + 1) ^ 1
n : ℕ
⊢ 2 ≤ 1 → ascFactorial n 1 < (n + 1) ^ 1
intro
no goals
n : ℕ
a✝ : 2 ≤ 1
⊢ ascFactorial n 1 < (n + 1) ^ 1
contradiction
n k : ℕ
x✝ : 2 ≤ k + 2
⊢ (n + (k + 1) + 1) * ascFactorial n (k + 1) < (n + (k + 2)) ^ (k + 1) * (n + (k + 2))
n k : ℕ
x✝ : 2 ≤ k + 2
⊢ ascFactorial n (k + 2) < (n + (k + 2)) ^ (k + 2)
rw [ascFactorial_succ, pow_succ]
n k : ℕ
x✝ : 2 ≤ k + 2
⊢ (n + (k + 1 + 1)) * ascFactorial n (k + 1) < (n + (k + 2)) * (n + (k + 2)) ^ (k + 1)
n k : ℕ
x✝ : 2 ≤ k + 2
⊢ (n + (k + 1) + 1) * ascFactorial n (k + 1) < (n + (k + 2)) ^ (k + 1) * (n + (k + 2))
rw [add_assoc n (k + 1) 1, mul_comm <| (n + (k + 2)) ^ (k + 1)]
no goals
n k : ℕ
x✝ : 2 ≤ k + 2
⊢ (n + (k + 1 + 1)) * ascFactorial n (k + 1) < (n + (k + 2)) * (n + (k + 2)) ^ (k + 1)
refine'
  Nat.mul_lt_mul' le_rfl
    ((ascFactorial_le_pow_add n _).trans_lt
      (pow_lt_pow_of_lt_left (lt_add_one _) (succ_pos _)))
    (succ_pos _)