Theorem: MeasureTheory.integral_divergence_of_hasFDerivWithinAt_off_countable_aux₂
File: Mathlib/MeasureTheory/Integral/DivergenceTheorem.lean

tactic: rcases I.exists_seq_mono_tendsto with ⟨J, hJ_sub, hJl, hJu⟩
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
⊢ (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc I, ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
    ∑ i : Fin (n + 1),
      ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.upper I i) x) i) -
        ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.lower I i) x) i)

tactic: have hJ_sub' : ∀ k, Box.Icc (J k) ⊆ Box.Icc I := fun k => (hJ_sub k).trans I.Ioo_subset_Icc
state_before: case intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : Tendsto (Box.lower ∘ ↑J) atTop (𝓝 I.lower)
hJu : Tendsto (Box.upper ∘ ↑J) atTop (𝓝 I.upper)
⊢ (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc I, ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
    ∑ i : Fin (n + 1),
      ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.upper I i) x) i) -
        ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.lower I i) x) i)

tactic: have hJ_le : ∀ k, J k ≤ I := fun k => Box.le_iff_Icc.2 (hJ_sub' k)
state_before: case intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : Tendsto (Box.lower ∘ ↑J) atTop (𝓝 I.lower)
hJu : Tendsto (Box.upper ∘ ↑J) atTop (𝓝 I.upper)
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
⊢ (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc I, ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
    ∑ i : Fin (n + 1),
      ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.upper I i) x) i) -
        ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.lower I i) x) i)

tactic: have HcJ : ∀ k, ContinuousOn f (Box.Icc (J k)) := fun k => Hc.mono (hJ_sub' k)
state_before: case intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : Tendsto (Box.lower ∘ ↑J) atTop (𝓝 I.lower)
hJu : Tendsto (Box.upper ∘ ↑J) atTop (𝓝 I.upper)
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
⊢ (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc I, ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
    ∑ i : Fin (n + 1),
      ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.upper I i) x) i) -
        ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.lower I i) x) i)

tactic: have HdJ : ∀ (k), ∀ x ∈ (Box.Icc (J k)) \ s, HasFDerivWithinAt f (f' x) (Box.Icc (J k)) x :=
  fun k x hx => (Hd x ⟨hJ_sub k hx.1, hx.2⟩).hasFDerivWithinAt
state_before: case intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : Tendsto (Box.lower ∘ ↑J) atTop (𝓝 I.lower)
hJu : Tendsto (Box.upper ∘ ↑J) atTop (𝓝 I.upper)
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
⊢ (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc I, ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
    ∑ i : Fin (n + 1),
      ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.upper I i) x) i) -
        ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.lower I i) x) i)

tactic: have HJ_eq := fun k =>
  integral_divergence_of_hasFDerivWithinAt_off_countable_aux₁ (J k) f f' s hs (HcJ k) (HdJ k)
    (HiJ k)
state_before: case intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : Tendsto (Box.lower ∘ ↑J) atTop (𝓝 I.lower)
hJu : Tendsto (Box.upper ∘ ↑J) atTop (𝓝 I.upper)
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
⊢ (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc I, ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
    ∑ i : Fin (n + 1),
      ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.upper I i) x) i) -
        ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.lower I i) x) i)

tactic: have hI_tendsto :
  Tendsto (fun k => ∫ x in Box.Icc (J k), ∑ i, f' x (e i) i) atTop
    (𝓝 (∫ x in Box.Icc I, ∑ i, f' x (e i) i)) := by
  simp only [IntegrableOn, ← Measure.restrict_congr_set (Box.Ioo_ae_eq_Icc _)] at Hi ⊢
  rw [← Box.iUnion_Ioo_of_tendsto J.monotone hJl hJu] at Hi ⊢
  exact tendsto_set_integral_of_monotone (fun k => (J k).measurableSet_Ioo)
    (Box.Ioo.comp J).monotone Hi
state_before: case intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : Tendsto (Box.lower ∘ ↑J) atTop (𝓝 I.lower)
hJu : Tendsto (Box.upper ∘ ↑J) atTop (𝓝 I.upper)
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
⊢ (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc I, ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
    ∑ i : Fin (n + 1),
      ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.upper I i) x) i) -
        ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.lower I i) x) i)

tactic: refine' tendsto_nhds_unique_of_eventuallyEq hI_tendsto _ (eventually_of_forall HJ_eq)
state_before: case intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : Tendsto (Box.lower ∘ ↑J) atTop (𝓝 I.lower)
hJu : Tendsto (Box.upper ∘ ↑J) atTop (𝓝 I.upper)
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
hI_tendsto :
  Tendsto (fun k => ∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) atTop
    (𝓝 (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc I, ∑ i : Fin (n + 1), ↑(f' x) (e i) i))
⊢ (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc I, ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
    ∑ i : Fin (n + 1),
      ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.upper I i) x) i) -
        ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.lower I i) x) i)

