awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.MeasureSpace (goal)
Goal:
α : Type u_1
m0 : MeasurableSpace α
μ ν : Measure α
s : Set α
hs : MeasurableSet s
t : Set α
h :
  Membership.mem (γ := Set ℝ≥0∞)
    {m : ℝ≥0∞ |
      ∃ (t : Set α),
        m =
          HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
            ((ν : (a : Set α) → ℝ≥0∞) (tᶜ ∩ s) : ℝ≥0∞)}
    (HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
      ((ν : (a : Set α) → ℝ≥0∞) (tᶜ ∩ s) : ℝ≥0∞))
t' : ℕ → Set α := fun (n : ℕ) ↦ if n = 0 then t ∩ s else if n = 1 then tᶜ ∩ s else ∅
ht' : t' = fun (n : ℕ) ↦ if n = 0 then t ∩ s else if n = 1 then tᶜ ∩ s else ∅
⊢ ∀ (x : ℕ),
    Eq (α := ℝ≥0∞)
      (if x = 1 then 0
        else if x = 0 then 0 else min ((μ : (a : Set α) → ℝ≥0∞) (t' x)) ((ν : (a : Set α) → ℝ≥0∞) (t' x)) :
        ℝ≥0∞)
      (0 : ℝ≥0∞)
have simp : ∀ (x : ℕ),
  ¬x = 1 →
    ¬x = 0 → Eq (α := ℝ≥0∞) (min ((μ : (a : Set α) → ℝ≥0∞) (t' x)) ((ν : (a : Set α) → ℝ≥0∞) (t' x)) : ℝ≥0∞) (0 : ℝ≥0∞)
