zzhisthebest/LeanBenchmark huggingface dataset:
import Mathlib
import FoML


open MeasureTheory ProbabilityTheory

theorem extracted_formal_statement_14.{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, Measure.map (Function.eval i) (Measure.pi fun x => μ) = μ := sorry

Tactic state before:
case e_a.h
Ω : 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
⊢ Measure.map (Function.eval i) (Measure.pi fun x => μ) = μ

Tactic:
exact pi_map_eval i

Tactic state after:
import Mathlib
import FoML


open MeasureTheory ProbabilityTheory

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:
import Mathlib
import FoML


open MeasureTheory ProbabilityTheory

theorem extracted_formal_statement_16.{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 : ι) (h : i ∈ s), MeasurableSet (Classical.choose (hf i h)) := sorry

Tactic state before:
case hs
Ω : 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
⊢ MeasurableSet (Classical.choose ⋯)

Tactic:
exact (hf' i h).1

Tactic state after:
import Mathlib
import FoML


open MeasureTheory ProbabilityTheory

theorem extracted_formal_statement_17.{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,
      (μ (if h : i ∈ s then f' i h else Set.univ) = if i ∈ s then (Measure.pi fun x => μ) (f i) else 1) →
        μ Set.univ = 1 := sorry

Tactic state before:
Ω : 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
⊢ μ (if h : i ∈ s then f' i h else Set.univ) = if i ∈ s then (Measure.pi fun x => μ) (f i) else 1

Tactic:
rw [dif_neg h, if_neg h]

Tactic state after:
[Ω : 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
 ⊢ μ Set.univ = 1]
import Mathlib
import FoML


open MeasureTheory ProbabilityTheory

theorem extracted_formal_statement_18.{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, μ Set.univ = 1 := sorry

Tactic state before:
Ω : 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
⊢ μ Set.univ = 1

Tactic:
exact isProbabilityMeasure_iff.mp inferInstance

Tactic state after:
import Mathlib
import FoML


open MeasureTheory ProbabilityTheory

theorem extracted_formal_statement_19.{u_3, u_2, u_1} {Ω : Type u_1} {ι : Type u_2} [inst : MeasurableSpace Ω]
  {μ : Measure Ω} [inst_1 : IsProbabilityMeasure μ] [inst_2 : Fintype ι] {𝓧 : Type u_3} [inst_3 : MeasurableSpace 𝓧]
  {X : Ω → 𝓧} (hX : Measurable X) : iIndepFun (fun i => X ∘ Function.eval i) (Measure.pi fun x => μ) := sorry

Tactic state before:
Ω : Type u_1
ι : Type u_2
inst✝⁴ : MeasurableSpace Ω
μ : Measure Ω
inst✝³ : IsProbabilityMeasure μ
inst✝² : Fintype ι
inst✝¹ : DecidableEq ι
𝓧 : Type u_3
inst✝ : MeasurableSpace 𝓧
X : Ω → 𝓧
hX : Measurable X
⊢ iIndepFun (fun i => X ∘ Function.eval i) (Measure.pi fun x => μ)

Tactic:
apply iIndepFun.comp pi_eval_iIndepFun _ (fun _ ↦ hX)

Tactic state after: