theorem extracted_formal_statement_17.{u} {Ω : Type u} [inst : MeasurableSpace Ω] {μ : Measure Ω}
  [inst_1 : IsProbabilityMeasure μ] {n : ℕ} (s : Fin (n + 1) → Set Ω) (hs : ∀ (i : Fin (n + 1)), MeasurableSet (s i))
  (ω : Ω × (Fin n → Ω)) (h₁ : ω.1 ∈ s (Fin.last n)) (h₂ : ∀ (i : Fin n), ω.2 i ∈ s i.castSucc) (i : Fin (n + 1))
  (h : ↑i < n) (h_original_goal : (if h : ↑i < n then ω.2 (i.castLT h) else ω.1) ∈ s i) : ↑i < n := sorry

State before:
Ω : Type u
inst✝¹ : MeasurableSpace Ω
μ : Measure Ω
inst✝ : IsProbabilityMeasure μ
n : ℕ
s : Fin (n + 1) → Set Ω
hs : ∀ (i : Fin (n + 1)), MeasurableSet (s i)
ω : Ω × (Fin n → Ω)
h₁ : ω.1 ∈ s (Fin.last n)
h₂ : ∀ (i : Fin n), ω.2 i ∈ s i.castSucc
i : Fin (n + 1)
h : ↑i < n
⊢ (if h : ↑i < n then ω.2 (i.castLT h) else ω.1) ∈ s i

Tactic: rw [dif_pos]

State after:
[Ω : Type u
 inst✝¹ : MeasurableSpace Ω
 μ : Measure Ω
 inst✝ : IsProbabilityMeasure μ
 n : ℕ
 s : Fin (n + 1) → Set Ω
 hs : ∀ (i : Fin (n + 1)), MeasurableSet (s i)
 ω : Ω × (Fin n → Ω)
 h₁ : ω.1 ∈ s (Fin.last n)
 h₂ : ∀ (i : Fin n), ω.2 i ∈ s i.castSucc
 i : Fin (n + 1)
 h : ↑i < n
 ⊢ ω.2 (i.castLT ?hc) ∈ s i,
 case hc
 Ω : Type u
 inst✝¹ : MeasurableSpace Ω
 μ : Measure Ω
 inst✝ : IsProbabilityMeasure μ
 n : ℕ
 s : Fin (n + 1) → Set Ω
 hs : ∀ (i : Fin (n + 1)), MeasurableSet (s i)
 ω : Ω × (Fin n → Ω)
 h₁ : ω.1 ∈ s (Fin.last n)
 h₂ : ∀ (i : Fin n), ω.2 i ∈ s i.castSucc
 i : Fin (n + 1)
 h : ↑i < n
 ⊢ ↑i < n]

Relevant lemmas:
dif_pos : ∀ {c : Prop} {h : Decidable c} (hc : c) {α : Sort u} {t : c → α} {e : ¬c → α}, dite c t e = t hc