Theorem: BoxIntegral.hasIntegral_GP_pderiv
File: Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean

tactic: have Hc : ContinuousOn f (Box.Icc I) := fun x hx ↦ by
  by_cases hxs : x ∈ s
  exacts [Hs x hxs, (Hd x ⟨hx, hxs⟩).continuousWithinAt]
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
⊢ HasIntegral I GP (fun x => ↑(f' x) (Pi.single i 1)) BoxAdditiveMap.volume
    (integral (Box.face I i) GP (fun x => f (Fin.insertNth i (Box.upper I i) x)) BoxAdditiveMap.volume -
      integral (Box.face I i) GP (fun x => f (Fin.insertNth i (Box.lower I i) x)) BoxAdditiveMap.volume)

tactic: set fI : ℝ → Box (Fin n) → E := fun y J =>
  integral.{0, u, u} J GP (fun x => f (i.insertNth y x)) BoxAdditiveMap.volume
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
⊢ HasIntegral I GP (fun x => ↑(f' x) (Pi.single i 1)) BoxAdditiveMap.volume
    (integral (Box.face I i) GP (fun x => f (Fin.insertNth i (Box.upper I i) x)) BoxAdditiveMap.volume -
      integral (Box.face I i) GP (fun x => f (Fin.insertNth i (Box.lower I i) x)) BoxAdditiveMap.volume)

tactic: set fb : Icc (I.lower i) (I.upper i) → Fin n →ᵇᵃ[↑(I.face i)] E := fun x =>
  (integrable_of_continuousOn GP (Box.continuousOn_face_Icc Hc x.2) volume).toBoxAdditive
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
⊢ HasIntegral I GP (fun x => ↑(f' x) (Pi.single i 1)) BoxAdditiveMap.volume
    (integral (Box.face I i) GP (fun x => f (Fin.insertNth i (Box.upper I i) x)) BoxAdditiveMap.volume -
      integral (Box.face I i) GP (fun x => f (Fin.insertNth i (Box.lower I i) x)) BoxAdditiveMap.volume)

tactic: set F : Fin (n + 1) →ᵇᵃ[I] E := BoxAdditiveMap.upperSubLower I i fI fb fun x hx J => rfl
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
⊢ HasIntegral I GP (fun x => ↑(f' x) (Pi.single i 1)) BoxAdditiveMap.volume
    (integral (Box.face I i) GP (fun x => f (Fin.insertNth i (Box.upper I i) x)) BoxAdditiveMap.volume -
      integral (Box.face I i) GP (fun x => f (Fin.insertNth i (Box.lower I i) x)) BoxAdditiveMap.volume)

tactic: change HasIntegral I GP (fun x => f' x (Pi.single i 1)) _ (F I)
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
⊢ HasIntegral I GP (fun x => ↑(f' x) (Pi.single i 1)) BoxAdditiveMap.volume
    (integral (Box.face I i) GP (fun x => f (Fin.insertNth i (Box.upper I i) x)) BoxAdditiveMap.volume -
      integral (Box.face I i) GP (fun x => f (Fin.insertNth i (Box.lower I i) x)) BoxAdditiveMap.volume)

tactic: refine' HasIntegral.of_le_Henstock_of_forall_isLittleO gp_le _ _ _ s hs _ _
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
⊢ HasIntegral I GP (fun x => ↑(f' x) (Pi.single i 1)) BoxAdditiveMap.volume (↑F I)

tactic: by_cases hxs : x ∈ s
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I
⊢ ContinuousWithinAt f (↑Box.Icc I) x

tactic: exacts [Hs x hxs, (Hd x ⟨hx, hxs⟩).continuousWithinAt]
state_before: case pos
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I
hxs : x ∈ s
⊢ ContinuousWithinAt f (↑Box.Icc I) x

case neg
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I
hxs : ¬x ∈ s
⊢ ContinuousWithinAt f (↑Box.Icc I) x

tactic: exact (volume : Measure (Fin (n + 1) → ℝ)).toBoxAdditive.restrict _ le_top
state_before: case refine'_1
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
⊢ Fin (n + 1) →ᵇᵃ[↑I] ℝ

tactic: exact fun J => ENNReal.toReal_nonneg
state_before: case refine'_2
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
⊢ ∀ (J : Box (Fin (n + 1))), 0 ≤ ↑(BoxAdditiveMap.restrict (Measure.toBoxAdditive volume) ↑I (_ : ↑I ≤ ⊤)) J

tactic: intro c x hx ε ε0
state_before: case refine'_3
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
⊢ ∀ (c : ℝ≥0) (x : Fin (n + 1) → ℝ),
    x ∈ ↑Box.Icc I ∩ s →
      ∀ (ε : ℝ),
        ε > 0 →
          ∃ δ,
            δ > 0 ∧
              ∀ (J : Box (Fin (n + 1))),
                J ≤ I →
                  ↑Box.Icc J ⊆ closedBall x δ →
                    x ∈ ↑Box.Icc J →
                      (GP.bDistortion = true → Box.distortion J ≤ c) →
                        dist (↑(↑BoxAdditiveMap.volume J) (↑(f' x) (Pi.single i 1))) (↑F J) ≤ ε

tactic: rcases this.exists with ⟨δ, ⟨hδ0, hδ12⟩, hdfδ, hδ⟩
state_before: case refine'_3
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
⊢ ∃ δ,
    δ > 0 ∧
      ∀ (J : Box (Fin (n + 1))),
        J ≤ I →
          ↑Box.Icc J ⊆ closedBall x δ →
            x ∈ ↑Box.Icc J →
              (GP.bDistortion = true → Box.distortion J ≤ c) →
                dist (↑(↑BoxAdditiveMap.volume J) (↑(f' x) (Pi.single i 1))) (↑F J) ≤ ε

tactic: refine' ⟨δ, hδ0, fun J hJI hJδ _ _ => add_halves ε ▸ _⟩
state_before: case refine'_3.intro.intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
⊢ ∃ δ,
    δ > 0 ∧
      ∀ (J : Box (Fin (n + 1))),
        J ≤ I →
          ↑Box.Icc J ⊆ closedBall x δ →
            x ∈ ↑Box.Icc J →
              (GP.bDistortion = true → Box.distortion J ≤ c) →
                dist (↑(↑BoxAdditiveMap.volume J) (↑(f' x) (Pi.single i 1))) (↑F J) ≤ ε

tactic: have Hl : J.lower i ∈ Icc (J.lower i) (J.upper i) := Set.left_mem_Icc.2 (J.lower_le_upper i)
state_before: case refine'_3.intro.intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝¹ : x ∈ ↑Box.Icc J
x✝ : GP.bDistortion = true → Box.distortion J ≤ c
⊢ dist (↑(↑BoxAdditiveMap.volume J) (↑(f' x) (Pi.single i 1))) (↑F J) ≤ ε / 2 + ε / 2

tactic: have Hu : J.upper i ∈ Icc (J.lower i) (J.upper i) := Set.right_mem_Icc.2 (J.lower_le_upper i)
state_before: case refine'_3.intro.intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝¹ : x ∈ ↑Box.Icc J
x✝ : GP.bDistortion = true → Box.distortion J ≤ c
Hl : Box.lower J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
⊢ dist (↑(↑BoxAdditiveMap.volume J) (↑(f' x) (Pi.single i 1))) (↑F J) ≤ ε / 2 + ε / 2

tactic: have Hi : ∀ x ∈ Icc (J.lower i) (J.upper i),
    Integrable.{0, u, u} (J.face i) GP (fun y => f (i.insertNth x y))
      BoxAdditiveMap.volume := fun x hx =>
  integrable_of_continuousOn _ (Box.continuousOn_face_Icc (Hc.mono <| Box.le_iff_Icc.1 hJI) hx)
    volume
state_before: case refine'_3.intro.intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝¹ : x ∈ ↑Box.Icc J
x✝ : GP.bDistortion = true → Box.distortion J ≤ c
Hl : Box.lower J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hu : Box.upper J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
⊢ dist (↑(↑BoxAdditiveMap.volume J) (↑(f' x) (Pi.single i 1))) (↑F J) ≤ ε / 2 + ε / 2

tactic: have hJδ' : Box.Icc J ⊆ closedBall x δ ∩ (Box.Icc I) := subset_inter hJδ (Box.le_iff_Icc.1 hJI)
state_before: case refine'_3.intro.intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝¹ : x ∈ ↑Box.Icc J
x✝ : GP.bDistortion = true → Box.distortion J ≤ c
Hl : Box.lower J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hu : Box.upper J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hi :
  ∀ (x : ℝ),
    x ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      Integrable (Box.face J i) GP (fun y => f (Fin.insertNth i x y)) BoxAdditiveMap.volume
⊢ dist (↑(↑BoxAdditiveMap.volume J) (↑(f' x) (Pi.single i 1))) (↑F J) ≤ ε / 2 + ε / 2

tactic: have Hmaps : ∀ z ∈ Icc (J.lower i) (J.upper i),
    MapsTo (i.insertNth z) (Box.Icc (J.face i)) (closedBall x δ ∩ (Box.Icc I)) := fun z hz =>
  (J.mapsTo_insertNth_face_Icc hz).mono Subset.rfl hJδ'
state_before: case refine'_3.intro.intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝¹ : x ∈ ↑Box.Icc J
x✝ : GP.bDistortion = true → Box.distortion J ≤ c
Hl : Box.lower J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hu : Box.upper J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hi :
  ∀ (x : ℝ),
    x ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      Integrable (Box.face J i) GP (fun y => f (Fin.insertNth i x y)) BoxAdditiveMap.volume
hJδ' : ↑Box.Icc J ⊆ closedBall x δ ∩ ↑Box.Icc I
⊢ dist (↑(↑BoxAdditiveMap.volume J) (↑(f' x) (Pi.single i 1))) (↑F J) ≤ ε / 2 + ε / 2

tactic: simp only [dist_eq_norm]
state_before: case refine'_3.intro.intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝¹ : x ∈ ↑Box.Icc J
x✝ : GP.bDistortion = true → Box.distortion J ≤ c
Hl : Box.lower J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hu : Box.upper J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hi :
  ∀ (x : ℝ),
    x ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      Integrable (Box.face J i) GP (fun y => f (Fin.insertNth i x y)) BoxAdditiveMap.volume
hJδ' : ↑Box.Icc J ⊆ closedBall x δ ∩ ↑Box.Icc I
Hmaps :
  ∀ (z : ℝ),
    z ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      MapsTo (Fin.insertNth i z) (↑Box.Icc (Box.face J i)) (closedBall x δ ∩ ↑Box.Icc I)
⊢ dist (↑(↑BoxAdditiveMap.volume J) (↑(f' x) (Pi.single i 1))) (↑F J) ≤ ε / 2 + ε / 2

tactic: dsimp
state_before: case refine'_3.intro.intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝¹ : x ∈ ↑Box.Icc J
x✝ : GP.bDistortion = true → Box.distortion J ≤ c
Hl : Box.lower J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hu : Box.upper J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hi :
  ∀ (x : ℝ),
    x ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      Integrable (Box.face J i) GP (fun y => f (Fin.insertNth i x y)) BoxAdditiveMap.volume
hJδ' : ↑Box.Icc J ⊆ closedBall x δ ∩ ↑Box.Icc I
Hmaps :
  ∀ (z : ℝ),
    z ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      MapsTo (Fin.insertNth i z) (↑Box.Icc (Box.face J i)) (closedBall x δ ∩ ↑Box.Icc I)
⊢ ‖↑(↑BoxAdditiveMap.volume J) (↑(f' x) (Pi.single i 1)) -
        ↑(BoxAdditiveMap.upperSubLower I i
              (fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume)
              (fun x =>
                Integrable.toBoxAdditive
                  (_ :
                    Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x)
                      (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume))))
              (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J))
          J‖ ≤
    ε / 2 + ε / 2

tactic: rw [← integral_sub (Hi _ Hu) (Hi _ Hl)]
state_before: case refine'_3.intro.intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝¹ : x ∈ ↑Box.Icc J
x✝ : GP.bDistortion = true → Box.distortion J ≤ c
Hl : Box.lower J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hu : Box.upper J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hi :
  ∀ (x : ℝ),
    x ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      Integrable (Box.face J i) GP (fun y => f (Fin.insertNth i x y)) BoxAdditiveMap.volume
hJδ' : ↑Box.Icc J ⊆ closedBall x δ ∩ ↑Box.Icc I
Hmaps :
  ∀ (z : ℝ),
    z ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      MapsTo (Fin.insertNth i z) (↑Box.Icc (Box.face J i)) (closedBall x δ ∩ ↑Box.Icc I)
⊢ ‖↑(↑BoxAdditiveMap.volume J) (↑(f' x) (Pi.single i 1)) -
        (integral (Box.face J i) GP (fun x => f (Fin.insertNth i (Box.upper J i) x)) BoxAdditiveMap.volume -
          integral (Box.face J i) GP (fun x => f (Fin.insertNth i (Box.lower J i) x)) BoxAdditiveMap.volume)‖ ≤
    ε / 2 + ε / 2

tactic: refine' (norm_sub_le _ _).trans (add_le_add _ _)
state_before: case refine'_3.intro.intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝¹ : x ∈ ↑Box.Icc J
x✝ : GP.bDistortion = true → Box.distortion J ≤ c
Hl : Box.lower J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hu : Box.upper J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hi :
  ∀ (x : ℝ),
    x ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      Integrable (Box.face J i) GP (fun y => f (Fin.insertNth i x y)) BoxAdditiveMap.volume
hJδ' : ↑Box.Icc J ⊆ closedBall x δ ∩ ↑Box.Icc I
Hmaps :
  ∀ (z : ℝ),
    z ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      MapsTo (Fin.insertNth i z) (↑Box.Icc (Box.face J i)) (closedBall x δ ∩ ↑Box.Icc I)
⊢ ‖↑(↑BoxAdditiveMap.volume J) (↑(f' x) (Pi.single i 1)) -
        integral (Box.face J i) GP
          ((fun y => f (Fin.insertNth i (Box.upper J i) y)) - fun y => f (Fin.insertNth i (Box.lower J i) y))
          BoxAdditiveMap.volume‖ ≤
    ε / 2 + ε / 2

tactic: refine' .and _ (.and _ _)
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
⊢ ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2

tactic: exact Ioc_mem_nhdsWithin_Ioi ⟨le_rfl, one_half_pos⟩
state_before: case refine'_1
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
⊢ ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0, δ ∈ Set.Ioc 0 (1 / 2)

tactic: rcases ((nhdsWithin_hasBasis nhds_basis_closedBall _).tendsto_iff nhds_basis_closedBall).1
    (Hs x hx.2) _ (half_pos <| half_pos ε0) with ⟨δ₁, δ₁0, hδ₁⟩
state_before: case refine'_2
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
⊢ ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    ∀ (y₁ : Fin (n + 1) → ℝ),
      y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
        ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2

tactic: filter_upwards [Ioc_mem_nhdsWithin_Ioi ⟨le_rfl, δ₁0⟩] with δ hδ y₁ hy₁ y₂ hy₂
state_before: case refine'_2.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
δ₁ : ℝ
δ₁0 : 0 < δ₁
hδ₁ : ∀ (x_1 : Fin (n + 1) → ℝ), x_1 ∈ closedBall x δ₁ ∩ ↑Box.Icc I → f x_1 ∈ closedBall (f x) (ε / 2 / 2)
⊢ ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    ∀ (y₁ : Fin (n + 1) → ℝ),
      y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
        ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2

tactic: have : closedBall x δ ∩ (Box.Icc I) ⊆ closedBall x δ₁ ∩ (Box.Icc I) :=
  inter_subset_inter_left _ (closedBall_subset_closedBall hδ.2)
state_before: case h
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
δ₁ : ℝ
δ₁0 : 0 < δ₁
hδ₁ : ∀ (x_1 : Fin (n + 1) → ℝ), x_1 ∈ closedBall x δ₁ ∩ ↑Box.Icc I → f x_1 ∈ closedBall (f x) (ε / 2 / 2)
δ : ℝ
hδ : δ ∈ Set.Ioc 0 δ₁
y₁ : Fin (n + 1) → ℝ
hy₁ : y₁ ∈ closedBall x δ ∩ ↑Box.Icc I
y₂ : Fin (n + 1) → ℝ
hy₂ : y₂ ∈ closedBall x δ ∩ ↑Box.Icc I
⊢ ‖f y₁ - f y₂‖ ≤ ε / 2

tactic: rw [← dist_eq_norm]
state_before: case h
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
δ₁ : ℝ
δ₁0 : 0 < δ₁
hδ₁ : ∀ (x_1 : Fin (n + 1) → ℝ), x_1 ∈ closedBall x δ₁ ∩ ↑Box.Icc I → f x_1 ∈ closedBall (f x) (ε / 2 / 2)
δ : ℝ
hδ : δ ∈ Set.Ioc 0 δ₁
y₁ : Fin (n + 1) → ℝ
hy₁ : y₁ ∈ closedBall x δ ∩ ↑Box.Icc I
y₂ : Fin (n + 1) → ℝ
hy₂ : y₂ ∈ closedBall x δ ∩ ↑Box.Icc I
this : closedBall x δ ∩ ↑Box.Icc I ⊆ closedBall x δ₁ ∩ ↑Box.Icc I
⊢ ‖f y₁ - f y₂‖ ≤ ε / 2

tactic: calc
  dist (f y₁) (f y₂) ≤ dist (f y₁) (f x) + dist (f y₂) (f x) := dist_triangle_right _ _ _
  _ ≤ ε / 2 / 2 + ε / 2 / 2 := (add_le_add (hδ₁ _ <| this hy₁) (hδ₁ _ <| this hy₂))
  _ = ε / 2 := add_halves _
state_before: case h
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
δ₁ : ℝ
δ₁0 : 0 < δ₁
hδ₁ : ∀ (x_1 : Fin (n + 1) → ℝ), x_1 ∈ closedBall x δ₁ ∩ ↑Box.Icc I → f x_1 ∈ closedBall (f x) (ε / 2 / 2)
δ : ℝ
hδ : δ ∈ Set.Ioc 0 δ₁
y₁ : Fin (n + 1) → ℝ
hy₁ : y₁ ∈ closedBall x δ ∩ ↑Box.Icc I
y₂ : Fin (n + 1) → ℝ
hy₂ : y₂ ∈ closedBall x δ ∩ ↑Box.Icc I
this : closedBall x δ ∩ ↑Box.Icc I ⊆ closedBall x δ₁ ∩ ↑Box.Icc I
⊢ dist (f y₁) (f y₂) ≤ ε / 2

tactic: have : ContinuousWithinAt (fun δ : ℝ => (2 * δ) ^ (n + 1) * ‖f' x (Pi.single i 1)‖)
    (Ioi 0) 0 := ((continuousWithinAt_id.const_mul _).pow _).mul_const _
state_before: case refine'_3
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
⊢ ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0, (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2

tactic: refine' this.eventually (ge_mem_nhds _)
state_before: case refine'_3
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this : ContinuousWithinAt (fun δ => (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖) (Set.Ioi 0) 0
⊢ ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0, (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2

tactic: simpa using half_pos ε0
state_before: case refine'_3
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this : ContinuousWithinAt (fun δ => (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖) (Set.Ioi 0) 0
⊢ (fun δ => (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖) 0 < ε / 2

tactic: simp_rw [BoxAdditiveMap.volume_apply, norm_smul, Real.norm_eq_abs, abs_prod]
state_before: case refine'_3.intro.intro.intro.intro.refine'_1
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝¹ : x ∈ ↑Box.Icc J
x✝ : GP.bDistortion = true → Box.distortion J ≤ c
Hl : Box.lower J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hu : Box.upper J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hi :
  ∀ (x : ℝ),
    x ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      Integrable (Box.face J i) GP (fun y => f (Fin.insertNth i x y)) BoxAdditiveMap.volume
hJδ' : ↑Box.Icc J ⊆ closedBall x δ ∩ ↑Box.Icc I
Hmaps :
  ∀ (z : ℝ),
    z ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      MapsTo (Fin.insertNth i z) (↑Box.Icc (Box.face J i)) (closedBall x δ ∩ ↑Box.Icc I)
⊢ ‖↑(↑BoxAdditiveMap.volume J) (↑(f' x) (Pi.single i 1))‖ ≤ ε / 2

tactic: refine' (mul_le_mul_of_nonneg_right _ <| norm_nonneg _).trans hδ
state_before: case refine'_3.intro.intro.intro.intro.refine'_1
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝¹ : x ∈ ↑Box.Icc J
x✝ : GP.bDistortion = true → Box.distortion J ≤ c
Hl : Box.lower J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hu : Box.upper J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hi :
  ∀ (x : ℝ),
    x ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      Integrable (Box.face J i) GP (fun y => f (Fin.insertNth i x y)) BoxAdditiveMap.volume
hJδ' : ↑Box.Icc J ⊆ closedBall x δ ∩ ↑Box.Icc I
Hmaps :
  ∀ (z : ℝ),
    z ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      MapsTo (Fin.insertNth i z) (↑Box.Icc (Box.face J i)) (closedBall x δ ∩ ↑Box.Icc I)
⊢ (∏ x : Fin (n + 1), abs (Box.upper J x - Box.lower J x)) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2

tactic: have : ∀ j, |J.upper j - J.lower j| ≤ 2 * δ := fun j ↦
  calc
    dist (J.upper j) (J.lower j) ≤ dist J.upper J.lower := dist_le_pi_dist _ _ _
    _ ≤ dist J.upper x + dist J.lower x := (dist_triangle_right _ _ _)
    _ ≤ δ + δ := (add_le_add (hJδ J.upper_mem_Icc) (hJδ J.lower_mem_Icc))
    _ = 2 * δ := (two_mul δ).symm
state_before: case refine'_3.intro.intro.intro.intro.refine'_1
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝¹ : x ∈ ↑Box.Icc J
x✝ : GP.bDistortion = true → Box.distortion J ≤ c
Hl : Box.lower J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hu : Box.upper J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hi :
  ∀ (x : ℝ),
    x ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      Integrable (Box.face J i) GP (fun y => f (Fin.insertNth i x y)) BoxAdditiveMap.volume
hJδ' : ↑Box.Icc J ⊆ closedBall x δ ∩ ↑Box.Icc I
Hmaps :
  ∀ (z : ℝ),
    z ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      MapsTo (Fin.insertNth i z) (↑Box.Icc (Box.face J i)) (closedBall x δ ∩ ↑Box.Icc I)
⊢ ∏ x : Fin (n + 1), abs (Box.upper J x - Box.lower J x) ≤ (2 * δ) ^ (n + 1)

tactic: calc
  (∏ j, |J.upper j - J.lower j|) ≤ ∏ j : Fin (n + 1), 2 * δ :=
    prod_le_prod (fun _ _ => abs_nonneg _) fun j _ => this j
  _ = (2 * δ) ^ (n + 1) := by simp
state_before: case refine'_3.intro.intro.intro.intro.refine'_1
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this✝ :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝¹ : x ∈ ↑Box.Icc J
x✝ : GP.bDistortion = true → Box.distortion J ≤ c
Hl : Box.lower J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hu : Box.upper J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hi :
  ∀ (x : ℝ),
    x ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      Integrable (Box.face J i) GP (fun y => f (Fin.insertNth i x y)) BoxAdditiveMap.volume
hJδ' : ↑Box.Icc J ⊆ closedBall x δ ∩ ↑Box.Icc I
Hmaps :
  ∀ (z : ℝ),
    z ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      MapsTo (Fin.insertNth i z) (↑Box.Icc (Box.face J i)) (closedBall x δ ∩ ↑Box.Icc I)
this : ∀ (j : Fin (n + 1)), abs (Box.upper J j - Box.lower J j) ≤ 2 * δ
⊢ ∏ x : Fin (n + 1), abs (Box.upper J x - Box.lower J x) ≤ (2 * δ) ^ (n + 1)

tactic: simp
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this✝ :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝¹ : x ∈ ↑Box.Icc J
x✝ : GP.bDistortion = true → Box.distortion J ≤ c
Hl : Box.lower J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hu : Box.upper J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hi :
  ∀ (x : ℝ),
    x ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      Integrable (Box.face J i) GP (fun y => f (Fin.insertNth i x y)) BoxAdditiveMap.volume
hJδ' : ↑Box.Icc J ⊆ closedBall x δ ∩ ↑Box.Icc I
Hmaps :
  ∀ (z : ℝ),
    z ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      MapsTo (Fin.insertNth i z) (↑Box.Icc (Box.face J i)) (closedBall x δ ∩ ↑Box.Icc I)
this : ∀ (j : Fin (n + 1)), abs (Box.upper J j - Box.lower J j) ≤ 2 * δ
⊢ ∏ j : Fin (n + 1), 2 * δ = (2 * δ) ^ (n + 1)

tactic: refine' (norm_integral_le_of_le_const (fun y hy => hdfδ _ (Hmaps _ Hu hy) _
  (Hmaps _ Hl hy)) volume).trans _
state_before: case refine'_3.intro.intro.intro.intro.refine'_2
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝¹ : x ∈ ↑Box.Icc J
x✝ : GP.bDistortion = true → Box.distortion J ≤ c
Hl : Box.lower J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hu : Box.upper J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hi :
  ∀ (x : ℝ),
    x ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      Integrable (Box.face J i) GP (fun y => f (Fin.insertNth i x y)) BoxAdditiveMap.volume
hJδ' : ↑Box.Icc J ⊆ closedBall x δ ∩ ↑Box.Icc I
Hmaps :
  ∀ (z : ℝ),
    z ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      MapsTo (Fin.insertNth i z) (↑Box.Icc (Box.face J i)) (closedBall x δ ∩ ↑Box.Icc I)
⊢ ‖integral (Box.face J i) GP
        ((fun y => f (Fin.insertNth i (Box.upper J i) y)) - fun y => f (Fin.insertNth i (Box.lower J i) y))
        BoxAdditiveMap.volume‖ ≤
    ε / 2

tactic: refine' (mul_le_mul_of_nonneg_right _ (half_pos ε0).le).trans_eq (one_mul _)
state_before: case refine'_3.intro.intro.intro.intro.refine'_2
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝¹ : x ∈ ↑Box.Icc J
x✝ : GP.bDistortion = true → Box.distortion J ≤ c
Hl : Box.lower J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hu : Box.upper J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hi :
  ∀ (x : ℝ),
    x ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      Integrable (Box.face J i) GP (fun y => f (Fin.insertNth i x y)) BoxAdditiveMap.volume
hJδ' : ↑Box.Icc J ⊆ closedBall x δ ∩ ↑Box.Icc I
Hmaps :
  ∀ (z : ℝ),
    z ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      MapsTo (Fin.insertNth i z) (↑Box.Icc (Box.face J i)) (closedBall x δ ∩ ↑Box.Icc I)
⊢ ENNReal.toReal (↑↑volume ↑(Box.face J i)) * (ε / 2) ≤ ε / 2

tactic: rw [Box.coe_eq_pi, Real.volume_pi_Ioc_toReal (Box.lower_le_upper _)]
state_before: case refine'_3.intro.intro.intro.intro.refine'_2
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝¹ : x ∈ ↑Box.Icc J
x✝ : GP.bDistortion = true → Box.distortion J ≤ c
Hl : Box.lower J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hu : Box.upper J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hi :
  ∀ (x : ℝ),
    x ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      Integrable (Box.face J i) GP (fun y => f (Fin.insertNth i x y)) BoxAdditiveMap.volume
hJδ' : ↑Box.Icc J ⊆ closedBall x δ ∩ ↑Box.Icc I
Hmaps :
  ∀ (z : ℝ),
    z ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      MapsTo (Fin.insertNth i z) (↑Box.Icc (Box.face J i)) (closedBall x δ ∩ ↑Box.Icc I)
⊢ ENNReal.toReal (↑↑volume ↑(Box.face J i)) ≤ 1

tactic: refine' prod_le_one (fun _ _ => sub_nonneg.2 <| Box.lower_le_upper _ _) fun j _ => _
state_before: case refine'_3.intro.intro.intro.intro.refine'_2
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝¹ : x ∈ ↑Box.Icc J
x✝ : GP.bDistortion = true → Box.distortion J ≤ c
Hl : Box.lower J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hu : Box.upper J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hi :
  ∀ (x : ℝ),
    x ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      Integrable (Box.face J i) GP (fun y => f (Fin.insertNth i x y)) BoxAdditiveMap.volume
hJδ' : ↑Box.Icc J ⊆ closedBall x δ ∩ ↑Box.Icc I
Hmaps :
  ∀ (z : ℝ),
    z ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      MapsTo (Fin.insertNth i z) (↑Box.Icc (Box.face J i)) (closedBall x δ ∩ ↑Box.Icc I)
⊢ ∏ i_1 : Fin n, (Box.upper (Box.face J i) i_1 - Box.lower (Box.face J i) i_1) ≤ 1

tactic: calc
  J.upper (i.succAbove j) - J.lower (i.succAbove j) ≤
      dist (J.upper (i.succAbove j)) (J.lower (i.succAbove j)) :=
    le_abs_self _
  _ ≤ dist J.upper J.lower := (dist_le_pi_dist J.upper J.lower (i.succAbove j))
  _ ≤ dist J.upper x + dist J.lower x := (dist_triangle_right _ _ _)
  _ ≤ δ + δ := (add_le_add (hJδ J.upper_mem_Icc) (hJδ J.lower_mem_Icc))
  _ ≤ 1 / 2 + 1 / 2 := (add_le_add hδ12 hδ12)
  _ = 1 := add_halves 1
state_before: case refine'_3.intro.intro.intro.intro.refine'_2
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I ∩ s
ε : ℝ
ε0 : ε > 0
this :
  ∀ᶠ (δ : ℝ) in 𝓝[Set.Ioi 0] 0,
    δ ∈ Set.Ioc 0 (1 / 2) ∧
      (∀ (y₁ : Fin (n + 1) → ℝ),
          y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
            ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2) ∧
        (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
δ : ℝ
hδ0 : 0 < δ
hδ12 : δ ≤ 1 / 2
hdfδ :
  ∀ (y₁ : Fin (n + 1) → ℝ),
    y₁ ∈ closedBall x δ ∩ ↑Box.Icc I →
      ∀ (y₂ : Fin (n + 1) → ℝ), y₂ ∈ closedBall x δ ∩ ↑Box.Icc I → ‖f y₁ - f y₂‖ ≤ ε / 2
hδ : (2 * δ) ^ (n + 1) * ‖↑(f' x) (Pi.single i 1)‖ ≤ ε / 2
J : Box (Fin (n + 1))
hJI : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
x✝² : x ∈ ↑Box.Icc J
x✝¹ : GP.bDistortion = true → Box.distortion J ≤ c
Hl : Box.lower J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hu : Box.upper J i ∈ Set.Icc (Box.lower J i) (Box.upper J i)
Hi :
  ∀ (x : ℝ),
    x ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      Integrable (Box.face J i) GP (fun y => f (Fin.insertNth i x y)) BoxAdditiveMap.volume
hJδ' : ↑Box.Icc J ⊆ closedBall x δ ∩ ↑Box.Icc I
Hmaps :
  ∀ (z : ℝ),
    z ∈ Set.Icc (Box.lower J i) (Box.upper J i) →
      MapsTo (Fin.insertNth i z) (↑Box.Icc (Box.face J i)) (closedBall x δ ∩ ↑Box.Icc I)
j : Fin n
x✝ : j ∈ Finset.univ
⊢ Box.upper (Box.face J i) j - Box.lower (Box.face J i) j ≤ 1

tactic: intro c x hx ε ε0
state_before: case refine'_4
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
⊢ ∀ (c : ℝ≥0) (x : Fin (n + 1) → ℝ),
    x ∈ ↑Box.Icc I \ s →
      ∀ (ε : ℝ),
        ε > 0 →
          ∃ δ,
            δ > 0 ∧
              ∀ (J : Box (Fin (n + 1))),
                J ≤ I →
                  ↑Box.Icc J ⊆ closedBall x δ →
                    x ∈ ↑Box.Icc J →
                      (GP.bDistortion = true → Box.distortion J ≤ c) →
                        dist (↑(↑BoxAdditiveMap.volume J) (↑(f' x) (Pi.single i 1))) (↑F J) ≤
                          ε * ↑(BoxAdditiveMap.restrict (Measure.toBoxAdditive volume) ↑I (_ : ↑I ≤ ⊤)) J

tactic: rcases exists_pos_mul_lt ε0 (2 * c) with ⟨ε', ε'0, hlt⟩
state_before: case refine'_4
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I \ s
ε : ℝ
ε0 : ε > 0
⊢ ∃ δ,
    δ > 0 ∧
      ∀ (J : Box (Fin (n + 1))),
        J ≤ I →
          ↑Box.Icc J ⊆ closedBall x δ →
            x ∈ ↑Box.Icc J →
              (GP.bDistortion = true → Box.distortion J ≤ c) →
                dist (↑(↑BoxAdditiveMap.volume J) (↑(f' x) (Pi.single i 1))) (↑F J) ≤
                  ε * ↑(BoxAdditiveMap.restrict (Measure.toBoxAdditive volume) ↑I (_ : ↑I ≤ ⊤)) J

tactic: rcases(nhdsWithin_hasBasis nhds_basis_closedBall _).mem_iff.1 ((Hd x hx).def ε'0) with
  ⟨δ, δ0, Hδ⟩
state_before: case refine'_4.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I \ s
ε : ℝ
ε0 : ε > 0
ε' : ℝ
ε'0 : 0 < ε'
hlt : 2 * ↑c * ε' < ε
⊢ ∃ δ,
    δ > 0 ∧
      ∀ (J : Box (Fin (n + 1))),
        J ≤ I →
          ↑Box.Icc J ⊆ closedBall x δ →
            x ∈ ↑Box.Icc J →
              (GP.bDistortion = true → Box.distortion J ≤ c) →
                dist (↑(↑BoxAdditiveMap.volume J) (↑(f' x) (Pi.single i 1))) (↑F J) ≤
                  ε * ↑(BoxAdditiveMap.restrict (Measure.toBoxAdditive volume) ↑I (_ : ↑I ≤ ⊤)) J

tactic: refine' ⟨δ, δ0, fun J hle hJδ hxJ hJc => _⟩
state_before: case refine'_4.intro.intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I \ s
ε : ℝ
ε0 : ε > 0
ε' : ℝ
ε'0 : 0 < ε'
hlt : 2 * ↑c * ε' < ε
δ : ℝ
δ0 : 0 < δ
Hδ : closedBall x δ ∩ ↑Box.Icc I ⊆ {x_1 | (fun x_2 => ‖f x_2 - f x - ↑(f' x) (x_2 - x)‖ ≤ ε' * ‖x_2 - x‖) x_1}
⊢ ∃ δ,
    δ > 0 ∧
      ∀ (J : Box (Fin (n + 1))),
        J ≤ I →
          ↑Box.Icc J ⊆ closedBall x δ →
            x ∈ ↑Box.Icc J →
              (GP.bDistortion = true → Box.distortion J ≤ c) →
                dist (↑(↑BoxAdditiveMap.volume J) (↑(f' x) (Pi.single i 1))) (↑F J) ≤
                  ε * ↑(BoxAdditiveMap.restrict (Measure.toBoxAdditive volume) ↑I (_ : ↑I ≤ ⊤)) J

tactic: simp only [BoxAdditiveMap.volume_apply, Box.volume_apply, dist_eq_norm]
state_before: case refine'_4.intro.intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I \ s
ε : ℝ
ε0 : ε > 0
ε' : ℝ
ε'0 : 0 < ε'
hlt : 2 * ↑c * ε' < ε
δ : ℝ
δ0 : 0 < δ
Hδ : closedBall x δ ∩ ↑Box.Icc I ⊆ {x_1 | (fun x_2 => ‖f x_2 - f x - ↑(f' x) (x_2 - x)‖ ≤ ε' * ‖x_2 - x‖) x_1}
J : Box (Fin (n + 1))
hle : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
hxJ : x ∈ ↑Box.Icc J
hJc : GP.bDistortion = true → Box.distortion J ≤ c
⊢ dist (↑(↑BoxAdditiveMap.volume J) (↑(f' x) (Pi.single i 1))) (↑F J) ≤
    ε * ↑(BoxAdditiveMap.restrict (Measure.toBoxAdditive volume) ↑I (_ : ↑I ≤ ⊤)) J

tactic: refine' (norm_volume_sub_integral_face_upper_sub_lower_smul_le _
  (Hc.mono <| Box.le_iff_Icc.1 hle) hxJ ε'0 (fun y hy => Hδ _) (hJc rfl)).trans _
state_before: case refine'_4.intro.intro.intro.intro
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I \ s
ε : ℝ
ε0 : ε > 0
ε' : ℝ
ε'0 : 0 < ε'
hlt : 2 * ↑c * ε' < ε
δ : ℝ
δ0 : 0 < δ
Hδ : closedBall x δ ∩ ↑Box.Icc I ⊆ {x_1 | (fun x_2 => ‖f x_2 - f x - ↑(f' x) (x_2 - x)‖ ≤ ε' * ‖x_2 - x‖) x_1}
J : Box (Fin (n + 1))
hle : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
hxJ : x ∈ ↑Box.Icc J
hJc : GP.bDistortion = true → Box.distortion J ≤ c
⊢ ‖(∏ j : Fin (n + 1), (Box.upper J j - Box.lower J j)) • ↑(f' x) (Pi.single i 1) -
        ↑(BoxAdditiveMap.upperSubLower I i
              (fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume)
              (fun x =>
                Integrable.toBoxAdditive
                  (_ :
                    Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x)
                      (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume))))
              (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J))
          J‖ ≤
    ε * ↑(BoxAdditiveMap.restrict (Measure.toBoxAdditive volume) ↑I (_ : ↑I ≤ ⊤)) J

tactic: exact ⟨hJδ hy, Box.le_iff_Icc.1 hle hy⟩
state_before: case refine'_4.intro.intro.intro.intro.refine'_1
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I \ s
ε : ℝ
ε0 : ε > 0
ε' : ℝ
ε'0 : 0 < ε'
hlt : 2 * ↑c * ε' < ε
δ : ℝ
δ0 : 0 < δ
Hδ : closedBall x δ ∩ ↑Box.Icc I ⊆ {x_1 | (fun x_2 => ‖f x_2 - f x - ↑(f' x) (x_2 - x)‖ ≤ ε' * ‖x_2 - x‖) x_1}
J : Box (Fin (n + 1))
hle : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
hxJ : x ∈ ↑Box.Icc J
hJc : GP.bDistortion = true → Box.distortion J ≤ c
y : Fin (n + 1) → ℝ
hy : y ∈ ↑Box.Icc J
⊢ y ∈ closedBall x δ ∩ ↑Box.Icc I

tactic: rw [mul_right_comm (2 : ℝ), ← Box.volume_apply]
state_before: case refine'_4.intro.intro.intro.intro.refine'_2
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I \ s
ε : ℝ
ε0 : ε > 0
ε' : ℝ
ε'0 : 0 < ε'
hlt : 2 * ↑c * ε' < ε
δ : ℝ
δ0 : 0 < δ
Hδ : closedBall x δ ∩ ↑Box.Icc I ⊆ {x_1 | (fun x_2 => ‖f x_2 - f x - ↑(f' x) (x_2 - x)‖ ≤ ε' * ‖x_2 - x‖) x_1}
J : Box (Fin (n + 1))
hle : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
hxJ : x ∈ ↑Box.Icc J
hJc : GP.bDistortion = true → Box.distortion J ≤ c
⊢ 2 * ε' * ↑c * ∏ j : Fin (n + 1), (Box.upper J j - Box.lower J j) ≤
    ε * ↑(BoxAdditiveMap.restrict (Measure.toBoxAdditive volume) ↑I (_ : ↑I ≤ ⊤)) J

tactic: exact mul_le_mul_of_nonneg_right hlt.le ENNReal.toReal_nonneg
state_before: case refine'_4.intro.intro.intro.intro.refine'_2
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
n : ℕ
inst✝ : CompleteSpace E
I : Box (Fin (n + 1))
i✝ : Fin (n + 1)
f : (Fin (n + 1) → ℝ) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] E
s : Set (Fin (n + 1) → ℝ)
hs : Set.Countable s
Hs : ∀ (x : Fin (n + 1) → ℝ), x ∈ s → ContinuousWithinAt f (↑Box.Icc I) x
Hd : ∀ (x : Fin (n + 1) → ℝ), x ∈ ↑Box.Icc I \ s → HasFDerivWithinAt f (f' x) (↑Box.Icc I) x
i : Fin (n + 1)
Hc : ContinuousOn f (↑Box.Icc I)
fI : ℝ → Box (Fin n) → E := fun y J => integral J GP (fun x => f (Fin.insertNth i y x)) BoxAdditiveMap.volume
fb : ↑(Set.Icc (Box.lower I i) (Box.upper I i)) → Fin n →ᵇᵃ[↑(Box.face I i)] E :=
  fun x =>
    Integrable.toBoxAdditive
      (_ : Integrable (Box.face I i) GP (f ∘ Fin.insertNth i ↑x) (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume)))
F : Fin (n + 1) →ᵇᵃ[↑I] E :=
  BoxAdditiveMap.upperSubLower I i fI fb
    (_ : ∀ (x : ℝ), x ∈ Set.Icc (Box.lower I i) (Box.upper I i) → ∀ (J : Box (Fin n)), fI x J = fI x J)
c : ℝ≥0
x : Fin (n + 1) → ℝ
hx : x ∈ ↑Box.Icc I \ s
ε : ℝ
ε0 : ε > 0
ε' : ℝ
ε'0 : 0 < ε'
hlt : 2 * ↑c * ε' < ε
δ : ℝ
δ0 : 0 < δ
Hδ : closedBall x δ ∩ ↑Box.Icc I ⊆ {x_1 | (fun x_2 => ‖f x_2 - f x - ↑(f' x) (x_2 - x)‖ ≤ ε' * ‖x_2 - x‖) x_1}
J : Box (Fin (n + 1))
hle : J ≤ I
hJδ : ↑Box.Icc J ⊆ closedBall x δ
hxJ : x ∈ ↑Box.Icc J
hJc : GP.bDistortion = true → Box.distortion J ≤ c
⊢ 2 * ↑c * ε' * ↑(Measure.toBoxAdditive volume) J ≤
    ε * ↑(BoxAdditiveMap.restrict (Measure.toBoxAdditive volume) ↑I (_ : ↑I ≤ ⊤)) J