theorem extracted_formal_statement_4 (ε a b : ℝ) (m : ℕ) (hm : m > 0) (hε : ε > 0) (hab : b > a) :
  let g := fun t => -↑t * ε + ↑t ^ 2 * ↑m * (b - a) ^ 2 / 8;
  let t_min :=
    ⟨4 * ε / ((b - a) ^ 2 * ↑m),
      div_pos
        (mul_pos
          (Mathlib.Meta.NormNum.isNat_lt_true (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_zero)
            (Mathlib.Meta.NormNum.isNat_ofNat ℝ (Eq.refl 4)) (Eq.refl false))
          hε)
        (mul_pos (sq_pos_of_ne_zero (ne_of_gt (sub_pos.mpr hab))) (Nat.cast_pos.mpr hm))⟩;
  (∀ (t : { t // t > 0 }), g t = -↑t * ε + ↑t ^ 2 * ↑m * (b - a) ^ 2 / 8) →
    (∀ (t : { t // t > 0 }), g t = ↑m * (b - a) ^ 2 / 8 * (↑t - ↑t_min) ^ 2 - 2 * ε ^ 2 / ((b - a) ^ 2 * ↑m)) →
      ∀ (t : { t // t > 0 }), ↑m * (b - a) ^ 2 / 8 * (↑t - ↑t_min) ^ 2 ≥ 0 := sorry

State before:
ε a b : ℝ
m : ℕ
hm : m > 0
hε : ε > 0
hab : b > a
g : { t // t > 0 } → ℝ := fun t => -↑t * ε + ↑t ^ 2 * ↑m * (b - a) ^ 2 / 8
t_min : { t // t > 0 } := ⟨4 * ε / ((b - a) ^ 2 * ↑m), ⋯⟩
gt : ∀ (t : { t // t > 0 }), g t = -↑t * ε + ↑t ^ 2 * ↑m * (b - a) ^ 2 / 8
h_rewrite : ∀ (t : { t // t > 0 }), g t = ↑m * (b - a) ^ 2 / 8 * (↑t - ↑t_min) ^ 2 - 2 * ε ^ 2 / ((b - a) ^ 2 * ↑m)
t : { t // t > 0 }
⊢ ↑m * (b - a) ^ 2 / 8 * (↑t - ↑t_min) ^ 2 ≥ 0

Tactic: apply mul_nonneg
    ·
  apply div_nonneg
  · apply mul_nonneg
    · exact Nat.cast_nonneg m
    · exact sq_nonneg (b - a)
  · norm_num
    · exact sq_nonneg (t.val - t_min)

State after:

Relevant lemmas:
div_nonneg : ∀ {G₀ : Type u_2} [inst : GroupWithZero G₀] [inst_1 : PartialOrder G₀] [inst_2 : ZeroLEOneClass G₀]
  [inst_3 : PosMulReflectLT G₀] {a b : G₀} [inst_4 : PosMulMono G₀], 0 ≤ a → 0 ≤ b → 0 ≤ a / b
mul_nonneg : ∀ {α : Type u_3} {a b : α} [inst : MulZeroClass α] [inst_1 : Preorder α] [inst_2 : PosMulMono α],
  0 ≤ a → 0 ≤ b → 0 ≤ a * b
sq_nonneg : ∀ {α : Type u} [inst : Semiring α] [inst_1 : LinearOrder α] [inst_2 : IsRightCancelAdd α]
  [inst_3 : ZeroLEOneClass α] [inst_4 : ExistsAddOfLE α] [inst_5 : PosMulMono α] [inst_6 : AddLeftStrictMono α] (a : α),
  0 ≤ a ^ 2
Nat.cast_nonneg : ∀ {α : Type u_3} [inst : OrderedSemiring α] (n : ℕ), 0 ≤ ↑n