Theorem: Complex.betaIntegral_convergent_left
File: Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean

tactic: apply IntervalIntegrable.mul_continuousOn
state_before: u : ℂ
hu : 0 < u.re
v : ℂ
⊢ IntervalIntegrable (fun x => ↑x ^ (u - 1) * (1 - ↑x) ^ (v - 1)) volume 0 (1 / 2)
state_after: case hf
u : ℂ
hu : 0 < u.re
v : ℂ
⊢ IntervalIntegrable (fun x => ↑x ^ (u - 1)) volume 0 (1 / 2)

case hg
u : ℂ
hu : 0 < u.re
v : ℂ
⊢ ContinuousOn (fun x => (1 - ↑x) ^ (v - 1)) (uIcc 0 (1 / 2))

tactic: refine intervalIntegral.intervalIntegrable_cpow' ?_
state_before: case hf
u : ℂ
hu : 0 < u.re
v : ℂ
⊢ IntervalIntegrable (fun x => ↑x ^ (u - 1)) volume 0 (1 / 2)
state_after: case hf
u : ℂ
hu : 0 < u.re
v : ℂ
⊢ -1 < (u - 1).re

tactic: rwa [sub_re, one_re, ← zero_sub, sub_lt_sub_iff_right]
state_before: case hf
u : ℂ
hu : 0 < u.re
v : ℂ
⊢ -1 < (u - 1).re
state_after: no goals

tactic: apply ContinuousAt.continuousOn
state_before: case hg
u : ℂ
hu : 0 < u.re
v : ℂ
⊢ ContinuousOn (fun x => (1 - ↑x) ^ (v - 1)) (uIcc 0 (1 / 2))
state_after: case hg.hcont
u : ℂ
hu : 0 < u.re
v : ℂ
⊢ ∀ x ∈ uIcc 0 (1 / 2), ContinuousAt (fun x => (1 - ↑x) ^ (v - 1)) x

tactic: intro x hx
state_before: case hg.hcont
u : ℂ
hu : 0 < u.re
v : ℂ
⊢ ∀ x ∈ uIcc 0 (1 / 2), ContinuousAt (fun x => (1 - ↑x) ^ (v - 1)) x
state_after: case hg.hcont
u : ℂ
hu : 0 < u.re
v : ℂ
x : ℝ
hx : x ∈ uIcc 0 (1 / 2)
⊢ ContinuousAt (fun x => (1 - ↑x) ^ (v - 1)) x

tactic: rw [uIcc_of_le (by positivity : (0 : ℝ) ≤ 1 / 2)] at hx
state_before: case hg.hcont
u : ℂ
hu : 0 < u.re
v : ℂ
x : ℝ
hx : x ∈ uIcc 0 (1 / 2)
⊢ ContinuousAt (fun x => (1 - ↑x) ^ (v - 1)) x
state_after: case hg.hcont
u : ℂ
hu : 0 < u.re
v : ℂ
x : ℝ
hx : x ∈ Icc 0 (1 / 2)
⊢ ContinuousAt (fun x => (1 - ↑x) ^ (v - 1)) x

tactic: apply ContinuousAt.cpow
state_before: case hg.hcont
u : ℂ
hu : 0 < u.re
v : ℂ
x : ℝ
hx : x ∈ Icc 0 (1 / 2)
⊢ ContinuousAt (fun x => (1 - ↑x) ^ (v - 1)) x
state_after: case hg.hcont.hf
u : ℂ
hu : 0 < u.re
v : ℂ
x : ℝ
hx : x ∈ Icc 0 (1 / 2)
⊢ ContinuousAt (fun x => 1 - ↑x) x

case hg.hcont.hg
u : ℂ
hu : 0 < u.re
v : ℂ
x : ℝ
hx : x ∈ Icc 0 (1 / 2)
⊢ ContinuousAt (fun x => v - 1) x

case hg.hcont.h0
u : ℂ
hu : 0 < u.re
v : ℂ
x : ℝ
hx : x ∈ Icc 0 (1 / 2)
⊢ 1 - ↑x ∈ slitPlane

tactic: positivity
state_before: u : ℂ
hu : 0 < u.re
v : ℂ
x : ℝ
hx : x ∈ uIcc 0 (1 / 2)
⊢ 0 ≤ 1 / 2
state_after: no goals

tactic: exact (continuous_const.sub continuous_ofReal).continuousAt
state_before: case hg.hcont.hf
u : ℂ
hu : 0 < u.re
v : ℂ
x : ℝ
hx : x ∈ Icc 0 (1 / 2)
⊢ ContinuousAt (fun x => 1 - ↑x) x
state_after: no goals

tactic: exact continuousAt_const
state_before: case hg.hcont.hg
u : ℂ
hu : 0 < u.re
v : ℂ
x : ℝ
hx : x ∈ Icc 0 (1 / 2)
⊢ ContinuousAt (fun x => v - 1) x
state_after: no goals

tactic: norm_cast
state_before: case hg.hcont.h0
u : ℂ
hu : 0 < u.re
v : ℂ
x : ℝ
hx : x ∈ Icc 0 (1 / 2)
⊢ 1 - ↑x ∈ slitPlane
state_after: case hg.hcont.h0
u : ℂ
hu : 0 < u.re
v : ℂ
x : ℝ
hx : x ∈ Icc 0 (1 / 2)
⊢ ↑(1 - x) ∈ slitPlane

tactic: exact ofReal_mem_slitPlane.2 <| by linarith only [hx.2]
state_before: case hg.hcont.h0
u : ℂ
hu : 0 < u.re
v : ℂ
x : ℝ
hx : x ∈ Icc 0 (1 / 2)
⊢ ↑(1 - x) ∈ slitPlane
state_after: no goals

tactic: linarith only [hx.2]
state_before: u : ℂ
hu : 0 < u.re
v : ℂ
x : ℝ
hx : x ∈ Icc 0 (1 / 2)
⊢ 0 < 1 - x
state_after: no goals