-- File: FoML/FoML/BoundedDifference.lean
Theorem statement:
theorem extracted_formal_statement_58.{w, v, u} {Ω : Type u} [inst : MeasurableSpace Ω] {Z : Type w} {n : ℕ} {ι : Type v}
  {f : ι → Z → ℝ} {μ : Measure Ω} [inst_1 : Nonempty ι] [inst_2 : IsProbabilityMeasure μ] (hn : 0 < n) (X : Ω → Z)
  (hf : ∀ (i : ι), Measurable (f i ∘ X)) {b : ℝ} (hb : 0 ≤ b) (hf' : ∀ (i : ι) (z : Z), |f i z| ≤ b) (i : Fin n)
  (x : Fin n → Z) (x' : Z) :
  let g := fun i => (↑n)⁻¹ * ∑ k, f i (x k) - ∫ (x : Ω), f i (X x) ∂μ;
  let h := fun i_1 => (↑n)⁻¹ * ∑ k, f i_1 (Function.update x i x' k) - ∫ (x : Ω), f i_1 (X x) ∂μ;
  (∀ (a : ι), |∫ (x : Ω), f a (X x) ∂μ| ≤ b) →
    (∀ (j : ι), |g j - h j| ≤ (↑n)⁻¹ * 2 * b) →
      (⨆ i, |g i|) - ⨆ i_1, |h i_1| ≤ (↑n)⁻¹ * 2 * b →
        ∀ (z : ι),
          |(↑n)⁻¹ * ∑ k, f z (Function.update x i x' k)| = (↑n)⁻¹ * |∑ k, f z (Function.update x i x' k)| →
            |(↑n)⁻¹| * |∑ k, f z (Function.update x i x' k)| = (↑n)⁻¹ * |∑ k, f z (Function.update x i x' k)| := sorry

Tactic state before:
Ω : Type u
inst✝² : MeasurableSpace Ω
Z : Type w
n : ℕ
ι : Type v
f : ι → Z → ℝ
μ : Measure Ω
inst✝¹ : Nonempty ι
inst✝ : IsProbabilityMeasure μ
hn : 0 < n
X : Ω → Z
hf : ∀ (i : ι), Measurable (f i ∘ X)
b : ℝ
hb : 0 ≤ b
hf' : ∀ (i : ι) (z : Z), |f i z| ≤ b
i : Fin n
x : Fin n → Z
x' : Z
g : ι → ℝ := fun i => (↑n)⁻¹ * ∑ k, f i (x k) - ∫ (x : Ω), f i (X x) ∂μ
h : ι → ℝ := fun i_1 => (↑n)⁻¹ * ∑ k, f i_1 (Function.update x i x' k) - ∫ (x : Ω), f i_1 (X x) ∂μ
s' : ∀ (a : ι), |∫ (x : Ω), f a (X x) ∂μ| ≤ b
p''' : ∀ (j : ι), |g j - h j| ≤ (↑n)⁻¹ * 2 * b
p : (⨆ i, |g i|) - ⨆ i_1, |h i_1| ≤ (↑n)⁻¹ * 2 * b
z : ι
⊢ |(↑n)⁻¹ * ∑ k, f z (Function.update x i x' k)| = (↑n)⁻¹ * |∑ k, f z (Function.update x i x' k)|

Tactic: rw [abs_mul]

Tactic state after:
[Ω : Type u
 inst✝² : MeasurableSpace Ω
 Z : Type w
 n : ℕ
 ι : Type v
 f : ι → Z → ℝ
 μ : Measure Ω
 inst✝¹ : Nonempty ι
 inst✝ : IsProbabilityMeasure μ
 hn : 0 < n
 X : Ω → Z
 hf : ∀ (i : ι), Measurable (f i ∘ X)
 b : ℝ
 hb : 0 ≤ b
 hf' : ∀ (i : ι) (z : Z), |f i z| ≤ b
 i : Fin n
 x : Fin n → Z
 x' : Z
 g : ι → ℝ := fun i => (↑n)⁻¹ * ∑ k, f i (x k) - ∫ (x : Ω), f i (X x) ∂μ
 h : ι → ℝ := fun i_1 => (↑n)⁻¹ * ∑ k, f i_1 (Function.update x i x' k) - ∫ (x : Ω), f i_1 (X x) ∂μ
 s' : ∀ (a : ι), |∫ (x : Ω), f a (X x) ∂μ| ≤ b
 p''' : ∀ (j : ι), |g j - h j| ≤ (↑n)⁻¹ * 2 * b
 p : (⨆ i, |g i|) - ⨆ i_1, |h i_1| ≤ (↑n)⁻¹ * 2 * b
 z : ι
 ⊢ |(↑n)⁻¹| * |∑ k, f z (Function.update x i x' k)| = (↑n)⁻¹ * |∑ k, f z (Function.update x i x' k)|]

Premises used:
abs_mul : ∀ {α : Type u_1} [inst : LinearOrderedRing α] (a b : α), |a * b| = |a| * |b|