-- File: optlib/Optlib/Algorithm/BCD/Scheme.lean
Theorem statement:
theorem extracted_formal_statement_13.{u_2, u_1} {E : Type u_1} {F : Type u_2} [inst : NormedAddCommGroup E]
  [inst_1 : InnerProductSpace ℝ E] [inst_2 : CompleteSpace E] [inst_3 : NormedAddCommGroup F]
  [inst_4 : InnerProductSpace ℝ F] [inst_5 : CompleteSpace F] {H : WithLp 2 (E × F) → ℝ} (h : Differentiable ℝ H)
  (z : WithLp 2 (E × F)) (h₁ : HasGradientAt (fun x => H (x, z.2)) (grad_fst H z.2 z.1) z.1)
  (h₂ : HasGradientAt (fun x => H (x, z.2)) (gradient H z).1 z.1) : (gradient H z).1 = grad_fst H z.2 z.1 := sorry

Tactic state before:
E : Type u_1
F : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace ℝ E
inst✝³ : CompleteSpace E
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace ℝ F
inst✝ : CompleteSpace F
H : WithLp 2 (E × F) → ℝ
h : Differentiable ℝ H
z : WithLp 2 (E × F)
h₁ : HasGradientAt (fun x => H (x, z.2)) (grad_fst H z.2 z.1) z.1
h₂ : HasGradientAt (fun x => H (x, z.2)) (gradient H z).1 z.1
⊢ (gradient H z).1 = grad_fst H z.2 z.1

Tactic: exact HasGradientAt.unique h₂ h₁

Tactic state after:

Premises used:
HasGradientAt.unique : ∀ {𝕜 : Type u_1} {F : Type u_2} [inst : RCLike 𝕜] [inst_6 : NormedAddCommGroup F]
  [inst_7 : InnerProductSpace 𝕜 F] [inst_8 : CompleteSpace F] {f : F → 𝕜} {x gradf gradg : F},
  HasGradientAt f gradf x → HasGradientAt f gradg x → gradf = gradg