tactic: clear hI_tendsto
state_before: case intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : Tendsto (Box.lower ∘ ↑J) atTop (𝓝 I.lower)
hJu : Tendsto (Box.upper ∘ ↑J) atTop (𝓝 I.upper)
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
hI_tendsto :
  Tendsto (fun k => ∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) atTop
    (𝓝 (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc I, ∑ i : Fin (n + 1), ↑(f' x) (e i) i))
⊢ Tendsto
    (fun x =>
      ∑ i : Fin (n + 1),
        ((∫ (x_1 : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J x) i), f (Fin.insertNth i (Box.upper (↑J x) i) x_1) i) -
          ∫ (x_1 : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J x) i), f (Fin.insertNth i (Box.lower (↑J x) i) x_1) i))
    atTop
    (𝓝
      (∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.upper I i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.lower I i) x) i)))

tactic: rw [tendsto_pi_nhds] at hJl hJu
state_before: case intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : Tendsto (Box.lower ∘ ↑J) atTop (𝓝 I.lower)
hJu : Tendsto (Box.upper ∘ ↑J) atTop (𝓝 I.upper)
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
⊢ Tendsto
    (fun x =>
      ∑ i : Fin (n + 1),
        ((∫ (x_1 : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J x) i), f (Fin.insertNth i (Box.upper (↑J x) i) x_1) i) -
          ∫ (x_1 : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J x) i), f (Fin.insertNth i (Box.lower (↑J x) i) x_1) i))
    atTop
    (𝓝
      (∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.upper I i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.lower I i) x) i)))

tactic: suffices ∀ (i : Fin (n + 1)) (c : ℕ → ℝ) (d), (∀ k, c k ∈ Icc (I.lower i) (I.upper i)) →
  Tendsto c atTop (𝓝 d) →
    Tendsto (fun k => ∫ x in Box.Icc ((J k).face i), f (i.insertNth (c k) x) i) atTop
      (𝓝 <| ∫ x in Box.Icc (I.face i), f (i.insertNth d x) i) by
  rw [Box.Icc_eq_pi] at hJ_sub'
  refine' tendsto_finset_sum _ fun i _ => (this _ _ _ _ (hJu _)).sub (this _ _ _ _ (hJl _))
  exacts [fun k => hJ_sub' k (J k).upper_mem_Icc _ trivial, fun k =>
    hJ_sub' k (J k).lower_mem_Icc _ trivial]
state_before: case intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
⊢ Tendsto
    (fun x =>
      ∑ i : Fin (n + 1),
        ((∫ (x_1 : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J x) i), f (Fin.insertNth i (Box.upper (↑J x) i) x_1) i) -
          ∫ (x_1 : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J x) i), f (Fin.insertNth i (Box.lower (↑J x) i) x_1) i))
    atTop
    (𝓝
      (∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.upper I i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.lower I i) x) i)))

tactic: intro i c d hc hcd
state_before: case intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
⊢ ∀ (i : Fin (n + 1)) (c : ℕ → ℝ) (d : ℝ),
    (∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)) →
      Tendsto c atTop (𝓝 d) →
        Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (c k) x) i) atTop
          (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))

tactic: have hd : d ∈ Icc (I.lower i) (I.upper i) :=
  isClosed_Icc.mem_of_tendsto hcd (eventually_of_forall hc)
state_before: case intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
⊢ Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (c k) x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))

tactic: have Hic : ∀ k, IntegrableOn (fun x => f (i.insertNth (c k) x) i) (Box.Icc (I.face i)) := fun k =>
  (Box.continuousOn_face_Icc ((continuous_apply i).comp_continuousOn Hc) (hc k)).integrableOn_Icc
state_before: case intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
⊢ Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (c k) x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))

tactic: have Hid : IntegrableOn (fun x => f (i.insertNth d x) i) (Box.Icc (I.face i)) :=
  (Box.continuousOn_face_Icc ((continuous_apply i).comp_continuousOn Hc) hd).integrableOn_Icc
state_before: case intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
⊢ Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (c k) x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))

tactic: have H :
  Tendsto (fun k => ∫ x in Box.Icc ((J k).face i), f (i.insertNth d x) i) atTop
    (𝓝 <| ∫ x in Box.Icc (I.face i), f (i.insertNth d x) i) := by
  have hIoo : (⋃ k, Box.Ioo ((J k).face i)) = Box.Ioo (I.face i) :=
    Box.iUnion_Ioo_of_tendsto ((Box.monotone_face i).comp J.monotone)
      (tendsto_pi_nhds.2 fun _ => hJl _) (tendsto_pi_nhds.2 fun _ => hJu _)
  simp only [IntegrableOn, ← Measure.restrict_congr_set (Box.Ioo_ae_eq_Icc _), ← hIoo] at Hid ⊢
  exact tendsto_set_integral_of_monotone (fun k => ((J k).face i).measurableSet_Ioo)
    (Box.Ioo.monotone.comp ((Box.monotone_face i).comp J.monotone)) Hid
