-- File: optlib/Optlib/Algorithm/SubgradientMethod.lean
Theorem statement:
theorem extracted_formal_statement_5.{u_1} {E : Type u_1} [inst : NormedAddCommGroup E] [inst_1 : InnerProductSpace ℝ E]
  [inst_2 : CompleteSpace E] {f : E → ℝ} {G : NNReal} (hf : ConvexOn ℝ Set.univ f) (hc : ContinuousOn f Set.univ)
  (h : ∀ ⦃x g : E⦄, g ∈ SubderivAt f x → ‖g‖ ≤ ↑G) (x y gx : E) (hx₁ : gx ∈ SubderivAt f x) (hx₃ : ‖gx‖ ≤ ↑G)
  (hx₂ : f y ≥ f x + ⟪gx, y - x⟫_ℝ) (hx₄ : f x - f y ≤ ⟪gx, x - y⟫_ℝ) (gy : E) (hy₁ : gy ∈ SubderivAt f y)
  (hy₃ : ‖gy‖ ≤ ↑G) (hy₂ : f x ≥ f y + ⟪gy, x - y⟫_ℝ) (hy₄ : f x - f y ≥ ⟪gy, x - y⟫_ℝ) (hG₁ : ↑G = ENNReal.ofReal ↑G)
  (h_original_goal : edist (f x) (f y) ≤ ↑G * edist x y) :
  ENNReal.ofReal (dist (f x) (f y)) ≤ ENNReal.ofReal ↑G * ENNReal.ofReal (dist x y) := sorry

Tactic state before:
case intro.intro
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : CompleteSpace E
f : E → ℝ
G : NNReal
hf : ConvexOn ℝ Set.univ f
hc : ContinuousOn f Set.univ
h : ∀ ⦃x g : E⦄, g ∈ SubderivAt f x → ‖g‖ ≤ ↑G
x y gx : E
hx₁ : gx ∈ SubderivAt f x
hx₃ : ‖gx‖ ≤ ↑G
hx₂ : f y ≥ f x + ⟪gx, y - x⟫_ℝ
hx₄ : f x - f y ≤ ⟪gx, x - y⟫_ℝ
gy : E
hy₁ : gy ∈ SubderivAt f y
hy₃ : ‖gy‖ ≤ ↑G
hy₂ : f x ≥ f y + ⟪gy, x - y⟫_ℝ
hy₄ : f x - f y ≥ ⟪gy, x - y⟫_ℝ
hG₁ : ↑G = ENNReal.ofReal ↑G
⊢ edist (f x) (f y) ≤ ↑G * edist x y

Tactic: rw [edist_dist, edist_dist, hG₁]

Tactic state after:
[case intro.intro
 E : Type u_1
 inst✝² : NormedAddCommGroup E
 inst✝¹ : InnerProductSpace ℝ E
 inst✝ : CompleteSpace E
 f : E → ℝ
 G : NNReal
 hf : ConvexOn ℝ Set.univ f
 hc : ContinuousOn f Set.univ
 h : ∀ ⦃x g : E⦄, g ∈ SubderivAt f x → ‖g‖ ≤ ↑G
 x y gx : E
 hx₁ : gx ∈ SubderivAt f x
 hx₃ : ‖gx‖ ≤ ↑G
 hx₂ : f y ≥ f x + ⟪gx, y - x⟫_ℝ
 hx₄ : f x - f y ≤ ⟪gx, x - y⟫_ℝ
 gy : E
 hy₁ : gy ∈ SubderivAt f y
 hy₃ : ‖gy‖ ≤ ↑G
 hy₂ : f x ≥ f y + ⟪gy, x - y⟫_ℝ
 hy₄ : f x - f y ≥ ⟪gy, x - y⟫_ℝ
 hG₁ : ↑G = ENNReal.ofReal ↑G
 ⊢ ENNReal.ofReal (dist (f x) (f y)) ≤ ENNReal.ofReal ↑G * ENNReal.ofReal (dist x y)]

Premises used:
edist_dist : ∀ {α : Type u} [inst : PseudoMetricSpace α] (x y : α), edist x y = ENNReal.ofReal (dist x y)