Theorem: RectangleIntegralHSplit (PrimeNumberTheoremAnd/ResidueCalcOnRectangles.lean)

State before:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f g : ℂ → E
z w p c A : ℂ
x x₁✝ x₂ y y₁✝ y₂ σ a x₀ x₁ y₀ y₁ : ℝ
f_int_x₀_a_bot : IntervalIntegrable (fun x => f (↑x + ↑y₀ * I)) volume x₀ a
f_int_a_x₁_bot : IntervalIntegrable (fun x => f (↑x + ↑y₀ * I)) volume a x₁
f_int_x₀_a_top : IntervalIntegrable (fun x => f (↑x + ↑y₁ * I)) volume x₀ a
f_int_a_x₁_top : IntervalIntegrable (fun x => f (↑x + ↑y₁ * I)) volume a x₁
⊢ RectangleIntegral f (↑x₀ + ↑y₀ * I) (↑x₁ + ↑y₁ * I) =
    RectangleIntegral f (↑x₀ + ↑y₀ * I) (↑a + ↑y₁ * I) + RectangleIntegral f (↑a + ↑y₀ * I) (↑x₁ + ↑y₁ * I)
Tactic:
dsimp [RectangleIntegral, HIntegral, VIntegral]
State after:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f g : ℂ → E
z w p c A : ℂ
x x₁✝ x₂ y y₁✝ y₂ σ a x₀ x₁ y₀ y₁ : ℝ
f_int_x₀_a_bot : IntervalIntegrable (fun x => f (↑x + ↑y₀ * I)) volume x₀ a
f_int_a_x₁_bot : IntervalIntegrable (fun x => f (↑x + ↑y₀ * I)) volume a x₁
f_int_x₀_a_top : IntervalIntegrable (fun x => f (↑x + ↑y₁ * I)) volume x₀ a
f_int_a_x₁_top : IntervalIntegrable (fun x => f (↑x + ↑y₁ * I)) volume a x₁
⊢ (((∫ (x : ℝ) in x₀ + (y₀ * 0 - 0 * 1)..x₁ + (y₁ * 0 - 0 * 1), f (↑x + ↑(0 + (y₀ * 1 + 0 * 0)) * I)) -
          ∫ (x : ℝ) in x₀ + (y₀ * 0 - 0 * 1)..x₁ + (y₁ * 0 - 0 * 1), f (↑x + ↑(0 + (y₁ * 1 + 0 * 0)) * I)) +
        I • ∫ (y : ℝ) in 0 + (y₀ * 1 + 0 * 0)..0 + (y₁ * 1 + 0 * 0), f (↑(x₁ + (y₁ * 0 - 0 * 1)) + ↑y * I)) -
      I • ∫ (y : ℝ) in 0 + (y₀ * 1 + 0 * 0)..0 + (y₁ * 1 + 0 * 0), f (↑(x₀ + (y₀ * 0 - 0 * 1)) + ↑y * I) =
    ((((∫ (x : ℝ) in x₀ + (y₀ * 0 - 0 * 1)..a + (y₁ * 0 - 0 * 1), f (↑x + ↑(0 + (y₀ * 1 + 0 * 0)) * I)) -
            ∫ (x : ℝ) in x₀ + (y₀ * 0 - 0 * 1)..a + (y₁ * 0 - 0 * 1), f (↑x + ↑(0 + (y₁ * 1 + 0 * 0)) * I)) +
          I • ∫ (y : ℝ) in 0 + (y₀ * 1 + 0 * 0)..0 + (y₁ * 1 + 0 * 0), f (↑(a + (y₁ * 0 - 0 * 1)) + ↑y * I)) -
        I • ∫ (y : ℝ) in 0 + (y₀ * 1 + 0 * 0)..0 + (y₁ * 1 + 0 * 0), f (↑(x₀ + (y₀ * 0 - 0 * 1)) + ↑y * I)) +
      ((((∫ (x : ℝ) in a + (y₀ * 0 - 0 * 1)..x₁ + (y₁ * 0 - 0 * 1), f (↑x + ↑(0 + (y₀ * 1 + 0 * 0)) * I)) -
            ∫ (x : ℝ) in a + (y₀ * 0 - 0 * 1)..x₁ + (y₁ * 0 - 0 * 1), f (↑x + ↑(0 + (y₁ * 1 + 0 * 0)) * I)) +
          I • ∫ (y : ℝ) in 0 + (y₀ * 1 + 0 * 0)..0 + (y₁ * 1 + 0 * 0), f (↑(x₁ + (y₁ * 0 - 0 * 1)) + ↑y * I)) -
        I • ∫ (y : ℝ) in 0 + (y₀ * 1 + 0 * 0)..0 + (y₁ * 1 + 0 * 0), f (↑(a + (y₀ * 0 - 0 * 1)) + ↑y * I))