state_before: case intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
⊢ Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (c k) x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))

tactic: refine' H.congr_dist (Metric.nhds_basis_closedBall.tendsto_right_iff.2 fun ε εpos => _)
state_before: case intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
H :
  Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
⊢ Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (c k) x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))

tactic: have hvol_pos : ∀ J : Box (Fin n), 0 < ∏ j, (J.upper j - J.lower j) := fun J =>
  prod_pos fun j hj => sub_pos.2 <| J.lower_lt_upper _
state_before: case intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
H :
  Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
ε : ℝ
εpos : 0 < ε
⊢ ∀ᶠ (x : ℕ) in atTop,
    dist (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J x) i), f (Fin.insertNth i d x) i)
        (∫ (x_1 : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J x) i), f (Fin.insertNth i (c x) x_1) i) ∈
      Metric.closedBall 0 ε

tactic: rcases Metric.uniformContinuousOn_iff_le.1 (I.isCompact_Icc.uniformContinuousOn_of_continuous Hc)
    (ε / ∏ j, ((I.face i).upper j - (I.face i).lower j)) (div_pos εpos (hvol_pos (I.face i)))
  with ⟨δ, δpos, hδ⟩
state_before: case intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
H :
  Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
ε : ℝ
εpos : 0 < ε
hvol_pos : ∀ (J : Box (Fin n)), 0 < ∏ j : Fin n, (Box.upper J j - Box.lower J j)
⊢ ∀ᶠ (x : ℕ) in atTop,
    dist (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J x) i), f (Fin.insertNth i d x) i)
        (∫ (x_1 : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J x) i), f (Fin.insertNth i (c x) x_1) i) ∈
      Metric.closedBall 0 ε

tactic: refine' (hcd.eventually (Metric.ball_mem_nhds _ δpos)).mono fun k hk => _
state_before: case intro.intro.intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
H :
  Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
ε : ℝ
εpos : 0 < ε
hvol_pos : ∀ (J : Box (Fin n)), 0 < ∏ j : Fin n, (Box.upper J j - Box.lower J j)
δ : ℝ
δpos : δ > 0
hδ :
  ∀ (x : Fin (n + 1) → ℝ),
    x ∈ ↑Box.Icc I →
      ∀ (y : Fin (n + 1) → ℝ),
        y ∈ ↑Box.Icc I →
          dist x y ≤ δ → dist (f x) (f y) ≤ ε / ∏ j : Fin n, (Box.upper (Box.face I i) j - Box.lower (Box.face I i) j)
⊢ ∀ᶠ (x : ℕ) in atTop,
    dist (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J x) i), f (Fin.insertNth i d x) i)
        (∫ (x_1 : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J x) i), f (Fin.insertNth i (c x) x_1) i) ∈
      Metric.closedBall 0 ε

tactic: have Hsub : Box.Icc ((J k).face i) ⊆ Box.Icc (I.face i) :=
  Box.le_iff_Icc.1 (Box.face_mono (hJ_le _) i)
state_before: case intro.intro.intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
H :
  Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
ε : ℝ
εpos : 0 < ε
hvol_pos : ∀ (J : Box (Fin n)), 0 < ∏ j : Fin n, (Box.upper J j - Box.lower J j)
δ : ℝ
δpos : δ > 0
hδ :
  ∀ (x : Fin (n + 1) → ℝ),
    x ∈ ↑Box.Icc I →
      ∀ (y : Fin (n + 1) → ℝ),
        y ∈ ↑Box.Icc I →
          dist x y ≤ δ → dist (f x) (f y) ≤ ε / ∏ j : Fin n, (Box.upper (Box.face I i) j - Box.lower (Box.face I i) j)
k : ℕ
hk : dist (c k) d < δ
⊢ dist (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i)
      (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (c k) x) i) ∈
    Metric.closedBall 0 ε

tactic: rw [mem_closedBall_zero_iff, Real.norm_eq_abs, abs_of_nonneg dist_nonneg, dist_eq_norm,
  ← integral_sub (Hid.mono_set Hsub) ((Hic _).mono_set Hsub)]
state_before: case intro.intro.intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
H :
  Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
ε : ℝ
εpos : 0 < ε
hvol_pos : ∀ (J : Box (Fin n)), 0 < ∏ j : Fin n, (Box.upper J j - Box.lower J j)
δ : ℝ
δpos : δ > 0
hδ :
  ∀ (x : Fin (n + 1) → ℝ),
    x ∈ ↑Box.Icc I →
      ∀ (y : Fin (n + 1) → ℝ),
        y ∈ ↑Box.Icc I →
          dist x y ≤ δ → dist (f x) (f y) ≤ ε / ∏ j : Fin n, (Box.upper (Box.face I i) j - Box.lower (Box.face I i) j)
