awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (goal)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
this :
  LE.le (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (⋃ (n : ℕ), S n) : ℝ≥0∞)
    (⨆ (n : ℕ), (μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞)
⊢ HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
      ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) ≤
    (μ : (a : Set X) → ℝ≥0∞) s
have μ₁ : HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) =
  HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
    ((μ : (a : Set X) → ℝ≥0∞) (⋃ (n : ℕ), S n) : ℝ≥0∞)
Tactic: calc
    μ (s ∩ t) + μ (s \ t) = μ (s ∩ t) + μ (⋃ n, S n) := by rw [iUnion_S]
    _ ≤ μ (s ∩ t) + ⨆ n, μ (S n) := by gcongr
    _ = ⨆ n, μ (s ∩ t) + μ (S n) := ENNReal.add_iSup ..
    _ ≤ μ s := iSup_le hSs
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (goal)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
this :
  LE.le (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (⋃ (n : ℕ), S n) : ℝ≥0∞)
    (⨆ (n : ℕ), (μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞)
μ₁ :
  HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
      ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) =
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
      ((μ : (a : Set X) → ℝ≥0∞) (⋃ (n : ℕ), S n) : ℝ≥0∞)
⊢ HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
      ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) ≤
    (μ : (a : Set X) → ℝ≥0∞) s
have μ₂ : HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
    ((μ : (a : Set X) → ℝ≥0∞) (⋃ (n : ℕ), S n) : ℝ≥0∞) ≤
  HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
    (⨆ (n : ℕ), (μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞)
Tactic: calc
    μ (s ∩ t) + μ (s \ t) = μ (s ∩ t) + μ (⋃ n, S n) := by rw [iUnion_S]
    _ ≤ μ (s ∩ t) + ⨆ n, μ (S n) := by gcongr
    _ = ⨆ n, μ (s ∩ t) + μ (S n) := ENNReal.add_iSup ..
    _ ≤ μ s := iSup_le hSs
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (goal)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
⊢ HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
      ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) ≤
    (μ : (a : Set X) → ℝ≥0∞) s
