-- File: FoML/FoML/McDiarmid.lean
Theorem statement:
theorem extracted_formal_statement_289.{u_3, u_2, u_1} {Ω : Type u_1} [inst : MeasurableSpace Ω] {μ : Measure Ω}
  [inst_1 : IsProbabilityMeasure μ] {𝓧 : Type u_2} {ι : Type u_3} [inst_2 : DecidableEq ι] {m𝓧 : MeasurableSpace 𝓧}
  [hnonempty𝓧 : Nonempty 𝓧] [inst_3 : Fintype ι] (X : ι → Ω → 𝓧) (hX : ∀ (i : ι), Measurable (X i))
  (hX' : iIndepFun X μ) (f : (ι → 𝓧) → ℝ) (c : ι → ℝ)
  (hf : ∀ (i : ι) (x : ι → 𝓧) (x' : 𝓧), |f x - f (Function.update x i x')| ≤ c i) (hf' : Measurable f) (ε : ℝ)
  (hε : ε > 0) (t : ℝ) (ht' : t * ∑ i, c i ^ 2 ≤ 1)
  (hmf : ∀ (i : ι) (x : ι → 𝓧) (x' : 𝓧), |(-f) x - (-f) (Function.update x i x')| ≤ c i) (hmf' : Measurable (-f))
  (this :
    (fun ω => (f ∘ Function.swap X) ω - ∫ (a : Ω), (f ∘ Function.swap X) a ∂μ ≤ -ε) = fun ω =>
      ((-f) ∘ Function.swap X) ω - ∫ (a : Ω), ((-f) ∘ Function.swap X) a ∂μ ≥ ε) :
  (μ fun ω => ((-f) ∘ Function.swap X) ω - ∫ (a : Ω), ((-f) ∘ Function.swap X) a ∂μ ≥ ε).toReal ≤
    Real.exp (-2 * ε ^ 2 * t) := sorry

Tactic state before:
Ω : Type u_1
inst✝³ : MeasurableSpace Ω
μ : Measure Ω
inst✝² : IsProbabilityMeasure μ
𝓧 : Type u_2
ι : Type u_3
inst✝¹ : DecidableEq ι
m𝓧 : MeasurableSpace 𝓧
hnonempty𝓧 : Nonempty 𝓧
inst✝ : Fintype ι
X : ι → Ω → 𝓧
hX : ∀ (i : ι), Measurable (X i)
hX' : iIndepFun X μ
f : (ι → 𝓧) → ℝ
c : ι → ℝ
hf : ∀ (i : ι) (x : ι → 𝓧) (x' : 𝓧), |f x - f (Function.update x i x')| ≤ c i
hf' : Measurable f
ε : ℝ
hε : ε > 0
t : ℝ
ht' : t * ∑ i, c i ^ 2 ≤ 1
hmf : ∀ (i : ι) (x : ι → 𝓧) (x' : 𝓧), |(-f) x - (-f) (Function.update x i x')| ≤ c i
hmf' : Measurable (-f)
this :
  (fun ω => (f ∘ Function.swap X) ω - ∫ (a : Ω), (f ∘ Function.swap X) a ∂μ ≤ -ε) = fun ω =>
    ((-f) ∘ Function.swap X) ω - ∫ (a : Ω), ((-f) ∘ Function.swap X) a ∂μ ≥ ε
⊢ (μ fun ω => ((-f) ∘ Function.swap X) ω - ∫ (a : Ω), ((-f) ∘ Function.swap X) a ∂μ ≥ ε).toReal ≤
    Real.exp (-2 * ε ^ 2 * t)

Tactic: apply mcdiarmid_inequality_pos X hX hX' (-f) c hmf hmf' ε hε t ht'

Tactic state after:

Premises used:
mcdiarmid_inequality_pos : ∀ {Ω : Type u_1} [inst : MeasurableSpace Ω] {μ : Measure Ω} [inst_4 : IsProbabilityMeasure μ]
  {𝓧 : Type u_2} {ι : Type u_3} [inst_5 : DecidableEq ι] {m𝓧 : MeasurableSpace 𝓧} [hnonempty𝓧 : Nonempty 𝓧]
  [inst_6 : Fintype ι] (X : ι → Ω → 𝓧),
  (∀ (i : ι), Measurable (X i)) →
    iIndepFun X μ →
      ∀ (f : (ι → 𝓧) → ℝ) (c : ι → ℝ),
        (∀ (i : ι) (x : ι → 𝓧) (x' : 𝓧), |f x - f (Function.update x i x')| ≤ c i) →
          Measurable f →
            ∀ ε > 0,
              ∀ (t : ℝ),
                t * ∑ i, c i ^ 2 ≤ 1 →
                  (μ fun ω => (f ∘ Function.swap X) ω - ∫ (x : Ω), (f ∘ Function.swap X) x ∂μ ≥ ε).toReal ≤
                    Real.exp (-2 * ε ^ 2 * t)