k : ℕ
hk : dist (c k) d < δ
Hsub : ↑Box.Icc (Box.face (↑J k) i) ⊆ ↑Box.Icc (Box.face I i)
⊢ dist (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i)
      (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (c k) x) i) ∈
    Metric.closedBall 0 ε

tactic: calc
  ‖∫ x in Box.Icc ((J k).face i), f (i.insertNth d x) i - f (i.insertNth (c k) x) i‖ ≤
      (ε / ∏ j, ((I.face i).upper j - (I.face i).lower j)) *
        (volume (Box.Icc ((J k).face i))).toReal := by
    refine norm_set_integral_le_of_norm_le_const' (((J k).face i).measure_Icc_lt_top _)
      ((J k).face i).measurableSet_Icc fun x hx => ?_
    rw [← dist_eq_norm]
    calc
      dist (f (i.insertNth d x) i) (f (i.insertNth (c k) x) i) ≤
          dist (f (i.insertNth d x)) (f (i.insertNth (c k) x)) :=
        dist_le_pi_dist (f (i.insertNth d x)) (f (i.insertNth (c k) x)) i
      _ ≤ ε / ∏ j, ((I.face i).upper j - (I.face i).lower j) :=
        hδ _ (I.mapsTo_insertNth_face_Icc hd <| Hsub hx) _
          (I.mapsTo_insertNth_face_Icc (hc _) <| Hsub hx) ?_
    rw [Fin.dist_insertNth_insertNth, dist_self, dist_comm]
    exact max_le hk.le δpos.lt.le
  _ ≤ ε := by
    rw [Box.Icc_def, Real.volume_Icc_pi_toReal ((J k).face i).lower_le_upper,
      ← le_div_iff (hvol_pos _)]
    refine' div_le_div_of_le_left εpos.le (hvol_pos _)
      (prod_le_prod (fun j _ => _) fun j _ => _)
    exacts [sub_nonneg.2 (Box.lower_le_upper _ _),
      sub_le_sub ((hJ_sub' _ (J _).upper_mem_Icc).2 _) ((hJ_sub' _ (J _).lower_mem_Icc).1 _)]
state_before: case intro.intro.intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
H :
  Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
ε : ℝ
εpos : 0 < ε
hvol_pos : ∀ (J : Box (Fin n)), 0 < ∏ j : Fin n, (Box.upper J j - Box.lower J j)
δ : ℝ
δpos : δ > 0
hδ :
  ∀ (x : Fin (n + 1) → ℝ),
    x ∈ ↑Box.Icc I →
      ∀ (y : Fin (n + 1) → ℝ),
        y ∈ ↑Box.Icc I →
          dist x y ≤ δ → dist (f x) (f y) ≤ ε / ∏ j : Fin n, (Box.upper (Box.face I i) j - Box.lower (Box.face I i) j)
k : ℕ
hk : dist (c k) d < δ
Hsub : ↑Box.Icc (Box.face (↑J k) i) ⊆ ↑Box.Icc (Box.face I i)
⊢ ‖∫ (a : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d a) i - f (Fin.insertNth i (c k) a) i‖ ≤ ε

