-- File: FoML/FoML/Rademacher.lean
Theorem statement:
theorem extracted_formal_statement_14.{u_1, w, u} {Ω : Type u} {Z : Type w} {n : ℕ} {ι : Type u_1} {f : ι → Z → ℝ}
  [inst : Nonempty ι] {X : Ω → Z} {b : ℝ} (hf' : ∀ (i : ι) (z : Z), |f i z| ≤ b) (ω : Fin n → Ω × Ω)
  (h_original_goal :
    (↑(Fintype.card (Signs n)))⁻¹ * ∑ σ, ⨆ i, |∑ k, ↑↑(σ k) * (f i (X (ω k).1) - f i (X (ω k).2))| ≤
      (↑(Fintype.card (Signs n)))⁻¹ *
        ((∑ σ, ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω k).1)|) + ∑ σ, ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω k).2)|)) :
  0 ≤ (↑(Fintype.card (Signs n)))⁻¹ := sorry

Tactic state before:
Ω : Type u
Z : Type w
n : ℕ
ι : Type u_1
f : ι → Z → ℝ
inst✝ : Nonempty ι
X : Ω → Z
b : ℝ
hf' : ∀ (i : ι) (z : Z), |f i z| ≤ b
ω : Fin n → Ω × Ω
⊢ (↑(Fintype.card (Signs n)))⁻¹ * ∑ σ, ⨆ i, |∑ k, ↑↑(σ k) * (f i (X (ω k).1) - f i (X (ω k).2))| ≤
    (↑(Fintype.card (Signs n)))⁻¹ *
      ((∑ σ, ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω k).1)|) + ∑ σ, ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω k).2)|)

Tactic: apply mul_le_mul_of_nonneg_left

Tactic state after:
[case h
 Ω : Type u
 Z : Type w
 n : ℕ
 ι : Type u_1
 f : ι → Z → ℝ
 inst✝ : Nonempty ι
 X : Ω → Z
 b : ℝ
 hf' : ∀ (i : ι) (z : Z), |f i z| ≤ b
 ω : Fin n → Ω × Ω
 ⊢ ∑ σ, ⨆ i, |∑ k, ↑↑(σ k) * (f i (X (ω k).1) - f i (X (ω k).2))| ≤
     (∑ σ, ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω k).1)|) + ∑ σ, ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω k).2)|,
 case a0
 Ω : Type u
 Z : Type w
 n : ℕ
 ι : Type u_1
 f : ι → Z → ℝ
 inst✝ : Nonempty ι
 X : Ω → Z
 b : ℝ
 hf' : ∀ (i : ι) (z : Z), |f i z| ≤ b
 ω : Fin n → Ω × Ω
 ⊢ 0 ≤ (↑(Fintype.card (Signs n)))⁻¹]

Premises used:
mul_le_mul_of_nonneg_left : ∀ {α : Type u_3} {a b c : α} [inst : Mul α] [inst_1 : Zero α] [inst_2 : Preorder α]
  [inst_3 : PosMulMono α], b ≤ c → 0 ≤ a → a * b ≤ a * c