-- File: FoML/FoML/MeasurePiLemmas.lean
Theorem statement:
theorem extracted_formal_statement_15.{u_2, u_1} {Ω : Type u_1} {ι : Type u_2} [inst : MeasurableSpace Ω] {μ : Measure Ω}
  [inst_1 : IsProbabilityMeasure μ] [inst_2 : Fintype ι] [inst_3 : DecidableEq ι] (s : Finset ι) {f : ι → Set (ι → Ω)}
  (hf : ∀ i ∈ s, ∃ s', inst.MeasurableSet' s' ∧ Function.eval i ⁻¹' s' = f i) :
  let f' := fun i hi => Classical.choose (hf i hi);
  let hf' := fun i hi => Classical.choose_spec (hf i hi);
  let f'' := fun i => if h : i ∈ s then f' i h else Set.univ;
  ⋂ i ∈ s, f i = Set.univ.pi f'' → ∀ i ∈ s, Measurable (Function.eval i) := sorry

Tactic state before:
case hf
Ω : Type u_1
ι : Type u_2
inst✝³ : MeasurableSpace Ω
μ : Measure Ω
inst✝² : IsProbabilityMeasure μ
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
s : Finset ι
f : ι → Set (ι → Ω)
hf : ∀ i ∈ s, ∃ s', inst✝³.MeasurableSet' s' ∧ Function.eval i ⁻¹' s' = f i
f' : (i : ι) → i ∈ s → Set Ω := fun i hi => Classical.choose ⋯
hf' : ∀ (i : ι) (hi : i ∈ s),
  inst✝³.MeasurableSet' (Classical.choose ⋯) ∧ Function.eval i ⁻¹' Classical.choose ⋯ = f i :=
  fun i hi => Classical.choose_spec (hf i hi)
f'' : ι → Set Ω := fun i => if h : i ∈ s then f' i h else Set.univ
this : ⋂ i ∈ s, f i = Set.univ.pi f''
i : ι
h : i ∈ s
⊢ Measurable (Function.eval i)

Tactic: exact measurable_pi_apply i

Tactic state after:

Premises used:
measurable_pi_apply : ∀ {δ : Type u_4} {X : δ → Type u_6} [inst : (a : δ) → MeasurableSpace (X a)] (a : δ),
  Measurable fun f => f a