tactic: simp only [IntegrableOn, ← Measure.restrict_congr_set (Box.Ioo_ae_eq_Icc _)] at Hi ⊢
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : Tendsto (Box.lower ∘ ↑J) atTop (𝓝 I.lower)
hJu : Tendsto (Box.upper ∘ ↑J) atTop (𝓝 I.upper)
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
⊢ Tendsto (fun k => ∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) atTop
    (𝓝 (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc I, ∑ i : Fin (n + 1), ↑(f' x) (e i) i))

tactic: rw [← Box.iUnion_Ioo_of_tendsto J.monotone hJl hJu] at Hi ⊢
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : Tendsto (Box.lower ∘ ↑J) atTop (𝓝 I.lower)
hJu : Tendsto (Box.upper ∘ ↑J) atTop (𝓝 I.upper)
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
Hi : Integrable fun x => ∑ x_1 : Fin (n + 1), ↑(f' x) (e x_1) x_1
⊢ Tendsto (fun k => ∫ (x : Fin (n + 1) → ℝ) in ↑Box.Ioo (↑J k), ∑ x_1 : Fin (n + 1), ↑(f' x) (e x_1) x_1) atTop
    (𝓝 (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Ioo I, ∑ x_1 : Fin (n + 1), ↑(f' x) (e x_1) x_1))

tactic: exact tendsto_set_integral_of_monotone (fun k => (J k).measurableSet_Ioo)
  (Box.Ioo.comp J).monotone Hi
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : Tendsto (Box.lower ∘ ↑J) atTop (𝓝 I.lower)
hJu : Tendsto (Box.upper ∘ ↑J) atTop (𝓝 I.upper)
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
Hi : Integrable fun x => ∑ x_1 : Fin (n + 1), ↑(f' x) (e x_1) x_1
⊢ Tendsto (fun k => ∫ (x : Fin (n + 1) → ℝ) in ↑Box.Ioo (↑J k), ∑ x_1 : Fin (n + 1), ↑(f' x) (e x_1) x_1) atTop
    (𝓝 (∫ (x : Fin (n + 1) → ℝ) in ⋃ (n_1 : ℕ), ↑Box.Ioo (↑J n_1), ∑ x_1 : Fin (n + 1), ↑(f' x) (e x_1) x_1))

tactic: rw [Box.Icc_eq_pi] at hJ_sub'
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
this :
  ∀ (i : Fin (n + 1)) (c : ℕ → ℝ) (d : ℝ),
    (∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)) →
      Tendsto c atTop (𝓝 d) →
        Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (c k) x) i) atTop
          (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
⊢ Tendsto
    (fun x =>
      ∑ i : Fin (n + 1),
        ((∫ (x_1 : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J x) i), f (Fin.insertNth i (Box.upper (↑J x) i) x_1) i) -
          ∫ (x_1 : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J x) i), f (Fin.insertNth i (Box.lower (↑J x) i) x_1) i))
    atTop
    (𝓝
      (∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.upper I i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.lower I i) x) i)))

tactic: refine' tendsto_finset_sum _ fun i _ => (this _ _ _ _ (hJu _)).sub (this _ _ _ _ (hJl _))
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ Set.pi Set.univ fun i => Set.Icc (Box.lower I i) (Box.upper I i)
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
this :
  ∀ (i : Fin (n + 1)) (c : ℕ → ℝ) (d : ℝ),
    (∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)) →
      Tendsto c atTop (𝓝 d) →
        Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (c k) x) i) atTop
          (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
⊢ Tendsto
    (fun x =>
      ∑ i : Fin (n + 1),
        ((∫ (x_1 : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J x) i), f (Fin.insertNth i (Box.upper (↑J x) i) x_1) i) -
          ∫ (x_1 : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J x) i), f (Fin.insertNth i (Box.lower (↑J x) i) x_1) i))
    atTop
    (𝓝
      (∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.upper I i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i (Box.lower I i) x) i)))

tactic: exacts [fun k => hJ_sub' k (J k).upper_mem_Icc _ trivial, fun k =>
  hJ_sub' k (J k).lower_mem_Icc _ trivial]
state_before: case refine'_1
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ Set.pi Set.univ fun i => Set.Icc (Box.lower I i) (Box.upper I i)
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
this :
  ∀ (i : Fin (n + 1)) (c : ℕ → ℝ) (d : ℝ),
    (∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)) →
      Tendsto c atTop (𝓝 d) →
        Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (c k) x) i) atTop
          (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
i : Fin (n + 1)
x✝ : i ∈ Finset.univ
⊢ ∀ (k : ℕ), (Box.upper ∘ ↑J) k i ∈ Set.Icc (Box.lower I i) (Box.upper I i)

case refine'_2
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ Set.pi Set.univ fun i => Set.Icc (Box.lower I i) (Box.upper I i)
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
this :
  ∀ (i : Fin (n + 1)) (c : ℕ → ℝ) (d : ℝ),
    (∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)) →
      Tendsto c atTop (𝓝 d) →
        Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (c k) x) i) atTop
          (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
i : Fin (n + 1)
x✝ : i ∈ Finset.univ
⊢ ∀ (k : ℕ), Box.lower (↑J k) i ∈ Set.Icc (Box.lower I i) (Box.upper I i)

tactic: have hIoo : (⋃ k, Box.Ioo ((J k).face i)) = Box.Ioo (I.face i) :=
  Box.iUnion_Ioo_of_tendsto ((Box.monotone_face i).comp J.monotone)
    (tendsto_pi_nhds.2 fun _ => hJl _) (tendsto_pi_nhds.2 fun _ => hJu _)
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
⊢ Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))

tactic: simp only [IntegrableOn, ← Measure.restrict_congr_set (Box.Ioo_ae_eq_Icc _), ← hIoo] at Hid ⊢
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
hIoo : (⋃ (k : ℕ), ↑Box.Ioo (Box.face (↑J k) i)) = ↑Box.Ioo (Box.face I i)
⊢ Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))

