-- File: FoML/FoML/Rademacher.lean
Theorem statement:
theorem extracted_formal_statement_82.{u_1, w, u} {Ω : Type u} {Z : Type w} {n : ℕ} {ι : Type u_1} {f : ι → Z → ℝ}
  {X : Ω → Z} {b : ℝ} (hb : 0 ≤ b) (hf' : ∀ (i : ι) (z : Z), |f i z| ≤ b) (ω : Fin n → Ω) (σ : Signs n)
  (a : σ ∈ Finset.univ) (h : Nonempty ι) (h_original_goal : 0 ≤ ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω k))|) :
  0 ≤ |∑ k, ↑↑(σ k) * f (Classical.choice h) (X (ω k))| := sorry

Tactic state before:
case pos
Ω : Type u
Z : Type w
n : ℕ
ι : Type u_1
f : ι → Z → ℝ
X : Ω → Z
b : ℝ
hb : 0 ≤ b
hf' : ∀ (i : ι) (z : Z), |f i z| ≤ b
ω : Fin n → Ω
σ : Signs n
a✝ : σ ∈ Finset.univ
h : Nonempty ι
⊢ 0 ≤ ⨆ i, |∑ k, ↑↑(σ k) * f i (X (ω k))|

Tactic: apply le_ciSup_of_le _ (Classical.choice h)

Tactic state after:
[case pos
 Ω : Type u
 Z : Type w
 n : ℕ
 ι : Type u_1
 f : ι → Z → ℝ
 X : Ω → Z
 b : ℝ
 hb : 0 ≤ b
 hf' : ∀ (i : ι) (z : Z), |f i z| ≤ b
 ω : Fin n → Ω
 σ : Signs n
 a✝ : σ ∈ Finset.univ
 h : Nonempty ι
 ⊢ 0 ≤ |∑ k, ↑↑(σ k) * f (Classical.choice h) (X (ω k))|,
 Ω : Type u
 Z : Type w
 n : ℕ
 ι : Type u_1
 f : ι → Z → ℝ
 X : Ω → Z
 b : ℝ
 hb : 0 ≤ b
 hf' : ∀ (i : ι) (z : Z), |f i z| ≤ b
 ω : Fin n → Ω
 σ : Signs n
 a✝ : σ ∈ Finset.univ
 h : Nonempty ι
 ⊢ BddAbove (Set.range fun i => |∑ k, ↑↑(σ k) * f i (X (ω k))|)]

Premises used:
le_ciSup_of_le : ∀ {α : Type u_1} {ι : Sort u_4} [inst : ConditionallyCompleteLattice α] {a : α} {f : ι → α},
  BddAbove (Set.range f) → ∀ (c : ι), a ≤ f c → a ≤ iSup f