-- File: FoML/FoML/Rademacher.lean
Theorem statement:
theorem extracted_formal_statement_25.{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 → Ω × Ω) (σ : Signs n)
  (a : σ ∈ Finset.univ)
  (h_original_goal :
    ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω k).1)| + |∑ k, ↑↑(σ k) * f i (X (ω k).2)| ≤
      (⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω k).1)|) + ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω k).2)|) :
  BddAbove (Set.range fun i => |∑ k, ↑↑(σ k) * f i (X (ω k).1)|) := 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 → Ω × Ω
σ : Signs n
a✝ : σ ∈ Finset.univ
⊢ ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω k).1)| + |∑ k, ↑↑(σ k) * f i (X (ω k).2)| ≤
    (⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω k).1)|) + ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω k).2)|

Tactic: apply ciSup_add_le_add_ciSup

Tactic state after:
[case hg
 Ω : 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 → Ω × Ω
 σ : Signs n
 a✝ : σ ∈ Finset.univ
 ⊢ BddAbove (Set.range fun i => |∑ k, ↑↑(σ k) * f i (X (ω k).1)|),
 case hh
 Ω : 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 → Ω × Ω
 σ : Signs n
 a✝ : σ ∈ Finset.univ
 ⊢ BddAbove (Set.range fun i => |∑ k, ↑↑(σ k) * f i (X (ω k).2)|)]

Premises used:
ciSup_add_le_add_ciSup : ∀ {ι : Type u_2} [inst : Nonempty ι] {g h : ι → ℝ},
  BddAbove (Set.range g) → BddAbove (Set.range h) → ⨆ i, g i + h i ≤ (⨆ i, g i) + ⨆ i, h i