have neg : LE.le (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (⋃ (n : ℕ), S n) : ℝ≥0∞) (⨆ (n : ℕ), (μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞)
Tactic: suffices μ (⋃ n, S n) ≤ ⨆ n, μ (S n) by calc
    μ (s ∩ t) + μ (s \ t) = μ (s ∩ t) + μ (⋃ n, S n) := by rw [iUnion_S]
    _ ≤ μ (s ∩ t) + ⨆ n, μ (S n) := by gcongr
    _ = ⨆ n, μ (s ∩ t) + μ (S n) := ENNReal.add_iSup ..
    _ ≤ μ s := iSup_le hSs
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (hypothesis)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
⊢ LE.le (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (⋃ (n : ℕ), S n) : ℝ≥0∞)
    (⨆ (n : ℕ), (μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞)
have this : ∀ (n : ℕ), S n ⊆ S (n + 1)
Tactic: have : ∀ n, S n ⊆ S (n + 1) := fun n x hx =>
    ⟨hx.1, le_trans (ENNReal.inv_le_inv.2 <| Nat.cast_le.2 n.le_succ) hx.2⟩
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (goal)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
this : ∀ (n : ℕ), S n ⊆ S (n + 1)
⊢ LE.le (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (⋃ (n : ℕ), S n) : ℝ≥0∞)
    (⨆ (n : ℕ), (μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞)
have neg : Ne (α := ℝ≥0∞) (∑' (k : ℕ), (μ : (a : Set X) → ℝ≥0∞) (S (k + 1) \ S k)) ∞
Tactic: refine (μ.iUnion_nat_of_monotone_of_tsum_ne_top this ?_).le
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (goal)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
⊢ Ne (α := ℝ≥0∞) (∑' (k : ℕ), (μ : (a : Set X) → ℝ≥0∞) (S (k + 1) \ S k)) ∞
have neg : Ne (α := ℝ≥0∞) (∑' (k : ℕ), (μ : (a : Set X) → ℝ≥0∞) (S (2 * k + 1) \ S (2 * k))) ∞ ∧
  Ne (α := ℝ≥0∞) (∑' (k : ℕ), (μ : (a : Set X) → ℝ≥0∞) (S (2 * k + 1 + 1) \ S (2 * k + 1))) ∞
Tactic: rw [← tsum_even_add_odd ENNReal.summable ENNReal.summable, ENNReal.add_ne_top]
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (goal)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
⊢ Ne (α := ℝ≥0∞) (∑' (k : ℕ), (μ : (a : Set X) → ℝ≥0∞) (S (2 * k + 1) \ S (2 * k))) ∞ ∧
    Ne (α := ℝ≥0∞) (∑' (k : ℕ), (μ : (a : Set X) → ℝ≥0∞) (S (2 * k + 1 + 1) \ S (2 * k + 1))) ∞
have neg : ∀ (a : ℕ), Ne (α := ℝ≥0∞) (∑' (k : ℕ), (μ : (a : Set X) → ℝ≥0∞) (S (2 * k + 1 + a) \ S (2 * k + a))) ∞
Tactic: suffices ∀ a, (∑' k : ℕ, μ (S (2 * k + 1 + a) \ S (2 * k + a))) ≠ ∞ from
    ⟨by simpa using this 0, by simpa using this 1⟩
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (goal)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
⊢ ∀ (a : ℕ), Ne (α := ℝ≥0∞) (∑' (k : ℕ), (μ : (a : Set X) → ℝ≥0∞) (S (2 * k + 1 + a) \ S (2 * k + a))) ∞
have neg : ∀ (r : ℕ),
  LE.le (α := ℝ≥0∞) (∑' (k : ℕ), (μ : (a : Set X) → ℝ≥0∞) (S (2 * k + 1 + r) \ S (2 * k + r)) : ℝ≥0∞)
    ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞)
Tactic: refine fun r => ne_top_of_le_ne_top htop ?_
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (goal)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
r : ℕ
⊢ LE.le (α := ℝ≥0∞) (∑' (k : ℕ), (μ : (a : Set X) → ℝ≥0∞) (S (2 * k + 1 + r) \ S (2 * k + r)) : ℝ≥0∞)
    ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞)
have neg : ∀ (i : ℕ),
  LE.le (α := ℝ≥0∞) (∑ a ∈ Finset.range i, (μ : (a : Set X) → ℝ≥0∞) (S (2 * a + 1 + r) \ S (2 * a + r)) : ℝ≥0∞)
    ((μ : (a : Set X) → ℝ≥0∞) (⋃ (n : ℕ), S n) : ℝ≥0∞)
Tactic: rw [← iUnion_S, ENNReal.tsum_eq_iSup_nat, iSup_le_iff]
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (goal)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
r n : ℕ
⊢ LE.le (α := ℝ≥0∞) (∑ a ∈ Finset.range n, (μ : (a : Set X) → ℝ≥0∞) (S (2 * a + 1 + r) \ S (2 * a + r)) : ℝ≥0∞)
    ((μ : (a : Set X) → ℝ≥0∞) (⋃ (n : ℕ), S n) : ℝ≥0∞)
have neg : LE.le (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (⋃ i ∈ Finset.range n, S (2 * i + 1 + r) \ S (2 * i + r)) : ℝ≥0∞)
  ((μ : (a : Set X) → ℝ≥0∞) (⋃ (n : ℕ), S n) : ℝ≥0∞)
Tactic: rw [← hm.finset_iUnion_of_pairwise_separated]
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (goal)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
r n : ℕ
neg :
  LE.le (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (⋃ i ∈ Finset.range n, S (2 * i + 1 + r) \ S (2 * i + r)) : ℝ≥0∞)
    ((μ : (a : Set X) → ℝ≥0∞) (⋃ (n : ℕ), S n) : ℝ≥0∞)
⊢ LE.le (α := ℝ≥0∞) (∑ a ∈ Finset.range n, (μ : (a : Set X) → ℝ≥0∞) (S (2 * a + 1 + r) \ S (2 * a + r)) : ℝ≥0∞)
    ((μ : (a : Set X) → ℝ≥0∞) (⋃ (n : ℕ), S n) : ℝ≥0∞)
have neg₁ : ∀ i ∈ Finset.range n,
  ∀ j ∈ Finset.range n, i ≠ j → AreSeparated (S (2 * i + 1 + r) \ S (2 * i + r)) (S (2 * j + 1 + r) \ S (2 * j + r))
Tactic: rw [← hm.finset_iUnion_of_pairwise_separated]
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (goal)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
r n : ℕ
⊢ ∀ i ∈ Finset.range n,
    ∀ j ∈ Finset.range n, i ≠ j → AreSeparated (S (2 * i + 1 + r) \ S (2 * i + r)) (S (2 * j + 1 + r) \ S (2 * j + r))
have neg : ∀ (i j : ℕ), i < j → AreSeparated (S (2 * i + 1 + r)) (s \ S (2 * j + r))
Tactic: suffices ∀ i j, i < j → Metric.AreSeparated (S (2 * i + 1 + r)) (s \ S (2 * j + r)) from
    fun i _ j _ hij => hij.lt_or_gt.elim
      (fun h => (this i j h).mono inter_subset_left fun x hx => by exact ⟨hx.1.1, hx.2⟩)
      fun h => (this j i h).symm.mono (fun x hx => by exact ⟨hx.1.1, hx.2⟩) inter_subset_left
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (goal)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
r n i j : ℕ
hj : i < j
⊢ LT.lt (α := ℝ≥0∞) (↑(2 * j + r) : ℝ≥0∞)⁻¹ (↑(2 * i + 1 + r) : ℝ≥0∞)⁻¹
have rw : 2 * i + 1 + r < 2 * j + r
Tactic: rw [ENNReal.inv_lt_inv, Nat.cast_lt]
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (hypothesis)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
r n i j : ℕ
hj : i < j
⊢ AreSeparated (S (2 * i + 1 + r)) (s \ S (2 * j + r))
have A : LT.lt (α := ℝ≥0∞) (↑(2 * j + r) : ℝ≥0∞)⁻¹ (↑(2 * i + 1 + r) : ℝ≥0∞)⁻¹
Tactic: have A : ((↑(2 * j + r))⁻¹ : ℝ≥0∞) < (↑(2 * i + 1 + r))⁻¹ := by
    rw [ENNReal.inv_lt_inv, Nat.cast_lt]; lia
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (goal)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
r n i j : ℕ
hj : i < j
A : LT.lt (α := ℝ≥0∞) (↑(2 * j + r) : ℝ≥0∞)⁻¹ (↑(2 * i + 1 + r) : ℝ≥0∞)⁻¹
⊢ AreSeparated (S (2 * i + 1 + r)) (s \ S (2 * j + r))
have neg : ∀ (x : X) (hx : x ∈ S (2 * i + 1 + r)) (y : X) (hy : y ∈ s \ S (2 * j + r)),
  HSub.hSub (α := ℝ≥0∞) (↑(2 * i + 1 + r) : ℝ≥0∞)⁻¹ (↑(2 * j + r) : ℝ≥0∞)⁻¹ ≤ edist x y
Tactic: refine ⟨(↑(2 * i + 1 + r))⁻¹ - (↑(2 * j + r))⁻¹, by simpa [tsub_eq_zero_iff_le] using A,
    fun x hx y hy => ?_⟩
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (hypothesis)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
r n i j : ℕ
hj : i < j
A : LT.lt (α := ℝ≥0∞) (↑(2 * j + r) : ℝ≥0∞)⁻¹ (↑(2 * i + 1 + r) : ℝ≥0∞)⁻¹
x : X
hx : x ∈ S (2 * i + 1 + r)
y : X
hy : y ∈ s \ S (2 * j + r)
⊢ HSub.hSub (α := ℝ≥0∞) (↑(2 * i + 1 + r) : ℝ≥0∞)⁻¹ (↑(2 * j + r) : ℝ≥0∞)⁻¹ ≤ edist x y
have this : infEDist y t < (↑(2 * j + r) : ℝ≥0∞)⁻¹
Tactic: have : infEDist y t < (↑(2 * j + r))⁻¹ := not_le.1 fun hle => hy.2 ⟨hy.1, hle⟩
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (goal)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
r n i j : ℕ
hj : i < j
A : LT.lt (α := ℝ≥0∞) (↑(2 * j + r) : ℝ≥0∞)⁻¹ (↑(2 * i + 1 + r) : ℝ≥0∞)⁻¹
x : X
hx : x ∈ S (2 * i + 1 + r)
y : X
hy : y ∈ s \ S (2 * j + r)
this : infEDist y t < (↑(2 * j + r) : ℝ≥0∞)⁻¹
⊢ HSub.hSub (α := ℝ≥0∞) (↑(2 * i + 1 + r) : ℝ≥0∞)⁻¹ (↑(2 * j + r) : ℝ≥0∞)⁻¹ ≤ edist x y
have neg : ∀ (z : X) (hzt : z ∈ t) (hyz : edist y z < (↑(2 * j + r) : ℝ≥0∞)⁻¹),
  HSub.hSub (α := ℝ≥0∞) (↑(2 * i + 1 + r) : ℝ≥0∞)⁻¹ (↑(2 * j + r) : ℝ≥0∞)⁻¹ ≤ edist x y
Tactic: rcases infEDist_lt_iff.mp this with ⟨z, hzt, hyz⟩
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (hypothesis)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
r n i j : ℕ
hj : i < j
A : LT.lt (α := ℝ≥0∞) (↑(2 * j + r) : ℝ≥0∞)⁻¹ (↑(2 * i + 1 + r) : ℝ≥0∞)⁻¹
x : X
hx : x ∈ S (2 * i + 1 + r)
y : X
hy : y ∈ s \ S (2 * j + r)
this : infEDist y t < (↑(2 * j + r) : ℝ≥0∞)⁻¹
z : X
hzt : z ∈ t
hyz : edist y z < (↑(2 * j + r) : ℝ≥0∞)⁻¹
⊢ HSub.hSub (α := ℝ≥0∞) (↑(2 * i + 1 + r) : ℝ≥0∞)⁻¹ (↑(2 * j + r) : ℝ≥0∞)⁻¹ ≤ edist x y
have hxz : (↑(2 * i + 1 + r) : ℝ≥0∞)⁻¹ ≤ edist x z
Tactic: have hxz : (↑(2 * i + 1 + r))⁻¹ ≤ edist x z := le_infEDist.1 hx.2 _ hzt
-- Lean 4 proof step from Mathlib.MeasureTheory.Measure.Hausdorff (goal)
Goal:
X : Type u_2
inst : EMetricSpace X
μ : OuterMeasure X
hm : μ.IsMetric
t : Set X
ht : Membership.mem (γ := Set (Set X)) {s : Set X | IsClosed[PseudoEMetricSpace.toUniformSpace.toTopologicalSpace] s} t
s : Set X
S : ℕ → Set X := fun (n : ℕ) ↦ {x : X | x ∈ s ∧ (↑n : ℝ≥0∞)⁻¹ ≤ infEDist x t}
Ssep : ∀ (n : ℕ), AreSeparated (S n) t
Ssep' : ∀ (n : ℕ), AreSeparated (S n) (s ∩ t)
S_sub : ∀ (n : ℕ), S n ⊆ s \ t
hSs :
  ∀ (n : ℕ),
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
        ((μ : (a : Set X) → ℝ≥0∞) (S n) : ℝ≥0∞) ≤
      (μ : (a : Set X) → ℝ≥0∞) s
iUnion_S : ⋃ (n : ℕ), S n = s \ t
htop : ¬Eq (α := ℝ≥0∞) ((μ : (a : Set X) → ℝ≥0∞) (s \ t) : ℝ≥0∞) (∞ : ℝ≥0∞)
r n i j : ℕ
hj : i < j
A : LT.lt (α := ℝ≥0∞) (↑(2 * j + r) : ℝ≥0∞)⁻¹ (↑(2 * i + 1 + r) : ℝ≥0∞)⁻¹
x : X
hx : x ∈ S (2 * i + 1 + r)
y : X
hy : y ∈ s \ S (2 * j + r)
this : infEDist y t < (↑(2 * j + r) : ℝ≥0∞)⁻¹
z : X
hzt : z ∈ t
hyz : edist y z < (↑(2 * j + r) : ℝ≥0∞)⁻¹
hxz : (↑(2 * i + 1 + r) : ℝ≥0∞)⁻¹ ≤ edist x z
⊢ HSub.hSub (α := ℝ≥0∞) (↑(2 * i + 1 + r) : ℝ≥0∞)⁻¹ (↑(2 * j + r) : ℝ≥0∞)⁻¹ ≤ edist x y
have neg : HSub.hSub (α := ℝ≥0∞) (↑(2 * i + 1 + r) : ℝ≥0∞)⁻¹ (↑(2 * j + r) : ℝ≥0∞)⁻¹ + edist y z ≤ edist x y + edist y z
Tactic: apply ENNReal.le_of_add_le_add_right hyz.ne_top