-- File: FoML/FoML/Rademacher.lean
Theorem statement:
theorem extracted_formal_statement_0.{u_2} {ι : Type u_2} [inst : Nonempty ι] {g h : ι → ℝ} (hg : BddAbove (Set.range g))
  (hh : BddAbove (Set.range h)) (h_original_goal : ⨆ i, g i + h i ≤ ⨆ i, ⨆ j, g i + h j) :
  BddAbove (Set.range fun i => ⨆ j, g i + h j) := sorry

Tactic state before:
ι : Type u_2
inst✝ : Nonempty ι
g h : ι → ℝ
hg : BddAbove (Set.range g)
hh : BddAbove (Set.range h)
⊢ ⨆ i, g i + h i ≤ ⨆ i, ⨆ j, g i + h j

Tactic: apply ciSup_mono

Tactic state after:
[case B
 ι : Type u_2
 inst✝ : Nonempty ι
 g h : ι → ℝ
 hg : BddAbove (Set.range g)
 hh : BddAbove (Set.range h)
 ⊢ BddAbove (Set.range fun i => ⨆ j, g i + h j),
 case H
 ι : Type u_2
 inst✝ : Nonempty ι
 g h : ι → ℝ
 hg : BddAbove (Set.range g)
 hh : BddAbove (Set.range h)
 ⊢ ∀ (x : ι), g x + h x ≤ ⨆ j, g x + h j]

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