-- File: FoML/FoML/Rademacher.lean
Theorem statement:
theorem extracted_formal_statement_348.{u_1, w, u} {Ω : Type u} [inst : MeasurableSpace Ω] {Z : Type w} {n : ℕ}
  {ι : Type u_1} {f : ι → Z → ℝ} {μ : Measure Ω} [inst_1 : IsProbabilityMeasure μ] {X : Ω → Z} [inst_2 : Nonempty ι]
  [inst_3 : Countable ι] (hf : ∀ (i : ι), Measurable (f i ∘ X)) {b : ℝ} (hf' : ∀ (i : ι) (z : Z), |f i z| ≤ b)
  (h_original_goal :
    ∫ (x : (Fin n → Ω) × (Fin n → Ω)),
        (fun ω => (↑(Fintype.card (Signs n)))⁻¹ * ∑ σ, ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω.2 k))|)
          x ∂(Measure.pi fun x => μ).prod (Measure.pi fun x => μ) =
      ∫ (x : Fin n → Ω),
        (fun ω => (↑(Fintype.card (Signs n)))⁻¹ * ∑ σ, ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω k))|) x ∂Measure.pi fun x => μ) :
  Integrable (fun ω => (↑(Fintype.card (Signs n)))⁻¹ * ∑ σ, ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω.2 k))|)
    ((Measure.pi fun x => μ).prod (Measure.pi fun x => μ)) := sorry

Tactic state before:
case hy
Ω : Type u
inst✝³ : MeasurableSpace Ω
Z : Type w
n : ℕ
ι : Type u_1
f : ι → Z → ℝ
μ : Measure Ω
inst✝² : IsProbabilityMeasure μ
X : Ω → Z
inst✝¹ : Nonempty ι
inst✝ : Countable ι
hf : ∀ (i : ι), Measurable (f i ∘ X)
b : ℝ
hf' : ∀ (i : ι) (z : Z), |f i z| ≤ b
⊢ ∫ (x : (Fin n → Ω) × (Fin n → Ω)),
      (fun ω => (↑(Fintype.card (Signs n)))⁻¹ * ∑ σ, ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω.2 k))|)
        x ∂(Measure.pi fun x => μ).prod (Measure.pi fun x => μ) =
    ∫ (x : Fin n → Ω),
      (fun ω => (↑(Fintype.card (Signs n)))⁻¹ * ∑ σ, ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω k))|) x ∂Measure.pi fun x => μ

Tactic: rw [integral_prod _ _]

Tactic state after:
[case hy
 Ω : Type u
 inst✝³ : MeasurableSpace Ω
 Z : Type w
 n : ℕ
 ι : Type u_1
 f : ι → Z → ℝ
 μ : Measure Ω
 inst✝² : IsProbabilityMeasure μ
 X : Ω → Z
 inst✝¹ : Nonempty ι
 inst✝ : Countable ι
 hf : ∀ (i : ι), Measurable (f i ∘ X)
 b : ℝ
 hf' : ∀ (i : ι) (z : Z), |f i z| ≤ b
 ⊢ (∫ (x : Fin n → Ω),
       ∫ (y : Fin n → Ω),
         (↑(Fintype.card (Signs n)))⁻¹ *
           ∑ σ, ⨆ i, |∑ k, ↑↑(σ k) * f i (X ((x, y).2 k))| ∂Measure.pi fun x => μ ∂Measure.pi fun x => μ) =
     ∫ (x : Fin n → Ω),
       (fun ω => (↑(Fintype.card (Signs n)))⁻¹ * ∑ σ, ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω k))|) x ∂Measure.pi fun x => μ,
 Ω : Type u
 inst✝³ : MeasurableSpace Ω
 Z : Type w
 n : ℕ
 ι : Type u_1
 f : ι → Z → ℝ
 μ : Measure Ω
 inst✝² : IsProbabilityMeasure μ
 X : Ω → Z
 inst✝¹ : Nonempty ι
 inst✝ : Countable ι
 hf : ∀ (i : ι), Measurable (f i ∘ X)
 b : ℝ
 hf' : ∀ (i : ι) (z : Z), |f i z| ≤ b
 ⊢ Integrable (fun ω => (↑(Fintype.card (Signs n)))⁻¹ * ∑ σ, ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω.2 k))|)
     ((Measure.pi fun x => μ).prod (Measure.pi fun x => μ))]

Premises used:
MeasureTheory.integral_prod : ∀ {α : Type u_1} {β : Type u_2} {E : Type u_3} [inst : MeasurableSpace α]
  [inst_4 : MeasurableSpace β] {μ : Measure α} {ν : Measure β} [inst_5 : NormedAddCommGroup E] [inst_6 : SFinite ν]
  [inst_7 : NormedSpace ℝ E] [inst_8 : SFinite μ] (f : α × β → E),
  Integrable f (μ.prod ν) → ∫ (z : α × β), f z ∂μ.prod ν = ∫ (x : α), ∫ (y : β), f (x, y) ∂ν ∂μ