-- Module: Mathlib.MeasureTheory.Integral.DivergenceTheorem
Goal:
E : Type u
inst : NormedAddCommGroup E
inst_1 : NormedSpace ℝ E
n : ℕ
I : Box (Fin (n + 1))
f : (Fin (n + 1) → ℝ) → Fin (n + 1) → E
f' : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) →L[ℝ] Fin (n + 1) → E
s : Set (Fin (n + 1) → ℝ)
hs : s.Countable
Hc :
  ∀ (i : Fin (n + 1)),
    ContinuousOn.{0, u} (Y := E) (fun (y : Fin (n + 1) → ℝ) ↦ f y i)
      ((Box.Icc : (a : Box (Fin (n + 1))) → Set (Fin (n + 1) → ℝ)) I)
Hd :
  ∀ (x : Fin (n + 1) → ℝ),
    Membership.mem (γ := Set (Fin (n + 1) → ℝ))
        ((Box.Icc : (a : Box (Fin (n + 1))) → Set (Fin (n + 1) → ℝ)) I \ s : Set (Fin (n + 1) → ℝ)) x →
      HasFDerivWithinAt (𝕜 := ℝ) f (f' x) ((Box.Icc : (a : Box (Fin (n + 1))) → Set (Fin (n + 1) → ℝ)) I) x
Hi :
  IntegrableOn.{0, u} (ε := E) (mα := MeasureSpace.toMeasurableSpace)
    (fun (x : Fin (n + 1) → ℝ) ↦
      ∑ i : Fin (n + 1),
        (f' x : (a : Fin (n + 1) → ℝ) → Fin (n + 1) → E) (Pi.single (M := fun (a : Fin (n + 1)) ↦ ℝ) i 1) i)
    ((Box.Icc : (a : Box (Fin (n + 1))) → Set (Fin (n + 1) → ℝ)) I) volume
hE : CompleteSpace E
A :
  HasIntegral.{0, u, u} (E := E) I ⊥
    (fun (x : Fin (n + 1) → ℝ) ↦
      ∑ i : Fin (n + 1),
        (f' x : (a : Fin (n + 1) → ℝ) → Fin (n + 1) → E) (Pi.single (M := fun (a : Fin (n + 1)) ↦ ℝ) i 1) i)
    (BoxAdditiveMap.toSMul (Measure.toBoxAdditive volume))
    (@integral _ _ _ _ (MeasurableSpace.pi (X := fun (a : Fin (n + 1)) ↦ ℝ))
      (Measure.restrict volume (↑I : Set (Fin (n + 1) → ℝ))) fun (x : Fin (n + 1) → ℝ) ↦
      ∑ i : Fin (n + 1),
        (f' x : (a : Fin (n + 1) → ℝ) → Fin (n + 1) → E) (Pi.single (M := fun (a : Fin (n + 1)) ↦ ℝ) i 1) i)
B :
  HasIntegral.{0, u, u} (E := E) I IntegrationParams.GP
    (fun (x : Fin (n + 1) → ℝ) ↦
      ∑ i : Fin (n + 1),
        (f' x : (a : Fin (n + 1) → ℝ) → Fin (n + 1) → E) (Pi.single (M := fun (a : Fin (n + 1)) ↦ ℝ) i 1) i)
    BoxAdditiveMap.volume
    (∑ i : Fin (n + 1),
      HSub.hSub (α := E)
        (BoxIntegral.integral (I.face i) IntegrationParams.GP
          (fun (x : Fin n → ℝ) ↦ f (i.insertNth (α := fun (a : Fin (n + 1)) ↦ ℝ) (I.upper i) x) i)
          BoxAdditiveMap.volume)
        (BoxIntegral.integral (I.face i) IntegrationParams.GP
          (fun (x : Fin n → ℝ) ↦ f (i.insertNth (α := fun (a : Fin (n + 1)) ↦ ℝ) (I.lower i) x) i)
          BoxAdditiveMap.volume))
refine :
  ∀ (i : Fin (n + 1)),
    Membership.mem (γ := Finset (Fin (n + 1))) Finset.univ i →
      HSub.hSub (α := E)
          (BoxIntegral.integral (I.face i) IntegrationParams.GP
            (fun (x : Fin n → ℝ) ↦ f (i.insertNth (α := fun (a : Fin (n + 1)) ↦ ℝ) (I.upper i) x) i)
            BoxAdditiveMap.volume)
          (BoxIntegral.integral (I.face i) IntegrationParams.GP
            (fun (x : Fin n → ℝ) ↦ f (i.insertNth (α := fun (a : Fin (n + 1)) ↦ ℝ) (I.lower i) x) i)
            BoxAdditiveMap.volume) =
        HSub.hSub (α := E)
          (@integral _ _ _ _ MeasureSpace.toMeasurableSpace (Measure.restrict volume (↑(I.face i) : Set (Fin n → ℝ)))
            fun (x : Fin n → ℝ) ↦ f (i.insertNth (α := fun (a : Fin (n + 1)) ↦ ℝ) (I.upper i) x) i)
          (@integral _ _ _ _ MeasureSpace.toMeasurableSpace (Measure.restrict volume (↑(I.face i) : Set (Fin n → ℝ)))
            fun (x : Fin n → ℝ) ↦ f (i.insertNth (α := fun (a : Fin (n + 1)) ↦ ℝ) (I.lower i) x) i)
⊢ Eq.{u + 1} (α := E)
    (@integral _ _ _ _ MeasureSpace.toMeasurableSpace (Measure.restrict volume (↑I : Set (Fin (n + 1) → ℝ)))
      fun (x : Fin (n + 1) → ℝ) ↦
      ∑ i : Fin (n + 1),
        (f' x : (a : Fin (n + 1) → ℝ) → Fin (n + 1) → E) (Pi.single (M := fun (a : Fin (n + 1)) ↦ ℝ) i 1) i)
    (∑ x : Fin (n + 1),
      HSub.hSub (α := E)
        (@integral _ _ _ _ MeasureSpace.toMeasurableSpace (Measure.restrict volume (↑(I.face x) : Set (Fin n → ℝ)))
          fun (x_1 : Fin n → ℝ) ↦ f (x.insertNth (α := fun (a : Fin (n + 1)) ↦ ℝ) (I.upper x) x_1) x)
        (@integral _ _ _ _ MeasureSpace.toMeasurableSpace (Measure.restrict volume (↑(I.face x) : Set (Fin n → ℝ)))
          fun (x_1 : Fin n → ℝ) ↦ f (x.insertNth (α := fun (a : Fin (n + 1)) ↦ ℝ) (I.lower x) x_1) x))

Tactic:
refine (A.unique B).trans (sum_congr rfl fun i _ => ?_)

Premises used: BoxIntegral.HasIntegral.unique, Finset.sum_congr, rfl, Eq.trans