theorem extracted_formal_statement_2.{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₀} (th : ContinuousOn (proximal_gradient_method.t f h f' x₀ • h) univ)
  (th' : ConvexOn ℝ univ (proximal_gradient_method.t f h f' x₀ • h)) :
  let Gt := 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');
  ∀ (z : E),
    z - proximal_gradient_method.t f h f' x₀ • Gt z =
        prox_point_c' (proximal_gradient_method.t f h f' x₀ • h) (z - proximal_gradient_method.t f h f' x₀ • f' z) th
          th' →
      prox_prop (proximal_gradient_method.t f h f' x₀ • h) (z - proximal_gradient_method.t f h f' x₀ • f' z)
          (z - proximal_gradient_method.t f h f' x₀ • Gt z) →
        Gt z - f' z ∈ SubderivAt h (z - proximal_gradient_method.t f h f' x₀ • Gt z) → ConvexOn ℝ univ h := 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 : ℕ+
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
z : E
eq1 :
  z - proximal_gradient_method.t f h f' x₀ • Gt z =
    prox_point_c' (proximal_gradient_method.t f h f' x₀ • h) (z - proximal_gradient_method.t f h f' x₀ • f' z) th th'
eq2 :
  prox_prop (proximal_gradient_method.t f h f' x₀ • h) (z - proximal_gradient_method.t f h f' x₀ • f' z)
    (z - proximal_gradient_method.t f h f' x₀ • Gt z)
⊢ Gt z - f' z ∈ SubderivAt h (z - proximal_gradient_method.t f h f' x₀ • Gt z)

Tactic: rw [prox_iff_subderiv_smul, sub_sub_sub_comm, sub_sub_eq_add_sub] at eq2
    rw [sub_self, zero_add, ← smul_sub, smul_smul _ alg.t _] at eq2
    rw [one_div_mul_cancel, one_smul] at eq2
    exact eq2
    linarith [alg.tpos]

State after:
[case hfun
 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
 z : E
 eq1 :
   z - proximal_gradient_method.t f h f' x₀ • Gt z =
     prox_point_c' (proximal_gradient_method.t f h f' x₀ • h) (z - proximal_gradient_method.t f h f' x₀ • f' z) th th'
 eq2 :
   prox_prop (proximal_gradient_method.t f h f' x₀ • h) (z - proximal_gradient_method.t f h f' x₀ • f' z)
     (z - proximal_gradient_method.t f h f' x₀ • Gt z)
 ⊢ ConvexOn ℝ univ h,
 case ht
 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
 z : E
 eq1 :
   z - proximal_gradient_method.t f h f' x₀ • Gt z =
     prox_point_c' (proximal_gradient_method.t f h f' x₀ • h) (z - proximal_gradient_method.t f h f' x₀ • f' z) th th'
 eq2 :
   prox_prop (proximal_gradient_method.t f h f' x₀ • h) (z - proximal_gradient_method.t f h f' x₀ • f' z)
     (z - proximal_gradient_method.t f h f' x₀ • Gt z)
 ⊢ 0 < proximal_gradient_method.t f h f' x₀]

Relevant lemmas:
zero_add : ∀ {M : Type u} [inst : AddZeroClass M] (a : M), 0 + a = a
one_div_mul_cancel : ∀ {G₀ : Type u_3} [inst : GroupWithZero G₀] {a : G₀}, a ≠ 0 → 1 / a * a = 1
sub_self : ∀ {G : Type u_1} [inst : AddGroup G] (a : G), a - a = 0
sub_sub_sub_comm : ∀ {α : Type u_1} [inst : SubtractionCommMonoid α] (a b c d : α), a - b - (c - d) = a - c - (b - d)
prox_iff_subderiv_smul : ∀ {E : Type u_2} [inst : NormedAddCommGroup E] [inst_4 : InnerProductSpace ℝ E]
  [inst_5 : CompleteSpace E] {x : E} (f : E → ℝ) {t : ℝ},
  ConvexOn ℝ univ f → 0 < t → ∀ (u : E), prox_prop (t • f) x u ↔ (1 / t) • (x - u) ∈ SubderivAt f u
one_smul : ∀ (M : Type u_1) {α : Type u_5} [inst : Monoid M] [inst_4 : MulAction M α] (b : α), 1 • b = b
smul_smul : ∀ {M : Type u_1} {α : Type u_5} [inst : Monoid M] [inst_4 : MulAction M α] (a₁ a₂ : M) (b : α),
  a₁ • a₂ • b = (a₁ * a₂) • b
smul_sub : ∀ {M : Type u_1} {A : Type u_7} [inst : Monoid M] [inst_4 : AddGroup A] [inst_5 : DistribMulAction M A]
  (r : M) (x y : A), r • (x - y) = r • x - r • y
sub_sub_eq_add_sub : ∀ {α : Type u_1} [inst : SubtractionMonoid α] (a b c : α), a - (b - c) = a + c - b