tactic: exact tendsto_set_integral_of_monotone (fun k => ((J k).face i).measurableSet_Ioo)
  (Box.Ioo.monotone.comp ((Box.monotone_face i).comp J.monotone)) Hid
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
hIoo : (⋃ (k : ℕ), ↑Box.Ioo (Box.face (↑J k) i)) = ↑Box.Ioo (Box.face I i)
Hid : Integrable fun x => f (Fin.insertNth i d x) i
⊢ Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Ioo (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ⋃ (k : ℕ), ↑Box.Ioo (Box.face (↑J k) i), f (Fin.insertNth i d x) i))

tactic: refine norm_set_integral_le_of_norm_le_const' (((J k).face i).measure_Icc_lt_top _)
  ((J k).face i).measurableSet_Icc fun x hx => ?_
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
H :
  Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
ε : ℝ
εpos : 0 < ε
hvol_pos : ∀ (J : Box (Fin n)), 0 < ∏ j : Fin n, (Box.upper J j - Box.lower J j)
δ : ℝ
δpos : δ > 0
hδ :
  ∀ (x : Fin (n + 1) → ℝ),
    x ∈ ↑Box.Icc I →
      ∀ (y : Fin (n + 1) → ℝ),
        y ∈ ↑Box.Icc I →
          dist x y ≤ δ → dist (f x) (f y) ≤ ε / ∏ j : Fin n, (Box.upper (Box.face I i) j - Box.lower (Box.face I i) j)
k : ℕ
hk : dist (c k) d < δ
Hsub : ↑Box.Icc (Box.face (↑J k) i) ⊆ ↑Box.Icc (Box.face I i)
⊢ ‖∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i - f (Fin.insertNth i (c k) x) i‖ ≤
    (ε / ∏ j : Fin n, (Box.upper (Box.face I i) j - Box.lower (Box.face I i) j)) *
      ENNReal.toReal (↑↑volume (↑Box.Icc (Box.face (↑J k) i)))

tactic: rw [← dist_eq_norm]
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
H :
  Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
ε : ℝ
εpos : 0 < ε
hvol_pos : ∀ (J : Box (Fin n)), 0 < ∏ j : Fin n, (Box.upper J j - Box.lower J j)
δ : ℝ
δpos : δ > 0
hδ :
  ∀ (x : Fin (n + 1) → ℝ),
    x ∈ ↑Box.Icc I →
      ∀ (y : Fin (n + 1) → ℝ),
        y ∈ ↑Box.Icc I →
          dist x y ≤ δ → dist (f x) (f y) ≤ ε / ∏ j : Fin n, (Box.upper (Box.face I i) j - Box.lower (Box.face I i) j)
k : ℕ
hk : dist (c k) d < δ
Hsub : ↑Box.Icc (Box.face (↑J k) i) ⊆ ↑Box.Icc (Box.face I i)
x : Fin n → ℝ
hx : x ∈ ↑Box.Icc (Box.face (↑J k) i)
⊢ ‖f (Fin.insertNth i d x) i - f (Fin.insertNth i (c k) x) i‖ ≤
    ε / ∏ j : Fin n, (Box.upper (Box.face I i) j - Box.lower (Box.face I i) j)

tactic: calc
  dist (f (i.insertNth d x) i) (f (i.insertNth (c k) x) i) ≤
      dist (f (i.insertNth d x)) (f (i.insertNth (c k) x)) :=
    dist_le_pi_dist (f (i.insertNth d x)) (f (i.insertNth (c k) x)) i
  _ ≤ ε / ∏ j, ((I.face i).upper j - (I.face i).lower j) :=
    hδ _ (I.mapsTo_insertNth_face_Icc hd <| Hsub hx) _
      (I.mapsTo_insertNth_face_Icc (hc _) <| Hsub hx) ?_
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
H :
  Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
ε : ℝ
εpos : 0 < ε
hvol_pos : ∀ (J : Box (Fin n)), 0 < ∏ j : Fin n, (Box.upper J j - Box.lower J j)
δ : ℝ
δpos : δ > 0
hδ :
  ∀ (x : Fin (n + 1) → ℝ),
    x ∈ ↑Box.Icc I →
      ∀ (y : Fin (n + 1) → ℝ),
        y ∈ ↑Box.Icc I →
          dist x y ≤ δ → dist (f x) (f y) ≤ ε / ∏ j : Fin n, (Box.upper (Box.face I i) j - Box.lower (Box.face I i) j)
k : ℕ
hk : dist (c k) d < δ
Hsub : ↑Box.Icc (Box.face (↑J k) i) ⊆ ↑Box.Icc (Box.face I i)
x : Fin n → ℝ
hx : x ∈ ↑Box.Icc (Box.face (↑J k) i)
⊢ dist (f (Fin.insertNth i d x) i) (f (Fin.insertNth i (c k) x) i) ≤
    ε / ∏ j : Fin n, (Box.upper (Box.face I i) j - Box.lower (Box.face I i) j)

