-- File: FoML/FoML/Main.lean
Theorem statement:
theorem extracted_formal_statement_0.{w, v, u} {n : ℕ} {Ω : Type u} [inst : MeasurableSpace Ω] {ι : Type v} {𝒳 : Type w}
  {μ : Measure Ω} {f : ι → 𝒳 → ℝ} [inst_1 : Nonempty ι] [inst_2 : Countable ι] [inst_3 : IsProbabilityMeasure μ]
  (hn : 0 < n) (X : Ω → 𝒳) (hf : ∀ (i : ι), Measurable (f i ∘ X)) {b : ℝ} (hb : 0 ≤ b)
  (hf' : ∀ (i : ι) (x : 𝒳), |f i x| ≤ b)
  (h_original_goal :
    (∫ (x : Fin n → Ω), (fun ω => uniformDeviation n f μ X (X ∘ ω)) x ∂Measure.pi fun x => μ) ≤
      2 • rademacherComplexity n f μ X) :
  (↑n * ∫ (x : Fin n → Ω), (fun ω => uniformDeviation n f μ X (X ∘ ω)) x ∂Measure.pi fun x => μ) ≤
    ↑n * 2 • rademacherComplexity n f μ X := sorry

Tactic state before:
n : ℕ
Ω : Type u
inst✝³ : MeasurableSpace Ω
ι : Type v
𝒳 : Type w
μ : Measure Ω
f : ι → 𝒳 → ℝ
inst✝² : Nonempty ι
inst✝¹ : Countable ι
inst✝ : IsProbabilityMeasure μ
hn : 0 < n
X : Ω → 𝒳
hf : ∀ (i : ι), Measurable (f i ∘ X)
b : ℝ
hb : 0 ≤ b
hf' : ∀ (i : ι) (x : 𝒳), |f i x| ≤ b
⊢ (∫ (x : Fin n → Ω), (fun ω => uniformDeviation n f μ X (X ∘ ω)) x ∂Measure.pi fun x => μ) ≤
    2 • rademacherComplexity n f μ X

Tactic: apply le_of_mul_le_mul_left _ (Nat.cast_pos.mpr hn)

Tactic state after:
[n : ℕ
 Ω : Type u
 inst✝³ : MeasurableSpace Ω
 ι : Type v
 𝒳 : Type w
 μ : Measure Ω
 f : ι → 𝒳 → ℝ
 inst✝² : Nonempty ι
 inst✝¹ : Countable ι
 inst✝ : IsProbabilityMeasure μ
 hn : 0 < n
 X : Ω → 𝒳
 hf : ∀ (i : ι), Measurable (f i ∘ X)
 b : ℝ
 hb : 0 ≤ b
 hf' : ∀ (i : ι) (x : 𝒳), |f i x| ≤ b
 ⊢ (↑n * ∫ (x : Fin n → Ω), (fun ω => uniformDeviation n f μ X (X ∘ ω)) x ∂Measure.pi fun x => μ) ≤
     ↑n * 2 • rademacherComplexity n f μ X]

Premises used:
le_of_mul_le_mul_left : ∀ {α : Type u_3} {a b c : α} [inst : Mul α] [inst_4 : Zero α] [inst_5 : Preorder α]
  [inst_6 : PosMulReflectLE α], a * b ≤ a * c → 0 < a → b ≤ c