Theorem: RectangleIntegral_tendsTo_UpperU (PrimeNumberTheoremAnd/PerronFormula.lean)

State before:
σ σ' T : ℝ
f : ℂ → ℂ
htop : Tendsto (fun y => ∫ (x : ℝ) in σ..σ', f (↑x + ↑y * I)) atTop (𝓝 0)
hleft : Integrable (fun y => f (↑σ + ↑y * I)) volume
hright : Integrable (fun y => f (↑σ' + ↑y * I)) volume
⊢ Tendsto (fun U => RectangleIntegral f (↑σ + I * ↑T) (↑σ' + I * ↑U)) atTop (𝓝 (UpperUIntegral f σ σ' T))
Tactic:
have h_re  (s : ℝ) (t : ℝ) : (s  + I * t).re = s  := by simp
State after:
σ σ' T : ℝ
f : ℂ → ℂ
htop : Tendsto (fun y => ∫ (x : ℝ) in σ..σ', f (↑x + ↑y * I)) atTop (𝓝 0)
hleft : Integrable (fun y => f (↑σ + ↑y * I)) volume
hright : Integrable (fun y => f (↑σ' + ↑y * I)) volume
h_re : ∀ (s t : ℝ), (↑s + I * ↑t).re = s
⊢ Tendsto (fun U => RectangleIntegral f (↑σ + I * ↑T) (↑σ' + I * ↑U)) atTop (𝓝 (UpperUIntegral f σ σ' T))

State before:
σ σ' T : ℝ
f : ℂ → ℂ
htop : Tendsto (fun y => ∫ (x : ℝ) in σ..σ', f (↑x + ↑y * I)) atTop (𝓝 0)
hleft : Integrable (fun y => f (↑σ + ↑y * I)) volume
hright : Integrable (fun y => f (↑σ' + ↑y * I)) volume
h_re : ∀ (s t : ℝ), (↑s + I * ↑t).re = s
⊢ Tendsto (fun U => RectangleIntegral f (↑σ + I * ↑T) (↑σ' + I * ↑U)) atTop (𝓝 (UpperUIntegral f σ σ' T))
Tactic:
have h_im  (s : ℝ) (t : ℝ) : (s  + I * t).im = t  := by simp
State after:
σ σ' T : ℝ
f : ℂ → ℂ
htop : Tendsto (fun y => ∫ (x : ℝ) in σ..σ', f (↑x + ↑y * I)) atTop (𝓝 0)
hleft : Integrable (fun y => f (↑σ + ↑y * I)) volume
hright : Integrable (fun y => f (↑σ' + ↑y * I)) volume
h_re : ∀ (s t : ℝ), (↑s + I * ↑t).re = s
h_im : ∀ (s t : ℝ), (↑s + I * ↑t).im = t
⊢ Tendsto (fun U => RectangleIntegral f (↑σ + I * ↑T) (↑σ' + I * ↑U)) atTop (𝓝 (UpperUIntegral f σ σ' T))

State before:
σ σ' T : ℝ
f : ℂ → ℂ
htop : Tendsto (fun y => ∫ (x : ℝ) in σ..σ', f (↑x + ↑y * I)) atTop (𝓝 0)
hleft : Integrable (fun y => f (↑σ + ↑y * I)) volume
hright : Integrable (fun y => f (↑σ' + ↑y * I)) volume
h_re : ∀ (s t : ℝ), (↑s + I * ↑t).re = s
h_im : ∀ (s t : ℝ), (↑s + I * ↑t).im = t
⊢ Tendsto (fun U => RectangleIntegral f (↑σ + I * ↑T) (↑σ' + I * ↑U)) atTop (𝓝 (UpperUIntegral f σ σ' T))
Tactic:
have hbot : Tendsto (fun (_ : ℝ) ↦ ∫ (x : ℝ) in σ..σ', f (x + T * I)) atTop (𝓝 <| ∫ (x : ℝ) in σ..σ', f (x + T * I)) := by
  exact tendsto_const_nhds
State after:
σ σ' T : ℝ
f : ℂ → ℂ
htop : Tendsto (fun y => ∫ (x : ℝ) in σ..σ', f (↑x + ↑y * I)) atTop (𝓝 0)
hleft : Integrable (fun y => f (↑σ + ↑y * I)) volume
hright : Integrable (fun y => f (↑σ' + ↑y * I)) volume
h_re : ∀ (s t : ℝ), (↑s + I * ↑t).re = s
h_im : ∀ (s t : ℝ), (↑s + I * ↑t).im = t
hbot : Tendsto (fun x => ∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)) atTop (𝓝 (∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)))
⊢ Tendsto (fun U => RectangleIntegral f (↑σ + I * ↑T) (↑σ' + I * ↑U)) atTop (𝓝 (UpperUIntegral f σ σ' T))

State before:
σ σ' T : ℝ
f : ℂ → ℂ
htop : Tendsto (fun y => ∫ (x : ℝ) in σ..σ', f (↑x + ↑y * I)) atTop (𝓝 0)
hleft : Integrable (fun y => f (↑σ + ↑y * I)) volume
hright : Integrable (fun y => f (↑σ' + ↑y * I)) volume
h_re : ∀ (s t : ℝ), (↑s + I * ↑t).re = s
h_im : ∀ (s t : ℝ), (↑s + I * ↑t).im = t
hbot : Tendsto (fun x => ∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)) atTop (𝓝 (∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)))
⊢ Tendsto (fun U => RectangleIntegral f (↑σ + I * ↑T) (↑σ' + I * ↑U)) atTop (𝓝 (UpperUIntegral f σ σ' T))
Tactic:
have hvert (s : ℝ) (int : Integrable (fun (y : ℝ) ↦ f (s + y * I))) :
    Tendsto (fun (U : ℝ) ↦ I * ∫ (y : ℝ) in T..U, f (s + y * I)) atTop (𝓝 <| I * ∫ (y : ℝ) in Ioi T, f (s + y * I)) := by
  exact (intervalIntegral_tendsto_integral_Ioi T int.restrict tendsto_id).const_smul I
State after:
σ σ' T : ℝ
f : ℂ → ℂ
htop : Tendsto (fun y => ∫ (x : ℝ) in σ..σ', f (↑x + ↑y * I)) atTop (𝓝 0)
hleft : Integrable (fun y => f (↑σ + ↑y * I)) volume
hright : Integrable (fun y => f (↑σ' + ↑y * I)) volume
h_re : ∀ (s t : ℝ), (↑s + I * ↑t).re = s
h_im : ∀ (s t : ℝ), (↑s + I * ↑t).im = t
hbot : Tendsto (fun x => ∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)) atTop (𝓝 (∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)))
hvert :
  ∀ (s : ℝ),
    Integrable (fun y => f (↑s + ↑y * I)) volume →
      Tendsto (fun U => I * ∫ (y : ℝ) in T..U, f (↑s + ↑y * I)) atTop (𝓝 (I * ∫ (y : ℝ) in Ioi T, f (↑s + ↑y * I)))
⊢ Tendsto (fun U => RectangleIntegral f (↑σ + I * ↑T) (↑σ' + I * ↑U)) atTop (𝓝 (UpperUIntegral f σ σ' T))

State before:
σ σ' T : ℝ
f : ℂ → ℂ
htop : Tendsto (fun y => ∫ (x : ℝ) in σ..σ', f (↑x + ↑y * I)) atTop (𝓝 0)
hleft : Integrable (fun y => f (↑σ + ↑y * I)) volume
hright : Integrable (fun y => f (↑σ' + ↑y * I)) volume
h_re : ∀ (s t : ℝ), (↑s + I * ↑t).re = s
h_im : ∀ (s t : ℝ), (↑s + I * ↑t).im = t
hbot : Tendsto (fun x => ∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)) atTop (𝓝 (∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)))
hvert :
  ∀ (s : ℝ),
    Integrable (fun y => f (↑s + ↑y * I)) volume →
      Tendsto (fun U => I * ∫ (y : ℝ) in T..U, f (↑s + ↑y * I)) atTop (𝓝 (I * ∫ (y : ℝ) in Ioi T, f (↑s + ↑y * I)))
⊢ Tendsto (fun U => RectangleIntegral f (↑σ + I * ↑T) (↑σ' + I * ↑U)) atTop (𝓝 (UpperUIntegral f σ σ' T))
Tactic:
have := ((hbot.sub htop).add (hvert σ' hright)).sub (hvert σ hleft)
State after:
σ σ' T : ℝ
f : ℂ → ℂ
htop : Tendsto (fun y => ∫ (x : ℝ) in σ..σ', f (↑x + ↑y * I)) atTop (𝓝 0)
hleft : Integrable (fun y => f (↑σ + ↑y * I)) volume
hright : Integrable (fun y => f (↑σ' + ↑y * I)) volume
h_re : ∀ (s t : ℝ), (↑s + I * ↑t).re = s
h_im : ∀ (s t : ℝ), (↑s + I * ↑t).im = t
hbot : Tendsto (fun x => ∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)) atTop (𝓝 (∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)))
hvert :
  ∀ (s : ℝ),
    Integrable (fun y => f (↑s + ↑y * I)) volume →
      Tendsto (fun U => I * ∫ (y : ℝ) in T..U, f (↑s + ↑y * I)) atTop (𝓝 (I * ∫ (y : ℝ) in Ioi T, f (↑s + ↑y * I)))
this :
  Tendsto
    (fun x =>
      (((∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)) - ∫ (x_1 : ℝ) in σ..σ', f (↑x_1 + ↑x * I)) +
          I * ∫ (y : ℝ) in T..x, f (↑σ' + ↑y * I)) -
        I * ∫ (y : ℝ) in T..x, f (↑σ + ↑y * I))
    atTop
    (𝓝
      (((∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)) - 0 + I * ∫ (y : ℝ) in Ioi T, f (↑σ' + ↑y * I)) -
        I * ∫ (y : ℝ) in Ioi T, f (↑σ + ↑y * I)))
⊢ Tendsto (fun U => RectangleIntegral f (↑σ + I * ↑T) (↑σ' + I * ↑U)) atTop (𝓝 (UpperUIntegral f σ σ' T))

State before:
σ σ' T : ℝ
f : ℂ → ℂ
htop : Tendsto (fun y => ∫ (x : ℝ) in σ..σ', f (↑x + ↑y * I)) atTop (𝓝 0)
hleft : Integrable (fun y => f (↑σ + ↑y * I)) volume
hright : Integrable (fun y => f (↑σ' + ↑y * I)) volume
h_re : ∀ (s t : ℝ), (↑s + I * ↑t).re = s
h_im : ∀ (s t : ℝ), (↑s + I * ↑t).im = t
hbot : Tendsto (fun x => ∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)) atTop (𝓝 (∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)))
hvert :
  ∀ (s : ℝ),
    Integrable (fun y => f (↑s + ↑y * I)) volume →
      Tendsto (fun U => I * ∫ (y : ℝ) in T..U, f (↑s + ↑y * I)) atTop (𝓝 (I * ∫ (y : ℝ) in Ioi T, f (↑s + ↑y * I)))
this :
  Tendsto
    (fun x =>
      (((∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)) - ∫ (x_1 : ℝ) in σ..σ', f (↑x_1 + ↑x * I)) +
          I * ∫ (y : ℝ) in T..x, f (↑σ' + ↑y * I)) -
        I * ∫ (y : ℝ) in T..x, f (↑σ + ↑y * I))
    atTop
    (𝓝
      (((∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)) - 0 + I * ∫ (y : ℝ) in Ioi T, f (↑σ' + ↑y * I)) -
        I * ∫ (y : ℝ) in Ioi T, f (↑σ + ↑y * I)))
⊢ Tendsto (fun U => RectangleIntegral f (↑σ + I * ↑T) (↑σ' + I * ↑U)) atTop (𝓝 (UpperUIntegral f σ σ' T))
Tactic:
simpa only [RectangleIntegral, UpperUIntegral, h_re, h_im, sub_zero, ←integral_Ici_eq_integral_Ioi]
State after:
no goals

State before:
σ σ' T : ℝ
f : ℂ → ℂ
htop : Tendsto (fun y => ∫ (x : ℝ) in σ..σ', f (↑x + ↑y * I)) atTop (𝓝 0)
hleft : Integrable (fun y => f (↑σ + ↑y * I)) volume
hright : Integrable (fun y => f (↑σ' + ↑y * I)) volume
s t : ℝ
⊢ (↑s + I * ↑t).re = s
Tactic:
simp
State after:
no goals

State before:
σ σ' T : ℝ
f : ℂ → ℂ
htop : Tendsto (fun y => ∫ (x : ℝ) in σ..σ', f (↑x + ↑y * I)) atTop (𝓝 0)
hleft : Integrable (fun y => f (↑σ + ↑y * I)) volume
hright : Integrable (fun y => f (↑σ' + ↑y * I)) volume
h_re : ∀ (s t : ℝ), (↑s + I * ↑t).re = s
s t : ℝ
⊢ (↑s + I * ↑t).im = t
Tactic:
simp
State after:
no goals

State before:
σ σ' T : ℝ
f : ℂ → ℂ
htop : Tendsto (fun y => ∫ (x : ℝ) in σ..σ', f (↑x + ↑y * I)) atTop (𝓝 0)
hleft : Integrable (fun y => f (↑σ + ↑y * I)) volume
hright : Integrable (fun y => f (↑σ' + ↑y * I)) volume
h_re : ∀ (s t : ℝ), (↑s + I * ↑t).re = s
h_im : ∀ (s t : ℝ), (↑s + I * ↑t).im = t
⊢ Tendsto (fun x => ∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)) atTop (𝓝 (∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)))
Tactic:
exact tendsto_const_nhds
State after:
no goals

State before:
σ σ' T : ℝ
f : ℂ → ℂ
htop : Tendsto (fun y => ∫ (x : ℝ) in σ..σ', f (↑x + ↑y * I)) atTop (𝓝 0)
hleft : Integrable (fun y => f (↑σ + ↑y * I)) volume
hright : Integrable (fun y => f (↑σ' + ↑y * I)) volume
h_re : ∀ (s t : ℝ), (↑s + I * ↑t).re = s
h_im : ∀ (s t : ℝ), (↑s + I * ↑t).im = t
hbot : Tendsto (fun x => ∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)) atTop (𝓝 (∫ (x : ℝ) in σ..σ', f (↑x + ↑T * I)))
s : ℝ
int : Integrable (fun y => f (↑s + ↑y * I)) volume
⊢ Tendsto (fun U => I * ∫ (y : ℝ) in T..U, f (↑s + ↑y * I)) atTop (𝓝 (I * ∫ (y : ℝ) in Ioi T, f (↑s + ↑y * I)))
Tactic:
exact (intervalIntegral_tendsto_integral_Ioi T int.restrict tendsto_id).const_smul I
State after:
no goals