State before:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f g : ℂ → E
z w p c A : ℂ
x x₁✝ x₂ y y₁✝ y₂ σ a x₀ x₁ y₀ y₁ : ℝ
f_int_x₀_a_bot : IntervalIntegrable (fun x => f (↑x + ↑y₀ * I)) volume x₀ a
f_int_a_x₁_bot : IntervalIntegrable (fun x => f (↑x + ↑y₀ * I)) volume a x₁
f_int_x₀_a_top : IntervalIntegrable (fun x => f (↑x + ↑y₁ * I)) volume x₀ a
f_int_a_x₁_top : IntervalIntegrable (fun x => f (↑x + ↑y₁ * I)) volume a x₁
⊢ (((∫ (x : ℝ) in x₀ + (y₀ * 0 - 0 * 1)..x₁ + (y₁ * 0 - 0 * 1), f (↑x + ↑(0 + (y₀ * 1 + 0 * 0)) * I)) -
          ∫ (x : ℝ) in x₀ + (y₀ * 0 - 0 * 1)..x₁ + (y₁ * 0 - 0 * 1), f (↑x + ↑(0 + (y₁ * 1 + 0 * 0)) * I)) +
        I • ∫ (y : ℝ) in 0 + (y₀ * 1 + 0 * 0)..0 + (y₁ * 1 + 0 * 0), f (↑(x₁ + (y₁ * 0 - 0 * 1)) + ↑y * I)) -
      I • ∫ (y : ℝ) in 0 + (y₀ * 1 + 0 * 0)..0 + (y₁ * 1 + 0 * 0), f (↑(x₀ + (y₀ * 0 - 0 * 1)) + ↑y * I) =
    ((((∫ (x : ℝ) in x₀ + (y₀ * 0 - 0 * 1)..a + (y₁ * 0 - 0 * 1), f (↑x + ↑(0 + (y₀ * 1 + 0 * 0)) * I)) -
            ∫ (x : ℝ) in x₀ + (y₀ * 0 - 0 * 1)..a + (y₁ * 0 - 0 * 1), f (↑x + ↑(0 + (y₁ * 1 + 0 * 0)) * I)) +
          I • ∫ (y : ℝ) in 0 + (y₀ * 1 + 0 * 0)..0 + (y₁ * 1 + 0 * 0), f (↑(a + (y₁ * 0 - 0 * 1)) + ↑y * I)) -
        I • ∫ (y : ℝ) in 0 + (y₀ * 1 + 0 * 0)..0 + (y₁ * 1 + 0 * 0), f (↑(x₀ + (y₀ * 0 - 0 * 1)) + ↑y * I)) +
      ((((∫ (x : ℝ) in a + (y₀ * 0 - 0 * 1)..x₁ + (y₁ * 0 - 0 * 1), f (↑x + ↑(0 + (y₀ * 1 + 0 * 0)) * I)) -
            ∫ (x : ℝ) in a + (y₀ * 0 - 0 * 1)..x₁ + (y₁ * 0 - 0 * 1), f (↑x + ↑(0 + (y₁ * 1 + 0 * 0)) * I)) +
          I • ∫ (y : ℝ) in 0 + (y₀ * 1 + 0 * 0)..0 + (y₁ * 1 + 0 * 0), f (↑(x₁ + (y₁ * 0 - 0 * 1)) + ↑y * I)) -
        I • ∫ (y : ℝ) in 0 + (y₀ * 1 + 0 * 0)..0 + (y₁ * 1 + 0 * 0), f (↑(a + (y₀ * 0 - 0 * 1)) + ↑y * I))
