-- File: optlib/Optlib/Algorithm/BCD/Scheme.lean
Theorem statement:
theorem extracted_formal_statement_41.{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] {f : E → ℝ} {g : F → ℝ} {H : WithLp 2 (E × F) → ℝ}
  {x0 : E} {y0 : F} {l : NNReal} {alg : BCD f g H l x0 y0} (γ : ℝ) (hγ : γ > 1) (k : ℕ) (dk : alg.d k = 1 / (γ * ↑l))
  (h_original_goal : 0 < γ * ↑l) : 0 < γ := sorry

Tactic state before:
case hb
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
f : E → ℝ
g : F → ℝ
H : WithLp 2 (E × F) → ℝ
x0 : E
y0 : F
l : NNReal
alg : BCD f g H l x0 y0
γ : ℝ
hγ : γ > 1
k : ℕ
dk : alg.d k = 1 / (γ * ↑l)
⊢ 0 < γ * ↑l

Tactic: apply mul_pos

Tactic state after:
[case hb.ha
 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
 f : E → ℝ
 g : F → ℝ
 H : WithLp 2 (E × F) → ℝ
 x0 : E
 y0 : F
 l : NNReal
 alg : BCD f g H l x0 y0
 γ : ℝ
 hγ : γ > 1
 k : ℕ
 dk : alg.d k = 1 / (γ * ↑l)
 ⊢ 0 < γ,
 case hb.hb
 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
 f : E → ℝ
 g : F → ℝ
 H : WithLp 2 (E × F) → ℝ
 x0 : E
 y0 : F
 l : NNReal
 alg : BCD f g H l x0 y0
 γ : ℝ
 hγ : γ > 1
 k : ℕ
 dk : alg.d k = 1 / (γ * ↑l)
 ⊢ 0 < ↑l]

Premises used:
mul_pos : ∀ {α : Type u_3} {a b : α} [inst : MulZeroClass α] [inst_6 : Preorder α] [inst_7 : PosMulStrictMono α],
  0 < a → 0 < b → 0 < a * b