theorem extracted_formal_statement_0.{u_1} {E : Type u_1} [inst : NormedAddCommGroup E] [inst_1 : InnerProductSpace ℝ E]
  [inst_2 : CompleteSpace E] [inst_3 : ProperSpace E] {x₀ : E} {f : E → ℝ} {f' : E → E} {h : E → ℝ}
  {alg : proximal_gradient_method f h f' x₀} (k : ℕ+)
  (h_original_goal :
    f (proximal_gradient_method.x f h f' x₀ ↑k) + h (proximal_gradient_method.x f h f' x₀ ↑k) -
          f (proximal_gradient_method.xm f h f' x₀) -
        h (proximal_gradient_method.xm f h f' x₀) ≤
      1 / (2 * ↑↑k * proximal_gradient_method.t f h f' x₀) * ‖x₀ - proximal_gradient_method.xm f h f' x₀‖ ^ 2) :
  2 * ↑↑k * proximal_gradient_method.t f h f' x₀ *
      (f (proximal_gradient_method.x f h f' x₀ ↑k) + h (proximal_gradient_method.x f h f' x₀ ↑k) -
          f (proximal_gradient_method.xm f h f' x₀) -
        h (proximal_gradient_method.xm f h f' x₀)) ≤
    ‖x₀ - proximal_gradient_method.xm f h f' x₀‖ ^ 2 := sorry

State before:
E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace ℝ E
inst✝¹ : CompleteSpace E
inst✝ : ProperSpace E
x₀ : E
f : E → ℝ
f' : E → E
h : E → ℝ
alg : proximal_gradient_method f h f' x₀
k : ℕ+
⊢ f (proximal_gradient_method.x f h f' x₀ ↑k) + h (proximal_gradient_method.x f h f' x₀ ↑k) -
        f (proximal_gradient_method.xm f h f' x₀) -
      h (proximal_gradient_method.xm f h f' x₀) ≤
    1 / (2 * ↑↑k * proximal_gradient_method.t f h f' x₀) * ‖x₀ - proximal_gradient_method.xm f h f' x₀‖ ^ 2

Tactic: rw [mul_comm, mul_one_div, le_div_iff₀, mul_comm]
    have th : ContinuousOn (alg.t • h) univ := by apply ContinuousOn.const_smul alg.h₃ alg.t
    have th' : ConvexOn ℝ univ (alg.t • h) := by apply ConvexOn.smul; linarith [alg.tpos]; apply alg.hconv
    let Gt := fun x ↦ (1 / alg.t) • (x - prox_point_c' (alg.t • h) (x - alg.t • f' x) th th')
    let φ := fun x ↦ f x + h x

State after:
[E : Type u_1
 inst✝³ : NormedAddCommGroup E
 inst✝² : InnerProductSpace ℝ E
 inst✝¹ : CompleteSpace E
 inst✝ : ProperSpace E
 x₀ : E
 f : E → ℝ
 f' : E → E
 h : E → ℝ
 alg : proximal_gradient_method f h f' x₀
 k : ℕ+
 th : ContinuousOn (proximal_gradient_method.t f h f' x₀ • h) univ
 th' : ConvexOn ℝ univ (proximal_gradient_method.t f h f' x₀ • h)
 Gt : E → E :=
   fun x =>
     (1 / proximal_gradient_method.t f h f' x₀) •
       (x -
         prox_point_c' (proximal_gradient_method.t f h f' x₀ • h) (x - proximal_gradient_method.t f h f' x₀ • f' x) th
           th')
 φ : E → ℝ := fun x => f x + h x
 ⊢ 2 * ↑↑k * proximal_gradient_method.t f h f' x₀ *
       (f (proximal_gradient_method.x f h f' x₀ ↑k) + h (proximal_gradient_method.x f h f' x₀ ↑k) -
           f (proximal_gradient_method.xm f h f' x₀) -
         h (proximal_gradient_method.xm f h f' x₀)) ≤
     ‖x₀ - proximal_gradient_method.xm f h f' x₀‖ ^ 2,
 E : Type u_1
 inst✝³ : NormedAddCommGroup E
 inst✝² : InnerProductSpace ℝ E
 inst✝¹ : CompleteSpace E
 inst✝ : ProperSpace E
 x₀ : E
 f : E → ℝ
 f' : E → E
 h : E → ℝ
 alg : proximal_gradient_method f h f' x₀
 k : ℕ+
 ⊢ 0 < 2 * ↑↑k * proximal_gradient_method.t f h f' x₀]

Relevant lemmas:
ConvexOn.smul : ∀ {𝕜 : Type u_1} {E : Type u_2} {β : Type u_5} [inst : OrderedCommSemiring 𝕜] [inst_4 : AddCommMonoid E]
  [inst_5 : OrderedAddCommMonoid β] [inst_6 : SMul 𝕜 E] [inst_7 : Module 𝕜 β] [inst_8 : OrderedSMul 𝕜 β] {s : Set E}
  {f : E → β} {c : 𝕜}, 0 ≤ c → ConvexOn 𝕜 s f → ConvexOn 𝕜 s fun x => c • f x
ContinuousOn.const_smul : ∀ {M : Type u_1} {α : Type u_2} {β : Type u_3} [inst : TopologicalSpace α] [inst_4 : SMul M α]
  [inst_5 : ContinuousConstSMul M α] [inst_6 : TopologicalSpace β] {g : β → α} {s : Set β},
  ContinuousOn g s → ∀ (c : M), ContinuousOn (fun x => c • g x) s
le_div_iff₀ : ∀ {G₀ : Type u_2} [inst : GroupWithZero G₀] [inst_4 : PartialOrder G₀] [inst_5 : ZeroLEOneClass G₀]
  [inst_6 : PosMulReflectLT G₀] {a b c : G₀} [inst_7 : MulPosMono G₀], 0 < c → (a ≤ b / c ↔ a * c ≤ b)
mul_comm : ∀ {G : Type u_1} [inst : CommMagma G] (a b : G), a * b = b * a
mul_one_div : ∀ {G : Type u_3} [inst : DivInvMonoid G] (x y : G), x * (1 / y) = x / y