Tactic:
ring_nf
State after:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f g : ℂ → E
z w p c A : ℂ
x x₁✝ x₂ y y₁✝ y₂ σ a x₀ x₁ y₀ y₁ : ℝ
f_int_x₀_a_bot : IntervalIntegrable (fun x => f (↑x + ↑y₀ * I)) volume x₀ a
f_int_a_x₁_bot : IntervalIntegrable (fun x => f (↑x + ↑y₀ * I)) volume a x₁
f_int_x₀_a_top : IntervalIntegrable (fun x => f (↑x + ↑y₁ * I)) volume x₀ a
f_int_a_x₁_top : IntervalIntegrable (fun x => f (↑x + ↑y₁ * I)) volume a x₁
⊢ (((∫ (x : ℝ) in x₀..x₁, f (↑x + ↑y₀ * I)) - ∫ (x : ℝ) in x₀..x₁, f (↑x + ↑y₁ * I)) +
        I • ∫ (y : ℝ) in y₀..y₁, f (↑x₁ + ↑y * I)) -
      I • ∫ (y : ℝ) in y₀..y₁, f (↑x₀ + ↑y * I) =
    ((((∫ (x : ℝ) in x₀..a, f (↑x + ↑y₀ * I)) - ∫ (x : ℝ) in x₀..a, f (↑x + ↑y₁ * I)) +
          I • ∫ (y : ℝ) in y₀..y₁, f (↑a + ↑y * I)) -
        I • ∫ (y : ℝ) in y₀..y₁, f (↑x₀ + ↑y * I)) +
      ((((∫ (x : ℝ) in a..x₁, f (↑x + ↑y₀ * I)) - ∫ (x : ℝ) in a..x₁, f (↑x + ↑y₁ * I)) +
          I • ∫ (y : ℝ) in y₀..y₁, f (↑x₁ + ↑y * I)) -
        I • ∫ (y : ℝ) in y₀..y₁, f (↑a + ↑y * I))

State before:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f g : ℂ → E
z w p c A : ℂ
x x₁✝ x₂ y y₁✝ y₂ σ a x₀ x₁ y₀ y₁ : ℝ
f_int_x₀_a_bot : IntervalIntegrable (fun x => f (↑x + ↑y₀ * I)) volume x₀ a
f_int_a_x₁_bot : IntervalIntegrable (fun x => f (↑x + ↑y₀ * I)) volume a x₁
f_int_x₀_a_top : IntervalIntegrable (fun x => f (↑x + ↑y₁ * I)) volume x₀ a
f_int_a_x₁_top : IntervalIntegrable (fun x => f (↑x + ↑y₁ * I)) volume a x₁
⊢ (((∫ (x : ℝ) in x₀..x₁, f (↑x + ↑y₀ * I)) - ∫ (x : ℝ) in x₀..x₁, f (↑x + ↑y₁ * I)) +
        I • ∫ (y : ℝ) in y₀..y₁, f (↑x₁ + ↑y * I)) -
      I • ∫ (y : ℝ) in y₀..y₁, f (↑x₀ + ↑y * I) =
    ((((∫ (x : ℝ) in x₀..a, f (↑x + ↑y₀ * I)) - ∫ (x : ℝ) in x₀..a, f (↑x + ↑y₁ * I)) +
          I • ∫ (y : ℝ) in y₀..y₁, f (↑a + ↑y * I)) -
        I • ∫ (y : ℝ) in y₀..y₁, f (↑x₀ + ↑y * I)) +
      ((((∫ (x : ℝ) in a..x₁, f (↑x + ↑y₀ * I)) - ∫ (x : ℝ) in a..x₁, f (↑x + ↑y₁ * I)) +
          I • ∫ (y : ℝ) in y₀..y₁, f (↑x₁ + ↑y * I)) -
        I • ∫ (y : ℝ) in y₀..y₁, f (↑a + ↑y * I))
Tactic:
have h₁ := intervalIntegral.integral_add_adjacent_intervals f_int_x₀_a_bot f_int_a_x₁_bot
State after:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f g : ℂ → E
z w p c A : ℂ
x x₁✝ x₂ y y₁✝ y₂ σ a x₀ x₁ y₀ y₁ : ℝ
f_int_x₀_a_bot : IntervalIntegrable (fun x => f (↑x + ↑y₀ * I)) volume x₀ a
f_int_a_x₁_bot : IntervalIntegrable (fun x => f (↑x + ↑y₀ * I)) volume a x₁
f_int_x₀_a_top : IntervalIntegrable (fun x => f (↑x + ↑y₁ * I)) volume x₀ a
f_int_a_x₁_top : IntervalIntegrable (fun x => f (↑x + ↑y₁ * I)) volume a x₁
h₁ :
  (∫ (x : ℝ) in x₀..a, f (↑x + ↑y₀ * I)) + ∫ (x : ℝ) in a..x₁, f (↑x + ↑y₀ * I) = ∫ (x : ℝ) in x₀..x₁, f (↑x + ↑y₀ * I)