tactic: rw [Fin.dist_insertNth_insertNth, dist_self, dist_comm]
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
H :
  Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
ε : ℝ
εpos : 0 < ε
hvol_pos : ∀ (J : Box (Fin n)), 0 < ∏ j : Fin n, (Box.upper J j - Box.lower J j)
δ : ℝ
δpos : δ > 0
hδ :
  ∀ (x : Fin (n + 1) → ℝ),
    x ∈ ↑Box.Icc I →
      ∀ (y : Fin (n + 1) → ℝ),
        y ∈ ↑Box.Icc I →
          dist x y ≤ δ → dist (f x) (f y) ≤ ε / ∏ j : Fin n, (Box.upper (Box.face I i) j - Box.lower (Box.face I i) j)
k : ℕ
hk : dist (c k) d < δ
Hsub : ↑Box.Icc (Box.face (↑J k) i) ⊆ ↑Box.Icc (Box.face I i)
x : Fin n → ℝ
hx : x ∈ ↑Box.Icc (Box.face (↑J k) i)
⊢ dist (Fin.insertNth i d x) (Fin.insertNth i (c k) x) ≤ δ

tactic: exact max_le hk.le δpos.lt.le
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
H :
  Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
ε : ℝ
εpos : 0 < ε
hvol_pos : ∀ (J : Box (Fin n)), 0 < ∏ j : Fin n, (Box.upper J j - Box.lower J j)
δ : ℝ
δpos : δ > 0
hδ :
  ∀ (x : Fin (n + 1) → ℝ),
    x ∈ ↑Box.Icc I →
      ∀ (y : Fin (n + 1) → ℝ),
        y ∈ ↑Box.Icc I →
          dist x y ≤ δ → dist (f x) (f y) ≤ ε / ∏ j : Fin n, (Box.upper (Box.face I i) j - Box.lower (Box.face I i) j)
k : ℕ
hk : dist (c k) d < δ
Hsub : ↑Box.Icc (Box.face (↑J k) i) ⊆ ↑Box.Icc (Box.face I i)
x : Fin n → ℝ
hx : x ∈ ↑Box.Icc (Box.face (↑J k) i)
⊢ max (dist (c k) d) 0 ≤ δ

tactic: rw [Box.Icc_def, Real.volume_Icc_pi_toReal ((J k).face i).lower_le_upper,
  ← le_div_iff (hvol_pos _)]
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
H :
  Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
ε : ℝ
εpos : 0 < ε
hvol_pos : ∀ (J : Box (Fin n)), 0 < ∏ j : Fin n, (Box.upper J j - Box.lower J j)
δ : ℝ
δpos : δ > 0
hδ :
  ∀ (x : Fin (n + 1) → ℝ),
    x ∈ ↑Box.Icc I →
      ∀ (y : Fin (n + 1) → ℝ),
        y ∈ ↑Box.Icc I →
          dist x y ≤ δ → dist (f x) (f y) ≤ ε / ∏ j : Fin n, (Box.upper (Box.face I i) j - Box.lower (Box.face I i) j)
k : ℕ
hk : dist (c k) d < δ
Hsub : ↑Box.Icc (Box.face (↑J k) i) ⊆ ↑Box.Icc (Box.face I i)
⊢ (ε / ∏ j : Fin n, (Box.upper (Box.face I i) j - Box.lower (Box.face I i) j)) *
      ENNReal.toReal (↑↑volume (↑Box.Icc (Box.face (↑J k) i))) ≤
    ε

tactic: refine' div_le_div_of_le_left εpos.le (hvol_pos _)
  (prod_le_prod (fun j _ => _) fun j _ => _)
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
H :
  Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
ε : ℝ
εpos : 0 < ε
hvol_pos : ∀ (J : Box (Fin n)), 0 < ∏ j : Fin n, (Box.upper J j - Box.lower J j)
δ : ℝ
δpos : δ > 0
hδ :
  ∀ (x : Fin (n + 1) → ℝ),
    x ∈ ↑Box.Icc I →
      ∀ (y : Fin (n + 1) → ℝ),
        y ∈ ↑Box.Icc I →
          dist x y ≤ δ → dist (f x) (f y) ≤ ε / ∏ j : Fin n, (Box.upper (Box.face I i) j - Box.lower (Box.face I i) j)
k : ℕ
hk : dist (c k) d < δ
Hsub : ↑Box.Icc (Box.face (↑J k) i) ⊆ ↑Box.Icc (Box.face I i)
⊢ ε / ∏ j : Fin n, (Box.upper (Box.face I i) j - Box.lower (Box.face I i) j) ≤
    ε / ∏ j : Fin n, (Box.upper (Box.face (↑J k) i) j - Box.lower (Box.face (↑J k) i) j)

