-- File: FoML/FoML/Rademacher.lean
Theorem statement:
theorem extracted_formal_statement_20.{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 : BddAbove (Set.range fun i => |∑ k, ↑↑(σ k) * f i (X (ω k).2)|)) :
  ∃ x, ∀ y ∈ Set.range fun i => |∑ k, ↑↑(σ k) * f i (X (ω k).2)|, y ≤ x := sorry

Tactic state before:
case B.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).2)|)

Tactic: rw [bddAbove_def]

Tactic state after:
[case B.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
 ⊢ ∃ x, ∀ y ∈ Set.range fun i => |∑ k, ↑↑(σ k) * f i (X (ω k).2)|, y ≤ x]

Premises used:
bddAbove_def : ∀ {α : Type u} [inst : Preorder α] {s : Set α}, BddAbove s ↔ ∃ x, ∀ y ∈ s, y ≤ x