Tactic: simp only [ite_eq_left_iff]
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.MeasureSpace (goal)
Goal:
α : Type u_1
m0 : MeasurableSpace α
μ ν : Measure α
s : Set α
hs : MeasurableSet s
t' : ℕ → Set α
ht' : s ⊆ iUnion t'
⊢ LE.le (α := ℝ≥0∞)
    (sInf
      {m : ℝ≥0∞ |
        ∃ (t : Set α),
          m =
            HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
              ((ν : (a : Set α) → ℝ≥0∞) (tᶜ ∩ s) : ℝ≥0∞)})
    (∑' (n : ℕ),
      ⨅ (μ_1 : OuterMeasure α),
        ⨅ (_ : Membership.mem (γ := Set (OuterMeasure α)) (image (α := Measure α) toOuterMeasure {μ, ν}) μ_1),
          (μ_1 : (a : Set α) → ℝ≥0∞) (t' n))
have refine_2 : LE.le (α := ℝ≥0∞)
  (sInf
    {m : ℝ≥0∞ |
      ∃ (t : Set α),
        m =
          HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
            ((ν : (a : Set α) → ℝ≥0∞) (tᶜ ∩ s) : ℝ≥0∞)})
  (∑' (n : ℕ), min ((μ : (a : Set α) → ℝ≥0∞) (t' n)) ((ν : (a : Set α) → ℝ≥0∞) (t' n)))
Tactic: simp only [iInf_image, coe_toOuterMeasure, iInf_pair]
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.MeasureSpace (hypothesis)
Goal:
α : Type u_1
m0 : MeasurableSpace α
μ ν : Measure α
s : Set α
hs : MeasurableSet s
t' : ℕ → Set α
ht' : s ⊆ iUnion t'
⊢ LE.le (α := ℝ≥0∞)
    (sInf
      {m : ℝ≥0∞ |
        ∃ (t : Set α),
          m =
            HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
              ((ν : (a : Set α) → ℝ≥0∞) (tᶜ ∩ s) : ℝ≥0∞)})
    (∑' (n : ℕ), min ((μ : (a : Set α) → ℝ≥0∞) (t' n)) ((ν : (a : Set α) → ℝ≥0∞) (t' n)))
have ht : let t : Set α :=
  ⋃ (n : ℕ),
    ⋃ (_ :
      Membership.mem (γ := Set ℕ)
        {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
        n),
      t' n;
t =
  ⋃ (n : ℕ),
    ⋃ (_ :
      Membership.mem (γ := Set ℕ)
        {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
        n),
      t' n
Tactic: set t := ⋃ n ∈ {k : ℕ | μ (t' k) ≤ ν (t' k)}, t' n with ht
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.MeasureSpace (goal)
Goal:
α : Type u_1
m0 : MeasurableSpace α
μ ν : Measure α
s : Set α
hs : MeasurableSet s
t' : ℕ → Set α
ht' : s ⊆ iUnion t'
t : Set α :=
  ⋃ (n : ℕ),
    ⋃ (_ :
      Membership.mem (γ := Set ℕ)
        {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
        n),
      t' n
ht :
  t =
    ⋃ (n : ℕ),
      ⋃ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          n),
        t' n
⊢ LE.le (α := ℝ≥0∞)
    (sInf
      {m : ℝ≥0∞ |
        ∃ (t : Set α),
          m =
            HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
              ((ν : (a : Set α) → ℝ≥0∞) (tᶜ ∩ s) : ℝ≥0∞)})
    (∑' (n : ℕ), min ((μ : (a : Set α) → ℝ≥0∞) (t' n)) ((ν : (a : Set α) → ℝ≥0∞) (t' n)))
have refine_2 : HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (tᶜ ∩ s) : ℝ≥0∞) ≤
  ∑' (n : ℕ), min ((μ : (a : Set α) → ℝ≥0∞) (t' n)) ((ν : (a : Set α) → ℝ≥0∞) (t' n))
Tactic: suffices hadd : μ (t ∩ s) + ν (tᶜ ∩ s) ≤ ∑' n, μ (t' n) ⊓ ν (t' n) by
      exact le_trans (sInf_le ⟨t, rfl⟩) hadd
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.MeasureSpace (hypothesis)
Goal:
α : Type u_1
m0 : MeasurableSpace α
μ ν : Measure α
s : Set α
hs : MeasurableSet s
t' : ℕ → Set α
ht' : s ⊆ iUnion t'
t : Set α :=
  ⋃ (n : ℕ),
    ⋃ (_ :
      Membership.mem (γ := Set ℕ)
        {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
        n),
      t' n
ht :
  t =
    ⋃ (n : ℕ),
      ⋃ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          n),
        t' n
⊢ HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
      ((ν : (a : Set α) → ℝ≥0∞) (tᶜ ∩ s) : ℝ≥0∞) ≤
    ∑' (n : ℕ), min ((μ : (a : Set α) → ℝ≥0∞) (t' n)) ((ν : (a : Set α) → ℝ≥0∞) (t' n))
have hle₁ : LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
  (∑' (n :
      (↑{k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} :
        Type)),
      (μ : (a : Set α) → ℝ≥0∞) (t' (↑n : ℕ)) :
    ℝ≥0∞)
Tactic: have hle₁ : μ (t ∩ s) ≤ ∑' (n : {k | μ (t' k) ≤ ν (t' k)}), μ (t' n) :=
      (measure_mono inter_subset_left).trans <| measure_biUnion_le _ (to_countable _) _
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.MeasureSpace (goal)
Goal:
α : Type u_1
m0 : MeasurableSpace α
μ ν : Measure α
s : Set α
hs : MeasurableSet s
t' : ℕ → Set α
ht' : s ⊆ iUnion t'
t : Set α :=
  ⋃ (n : ℕ),
    ⋃ (_ :
      Membership.mem (γ := Set ℕ)
        {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
        n),
      t' n
ht :
  t =
    ⋃ (n : ℕ),
      ⋃ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          n),
        t' n
hle₁ :
  LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
    (∑' (n :
        (↑{k : ℕ |
              LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} :
          Type)),
        (μ : (a : Set α) → ℝ≥0∞) (t' (↑n : ℕ)) :
      ℝ≥0∞)
⊢ tᶜ ∩ s ⊆
    ⋃ (n : ℕ),
      ⋃ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LT.lt (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          n),
        t' n
have simp_rw : (⋂ (i : ℕ),
      ⋂ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          i),
        (t' i)ᶜ) ∩
    s ⊆
  ⋃ (n : ℕ),
    ⋃ (_ :
      Membership.mem (γ := Set ℕ)
        {k : ℕ | LT.lt (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
        n),
      t' n
Tactic: simp_rw [ht, compl_iUnion]
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.MeasureSpace (goal)
Goal:
α : Type u_1
m0 : MeasurableSpace α
μ ν : Measure α
s : Set α
hs : MeasurableSet s
t' : ℕ → Set α
ht' : s ⊆ iUnion t'
t : Set α :=
  ⋃ (n : ℕ),
    ⋃ (_ :
      Membership.mem (γ := Set ℕ)
        {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
        n),
      t' n
ht :
  t =
    ⋃ (n : ℕ),
      ⋃ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          n),
        t' n
hle₁ :
  LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
    (∑' (n :
        (↑{k : ℕ |
              LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} :
          Type)),
        (μ : (a : Set α) → ℝ≥0∞) (t' (↑n : ℕ)) :
      ℝ≥0∞)
⊢ (⋂ (i : ℕ),
        ⋂ (_ :
          Membership.mem (γ := Set ℕ)
            {k : ℕ |
              LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
            i),
          (t' i)ᶜ) ∩
      s ⊆
    ⋃ (n : ℕ),
      ⋃ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LT.lt (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          n),
        t' n
have refine : ∀
  x ∈
    (⋂ (i : ℕ),
        ⋂ (_ :
          Membership.mem (γ := Set ℕ)
            {k : ℕ |
              LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
            i),
          (t' i)ᶜ) ∩
      s,
  ∀
    (hx₁ :
      Membership.mem (γ := Set α)
        (⋂ (i : ℕ),
          ⋂ (_ :
            Membership.mem (γ := Set ℕ)
              {k : ℕ |
                LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
              i),
            (t' i)ᶜ)
        x)
    (hx₂ : x ∈ s),
    ∃ (i : ℕ) (_ :
      Membership.mem (γ := Set ℕ)
        {k : ℕ | LT.lt (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
        i),
      x ∈ t' i
Tactic: refine fun x ⟨hx₁, hx₂⟩ ↦ mem_iUnion₂.2 ?_
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.MeasureSpace (goal)
Goal:
α : Type u_1
m0 : MeasurableSpace α
μ ν : Measure α
s : Set α
hs : MeasurableSet s
t' : ℕ → Set α
ht' : s ⊆ iUnion t'
t : Set α :=
  ⋃ (n : ℕ),
    ⋃ (_ :
      Membership.mem (γ := Set ℕ)
        {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
        n),
      t' n
ht :
  t =
    ⋃ (n : ℕ),
      ⋃ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          n),
        t' n
hle₁ :
  LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
    (∑' (n :
        (↑{k : ℕ |
              LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} :
          Type)),
        (μ : (a : Set α) → ℝ≥0∞) (t' (↑n : ℕ)) :
      ℝ≥0∞)
x : α
h :
  x ∈
    (⋂ (i : ℕ),
        ⋂ (_ :
          Membership.mem (γ := Set ℕ)
            {k : ℕ |
              LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
            i),
          (t' i)ᶜ) ∩
      s
hx₁ :
  Membership.mem (γ := Set α)
    (⋂ (i : ℕ),
      ⋂ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          i),
        (t' i)ᶜ)
    x
hx₂ : x ∈ s
⊢ ∃ (i : ℕ) (_ :
    Membership.mem (γ := Set ℕ)
      {k : ℕ | LT.lt (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} i),
    x ∈ t' i
have obtain : ∀ (i : ℕ) (hi : x ∈ t' i),
  ∃ (i : ℕ) (_ :
    Membership.mem (γ := Set ℕ)
      {k : ℕ | LT.lt (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} i),
    x ∈ t' i
Tactic: obtain ⟨i, hi⟩ := mem_iUnion.1 <| ht' hx₂
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.MeasureSpace (goal)
Goal:
α : Type u_1
m0 : MeasurableSpace α
μ ν : Measure α
s : Set α
hs : MeasurableSet s
t' : ℕ → Set α
ht' : s ⊆ iUnion t'
t : Set α :=
  ⋃ (n : ℕ),
    ⋃ (_ :
      Membership.mem (γ := Set ℕ)
        {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
        n),
      t' n
ht :
  t =
    ⋃ (n : ℕ),
      ⋃ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          n),
        t' n
hle₁ :
  LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
    (∑' (n :
        (↑{k : ℕ |
              LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} :
          Type)),
        (μ : (a : Set α) → ℝ≥0∞) (t' (↑n : ℕ)) :
      ℝ≥0∞)
x : α
h :
  x ∈
    (⋂ (i : ℕ),
        ⋂ (_ :
          Membership.mem (γ := Set ℕ)
            {k : ℕ |
              LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
            i),
          (t' i)ᶜ) ∩
      s
hx₁ :
  Membership.mem (γ := Set α)
    (⋂ (i : ℕ),
      ⋂ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          i),
        (t' i)ᶜ)
    x
hx₂ : x ∈ s
i : ℕ
hi : x ∈ t' i
⊢ ∃ (i : ℕ) (_ :
    Membership.mem (γ := Set ℕ)
      {k : ℕ | LT.lt (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} i),
    x ∈ t' i
have refine : Membership.mem (γ := Set ℕ)
  {k : ℕ | LT.lt (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} i
Tactic: refine ⟨i, ?_, hi⟩
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.MeasureSpace (goal)
Goal:
α : Type u_1
m0 : MeasurableSpace α
μ ν : Measure α
s : Set α
hs : MeasurableSet s
t' : ℕ → Set α
ht' : s ⊆ iUnion t'
t : Set α :=
  ⋃ (n : ℕ),
    ⋃ (_ :
      Membership.mem (γ := Set ℕ)
        {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
        n),
      t' n
ht :
  t =
    ⋃ (n : ℕ),
      ⋃ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          n),
        t' n
hle₁ :
  LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
    (∑' (n :
        (↑{k : ℕ |
              LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} :
          Type)),
        (μ : (a : Set α) → ℝ≥0∞) (t' (↑n : ℕ)) :
      ℝ≥0∞)
x : α
h :
  x ∈
    (⋂ (i : ℕ),
        ⋂ (_ :
          Membership.mem (γ := Set ℕ)
            {k : ℕ |
              LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
            i),
          (t' i)ᶜ) ∩
      s
hx₁ :
  Membership.mem (γ := Set α)
    (⋂ (i : ℕ),
      ⋂ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          i),
        (t' i)ᶜ)
    x
hx₂ : x ∈ s
i : ℕ
hi : x ∈ t' i
⊢ Membership.mem (γ := Set ℕ)
    {k : ℕ | LT.lt (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} i
have by_contra : ∀
  (h :
    i ∉ {k : ℕ | LT.lt (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}),
  False
Tactic: by_contra h
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.MeasureSpace (hypothesis)
Goal:
α : Type u_1
m0 : MeasurableSpace α
μ ν : Measure α
s : Set α
hs : MeasurableSet s
t' : ℕ → Set α
ht' : s ⊆ iUnion t'
t : Set α :=
  ⋃ (n : ℕ),
    ⋃ (_ :
      Membership.mem (γ := Set ℕ)
        {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
        n),
      t' n
ht :
  t =
    ⋃ (n : ℕ),
      ⋃ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          n),
        t' n
hle₁ :
  LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
    (∑' (n :
        (↑{k : ℕ |
              LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} :
          Type)),
        (μ : (a : Set α) → ℝ≥0∞) (t' (↑n : ℕ)) :
      ℝ≥0∞)
x : α
h_1 :
  x ∈
    (⋂ (i : ℕ),
        ⋂ (_ :
          Membership.mem (γ := Set ℕ)
            {k : ℕ |
              LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
            i),
          (t' i)ᶜ) ∩
      s
hx₁ :
  Membership.mem (γ := Set α)
    (⋂ (i : ℕ),
      ⋂ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          i),
        (t' i)ᶜ)
    x
hx₂ : x ∈ s
i : ℕ
hi : x ∈ t' i
h : i ∉ {k : ℕ | LT.lt (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
⊢ False
have h₁ : LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' i) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' i) : ℝ≥0∞)
Tactic: simp only [mem_setOf_eq, not_lt] at h
Cleared hypotheses: h
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.MeasureSpace (hypothesis)
Goal:
α : Type u_1
m0 : MeasurableSpace α
μ ν : Measure α
s : Set α
hs : MeasurableSet s
t' : ℕ → Set α
ht' : s ⊆ iUnion t'
t : Set α :=
  ⋃ (n : ℕ),
    ⋃ (_ :
      Membership.mem (γ := Set ℕ)
        {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
        n),
      t' n
ht :
  t =
    ⋃ (n : ℕ),
      ⋃ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          n),
        t' n
hle₁ :
  LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
    (∑' (n :
        (↑{k : ℕ |
              LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} :
          Type)),
        (μ : (a : Set α) → ℝ≥0∞) (t' (↑n : ℕ)) :
      ℝ≥0∞)
⊢ HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
      ((ν : (a : Set α) → ℝ≥0∞) (tᶜ ∩ s) : ℝ≥0∞) ≤
    ∑' (n : ℕ), min ((μ : (a : Set α) → ℝ≥0∞) (t' n)) ((ν : (a : Set α) → ℝ≥0∞) (t' n))
have hcap : tᶜ ∩ s ⊆
  ⋃ (n : ℕ),
    ⋃ (_ :
      Membership.mem (γ := Set ℕ)
        {k : ℕ | LT.lt (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
        n),
      t' n
Tactic: have hcap : tᶜ ∩ s ⊆ ⋃ n ∈ {k | ν (t' k) < μ (t' k)}, t' n := by
      simp_rw [ht, compl_iUnion]
      refine fun x ⟨hx₁, hx₂⟩ ↦ mem_iUnion₂.2 ?_
      obtain ⟨i, hi⟩ := mem_iUnion.1 <| ht' hx₂
      refine ⟨i, ?_, hi⟩
      by_contra h
      simp only [mem_setOf_eq, not_lt] at h
      exact mem_iInter₂.1 hx₁ i h hi
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.MeasureSpace (hypothesis)
Goal:
α : Type u_1
m0 : MeasurableSpace α
μ ν : Measure α
s : Set α
hs : MeasurableSet s
t' : ℕ → Set α
ht' : s ⊆ iUnion t'
t : Set α :=
  ⋃ (n : ℕ),
    ⋃ (_ :
      Membership.mem (γ := Set ℕ)
        {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
        n),
      t' n
ht :
  t =
    ⋃ (n : ℕ),
      ⋃ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          n),
        t' n
hle₁ :
  LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
    (∑' (n :
        (↑{k : ℕ |
              LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} :
          Type)),
        (μ : (a : Set α) → ℝ≥0∞) (t' (↑n : ℕ)) :
      ℝ≥0∞)
hcap :
  tᶜ ∩ s ⊆
    ⋃ (n : ℕ),
      ⋃ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LT.lt (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          n),
        t' n
⊢ HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
      ((ν : (a : Set α) → ℝ≥0∞) (tᶜ ∩ s) : ℝ≥0∞) ≤
    ∑' (n : ℕ), min ((μ : (a : Set α) → ℝ≥0∞) (t' n)) ((ν : (a : Set α) → ℝ≥0∞) (t' n))
have hle₂ : LE.le (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (tᶜ ∩ s) : ℝ≥0∞)
  (∑' (n :
      (↑{k : ℕ | LT.lt (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} :
        Type)),
      (ν : (a : Set α) → ℝ≥0∞) (t' (↑n : ℕ)) :
    ℝ≥0∞)
Tactic: have hle₂ : ν (tᶜ ∩ s) ≤ ∑' (n : {k | ν (t' k) < μ (t' k)}), ν (t' n) :=
      (measure_mono hcap).trans (measure_biUnion_le ν (to_countable {k | ν (t' k) < μ (t' k)}) _)
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.MeasureSpace (goal)
Goal:
α : Type u_1
m0 : MeasurableSpace α
μ ν : Measure α
s : Set α
hs : MeasurableSet s
t' : ℕ → Set α
ht' : s ⊆ iUnion t'
t : Set α :=
  ⋃ (n : ℕ),
    ⋃ (_ :
      Membership.mem (γ := Set ℕ)
        {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
        n),
      t' n
ht :
  t =
    ⋃ (n : ℕ),
      ⋃ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          n),
        t' n
hle₁ :
  LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
    (∑' (n :
        (↑{k : ℕ |
              LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} :
          Type)),
        (μ : (a : Set α) → ℝ≥0∞) (t' (↑n : ℕ)) :
      ℝ≥0∞)
hcap :
  tᶜ ∩ s ⊆
    ⋃ (n : ℕ),
      ⋃ (_ :
        Membership.mem (γ := Set ℕ)
          {k : ℕ | LT.lt (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)}
          n),
        t' n
hle₂ :
  LE.le (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (tᶜ ∩ s) : ℝ≥0∞)
    (∑' (n :
        (↑{k : ℕ |
              LT.lt (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} :
          Type)),
        (ν : (a : Set α) → ℝ≥0∞) (t' (↑n : ℕ)) :
      ℝ≥0∞)
⊢ HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t ∩ s) : ℝ≥0∞)
      ((ν : (a : Set α) → ℝ≥0∞) (tᶜ ∩ s) : ℝ≥0∞) ≤
    ∑' (n : ℕ), min ((μ : (a : Set α) → ℝ≥0∞) (t' n)) ((ν : (a : Set α) → ℝ≥0∞) (t' n))
have refine_2 : HAdd.hAdd (α := ℝ≥0∞)
    (∑' (n :
      (↑{k : ℕ | LE.le (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} :
        Type)),
      (μ : (a : Set α) → ℝ≥0∞) (t' (↑n : ℕ)))
    (∑' (n :
      (↑{k : ℕ | LT.lt (α := ℝ≥0∞) ((ν : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (t' k) : ℝ≥0∞)} :
        Type)),
      (ν : (a : Set α) → ℝ≥0∞) (t' (↑n : ℕ))) ≤
  ∑' (n : ℕ), min ((μ : (a : Set α) → ℝ≥0∞) (t' n)) ((ν : (a : Set α) → ℝ≥0∞) (t' n))
Tactic: refine (add_le_add hle₁ hle₂).trans ?_