tactic: exacts [sub_nonneg.2 (Box.lower_le_upper _ _),
  sub_le_sub ((hJ_sub' _ (J _).upper_mem_Icc).2 _) ((hJ_sub' _ (J _).lower_mem_Icc).1 _)]
state_before: case refine'_1
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
H :
  Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
ε : ℝ
εpos : 0 < ε
hvol_pos : ∀ (J : Box (Fin n)), 0 < ∏ j : Fin n, (Box.upper J j - Box.lower J j)
δ : ℝ
δpos : δ > 0
hδ :
  ∀ (x : Fin (n + 1) → ℝ),
    x ∈ ↑Box.Icc I →
      ∀ (y : Fin (n + 1) → ℝ),
        y ∈ ↑Box.Icc I →
          dist x y ≤ δ → dist (f x) (f y) ≤ ε / ∏ j : Fin n, (Box.upper (Box.face I i) j - Box.lower (Box.face I i) j)
k : ℕ
hk : dist (c k) d < δ
Hsub : ↑Box.Icc (Box.face (↑J k) i) ⊆ ↑Box.Icc (Box.face I i)
j : Fin n
x✝ : j ∈ Finset.univ
⊢ 0 ≤ Box.upper (Box.face (↑J k) i) j - Box.lower (Box.face (↑J k) i) j

case refine'_2
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hc : ContinuousOn f (↑Box.Icc I)
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Ioo I \ s → HasFDerivAt f (f' x) x
Hi : IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc I)
J : ℕ →o Box (Fin (n + 1))
hJ_sub : ∀ (n_1 : ℕ), ↑Box.Icc (↑J n_1) ⊆ ↑Box.Ioo I
hJl : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.lower ∘ ↑J) i x) atTop (𝓝 (Box.lower I x))
hJu : ∀ (x : Fin (n + 1)), Tendsto (fun i => (Box.upper ∘ ↑J) i x) atTop (𝓝 (Box.upper I x))
hJ_sub' : ∀ (k : ℕ), ↑Box.Icc (↑J k) ⊆ ↑Box.Icc I
hJ_le : ∀ (k : ℕ), ↑J k ≤ I
HcJ : ∀ (k : ℕ), ContinuousOn f (↑Box.Icc (↑J k))
HdJ : ∀ (k : ℕ) (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc (↑J k) \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc (↑J k)) x
HiJ : ∀ (k : ℕ), IntegrableOn (fun x => ∑ i : Fin (n + 1), ↑(f' x) (e i) i) (↑Box.Icc (↑J k))
HJ_eq :
  ∀ (k : ℕ),
    (∫ (x : Fin (n + 1) → ℝ) in ↑Box.Icc (↑J k), ∑ i : Fin (n + 1), ↑(f' x) (e i) i) =
      ∑ i : Fin (n + 1),
        ((∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.upper (↑J k) i) x) i) -
          ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i (Box.lower (↑J k) i) x) i)
i : Fin (n + 1)
c : ℕ → ℝ
d : ℝ
hc : ∀ (k : ℕ), c k ∈ Set.Icc (Box.lower I i) (Box.upper I i)
hcd : Tendsto c atTop (𝓝 d)
hd : d ∈ Set.Icc (Box.lower I i) (Box.upper I i)
Hic : ∀ (k : ℕ), IntegrableOn (fun x => f (Fin.insertNth i (c k) x) i) (↑Box.Icc (Box.face I i))
Hid : IntegrableOn (fun x => f (Fin.insertNth i d x) i) (↑Box.Icc (Box.face I i))
H :
  Tendsto (fun k => ∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face (↑J k) i), f (Fin.insertNth i d x) i) atTop
    (𝓝 (∫ (x : Fin n → ℝ) in ↑Box.Icc (Box.face I i), f (Fin.insertNth i d x) i))
ε : ℝ
εpos : 0 < ε
hvol_pos : ∀ (J : Box (Fin n)), 0 < ∏ j : Fin n, (Box.upper J j - Box.lower J j)
δ : ℝ
δpos : δ > 0
hδ :
  ∀ (x : Fin (n + 1) → ℝ),
    x ∈ ↑Box.Icc I →
      ∀ (y : Fin (n + 1) → ℝ),
        y ∈ ↑Box.Icc I →
          dist x y ≤ δ → dist (f x) (f y) ≤ ε / ∏ j : Fin n, (Box.upper (Box.face I i) j - Box.lower (Box.face I i) j)
k : ℕ
hk : dist (c k) d < δ
Hsub : ↑Box.Icc (Box.face (↑J k) i) ⊆ ↑Box.Icc (Box.face I i)
j : Fin n
x✝ : j ∈ Finset.univ
⊢ Box.upper (Box.face (↑J k) i) j - Box.lower (Box.face (↑J k) i) j ≤
    Box.upper (Box.face I i) j - Box.lower (Box.face I i) j