⊢ (((∫ (x : ℝ) in x₀..x₁, f (↑x + ↑y₀ * I)) - ∫ (x : ℝ) in x₀..x₁, f (↑x + ↑y₁ * I)) +
        I • ∫ (y : ℝ) in y₀..y₁, f (↑x₁ + ↑y * I)) -
      I • ∫ (y : ℝ) in y₀..y₁, f (↑x₀ + ↑y * I) =
    ((((∫ (x : ℝ) in x₀..a, f (↑x + ↑y₀ * I)) - ∫ (x : ℝ) in x₀..a, f (↑x + ↑y₁ * I)) +
          I • ∫ (y : ℝ) in y₀..y₁, f (↑a + ↑y * I)) -
        I • ∫ (y : ℝ) in y₀..y₁, f (↑x₀ + ↑y * I)) +
      ((((∫ (x : ℝ) in a..x₁, f (↑x + ↑y₀ * I)) - ∫ (x : ℝ) in a..x₁, f (↑x + ↑y₁ * I)) +
          I • ∫ (y : ℝ) in y₀..y₁, f (↑x₁ + ↑y * I)) -
        I • ∫ (y : ℝ) in y₀..y₁, f (↑a + ↑y * I))

State before:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f g : ℂ → E
z w p c A : ℂ
x x₁✝ x₂ y y₁✝ y₂ σ a x₀ x₁ y₀ y₁ : ℝ
f_int_x₀_a_bot : IntervalIntegrable (fun x => f (↑x + ↑y₀ * I)) volume x₀ a
f_int_a_x₁_bot : IntervalIntegrable (fun x => f (↑x + ↑y₀ * I)) volume a x₁
f_int_x₀_a_top : IntervalIntegrable (fun x => f (↑x + ↑y₁ * I)) volume x₀ a
f_int_a_x₁_top : IntervalIntegrable (fun x => f (↑x + ↑y₁ * I)) volume a x₁
h₁ :
  (∫ (x : ℝ) in x₀..a, f (↑x + ↑y₀ * I)) + ∫ (x : ℝ) in a..x₁, f (↑x + ↑y₀ * I) = ∫ (x : ℝ) in x₀..x₁, f (↑x + ↑y₀ * I)
⊢ (((∫ (x : ℝ) in x₀..x₁, f (↑x + ↑y₀ * I)) - ∫ (x : ℝ) in x₀..x₁, f (↑x + ↑y₁ * I)) +
        I • ∫ (y : ℝ) in y₀..y₁, f (↑x₁ + ↑y * I)) -
      I • ∫ (y : ℝ) in y₀..y₁, f (↑x₀ + ↑y * I) =
    ((((∫ (x : ℝ) in x₀..a, f (↑x + ↑y₀ * I)) - ∫ (x : ℝ) in x₀..a, f (↑x + ↑y₁ * I)) +
          I • ∫ (y : ℝ) in y₀..y₁, f (↑a + ↑y * I)) -
        I • ∫ (y : ℝ) in y₀..y₁, f (↑x₀ + ↑y * I)) +
      ((((∫ (x : ℝ) in a..x₁, f (↑x + ↑y₀ * I)) - ∫ (x : ℝ) in a..x₁, f (↑x + ↑y₁ * I)) +
          I • ∫ (y : ℝ) in y₀..y₁, f (↑x₁ + ↑y * I)) -
        I • ∫ (y : ℝ) in y₀..y₁, f (↑a + ↑y * I))
Tactic:
have h₂ := intervalIntegral.integral_add_adjacent_intervals f_int_x₀_a_top f_int_a_x₁_top
State after:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f g : ℂ → E
z w p c A : ℂ
x x₁✝ x₂ y y₁✝ y₂ σ a x₀ x₁ y₀ y₁ : ℝ
f_int_x₀_a_bot : IntervalIntegrable (fun x => f (↑x + ↑y₀ * I)) volume x₀ a
f_int_a_x₁_bot : IntervalIntegrable (fun x => f (↑x + ↑y₀ * I)) volume a x₁
f_int_x₀_a_top : IntervalIntegrable (fun x => f (↑x + ↑y₁ * I)) volume x₀ a
f_int_a_x₁_top : IntervalIntegrable (fun x => f (↑x + ↑y₁ * I)) volume a x₁
h₁ :
  (∫ (x : ℝ) in x₀..a, f (↑x + ↑y₀ * I)) + ∫ (x : ℝ) in a..x₁, f (↑x + ↑y₀ * I) = ∫ (x : ℝ) in x₀..x₁, f (↑x + ↑y₀ * I)
h₂ :
  (∫ (x : ℝ) in x₀..a, f (↑x + ↑y₁ * I)) + ∫ (x : ℝ) in a..x₁, f (↑x + ↑y₁ * I) = ∫ (x : ℝ) in x₀..x₁, f (↑x + ↑y₁ * I)
⊢ (((∫ (x : ℝ) in x₀..x₁, f (↑x + ↑y₀ * I)) - ∫ (x : ℝ) in x₀..x₁, f (↑x + ↑y₁ * I)) +
        I • ∫ (y : ℝ) in y₀..y₁, f (↑x₁ + ↑y * I)) -
      I • ∫ (y : ℝ) in y₀..y₁, f (↑x₀ + ↑y * I) =
    ((((∫ (x : ℝ) in x₀..a, f (↑x + ↑y₀ * I)) - ∫ (x : ℝ) in x₀..a, f (↑x + ↑y₁ * I)) +
          I • ∫ (y : ℝ) in y₀..y₁, f (↑a + ↑y * I)) -
        I • ∫ (y : ℝ) in y₀..y₁, f (↑x₀ + ↑y * I)) +
      ((((∫ (x : ℝ) in a..x₁, f (↑x + ↑y₀ * I)) - ∫ (x : ℝ) in a..x₁, f (↑x + ↑y₁ * I)) +
          I • ∫ (y : ℝ) in y₀..y₁, f (↑x₁ + ↑y * I)) -
        I • ∫ (y : ℝ) in y₀..y₁, f (↑a + ↑y * I))

State before:
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f g : ℂ → E
z w p c A : ℂ
x x₁✝ x₂ y y₁✝ y₂ σ a x₀ x₁ y₀ y₁ : ℝ
f_int_x₀_a_bot : IntervalIntegrable (fun x => f (↑x + ↑y₀ * I)) volume x₀ a
f_int_a_x₁_bot : IntervalIntegrable (fun x => f (↑x + ↑y₀ * I)) volume a x₁
f_int_x₀_a_top : IntervalIntegrable (fun x => f (↑x + ↑y₁ * I)) volume x₀ a
f_int_a_x₁_top : IntervalIntegrable (fun x => f (↑x + ↑y₁ * I)) volume a x₁
h₁ :
  (∫ (x : ℝ) in x₀..a, f (↑x + ↑y₀ * I)) + ∫ (x : ℝ) in a..x₁, f (↑x + ↑y₀ * I) = ∫ (x : ℝ) in x₀..x₁, f (↑x + ↑y₀ * I)
h₂ :
  (∫ (x : ℝ) in x₀..a, f (↑x + ↑y₁ * I)) + ∫ (x : ℝ) in a..x₁, f (↑x + ↑y₁ * I) = ∫ (x : ℝ) in x₀..x₁, f (↑x + ↑y₁ * I)
⊢ (((∫ (x : ℝ) in x₀..x₁, f (↑x + ↑y₀ * I)) - ∫ (x : ℝ) in x₀..x₁, f (↑x + ↑y₁ * I)) +
        I • ∫ (y : ℝ) in y₀..y₁, f (↑x₁ + ↑y * I)) -
      I • ∫ (y : ℝ) in y₀..y₁, f (↑x₀ + ↑y * I) =
    ((((∫ (x : ℝ) in x₀..a, f (↑x + ↑y₀ * I)) - ∫ (x : ℝ) in x₀..a, f (↑x + ↑y₁ * I)) +
          I • ∫ (y : ℝ) in y₀..y₁, f (↑a + ↑y * I)) -
        I • ∫ (y : ℝ) in y₀..y₁, f (↑x₀ + ↑y * I)) +
      ((((∫ (x : ℝ) in a..x₁, f (↑x + ↑y₀ * I)) - ∫ (x : ℝ) in a..x₁, f (↑x + ↑y₁ * I)) +
          I • ∫ (y : ℝ) in y₀..y₁, f (↑x₁ + ↑y * I)) -
        I • ∫ (y : ℝ) in y₀..y₁, f (↑a + ↑y * I))
Tactic:
additive_combination - h₁ + h₂
State after:
no goals